呂元 夏振華 肖一帆












摘要:站在大數據與智能一體化的發展角度分析早期工業體系,存在三個顯著問題:①大量現場設備的分散管理造成了人力資源調度上的匱乏,信息交換的困難;②諸多的傳感器數據及工業信息采集無法實時同步更新;③針對每個現場設備的監管存在滯后性潛在隱患,容易造成財產流損。基于此,本文圍繞以PLC工業設備為例,通過將大量現場設備接入同一局域網下,利用物聯網終端設備對各PLC設施進行數據采集與管理,并通過MQTT(消息隊列遙測傳輸協議)協議上傳至云平臺進行數據的存儲與查詢,從而構建工業物聯網監管平臺,以此滿足管理人員對于讀取設備信息和監管維護設備的要求。
關鍵詞: MQTT;物聯網終端;PLC
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)10-0113-03
由于早期傳統工業時代,互聯網與科技發展緩慢,工業信息化水平落后,造成工業工廠之間被迫形成相互封閉的局面,使得在處理諸多突發問題時,工業信息存儲及數據交換存在困難,對事故與問題發生無法進行及時監管與分析。工作流程的推進也完全依賴現場人員對設備近距離操作。然而伴隨著互聯網時代的到來,構建工業物聯網監管平臺成為可能。因此,該系統設計目的皆為實現遠程操作下,實時準確地掌握設備的運行情況及工作進度,減少現場人員的工作量,實現跨區域的設備數據交換及物聯網終端模塊對PLC的管理與監控,從而改善工業生存環境。
1 系統簡介
含油污泥主要來源是油田和煉油廠,產生點可能來自開采、輸送、煉制和污水處理等工序[1]。本文以含油污泥處理設備為例,進行PLC遠程監控系統設計。將PLC遠程監控系統分為三個模塊,分別是數據采集模塊,數據傳輸模塊,云平臺模塊。其中數據采集模塊包括物聯網終端模塊和PLC控制器;數據傳輸模塊為MQTT協議上傳數據;云平臺模塊由服務器和數據庫構成。
2 設計方案與設計流程
首先,PLC控制器對工業現場設備各類傳感器數據進行采集。其次,物聯網終端模塊讀取PLC控制器的運行狀態,并訪問其數據寄存器中的數據。再經MQTT協議上傳至云平臺,保存在服務器的數據庫中。最終由工作人員進行增刪改查等操作,實現對PLC設備的參數讀寫,數據采集,狀態監控診斷,數據存儲與轉發等功能,完成對工業現場設備的遠程監管與控制。
因此,本系統分別針對數據采集模塊,數據傳輸模塊,云平臺模塊三個模塊進行設計。
2.1 數據采集模塊方案
由于PLC產品的人機接口與數據處理的管理能力存在技術局限。在通常的控制系統中,以計算機或工控機為上位機,完成數據通信。以PLC為下位機完成現場數據采集和設備控制,實現管理控制一體化[2]。
本系統中,為解決PLC控制器的數據傳輸標準問題,將西門子Snap7通信協議和Modbus TCP通信協議移植到物聯網終端模塊中,實現兼容不同型號的PLC設備的同時,保證數據傳輸標準的統一。
2.1.1 Snap7通信協議的實現
Snap7開發支持以太網S7協議通信,針對PLC-PC通信,與Profibus,Mpi相比具有很大優勢[3]。本系統中直接引用Snap7提供的動態鏈接庫Snap7.dll中的S7Client類,即PLC作為服務器,物聯網終端模塊樹莓派作為客戶端。
Snap7應用流程如下:
API中主要應用到的操作如下:
1) Administrative functions,系統操作,包含創建、銷毀客戶端對象,將客戶端對象連接到PLC,設置連接類型(PG/OP/S7Basic),設置連接的地址,本地和遠程TSAP等。
2) Data I/O functions,數據讀寫,包含讀寫數據區域,讀寫DB區域,讀寫IPU區域,讀寫定時器,讀寫計數器等。
3) Directory functions,提供PLC塊的詳細信息,包含AG塊數量,AG塊阻止列表等。
4) Date/Time functions,讀寫日期時間,包含讀取日期時間,設置日期時間等。
5) System info functions,系統診斷,包含讀取SZL-ID和SZL-Index,讀取系統狀態列表,返回CPU的序列號等。
其中SSL表征系統狀態列表。所有的診斷時間按出現的先后順序登錄在診斷緩沖區中,可以通過模塊信息和診斷緩沖區等查看系統狀態列表信息。使用Snap7調用接口即可獲取SSL內容。
PLC內部的數據共享區DB中存放著采集的數據,對此進行如下定義:
物聯網終端模塊中安裝Node.JS和Snap7庫。通過運行代碼實現對PLC數據寄存器中數據的讀取和寫入。
2.1.2 Modbus TCP通信協議的實現
物聯網終端模塊中安裝Modbus庫。PLC采集到的傳感器數據都存放在Modbus的保持寄存器中,分布在不同的地址范圍。通過對保持寄存器中的數據進行讀/寫的部分程序,運行程序從而獲取PLC信息。
2.2 數據上報功能實現
傳統工業生產過程中的數據通常只在局域網內傳輸,一般不會面臨第三方的惡意嗅探或竊取。然而,隨著工業物聯網的發展,工業生產過程中越來越多的重要數據需要突破局域網的限制,上傳至云端[4]。
本系統中數據傳輸采用了MQTT協議。其中,MQTT Broker的作用是對數據進行存儲與轉發,但不對數據進行處理。MQTT只是完成數據傳輸,但未對數據格式進行要求。考慮到閱讀性強,編寫簡潔,網絡傳輸效率高的特點,本系統采用JSON的數據格式進行數據上傳。數據下發包含的信息有:設備id,設備控制,操作節點,修改數值等。
2.3 云平臺
云平臺以服務器為核心,以MQTT協議為基礎。云平臺主要由搭建的MQTT Broker服務器和MongoDB數據庫組成。其中,MQTT Broker服務器用于接收物聯網終端模塊上傳的數據并對其進行中轉處理,數據庫主要用來存儲相關的設備信息和用戶操作日志。
2.3.1 EMQ X MQTT Broker 服務器
MQTT Borker服務器采用了發布/訂閱的形式實現雙向通信,支持服務端反向控制設備。訂閱者通過向服務器訂閱它需要的主題負載,發布者發布了一系列固有主題給服務器,服務器通過篩選處理發布者發布的這些主題,選擇出訂閱者需要的主題,然后將這個主題的信息發給訂閱者,訂閱者再處理服務器發過來的消息。
此處直接利用EMQ X官網提供的庫和各種插件,完成客戶端的連接,主題訂閱等功能,從而為物聯網終端模塊,作為客戶端連接MQTT Broker上傳設備及傳感器數據并訂閱下發的指令主題。
2.3.2 MongoDB 數據庫
數據庫存儲的數據包括設備的一切信息及用戶數據,本篇采用BSON結構對數據進行處理。由Node.js運行MongoDB模塊,從而連接到數據庫對數據進行處理。
3 測試及結果展示
物聯網終端設備收到MQTT下發的消息訂閱后,將PLC設備信息和傳感器數據進行采集,并打印到樹莓派界面中。根據測試圖可知,傳感器數據可以準確地上傳至物聯網終端。
為存儲多個PLC設備數據,可以通過設置不同id,修改DB數據共享區或Modbus保持寄存器的寄存器地址來實現。
遠程工作人員通過Windows連接MQTT客戶端,從平臺中訂閱“upload”主題,物聯網終端設備將采集到的PLC設備狀態和傳感器數據通過MQTT協議傳輸到云平臺,調出數據顯示。
由于系統前端采用的B/S架構模式,且物聯網終端模塊具有定位功能,登錄瀏覽器后,可通過選中工業現場設備的具體位置,實時查看PLC數據寄存器存儲的實時數據,數據可呈現成曲線或表格形式。測試圖中采用曲線形式,更加直觀反映數據變化。
管理員通過登錄自己的賬號,可遠程查詢實時數據或歷史數據。由于MongoDB數據庫能夠提供大容量存儲,所以可追溯一個月范圍內的歷史數據。管理員也可主動設置起始時間,靈活篩選顯示需要的設備數據。
4 總結
測試環節中,測試了PLC控制器對工業設備及傳感器數據的采集情況,并成功上傳至物聯網終端模塊,驗證了Snap7通信協議在Linux架構上的成功移植。其次,在Windows系統上通過云平臺訪問數據庫,訂閱主題,得到了工業現場的實時數據,達到了遠程實時監控設備的效果。
4G技術讓物聯網技術有了質的飛躍,5G技術讓萬物互聯得以更加的穩定,高效和安全,為實現物聯網工業監控提供了巨大的動力和幫助。隨著嵌入式領域的發展不斷趨向成熟,嵌入式成本也在不斷降低,這也為整個工業監控系統降低了不少成本。作為一個軟硬件緊密結合的最終系統,可以提高整個系統的可靠性[5]。經由以上的測試結果分析,基于MQTT的物聯網終端設備的PLC遠程工業監控系統能夠實際應用在工業體系中,并且有能力應對多臺工業設備同時工作的情況,達到良好的監管效果。
參考文獻:
[1] 李忠衛,李朝廷.含油污泥處理技術方案[J].油氣田環境保護,2020,30(1):40-43,62.
[2] 凌建華.關于上位機和西門子PLC通信的研究[J].計算機光盤軟件與應用,2014,17(20):305-306.
[3] 魏學舟,劉濤.基于Snap7的PLC上位機監控軟件開發[J].設備管理與維修,2018(14):129-131.
[4] 牛浩男.基于MQTT的工業物聯網接入平臺研究與設計[D].桂林:廣西師范大學,2018.
[5] 陳啟軍,余有靈,張偉.嵌入式系統及其應用:基于Cortex-M3內核和STM32F系列微控制器的系統設計與開發[M].2版.上海:同濟大學出版社,2014.
【通聯編輯:光文玲】
收稿日期:2021-05-27
作者簡介:呂元(1997—) ,男,山東鄒城人,在讀碩士,主要研究方向為嵌入式系統與物聯網技術;夏振華(1978—) ,男,湖北黃岡人,講師,博士,主要研究方向為網絡通信、智能控制、物聯網技術;肖一帆(2000—) ,男,湖北黃岡人,學士。