錢 亮,張 贏,左 勇
(安徽南瑞中天電力電子有限公司,安徽 合肥 230031)
智能電表作為供電公司與用戶溝通的紐帶,實現了用戶用電數據的計量、采集和傳輸,為供電公司對用戶的用電考核、獎懲等方面提供重要的數據支撐,保障國家政策的順利執行[1-3]。為了滿足智能電網的發展要求,保障數據傳輸的快速性和可靠性,人們對智能電表技術進行了廣泛的研究,使其得到了飛速發展[4-6]。雖然智能電表得到大范圍普及,但智能電表的數據保護問題卻沒有有效的解決方案。傳統智能電表采用本地存儲器存儲電力數據,存儲空間有限,無法做到本地數據備份,一旦本地存儲器損壞,對應用戶的用電信息將無法完整追回,將給電網以及供電公司帶來一定的風險以及損失[7-10]。
目前智能電能表的內部存儲設計,在硬件上普遍采用RAM 和E2PROM 結合的方式,分別用以存儲脈沖個數及用戶電量數據[11-13]。在算法上,程序對脈沖觸發個數進行檢測并緩存至RAM,再通過脈沖觸發個數來對目標用戶的電量進行統計,最后將計量得到的電量值存儲到E2PROM 中,從而保存用戶用電量數據[14-15]。該方法通過減少對E2PROM 的使用頻率,增加電表存儲的使用壽命,提高電表運行的數據安全性。可見E2PROM 的數據可靠性是智能電表可靠性的關鍵。隨著電網的不斷發展,部分智能電表已經運行多年,E2PROM 的使用頻次較多,容易引起因E2PROM 故障而導致的智能電表運行故障,如數據丟失、參數混亂等。因此衍生出一些保護E2PROM 數據的研究,比如通過優化E2PROM存儲空間、改進存儲機制等,降低E2PROM 損壞的概率;再如,目前常用的一種保護E2PROM 數據的方法是:在電能表的存儲器中設置保護模塊,將需要保護的電量數據設置CRC 校驗碼后存入該模塊中。這一類方法雖然能夠延長E2PROM 的使用壽命,但數據的安全性仍然較大程度依賴電能表的本地存儲,當本地存儲出現故障時,該方法仍然無法保證數據安全。
針對上述問題,有必要研究一種新的數據保護方式,增加數據存儲的安全性及電表運行的可靠性。近年來,云平臺發展較為迅速,其安全性和可靠性已得到驗證。而隨著電能表產品技術的不斷改進,現有電能表已能夠利用多種通信網絡進行數據交互。利用云平臺及電能表的多種通信機制,構建一個獨立于電能表本地存儲的數據存儲體系,是一個值得研究的方向。目前電能表的模塊化設計已較為成熟,硬件方面只須在原有基礎上增加相應的接口和功能,即可構建本系統。而在軟件方面,云平臺提供多種數據存儲方式,電能表與云平臺的數據交互可按照云平臺提供的數據模型設計對應的數據庫來實現。因此,本系統在產品的更新和推廣上具有較高的可行性和經濟性。
本文設計的系統由云平臺、支持4G 模塊的智能電能表以及通信網絡三部分組成。系統架構如圖1 所示。

圖1 系統架構示意圖
本系統的工作業務流程如下:
(1)物聯管理平臺提供設備端SDK,電能表使用SDK 與平臺通信。電能表運行后,對云平臺發起設備接入請求。
(2)云平臺驗證智能電表身份有效性。
(3)云平臺根據設置的物模型顯示當前電能表連接狀態及運行狀態。
(4)電能表根據程序中的定時任務向云平臺發送電量數據以及運行數據。
(5)云平臺將數據備份至云存儲空間。
(6)上位機可以使用物聯管理平臺以及云存儲空間的接口獲取對電能表設備的管理權限,如對電能表進行遠程控制、數據獲取,也可查詢云端數據存儲狀態。
(7)電表進入下一等待周期。
硬件設計采用模塊化思路,對現有智能電能表硬件架構進行改進。具體結構如圖2 所示,主要包含主控芯片RN8318、數據存儲模塊、電源控制模塊、交流采樣模塊、4G 通信模塊、RS 485 通信模塊和液晶顯示模塊。各模塊均通過硬件接口與主控芯片連接。

圖2 硬件設計
采用鐵電存儲器(E2PROM)加外部FLASH 存儲器,存儲不同類型數據。數據存儲模塊電路設計如圖3 所示。

