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