禹鑫燚 唐權(quán)瑞 施甜峰 殷慧武 歐林林
(浙江工業(yè)大學(xué)信息工程學(xué)院 杭州310023)
無論是中國提出的“中國制造2025”,還是德國提出的“工業(yè)4.0”,核心都是實(shí)現(xiàn)制造智能化[1]。隨著工業(yè)自動化進(jìn)程不斷推進(jìn),工業(yè)物聯(lián)網(wǎng)已成為新一代信息技術(shù)的重要組成部分[2-3]。工業(yè)網(wǎng)關(guān)是一種支持不同協(xié)議之間互相轉(zhuǎn)換的設(shè)備,從而使不同的網(wǎng)絡(luò)協(xié)議之間可以互聯(lián)互通,作為上位機(jī)和下位機(jī)的協(xié)議轉(zhuǎn)換站,工業(yè)網(wǎng)關(guān)將采集的數(shù)據(jù)根據(jù)對應(yīng)的協(xié)議進(jìn)行轉(zhuǎn)換后傳輸給上位機(jī)。
國外對工業(yè)網(wǎng)關(guān)的研究起步較早,文獻(xiàn)[4]利用OPC UA 的信息模型和能源相關(guān)的CPS 需求,對能量流進(jìn)行連續(xù)監(jiān)測評估。文獻(xiàn)[5]介紹了OPC UA服務(wù)器的一般啟動過程,地址空間的生成步驟,生成對象、變量、方法和視圖節(jié)點(diǎn)類型的專門算法。文獻(xiàn)[6]提出了Web 平臺的定義,通過該平臺的REST 架構(gòu)可以對OPC UA服務(wù)器進(jìn)行訪問。而隨著國內(nèi)“智能制造”的提出,部分高校對工業(yè)網(wǎng)關(guān)進(jìn)行了深入研究,一些物聯(lián)網(wǎng)廠商也研發(fā)了多款工業(yè)網(wǎng)關(guān)產(chǎn)品,例如研華AdvanTech ADAM6000 系列[7]。文獻(xiàn)[8]針對現(xiàn)行的兩線制通信的缺陷,將下層多個儀表的數(shù)據(jù)通過一個智能網(wǎng)關(guān)進(jìn)行匯聚,網(wǎng)關(guān)和儀表之間采用點(diǎn)對點(diǎn)的通信方式。文獻(xiàn)[9]提出了一種基于Profibus-DP 現(xiàn)場總線與ZigBee 技術(shù)的工業(yè)無線網(wǎng)關(guān)裝置,該裝置實(shí)現(xiàn)工業(yè)現(xiàn)場總線網(wǎng)絡(luò)與ZigBee 無線傳感器網(wǎng)絡(luò)之間的協(xié)議轉(zhuǎn)換。文獻(xiàn)[10]研究了無線接入網(wǎng)關(guān)裝置,并構(gòu)建基于無線傳感器網(wǎng)絡(luò)的冷軋連退線重要設(shè)備狀態(tài)監(jiān)測系統(tǒng)。文獻(xiàn)[11]提出了一種基于工業(yè)網(wǎng)關(guān)的數(shù)據(jù)采集系統(tǒng),該系統(tǒng)作為一個標(biāo)準(zhǔn)的數(shù)據(jù)采集平臺,可實(shí)現(xiàn)對多源異構(gòu)的數(shù)據(jù)采集。文獻(xiàn)[12]實(shí)現(xiàn)了將RTEX 網(wǎng)絡(luò)嵌入到EtherMAC 總線中,并能對其進(jìn)行靈活的應(yīng)用。文獻(xiàn)[13]具體分析了UA 的核心功能,包括地址空間技術(shù)和數(shù)據(jù)編碼技術(shù),并在兩者的基礎(chǔ)上,利用消息代理機(jī)制,完成了發(fā)布者和訂閱者的功能開發(fā)。文獻(xiàn)[14]介紹了面向工業(yè)智能設(shè)備的嵌入式Web網(wǎng)關(guān)的安全性解決方案,對網(wǎng)關(guān)系統(tǒng)的安全需求進(jìn)行了分析。
從目前的研究成果來看,市場上的工業(yè)網(wǎng)關(guān)功能參差不齊,系統(tǒng)穩(wěn)定性有待進(jìn)一步提高,并且由于工業(yè)現(xiàn)場網(wǎng)絡(luò)的封閉性,維護(hù)人員無法遠(yuǎn)程獲取設(shè)備的相關(guān)信息,使設(shè)備維護(hù)成本增加,也缺少設(shè)備預(yù)測性維護(hù)的功能。因此對設(shè)備進(jìn)行數(shù)據(jù)采集和遠(yuǎn)程獲取設(shè)備信息非常重要。
針對目前不同品牌型號設(shè)備協(xié)議不一致和設(shè)備現(xiàn)場維護(hù)成本高等問題,本文設(shè)計(jì)了OPC UA 協(xié)議工業(yè)網(wǎng)關(guān)系統(tǒng),工業(yè)網(wǎng)關(guān)可以將不同品牌不同型號的設(shè)備通過工業(yè)以太網(wǎng)進(jìn)行連接,然后根據(jù)配置文件動態(tài)采集所需數(shù)據(jù),并通過4G 網(wǎng)絡(luò)將數(shù)據(jù)上傳到云端保存,供監(jiān)控平臺進(jìn)行實(shí)時數(shù)據(jù)顯示、歷史數(shù)據(jù)顯示、實(shí)時數(shù)據(jù)分析和遠(yuǎn)程控制等操作。為此本文開發(fā)了基于瀏覽器/服務(wù)器(browser/server,B/S)和服務(wù)器/客戶機(jī)(client/server,C/S)結(jié)構(gòu)的工業(yè)監(jiān)控平臺,實(shí)現(xiàn)對工廠設(shè)備的遠(yuǎn)程監(jiān)控,開發(fā)基于.NET Core框架的OPC UA服務(wù)器,實(shí)現(xiàn)對工廠設(shè)備的遠(yuǎn)程數(shù)據(jù)采集,在Web 網(wǎng)頁端對設(shè)備數(shù)據(jù)進(jìn)行實(shí)時分析,對設(shè)備進(jìn)行預(yù)測性維護(hù),最后搭建實(shí)驗(yàn)平臺,通過實(shí)驗(yàn)對工業(yè)網(wǎng)關(guān)系統(tǒng)的可行性進(jìn)行了驗(yàn)證。
本文主要對工廠設(shè)備進(jìn)行數(shù)據(jù)采集、數(shù)據(jù)存儲、遠(yuǎn)程監(jiān)控和數(shù)據(jù)分析等操作,設(shè)計(jì)工業(yè)網(wǎng)關(guān)系統(tǒng),以解決設(shè)備協(xié)議不統(tǒng)一、設(shè)備無法上云等問題。該工業(yè)網(wǎng)關(guān)系統(tǒng)應(yīng)具有以下功能:(1)兼容TCP/IP、OPC UA 和消息隊(duì)列遙測傳輸協(xié)議(message queuing telemetry transport,MQTT)等,并根據(jù)配置文件對設(shè)備進(jìn)行數(shù)據(jù)采集、數(shù)據(jù)存儲等任務(wù);(2)通過簡單的初始化設(shè)置,遠(yuǎn)程啟動工業(yè)網(wǎng)關(guān)并進(jìn)行數(shù)據(jù)采集;(3)OPC UA 客戶端和工業(yè)監(jiān)控平臺分別基于C/S 結(jié)構(gòu)和B/S 結(jié)構(gòu)查看設(shè)備在線情況、實(shí)時數(shù)據(jù)、設(shè)備運(yùn)行日志和歷史數(shù)據(jù);(4)云端服務(wù)器實(shí)時數(shù)據(jù)分析。
為了解決工業(yè)數(shù)據(jù)集成不足、工業(yè)軟件開發(fā)困難和平臺應(yīng)用相對單一等問題,本文基于數(shù)據(jù)采集的經(jīng)典設(shè)計(jì)思想,進(jìn)行了系統(tǒng)的硬件設(shè)計(jì)和軟件設(shè)計(jì)。系統(tǒng)硬件部分進(jìn)行了工業(yè)網(wǎng)關(guān)的選型和工業(yè)網(wǎng)關(guān)的系統(tǒng)構(gòu)建等操作,軟件部分設(shè)計(jì)了OPC UA 協(xié)議服務(wù)器、OPC UA 客戶端、配置界面和工業(yè)監(jiān)控平臺。
服務(wù)器采用.NET Core 3.1 和Win 64 作為開發(fā)框架,因此不受操作系統(tǒng)的限制,可以跨平臺運(yùn)行,提升系統(tǒng)的性能和穩(wěn)定性。使用OPC UA 協(xié)議進(jìn)行數(shù)據(jù)采集,能夠降低工廠采集系統(tǒng)開發(fā)難度;采用Open VPN 接入遠(yuǎn)程網(wǎng)絡(luò),可以保證遠(yuǎn)程訪問安全;為了對工廠數(shù)據(jù)進(jìn)行預(yù)測性維護(hù),使用Spark 技術(shù)對數(shù)據(jù)進(jìn)行實(shí)時分析,并將分析結(jié)果實(shí)時推送給工程師。針對不同的工作用途,設(shè)計(jì)了B/S 和C/S 結(jié)構(gòu)的客戶端。系統(tǒng)總體架構(gòu)如圖1 所示,工業(yè)網(wǎng)關(guān)作為設(shè)備和工業(yè)監(jiān)控平臺的連接器,向下與設(shè)備進(jìn)行組網(wǎng),向上給工業(yè)監(jiān)控平臺傳輸數(shù)據(jù);工業(yè)網(wǎng)關(guān)將數(shù)據(jù)通過存儲到Redis 數(shù)據(jù)庫供Web 瀏覽器進(jìn)行查詢并顯示,與客戶端通過Socket 通信傳輸數(shù)據(jù)。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
工業(yè)網(wǎng)關(guān)系統(tǒng)的硬件部分主要將各種設(shè)備和工業(yè)網(wǎng)關(guān)通過工業(yè)以太網(wǎng)進(jìn)行連接,并使其所有設(shè)備位于同一網(wǎng)段中,遠(yuǎn)程配置界面動態(tài)生成工業(yè)網(wǎng)關(guān)配置文件,配置完成后將XML 配置文件發(fā)布到Zoo-Keeper服務(wù)的node 節(jié)點(diǎn),待工業(yè)網(wǎng)關(guān)運(yùn)行時自動進(jìn)行熱更新配置文件,并進(jìn)行初始化和啟動系統(tǒng)。
工業(yè)網(wǎng)關(guān)選用飛凌嵌入式FET335xS 核心板。FET335xS 核心板基于TI 公司Sitara 系列的工業(yè)級ARM 處理器AM3354 設(shè)計(jì)完成,ARM Cortex-A8 架構(gòu),運(yùn)行頻率為800 MHz。板載512 MB 的DDR3 內(nèi)存,采用256 MB 的SLCNandFlash 存儲芯片。工業(yè)網(wǎng)關(guān)相比傳統(tǒng)數(shù)據(jù)采集具有體積小、無需布線安裝便捷、能適應(yīng)各種復(fù)雜的工業(yè)環(huán)境和有效降低運(yùn)維成本等優(yōu)勢。在圖2 中,所有PLC 設(shè)備和嵌入式設(shè)備經(jīng)過交換機(jī)以工業(yè)以太網(wǎng)的方式進(jìn)行連接。
圖2 系統(tǒng)硬件構(gòu)成
為了使OPC UA服務(wù)器在Linux-ARM 系統(tǒng)中正常運(yùn)行,需要對工業(yè)網(wǎng)關(guān)系統(tǒng)進(jìn)行系統(tǒng)移植,分別進(jìn)行bootloader 的裁剪與移植、根文件系統(tǒng)和操作系統(tǒng)的移植,并成功燒寫到搭建好的工業(yè)網(wǎng)關(guān)平臺中。bootloader 移植主要是為了引導(dǎo)內(nèi)核可以正常的運(yùn)行,為Linux-ARM 操作系統(tǒng)的運(yùn)行做準(zhǔn)備;內(nèi)核移植主要是提供對外的接口方便擴(kuò)展,如SD 卡、串口、以太網(wǎng)和4G 等接口;根文件系統(tǒng)主要將磁盤或Flash 等存儲設(shè)備劃分為若干個分區(qū),在不同的分區(qū)存放不同類型的文件。
本系統(tǒng)軟件部分設(shè)計(jì)了OPC UA服務(wù)器、配置界面、OPC UA 客戶端和基于Vue 的工業(yè)監(jiān)控平臺。OPC UA服務(wù)端和OPC UA 客戶端之間通過請求響應(yīng)進(jìn)行通訊,在服務(wù)器配置界面完成配置文件后,將生成的XML 文件上傳到ZooKeeper 中,服務(wù)器獲取ZooKeeper服務(wù)node 節(jié)點(diǎn)下的配置文件并設(shè)置監(jiān)聽,當(dāng)數(shù)據(jù)發(fā)生變化時自動進(jìn)行熱更新。軟件系統(tǒng)總體框架如圖3 所示。
圖3 系統(tǒng)軟件系統(tǒng)構(gòu)架
目前在工廠中還有一部分老舊設(shè)備不支持OPC UA 功能,傳統(tǒng)方法是為每個設(shè)備單獨(dú)寫一個數(shù)據(jù)采集程序。在實(shí)際過程中,由于工廠存在很多品牌和型號的設(shè)備,導(dǎo)致工作量巨大,增加開發(fā)難度。并且如果在開發(fā)的時候重新為每個設(shè)備開發(fā)新的設(shè)備驅(qū)動,也可能出現(xiàn)新的兼容性問題。
為了解決這些問題,本文設(shè)計(jì)了基于.NET Core架構(gòu)的OPC UA 協(xié)議服務(wù)器,該OPC UA 協(xié)議服務(wù)器需要滿足協(xié)議轉(zhuǎn)換和兼容廠商提供的設(shè)備驅(qū)動等功能。為了能夠兼容不同設(shè)備提供的驅(qū)動,同時兼容自己開發(fā)的設(shè)備驅(qū)動,本文設(shè)計(jì)了公共設(shè)備讀寫接口,在開發(fā)設(shè)備驅(qū)動時,只需要將對應(yīng)的設(shè)備驅(qū)動繼承公共接口,然后重寫接口,就可以對設(shè)備進(jìn)行數(shù)據(jù)采集。
根據(jù)上述功能需求,本文設(shè)計(jì)的OPC UA服務(wù)器具有5 大模塊,分別是協(xié)議解析模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)持久化、配置文件更新和簽名證書安全機(jī)制,服務(wù)器各模塊如圖4 所示。
圖4 OPC UA服務(wù)器模塊圖
配置文件更新:在OPC UA服務(wù)器啟動后,首先獲取ZooKeeper 的node 節(jié)點(diǎn)下的配置文件并設(shè)置監(jiān)聽,如果節(jié)點(diǎn)下數(shù)據(jù)發(fā)生變化則通知OPC UA服務(wù)器實(shí)現(xiàn)熱更新。
數(shù)據(jù)采集:配置文件解析完成后,根據(jù)設(shè)備的型號調(diào)用對應(yīng)的設(shè)備驅(qū)動,并根據(jù)數(shù)據(jù)請求器和規(guī)則解析器的解析結(jié)果對設(shè)備進(jìn)行數(shù)據(jù)采集。
數(shù)據(jù)持久化:為了適應(yīng)不同的應(yīng)用場景,將已經(jīng)采集轉(zhuǎn)換后的數(shù)據(jù)存入非關(guān)系型數(shù)據(jù)庫和關(guān)系型數(shù)據(jù)庫。將實(shí)時讀取的數(shù)據(jù)存入Redis 數(shù)據(jù)庫中,定時將Redis 數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)存到MySQL 數(shù)據(jù)庫中,作持久化處理。將數(shù)據(jù)按照指定的格式進(jìn)行存儲并借助優(yōu)秀的讀寫性能來提高數(shù)據(jù)的檢索效率。
簽名證書安全機(jī)制:該服務(wù)器采用X.509 證書,對用戶名/密碼進(jìn)行身份認(rèn)證,提供了數(shù)字簽名、加密傳輸以及級別驗(yàn)證,以防止非授權(quán)的用戶訪問,防止蓄意破壞和修改過程數(shù)據(jù)。
協(xié)議解析:使用協(xié)議解析器將其他協(xié)議的數(shù)據(jù)轉(zhuǎn)換成OPC UA 協(xié)議的數(shù)據(jù),根據(jù)XML 配置文件進(jìn)行解析,解析后的信息交給數(shù)據(jù)采集部分。
分布式集群ZooKeeper 主要為了在配置界面完成文件配置后,將生成的XML 文件上傳到ZooKeeper 中。在服務(wù)器啟動時向ZooKeeper 發(fā)送請求,自動更新配置文件即可,這樣可以減少系統(tǒng)擁堵,也可以保障服務(wù)器讀取XML 文件的快速高效。
配置界面主要是對節(jié)點(diǎn)配置器、解析規(guī)則配置器和登錄方式選擇進(jìn)行初始化配置,配置完成后發(fā)布到ZooKeeper 中。具體如圖5 所示。
圖5 配置文件界面
配置界面完成配置后,先將生成的XML 配置文件發(fā)布到ZooKeeper服務(wù)的node 節(jié)點(diǎn)下,同時將配置文件保存在DB 塊中,OPC UA服務(wù)器從ZooKeeper 中讀取配置并監(jiān)聽配置的變化,實(shí)時傳輸?shù)絆PC UA服務(wù)器中,實(shí)現(xiàn)配置文件更改后,OPC UA服務(wù)器無需重啟,即可自動進(jìn)行熱更新。
根據(jù)使用場景的不同,本文設(shè)計(jì)了客戶端和瀏覽器端,由于客戶端數(shù)據(jù)實(shí)時性更好、安全性能更強(qiáng),適用于在工廠本地使用;而瀏覽器操作方便,可以遠(yuǎn)程監(jiān)測工廠數(shù)據(jù),更適合于在外監(jiān)控工廠數(shù)據(jù)。
OPC UA 客戶端通過和服務(wù)器建立連接,進(jìn)行瀏覽和操作OPC UA服務(wù)器的地址空間等。OPC UA 客戶端界面是基于C#語言自主開發(fā)的跨平臺中間件軟件,它是對現(xiàn)成的OPC UA Client SDK 進(jìn)行二次開發(fā)而成。
根據(jù)設(shè)計(jì)需求,將OPC UA 客戶端設(shè)計(jì)成4 個模塊,包括實(shí)時數(shù)據(jù)顯示、歷史數(shù)據(jù)顯示、AE 通知報警和日志查詢、設(shè)備在線狀態(tài)。
實(shí)時數(shù)據(jù)顯示:通過和服務(wù)器進(jìn)行Socket 連接,連接成功后,向服務(wù)器發(fā)送讀取數(shù)據(jù)的指令,接收到指令后,顯示在客戶端界面上。
歷史數(shù)據(jù)顯示:負(fù)責(zé)歷史數(shù)據(jù)在磁盤文件中的存儲、壓縮、讀取、訪問。從MySQL 中根據(jù)日期區(qū)間以及設(shè)備節(jié)點(diǎn)名稱查詢該設(shè)備在日期區(qū)間內(nèi)的數(shù)據(jù)。為了方便使用者配置查詢信息,歷史數(shù)據(jù)查詢模塊提供了向?qū)Чδ堋?/p>
AE 通知報警和日志查詢:負(fù)責(zé)報警的條件判斷、報警存儲、報警通知,并實(shí)施包括報警的分組、過濾等功能。
設(shè)備在線狀態(tài):在服務(wù)器中,定義一個TypeName函數(shù),TypeName 函數(shù)獲取的標(biāo)識碼是唯一的標(biāo)識碼,該標(biāo)識碼通過MD5 算法生成,各個設(shè)備不會重復(fù),在異型客戶端訪問設(shè)備數(shù)據(jù)時可直接通過該標(biāo)識碼定位到該設(shè)備的數(shù)據(jù)。設(shè)備啟動后TypeName的值為1,設(shè)備離線時TypeName 的值為0,客戶端通過查詢對應(yīng)的值來判斷設(shè)備在線情況。
OPC UA 客戶端界面如圖6 所示。
圖6 OPC UA 客戶端界面
為滿足工廠人員可以實(shí)時監(jiān)測工廠設(shè)備數(shù)據(jù),設(shè)計(jì)了工業(yè)監(jiān)控平臺(圖7)。通過監(jiān)控平臺進(jìn)行遠(yuǎn)程設(shè)備管理、實(shí)時數(shù)據(jù)查看和歷史數(shù)據(jù)查詢等操作。將系統(tǒng)的數(shù)據(jù)處理工作放在云端服務(wù)器上,有效地降低高速計(jì)算給工業(yè)網(wǎng)關(guān)帶來的負(fù)擔(dān),Web 端實(shí)時從數(shù)據(jù)庫中讀取數(shù)據(jù)顯示在網(wǎng)頁上,并對設(shè)備進(jìn)行預(yù)測性維護(hù)。當(dāng)設(shè)備出現(xiàn)故障需要遠(yuǎn)程運(yùn)維時,現(xiàn)場工程師給定權(quán)限后專業(yè)工程師可以遠(yuǎn)程對設(shè)備進(jìn)行調(diào)試。本文還設(shè)計(jì)了數(shù)據(jù)分析模塊,該模塊可以直接使用本模塊默認(rèn)的預(yù)測分析模型,也可以上傳自己訓(xùn)練好的預(yù)測分析模型,對設(shè)備進(jìn)行預(yù)測性維護(hù)。
圖7 工業(yè)監(jiān)控平臺界面圖
當(dāng)設(shè)備出現(xiàn)故障現(xiàn)場無法維修時,可通過Open VPN 軟件,遠(yuǎn)程接入工廠局域網(wǎng),通過工業(yè)監(jiān)控平臺,遠(yuǎn)程對設(shè)備進(jìn)行控制,直至設(shè)備恢復(fù)正常運(yùn)行。
本文基于所設(shè)計(jì)的工業(yè)網(wǎng)關(guān)系統(tǒng)搭建了工業(yè)網(wǎng)關(guān)實(shí)驗(yàn)系統(tǒng)。實(shí)驗(yàn)系統(tǒng)包括1 臺西門子S7-1200 PLC 設(shè)備、1 臺UR5 機(jī)器人、1 臺飛凌嵌入式FET335xS核心板(Linux-ARM 系統(tǒng))、1 個路由器,以及1 個筆記本電腦和若干根網(wǎng)線,如圖8 所示。
圖8 實(shí)驗(yàn)平臺
首先給個人計(jì)算機(jī)(personal computer,PC)、可編程邏輯控制器(programmable logic controller,PLC)設(shè)備、UR5 機(jī)器人分配相應(yīng)的IP 地址,使3 個設(shè)備位于同一網(wǎng)段;接著通過博途軟件和機(jī)器人示教盒分別載入PLC 梯形圖程序以及機(jī)器人程序,并啟動PLC 和機(jī)器人。準(zhǔn)備工作完成后,打開配置界面對服務(wù)器進(jìn)行初始化設(shè)置,實(shí)驗(yàn)結(jié)果如圖9(a)所示。配置完成后,將生成的XML 配置文件上傳到ZooKeeper服務(wù)的node 節(jié)點(diǎn),實(shí)驗(yàn)結(jié)果如圖9(b)所示。遠(yuǎn)程啟動OPC UA服務(wù)器,服務(wù)器先訪問Zoo-Keeper服務(wù)器并訂閱node 節(jié)點(diǎn),然后進(jìn)行配置文件熱更新,實(shí)驗(yàn)結(jié)果如圖9(c)所示。接著對配置文件進(jìn)行解析,解析完成后,根據(jù)配置文件進(jìn)行數(shù)據(jù)采集和數(shù)據(jù)存儲。
圖9 OPC UA服務(wù)器準(zhǔn)備界面實(shí)驗(yàn)結(jié)果
客戶端通過輸入服務(wù)器的URL 與服務(wù)器建立連接,并通過調(diào)用服務(wù)器的Browse服務(wù)來獲得OPC UA服務(wù)器的設(shè)備節(jié)點(diǎn)信息,實(shí)驗(yàn)結(jié)果如圖10(a)所示。然后調(diào)用服務(wù)器的Read服務(wù)讀取設(shè)備節(jié)點(diǎn)的參數(shù)信息,來獲取綁定的節(jié)點(diǎn)信息的value值,實(shí)驗(yàn)結(jié)果如圖10(b)所示。Web 端網(wǎng)頁通過對數(shù)據(jù)庫的查詢,獲取設(shè)備的數(shù)據(jù)信息,并將數(shù)據(jù)信息顯示在實(shí)時數(shù)據(jù)界面,實(shí)驗(yàn)結(jié)果如圖10(c)所示。
圖10 OPC UA 客戶端實(shí)驗(yàn)結(jié)果
為了檢測工業(yè)網(wǎng)關(guān)系統(tǒng)的性能,對服務(wù)器的功能進(jìn)行性能測試。實(shí)驗(yàn)中同時對多個設(shè)備進(jìn)行數(shù)據(jù)采集和數(shù)據(jù)存儲,且有多個客戶端同時訪問服務(wù)器,進(jìn)行并發(fā)寫入操作。測試結(jié)果如下:本工業(yè)網(wǎng)關(guān)系統(tǒng)可以同時支持最大并發(fā)客戶端用戶為50 個,服務(wù)器支持Linux 和Windows 操作系統(tǒng)運(yùn)行,實(shí)時數(shù)據(jù)庫最多存儲50 萬組數(shù)據(jù),實(shí)時數(shù)據(jù)的寫入時間不超過0.1 s,實(shí)時數(shù)據(jù)顯示在Web 網(wǎng)頁上的時間不超過0.5 s。
通過以上實(shí)驗(yàn)可知,該工業(yè)網(wǎng)關(guān)系統(tǒng)滿足跨平臺需求,一套源碼可以在多個操作系統(tǒng)平臺運(yùn)行。經(jīng)過配置后可以使用OPC UA 協(xié)議對所有設(shè)備進(jìn)行數(shù)據(jù)采集。實(shí)驗(yàn)結(jié)果表明,本文設(shè)計(jì)的工業(yè)網(wǎng)關(guān)系統(tǒng)可以對PLC 設(shè)備和UR5 等設(shè)備進(jìn)行有效的數(shù)據(jù)采集,并且可以通過客戶端和Web 網(wǎng)頁端遠(yuǎn)程監(jiān)測設(shè)備實(shí)時數(shù)據(jù),表明本系統(tǒng)可以滿足小型工廠數(shù)字化轉(zhuǎn)型的需要。
本文設(shè)計(jì)并實(shí)現(xiàn)了基于OPC UA 協(xié)議的工業(yè)網(wǎng)關(guān)系統(tǒng)。該系統(tǒng)可以對PLC、數(shù)控機(jī)床和機(jī)器人等不同設(shè)備進(jìn)行數(shù)據(jù)采集。使用OPC UA 協(xié)議能為不具備OPC UA 功能的設(shè)備提供數(shù)據(jù)采集的功能,使用配置文件對設(shè)備進(jìn)行數(shù)據(jù)采集能夠提高程序的靈活性,避免了程序的反復(fù)修改。通過ZooKeeper 分布式集群對配置文件進(jìn)行高效管理,同時對系統(tǒng)中的重要數(shù)據(jù)進(jìn)行備份,從而提升了系統(tǒng)的可靠性?;?NET Core 框架編寫OPC UA服務(wù)器,使服務(wù)器可以跨平臺運(yùn)行,提高系統(tǒng)性能。此外,工業(yè)網(wǎng)關(guān)系統(tǒng)還提供了驅(qū)動模板,為后續(xù)服務(wù)器中添加新類型的設(shè)備驅(qū)動提供方便,同時驅(qū)動模板的存在使得驅(qū)動加載器能更高效地工作,無縫地接入到系統(tǒng)中。實(shí)驗(yàn)表明該系統(tǒng)運(yùn)行效果良好,為工廠的數(shù)字化升級提供了一種新的思路。