圖3 數據存儲模塊電路設計
4G 通信模塊用于連接電能表與云平臺。本系統設計一路4G 模塊接口電路,通過SPI 與智能電表RN8318 相連,實現電能表與云平臺的數據交互。4G 通信模塊電路如圖4所示。

圖4 4G 通信模塊電路設計
RS 485 通信模塊用于連接電能表與外部終端。本系統設計一路UART 轉RS 485 接口電路,實現電表與外部終端的數據交互,方便進行本地維護。RS 485 通信模塊電路設計如圖5 所示。

圖5 RS 485 通信模塊電路設計
軟件設計以下功能:計量功能、基于MQTT 的數據交互功能、定時數據備份功能。
電能計量模塊設計如圖6 所示。
本系統可測量合相各費率四象限有功、四象限無功電量。合相總電量在需要時由各分費率累加而成。
本系統可測量分相總的四象限有功、四象限無功電量。分相電量不支持分費率。
合相的組合有功、組合無功1、組合無功2 在需要時根據計量表達式生成。同樣,正向有功和反向有功也是在需要時臨時生成,只是表達式是固定的,不可配置,即正向有功=I 象限+IV 象限,反向有功=II 象限+III 象限。根據有功組合方式特征字和無功組合方式1 和2 特征字進行設置如下:
(1)保存當前及前面12 個結算周期的各電量;
(2)支持所有電量數據清零(電表清零命令或系統清零命令);
(3)分相電量根據合相的脈沖數及當前功率計算,即當無脈沖時,合相和分相均不可能出現電量。
為了實現數據云端存儲,本系統采用阿里云物聯網管理平臺作為云平臺,通過阿里云物聯管理平臺管理設備連接, 存儲設備數據,相比自建專業云的成本、運維負擔更少。
首先在阿里云物聯網管理平臺上構建電能表的物模型,保存物聯網平臺頒發的設備證書(ProductKey、DeviceName和DeviceSecret),用于電能表設備連接物聯網管理平臺的身份驗證。電能表與物聯網管理平臺通過MQTT 建立連接,電能表通過訂閱云端Topic 進行數據交互。構建Topic 見表1所列,數據以JSON 串形式上傳。
在阿里云物聯網平臺上設置消息流轉規則,可以將數據流轉至其他云存儲空間。上述云存儲空間可選用多種形式,本設計中使用阿里云表格存儲。表格存儲將流轉來的JSON串按設置的數據庫表頭存儲,表格存儲數據庫設計見表2所列。

表2 數據庫
主程序通過一個狀態機來處理電能表與云平臺的連接狀態,流程如圖7 所示。程序默認每1 s 檢測接入狀態,電能表狀態程序中通過枚舉類型定義,用全局變量表示。電能表上電后進入待連接狀態,初始化客戶端模式,成功后對云平臺發起連接請求,收到確認幀后,訂閱Topic,切換電能表進入已連接狀態,之后每分鐘發送心跳幀保持設備在線。

圖7 接入狀態查詢流程
數據接收通過檢測串口中斷獲取,獲取到JSON 串后根據Topic 以及數據值,程序做出相應處理。
電能表在設備接入云平臺的狀態下,每1 min 上傳一次電量數據以及運行參數。
電能表運行參數以全局變量存在,到達時間閾值時,讀取電能表RAM 中的運行參數全局變量,將數據組包成JSON 串發送至云平臺,電能表運行數據備份用于電表異常時恢復正常運行狀態。流程如圖8 所示。

圖8 數據備份流程
電能表電量數據存儲在E2PROM 中,到達時間閾值時,讀取當前費率以及E2PROM 中的電量數據,將數據組包成JSON 串發送至云平臺。
為了驗證系統整體功能,本文在實驗室進行了測試。如圖9 所示,準備兩臺電能表接入相同的測試環境(臺體),上電后通過4G 通信方式接入阿里云物聯網管理平臺,同時將RS 485 連上本機電腦,設備上線后開始測試。

圖9 測試設備
兩臺電能表上電后進行初始化操作,確保初始值一致,在相同環境下運行6 h,對比RS 485 抄讀數據與云端存儲數據,實驗部分結果見表3 所列。測試驗證結果顯示,云端數據存儲具備較高的準確性,本系統具備良好的推廣應用前景。

表3 實驗結果
本文設計一種基于云平臺的智能電能表數據保護系統,通過云平臺備份智能電能表數據,解決傳統電能表本地存儲器異常后數據無法備份、恢復的問題,提高電能表運行的穩定性。同時驗證了本文系統工作的有效性。為使系統更加便于應用,可進一步在提高傳輸速率、解決帶寬問題、壓縮存儲空間等方面進行研究及改進。