李瑞喜,何 銳,辛衛東,張 博
(北京洛斯達科技發展有限公司,北京)
隨著工業自動化和物聯網(Internet of Things, IoT)技術的發展,現代工業對數據流的處理、集成和可視化提出了新的需求。電網工程建設,特別是中、大型輸變電工程的建設管理正在向智能化、自動化、精細化方向發展。IoT 技術作為信息技術的一個重要發展方向,給人類生活和生產活動帶來了深遠的影響,應用智能化設備輔助進行基建現場各類指標及狀態識別、定位、追蹤、監控和管理也已成為基建現場管理的重要手段[1-2]。將IoT 技術應用于電力行業中,利用部署在工程現場內的大量節點,感知、采集、分析各種監測對象信息,能夠滿足智能化電網發電、輸電、變電、配電、用電等重要環節上信息獲取的實時性、準確性、全面性等需求,全面提升電網生產、服務、管理的感知能力。然而,在輸變電工程基建現場感知層建設及應用過程中,由于不同廠商、不同類別以及不同規格的設備當前沒有一個統一的數據對接規范,各設備廠商根據自己的產品特點和技術基礎,研發了不同的對接方式。這不僅增加了整合不同設備的難度,導致設備與應用平臺之間的對接工作異常繁復和耗時,無法快速進行部署應用,而且還可能造成數據丟失或不一致的風險。
Node-RED 是一個基于流的低代碼開發工具,最初由Nick O’Leary 和Dave Conway-Jones 于2013 年在IBM 的新興技術服務團隊中開發并發起的一個開源項目,現已歸屬于OpenJS 基金會。Node-RED 包含了一個基于Node.js 構建的輕量級的運行時,充分利用了其事件驅動、非阻塞的模型,使其非常適合在網絡邊緣的低成本硬件上運行,可用于將各類硬件設備、應用程序接口和在線服務連接在一起,因而被廣泛應用于工業物聯網[3-4]、工業自動化[5-6]、監測預警[7-8]以及智能家居[9-10]等領域。Node-RED 的核心特點是其基于流的編程模型,Node-RED 提供了一個基于Web 瀏覽器的流編輯器,通過圖形化的用戶界面,用戶可以直觀地將不同的功能塊(稱為“節點”)通過連線組合,從而定義數據流和邏輯。每個節點代表一個特定的功能或操作。通過連線,數據和消息可以從一個節點流向另一個節點,形成完整的數據處理和邏輯鏈。
由于其靈活性和易用性,Node-RED 被廣泛應用于快速原型設計、系統集成以及物聯網項目中,為開發者提供了一個靈活、輕量而功能強大的工具來構建復雜的網絡應用。它允許用戶通過可視化的拖放界面來設計數據流,實現各種硬件和服務之間的無縫集成。其背后的邏輯結構清晰,界面友好,使得即使是非專業的技術人員也能快速上手。采用Node-RED 搭建中間服務,意味著企業或開發者可以在短時間內搭建一個用于設備對接的橋梁。這樣的橋梁不僅僅是連接設備的通道,更是一種數據的“翻譯器”,確保不同設備產生的數據能夠被正確、高效地處理和轉發。這大大簡化了設備集成的復雜性,并提高了數據對接的穩定性和效率。
微氣象監測儀是一種用于監測小范圍內微氣象指標的小型環境監測設備,通常由風速傳感器、風向傳感器、噪聲傳感器以及溫濕度傳感器等一系列用于監測特定氣象指標的傳感設備組成(如圖1 所示)。與大型氣象站設備相比,這些傳感器通常更小、更便攜,能夠提供精確的本地化氣象數據。常用于農業監測、環境監測、城市規劃以及基建現場等多種應用場景中。除各類特定用途的傳感器外,微氣象監測儀通常還包含數據采集器、無線傳輸系統、后臺數據處理系統及信息監控管理平臺等軟硬件模塊。由于其便攜性和相對較低的成本,使得其適用更多的現場環境及應用場景,能夠實現更廣泛和密集的氣象監測,從而為現場環境監測管理提供更準確和及時的數據支持。

圖1 微氣象監測儀部分傳感器
在本研究中所采用的微氣象監測儀能夠監測PM2.5、PM10、噪聲、溫度、濕度、風速、風向、氣壓以及總懸浮顆粒(Total Suspended Particles, TSP)等指標(具體參數如表1 所示),支持RS485,4G,以太網等通訊方式,可實現24 h 實時在線監測。

表1 微氣象設備屬性列表
本研究中的微氣象監測儀支持MQTT(Message Queuing Telemetry Transport)協議,MQTT 是一個輕量級的發布/訂閱型消息傳輸協議,專門設計用于低帶寬、高延遲或不穩定的網絡環境,廣泛應用于IoT 領域。如圖2 所示,基于Node-RED 的基建現場微氣象監測與告警系統主要由消息發布者、MQTT 服務器以及消息訂閱者三部分組成。

