基于 MQTT 網關連接 PLC 與阿里云物聯(lián)網平臺的工業(yè)物聯(lián)網系統(tǒng)
掃描二維碼
隨時隨地手機看文章
引 言
MQTT 已成為國內工業(yè)物聯(lián)網的首選云通信協(xié)議,尤其在大規(guī)模設備廠家遠程運維系統(tǒng)中采用 MQTT+SSL/TLS 已成標配。消息隊列遙測傳輸(Message Queuing Telemetry Transport,MQTT)是 IBM 開發(fā)的一種即時通信協(xié)議, 該協(xié)議支持所有平臺。但對于云平臺的程序員來說,如何將Modbus TCP,OPC-UA 等各種工業(yè)協(xié)議轉為 MQTT 是一個難題。由于云平臺軟件大部分采用 Java 語言開發(fā),基于JSON 格式的 MQTT 協(xié)議更易受到云平臺開發(fā)人員的喜愛。但對于工業(yè)自動化的工程師而言,MQTT 還是一個比較陌生的協(xié)議。針對這一實際問題,本文提出了 MQTT 網關的概念, 提供輕量級、支持 Publish/Subscribe 消息的推送模式,使設備與云平臺之間的通信更為簡單 [1-3]。
1 系統(tǒng)設計
1.1 總體方案設計
系統(tǒng)包含設備層和數(shù)據處理層。設備層包含現(xiàn)場不同廠商的 PLC 及 MQTT 網關。不同的 PLC 通過 OPC-UA 通信將數(shù)據發(fā)送至 MQTT 網關,再由 MQTT 網關將數(shù)據轉送至云平臺,本文使用阿里云作為云平臺,作為國內領先的云服務供應商,阿里云在物聯(lián)網領域可提供完整的解決方案,并能與其他云產品互通,為后續(xù)大數(shù)據分析和管理提供便利 [4]。
在數(shù)據處理層中的物聯(lián)網平臺支持設備使用 CoAP, MQTT,HTTPS 協(xié)議接入。IoT Studio 是阿里云針對物聯(lián)網場景提供的工具,它可覆蓋各物聯(lián)網行業(yè)核心應用場景,為物聯(lián)網開發(fā)服務提供移動可視化開發(fā)、Web 可視化開發(fā)、服務開發(fā)與設備開發(fā)等。本案例使用基于 Web 的可視化開發(fā)插件,用戶通過遠程輸入地址即可輕松實現(xiàn)對數(shù)據的讀取和寫入。此外后續(xù)還可以通過使用云數(shù)據庫結合機器學習 PAI 實現(xiàn)基于大數(shù)據的預測,或通過阿里云的其他服務實現(xiàn)更多功能,其總體框架如圖 1 所示。本文側重介紹前段通信的建立, 針對大數(shù)據分析不做詳細介紹。
系統(tǒng)中主要的設備為 MQTT 網關,MQTT 中定義了兩種對象,即客戶端和發(fā)布服務器。發(fā)布服務器是整個通信系統(tǒng)的網絡核心,可以連接多個客戶端,客戶端則作為框架中信息的產生者和接收者 :
(1)客戶端通過 Subscribe向發(fā)布服務器聲明自己想接收的 Topic信息 ;
(2)相關客戶端通過 Publish 向發(fā)布服務器上某個 Topic發(fā)布信息 ;
(3)發(fā)布服務器將該信息轉發(fā)到對該 Topic感興趣的客戶端。
MQTT 運行原理如圖 2 所示。
實驗中使用的 MQTT 網關采用 BECKHOFF 公司開發(fā)的TwinCAT 3 作為軟件平臺。TwinCAT 3 是一款基于IEC 61131 編程語言的自動化軟件,其工程環(huán)境完全集成在 Microsoft Visual Studio 框架中,除了系統(tǒng)配置、運動控制、I/O 控制之外,還可以進行編程和調試。
作為網關的輸入端,該平臺可以支持市面上 90% 以上的 通 信 協(xié) 議 , 如 OPC-UA/DA,Modbus TCP,EtherCAT, PROFINRET,EtherNET/IP,CANopen,DeviceNet,Profibus DP 等,可以真正實現(xiàn)與不同廠商 PLC 進行數(shù)據對接。作為網關的輸出端,連接互聯(lián)網后可以直接通過 MQTT 協(xié)議與阿里云的物聯(lián)網平臺進行數(shù)據對接 [5-6]。
1.2 MQTT 網關與物聯(lián)網平臺的連接
在物聯(lián)網平臺中建立連接,需在云端創(chuàng)建產品和對應設備。產品相當于某一類設備的集合,該類設備具有相同的功能,可以根據產品批量管理對應設備。
為了保證傳輸數(shù)據的安全性和可靠性, 每個設備需要具備物聯(lián)網平臺頒發(fā)的憑證才能連接, 憑證內容包含ProductKey,DeviceName 和 DeviceSecret,在云服務器中可以找到對應信息。設備憑證是設備與物聯(lián)網平臺交流的重要依據,需要在 PLC 程序中進行相關加載 [7-8]。
1.3 MQTT 網關與 PLC 的連接
為了收集現(xiàn)場不同 PLC 所采集的過程數(shù)據,需要將它們連接至 MQTT 網關。本文采用 OPC-UA 作為通信協(xié)議, OPC UA 技術在國內正形成一個熱潮,在工業(yè) 4.0、智能制造等領域被廣泛認可。OPC-UA 與 MQTT 網關采用客戶端 / 服務器的通信模式,這種對等方式可提供安全和確定的信息交換 [9-10]。
不同 PLC 供應商所提供的 OPC-UA 設置軟件略有不同, 在此不做過多介紹,可以在對應廠商的官網找到相關資料。MQTT 網關作為 OPC-UA 客戶端可以同時連接多個 OPC Server 的 PLC,其網絡拓撲如圖 3 所示。在本文中分別使用了 4 款不同系列的 PLC,分別為 SIEMENS 的 1500 和 1200 系列,F(xiàn)ESTO CECC 和 BECKHOFF CX2020 系列。
2 系統(tǒng)關鍵模塊功能的實現(xiàn)
2.1 MQTT 網關與物聯(lián)網平臺的連接
作為MQTT網關,TwinCAT3軟件可以通過庫文件“TC3_ IotBase.library”實現(xiàn)與 MQTTBroker的數(shù)據交互。網關可以收集下位機或本地所采集的數(shù)據,通過將數(shù)據進行 JSON格式的轉換上傳至云端,其結構示意如圖 4 所示。
2.1.1 MQTT 通信的建立
MQTT 網關的編程基于 IEC 61131-3 中的結構化文本, 與通信建立相關的主要代碼如下 :
2.1.2 物聯(lián)網平臺數(shù)據的 Publish/Subscribe
在 MQTT 中,數(shù)據的發(fā)送和接收通過 Publish/Subscribe 實現(xiàn),對應的 Topic 信息可以在云端設備信息中查閱,針對本次測試,對應的 Topic 如下 :
2.2 MQTT 網關與 PLC 的連接
將 4 臺 PLC 通過交換機連接,在各 PLC 中添加一個溫度變量傳輸至 MQTT 服務器來模擬效果,硬件連接如圖 5 所示。
圖 5 實際硬件連接
TwinCAT 3 OPC-UA Client 的設置界面中分別添加4 臺 PLC 的 Server 信息,其 URL 為 OPC UA Server 所在主機的 IP 地址 :端口號,例如 opc.tcp ://192.168.1.1 :4840,隨后找到節(jié)點名稱,即設備在 OPC UA Server 中的變量節(jié)點DisplayName 的值即可。
2.3 測試與結果
采集的溫度發(fā)送至 MQTT 網關,再傳輸至物聯(lián)網平臺后通過適當?shù)脑O置即可直接在控制臺信息中找到實時溫度數(shù)據,如圖 6 所示。

