一種多協(xié)議工業(yè)數(shù)據(jù)采集器的設(shè)計與實現(xiàn)
掃描二維碼
隨時隨地手機看文章
0 引 言
工業(yè)數(shù)據(jù)采集是智能制造和工業(yè)物聯(lián)網(wǎng)的基礎(chǔ),發(fā)展工業(yè)數(shù)據(jù)采集是推動工業(yè)物聯(lián)網(wǎng)全面深度應用的起點,也是制造業(yè)轉(zhuǎn)型升級的必要條件。目前在工業(yè)數(shù)據(jù)采集領(lǐng)域,各自動化廠家存在多種工業(yè)通訊協(xié)議標準,各自動化設(shè)備生產(chǎn)商使用自己開發(fā)的私有工業(yè)協(xié)議,同時為了保證自動化設(shè)備和系統(tǒng)的安全,數(shù)據(jù)開放性不足,缺乏數(shù)據(jù)開放接口及文檔說明,無法滿足生產(chǎn)過程全流程的數(shù)據(jù)采集、流動及智能化生產(chǎn)需求。工業(yè)數(shù)據(jù)采集器實現(xiàn)了對生產(chǎn)現(xiàn)場各種工業(yè)數(shù)據(jù)的實時采集和整理分發(fā),滿足了工業(yè)物聯(lián)網(wǎng)與信息系統(tǒng)對各類工業(yè)設(shè)備或智能產(chǎn)品的基礎(chǔ)數(shù)據(jù)的需求。數(shù)據(jù)采集器的核心為協(xié)議轉(zhuǎn)換,即運用對工業(yè)通訊協(xié)議的解析與轉(zhuǎn)換實現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)換和統(tǒng)一。
1 數(shù)據(jù)采集結(jié)構(gòu)
數(shù)據(jù)采集基于連接與數(shù)據(jù)點的分層配置方式,其中連接包含了不同自動化廠家的連接方式與物理端口連接所需的基本信息等,數(shù)據(jù)點配置包含各采集點的控制器內(nèi)存地址、數(shù)據(jù)類型(包括數(shù)據(jù)在控制器內(nèi)的指向信息)等。根據(jù)配置采集后的數(shù)據(jù)形成統(tǒng)一的數(shù)據(jù)格式與接口方式,使不同的自動化設(shè)備數(shù)據(jù)按照統(tǒng)一的方式和接口流出,實現(xiàn)格式的轉(zhuǎn)換和統(tǒng)一,便于數(shù)據(jù)進一步處理。
2 協(xié)議的處理方式
由于各自動化廠家的通訊協(xié)議和物理端口等通信方式存在區(qū)別,因此需針對各協(xié)議使用不同的配置信息,其中西門子 ISO over TCP 協(xié)議配置使用西門子控制器 IP 地址、槽號、機架號,根據(jù)配置信息與控制器建立 ISO TCP 連接,數(shù)據(jù)點配置包括點的存儲區(qū)域、內(nèi)存地址、偏移地址、數(shù)據(jù)類型等,根據(jù)連接信息建立連接后,周期性從控制器中數(shù)據(jù)點的配置讀取數(shù)據(jù),該方式針對西門子常用的 S7 系列控制器,典型的西門子數(shù)據(jù)采集段代碼如下 :
OPC FOUNDATION 通用 OPC 協(xié)議 [1],使用 OPC 服務器名稱、服務器地址與 OPC 服務器建立連接,使用變量名稱與服務器建立異步回調(diào)機制,當數(shù)據(jù)變化時服務器返回化后的數(shù)據(jù)點當前值或者周期性從服務器中讀取數(shù)據(jù),該方式針對大多數(shù) DCS 或 PLC 提供的 OPC 接口方式,典型的OPC 數(shù)據(jù)采集段代碼如下 :
施耐德提供的 Modbus TCP 與 Modbus RTU 協(xié)議 [2] 由于物理層的區(qū)別,配置方式略有不同,Modbus TCP 使用 TCP連接方式,連接配置包含控制器 IP 地址、端口號(默認為502)、Unit ID 等,Modbus RTU 使用串口連接方式,連接配置包含串口號、速率、數(shù)據(jù)位、停止位、校驗位、校驗方式等,數(shù)據(jù)點的配置遵循 Modbus 內(nèi)存地址(輸出、輸入、輸入寄存器、保持寄存器)定義方式,數(shù)據(jù)點的配置包含內(nèi)存區(qū)域、地址、偏移地址、數(shù)據(jù)類型等,適用于遵循 Modbus TCP 或Modbus RTU 的所有控制器,典型的 Modbus TCP 數(shù)據(jù)采集段代碼如下 :
AB 提供了 DF1 與 Ethernet IP 連接,DF1 方式為串口通訊方式,Ethernet IP 為基于 TCP 的通訊方式,根據(jù)控制器的不同分為基于地址和變量名兩種采集方式,以變量名的Ethernet IP方式為例,連接配置包含控制器IP地址、端口號(默認為 44818)、CPU 所在槽號等,數(shù)據(jù)點配置信息包含變量名、地址、數(shù)據(jù)類型等,典型的 AB 控制器數(shù)據(jù)采集段代碼如下 :
TMEIC 東芝三菱提供 UDP 連接方式,連接配置包含控制器 IP 地址、端口號等,數(shù)據(jù)點配置信息包含內(nèi)存區(qū)域、地址、數(shù)據(jù)類型等,數(shù)據(jù)內(nèi)容為 ASCII 方式,當連接建立后,讀取的數(shù)據(jù)配置按照協(xié)議打包并向控制器發(fā)送 DR 命令,控制器將根據(jù)命令返回讀取的當前值。典型的 TMEIC 控制器數(shù)據(jù)采集段代碼如下 :
歐姆龍將 FINS 通信協(xié)議用于工業(yè)自動化控制網(wǎng)絡的指令響應系統(tǒng),根據(jù)物理層的不同分為串行方式、TCP 方式、UDP 方式,根據(jù)數(shù)據(jù)內(nèi)容分為 ASCII 方式和二進制方式,以FINS 的 UDP 方式為例,連接配置包含控制器 IP 地址、端口號、目標和源網(wǎng)絡地址、目標和源節(jié)點地址、目標和源單元地址等,數(shù)據(jù)點包含數(shù)據(jù)類型、內(nèi)存區(qū)域、地址等,典型的歐姆龍控制器數(shù)據(jù)采集段代碼如下 :
3 數(shù)據(jù)的緩存隔離與傳輸
數(shù)據(jù)訂閱和推送服務器 [3] 可以實現(xiàn)數(shù)據(jù)的高速緩存、處理和安全隔離,由服務器推送數(shù)據(jù),客戶端訂閱指定的數(shù)據(jù)后即可接收服務器推送的數(shù)據(jù),輕量級消息訂閱發(fā)布方式可以保證數(shù)據(jù)的高速傳輸,當某客戶端使用監(jiān)控實時數(shù)據(jù)的功能時,可以直接向服務器訂閱實時數(shù)據(jù),避免走數(shù)據(jù)庫影響實時性,減小服務器的壓力。當需要復雜數(shù)據(jù)的訂閱推送時,可以選擇 JSON 或者 XML 方式,客戶端訂閱后只要按照約定的格式解析即可。每一個采集端都可以為一個發(fā)布客戶端,典型的客戶端發(fā)布與訂閱數(shù)據(jù)的代碼如下 :
4 結(jié) 語
隨著工業(yè)物聯(lián)網(wǎng)的發(fā)展,工業(yè)數(shù)據(jù)采集器兼容更多協(xié)議的需求也會越來越強烈,將工業(yè)生產(chǎn)現(xiàn)場的設(shè)備進行互聯(lián),方便數(shù)據(jù)在底層自由傳輸,基于工業(yè)現(xiàn)場的一手數(shù)據(jù)搭建具有實時監(jiān)視功能的軟件、生產(chǎn)報表及自動化排產(chǎn)軟件、工藝參數(shù)歷史追蹤軟件、基于數(shù)據(jù)經(jīng)驗的機器學習軟件,以及全功能 MES 系統(tǒng)等。