董 敏,趙宗濤
(西安思源學(xué)院 陜西 西安 710038)
隨著煤礦行業(yè)井下環(huán)網(wǎng)平臺(tái)的普及和通信技術(shù)的快速發(fā)展,國(guó)家安監(jiān)局對(duì)煤礦安全監(jiān)控系統(tǒng)的數(shù)據(jù)采集實(shí)時(shí)性和準(zhǔn)確性有了更高的要求。《AQ6201-2019煤礦安全監(jiān)控系統(tǒng)通用技術(shù)要求》[1]中明確規(guī)定安全監(jiān)控系統(tǒng)最大巡檢周期應(yīng)不大于20 s,比《AQ6201-2006煤礦安全監(jiān)控系統(tǒng)通用技術(shù)要求》的規(guī)定快了10 s。地面遠(yuǎn)程控制時(shí)間應(yīng)不大于兩倍的巡檢周期。保證煤礦安全監(jiān)控系統(tǒng)數(shù)據(jù)采集的準(zhǔn)確性和實(shí)時(shí)性,除了對(duì)監(jiān)測(cè)分站、通信接口和傳感器等硬件產(chǎn)品設(shè)計(jì)需加強(qiáng)抗干擾能力,還需要在網(wǎng)絡(luò)傳輸層和軟件應(yīng)用層進(jìn)行合理設(shè)計(jì),軟硬件共同協(xié)作,以滿足數(shù)據(jù)采集的可靠性和實(shí)時(shí)性。
在設(shè)計(jì)煤礦安全監(jiān)控系統(tǒng)的實(shí)時(shí)數(shù)據(jù)采集時(shí),主要對(duì)應(yīng)用層的通信方式和網(wǎng)絡(luò)傳輸層進(jìn)行了改進(jìn),工作方式設(shè)為無(wú)主方式,網(wǎng)絡(luò)傳輸層為UDP方式,使實(shí)時(shí)數(shù)據(jù)采集的巡檢周期不斷降低。在256個(gè)監(jiān)測(cè)點(diǎn)的容量下,一個(gè)巡檢周期小于10 s。本設(shè)計(jì)對(duì)其他監(jiān)測(cè)監(jiān)控通信設(shè)計(jì)有很大的借鑒意義。
利用計(jì)算機(jī)技術(shù)、傳感技術(shù)、網(wǎng)絡(luò)技術(shù)、數(shù)據(jù)庫(kù)技術(shù)等對(duì)煤礦甲烷濃度、一氧化碳濃度、風(fēng)速、風(fēng)壓、溫度、煙霧、饋電狀態(tài)、風(fēng)門狀態(tài)、局部通風(fēng)機(jī)開停狀態(tài)、主要通風(fēng)機(jī)開停狀態(tài)等環(huán)境及工況參數(shù)進(jìn)行連續(xù)監(jiān)測(cè),將采集到的監(jiān)測(cè)數(shù)據(jù)實(shí)時(shí)傳送到地面中心,并實(shí)現(xiàn)甲烷超限聲光報(bào)警、斷電和甲烷風(fēng)電閉鎖功能,系統(tǒng)主要由地面監(jiān)控中心和井下傳輸接口、分站、傳感器、斷電控制器、聲光報(bào)警器、電源箱、避雷器等設(shè)備組成[2]。煤礦安全監(jiān)控系統(tǒng)架構(gòu)如圖1所示。
目前煤礦安全監(jiān)控系統(tǒng)的通信主要為主從輪詢方式居多,即中心站逐次對(duì)井下監(jiān)測(cè)分站進(jìn)行呼叫讀取數(shù)據(jù)。最大巡檢時(shí)間測(cè)試時(shí),傳感器處于其傳輸最大距離和最低波特率的條件之下,監(jiān)控中心對(duì)一臺(tái)分站進(jìn)行數(shù)據(jù)讀取所需的最長(zhǎng)時(shí)間T和監(jiān)控中心接收完畢上一包分站數(shù)據(jù)到開始讀取分站數(shù)據(jù)的間隔時(shí)間△T,N為監(jiān)測(cè)容量,根據(jù)公式(△T+T)×N計(jì)算出巡檢周期估計(jì)值,根據(jù)實(shí)驗(yàn)值,最小巡檢周期>25 s。
本設(shè)計(jì)的網(wǎng)絡(luò)架構(gòu)基于煤礦的工業(yè)以太環(huán)網(wǎng)架構(gòu),地面監(jiān)控中心和井下n個(gè)監(jiān)測(cè)分站,采用無(wú)主通信方式。井下各個(gè)監(jiān)測(cè)點(diǎn)按50 Hz采樣頻率采集數(shù)據(jù),轉(zhuǎn)換成數(shù)字信號(hào)并按應(yīng)用層定義的協(xié)議打包,通過(guò)UDP套接字實(shí)時(shí)主動(dòng)發(fā)送到監(jiān)控中心[3]。通信架構(gòu)如圖2所示。
UDP通信核心建立在煤礦安全監(jiān)控系統(tǒng)通信的傳輸層。每個(gè)數(shù)據(jù)報(bào)中包含了完整的地址信息,提供面向事務(wù)的信息傳送服務(wù)。傳輸數(shù)據(jù)之前,監(jiān)測(cè)主機(jī)和分站不需要建立連接,傳輸速度快,線路上的傳輸速度10 M/100 M字節(jié)自適應(yīng)。為增強(qiáng)數(shù)據(jù)傳輸服務(wù)性能,將網(wǎng)絡(luò)層與傳輸層兩者通過(guò)數(shù)據(jù)流形式融合,傳輸層通過(guò)分段,以流量控制和差錯(cuò)控制來(lái)控制通信的可靠性,每個(gè)段都包含1個(gè)源端口號(hào)、目的端口號(hào)和序列號(hào),這些號(hào)碼有助于引導(dǎo)每個(gè)段指向正確的應(yīng)用程序,序列號(hào)有助于按照正確的順序重新組合段,以便監(jiān)測(cè)中心收到正確的消息。煤礦安全監(jiān)控系統(tǒng)UDP數(shù)據(jù)采集流程如圖3所示。
流控制主要是為了確保監(jiān)控中心接收方不會(huì)被快速的發(fā)送數(shù)據(jù)方淹沒(méi)。系統(tǒng)設(shè)計(jì)兩種流控制方法:一種是基于發(fā)送頻率的流控制,系統(tǒng)設(shè)置內(nèi)置機(jī)制,根據(jù)監(jiān)測(cè)容量靈活調(diào)整發(fā)送方傳輸數(shù)據(jù)的頻率,默認(rèn)監(jiān)測(cè)分站每3秒鐘發(fā)送一包數(shù)據(jù),同時(shí)在監(jiān)測(cè)分站和監(jiān)控中心軟件分別設(shè)置數(shù)據(jù)緩存池來(lái)平衡收發(fā)雙方的速度,這樣無(wú)需利用接收方的反饋消息。另一種在流量控制中,控制傳輸?shù)臄?shù)據(jù)量,每包數(shù)據(jù)控制在300個(gè)字節(jié)以內(nèi),在以太環(huán)網(wǎng)平臺(tái)10 M/100 M 自適應(yīng)的速率下,保證數(shù)據(jù)可靠傳輸。
應(yīng)用層數(shù)據(jù)協(xié)議基于Modbus UDP協(xié)議進(jìn)行改進(jìn),在Modbus RTU協(xié)議上加入可靠的MBAP報(bào)文協(xié)議頭,加CRC校驗(yàn)碼,并在軟件設(shè)計(jì)中加入智能重發(fā)機(jī)制、大數(shù)據(jù)包智能分包重組機(jī)制,加強(qiáng)數(shù)據(jù)的可靠性。協(xié)議如表1所示。

