摘 要:隨著網(wǎng)絡(luò)技術(shù)與數(shù)字通信的飛速進(jìn)步,基于物聯(lián)網(wǎng)技術(shù)的燃?xì)膺h(yuǎn)程監(jiān)控系統(tǒng)提出了一種基于MQTT協(xié)議。MQTT最大優(yōu)點(diǎn)在于,可以以極少的代碼和有限的帶寬,為連接遠(yuǎn)程設(shè)備提供實(shí)時(shí)可靠的消息服務(wù)。從而成功實(shí)現(xiàn)了對(duì)智能燃?xì)饬髁坑?jì)與智能卡控制系統(tǒng)及安全報(bào)警系統(tǒng)的遠(yuǎn)程監(jiān)控。該系統(tǒng)對(duì)于提高燃?xì)庥?jì)量及管理的現(xiàn)代化水平具有重要的意義。
關(guān)鍵詞:MQTT協(xié)議;煤層氣;無(wú)線遠(yuǎn)程監(jiān)控
1 MQTT協(xié)議簡(jiǎn)介
是一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級(jí)”通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,由IBM在1999年發(fā)布。MQTT最大優(yōu)點(diǎn)在于,可以以極少的代碼和有限的帶寬,為連接遠(yuǎn)程設(shè)備提供實(shí)時(shí)可靠的消息服務(wù)。做為一種低開(kāi)銷(xiāo)、低帶寬占用的即時(shí)通訊協(xié)議,使其在物聯(lián)網(wǎng)、小型設(shè)備、移動(dòng)應(yīng)用等方面有較廣泛的應(yīng)用。
2 系統(tǒng)總體設(shè)計(jì)
2.1 系統(tǒng)架構(gòu)設(shè)計(jì)
圖1為基于MQTT協(xié)議的煤層氣無(wú)線遠(yuǎn)程監(jiān)控系統(tǒng)整體架構(gòu),系統(tǒng)基于工業(yè)云架構(gòu)引入了MQTT中間代理,B/S架構(gòu)軟件,移動(dòng)APP等新技術(shù),構(gòu)成了新一代的燃?xì)獗O(jiān)管控架構(gòu)。員工不再依靠單獨(dú)的傳統(tǒng)的調(diào)度中心,而是通過(guò)APP,網(wǎng)頁(yè)瀏覽等方式,實(shí)現(xiàn)了人人監(jiān)管、移動(dòng)監(jiān)管的新辦公方式。安全部門(mén)、調(diào)度中心、維保部門(mén)、巡線部門(mén)作為末端用戶,充分使用崗位對(duì)應(yīng)的軟件功能,提升了工作效率和質(zhì)量。
調(diào)度中心是公司內(nèi)部的管控中心,根據(jù)智慧燃?xì)庠破脚_(tái)和銘石SCADA系統(tǒng)實(shí)時(shí)監(jiān)控全市燃?xì)夤芫W(wǎng)壓力流量等信息。不僅可以查詢到今日用氣量的同比和環(huán)比信息,還可以通過(guò)預(yù)測(cè)模型,分析出明日用氣量和用氣分布。區(qū)別于傳統(tǒng)的調(diào)度方式,可以做到提前預(yù)知、提前部署。極大地釋放了人員工作壓力,緩解了用氣高峰時(shí)的用氣壓力,減少了用氣低谷時(shí)的浪費(fèi)。
安全部門(mén)通過(guò)基于MQTT協(xié)議的煤層氣無(wú)線遠(yuǎn)程監(jiān)控系統(tǒng)的實(shí)時(shí)展示、實(shí)時(shí)報(bào)警功能,能在兩分鐘之內(nèi)發(fā)現(xiàn)報(bào)警,響應(yīng)報(bào)警。通過(guò)智慧燃?xì)膺h(yuǎn)傳終端,將壓力,門(mén)禁,切斷閥狀態(tài)和泄漏報(bào)警等信息,實(shí)時(shí)傳送到智慧燃?xì)庠破脚_(tái)。平臺(tái)會(huì)根據(jù)事先錄好的信息,將具體報(bào)警信息例如超壓報(bào)警,門(mén)禁報(bào)警,泄漏報(bào)警等推送到指定安全人員的手機(jī)APP上。APP會(huì)記錄報(bào)警信息,處理狀態(tài),處理日期等信息,做到有記錄可查,責(zé)任定點(diǎn)到位。
2.2 系統(tǒng)安全設(shè)計(jì)
當(dāng)設(shè)備和系統(tǒng)暴露在公網(wǎng)環(huán)境中時(shí),就有可能遭受到網(wǎng)絡(luò)攻擊。所以在使用這些遠(yuǎn)傳監(jiān)控設(shè)備和網(wǎng)絡(luò)平臺(tái)時(shí),就必須有安全防護(hù)措施。煤層氣無(wú)線遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)了以下網(wǎng)絡(luò)安全防護(hù)的措施:
①賬號(hào)密碼驗(yàn)證;
②智能終端內(nèi)部需要設(shè)定指定的賬號(hào)、密碼、ip、端口,才能與MQTT代理服務(wù)器相連。消息以隊(duì)列形式存儲(chǔ)在MQTT代理服務(wù)器當(dāng)中,云平臺(tái)也是通過(guò)上述信息連接代理服務(wù)器,從中獲取信息。云平臺(tái)對(duì)外不提供數(shù)據(jù)接入的端口,保障了平臺(tái)及數(shù)據(jù)庫(kù)的安全性。云平臺(tái)根據(jù)已經(jīng)事先設(shè)定好的TOPIC,到代理服務(wù)器中獲取數(shù)據(jù)。沒(méi)有事先設(shè)定的數(shù)據(jù),不會(huì)被云平臺(tái)獲取;
③數(shù)據(jù)格式分析:智能終端按照規(guī)定格式發(fā)送數(shù)據(jù)。以統(tǒng)一的topic為鍵,不同類(lèi)型的設(shè)備按照規(guī)定發(fā)送相應(yīng)的payload,數(shù)據(jù)不涉及明文及具體含義。云平臺(tái)從代理服務(wù)器中接收到需要的數(shù)據(jù)后,進(jìn)行解密拆分,將相應(yīng)的數(shù)據(jù)存儲(chǔ)到服務(wù)器中。多余的數(shù)據(jù)會(huì)被代理服務(wù)器遺棄;
④數(shù)據(jù)加密:加密方式:AES-128-CBC。設(shè)備發(fā)送數(shù)據(jù)給平臺(tái),例如:平臺(tái)會(huì)記錄數(shù)據(jù)收發(fā)日志,對(duì)于非法數(shù)據(jù),會(huì)記錄其來(lái)源、數(shù)值等,下次在數(shù)據(jù)入口處,即可排除。并且上報(bào)系統(tǒng)管理員。
3 Modbus TCP/MQTT 協(xié)議網(wǎng)關(guān)設(shè)計(jì)
3.1 Modbus協(xié)議介紹
MODBUS是一種串行通信協(xié)議,是Modicon公司(現(xiàn)在的施耐德電氣Schneider Electric)于1979年為使用可編程邏輯控制器(PLC)通信而發(fā)表。Modbus已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標(biāo)準(zhǔn)(De facto),并且現(xiàn)在是工業(yè)電子設(shè)備之間常用的連接方式。MODBUS協(xié)議是一個(gè)master/slave架構(gòu)的協(xié)議。有一個(gè)節(jié)點(diǎn)是master節(jié)點(diǎn),其他使用MODBUS協(xié)議參與通信的節(jié)點(diǎn)是slave節(jié)點(diǎn)。每一個(gè)slave設(shè)備都有一個(gè)唯一的地址。在串行和MB+網(wǎng)絡(luò)中,只有被指定為主節(jié)點(diǎn)的節(jié)點(diǎn)可以啟動(dòng)一個(gè)命令(在以太網(wǎng)上,任何一個(gè)設(shè)備都能發(fā)送一個(gè)MODBUS命令,但是通常也只有一個(gè)主節(jié)點(diǎn)設(shè)備啟動(dòng)指令)。
3.2 實(shí)現(xiàn)形式
RTU與modbus協(xié)議的設(shè)備通過(guò)EIA-485接口相連。以流量計(jì)為例,RTU發(fā)送指令給流量計(jì)數(shù)據(jù),流量計(jì)返回一條帶有所有數(shù)據(jù)的十六進(jìn)制數(shù)據(jù)給RTU。RTU根據(jù)設(shè)備說(shuō)明書(shū),將這條數(shù)據(jù)拆分成標(biāo)況累積量、工況累積量、標(biāo)況流量、工況流量、壓力、溫度等數(shù)據(jù),并將數(shù)據(jù)整合加密,與其他EIA-485接口數(shù)據(jù)一同打包,通過(guò)MQTT模塊將數(shù)據(jù)發(fā)送至云平臺(tái)。
云平臺(tái)和SCADA系統(tǒng)之間的通信采用MODBUS/TCP方式。在數(shù)據(jù)發(fā)送之前雙方定義好點(diǎn)位表,即對(duì)應(yīng)數(shù)據(jù)位的數(shù)據(jù)意義。接口采用python語(yǔ)言開(kāi)發(fā),使用的是modbus_tk功能包。
第一步、綁定本機(jī)地址作為主站:
import socket
s = socket.socket(socket.AF_INET,
socket.SOCK_STREAM)
s.bind((‘192.168.254.29’,502))。
第二步、scada服務(wù)器通過(guò)上述綁定的地址連接網(wǎng)關(guān),發(fā)送一段指令給網(wǎng)關(guān)。指令中帶有起始地址、長(zhǎng)度、設(shè)備號(hào)等信息(例如:09 00 00 00 00 06 01 03 00 00 00 64)
第四步、網(wǎng)關(guān)接收到指令后會(huì)解析處設(shè)備號(hào),起始地址,長(zhǎng)度等信息。然后查詢處理數(shù)據(jù),根據(jù)點(diǎn)位表形成正確排列的數(shù)據(jù),并以約定好的數(shù)據(jù)格式以十六進(jìn)制返回到請(qǐng)求的原地址端口。
conn.send(bytes.fromhex(Res[‘hex’]))
4 監(jiān)控系統(tǒng)信息管理平臺(tái)
信息管理平臺(tái)包括數(shù)據(jù)接收模塊、數(shù)據(jù)處理模塊、數(shù)據(jù)分析模塊、數(shù)據(jù)轉(zhuǎn)發(fā)接口模塊、頁(yè)面展示模塊。數(shù)據(jù)接收模塊負(fù)責(zé)接收MQTT代理服務(wù)器的數(shù)據(jù)和接收其他來(lái)源的數(shù)據(jù),例如透?jìng)鞯闹卑l(fā)型流量計(jì)等。數(shù)據(jù)處理模塊負(fù)責(zé)解密數(shù)據(jù)并存儲(chǔ)進(jìn)數(shù)據(jù)庫(kù)。數(shù)據(jù)分析模塊負(fù)責(zé)分析數(shù)據(jù),并將數(shù)據(jù)展示在網(wǎng)站上。數(shù)據(jù)轉(zhuǎn)發(fā)接口模塊負(fù)責(zé)將數(shù)據(jù)轉(zhuǎn)發(fā)到組態(tài)軟件等別的平臺(tái)軟件上。頁(yè)面展示模塊負(fù)責(zé)將數(shù)據(jù)展示在網(wǎng)站上和APP上。
5 結(jié)論
本文針對(duì)煤層氣開(kāi)采過(guò)程中實(shí)時(shí)監(jiān)控的實(shí)際問(wèn)題,分析設(shè)計(jì)了煤層氣遠(yuǎn)程監(jiān)測(cè)系統(tǒng)。維保部門(mén)通過(guò)這套系統(tǒng),可以詳細(xì)記錄每個(gè)站點(diǎn)的設(shè)備信息。小到一塊皮膜的生產(chǎn)日期、使用壽命、維保記錄,大到調(diào)壓門(mén)站的安裝記錄等。巡線人員每日巡線的時(shí)候,使用APP可以詳細(xì)記錄巡線狀況,遇到的問(wèn)題,可能發(fā)生的故障等,形成每日巡線記錄表,防范問(wèn)題的發(fā)生。維修人員可以詳細(xì)記錄每一零部件的保養(yǎng)維修更換記錄,平臺(tái)可以生成詳細(xì)記錄,并且可以結(jié)合算法,預(yù)測(cè)零部件的保養(yǎng)時(shí)間,更換時(shí)間等。
參考文獻(xiàn):
[1]劉麗等.Citect工控組態(tài)軟件及其在輸氣管道SCADA系統(tǒng)中的應(yīng)用[J].工業(yè)控制計(jì)算機(jī),2001,14(1):36-38.
[2]張義星,孟國(guó)營(yíng)等.基于Citect的煤礦裝車(chē)監(jiān)控系統(tǒng)設(shè)計(jì)[J].煤炭工程,2012(5):120-122.
[3]衡軍山.基于雙CPU的冗余控制研究與實(shí)現(xiàn)[J].機(jī)床與液壓,2008,36(7):350-351.
作者簡(jiǎn)介:
朱光燦(1986- ),男,漢族,碩士,自動(dòng)化及網(wǎng)絡(luò)控制技術(shù)工程師。