馬青云,王永坤,潘曉波,王丹豪,蔡言興,歐陽海林,彭道剛
(1.國網(wǎng)上海電力公司崇明供電公司,上海 201250;2.上海電力大學 自動化工程學院,上海 200090)
用電設備具有分布廣、規(guī)模大等特點。為了保證當前用戶側(cè)用電,在實際使用中需要對用電設備進行分散式監(jiān)控,電能計量部分成為監(jiān)控用電設備的重要環(huán)節(jié)。當前來看,一方面隨著交直流輸電規(guī)模的迅速擴大,分布式發(fā)電設備接入類型和數(shù)量的快速增加,導致電網(wǎng)復雜程度不斷提升,對傳統(tǒng)電網(wǎng)提出了新的挑戰(zhàn);另一方面新近出現(xiàn)的人工智能等新技術(shù)的發(fā)展也對電網(wǎng)的功能和運行方式提出了新的要求,智能化成為了未來電力能源體系發(fā)展的大趨勢[1]。本文從泛在電力物聯(lián)網(wǎng)的四層技術(shù)架構(gòu)出發(fā)[2],通過了解GPRS(通用分組無線服務)技術(shù)在電能采集裝置中的應用[3],結(jié)合新興物聯(lián)網(wǎng)技術(shù)[4],總結(jié)傳統(tǒng)設備設計的優(yōu)缺點,結(jié)合用戶側(cè)用電設備的實際情況,提出設計方案。
在本設計中,智能電量計量終端主要由電能計量模塊、控制處理模塊、有線通信模塊和無線通信模塊4 個部分組成。其功能為負責參量信號的采集、信號處理、數(shù)據(jù)傳輸和指令上傳下發(fā)等復雜邏輯。電能計量模塊采取ADE9153B 芯片及其外圍電路為核心;控制模塊采用三星公司的S5PV210 芯片作為智能電量計量終端的MCU(微控制單元);有線通信模塊采用串行外設接口和通用異步收發(fā)傳輸器;無線通信模塊采用GPRS和NB-IoT(窄帶物聯(lián)網(wǎng))共同進行無線數(shù)據(jù)的傳輸。智能電量計量終端裝置系統(tǒng)硬件結(jié)構(gòu)如圖1所示。

圖1 智能電量計量終端硬件結(jié)構(gòu)
電能計量模塊原理如圖2 所示。電能計量模塊采用ADE9153B 作為高精度的電能計量IC(集成電路)芯片,該芯片具有校準功能,其內(nèi)部原理如圖2(a)所示。該芯片所使用的mSure 技術(shù)可實現(xiàn)自動校準,校準過程中無需基準量程;內(nèi)部集成3 個高性能的ADC(模數(shù)轉(zhuǎn)換器),具有測量電壓、電流、有功功率、頻率、功率因數(shù)等功能。采用圖2(b)為該計量芯片進行電壓采集的典型分壓電路結(jié)構(gòu),圖中電路采用1 MΩ 電阻和1 kΩ 電阻串聯(lián)分壓;電流測量采用低阻值分流電阻,mSure 電流驅(qū)動器的輸出端IAMS 連接到分流電阻的負載側(cè),電流互感器測量零線電流并通過采樣電阻進行采樣。

圖2 電能計量模塊原理
在電能計量模塊中還有一個MCU 處理器STM32F103RCT6 通過SPI(串行外設)接口讀取ADE9153B 的數(shù)據(jù),再通過有線通信接口實現(xiàn)嵌入式主控制S5PV210 對電能處理模塊的實時控制,且模塊預留串口屏幕接口和按鍵接口,可以實現(xiàn)單模塊的運行調(diào)試和數(shù)據(jù)可視化顯示。
本地通信模塊主要應用在電能計量芯片ADE9153B 與子控制器的數(shù)據(jù)接收,主控制器S5PV210 對電能計量模塊的控制這2 個部分。
圖3 為本地通信模塊原理圖。圖3(a)為電能計量芯片ADE9153B 與子控制器STM32F103RCT6的數(shù)據(jù)傳輸采用的四線制SPI 接口。SPI 接口是一種高速、全雙工、同步的通信總線,使用四根線作為硬件連接,節(jié)約了芯片管腳,對于單主控的典型場景十分合適。圖3(b)為主控制器S5PV210 對電能計量模塊進行控制的UART(通用異步收發(fā)傳輸器)接口。UART 接口采用3 線制通信,統(tǒng)一使用TTL 電平的接口方式,簡化了硬件連接的復雜度。三線通信主要是電能計量模塊控制器的GND 和主控制器的GND 相連,統(tǒng)一零電位;電能計量模塊控制器的RX 線和主控制器的TX 相連接,將主控制器所發(fā)送的指令信息傳送到電能計量模塊控制器中;電能計量模塊控制器的TX 線和主控制器的RX 相連接,將電能計量模塊所得到的數(shù)據(jù)信息傳送到主控制器中。

