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