表1 煤礦安全監(jiān)控系統(tǒng)通信數(shù)據(jù)協(xié)議
監(jiān)測(cè)分站主要由帶有EMC防護(hù)的數(shù)據(jù)采集電路、控制輸出電路、單片機(jī)系統(tǒng)、顯示電路、復(fù)位電路、通訊串口服務(wù)器電路以及帶有EMC防護(hù)的電源電路組成。監(jiān)測(cè)分站原理框圖如圖4所示。
軟件采用基于.Net Framework 框架的c#開發(fā),.Net Framework對(duì)Socket進(jìn)行了封裝,提供System.Net.Sockets命名框架,其中包含UdpClient類,提供用于異步模式下發(fā)送和接收無(wú)連接 UDP 數(shù)據(jù)報(bào)的方法,使用JoinMulticastGroup 方法接收和發(fā)送多播數(shù)據(jù)報(bào)[4-5]。在C# 中,System.Threading.Thread類用于線程的工作,此處給出UDP通信代碼:
監(jiān)測(cè)分站采用STM32F407芯片,采用C語(yǔ)言編程,編程代碼如下:
本實(shí)驗(yàn)按【安標(biāo)字[2017]36號(hào)】文件煤礦安全監(jiān)控系統(tǒng)升級(jí)改造方案檢驗(yàn)方法進(jìn)行檢驗(yàn),具體的方法如下。
(1)中心站設(shè)備:安裝系統(tǒng)軟件的主機(jī)2臺(tái),核心交換機(jī)1臺(tái)。
(2)井下設(shè)備:三臺(tái)環(huán)網(wǎng)交換機(jī),與地面核心交換機(jī)組成環(huán)網(wǎng)。3臺(tái)接滿16臺(tái)傳感器的監(jiān)測(cè)分站,外加13臺(tái)定義16臺(tái)傳感器可不實(shí)際接傳感器的模擬監(jiān)測(cè)分站。
巡檢周期測(cè)試時(shí),傳感器應(yīng)處于其傳輸最大距離和最低波特率的條件之下。
(1)將全部分站(包括模擬分站)投入使用,所有分站均采用程序模擬報(bào)警,同時(shí)產(chǎn)生所有測(cè)點(diǎn)報(bào)警并開始計(jì)時(shí),直到主機(jī)顯示全部報(bào)警相關(guān)信息停止計(jì)時(shí),所測(cè)時(shí)間為T。測(cè)試5遍,取最大值T1,該時(shí)間為巡檢所有分站的時(shí)間。
(2)將1臺(tái)滿載傳感器的監(jiān)測(cè)分站投入使用,測(cè)試1臺(tái)分站上傳的巡檢時(shí)間T2。測(cè)試5遍,取最大值。最大巡檢周期計(jì)算使用如下公式:
通過(guò)專用誤碼率測(cè)試軟件進(jìn)行測(cè)試,測(cè)試流程為,軟件與按(1)中的架構(gòu)采集數(shù)據(jù),錯(cuò)一個(gè)字節(jié)記一次誤碼,連續(xù)采集50億位數(shù)據(jù)。
最大巡檢周期實(shí)驗(yàn)數(shù)據(jù)如表2所示。