圖3 有線通信模塊接線
在物聯(lián)網(wǎng)環(huán)境下,萬物互聯(lián)使用GPRS 技術(shù)通過GSM 網(wǎng)絡實現(xiàn)的數(shù)據(jù)傳輸比較普遍。GSM是一個蜂窩網(wǎng)絡,也就是說物聯(lián)網(wǎng)設備需要連接到它能搜索到的最近的蜂窩單元區(qū)域。GSM 網(wǎng)絡的信號覆蓋范圍廣,傳輸速率高,且可以使用GPRS 業(yè)務的地區(qū)也很廣泛,這是GPRS 技術(shù)通信技術(shù)的主要優(yōu)點;但是相應的,物聯(lián)網(wǎng)設備終端大都采用GSM 網(wǎng)絡,而GSM 網(wǎng)絡基站承載能力有限,在運營商網(wǎng)絡擁堵的情況下,GSM 網(wǎng)絡則會優(yōu)先保證用戶的通話質(zhì)量,對于GPRS 通信設備存在踢出網(wǎng)絡的可能。
NB_IoT 是基于現(xiàn)有技術(shù)演變而來,而且是針對于LPWAN(低功率廣域網(wǎng)絡)概念的技術(shù)實現(xiàn)。NB_IoT 技術(shù)同樣構(gòu)建于蜂窩網(wǎng)絡,可以直接部署于GSM 網(wǎng)絡,只消耗180kHz 的帶寬。使用NB_IoT 技術(shù)的物聯(lián)網(wǎng)終端功耗非常低;具備大連接特性,對于現(xiàn)有2G,3G 移動網(wǎng)絡有50~100倍的用戶容量提升,不用擔心踢網(wǎng)的可能;廣覆蓋,NB-IoT 比現(xiàn)有的網(wǎng)絡增益20 dB,相當于提升了100 倍的覆蓋區(qū)域;具備更低的模塊成本。但是NB_IoT 對于實時性沒有要求,由于NB_IoT的穿透性好,在此過程中會自動的反復發(fā)送,只要有一次發(fā)送成功就可以,無法保證送達時間。
在本設計中,無線通信模塊將采用雙模設計:GPRS 通信技術(shù)和NB_IoT 通信技術(shù)。終端的實時數(shù)據(jù)傳輸和指令的下發(fā)將優(yōu)先采用GPRS 通信方式,NB_IoT 則進行數(shù)據(jù)和指令的驗證和備份。此外,對于終端運行多時的打包數(shù)據(jù)則主要通過NB_IoT 技術(shù)進行傳輸。結(jié)合這2 種技術(shù)的優(yōu)勢,既可以滿足本設計的所有需求,也可以靈活的應對現(xiàn)行NB_IoT 網(wǎng)絡未完全覆蓋且2G 網(wǎng)絡逐漸退出的情況。
圖4 為本設計所用的無線通信模塊,其中之一為SIM900A,是一款GSM 模塊,將GSM 射頻芯片、基帶處理芯片、存儲器、功放器件等集成在一塊線路板上,具有獨立的操作系統(tǒng)、GSM 射頻處理、基帶處理并提供標準接口的功能模塊;其中之二為NB-IoT 模塊NB73,內(nèi)嵌華為海思芯片,使用UART 通信模式進行模塊配置。

圖4 無線通信模塊示意
本設計通過上述2 種無線通信硬件設備,為物聯(lián)網(wǎng)協(xié)議的實現(xiàn)做了硬件準備,通過軟硬件結(jié)合可以實現(xiàn)數(shù)據(jù)的不間斷傳輸,確保數(shù)據(jù)的準確性、安全性和穩(wěn)定性。
圖5 為控制處理模塊的核心組成,主要包括這幾部分:控制核心三星公司的S5PV210 芯片及其運行最小系統(tǒng),是基于ARMv7 架構(gòu)的Cortex-A8 處理器,可以運行經(jīng)過裁剪的嵌入式Linux 系統(tǒng),控制電量計量終端的運行、下發(fā)指令的執(zhí)行和數(shù)據(jù)的事件性上傳;UART 為TTL 電平信號,方便數(shù)據(jù)的接收,簡化了硬件復雜度和數(shù)據(jù)傳輸協(xié)議的復雜度;USB Host 接口為無線通信模塊進行AT 指令的直接控制(嵌入式Linux 系統(tǒng)中加載有USB 轉(zhuǎn)RS232 驅(qū)動),且模塊的通信網(wǎng)絡全部通過電信運營商基站進行無線數(shù)據(jù)的傳輸,無需自建基站和通信網(wǎng)絡,偏遠地區(qū)也可以使用;報警模塊主要是有LED 等加蜂鳴器組成本地故障報警機制;顯示模塊使用3.5 寸的電阻屏幕,其顯示界面使用QT 開發(fā)的窗口化進程,同時接收參數(shù)的設置信息;RTC 實時時鐘用來精確時間;AD/DC 接口用來直接拓展額外功能;按鍵模塊用以調(diào)試運行和設置參數(shù);冗余模塊包括I/O 接口、JLINK 下載接口,便于實現(xiàn)硬件和功能的拓展加強。

