錢 亮,張 贏,左 勇
(安徽南瑞中天電力電子有限公司,安徽 合肥 230031)
智能電表作為供電公司與用戶溝通的紐帶,實現(xiàn)了用戶用電數(shù)據(jù)的計量、采集和傳輸,為供電公司對用戶的用電考核、獎懲等方面提供重要的數(shù)據(jù)支撐,保障國家政策的順利執(zhí)行[1-3]。為了滿足智能電網(wǎng)的發(fā)展要求,保障數(shù)據(jù)傳輸?shù)目焖傩院涂煽啃?,人們對智能電表技術(shù)進(jìn)行了廣泛的研究,使其得到了飛速發(fā)展[4-6]。雖然智能電表得到大范圍普及,但智能電表的數(shù)據(jù)保護(hù)問題卻沒有有效的解決方案。傳統(tǒng)智能電表采用本地存儲器存儲電力數(shù)據(jù),存儲空間有限,無法做到本地數(shù)據(jù)備份,一旦本地存儲器損壞,對應(yīng)用戶的用電信息將無法完整追回,將給電網(wǎng)以及供電公司帶來一定的風(fēng)險以及損失[7-10]。
目前智能電能表的內(nèi)部存儲設(shè)計,在硬件上普遍采用RAM 和E2PROM 結(jié)合的方式,分別用以存儲脈沖個數(shù)及用戶電量數(shù)據(jù)[11-13]。在算法上,程序?qū)γ}沖觸發(fā)個數(shù)進(jìn)行檢測并緩存至RAM,再通過脈沖觸發(fā)個數(shù)來對目標(biāo)用戶的電量進(jìn)行統(tǒng)計,最后將計量得到的電量值存儲到E2PROM 中,從而保存用戶用電量數(shù)據(jù)[14-15]。該方法通過減少對E2PROM 的使用頻率,增加電表存儲的使用壽命,提高電表運行的數(shù)據(jù)安全性。可見E2PROM 的數(shù)據(jù)可靠性是智能電表可靠性的關(guān)鍵。隨著電網(wǎng)的不斷發(fā)展,部分智能電表已經(jīng)運行多年,E2PROM 的使用頻次較多,容易引起因E2PROM 故障而導(dǎo)致的智能電表運行故障,如數(shù)據(jù)丟失、參數(shù)混亂等。因此衍生出一些保護(hù)E2PROM 數(shù)據(jù)的研究,比如通過優(yōu)化E2PROM存儲空間、改進(jìn)存儲機(jī)制等,降低E2PROM 損壞的概率;再如,目前常用的一種保護(hù)E2PROM 數(shù)據(jù)的方法是:在電能表的存儲器中設(shè)置保護(hù)模塊,將需要保護(hù)的電量數(shù)據(jù)設(shè)置CRC 校驗碼后存入該模塊中。這一類方法雖然能夠延長E2PROM 的使用壽命,但數(shù)據(jù)的安全性仍然較大程度依賴電能表的本地存儲,當(dāng)本地存儲出現(xiàn)故障時,該方法仍然無法保證數(shù)據(jù)安全。
針對上述問題,有必要研究一種新的數(shù)據(jù)保護(hù)方式,增加數(shù)據(jù)存儲的安全性及電表運行的可靠性。近年來,云平臺發(fā)展較為迅速,其安全性和可靠性已得到驗證。而隨著電能表產(chǎn)品技術(shù)的不斷改進(jìn),現(xiàn)有電能表已能夠利用多種通信網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交互。利用云平臺及電能表的多種通信機(jī)制,構(gòu)建一個獨立于電能表本地存儲的數(shù)據(jù)存儲體系,是一個值得研究的方向。目前電能表的模塊化設(shè)計已較為成熟,硬件方面只須在原有基礎(chǔ)上增加相應(yīng)的接口和功能,即可構(gòu)建本系統(tǒng)。而在軟件方面,云平臺提供多種數(shù)據(jù)存儲方式,電能表與云平臺的數(shù)據(jù)交互可按照云平臺提供的數(shù)據(jù)模型設(shè)計對應(yīng)的數(shù)據(jù)庫來實現(xiàn)。因此,本系統(tǒng)在產(chǎn)品的更新和推廣上具有較高的可行性和經(jīng)濟(jì)性。
本文設(shè)計的系統(tǒng)由云平臺、支持4G 模塊的智能電能表以及通信網(wǎng)絡(luò)三部分組成。系統(tǒng)架構(gòu)如圖1 所示。
圖1 系統(tǒng)架構(gòu)示意圖
本系統(tǒng)的工作業(yè)務(wù)流程如下:
(1)物聯(lián)管理平臺提供設(shè)備端SDK,電能表使用SDK 與平臺通信。電能表運行后,對云平臺發(fā)起設(shè)備接入請求。
(2)云平臺驗證智能電表身份有效性。
(3)云平臺根據(jù)設(shè)置的物模型顯示當(dāng)前電能表連接狀態(tài)及運行狀態(tài)。
(4)電能表根據(jù)程序中的定時任務(wù)向云平臺發(fā)送電量數(shù)據(jù)以及運行數(shù)據(jù)。
(5)云平臺將數(shù)據(jù)備份至云存儲空間。
(6)上位機(jī)可以使用物聯(lián)管理平臺以及云存儲空間的接口獲取對電能表設(shè)備的管理權(quán)限,如對電能表進(jìn)行遠(yuǎn)程控制、數(shù)據(jù)獲取,也可查詢云端數(shù)據(jù)存儲狀態(tài)。
(7)電表進(jìn)入下一等待周期。
硬件設(shè)計采用模塊化思路,對現(xiàn)有智能電能表硬件架構(gòu)進(jìn)行改進(jìn)。具體結(jié)構(gòu)如圖2 所示,主要包含主控芯片RN8318、數(shù)據(jù)存儲模塊、電源控制模塊、交流采樣模塊、4G 通信模塊、RS 485 通信模塊和液晶顯示模塊。各模塊均通過硬件接口與主控芯片連接。
圖2 硬件設(shè)計
采用鐵電存儲器(E2PROM)加外部FLASH 存儲器,存儲不同類型數(shù)據(jù)。數(shù)據(jù)存儲模塊電路設(shè)計如圖3 所示。
圖3 數(shù)據(jù)存儲模塊電路設(shè)計
4G 通信模塊用于連接電能表與云平臺。本系統(tǒng)設(shè)計一路4G 模塊接口電路,通過SPI 與智能電表RN8318 相連,實現(xiàn)電能表與云平臺的數(shù)據(jù)交互。4G 通信模塊電路如圖4所示。
圖4 4G 通信模塊電路設(shè)計
RS 485 通信模塊用于連接電能表與外部終端。本系統(tǒng)設(shè)計一路UART 轉(zhuǎn)RS 485 接口電路,實現(xiàn)電表與外部終端的數(shù)據(jù)交互,方便進(jìn)行本地維護(hù)。RS 485 通信模塊電路設(shè)計如圖5 所示。
圖5 RS 485 通信模塊電路設(shè)計
軟件設(shè)計以下功能:計量功能、基于MQTT 的數(shù)據(jù)交互功能、定時數(shù)據(jù)備份功能。
電能計量模塊設(shè)計如圖6 所示。
本系統(tǒng)可測量合相各費率四象限有功、四象限無功電量。合相總電量在需要時由各分費率累加而成。
本系統(tǒng)可測量分相總的四象限有功、四象限無功電量。分相電量不支持分費率。
合相的組合有功、組合無功1、組合無功2 在需要時根據(jù)計量表達(dá)式生成。同樣,正向有功和反向有功也是在需要時臨時生成,只是表達(dá)式是固定的,不可配置,即正向有功=I 象限+IV 象限,反向有功=II 象限+III 象限。根據(jù)有功組合方式特征字和無功組合方式1 和2 特征字進(jìn)行設(shè)置如下:
(1)保存當(dāng)前及前面12 個結(jié)算周期的各電量;
(2)支持所有電量數(shù)據(jù)清零(電表清零命令或系統(tǒng)清零命令);
(3)分相電量根據(jù)合相的脈沖數(shù)及當(dāng)前功率計算,即當(dāng)無脈沖時,合相和分相均不可能出現(xiàn)電量。
為了實現(xiàn)數(shù)據(jù)云端存儲,本系統(tǒng)采用阿里云物聯(lián)網(wǎng)管理平臺作為云平臺,通過阿里云物聯(lián)管理平臺管理設(shè)備連接, 存儲設(shè)備數(shù)據(jù),相比自建專業(yè)云的成本、運維負(fù)擔(dān)更少。
首先在阿里云物聯(lián)網(wǎng)管理平臺上構(gòu)建電能表的物模型,保存物聯(lián)網(wǎng)平臺頒發(fā)的設(shè)備證書(ProductKey、DeviceName和DeviceSecret),用于電能表設(shè)備連接物聯(lián)網(wǎng)管理平臺的身份驗證。電能表與物聯(lián)網(wǎng)管理平臺通過MQTT 建立連接,電能表通過訂閱云端Topic 進(jìn)行數(shù)據(jù)交互。構(gòu)建Topic 見表1所列,數(shù)據(jù)以JSON 串形式上傳。
在阿里云物聯(lián)網(wǎng)平臺上設(shè)置消息流轉(zhuǎn)規(guī)則,可以將數(shù)據(jù)流轉(zhuǎn)至其他云存儲空間。上述云存儲空間可選用多種形式,本設(shè)計中使用阿里云表格存儲。表格存儲將流轉(zhuǎn)來的JSON串按設(shè)置的數(shù)據(jù)庫表頭存儲,表格存儲數(shù)據(jù)庫設(shè)計見表2所列。
表2 數(shù)據(jù)庫
主程序通過一個狀態(tài)機(jī)來處理電能表與云平臺的連接狀態(tài),流程如圖7 所示。程序默認(rèn)每1 s 檢測接入狀態(tài),電能表狀態(tài)程序中通過枚舉類型定義,用全局變量表示。電能表上電后進(jìn)入待連接狀態(tài),初始化客戶端模式,成功后對云平臺發(fā)起連接請求,收到確認(rèn)幀后,訂閱Topic,切換電能表進(jìn)入已連接狀態(tài),之后每分鐘發(fā)送心跳幀保持設(shè)備在線。
圖7 接入狀態(tài)查詢流程
數(shù)據(jù)接收通過檢測串口中斷獲取,獲取到JSON 串后根據(jù)Topic 以及數(shù)據(jù)值,程序做出相應(yīng)處理。
電能表在設(shè)備接入云平臺的狀態(tài)下,每1 min 上傳一次電量數(shù)據(jù)以及運行參數(shù)。
電能表運行參數(shù)以全局變量存在,到達(dá)時間閾值時,讀取電能表RAM 中的運行參數(shù)全局變量,將數(shù)據(jù)組包成JSON 串發(fā)送至云平臺,電能表運行數(shù)據(jù)備份用于電表異常時恢復(fù)正常運行狀態(tài)。流程如圖8 所示。
圖8 數(shù)據(jù)備份流程
電能表電量數(shù)據(jù)存儲在E2PROM 中,到達(dá)時間閾值時,讀取當(dāng)前費率以及E2PROM 中的電量數(shù)據(jù),將數(shù)據(jù)組包成JSON 串發(fā)送至云平臺。
為了驗證系統(tǒng)整體功能,本文在實驗室進(jìn)行了測試。如圖9 所示,準(zhǔn)備兩臺電能表接入相同的測試環(huán)境(臺體),上電后通過4G 通信方式接入阿里云物聯(lián)網(wǎng)管理平臺,同時將RS 485 連上本機(jī)電腦,設(shè)備上線后開始測試。
圖9 測試設(shè)備
兩臺電能表上電后進(jìn)行初始化操作,確保初始值一致,在相同環(huán)境下運行6 h,對比RS 485 抄讀數(shù)據(jù)與云端存儲數(shù)據(jù),實驗部分結(jié)果見表3 所列。測試驗證結(jié)果顯示,云端數(shù)據(jù)存儲具備較高的準(zhǔn)確性,本系統(tǒng)具備良好的推廣應(yīng)用前景。
表3 實驗結(jié)果
本文設(shè)計一種基于云平臺的智能電能表數(shù)據(jù)保護(hù)系統(tǒng),通過云平臺備份智能電能表數(shù)據(jù),解決傳統(tǒng)電能表本地存儲器異常后數(shù)據(jù)無法備份、恢復(fù)的問題,提高電能表運行的穩(wěn)定性。同時驗證了本文系統(tǒng)工作的有效性。為使系統(tǒng)更加便于應(yīng)用,可進(jìn)一步在提高傳輸速率、解決帶寬問題、壓縮存儲空間等方面進(jìn)行研究及改進(jìn)。