林航 張引強 陸俊
【摘要】 本文介紹了結合物聯網技術的設備狀態監測系統的實現方式,如何設計雙向通信模型解決服務器與客戶端間數據高頻實時傳輸以及服務器與大量集中器同時通訊的問題,實現對大量資產設備的在線監測、消息告警、跟蹤管理。
【關鍵字】 電力設備 狀態監測 物聯網 雙向通信
一、引言
近年來,在國家政府的大力支持下,物聯網產業得到長足的發展。物聯網的用途廣泛,可運用于城市公共安全、工業安全生產、環境監控、智能交通、智能家居、公共衛生、健康監測等多個領域,主要是從應用出發,利用互聯網、無線通信技術進行業務數據的傳送,是互聯網、移動通信網應用的延伸,是自動化控制、遙控遙測及信息應用技術的綜合展現。物聯網應用于資產監測能夠帶來信息的實時性、提高便利性、有利于安全管理、提升信息化程度。[1]
要實現覆蓋全省十幾個地市上百個通信站點上萬臺機柜,獲取大約十萬采集點的實時狀態監測數據,檢測出任一設備的位置或者異常狀況,采用過去那種高頻率請求服務器的方法來獲取設備的狀態對服務器的壓力很大,為此,我們研究并設計雙向通信模型,引入SignalR庫,構造實時的消息處理機制[2],建立持久連接的應用系統[3][4]。本系統結合物聯網技術,通過信息傳感設備按約定的通信協議,將物與物、人與物連接起來,通過各種接入網、互聯網進行信息交換,獲取實時可靠的在線資產狀態數據,以實現資產設備智能化識別、定位、跟蹤、監控和管理。
二、設備狀態監測系統實現方式
在通信站點中常見的場景有調撥設備、維修設備、攜帶設備進出房間等,設備的管理信息全靠人工去維護費時費力且容易疏漏,尤其在上百個站點間信息互通也很困難。設計設備狀態監測系統結合射頻識別和傳感器等物聯網技術,即可構建包含數量龐大的設備的物聯網絡,在線監測設備資產的位置、溫度、濕度等重要指標,實現在站點之間傳遞實時狀態信息,完全發揮物聯網的優勢。
設備狀態監測系統以全省地市為單位劃分區域,區域內包含站點的通信機房,對機房的資產采用機柜到機框到設備逐層定位的方法,標識出一個設備的具體位置。設備在系統中可能具有的狀態包括:正常、移出、新增等。設備的狀態是根據閱讀器掃描的結果對比分析系統中已注冊的數據得出的。設備的性能指標如溫度、濕度、浮塵由閱讀器實時采集獲得,與標準值(在系統中設定)比較來判斷是否需要發出指標異常告警。
三、實時雙向通信模型設計
設備狀態監測系統不僅跟數據集中器通信來采集設備狀態信息,同時還高效的分析數據,加工整合出操作人員需要看到的那一部分。我們給設備狀態監測系統設計了主站系統和后端服務兩個子系統。主站系統使用B/S結構,使用瀏覽器即可訪問,它負責展示資產監測狀況。后端服務部署后在后臺7x24小時自動運行,無需人工干預,它負責監聽物聯網網關,采集資產設備的狀態數據。那么在主站系統與后端服務乃至物聯網網關間需要一條通信線路保持數據的傳遞及時準確,并且要能承擔大數據量的壓力。我們采用了SignalR搭建一個雙向通信模型來支撐網絡通信。
在系統中后臺服務能監聽多個物聯網網關,如圖1所示。網關周期性(可設置周期大小)的往指定端口發送數據包,數據包中包含此次采集的設備狀態信息。服務在端口監聽到數據包時,依照自定義的軟硬件通信規約解析報文,丟棄無效和垃圾數據,提取出可靠的狀態數據,然后進行計算分析是否有資產移動,是否有指標異常。在客戶端瀏覽器中訪問系統時,如果采用周期性請求刷新的方式,每隔一段時間去查詢資產狀態和位置,會給服務器帶來較大壓力,造成資源浪費,因為資產不屬于運動的物體,在大部分時間在機柜中處于靜止狀態,頻繁的查詢效果并不好。我們引入SignalR——一組服務器和客戶端庫,建立了雙向通信模型,以便在服務器和客戶端之間建立實時雙向通信。不僅客戶端可以啟動與服務器的聯系,而且服務器也能聯系客戶端。這些并不僅僅是簡單的 HTTP 響應。這些是從服務器到客戶端的實際方法調用,類似于推送技術。這種推送依賴于瀏覽器的能力,而雙向通信模型擁有Forever Frame、Long Polling、Server Sent Event、WebSocket四種傳輸方式,每種傳輸方式都有自身的要求限制,它可以根據客戶端瀏覽器的支持選擇最佳的傳輸方式。
我們使用SignalR中的集線器(Hubs)模式來進行通信,例如,在客戶端的代碼中放置一個broadcastMessage方法,當服務器分析得出有設備移動時則會使用集線器發送一個包含調用方法及參數(當對象作為方法參數時,將被序列化來發送)的數據包主動推送給客戶端。然后客戶端檢查接收到的方法名稱,并在客戶端定義方法中進行匹配查找,如果匹配成功(這里就是broadcastMessage),則執行方法并使用反序列化的對象作為方法參數。反過來,在服務器配置一組響應集線器收到消息的方法,如果想要立即獲得某個機柜中設備最新狀態時,客戶端使用集線器發送參數給服務器,服務器校驗參數通過之后向物聯網網關發出請求數據包,獲取設備最新掃描狀態再反饋給客戶端,呈現在界面上。
系統覆蓋全省通信站點,同時監聽數個物聯網網關的運行。后臺服務與物聯網網關間使用異步通訊模式,完全不用擔心通訊阻塞和線程問題。系統支持帶標記的數據報文格式的識別以完成大數據報文的傳輸,可以適應惡劣的網絡環境。服務器維護了一組連接客戶端的狀態,能夠管理客戶端連接、斷開,發送與接收數據的事件。當接收到數據包時可快速定位到客戶端的地址,從而給網關所在的站點發出消息。
四、實時雙向通信實現效果
物聯網的重要基礎是聯系事物的組網與互聯技術。通過使用雙向通信模型,服務器與客戶端之間建立了持久連接,有效減輕因客戶端高頻發送請求造成的服務器壓力,服務器也無須等待客戶端的請求到來再響應。假如在后臺服務的一次數據包分析中發現了異常狀態的設備,比如溫度超出標準溫度5度需要告警,那么消息處理機制會給操作人員一些提示,更新設備的溫度并告訴他哪里的設備出現異常。即使全省有1000個客戶端連接,服務器也可以對連接自動管理,它可以在幾毫秒內給所有已連接的客戶端發送廣播消息,也可以選擇只發給特定的客戶端。
該實時雙向通信模型應用于設備狀態監測系統,結合傳感、標識、定位等物聯網技術,可實現全省上百個通信站點內各節點通信資產設備的定位與主要部件的溫度、濕度、浮塵等重要性能指標感應采集,對大量采集數據加工分析,實時響應、傳遞異常狀態的告警,防止對資產管理產生重大影響或潛在風險事件發生。
參 考 文 獻
[1] 劉化君. 物聯網技術[M]. 電子工業出版社2010
[2] Tom Dykstra, Tom FitzMacken. Server Broadcast with SignalR 2[J]. 2014
[3] Scott Hanselman. Asynchronous scalable web applications with real-time persistent long-running connections with SignalR[J]. 2011
[4] Patrick Fletcher. High-Frequency Realtime with SignalR 2[J]. 2014