圖5 控制處理模塊的核心組成
無線網(wǎng)絡通信的作用是通過互聯(lián)網(wǎng)、移動通信網(wǎng)、衛(wèi)星通信網(wǎng)等基礎(chǔ)網(wǎng)絡設施,對來自硬件終端的信息進行接入和傳輸。以泛在電力物聯(lián)網(wǎng)技術(shù)架構(gòu)的網(wǎng)絡層相匹配。在泛在電力物聯(lián)網(wǎng)的四層架構(gòu)中,網(wǎng)絡層接駁感知層和平臺層,具有強大的紐帶作用。本設計擬采用雙重無線通信方式來保證數(shù)據(jù)準確性和數(shù)據(jù)傳輸?shù)姆€(wěn)定性。在物聯(lián)網(wǎng)傳輸協(xié)議上,針對于現(xiàn)有的物聯(lián)網(wǎng)協(xié)議進行改進,使之適應本項目數(shù)據(jù)和指令所需。
圖6 所示為AT 指令操作無線通信模塊的流程,通過AT 指令的簡單設置,便可以實現(xiàn)電量計量終端連接蜂窩網(wǎng)絡,即為數(shù)據(jù)可以無線傳輸?shù)狡脚_提供了必要條件。

圖6 無線通信模塊AT 指令配置連接網(wǎng)絡流程
2.1 節(jié)驗證了使用UART 向無線通信模塊逐次發(fā)送AT 指令時,可以實現(xiàn)無線通信模塊與服務器平臺層的連接以及數(shù)據(jù)的雙相傳送。但是,在電量計量終端的程序運行過程中,直接使用AT 指令進行多線程的收發(fā)數(shù)據(jù)時,會出現(xiàn)程序處理錯誤。究其原因為多個AT 指令頻繁作用于同一個UART 時,導致指令執(zhí)行的先后順序無法得到保證,所以需要一種策略保證在電量計量終端開機時,就自行啟動無線通信模塊的AT 配置指令,使得電量計量終端獲得本地的IP 地址,目的IP 的指向云服務器平臺。這樣,就可以通過基于socket 的TCP/IP 編程使用多線程實現(xiàn)數(shù)據(jù)的無錯誤收發(fā)。
針對于上述問題及其出現(xiàn)問題的原因,本設計在電量計量終端的嵌入式操作系統(tǒng)中移植并且改進了PPP 來作為解決方案。這種解決方案針對于其他的嵌入式芯片同樣有著重要的指導作用。移植過程中主要是配置撥號要使用的連接腳本,只要用到了3 個文件:pppd,chat 和options。當pppd 程序啟動之后,會按照pathname.h 中的內(nèi)容去所指定的文件位置處尋找options 腳本;然后按照options 腳本的順序讀入?yún)?shù)行,開始配置硬件設備,比如設備的選擇,波特率的選取等;chat 腳本用來進行AT 指令的呼叫和控制,在TCP/IP 程序的執(zhí)行過程中,會移植保持AT 指令對無線通信模塊的控制;當pppd 程序執(zhí)行成功后,聯(lián)通或者移動的基站分配一個IP 地址作為自己的客戶端地址,接下來按照socket 的流程建立客戶端與服務器的連接。PPP 協(xié)議簡化了無線通信模塊的操作步驟,且可以保證無線網(wǎng)絡的絕對連通性(無外界故障時),軟件操作流程可以直接進行基于TCP/IP 的socket 套接字編程,無需再次進行底層AT 指令的直接控制。
當軟件的硬件環(huán)境配置完成后,需要從硬件端、云服務器平臺端、APP 端配置數(shù)據(jù)和指令的收發(fā)規(guī)則。一般通用的實現(xiàn)數(shù)據(jù)消息推送相關(guān)途徑有3 種方法:PULL 模式,SMS 模式和推送模式。PULL 模式屬于輪詢模式,客戶端每隔一段時間(固定或者規(guī)律)自發(fā)的向服務器發(fā)起并且建立連接,同時查詢是否有新的消息,PULL 方法的好處是實時性好,缺點也比較明顯:網(wǎng)絡和資源開銷大,客戶端機制控制不好會使得服務器短時間內(nèi)收到大量請求;無法確認到達率。SMS 推送模式是當服務器有新消息時,向客戶端發(fā)送一條特殊指令,終端獲取后立即向服務器獲取信息。SMS 方法的實時性較好,但是成本較高;推送方式是在客戶端和服務器之間形成永久連接,通過長連接進行實時推送。
標準物聯(lián)網(wǎng)協(xié)議之一MQTT 是一個基于發(fā)布/訂閱模式的“輕量級”推送式的長連接通信協(xié)議,該協(xié)議構(gòu)建與TCP/IP 上[5]。MQTT 的最大優(yōu)點在于,可以以極少的代碼和有限的帶寬,為連接遠程設備提供實時可靠的消息服務。從參考文獻中可以了解到MQTT 協(xié)議具有以下幾個特性:使用發(fā)布/訂閱消息訂閱模式,提供了一對多的消息發(fā)布,解除了應用程序耦合;對負載內(nèi)容屏蔽的消息進行傳輸;使用TCP/IP 數(shù)據(jù)連接進行數(shù)據(jù)推送;有3 種消息發(fā)布服務質(zhì)量,分別為“至多一次”“至少一次”“只有一次”;小型傳輸開銷很小(固定長度為2 個字節(jié))[6]。
在泛在電力物聯(lián)網(wǎng)的四層技術(shù)框架中,電量計量終端與平臺層、應用層進行正常的信息交互是不可避免的問題,技術(shù)架構(gòu)上還需要一個服務器用來進行輔助通信。開源軟件Mosquitto 就是其中一種解決方案,且MQTT 協(xié)議的實現(xiàn)也需要依靠此開源軟件才可以進行正常的信息交互。
本設計所使用的平臺層開發(fā)平臺為Linux(Ubuntu)系統(tǒng),安裝Mosquitto 需要通過引入Mosquitto 倉庫并進行更新以后才可以進行安裝,其安裝過程如圖7 所示。

