楊旭昕
(國網(wǎng)信息通信產(chǎn)業(yè)集團有限公司,北京 100053)
隨著源網(wǎng)荷儲協(xié)調(diào)互動發(fā)展迅速,新技術應用和新型業(yè)務終端接入日益廣泛,新的網(wǎng)絡邊界不斷涌現(xiàn),配用電主站需要監(jiān)測的臺區(qū)側(cè)數(shù)據(jù)量和數(shù)據(jù)密度急劇上升,導致主站側(cè)數(shù)據(jù)處理能力及遠程通信能力在未來面臨著重大壓力[1]。通常終端設備中的數(shù)據(jù)種類和處理方法有一定的共同規(guī)律,也有各自的特殊規(guī)律,使得嵌入式數(shù)據(jù)存儲系統(tǒng)不能像企業(yè)級數(shù)據(jù)庫那樣通用,而是有著很大的差異性[2]。此外,隨著存儲設備的改變,其數(shù)據(jù)的存取策略和方法也隨之改變,現(xiàn)有的數(shù)據(jù)庫存儲管理理論與技術主要是基于內(nèi)存數(shù)據(jù)庫或基于磁盤存儲結(jié)構的大型商業(yè)數(shù)據(jù)庫,不適用于嵌入式數(shù)據(jù)庫系統(tǒng)[3]。
傳統(tǒng)的集中式數(shù)據(jù)庫可用性和可靠性較低,可擴展性差,無法滿足日益增長的數(shù)據(jù)存儲需求[4]。文獻[5]提出了一種基于安全容器技術實現(xiàn)邊緣計算的配用電一體化裝置,文獻[6]研究了面向電網(wǎng)的邊緣算力優(yōu)化與分布式數(shù)據(jù)存儲處理模型。本文聚焦配電變壓器臺區(qū)側(cè)的邊緣計算能力提升,提出了一種新的適用于臺區(qū)智能終端的新型配用電數(shù)據(jù)存取方法。所提方法系統(tǒng)性的解決了數(shù)據(jù)存取的效率問題和設備掉電后的數(shù)據(jù)恢復問題。
針對現(xiàn)有存取方案的不足,本文通過結(jié)合臺區(qū)智能終端搭載的容器技術及MQTT消息協(xié)議實現(xiàn)了可跨容器存取數(shù)據(jù)的消息交互機制。消息內(nèi)容的格式參考選用了JSON數(shù)據(jù)格式,提供一致的數(shù)據(jù)庫接口,一方面屏蔽了通信協(xié)議的差異性,另一方面大大簡化了各類實時應用的開發(fā),極大地提升了開發(fā)和運維的效率[7]??煽缛萜鞔嫒?shù)據(jù)的消息交互機制如圖1所示。
圖1 可跨容器存取數(shù)據(jù)的消息交互機制
其中,消息總線提供了發(fā)布和訂閱主題接口,主題接口須遵循數(shù)據(jù)存取方案的接口規(guī)范。按照配電及用電數(shù)據(jù)的特點,本數(shù)據(jù)存取方案制定了10種主題接口。
編寫數(shù)據(jù)的應用程序時需要注意的是,當容器1中應用程序的數(shù)據(jù)更新后調(diào)用總線發(fā)布數(shù)據(jù)更新請求,總線接收到更新請求后將其轉(zhuǎn)發(fā)至容器2,容器2負責數(shù)據(jù)存儲及管理,并將存儲結(jié)果通過消息總線反饋給容器1的應用程序。讀數(shù)據(jù)的應用程序需要注意的是,容器1的應用程序調(diào)用消息總線發(fā)布數(shù)據(jù)讀取請求,消息總線將讀取請求轉(zhuǎn)發(fā)至容器2,容器2接收到數(shù)據(jù)讀取請求后,按照請求讀取本地數(shù)據(jù),并將讀取結(jié)果經(jīng)由消息總線反饋至容器1的應用程序。
臺區(qū)智能終端需存儲多類配用電數(shù)據(jù)信息,根據(jù)數(shù)據(jù)來源分為低壓電網(wǎng)模型臺賬數(shù)據(jù)、二次設備定值配置數(shù)據(jù)、電網(wǎng)運行數(shù)據(jù)、營銷采集數(shù)據(jù)以及邊緣計算結(jié)果數(shù)據(jù)等。按照模型統(tǒng)一和本地化自管理的數(shù)據(jù)管理原則,需建立唯一的數(shù)據(jù)管理與讀寫通道,并建立數(shù)據(jù)存儲自維護機制,以提高數(shù)據(jù)融合與采集的效率,降低管理難度。數(shù)據(jù)存取方案如圖2所示。
圖2 面向配用電數(shù)據(jù)特點的存取方案
其中,應用程序調(diào)用消息總線發(fā)送數(shù)據(jù)存取請求,消息處理模塊接收到總線轉(zhuǎn)發(fā)的數(shù)據(jù)存取請求后進行消息分類,并將請求消息轉(zhuǎn)發(fā)至相應的接口模塊繼續(xù)處理。接口模塊用于分類處理不同的存取需求,各接口處理完畢的數(shù)據(jù)會存放在內(nèi)存中隨即繼續(xù)處理下一條消息,最大限度地提升了處理效率。按照配電及用電數(shù)據(jù)的特點,本數(shù)據(jù)存取方案制定了4種類型的接口交互模塊,具體如下。
模型管理接口中,模型名稱查詢接口和查詢結(jié)果反饋接口用于查詢已存儲的數(shù)據(jù)模型,模型刪除接口和刪除結(jié)果反饋接口用于移除已存儲的數(shù)據(jù)模型,具體如表1所示。模型交互接口中,模型設置接口和設置結(jié)果反饋接口用于建立新的設備數(shù)據(jù)模型,模型內(nèi)容查詢接口和查詢結(jié)果反饋接口用于查詢設備模型具體數(shù)據(jù)信息,具體如表2所示。
表1 模型管理接口
表2 模型交互接口
設備管理接口中,設備查詢接口和查詢結(jié)果反饋接口用于查詢已完成實例化的設備信息,設備取消注冊接口和取消結(jié)果反饋接口用于移除已完成實例化的設備信息,具體如表3所示。設備交互接口中,設備注冊接口和注冊結(jié)果反饋接口用于實例化具體設備或虛擬設備,具體如表4所示。
表3 設備管理接口
表4 設備交互接口
參數(shù)交互接口中,參數(shù)查詢接口和查詢結(jié)果反饋接口用于查詢設備定值和配置參數(shù),參數(shù)刪除接口和刪除結(jié)果反饋接口用于移除設備定值和配置參數(shù),參數(shù)設置接口和設置結(jié)果反饋接口用于存儲設備定值和配置參數(shù),具體如表5所示。
表5 參數(shù)交互接口
全數(shù)據(jù)交互接口中,全數(shù)據(jù)上報接口和全數(shù)據(jù)上報結(jié)果反饋接口主要用于定時向數(shù)據(jù)中心存儲設備的全數(shù)據(jù);變化數(shù)據(jù)上報接口主要用于針對實時性要求較高的變化遙信及變化遙測類數(shù)據(jù),將其及時轉(zhuǎn)發(fā)至主站;實時數(shù)據(jù)查詢接口和實時數(shù)據(jù)查詢結(jié)果反饋接口用于讀取設備的實時數(shù)據(jù),可一次性讀取數(shù)據(jù)中心已存儲的全部數(shù)據(jù),也可根據(jù)數(shù)據(jù)項、設備類型等方式進行精準定位讀??;歷史數(shù)據(jù)查詢接口和歷史數(shù)據(jù)查詢結(jié)果反饋接口用于讀取設備的歷史數(shù)據(jù),可按照起止時間的時間段或存儲時間的時間段等方式讀取設備的歷史數(shù)據(jù);SOE上報接口和SOE上報結(jié)果反饋用于存儲設備的SOE事件信息;SOE查詢接口和SOE查詢結(jié)果反饋用于讀取設備的SOE事件信息。具體如表6所示。
表6 數(shù)據(jù)交互接口
嵌入式環(huán)境下應當從全內(nèi)存存儲及嵌入式系統(tǒng)的特點出發(fā),數(shù)據(jù)庫管理系統(tǒng)應將內(nèi)存數(shù)據(jù)庫以文件的形式備份在本地非易失性存儲器中,從而進行簡單、快速的數(shù)據(jù)庫備份和恢復[8]。常見的嵌入式數(shù)據(jù)庫,如Berkeley DB、SQLite等,雖然具備良好的數(shù)據(jù)管理能力,但是其架構和特性面向普通的嵌入式系統(tǒng)設計,在實時性和可靠性方面難以滿足配電及用電數(shù)據(jù)就地存取的要求[9]。本方案中數(shù)據(jù)管理模塊經(jīng)過長期試驗和探索,綜合了文件與SQLite的優(yōu)點,同時消除其單一使用的缺點。一方面是將緩存在內(nèi)存中的實時數(shù)據(jù)在數(shù)據(jù)中心閑暇時復制到文件中保存,防止發(fā)生終端掉電或系統(tǒng)崩潰時導致數(shù)據(jù)丟失;另一方面是定時將緩存在內(nèi)存中的實時數(shù)據(jù)寫入SQLite數(shù)據(jù)庫中,形成各類設備的歷史數(shù)據(jù)庫。
嵌入式實時數(shù)據(jù)庫系統(tǒng)的關鍵是數(shù)據(jù)模型的確立,它決定了數(shù)據(jù)被訪問和操作的方式,應用程序的性能和可靠性也大部分取決于此[10]。針對現(xiàn)有點表式數(shù)據(jù)存取方案下配用電數(shù)據(jù)模型不統(tǒng)一、模型不易擴展以及數(shù)據(jù)分類顆粒度較粗等問題,制定了圖3所示的數(shù)據(jù)存取原則。
圖3 數(shù)據(jù)存取原則
對于應用程序?qū)憯?shù)據(jù),在進行數(shù)據(jù)存儲時需要先調(diào)用設備模型交互接口,建立新的設備模型信息。建立好設備模型后再調(diào)用設備注冊接口,按照剛才建立的設備模型實例化需上報數(shù)據(jù)的設備,然后調(diào)用數(shù)據(jù)上報接口按照實例化的設備進行數(shù)據(jù)上報。其中設備模型在未發(fā)生變化時只需要建立一次,設備實例化只在接入新設備時才需要進行注冊。
對于應用程序讀數(shù)據(jù),在進行數(shù)據(jù)讀取時需要先調(diào)用設備模型交互接口,查詢所需設備模型的具體模型信息,確定好設備模型后再調(diào)用設備注冊接口。查詢對應設備模型已實例化的具體設備,然后調(diào)用數(shù)據(jù)查詢接口查詢已實例化的設備數(shù)據(jù)信息。其中設備模型在未發(fā)生變化時只需要查詢一次,在未變更所需讀取的目標實例化設備時,設備注冊信息也只需查詢一次。
實際應用場景中,文中提供的配用電數(shù)據(jù)的存取方法可在嵌入式設備臺區(qū)智能終端中實現(xiàn),用于支撐營銷與配電的物聯(lián)網(wǎng)邊緣計算。該實現(xiàn)充分利用臺區(qū)智能終端的容器特點,安全且高效地存取配電及用電相關數(shù)據(jù),解決了配用電數(shù)據(jù)需在配電變壓器臺區(qū)側(cè)的邊端跨容器就地存取問題。
目前,文中提供的配用電數(shù)據(jù)存取方法已應用在江蘇和山東等地多處臺區(qū)智能終端的試點現(xiàn)場。江蘇泰州某臺區(qū)試點拓撲如圖4所示,臺區(qū)智能終端接入了智能斷路器、SVG、無功補償裝置、換相開關以及智能電表等大量配用電設備,所有數(shù)據(jù)全部通過本文中提供的數(shù)據(jù)存取方案實現(xiàn)設備建模和數(shù)據(jù)就地存取交互的功能。在此基礎上,數(shù)據(jù)經(jīng)邊緣計算后上送主站,實現(xiàn)了臺區(qū)的電能質(zhì)量治理功能。主站數(shù)據(jù)展示截圖如圖5所示,經(jīng)過試點現(xiàn)場長時間穩(wěn)定運行,主站側(cè)數(shù)據(jù)展示真實、連貫且無斷點,體現(xiàn)了本方案在數(shù)據(jù)存取方面具有較好的穩(wěn)定性及可行性。
圖4 江蘇泰州某臺區(qū)試點拓撲圖
圖5 主站數(shù)據(jù)展示截圖
本文提出了一種新的適用于臺區(qū)側(cè)配用電數(shù)據(jù)的存取方法,該方法在消息處理部分和數(shù)據(jù)存取部分,消息處理部分結(jié)合容器技術使用了MQTT消息協(xié)議作為消息總線的傳輸機制,消息內(nèi)容的格式則采用了JSON數(shù)據(jù)交換格式來描述,實現(xiàn)了可跨容器的交互功能。在數(shù)據(jù)存取部分使用了內(nèi)存存取加文件存取的方式作為實時數(shù)據(jù)的存取方式,不同于已有技術中使用配置文件映射關系指向型內(nèi)存存取,且格式固定的方式,不需要應用程序進行二次數(shù)據(jù)處理,從而提高了數(shù)據(jù)存取的效率。同時歷史數(shù)據(jù)的存取方式則采用了SQLite數(shù)據(jù)庫,實現(xiàn)了數(shù)據(jù)的定時備份,避免了設備掉電后的數(shù)據(jù)難于恢復的問題。實際應用效果表明,所提方法安全、可靠且有效。