王 勇
(1.煤炭科學(xué)技術(shù)研究院有限公司,北京 100013;2.煤炭資源高效開采與潔凈利用國家重點實驗室,北京 100013;3.北京市煤礦安全工程技術(shù)研究中心,北京 100013)
為滿足安全生產(chǎn)的需要,近年來煤礦企業(yè)已建設(shè)了安全監(jiān)控、人員定位、視頻監(jiān)控、井下廣播等系統(tǒng)。為及時獲取各安全系統(tǒng)的狀況,監(jiān)控人員需要隨時關(guān)注來自不同屏幕的數(shù)據(jù),但煤礦的數(shù)據(jù)量往往很大,通常無法在一個屏幕里完整的展現(xiàn),而圖形界面可以呈現(xiàn)出系統(tǒng)的全景,給人帶來直觀的感受;部分安全系統(tǒng)雖然提供圖形界面,但各廠商的標(biāo)準(zhǔn)不一致,顯示的效果差別很大,有時甚至連巷道圖的方向都不統(tǒng)一,更遑論將各系統(tǒng)的數(shù)據(jù)疊加在一張圖上展示了。分散的數(shù)據(jù)、迥異的圖形,使各系統(tǒng)成為“信息孤島”,無法實現(xiàn)聯(lián)動效應(yīng)。
提出了基于WebGIS 的煤礦安全多系統(tǒng)融合技術(shù),將安全監(jiān)控、人員定位、視頻監(jiān)控、井下廣播等系統(tǒng)的信息集中在WebGIS 界面中統(tǒng)一展示,并從各系統(tǒng)設(shè)備之間的邏輯關(guān)系層次進(jìn)行了關(guān)聯(lián),使得各種煤礦安全系統(tǒng)融合為一個整體,為進(jìn)一步促進(jìn)煤礦安全生產(chǎn)提供了技術(shù)支持。
基于 GeoServer、Open Layers 等開源軟件構(gòu)建WebGIS 平臺的研究[1-3],為煤礦安全領(lǐng)域的圖形監(jiān)控系統(tǒng)提供了開放的、低成本的解決方案。使用WebGIS 平臺來展示安全監(jiān)控系統(tǒng)設(shè)備的實時狀態(tài)或者展示人員定位系統(tǒng)的人員運行軌跡[4-5]的研究,為在一張圖中展示多系統(tǒng)數(shù)據(jù)的方法奠定了基礎(chǔ)。
在 GeoServer 中有工作區(qū)(Workspace)、數(shù)據(jù)源(Store)、圖層(Layer)、圖層組(Layer Group)和樣式(Style)的概念[6],理論上,可以為煤礦創(chuàng)建1 個工作區(qū),在這個工作區(qū)里將各系統(tǒng)使用的巷道、文字等Shape 數(shù)據(jù)源發(fā)布成圖層,并組合為圖層組。按系統(tǒng)分組的WebGIS 應(yīng)用如圖1,前端各系統(tǒng)分別調(diào)用OpenLayers 來訪問GeoServer 提供的網(wǎng)絡(luò)地圖服務(wù)(Web Map Service,WMS),在瀏覽器中顯示巷道、文字等圖層;通過訪問網(wǎng)絡(luò)要素服務(wù)(Web Feature Service,WFS)來獲取設(shè)備的位置和基本信息;使用自定義樣式來控制各系統(tǒng)中不同設(shè)備在WebGIS 中顯示的圖標(biāo);設(shè)備的實時數(shù)據(jù)和狀態(tài)可根據(jù)設(shè)備信息通過后端的業(yè)務(wù)服務(wù)獲取。
圖1 按系統(tǒng)分組的WebGIS 應(yīng)用Fig.1 WebGIS application grouped by system
該方案有3 大不足之處:①需要為每個系統(tǒng)單獨發(fā)布包括巷道和文字在內(nèi)的底圖,如各系統(tǒng)底圖不一致,疊加在一起顯示會出現(xiàn)混亂;②伴隨著井下生產(chǎn)活動,底圖需要經(jīng)常更新,系統(tǒng)數(shù)量越多,更新復(fù)雜度越高;③煤礦往往無法提供井下設(shè)備安裝位置的坐標(biāo)數(shù)據(jù),前端系統(tǒng)無法通過WFS 服務(wù)自動安排設(shè)備位置。
為了解決按系統(tǒng)分組帶來的不便,對以上方案進(jìn)行了調(diào)整?!耙粡垐D”模式的WebGIS 應(yīng)用如圖2,在GeoServer 的工作區(qū)中發(fā)布1 套公用的底圖,前端通過地圖管理器調(diào)用OpenLayers 訪問WMS,將底圖在瀏覽器中顯示出來。
圖2 “一張圖”模式的WebGIS 應(yīng)用Fig.2 Application of“one map”model in WebGIS
在WebGIS 上展示的各系統(tǒng)被抽象成系統(tǒng)服務(wù),可根據(jù)煤礦實際情況配置是否啟用,由服務(wù)管理器來啟動或停止;每個服務(wù)至少包含1 個設(shè)備圖層,可根據(jù)使用者的需要顯示或隱藏;為減少系統(tǒng)的耦合性,各服務(wù)完全獨立,僅通過消息與其他服務(wù)通信。
前端分為編輯和監(jiān)控2 種模式。在編輯模式下,管理員從設(shè)備樹中將各系統(tǒng)的設(shè)備拖拽到底圖相應(yīng)的位置上,設(shè)備管理器會把該設(shè)備添加到系統(tǒng)對應(yīng)的設(shè)備圖層中,并通過Ajax 請求將設(shè)備的編號、系統(tǒng)、坐標(biāo)等信息發(fā)送給后端的位置服務(wù),保存在數(shù)據(jù)庫中。在監(jiān)控模式下,各系統(tǒng)已安排位置的設(shè)備會顯示在對應(yīng)的設(shè)備圖層中,并定時更新數(shù)據(jù)和狀態(tài),實現(xiàn)在一張圖上展示多系統(tǒng)數(shù)據(jù)。
該方案的優(yōu)點如下:①管理員只需維護(hù)1 份底圖,工作量大幅減小,也不會出現(xiàn)底圖互相沖突的情況;②管理員能夠以所見即所得的方式安排設(shè)備位置,解決了因缺少設(shè)備坐標(biāo)而無法自動布置的問題,后期維護(hù)的工作量很小;③各業(yè)務(wù)系統(tǒng)可獨立運行,減少了系統(tǒng)的耦合性,方便部署、維護(hù)和擴展。
各系統(tǒng)的設(shè)備之間存在一定的邏輯關(guān)聯(lián),比如某個區(qū)域的瓦斯超限,應(yīng)該觸發(fā)該區(qū)域的井下廣播設(shè)備播報警告,并通過該區(qū)域的人員定位基站向周圍的人員發(fā)送撤離通知。
要實現(xiàn)多系統(tǒng)之間的關(guān)聯(lián),首先要從區(qū)域中篩選出相關(guān)的設(shè)備,步驟如下:①在WebGIS 中繪制1個區(qū)域,由于區(qū)域可能是不規(guī)則圖形,這里調(diào)用OpenLayers 的繪圖交互功能(ol.interaction.Draw)繪制1 個多邊形(ol.geom.Polygon);②獲取這個多邊形的幾何形狀(ol.geom.Geometry);③通過該幾何形狀的intersectsCoordinate 方法,與某一設(shè)備圖層中所有設(shè)備的坐標(biāo)進(jìn)行對比,將坐標(biāo)在區(qū)域中的設(shè)備加入集合中;④重復(fù)步驟③),直到所有的設(shè)備圖層都檢查完畢;⑤返回坐標(biāo)在區(qū)域中的設(shè)備集合。
該方法的優(yōu)點是,計算完全在前端實現(xiàn),無需使用網(wǎng)絡(luò)要素服務(wù)(Web Feature Service,WFS),簡單靈活。不過,因為二維GIS 的局限,有時看起來在平面上距離接近的設(shè)備,可能會處于不同的水平位置,實際上并不在同一區(qū)域,此時需要輔以人工判斷。接下來設(shè)置設(shè)備之間的邏輯關(guān)系,發(fā)送給后端的業(yè)務(wù)服務(wù),保存在數(shù)據(jù)庫中。這里,安全監(jiān)控系統(tǒng)的傳感器是關(guān)聯(lián)的發(fā)起者,其他系統(tǒng)的設(shè)備是關(guān)聯(lián)的響應(yīng)者。
當(dāng)后端的業(yè)務(wù)服務(wù)監(jiān)測到煤礦安全監(jiān)控系統(tǒng)的關(guān)鍵傳感器發(fā)生報警時,將關(guān)聯(lián)報警消息通過WebSockets[7]推送給前端的安全監(jiān)控服務(wù),該消息包含觸發(fā)報警的傳感器編號、報警內(nèi)容、關(guān)聯(lián)系統(tǒng)的設(shè)備編號。使用WebSockets 實現(xiàn)事件驅(qū)動的響應(yīng),前端無需通過輪詢后端服務(wù)獲取數(shù)據(jù),可以大幅減少前端的等待時間,提升服務(wù)器的響應(yīng)能力[8-9]。在WebGIS 中展示的關(guān)聯(lián)報警流程如圖3。
安全監(jiān)控服務(wù)通過CustomEvent[10]廣播“聯(lián)動報警”消息,所有監(jiān)聽“聯(lián)動報警”消息的服務(wù)都會收到該消息,根據(jù)消息中包含的編號查找本系統(tǒng)設(shè)備圖層中的設(shè)備,并執(zhí)行相應(yīng)的報警動作。當(dāng)后端監(jiān)測到安全監(jiān)控系統(tǒng)的關(guān)鍵傳感器報警停止時,通過WebSockets 把報警停止消息推送給前端,安全監(jiān)控服務(wù)通過CustomEvent 廣播“停止報警”消息,各服務(wù)接收到消息后停止報警。
當(dāng)安全監(jiān)控系統(tǒng)的高濃激光甲烷傳感器超限報警時(圖4),高濃激光甲烷傳感器、人員定位系統(tǒng)的關(guān)聯(lián)讀卡器、井下廣播系統(tǒng)的關(guān)聯(lián)擴播器、視頻監(jiān)控系統(tǒng)的關(guān)聯(lián)攝像頭均產(chǎn)生報警動畫,提醒監(jiān)控人員注意;同時,視頻監(jiān)控系統(tǒng)的關(guān)聯(lián)攝像頭還自動彈出實時監(jiān)控視頻。
圖3 在WebGIS 中展示的關(guān)聯(lián)報警流程Fig.3 Displaying associated alarm in WebGIS
圖4 前端監(jiān)控模式融合報警Fig.4 Fusion alarm of front-end monitoring mode
基于WebGIS 技術(shù),在“一張圖”平臺上展現(xiàn)煤礦安全監(jiān)控、人員定位、視頻監(jiān)控、井下廣播等安全系統(tǒng)的信息,從邏輯層次實現(xiàn)各系統(tǒng)的聯(lián)動,解決了煤礦不同監(jiān)控系統(tǒng)在同一GIS 平臺上的整體應(yīng)用,以較低的代價提升了煤礦安全生產(chǎn)管理的層次。