圖2 基于Node-RED 的微氣象監測預警平臺總體架構
消息的發布者,即微氣象監測儀,通過各類傳感器可以監測空氣顆粒度、噪聲、溫濕度、風速風向等指標。借助DTU (Data Terminal Unit)模塊,通過4G 或以太網等通訊方式將數據從MQTT 客戶端發送至云端的MQTT 服務器中。
MQTT 服務器,通常稱為MQTT Broker,在MQTT的發布/訂閱模型中,扮演著中心角色,主要用于管理客戶端之間的消息傳遞。本研究使用RabbitMQ 做為MQTT 服務器。RabbitMQ 是一個開源的消息代理和隊列服務器,可用于通過異步消息傳遞來促進各種系統之間的通信和互操作。基于AMQP(高級消息隊列協議)設計,RabbitMQ 支持多種消息傳遞模型,包括發布/訂閱、請求/響應和點對點。提供了一個高可用性、可擴展性和可靠性的解決方案。
消息的訂閱者,即基建現場微氣象監測與告警服務。我們在Node-RED 中構建了MQTT 客戶端,訂閱特定主題并接收來自MQTT 服務器的數據。Node-RED 服務接收到數據后,通過自動執行預設的處置策略,根據現場的需求,可以將原始數據轉換并轉發至物聯管理平臺進行持久化以支撐后續應用,或者將告警數據及通知消息推送到大屏端、Web 端以及移動端等業務平臺進行可視化展示及應用,還可以通過短信、郵件以及觸發現場的聲光告警裝置等方式就地進行告警。
如圖3 所示,微氣象監測與告警服務在Node-RED提供的通用方法、函數、網絡、解析、序列以及存儲等核心組件及功能特性基礎上,利用可視化的流程編輯器,基于具體業務邏輯,將各類功能節點通過關聯關系組織起來,形成了面向基建現場微氣象監測與告警的處理流程。創建好的流程可以直接在Node-RED 平臺中“一鍵”完成部署。該服務能夠通過訂閱相關MQTT 主題,實時監測PM2.5、溫濕度、風速風向等微氣象指標,并通過自動執行預設的處置策略,將數據推送至相關平臺或者就地進行告警。

圖3 基于Node-RED 的微氣象監測與告警服務
Node-RED 監測與告警服務流程如圖4 所示,流程入口是一個“MQTT IN”類型的Node-RED 節點,此節點主要用于連接到MQTT 服務器并訂閱來自指定主題的消息。通過在全局配置節點中定義MQTT 服務器信息可以實現全局共享與復用,通過設置節點訂閱的主題(Topic)信息,可以接收來自特定產品或設備的屬性及事件數據。

圖4 Node-RED 監測與告警服務流程
在本研究中,接收到設備推送數據后,需要轉發至物聯管理平臺進行持久化處理。由于微氣象設備和物聯管理平臺定義的數據結構、字段名稱有所不同,無法直接進行數據轉發。因此需要首先定義一個數據格式轉換函數節點,通過JavaScript 腳本將接收到的原始數據轉換成物聯管理平臺要求的數據格式并構造成標準的MQTT 請求格式,然后再通過“MQTT OUT”類型的節點(此節點主要用于連接到MQTT 服務器并向其發布消息)進行數據轉發。
由于針對微氣象各項監測指標的判斷及處理邏輯有所不同,因此需要對各指標進行獨立分析,通過添加“SPLIT”類型的節點,可以按照設備或指標類型將一條消息拆分為多條消息,將各設備、指標的數據分別發送給對應監測分析函數節點。監測分析函數中定義了具體的判定閾值以及告警判斷的業務邏輯,通過分析,決定是否滿足告警條件,滿足告警條件即按照預設輸出模板格式,將告警數據推送給下一個節點。
監測分析完成后,需要將告警數據推送至相關業務平臺,或者以短信通知、大屏顯示、聲光告警等方式就地進行告警。上述方式主要通過使用“HTTP REQUEST”類型節點(該節點主要用于發送HTTP 請求并返回響應)完成,通過構造HTTP 請求,直接調用相關平臺的API,完成告警數據處置。以大屏顯示為例,Node-RED 服務生成告警后,按照大屏端接口要求,將告警數據推送至大屏端,并顯示在項目部的監控大屏中。
通過本研究,我們設計并實現了一種基于Node-RED 的基建現場微氣象監測與告警系統。該系統有效地解決了輸變電工程基建現場微氣象設備應用中的數據對接問題,能夠為相關業務平臺及應用提供實時、準確的微氣象數據,進而實現了高效的監測與告警。Node-RED 的流式編程模型為系統提供了高度的靈活性和擴展性,使得設備接入、數據處理和告警策略的實施都變得簡單且高效。此外,該系統不僅為基建現場提供了即時的氣象數據,還通過自動執行預設的處置策略,保障了現場工作的安全性,進而顯著提高了工程效率。基于Node-RED 的基建現場微氣象監測與告警系統為推動基建領域的數字化、智能化轉型做出了有益的探索,為相關領域提供了一個值得參考的解決方案。