朱建淼 賈 波 華金晶 汪圣華
浙江省安全生產(chǎn)科學(xué)研究院 浙江省安全工程與技術(shù)研究重點(diǎn)實(shí)驗(yàn)室
危險(xiǎn)源是安全生產(chǎn)和人身安全重要管控的內(nèi)容,一旦發(fā)生事故將對(duì)財(cái)產(chǎn)和人身構(gòu)成極大威脅。隨著社會(huì)的發(fā)展,由危險(xiǎn)源產(chǎn)生的重大災(zāi)害事故也屢屢發(fā)生,因此做好危險(xiǎn)源的管控尤為重要。目前重大危險(xiǎn)源監(jiān)測(cè)、監(jiān)控、預(yù)警技術(shù),已成為我國(guó)當(dāng)前安全科學(xué)領(lǐng)域研究熱點(diǎn),部分領(lǐng)域已經(jīng)推廣應(yīng)用了一系列監(jiān)測(cè)預(yù)警系統(tǒng),包括有限空間危險(xiǎn)性氣體檢測(cè)分析系統(tǒng)[1]、重大危險(xiǎn)源監(jiān)控系統(tǒng)[2]、尾礦庫(kù)在線監(jiān)控檢測(cè)系統(tǒng)等監(jiān)測(cè)監(jiān)控系統(tǒng)[3]。
在監(jiān)測(cè)系統(tǒng)無(wú)線架構(gòu)中,數(shù)據(jù)通訊一般采用服務(wù)器輪詢(xún)客戶(hù)端的方式,但當(dāng)某個(gè)客戶(hù)終端出現(xiàn)故障時(shí),往往會(huì)引起服務(wù)器資源的死鎖和浪費(fèi),導(dǎo)致其余終端數(shù)據(jù)通訊的阻塞。因此,本文根據(jù)安全生產(chǎn)中危險(xiǎn)源無(wú)線監(jiān)測(cè)工作中遇到的實(shí)際情況,提出了一種基于心跳包的數(shù)據(jù)通訊機(jī)制,詳細(xì)介紹了通訊模型并進(jìn)行了工程示范。
心跳包機(jī)制是實(shí)現(xiàn)網(wǎng)絡(luò)高效、高可靠性,保證危險(xiǎn)源監(jiān)測(cè)的正常運(yùn)行和服務(wù)不中斷的常用技術(shù),通過(guò)收發(fā)自定義協(xié)議的、定時(shí)的、循環(huán)發(fā)送的數(shù)據(jù)包,判斷節(jié)點(diǎn)是否在線。目前已廣泛用于網(wǎng)絡(luò)通信服務(wù)、故障檢測(cè)等領(lǐng)域。
對(duì)于存在大量數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)通信系統(tǒng),為了保證通信可靠,大多采用流式套接字,一般采用的是TCP協(xié)議,建立雙向、有序、無(wú)重復(fù)的數(shù)據(jù)流服務(wù)[4]。Socket連接一個(gè)運(yùn)行于客戶(hù)端(ClientSocket),另一個(gè)運(yùn)行于服務(wù)器端(ServerSocket),包含:服務(wù)器監(jiān)聽(tīng)、客戶(hù)端請(qǐng)求和連接確認(rèn)三個(gè)階段。連接建立后,客戶(hù)機(jī)和服務(wù)器之間就可以調(diào)用receive()和send()的函數(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)流的發(fā)送和接收,數(shù)據(jù)傳送結(jié)束后調(diào)用close()關(guān)閉。
基于Socket通信時(shí),實(shí)際應(yīng)用中經(jīng)常會(huì)出現(xiàn)服務(wù)器無(wú)法判斷客戶(hù)端狀態(tài),即:服務(wù)器無(wú)法區(qū)分客戶(hù)端是長(zhǎng)時(shí)間空閑還是掉線。所以,必須建立心跳包來(lái)判斷連接是否正常。而心跳數(shù)據(jù)包也是在服務(wù)器與客戶(hù)機(jī)之間建立連接后,循環(huán)調(diào)用receive()和send()來(lái)接收和發(fā)送一種自定義的特定數(shù)據(jù)包。
一般心跳包的主動(dòng)發(fā)包方可以是客戶(hù)也可以是服務(wù)端,由于考慮到危險(xiǎn)源在線監(jiān)測(cè)的數(shù)據(jù)單向性為主,本文以單服務(wù)器/多客戶(hù)機(jī)為基本模型,數(shù)據(jù)中心為服務(wù)器,DTU設(shè)備作為客戶(hù)端[5]。
根據(jù)危險(xiǎn)源監(jiān)測(cè)機(jī)制,心跳模型為:客戶(hù)終端主動(dòng)向服務(wù)器發(fā)送自定義心跳數(shù)據(jù)包,數(shù)據(jù)包含用于檢測(cè)連接的數(shù)據(jù)及終端標(biāo)識(shí),當(dāng)服務(wù)器收到心跳包數(shù)據(jù)后,通過(guò)后臺(tái)數(shù)據(jù)庫(kù)查詢(xún),直接反饋傳感器的查詢(xún)指令,利用DTU的透?jìng)鞴δ軐⒉樵?xún)指令發(fā)送至傳感器,當(dāng)傳感器返回監(jiān)測(cè)數(shù)據(jù)后,將查詢(xún)結(jié)果解析入庫(kù)。然后等待下一個(gè)心跳包,系統(tǒng)結(jié)構(gòu),如圖1。
圖1 數(shù)據(jù)通信系統(tǒng)結(jié)構(gòu)圖
監(jiān)測(cè)通訊初始化包括以下三個(gè)方面:
(1)設(shè)置心跳包的發(fā)送周期[6]。本項(xiàng)目工程應(yīng)用中,考慮到中國(guó)移動(dòng)的通訊效率及項(xiàng)目監(jiān)測(cè)的需求,心跳包頻率設(shè)置為30s/次,經(jīng)實(shí)踐檢驗(yàn),GPRS在線率和監(jiān)測(cè)數(shù)據(jù)的實(shí)時(shí)性均達(dá)到了項(xiàng)目預(yù)期目標(biāo),實(shí)現(xiàn)了良好的通訊效果。
(2)設(shè)置心跳包參數(shù)和通訊參數(shù)。在項(xiàng)目設(shè)計(jì)中,將設(shè)備標(biāo)識(shí)和心跳包指令融合為一,通過(guò)數(shù)據(jù)庫(kù)配置,獲取連接DTU的儀表查詢(xún)指令。同時(shí)做好DTU的透?jìng)魍ㄓ嵟渲?,主要參?shù)必須與傳感器一致。
(3)對(duì)獲取的查詢(xún)值進(jìn)行解析。將終端MODBUS協(xié)議的數(shù)據(jù)解析方式進(jìn)行配置,實(shí)現(xiàn)通信數(shù)據(jù)的轉(zhuǎn)換入庫(kù)。
以噴涂企業(yè)安全隱患重點(diǎn)區(qū)域噴漆房通風(fēng)管道通風(fēng)效率量化監(jiān)測(cè)和預(yù)警為例,將基于心跳包的Socket通信機(jī)制應(yīng)用于噴漆房通風(fēng)系統(tǒng)風(fēng)速風(fēng)量在線監(jiān)測(cè)系統(tǒng),依靠移動(dòng)互聯(lián)網(wǎng)GPRS無(wú)線傳輸實(shí)現(xiàn)對(duì)監(jiān)測(cè)對(duì)象的量化檢測(cè)和實(shí)時(shí)監(jiān)測(cè)。
項(xiàng)目在杭州市蕭山區(qū)杭州天宏焊接材料有限公司進(jìn)行了示范,現(xiàn)場(chǎng)將2臺(tái)風(fēng)速傳感器安裝于噴漆房通風(fēng)管道,通過(guò)現(xiàn)場(chǎng)的數(shù)據(jù)采集模塊、DTU模塊的整合應(yīng)用,實(shí)現(xiàn)了實(shí)時(shí)在線監(jiān)測(cè)。
風(fēng)速傳感器(英格瑪YGM305)。根據(jù)噴漆房有機(jī)溶劑易揮發(fā)、可燃、可爆的特性,選用基于伯努力方程和皮托管原理的防爆型管道式空氣風(fēng)量變速器,測(cè)量風(fēng)道截面積的平均流速,監(jiān)測(cè)范圍為0~30m/s,防護(hù)等級(jí)IP65,信號(hào)以4~20mA的兩線制輸出。
數(shù)據(jù)采集模塊(KonNaDC2000-A2-SMX 2400)。選用4路模擬輸入,1路485信號(hào)輸出的串口I/O聯(lián)網(wǎng)模塊,通過(guò)4~20mA的電流信號(hào)輸入轉(zhuǎn)換數(shù)字信號(hào)并以485串口的MODBUS協(xié)議進(jìn)行輸出。
DTU模塊(USR-GPRS-730)。具備網(wǎng)絡(luò)透?jìng)鞴δ埽瑢?shí)現(xiàn)DTU與網(wǎng)絡(luò)端的雙向透明傳輸。支持雙路網(wǎng)絡(luò)鏈接,可將數(shù)據(jù)向2個(gè)服務(wù)器發(fā)送,實(shí)現(xiàn)數(shù)據(jù)備份、遠(yuǎn)程異常診斷等功能。設(shè)備作為Client客戶(hù)端鏈接后,可自定義心跳注冊(cè)包做標(biāo)識(shí)。選用中國(guó)移動(dòng)物聯(lián)卡作為GPRS數(shù)據(jù)通信介質(zhì)。
串口通訊設(shè)置:數(shù)據(jù)采集模塊(KonNaDC2000-A2-SMX2400)默認(rèn)將設(shè)備串口參數(shù)設(shè)置為:9600,N,8,1,根據(jù)數(shù)據(jù)采集模塊參數(shù)要求,在DTU中的串口通信設(shè)置也設(shè)為9600,N,8,1。
網(wǎng)絡(luò)通訊設(shè)置:在DTU模塊(USR-GPRS-730)中將網(wǎng)絡(luò)通訊地址配置為服務(wù)器ip地址和鏈接端口,自定義心跳包標(biāo)識(shí)為Hearthzxh0004,根據(jù)中國(guó)移動(dòng)的通訊效率要求和系統(tǒng)實(shí)時(shí)監(jiān)測(cè)的需求,將心跳頻率設(shè)為30s/次。
監(jiān)測(cè)系統(tǒng)的數(shù)據(jù)流運(yùn)行分服務(wù)器和DTU客戶(hù)端的交互,主要由服務(wù)器(數(shù)據(jù)中心)、DTU模塊和前端傳感設(shè)備組成,將中國(guó)移動(dòng)物聯(lián)SIM卡置于DTU模塊,數(shù)據(jù)信號(hào)以GPRS模式通過(guò)INTERNET與服務(wù)器建立連接,由DTU的心跳包進(jìn)行通訊發(fā)起,服務(wù)器接收數(shù)據(jù)后判斷并解析是否為心跳包,確認(rèn)后,通過(guò)后臺(tái)配置庫(kù)獲取對(duì)應(yīng)的物聯(lián)設(shè)備查詢(xún)指令并發(fā)送給DTU,DTU通過(guò)透?jìng)髟O(shè)置將指令直接下發(fā)給物聯(lián)監(jiān)測(cè)設(shè)備,物聯(lián)監(jiān)測(cè)設(shè)備通過(guò)查詢(xún)指令反饋查詢(xún)結(jié)果的數(shù)據(jù)給服務(wù)器,服務(wù)器則通過(guò)MODBUS協(xié)議對(duì)查詢(xún)結(jié)果的數(shù)據(jù)進(jìn)行解析入庫(kù),完成數(shù)據(jù)的交互。數(shù)據(jù)流圖,如圖2。
圖2 系統(tǒng)交互數(shù)據(jù)流圖
在線監(jiān)測(cè)系統(tǒng)分為數(shù)據(jù)交互系統(tǒng)和監(jiān)測(cè)服務(wù)系統(tǒng),其中數(shù)據(jù)交互系統(tǒng)分成數(shù)據(jù)接收、發(fā)送指令、數(shù)據(jù)入庫(kù)三個(gè)模塊,實(shí)現(xiàn)基于心跳包的Socket數(shù)據(jù)通信交互機(jī)制的應(yīng)用。數(shù)據(jù)交互采集系統(tǒng)界面,如圖3。
數(shù)據(jù)交互入庫(kù)后,通過(guò)數(shù)據(jù)應(yīng)用層的開(kāi)發(fā),實(shí)現(xiàn)對(duì)監(jiān)測(cè)數(shù)據(jù)的有效管理和展示,監(jiān)測(cè)服務(wù)系統(tǒng)展示結(jié)果,如圖4。
圖3 噴漆房通風(fēng)系統(tǒng)風(fēng)速風(fēng)量數(shù)據(jù)采集交互系統(tǒng)
圖4 在線監(jiān)測(cè)數(shù)據(jù)展示界面-2017年8月11日
本文提出了一個(gè)基于心跳包的Socket通信解析模型,并將其應(yīng)用于一個(gè)C/S模型的噴漆房通風(fēng)系統(tǒng)風(fēng)速風(fēng)量數(shù)據(jù)采集系統(tǒng)。測(cè)試表明,通過(guò)使用心跳包的辨識(shí)進(jìn)行通信發(fā)起,實(shí)現(xiàn)了非廣播式的點(diǎn)對(duì)點(diǎn)通信,有利于提升系統(tǒng)的可靠性,極大的節(jié)省了網(wǎng)絡(luò)資源和服務(wù)器壓力,在基于無(wú)線網(wǎng)絡(luò)通信的危險(xiǎn)源遠(yuǎn)程監(jiān)控系統(tǒng)中具有良好的移植性和適用性。
[1] 黃文宏,李學(xué)盛,王海龍,等.典型石化有限空間危險(xiǎn)氣體在線監(jiān)控系統(tǒng)構(gòu)建[J].浙江化工,2011,42(6):25-27
[2] 蔣誠(chéng)航,李學(xué)盛.基于組態(tài)系統(tǒng)的重大危險(xiǎn)源儲(chǔ)罐監(jiān)控系統(tǒng)研究[C].安全生產(chǎn)應(yīng)急管理與安全信息化的實(shí)踐研究—2015浙江·第四屆安全科學(xué)與工程技術(shù)研討會(huì)論文集,浙江工業(yè)大學(xué),2015
[3] 楊杰,李青.地下位移實(shí)時(shí)監(jiān)測(cè)系統(tǒng)研究[J].中國(guó)計(jì)量學(xué)院學(xué)報(bào),2008,(1):41-46
[4] 陳元謀,吳長(zhǎng)奇.基于Socket的遠(yuǎn)程監(jiān)控的通信系統(tǒng)實(shí)現(xiàn)[J].計(jì)算機(jī)安全,2011,(3):60-62
[5] 劉志雄,余臻,陳燕萍. GPRS DTU 數(shù)據(jù)中心通信設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2007,20(12):23-24
[6] 胡志坤,何多昌,桂衛(wèi)華,等.基于改進(jìn)心跳包機(jī)制的整流遠(yuǎn)程監(jiān)控系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2008,28(2):363-366