楊楚歆,李祿達(dá),梁華軒,麥麗菊,沈大財(cái)
(廣東省機(jī)械研究所有限公司,廣州 510799)
隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展和普及,工業(yè)物聯(lián)網(wǎng)已經(jīng)成為現(xiàn)代制造業(yè)中不可或缺的一部分[1]。國際上主流的物聯(lián)網(wǎng)開發(fā)平臺包括亞馬遜公司開發(fā)的AWS IOT 平臺、微軟公司開發(fā)的Microsoft Azure IoT 平臺、以及傳統(tǒng)工業(yè)龍頭企業(yè)西門子公司的MindSphere云平臺、GE公司的Predix 云平臺等等。隨著《中國制造2025》的戰(zhàn)略發(fā)布,國內(nèi)物聯(lián)網(wǎng)技術(shù)也在蓬勃發(fā)展,眾多掌握云服務(wù)器的廠商都提供了物聯(lián)網(wǎng)開發(fā)平臺,如阿里云、騰訊云等等[2]。但工業(yè)制造行業(yè)細(xì)分領(lǐng)域眾多,不同應(yīng)用場景使用的設(shè)備及搭建的生產(chǎn)線也無統(tǒng)一標(biāo)準(zhǔn),尤其體現(xiàn)于非標(biāo)項(xiàng)目。因此現(xiàn)有的工業(yè)物聯(lián)網(wǎng)平臺越來越難以滿足企業(yè)自身的個性化和定制化需求[3],技術(shù)的不透明以及不菲的授權(quán)費(fèi)用也為企業(yè)二次開發(fā)增加負(fù)擔(dān),因而需要企業(yè)投入資源,加強(qiáng)自主研發(fā)能力,針對自身產(chǎn)品開發(fā)定制化的物聯(lián)網(wǎng)系統(tǒng)。
在環(huán)保裝備制造領(lǐng)域,鼓風(fēng)曝氣設(shè)備是非常關(guān)鍵和重要的設(shè)備之一,在污水處理[4]、生物發(fā)酵等方面有著廣泛的應(yīng)用,然而,傳統(tǒng)的鼓風(fēng)曝氣設(shè)備的監(jiān)測、控制和維護(hù)工作中存在許多問題,包括人力物力的消耗,維護(hù)的及時性和效率低下,無法遠(yuǎn)程監(jiān)控等等[5]。因此本文基于工業(yè)物聯(lián)網(wǎng)技術(shù),依托于多個仿真軟件和開源平臺,以鼓風(fēng)曝氣設(shè)備為研究對象,搭建一套在線遠(yuǎn)程監(jiān)測和控制系統(tǒng),實(shí)現(xiàn)的功能包括設(shè)備的在線監(jiān)控和管理,實(shí)時獲取鼓風(fēng)曝氣設(shè)備的運(yùn)行狀態(tài)和各種參數(shù),同時進(jìn)行數(shù)據(jù)可視化展示,便于分析和處理,另外監(jiān)測設(shè)備的故障報警信息,即時記錄且可遠(yuǎn)程處理等[6]。本研究以鼓風(fēng)曝氣設(shè)備為例,驗(yàn)證了一種從工業(yè)設(shè)備到工業(yè)物聯(lián)網(wǎng)云平臺數(shù)據(jù)交互的流程,為制造企業(yè)根據(jù)自身產(chǎn)品或生產(chǎn)線個性化開發(fā)物聯(lián)網(wǎng)云平臺提供了一種具有參考價值的設(shè)計(jì)思路和研究方向。
本研究所用的鼓風(fēng)曝氣設(shè)備配備有專用的變頻器用于運(yùn)行參數(shù)設(shè)置與控制,其含有多個傳感器,如風(fēng)量傳感器、溫度傳感器、壓力傳感器、噪聲探測器等,用于監(jiān)測鼓風(fēng)曝氣設(shè)備運(yùn)行過程中的物理變量。變頻器與傳感器均與配備了數(shù)字量和模擬量輸入輸出模塊的PLC 連接,由PLC 作為數(shù)據(jù)采集和控制指令下發(fā)的核心部件,且與PLC 直接連接的觸摸屏作為可視化控制界面,以上部件構(gòu)成本地的鼓風(fēng)曝氣設(shè)備控制系統(tǒng)。要實(shí)現(xiàn)設(shè)備的遠(yuǎn)程監(jiān)控和管理,預(yù)設(shè)方案中,要使用工業(yè)智能網(wǎng)關(guān)與PLC 連接進(jìn)行數(shù)據(jù)交互,同時作為MQTT 客戶端通過聯(lián)網(wǎng)模塊遠(yuǎn)程連接MQTT 云服務(wù)器進(jìn)行數(shù)據(jù)交互,而后工業(yè)物聯(lián)網(wǎng)云平臺便可以通過與MQTT 服務(wù)器進(jìn)行數(shù)據(jù)交互以間接獲取設(shè)備數(shù)據(jù)和寫入控制指令,打通數(shù)據(jù)交互路徑后便可根據(jù)需要進(jìn)行功能模塊設(shè)計(jì),包括設(shè)備控制、數(shù)據(jù)可視化、歷史數(shù)據(jù)查詢、故障報警信息等等,該預(yù)想系統(tǒng)的整體架構(gòu)圖如圖1所示。
圖1 鼓風(fēng)曝氣設(shè)備遠(yuǎn)程監(jiān)控系統(tǒng)整體架構(gòu)圖
由上述討論可以看出,搭建鼓風(fēng)曝氣設(shè)備的遠(yuǎn)程監(jiān)控系統(tǒng)的關(guān)鍵技術(shù)問題在于如何實(shí)現(xiàn)從工業(yè)設(shè)備到物聯(lián)網(wǎng)云平臺的數(shù)據(jù)交互,對此本研究結(jié)合多個仿真軟件和開源平臺,測試出了一種實(shí)現(xiàn)工業(yè)設(shè)備與物聯(lián)網(wǎng)云平臺數(shù)據(jù)交互的方法及流程。該流程的主要模塊包括工業(yè)設(shè)備數(shù)據(jù)采集模塊,由仿真軟件ModSim32模擬從PLC寄存器中讀取和寫入數(shù)據(jù);智能網(wǎng)關(guān)模塊,由開源網(wǎng)關(guān)軟件Neuron 完成網(wǎng)關(guān)的數(shù)據(jù)采集和監(jiān)控、協(xié)議轉(zhuǎn)換、主題訂閱和發(fā)布等功能;MQTT云服務(wù)器模塊,使用MQTT云服務(wù)器EMQX 的開源版本;以及物聯(lián)網(wǎng)云平臺模塊,由開源工具Node-RED 開發(fā),功能可自定義。各個模塊之間的數(shù)據(jù)交互架構(gòu)如圖2所示。
圖2 模塊間的數(shù)據(jù)交互架構(gòu)圖
工業(yè)設(shè)備的數(shù)據(jù)采集通常由傳感器(如溫度、壓力、流量傳感器等)、監(jiān)測儀器(如電能表、頻率計(jì)、氣體分析儀等)、數(shù)據(jù)采集卡、設(shè)備專用的控制器等來實(shí)現(xiàn)[7]。采集的數(shù)據(jù)可通過多種通信協(xié)議如Modbus 協(xié)議、OPC UA協(xié)議、Profibus協(xié)議等傳遞到控制設(shè)備或系統(tǒng)中[8]。大型或復(fù)雜工業(yè)設(shè)備通常配備專用控制器集中管理數(shù)據(jù),如機(jī)床的CNC 數(shù)控系統(tǒng),外圍控制設(shè)備或系統(tǒng)可直接與設(shè)備控制器連接并進(jìn)行數(shù)據(jù)交互。中小型或多個設(shè)備需要進(jìn)行數(shù)據(jù)交互時,通常使用PLC(可編程邏輯控制器)來完成,PLC 可配置多個數(shù)字量和模擬量輸入輸出模塊,以及各種通信模塊(如以太網(wǎng)、串口通信等),以連接多種不同的傳感器或其他監(jiān)測設(shè)備來實(shí)現(xiàn)數(shù)據(jù)采集,并集中保存在內(nèi)部寄存器中,可以對數(shù)據(jù)進(jìn)行使用和管理也可以通過通信接口傳遞給其他監(jiān)控設(shè)備或系統(tǒng)[9]。
本次研究中,采用仿真軟件ModSim32來模擬實(shí)時采集并保存在PLC 寄存器中的數(shù)據(jù)(圖3)。ModSim32 是Windows 應(yīng)用,用來模擬從設(shè)備(與之相對的是ModScan32,用于模擬主設(shè)備)[10],可以接收主設(shè)備發(fā)送的指令報文,根據(jù)窗口配置的數(shù)據(jù)返回主設(shè)備需要的指令報文,并可通過Modbus TCP 協(xié)議與網(wǎng)關(guān)進(jìn)行數(shù)據(jù)交互。在本研究中,寄存器地址對應(yīng)的模擬數(shù)據(jù)及其模擬方式如表1所示。
表1 ModSim32寄存器地址與數(shù)據(jù)對應(yīng)關(guān)系
圖3 ModSim32仿真軟件的使用
工業(yè)設(shè)備與工業(yè)物聯(lián)網(wǎng)云平臺之間進(jìn)行數(shù)據(jù)交互需要將從數(shù)據(jù)采集模塊中獲取的數(shù)據(jù)發(fā)送至云服務(wù)器,實(shí)現(xiàn)這一功能就需要一個連接工業(yè)設(shè)備與云服務(wù)器的中間模塊,可用的設(shè)備包括智能網(wǎng)關(guān)、嵌入式開發(fā)板、數(shù)據(jù)采集卡或軟件接口等。在工業(yè)物聯(lián)網(wǎng)領(lǐng)域,最常用的中間模塊設(shè)備是智能網(wǎng)關(guān),其需具備的基礎(chǔ)功能包括:協(xié)議解析、設(shè)備聯(lián)網(wǎng)、數(shù)據(jù)雙向傳輸?shù)?,除了基礎(chǔ)功能外,智能網(wǎng)關(guān)還可根據(jù)需求拓展其他功能,如數(shù)據(jù)緩存、邊緣計(jì)算、安全保障等[11]。
本研究中,采用在Windows 系統(tǒng)下可直接部署使用的開源網(wǎng)關(guān)軟件Neuron 作為連接ModSim32 仿真軟件與MQTT 云服務(wù)器的中間模塊。Neuron 是一款輕量級工業(yè)協(xié)議網(wǎng)關(guān)軟件,可運(yùn)行在各種邊緣硬件上,旨在解決設(shè)備數(shù)據(jù)難以統(tǒng)一訪問的問題。Neuron 通過將多種工業(yè)協(xié)議轉(zhuǎn)換成標(biāo)準(zhǔn)統(tǒng)一的物聯(lián)網(wǎng)MQTT 消息,進(jìn)行數(shù)據(jù)采集和遠(yuǎn)程控制,實(shí)現(xiàn)工業(yè)物聯(lián)網(wǎng)平臺與各種設(shè)備的互聯(lián)互通。開源模式下,僅支持智能網(wǎng)關(guān)的基礎(chǔ)功能,即通信協(xié)議解析與轉(zhuǎn)換,連接云服務(wù)器,以及數(shù)據(jù)的雙向傳輸。
2.2.1 Neuron的南向設(shè)備管理
仿真數(shù)據(jù)采集模塊的ModSim32 軟件作為南向設(shè)備,通過Modbus TCP協(xié)議與Neuron網(wǎng)關(guān)軟件連接,IP地址為測試所用的主機(jī)本地IP 地址,連接端口號為502,連接后在Neuron 管理平臺的界面如圖4 所示,連接后所要讀取或?qū)懭氲臄?shù)據(jù)列表如圖5 所示。南向連接設(shè)置完成,即可在“監(jiān)控”界面查看或修改(需具備寫入屬性)點(diǎn)位列表中對應(yīng)ModSim32的各項(xiàng)數(shù)據(jù)的仿真數(shù)值。
圖4 Neuron連接ModSim32
圖5 南向設(shè)備連接獲取的點(diǎn)位列表
2.2.2 Neuron的北向應(yīng)用管理
北向應(yīng)用的連接,即連接云服務(wù)器,此處以開源MQTT 云服務(wù)器EMQX為例,開啟MQTT服務(wù)器后,只需在應(yīng)用配置中輸入本機(jī)IP 地址(服務(wù)器部署在本地),端口號為1883,即可連接上EMQX云服務(wù)器,如圖6所示。
圖6 Neuron連接EMQX云服務(wù)器
進(jìn)一步地,在北向應(yīng)用管理的EMQX 頁面中,即可添加云服務(wù)器對Neuron 網(wǎng)關(guān)的訂閱主題,在該主題中,可自定義需要上傳的從南向設(shè)備中讀取的數(shù)據(jù),網(wǎng)關(guān)軟件將該主題按照MQTT 協(xié)議,封裝為JSON 格式的報文,發(fā)布到云服務(wù)器中,任何第三方MQTT 客戶端只需連接同一個節(jié)點(diǎn)的云服務(wù)器,訂閱該主題,即可獲取包含數(shù)據(jù)的報文。本次實(shí)驗(yàn)中Neuron發(fā)布的報文實(shí)例如圖7所示。
圖7 Neuron發(fā)布的主題報文
2.3.1 MQTT協(xié)議
云服務(wù)器是物聯(lián)網(wǎng)云平臺與智能網(wǎng)關(guān)等中間模塊進(jìn)行數(shù)據(jù)交互的交通樞紐,需要具備的基本功能包括接收來自各個客戶端的消息,以及向各個客戶端分發(fā)消息,在此基礎(chǔ)上,可增加連接管理,客戶端管理,數(shù)據(jù)管理,安全保障等功能。適用于工業(yè)物聯(lián)網(wǎng)的云服務(wù)器需要支持的通信協(xié)議包括MQTT協(xié)議、CoAP協(xié)議、AMQP協(xié)議、OPC UA 協(xié)議等。其中,在工業(yè)物聯(lián)網(wǎng)中最常用也是最簡潔高效的通信協(xié)議是MQTT 協(xié)議。MQTT(Message Queue Telemetry Transport)協(xié)議是一種輕量級、基于發(fā)布/訂閱(Publish/Subscribe)模式和消息隊(duì)列機(jī)制的通信協(xié)議。MQTT 協(xié)議分為客戶端和代理服務(wù)器兩個部分,客戶端負(fù)責(zé)連接到服務(wù)器、發(fā)布消息、訂閱主題等操作,代理服務(wù)器負(fù)責(zé)信息存儲、數(shù)據(jù)路由、消息傳遞等核心任務(wù)[12]。
2.3.2 開源MQTT服務(wù)器EMQX
本研究使用開源的MQTT服務(wù)器EMQX,EMQX是一款大規(guī)??蓮椥陨炜s的云原生分布式物聯(lián)網(wǎng)MQTT 消息服務(wù)器,開源版即可支持百萬個以內(nèi)的MQTT 連接及十萬以內(nèi)MQTT 消息每秒吞吐量,對于中小型項(xiàng)目來說性能已充足[13]。本研究將EMQX 服務(wù)器部署在Windows 系統(tǒng)下,進(jìn)入EMQX 后臺管理界面的連接管理頁面,可查看當(dāng)前連接狀態(tài),如圖8 所示。在訂閱管理頁面,可查看當(dāng)前所有客戶端的訂閱信息,如圖9所示。
圖8 EMQX連接管理頁面
圖9 EMQX訂閱管理頁面
2.4.1 物聯(lián)網(wǎng)云平臺開發(fā)工具Node-RED
物聯(lián)網(wǎng)云平臺的開發(fā)工具通常由提供云服務(wù)器的廠商提供,本研究在使用開源云服務(wù)器的前提下,采用開源工具Node-RED 來開發(fā)物聯(lián)網(wǎng)云平臺。Node-RED 是一個基于Node.js 并且使用可視化交互進(jìn)行編程的開源工具,它常用于物聯(lián)網(wǎng)、工作流等領(lǐng)域的開發(fā)。
Node-RED 提供了一個可視化的編輯器,讓用戶可以通過節(jié)點(diǎn)間的連接實(shí)現(xiàn)數(shù)據(jù)的處理和交換。在Node-RED 的編輯器中,每個節(jié)點(diǎn)表示一個操作項(xiàng),如設(shè)備、函數(shù)、流程控制等,連接線則表示數(shù)據(jù)流的傳輸方式。用戶可以在編輯器中拖拽不同類型的節(jié)點(diǎn)進(jìn)行配置,并將它們通過連接線連接起來,通過這些節(jié)點(diǎn)來創(chuàng)建一個完整的、可執(zhí)行的流程。
2.4.2 Node-RED連接MQTT服務(wù)器
Node-RED 可通過“mqtt in”節(jié)點(diǎn)連接MQTT 服務(wù)器,與MQTT服務(wù)器部署在同一本地主機(jī)的前提下,只需設(shè)置服務(wù)端的IP地址和端口號,即可與EMQX服務(wù)器建立連接[14],并選擇訂閱網(wǎng)關(guān)軟件Neuron發(fā)布的包含仿真數(shù)據(jù)報文的主題,即可獲取JSON格式的數(shù)據(jù)流,如圖10所示。
圖10 Node-RED連接EMQX
2.4.3 使用MySQL數(shù)據(jù)庫保存數(shù)據(jù)
Node-RED 支持使用多種數(shù)據(jù)庫存儲和管理數(shù)據(jù),如MySQL 和Sqlite 等[15],在本研究中,采用MySQL 數(shù)據(jù)庫存儲設(shè)備信息。首先在MySQL 數(shù)據(jù)庫管理平臺(本次實(shí)驗(yàn)使用的是SQLyog)中新建數(shù)據(jù)庫,并新建表,屬性與ModSim32仿真軟件中的一致,如圖11所示。
圖11 使用MySQL數(shù)據(jù)庫創(chuàng)建表
下一步在Node-RED 編輯器中使用“MySQL”節(jié)點(diǎn),輸入本地IP地址,默認(rèn)端口號3306,以及用戶密碼等登錄信息,即可與MySQL數(shù)據(jù)庫建立連接。建立連接后,可使用“function”節(jié)點(diǎn),編寫對數(shù)據(jù)庫進(jìn)行增刪改查的SQL語句,連接數(shù)據(jù)庫節(jié)點(diǎn)后便可對數(shù)據(jù)庫進(jìn)行操作。以保存數(shù)據(jù)為例,正確連接后即可將從EMQX 服務(wù)器讀取的訂閱數(shù)據(jù)信息,存儲到MySQL數(shù)據(jù)對應(yīng)表中,如圖12所示。
圖12 MySQL數(shù)據(jù)庫表中數(shù)據(jù)
2.4.4 使用Node-RED開發(fā)物聯(lián)網(wǎng)云平臺界面
Node-RED 可以通過“dashboard”節(jié)點(diǎn)集合進(jìn)行界面開發(fā),“dashboard”可使用的控件節(jié)點(diǎn)有按鈕、下拉列表、開關(guān)、滑塊、數(shù)字輸入、文本輸入、表單、日歷、顏色選擇器等,可做數(shù)據(jù)可視化的節(jié)點(diǎn)有文本顯示、儀表盤(多種形式)、圖表(折線圖、餅圖、柱形圖等),并且支持快速開發(fā)菜單欄控件,同時可通過節(jié)點(diǎn)管理,安裝更多控件節(jié)點(diǎn)。本研究中將簡單設(shè)置物聯(lián)網(wǎng)云平臺頁面布局,實(shí)現(xiàn)設(shè)備控制、數(shù)據(jù)可視化、歷史數(shù)據(jù)查詢和故障報警信息等功能,編輯器界面如圖13所示。
圖13 Node-RED編輯器界面
為驗(yàn)證遠(yuǎn)程監(jiān)控系統(tǒng)的可行性,搭建了磁懸浮鼓風(fēng)機(jī)試驗(yàn)硬件平臺,如圖14 所示。將遠(yuǎn)程監(jiān)控系統(tǒng)裝載在電腦上進(jìn)行遠(yuǎn)程試驗(yàn)測試。試驗(yàn)過程中,使用“gauge”節(jié)點(diǎn)中的可視化工具實(shí)時顯示風(fēng)量、壓力、噪聲和溫度的數(shù)值,并設(shè)置其表征顏色。當(dāng)顏色為紅色時表示數(shù)值過高,顏色為綠色時表示數(shù)值過低,觸發(fā)相應(yīng)的報警信息,并等待確認(rèn)。設(shè)備的當(dāng)前狀態(tài)讀取自ModSim32 的寄存器地址為40001 的數(shù)據(jù),并且可以通過“開啟”和“停止”按鈕寫入,云平臺控制臺界面如圖15所示。
圖14 磁懸浮鼓風(fēng)機(jī)
圖15 云平臺控制臺界面
采用實(shí)時更新的折線圖形式展示各個物理量隨著時間的變化情況,根據(jù)需要可選用餅圖、柱形圖等其他形式展示,并且可基于可視化數(shù)據(jù)做數(shù)據(jù)分析,效果如圖16所示。
圖16 云平臺數(shù)據(jù)可視化界面
數(shù)據(jù)從云服務(wù)器讀取后,經(jīng)過解析與處理,保存于MySQL 數(shù)據(jù)庫中,使用“table”節(jié)點(diǎn)進(jìn)行自定義展示,圖17~18 為云平臺的歷史數(shù)據(jù)展示界面及故障報警記錄界面。
圖17 云平臺歷史數(shù)據(jù)查詢界面
圖18 云平臺故障報警記錄界面
本研究中以基礎(chǔ)的設(shè)備控制和數(shù)據(jù)可視化展示功能為例,演示功能模塊的開發(fā)過程,實(shí)驗(yàn)結(jié)果表明:該遠(yuǎn)程監(jiān)控系統(tǒng)已打通了從數(shù)據(jù)采集模塊到物聯(lián)網(wǎng)云平臺模塊的數(shù)據(jù)交互通道,可以實(shí)現(xiàn)設(shè)備工作時的狀態(tài)實(shí)時監(jiān)控,接下來依托云平臺可根據(jù)項(xiàng)目實(shí)際需要自定義開發(fā)所需的功能,如用戶與權(quán)限管理、視頻監(jiān)控界面、組態(tài)管理等等。
隨著信息技術(shù)的飛速發(fā)展,工業(yè)物聯(lián)網(wǎng)作為數(shù)字化與智能化轉(zhuǎn)型的主要手段和工具已經(jīng)展現(xiàn)出強(qiáng)大的潛力。本文從企業(yè)的實(shí)際項(xiàng)目需求出發(fā),基于工業(yè)物聯(lián)網(wǎng)相關(guān)技術(shù),以鼓風(fēng)曝氣設(shè)備為研究對象,以MQTT 協(xié)議為主要框架,利用多個仿真軟件和開源平臺,針對性開發(fā)了一套可在線遠(yuǎn)程監(jiān)控和管理鼓風(fēng)曝氣設(shè)備的物聯(lián)網(wǎng)云平臺系統(tǒng),打通了從工業(yè)設(shè)備到物聯(lián)網(wǎng)云平臺的數(shù)據(jù)交互渠道,為傳統(tǒng)的鼓風(fēng)曝氣設(shè)備進(jìn)行數(shù)字化和信息化改造提供了設(shè)計(jì)思路和參考方向,也為制造企業(yè)進(jìn)行工業(yè)數(shù)字化轉(zhuǎn)型提供了實(shí)驗(yàn)平臺。隨著工業(yè)物聯(lián)網(wǎng)技術(shù)的不斷完善和發(fā)展,相信它將在未來更廣泛的應(yīng)用和推廣中發(fā)揮著更為重要的作用和價值,帶來更加良好的社會效益和經(jīng)濟(jì)效益。