圖7 MQTT Broker Mosquitto 在Linux(Ubuntu)系統(tǒng)的部署過程
Mosquitto 足以完成實時性消息的推送服務。圖8 顯示了一個簡單的消息推送系統(tǒng)框架,客戶端A(消息發(fā)布者)以MQTT 協(xié)議格式向服務器發(fā)布消息,服務器以MQTT 協(xié)議格式將消息推送給客戶端B(消息訂閱者),圖中的箭頭代表了消息從發(fā)布者到訂閱者的流向。

圖8 簡易消息推送系統(tǒng)框架示意
此外,本設計所使用的MQTT 方案部署在不安全的網(wǎng)絡通信環(huán)境中,在這種情況下,設備的連接驗證和數(shù)據(jù)的安全性顯得十分重要。本設計針對于泛在電力物聯(lián)網(wǎng)的四層技術(shù)架構(gòu)提供了多個層次的安全防護機制:在網(wǎng)絡層中,使用了TLS 加密技術(shù),此加密技術(shù)防止了中間人攻擊,其生成的客戶端證書不僅可以作為設備的身份憑證,還可以用來驗證設備的正確性;在應用層中,MQTT 協(xié)議提供了客戶端標識以及用戶名和密碼,便于對設備進行驗證。
在本設計中,從硬件電路設計為出發(fā)點,系統(tǒng)的軟件控制邏輯分為2 個較低耦合度的部分:部分1 為本地終端的數(shù)據(jù)采集控制和MQTT 消息發(fā)布框架;部分2 為上層服務數(shù)據(jù)存儲、數(shù)據(jù)處理和可視化顯示部分設計框架。
首先說明數(shù)據(jù)和指令的流向問題:數(shù)據(jù)流從下層服務向上層服務進行依次傳遞,經(jīng)由電量計量控制器、無線通信模塊、服務器,最后到達手機APP 端的可視化界面顯示;指令流從最上層服務向下層服務依次傳遞,經(jīng)由手機APP、服務器、無線通信模塊,最后到達電量計量控制器。
圖9 所示為本地終端的軟件設計流程,第一步需要進行硬件電路的自檢,只有硬件電路連接正確,才可以進行后續(xù)的控制。接著智能電量計量終端使用雙線程開始運行,在運行過程中子程序之間彼此有數(shù)據(jù)交互。2 個線程之間的控制邏輯互不干擾,一路線程控制電量數(shù)據(jù)的讀取和MQTT 的數(shù)據(jù)發(fā)布;一路數(shù)據(jù)專門用來訂閱應用層的指令數(shù)據(jù),然后通過特定子程序,改變其中的數(shù)據(jù)和硬件控制狀態(tài)。
圖10 所示為上層服務的軟件流程,從圖中可知,2 個線程之間的耦合度較高,存在數(shù)據(jù)和指令的交叉,此時的MQTT 的發(fā)布客戶端和訂閱客戶端不僅要處理感知層經(jīng)過網(wǎng)絡成傳輸上來的數(shù)據(jù),還有處理應用層所執(zhí)行的指令命令和數(shù)據(jù)庫數(shù)據(jù)的存取。
在研發(fā)終端的過程中,將底層設備的控制邏輯和上層服務的控制邏輯進行分離,降低了程序的耦合度,適合于多人開發(fā)。底層設備的控制邏輯與上層服務之間的數(shù)據(jù)交互使用MQTT 的發(fā)布/訂閱消息實現(xiàn),簡化了交接流程[7]。