為了顯示更詳細的數(shù)據,如實時數(shù)據和歷史數(shù)據,可以在 IoT Studio Web 中進行可視化圖形界面的開發(fā),本案例將溫度數(shù)據與趨勢圖插件的數(shù)據源接口進行對接,設置好映射關系后,該可視化界面就完成了部署到云端的工作。最終用戶只要通過帶瀏覽器的手機、筆記本電腦直接打開網頁就能實時訪問數(shù)據,可視化界面如圖 7 所示。
圖 7 可視化界面
為測試系統(tǒng)的響應性能及網絡延時,每分鐘通過 PLC 向云端發(fā)送一條溫度數(shù)據以測試系統(tǒng)整體的實時性能,本實驗維持了 12 h, 取每小時的平均值, 最終的平均值為3.7 ms,其結果如圖 8 所示。
3 結 語
實驗表明該 MQTT 網關具有較高的安全性、可擴展性和實時性等優(yōu)點,能夠實現(xiàn)現(xiàn)場設備數(shù)據采集并連接至云服務器,對將來的大數(shù)據分析有著非常重要的指導意義。
本文僅是拋磚引玉,基于該 MQTT 的工業(yè)物聯(lián)網系統(tǒng)可用到更為廣泛的應用場景,比如基于大數(shù)據的設備預防性檢測等,希望大家在工業(yè) 4.0 的大環(huán)境下能夠更好地利用云資源。