表2 實(shí)驗(yàn)數(shù)據(jù) 單位:s
通過(guò)設(shè)計(jì)實(shí)驗(yàn)方法和數(shù)據(jù)可看出,提高煤礦安全監(jiān)控系統(tǒng)的數(shù)據(jù)采集的可靠性和實(shí)時(shí)性是個(gè)綜合的因素,與軟件平臺(tái)的設(shè)計(jì)、硬件產(chǎn)品、網(wǎng)絡(luò)架構(gòu)的設(shè)計(jì)方法都有聯(lián)系。通過(guò)實(shí)驗(yàn)的運(yùn)行和數(shù)據(jù)分析,發(fā)現(xiàn)不能一味加快通信速率,還需要考慮數(shù)據(jù)的可靠性。本文的設(shè)計(jì)方法對(duì)其他監(jiān)控系統(tǒng)具有積極的參考意義。
本文基于UDP的數(shù)據(jù)傳輸和C#多線程開發(fā),實(shí)現(xiàn)了煤礦安全監(jiān)控系統(tǒng)實(shí)時(shí)數(shù)據(jù)采集的網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)和程序的軟件設(shè)計(jì),對(duì)UDP無(wú)流程控制及保證數(shù)據(jù)的可靠性提供了解決方案,并對(duì)系統(tǒng)進(jìn)行了實(shí)驗(yàn)結(jié)果分析。