陳思蕊, 袁三男, 李文龍, 王渝鑫
(上海電力大學(xué) 電子與信息工程學(xué)院, 上海 200090)
近年來,隨著電力機(jī)房規(guī)模的擴(kuò)大和復(fù)雜性的增加,對(duì)電力機(jī)房的實(shí)時(shí)監(jiān)控與管理提出了更高要求。國內(nèi)的相關(guān)研究多以ARM芯片、Modbus協(xié)議實(shí)現(xiàn)電力機(jī)房監(jiān)控[1],國外多關(guān)注基于云計(jì)算和物聯(lián)網(wǎng)的技術(shù)[2],如Zigbee和Z-Wave[3]。gSOAP是一種能夠把C/C++語言接口轉(zhuǎn)換為基于簡單對(duì)象訪問協(xié)議(Simple Object Access Protocol,SOAP)的Web Service(網(wǎng)絡(luò)服務(wù))工具。使用gSOAP作為電力機(jī)房動(dòng)環(huán)監(jiān)控系統(tǒng)的框架,可以實(shí)現(xiàn)分布式架構(gòu)支持、實(shí)時(shí)數(shù)據(jù)傳輸和處理,使其具有更強(qiáng)的安全性、靈活的擴(kuò)展性,以及跨平臺(tái)兼容性等特點(diǎn)。這些創(chuàng)新點(diǎn)有助于提高電力機(jī)房監(jiān)控系統(tǒng)的性能、可靠性和安全性,提供更好的監(jiān)控和管理能力,對(duì)電力機(jī)房環(huán)境監(jiān)控領(lǐng)域具有重要意義。本文通過充分利用嵌入式平臺(tái)和gSOAP技術(shù),設(shè)計(jì)了高效穩(wěn)定的電力機(jī)房動(dòng)環(huán)監(jiān)控系統(tǒng),提升了安全性、穩(wěn)定性與管理效率。
本文提出的基于嵌入式平臺(tái)和gSOAP技術(shù)的電力機(jī)房動(dòng)環(huán)監(jiān)控系統(tǒng),可實(shí)時(shí)監(jiān)測溫度、濕度、電壓、電流等參數(shù),支持遠(yuǎn)程控制和設(shè)備管理,提供實(shí)時(shí)與歷史數(shù)據(jù)展示。其采用i.MX6ULL硬件平臺(tái),使用gSOAP框架作為底層通信協(xié)議,通過RS485與其他設(shè)備聯(lián)動(dòng)。系統(tǒng)還包括告警通知、本地圖像存儲(chǔ)和遠(yuǎn)程視頻監(jiān)控功能。
集中監(jiān)控中心(Supervision Center,SC)是面向多現(xiàn)場監(jiān)控單元(Field Supervision Unit,FSU)管理的高級(jí)監(jiān)控層次,即集團(tuán)監(jiān)控平臺(tái)。其通過B接口連接全國的FSU[4]。FSU是由若干監(jiān)控模塊和其他輔助設(shè)備組成,面向設(shè)備數(shù)據(jù)采集、處理的監(jiān)控層次,具有采樣、數(shù)據(jù)處理、數(shù)據(jù)中繼等功能。FSU與SC之間通過Web Service和文件傳輸協(xié)議(File Transfer Protocol,FTP)的方式互聯(lián),消息協(xié)議為擴(kuò)展標(biāo)記語言(eXtensible Markup Language,XML)格式,二者形成B接口協(xié)議的協(xié)議標(biāo)準(zhǔn)。接口網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 接口網(wǎng)絡(luò)結(jié)構(gòu)
A接口協(xié)議指FSU與被監(jiān)控的傳感器設(shè)備、電力設(shè)備、視頻設(shè)備等之間的連接。監(jiān)控點(diǎn)指被監(jiān)控設(shè)備上的某個(gè)特定信號(hào)。
電力機(jī)房監(jiān)控系統(tǒng)啟動(dòng)時(shí),首先進(jìn)行參數(shù)初始化,判斷系統(tǒng)是首次啟動(dòng)還是運(yùn)行后啟動(dòng)。若是首次啟動(dòng),系統(tǒng)將讀取出廠配置文件進(jìn)行參數(shù)配置;若是運(yùn)行后啟動(dòng),則會(huì)恢復(fù)上次已配置的參數(shù)[5]。其次進(jìn)行網(wǎng)絡(luò)配置,包括無線模塊操作、網(wǎng)絡(luò)撥號(hào)和虛擬專用網(wǎng)絡(luò)(Virtual Private Network,VPN)設(shè)置等。然后根據(jù)軟件部署和模塊劃分,創(chuàng)建4個(gè)線程:A接口設(shè)備接入和設(shè)備數(shù)據(jù)采集解析線程;B接口客戶端線程;B接口服務(wù)器端線程;運(yùn)維配置線程。整個(gè)軟件設(shè)計(jì)采用模塊化結(jié)構(gòu),單個(gè)模塊的異常不會(huì)影響其他模塊的工作,數(shù)據(jù)與程序完全分離[6],各模塊之間的交互主要通過數(shù)據(jù)庫實(shí)現(xiàn)。
Web界面采用嵌入式Web服務(wù)器GoAhead WebServer、動(dòng)態(tài)服務(wù)器頁面(Active Server Pages,ASP)、JavaScript、CSS等技術(shù)方式[7-10]。運(yùn)維配置采用前后端分離技術(shù)。其中:前端采用HTML+CSS+JavaScript技術(shù)來構(gòu)造Web界面,并增加相應(yīng)的事件觸發(fā)按鈕,通過AJAX技術(shù)將功能請求與相應(yīng)的接口綁定;后端采用GoAhead框架編寫接口函數(shù),響應(yīng)前端請求后,將數(shù)據(jù)以JSON格式返回前端。
A接口首先通過加載廠家提供的協(xié)議庫對(duì)設(shè)備資源進(jìn)行初始化,包括FSU硬件資源信息、軟件資源信息和串口資源信息。該接口支持設(shè)備協(xié)議的動(dòng)態(tài)管理,包括動(dòng)態(tài)加載和卸載協(xié)議庫,并能及時(shí)加載更新的協(xié)議庫資源。A接口可以通過寫串口數(shù)據(jù)的方式,將控制命令發(fā)送到設(shè)備的硬件接口,實(shí)現(xiàn)對(duì)設(shè)備的控制,如開關(guān)操作、參數(shù)配置等。
2.3.1 B接口實(shí)現(xiàn)方式
B接口基于Web Service技術(shù),采用超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)+SOAP+XML的方式。其具體實(shí)現(xiàn)方式如下。
(1) 網(wǎng)絡(luò)服務(wù)描述語言定義 網(wǎng)絡(luò)服務(wù)描述語言(Web Services Description Language,WSDL)是一種基于XML的規(guī)范,描述了接口的數(shù)據(jù)類型、操作和消息格式。使用WSDL來定義系統(tǒng)B接口的結(jié)構(gòu)和操作。
(2) SOAP消息格式 SOAP消息包含請求和響應(yīng)的數(shù)據(jù)以及相關(guān)的標(biāo)頭信息,如操作名稱、命名空間等。使用XML構(gòu)建符合SOAP協(xié)議的消息格式。
(3) HTTP傳輸方式 使用HTTP作為底層的傳輸協(xié)議。在發(fā)起接口請求時(shí),將SOAP消息封裝在HTTP請求體中,并通過Post方法發(fā)送給響應(yīng)方的接口統(tǒng)一資源定位符(Uniform Resource Locator,URL)。響應(yīng)方接收到請求后,返回的響應(yīng)消息也通過HTTP進(jìn)行傳輸。
(4) XML編解碼 在SOAP消息中使用XML來編碼和解碼接口數(shù)據(jù),使用XML的結(jié)構(gòu)和標(biāo)簽來描述接口請求和響應(yīng)的數(shù)據(jù)結(jié)構(gòu)和內(nèi)容。
(5) SOAP協(xié)議交互 根據(jù)WSDL定義的接口操作,將請求消息發(fā)送到接受的接口URL,并等待響應(yīng)方的響應(yīng)。響應(yīng)方收到請求后,根據(jù)SOAP消息中的操作類型和參數(shù)進(jìn)行相應(yīng)的處理,并將響應(yīng)數(shù)據(jù)封裝到SOAP消息中返回給請求方。
(6) 消息協(xié)議 采用XML格式進(jìn)行數(shù)據(jù)交換,XML報(bào)文格式如表1所示,根據(jù)報(bào)文類型區(qū)分?jǐn)?shù)據(jù)傳輸類型,并實(shí)現(xiàn)相應(yīng)功能。
表1 XML報(bào)文格式
2.3.2 B接口上gSOAP技術(shù)的應(yīng)用
(1) 通過使用gSOAP技術(shù),可以實(shí)現(xiàn)監(jiān)控系統(tǒng)的分布式架構(gòu)。gSOAP支持客戶端和服務(wù)器端之間的雙向通信,可以實(shí)現(xiàn)監(jiān)控系統(tǒng)的分布式部署,將監(jiān)控任務(wù)分散在多個(gè)節(jié)點(diǎn)上,提高系統(tǒng)的可靠性和可擴(kuò)展性。
(2) gSOAP具有高效的數(shù)據(jù)傳輸和處理能力,可以實(shí)現(xiàn)監(jiān)控?cái)?shù)據(jù)的實(shí)時(shí)傳輸和處理。通過gSOAP的異步通信機(jī)制和高并發(fā)處理能力,可以減少數(shù)據(jù)傳輸?shù)难舆t,有效地實(shí)現(xiàn)動(dòng)態(tài)監(jiān)控和實(shí)時(shí)預(yù)警。
(3) gSOAP提供了多種安全機(jī)制,如安全套接層/安全傳輸層(SSL/TLS)協(xié)議、SOAP消息加密和數(shù)字簽名等,可以增強(qiáng)監(jiān)控系統(tǒng)的安全性[11]。通過對(duì)數(shù)據(jù)的加密和身份驗(yàn)證,可以保護(hù)敏感數(shù)據(jù)不被非法篡改和訪問,提高系統(tǒng)的安全性和信任度。
(4) gSOAP支持自定義的數(shù)據(jù)類型和接口描述語言,可以根據(jù)監(jiān)控系統(tǒng)的特定需求進(jìn)行靈活地?cái)U(kuò)展。開發(fā)人員可以基于gSOAP進(jìn)行定制開發(fā),以滿足不同的功能和接口要求,提供更加個(gè)性化和定制化的解決方案。
(5) gSOAP是一個(gè)跨平臺(tái)的框架,可以在不同的操作系統(tǒng)和硬件平臺(tái)上運(yùn)行[12]。這使得電力機(jī)房監(jiān)控系統(tǒng)可以在不同的環(huán)境中使用和部署,實(shí)現(xiàn)系統(tǒng)的靈活性和可移植性。
2.3.3 B接口工作流程
FSU客戶端能夠建立安全可靠的連接,與SC進(jìn)行數(shù)據(jù)交換,并在需要時(shí)靈活地建立或關(guān)閉連接,有效地促進(jìn)了數(shù)據(jù)的傳輸效率和安全性。FSU與SC建立連接過程如圖2所示。
圖2 FSU和SC建立連接過程
具體的工作流程如下。
步驟1 FSU客戶端先進(jìn)行4G/3G撥號(hào)上網(wǎng),成功后建立Internet協(xié)議安全性/第二層隧道協(xié)議(IPSec/L2TP)隧道連接,并獲取內(nèi)網(wǎng)IP[13]。
步驟2 IPSec/L2TP隧道連接成功后,FSU向SC傳送注冊(login,login_ack)報(bào)文,報(bào)文需攜帶用戶名、內(nèi)網(wǎng)IP,以及FSU所外接的設(shè)備ID等,需由SC端進(jìn)行驗(yàn)證。這種方式確保了數(shù)據(jù)的安全傳輸。
步驟3 登錄成功后,B接口協(xié)議利用該連接進(jìn)行通信。
步驟4 若連接中斷,需要重新進(jìn)行上述連接和注冊過程,以確保持續(xù)的網(wǎng)絡(luò)通信。
步驟5 當(dāng)在此IPSec/L2TP隧道連接上成功傳送登出(logout,logout_ack)報(bào)文時(shí),FSU客戶端可拆除建立的IPSec/L2TP隧道,斷開傳輸控制協(xié)議(Transmission Control Protocol,TCP)連接,保證安全關(guān)閉。
FSU與SC成功建立連接后,作為客戶端向SC平臺(tái)注冊機(jī)發(fā)送注冊指令進(jìn)行注冊。SC作為服務(wù)器端,由SC平臺(tái)注冊機(jī)統(tǒng)一分配采集機(jī),并通知采集機(jī),向采集機(jī)下發(fā)FSU的注冊信息,進(jìn)行系統(tǒng)注冊。SC返回注冊成功信息并將分配的采集機(jī)IP反饋給FSU。注冊成功后,B接口利用該連接進(jìn)行通信。FSU會(huì)持續(xù)檢查外接設(shè)備數(shù)據(jù)庫是否有監(jiān)控點(diǎn)的告警信息,如果有,則向采集機(jī)上報(bào)。FSU客戶端的工作流程如圖3所示。
圖3 FSU客戶端的工作流程
當(dāng)SC端請求讀取、寫入或者刪除某個(gè)設(shè)備信息時(shí),SC首先會(huì)向FSU發(fā)送一個(gè)查詢請求,此時(shí)SC作為客戶端,FSU作為服務(wù)器端。FSU需時(shí)刻查詢是否有SC的請求信息,若有則需解析SC發(fā)送的請求信息,打開數(shù)據(jù)庫,讀取請求設(shè)備數(shù)據(jù)并配置參數(shù),操作成功后向SC發(fā)送答復(fù)報(bào)文。FSU服務(wù)器端的工作流程如圖4所示。
圖4 FSU服務(wù)器端的工作流程
FSU具備雙向通信功能,其流程如圖5所示。FSU的雙向通信功能有效地解決了大規(guī)模設(shè)備網(wǎng)絡(luò)化管理中的通信難題,提升了通信效率和系統(tǒng)的穩(wěn)定性。通過這一功能,FSU可以靈活地管理和控制數(shù)據(jù)傳輸,主動(dòng)響應(yīng)SC的請求并上報(bào)設(shè)備事件數(shù)據(jù)。當(dāng)FSU作為服務(wù)器端時(shí),能夠與SC建立連接,并接收SC輪詢獲取的慢數(shù)據(jù)請求,包括實(shí)時(shí)請求數(shù)據(jù)、設(shè)備控制請求。這些請求涵蓋了溫度、濕度、電壓、電流、電量、頻率、開關(guān)狀態(tài)等數(shù)據(jù),并能夠及時(shí)返回給SC。此外,FSU還提供文件傳輸協(xié)議(File Transfer Protocol,FTP)接口,為SC提供視頻圖像文件的傳輸功能。當(dāng)FSU充當(dāng)客戶端時(shí),它能夠主動(dòng)向SC發(fā)起設(shè)備事件數(shù)據(jù)的上報(bào),包括配置信息、實(shí)時(shí)數(shù)據(jù)、歷史數(shù)據(jù)、實(shí)時(shí)報(bào)警、歷史報(bào)警、控制結(jié)果,實(shí)現(xiàn)設(shè)備狀態(tài)信息的實(shí)時(shí)更新。
圖5 FSU雙向通信功能流程
2.3.4 XML報(bào)文的生成與解析
MiniXML是一個(gè)小型的C語言開源庫,旨在解析和生成XML文件,也是一種輕量級(jí)的XML解析器。該解析器最大的特點(diǎn)是小巧、獨(dú)立,無需其他庫的支持,只需要使用GCC(GNU Compiler Collection,GNU編譯器套件)編譯器和make程序即可編譯。
使用MiniXML庫創(chuàng)建XML文檔的流程如下:
步驟1 定義要生成的報(bào)文結(jié)構(gòu)和內(nèi)容;
步驟2 創(chuàng)建一個(gè)空的MiniXML文檔對(duì)象;
步驟3 逐級(jí)創(chuàng)建XML元素,通過調(diào)用MiniXML提供的方法,將元素添加到文檔對(duì)象中,使用元素的名稱、屬性和文本內(nèi)容等定義元素的特性[14-15];
步驟4 如果報(bào)文中需要包含子元素,可以在父元素中重復(fù)步驟3,將子元素添加到父元素中;
步驟5 完成報(bào)文的創(chuàng)建后,將MiniXML文檔對(duì)象轉(zhuǎn)化為字符串或?qū)懭胛募?生成最終的報(bào)文。
使用MiniXML庫解析XML文檔的流程如下:
步驟1 獲取要解析的報(bào)文,可以從文件中讀取或者從字符串中獲取;
步驟2 創(chuàng)建一個(gè)空的MiniXML文檔對(duì)象;
步驟3 將要解析的報(bào)文加載到文檔對(duì)象中;
步驟4 通過遍歷文檔對(duì)象的元素和屬性,逐級(jí)提取報(bào)文中的內(nèi)容,并進(jìn)行相應(yīng)的處理和存儲(chǔ);
步驟5 如果報(bào)文中存在子元素,可以遞歸地解析子元素,重復(fù)步驟4,直至完成報(bào)文的解析。
經(jīng)過測試,在動(dòng)環(huán)監(jiān)控系統(tǒng)中,FSU與SC成功進(jìn)行了通信,報(bào)文數(shù)據(jù)如圖6所示。SC監(jiān)控中心實(shí)時(shí)性能查詢界面如圖7所示。其可實(shí)時(shí)觀察到電力機(jī)房監(jiān)控點(diǎn)的狀態(tài)。
圖6 報(bào)文數(shù)據(jù)
圖7 SC監(jiān)控中心實(shí)時(shí)性能查詢界面
B接口協(xié)議具有高效的數(shù)據(jù)傳輸能力和穩(wěn)定的連接性,有助于實(shí)時(shí)監(jiān)控并傳輸大量的監(jiān)測數(shù)據(jù)。分析該動(dòng)環(huán)監(jiān)控系統(tǒng)的測試結(jié)果,得到系統(tǒng)具有以下特點(diǎn)。
(1) 雙向通信實(shí)現(xiàn)更快速、高效地?cái)?shù)據(jù)傳輸,使得監(jiān)控系統(tǒng)的數(shù)據(jù)可以實(shí)時(shí)共享和交互。圖6(a)所示的FSU客戶端在上報(bào)告警信息的同時(shí),也能接收圖6(b)所示SC客戶端輪詢獲取的慢數(shù)據(jù)請求。這樣,就可以將機(jī)房的動(dòng)態(tài)和變化快速反饋給相關(guān)的監(jiān)控系統(tǒng)和用戶,幫助其做出更準(zhǔn)確和及時(shí)的決策。
(2) 進(jìn)一步拓展與其他系統(tǒng)的數(shù)據(jù)集成能力。通過與能源管理系統(tǒng)、機(jī)房設(shè)備管理系統(tǒng)等內(nèi)部系統(tǒng)的數(shù)據(jù)交互,可以實(shí)現(xiàn)更全面和綜合的機(jī)房監(jiān)控和管理。同時(shí),與外部系統(tǒng)的數(shù)據(jù)對(duì)接,擴(kuò)大了電力機(jī)房的服務(wù)范圍和應(yīng)用場景。
(3) 注重?cái)?shù)據(jù)傳輸?shù)陌踩院碗[私保護(hù)。通過加密、身份驗(yàn)證等安全機(jī)制,確保數(shù)據(jù)傳輸?shù)臋C(jī)密性和合法性。同時(shí),合規(guī)地管理和保護(hù)用戶的個(gè)人信息和敏感數(shù)據(jù),防止數(shù)據(jù)泄露和濫用。
(4) 可以結(jié)合自動(dòng)化和智能化技術(shù),實(shí)現(xiàn)監(jiān)控系統(tǒng)的自動(dòng)報(bào)警、異常探測、故障診斷等功能。通過數(shù)據(jù)的分析和學(xué)習(xí),提供預(yù)測性維護(hù)和優(yōu)化調(diào)整的支持,也為電力機(jī)房的運(yùn)行和維護(hù)提供更智能和高效的方法。
本文設(shè)計(jì)的系統(tǒng)具有幾個(gè)關(guān)鍵優(yōu)勢。首先,嵌入式平臺(tái)具有高性能和低功耗的特性,為監(jiān)控系統(tǒng)提供穩(wěn)定可靠的硬件基礎(chǔ)。其次,gSOAP技術(shù)的運(yùn)用保證了系統(tǒng)之間的高效通信和數(shù)據(jù)交換,從而提高了監(jiān)控系統(tǒng)的性能和可靠性。最后,系統(tǒng)提供了多種擴(kuò)展功能,如告警通知、本地圖像存儲(chǔ)和遠(yuǎn)程視頻監(jiān)控等,使得用戶可以全面掌控電力機(jī)房的運(yùn)行狀態(tài),提高了管理效率和精確度。綜上所述,基于嵌入式平臺(tái)和gSOAP技術(shù)的電力機(jī)房動(dòng)環(huán)監(jiān)控系統(tǒng)設(shè)計(jì)是一種高效穩(wěn)定的解決方案,通過整合硬件平臺(tái)、通信協(xié)議和功能擴(kuò)展,提高了機(jī)房的安全性和穩(wěn)定性,以及工作人員的管理效率和精確度,能夠有效滿足電力機(jī)房環(huán)境監(jiān)控與管理的需求。