圖10 上層服務的軟件設計流程
綜合上述的控制邏輯分析、實際硬件電路搭建和軟件編程,構(gòu)成了智能電量計量終端平臺。本設計包括電量計量硬件終端和手機端APP 數(shù)據(jù)采集顯示平臺,在實際用電環(huán)境中測試,其測試結(jié)果表現(xiàn)良好。
表1 為分別使用智能電量計量終端和某品牌計量插座對于實際用電參數(shù)的測試結(jié)果,其結(jié)果表明:智能電量計量終端的測試結(jié)果與計量插座的測試結(jié)果的誤差極小,且與實際用電情況相符合,表征感知層所設計電量采集模塊的正確性。

表1 智能電量計量終端和某品牌計量插座的實際電參數(shù)測試結(jié)果
表2 為智能電量計量終端平臺聯(lián)合調(diào)試的測試結(jié)果,其中包括電量數(shù)據(jù)到達平臺層的延遲時間、硬件終端響應用戶下發(fā)的指令數(shù)據(jù)時間、手機端APP 更新實時數(shù)據(jù)的延遲時間和顯示電量曲線的延遲時間。其結(jié)果表明:智能電量計量終端平臺可以較好地滿足實時性的需求,電量數(shù)據(jù)可以較快地傳輸?shù)狡脚_層進行存儲,硬件終端可以快速響應手機端APP 所發(fā)出的指令數(shù)據(jù),平臺層數(shù)據(jù)可以快速在手機端APP 的界面進行顯示,表征整個系統(tǒng)的實時性和實用性。

表2 智能電量計量終端平臺聯(lián)合調(diào)試的測試結(jié)果
本設計以泛在電力物聯(lián)網(wǎng)的四層技術(shù)架構(gòu)為依托,實現(xiàn)了智能電量計量終端硬件平臺和軟件平臺,其測試使用效果良好。
(1)針對于泛在電力物聯(lián)網(wǎng)架構(gòu)的感知層,設計了電量參數(shù)計量模塊,可以準確的測量6 種相關(guān)的電量參數(shù),實現(xiàn)了對用電數(shù)據(jù)的分散性監(jiān)控。
(2)針對于泛在電力物聯(lián)網(wǎng)架構(gòu)的網(wǎng)絡層,使用GPRS 和NB_IoT 的雙模無線通信技術(shù),輔以可以簡化無線通信步驟的PPP 協(xié)議和數(shù)據(jù)加密技術(shù)實現(xiàn)了數(shù)據(jù)的準確傳輸,并且滿足了系統(tǒng)實時性的要求。
(3)針對于泛在電力物聯(lián)網(wǎng)架構(gòu)的平臺層,通過移植MQTT 代理服務器和數(shù)據(jù)庫設計,實現(xiàn)了電量數(shù)據(jù)的存儲、快速檢索和集中統(tǒng)計分析。
(4)針對于泛在電力物聯(lián)網(wǎng)架構(gòu)的應用層,使用谷歌新近推出的移動UI 框架Flutter,通過手機端APP 編寫,實現(xiàn)了電量數(shù)據(jù)的可視化顯示和用戶指令的便捷操作。
通過在實際用電環(huán)境下進行測試,驗證了智能電量計量終端的實用性效果。