李瑞喜,何 銳,辛衛(wèi)東,張 博
(北京洛斯達科技發(fā)展有限公司,北京)
隨著工業(yè)自動化和物聯(lián)網(wǎng)(Internet of Things, IoT)技術(shù)的發(fā)展,現(xiàn)代工業(yè)對數(shù)據(jù)流的處理、集成和可視化提出了新的需求。電網(wǎng)工程建設(shè),特別是中、大型輸變電工程的建設(shè)管理正在向智能化、自動化、精細化方向發(fā)展。IoT 技術(shù)作為信息技術(shù)的一個重要發(fā)展方向,給人類生活和生產(chǎn)活動帶來了深遠的影響,應(yīng)用智能化設(shè)備輔助進行基建現(xiàn)場各類指標(biāo)及狀態(tài)識別、定位、追蹤、監(jiān)控和管理也已成為基建現(xiàn)場管理的重要手段[1-2]。將IoT 技術(shù)應(yīng)用于電力行業(yè)中,利用部署在工程現(xiàn)場內(nèi)的大量節(jié)點,感知、采集、分析各種監(jiān)測對象信息,能夠滿足智能化電網(wǎng)發(fā)電、輸電、變電、配電、用電等重要環(huán)節(jié)上信息獲取的實時性、準(zhǔn)確性、全面性等需求,全面提升電網(wǎng)生產(chǎn)、服務(wù)、管理的感知能力。然而,在輸變電工程基建現(xiàn)場感知層建設(shè)及應(yīng)用過程中,由于不同廠商、不同類別以及不同規(guī)格的設(shè)備當(dāng)前沒有一個統(tǒng)一的數(shù)據(jù)對接規(guī)范,各設(shè)備廠商根據(jù)自己的產(chǎn)品特點和技術(shù)基礎(chǔ),研發(fā)了不同的對接方式。這不僅增加了整合不同設(shè)備的難度,導(dǎo)致設(shè)備與應(yīng)用平臺之間的對接工作異常繁復(fù)和耗時,無法快速進行部署應(yīng)用,而且還可能造成數(shù)據(jù)丟失或不一致的風(fēng)險。
Node-RED 是一個基于流的低代碼開發(fā)工具,最初由Nick O’Leary 和Dave Conway-Jones 于2013 年在IBM 的新興技術(shù)服務(wù)團隊中開發(fā)并發(fā)起的一個開源項目,現(xiàn)已歸屬于OpenJS 基金會。Node-RED 包含了一個基于Node.js 構(gòu)建的輕量級的運行時,充分利用了其事件驅(qū)動、非阻塞的模型,使其非常適合在網(wǎng)絡(luò)邊緣的低成本硬件上運行,可用于將各類硬件設(shè)備、應(yīng)用程序接口和在線服務(wù)連接在一起,因而被廣泛應(yīng)用于工業(yè)物聯(lián)網(wǎng)[3-4]、工業(yè)自動化[5-6]、監(jiān)測預(yù)警[7-8]以及智能家居[9-10]等領(lǐng)域。Node-RED 的核心特點是其基于流的編程模型,Node-RED 提供了一個基于Web 瀏覽器的流編輯器,通過圖形化的用戶界面,用戶可以直觀地將不同的功能塊(稱為“節(jié)點”)通過連線組合,從而定義數(shù)據(jù)流和邏輯。每個節(jié)點代表一個特定的功能或操作。通過連線,數(shù)據(jù)和消息可以從一個節(jié)點流向另一個節(jié)點,形成完整的數(shù)據(jù)處理和邏輯鏈。
由于其靈活性和易用性,Node-RED 被廣泛應(yīng)用于快速原型設(shè)計、系統(tǒng)集成以及物聯(lián)網(wǎng)項目中,為開發(fā)者提供了一個靈活、輕量而功能強大的工具來構(gòu)建復(fù)雜的網(wǎng)絡(luò)應(yīng)用。它允許用戶通過可視化的拖放界面來設(shè)計數(shù)據(jù)流,實現(xiàn)各種硬件和服務(wù)之間的無縫集成。其背后的邏輯結(jié)構(gòu)清晰,界面友好,使得即使是非專業(yè)的技術(shù)人員也能快速上手。采用Node-RED 搭建中間服務(wù),意味著企業(yè)或開發(fā)者可以在短時間內(nèi)搭建一個用于設(shè)備對接的橋梁。這樣的橋梁不僅僅是連接設(shè)備的通道,更是一種數(shù)據(jù)的“翻譯器”,確保不同設(shè)備產(chǎn)生的數(shù)據(jù)能夠被正確、高效地處理和轉(zhuǎn)發(fā)。這大大簡化了設(shè)備集成的復(fù)雜性,并提高了數(shù)據(jù)對接的穩(wěn)定性和效率。
微氣象監(jiān)測儀是一種用于監(jiān)測小范圍內(nèi)微氣象指標(biāo)的小型環(huán)境監(jiān)測設(shè)備,通常由風(fēng)速傳感器、風(fēng)向傳感器、噪聲傳感器以及溫濕度傳感器等一系列用于監(jiān)測特定氣象指標(biāo)的傳感設(shè)備組成(如圖1 所示)。與大型氣象站設(shè)備相比,這些傳感器通常更小、更便攜,能夠提供精確的本地化氣象數(shù)據(jù)。常用于農(nóng)業(yè)監(jiān)測、環(huán)境監(jiān)測、城市規(guī)劃以及基建現(xiàn)場等多種應(yīng)用場景中。除各類特定用途的傳感器外,微氣象監(jiān)測儀通常還包含數(shù)據(jù)采集器、無線傳輸系統(tǒng)、后臺數(shù)據(jù)處理系統(tǒng)及信息監(jiān)控管理平臺等軟硬件模塊。由于其便攜性和相對較低的成本,使得其適用更多的現(xiàn)場環(huán)境及應(yīng)用場景,能夠?qū)崿F(xiàn)更廣泛和密集的氣象監(jiān)測,從而為現(xiàn)場環(huán)境監(jiān)測管理提供更準(zhǔn)確和及時的數(shù)據(jù)支持。
圖1 微氣象監(jiān)測儀部分傳感器
在本研究中所采用的微氣象監(jiān)測儀能夠監(jiān)測PM2.5、PM10、噪聲、溫度、濕度、風(fēng)速、風(fēng)向、氣壓以及總懸浮顆粒(Total Suspended Particles, TSP)等指標(biāo)(具體參數(shù)如表1 所示),支持RS485,4G,以太網(wǎng)等通訊方式,可實現(xiàn)24 h 實時在線監(jiān)測。
表1 微氣象設(shè)備屬性列表
本研究中的微氣象監(jiān)測儀支持MQTT(Message Queuing Telemetry Transport)協(xié)議,MQTT 是一個輕量級的發(fā)布/訂閱型消息傳輸協(xié)議,專門設(shè)計用于低帶寬、高延遲或不穩(wěn)定的網(wǎng)絡(luò)環(huán)境,廣泛應(yīng)用于IoT 領(lǐng)域。如圖2 所示,基于Node-RED 的基建現(xiàn)場微氣象監(jiān)測與告警系統(tǒng)主要由消息發(fā)布者、MQTT 服務(wù)器以及消息訂閱者三部分組成。
圖2 基于Node-RED 的微氣象監(jiān)測預(yù)警平臺總體架構(gòu)
消息的發(fā)布者,即微氣象監(jiān)測儀,通過各類傳感器可以監(jiān)測空氣顆粒度、噪聲、溫濕度、風(fēng)速風(fēng)向等指標(biāo)。借助DTU (Data Terminal Unit)模塊,通過4G 或以太網(wǎng)等通訊方式將數(shù)據(jù)從MQTT 客戶端發(fā)送至云端的MQTT 服務(wù)器中。
MQTT 服務(wù)器,通常稱為MQTT Broker,在MQTT的發(fā)布/訂閱模型中,扮演著中心角色,主要用于管理客戶端之間的消息傳遞。本研究使用RabbitMQ 做為MQTT 服務(wù)器。RabbitMQ 是一個開源的消息代理和隊列服務(wù)器,可用于通過異步消息傳遞來促進各種系統(tǒng)之間的通信和互操作?;贏MQP(高級消息隊列協(xié)議)設(shè)計,RabbitMQ 支持多種消息傳遞模型,包括發(fā)布/訂閱、請求/響應(yīng)和點對點。提供了一個高可用性、可擴展性和可靠性的解決方案。
消息的訂閱者,即基建現(xiàn)場微氣象監(jiān)測與告警服務(wù)。我們在Node-RED 中構(gòu)建了MQTT 客戶端,訂閱特定主題并接收來自MQTT 服務(wù)器的數(shù)據(jù)。Node-RED 服務(wù)接收到數(shù)據(jù)后,通過自動執(zhí)行預(yù)設(shè)的處置策略,根據(jù)現(xiàn)場的需求,可以將原始數(shù)據(jù)轉(zhuǎn)換并轉(zhuǎn)發(fā)至物聯(lián)管理平臺進行持久化以支撐后續(xù)應(yīng)用,或者將告警數(shù)據(jù)及通知消息推送到大屏端、Web 端以及移動端等業(yè)務(wù)平臺進行可視化展示及應(yīng)用,還可以通過短信、郵件以及觸發(fā)現(xiàn)場的聲光告警裝置等方式就地進行告警。
如圖3 所示,微氣象監(jiān)測與告警服務(wù)在Node-RED提供的通用方法、函數(shù)、網(wǎng)絡(luò)、解析、序列以及存儲等核心組件及功能特性基礎(chǔ)上,利用可視化的流程編輯器,基于具體業(yè)務(wù)邏輯,將各類功能節(jié)點通過關(guān)聯(lián)關(guān)系組織起來,形成了面向基建現(xiàn)場微氣象監(jiān)測與告警的處理流程。創(chuàng)建好的流程可以直接在Node-RED 平臺中“一鍵”完成部署。該服務(wù)能夠通過訂閱相關(guān)MQTT 主題,實時監(jiān)測PM2.5、溫濕度、風(fēng)速風(fēng)向等微氣象指標(biāo),并通過自動執(zhí)行預(yù)設(shè)的處置策略,將數(shù)據(jù)推送至相關(guān)平臺或者就地進行告警。
圖3 基于Node-RED 的微氣象監(jiān)測與告警服務(wù)
Node-RED 監(jiān)測與告警服務(wù)流程如圖4 所示,流程入口是一個“MQTT IN”類型的Node-RED 節(jié)點,此節(jié)點主要用于連接到MQTT 服務(wù)器并訂閱來自指定主題的消息。通過在全局配置節(jié)點中定義MQTT 服務(wù)器信息可以實現(xiàn)全局共享與復(fù)用,通過設(shè)置節(jié)點訂閱的主題(Topic)信息,可以接收來自特定產(chǎn)品或設(shè)備的屬性及事件數(shù)據(jù)。
圖4 Node-RED 監(jiān)測與告警服務(wù)流程
在本研究中,接收到設(shè)備推送數(shù)據(jù)后,需要轉(zhuǎn)發(fā)至物聯(lián)管理平臺進行持久化處理。由于微氣象設(shè)備和物聯(lián)管理平臺定義的數(shù)據(jù)結(jié)構(gòu)、字段名稱有所不同,無法直接進行數(shù)據(jù)轉(zhuǎn)發(fā)。因此需要首先定義一個數(shù)據(jù)格式轉(zhuǎn)換函數(shù)節(jié)點,通過JavaScript 腳本將接收到的原始數(shù)據(jù)轉(zhuǎn)換成物聯(lián)管理平臺要求的數(shù)據(jù)格式并構(gòu)造成標(biāo)準(zhǔn)的MQTT 請求格式,然后再通過“MQTT OUT”類型的節(jié)點(此節(jié)點主要用于連接到MQTT 服務(wù)器并向其發(fā)布消息)進行數(shù)據(jù)轉(zhuǎn)發(fā)。
由于針對微氣象各項監(jiān)測指標(biāo)的判斷及處理邏輯有所不同,因此需要對各指標(biāo)進行獨立分析,通過添加“SPLIT”類型的節(jié)點,可以按照設(shè)備或指標(biāo)類型將一條消息拆分為多條消息,將各設(shè)備、指標(biāo)的數(shù)據(jù)分別發(fā)送給對應(yīng)監(jiān)測分析函數(shù)節(jié)點。監(jiān)測分析函數(shù)中定義了具體的判定閾值以及告警判斷的業(yè)務(wù)邏輯,通過分析,決定是否滿足告警條件,滿足告警條件即按照預(yù)設(shè)輸出模板格式,將告警數(shù)據(jù)推送給下一個節(jié)點。
監(jiān)測分析完成后,需要將告警數(shù)據(jù)推送至相關(guān)業(yè)務(wù)平臺,或者以短信通知、大屏顯示、聲光告警等方式就地進行告警。上述方式主要通過使用“HTTP REQUEST”類型節(jié)點(該節(jié)點主要用于發(fā)送HTTP 請求并返回響應(yīng))完成,通過構(gòu)造HTTP 請求,直接調(diào)用相關(guān)平臺的API,完成告警數(shù)據(jù)處置。以大屏顯示為例,Node-RED 服務(wù)生成告警后,按照大屏端接口要求,將告警數(shù)據(jù)推送至大屏端,并顯示在項目部的監(jiān)控大屏中。
通過本研究,我們設(shè)計并實現(xiàn)了一種基于Node-RED 的基建現(xiàn)場微氣象監(jiān)測與告警系統(tǒng)。該系統(tǒng)有效地解決了輸變電工程基建現(xiàn)場微氣象設(shè)備應(yīng)用中的數(shù)據(jù)對接問題,能夠為相關(guān)業(yè)務(wù)平臺及應(yīng)用提供實時、準(zhǔn)確的微氣象數(shù)據(jù),進而實現(xiàn)了高效的監(jiān)測與告警。Node-RED 的流式編程模型為系統(tǒng)提供了高度的靈活性和擴展性,使得設(shè)備接入、數(shù)據(jù)處理和告警策略的實施都變得簡單且高效。此外,該系統(tǒng)不僅為基建現(xiàn)場提供了即時的氣象數(shù)據(jù),還通過自動執(zhí)行預(yù)設(shè)的處置策略,保障了現(xiàn)場工作的安全性,進而顯著提高了工程效率?;贜ode-RED 的基建現(xiàn)場微氣象監(jiān)測與告警系統(tǒng)為推動基建領(lǐng)域的數(shù)字化、智能化轉(zhuǎn)型做出了有益的探索,為相關(guān)領(lǐng)域提供了一個值得參考的解決方案。