臺區智能終端適應智能配電臺區的發展應運而生,智能配電臺區有別于傳統配電臺區,傳統配電臺區電力用戶僅僅使用電力,不會向電網輸電。隨著我國人民生活水平日益提高,綠色用電逐漸成為新的課題,百姓利用自家空間搭建太陽能電池板,滿足自己用電的同時,把余電輸送到電網,所以配電臺區也做了相應的調整。保證電網的穩定運行,降低電力用戶的年停電時間,提高供電質量也推動了配電臺區的發展,催生了智能配電臺區的誕生。
臺區智能終端是智能配電臺區的核心設備,能夠獲取智能配電臺區所有設備的相關運行參數和數據,其中包括高壓側電壓、電流,低壓側電壓、電流,變壓器油溫、環境濕度,低壓智能斷路器和低壓換向開關狀態,電力用戶的用電量和電壓、電流,智能電容器和充電樁等設備的工作狀態。
采集到如此多的數據后,臺區智能終端可以實現電壓、電流越限告警、無功功率就地平衡、治理三相不平衡、計算臺區線損、研判并上報臺數故障信息等功能,為電力系統的運行管控提供所需的數據和邊緣計算能力。
由此可知臺區智能終端采集的設備多樣,有以下3個特點:
由以上特點,設計一個APP統一采集所有設備數據是一個很好的方案,此APP只負責采集數據,可以有效避免不同需求方抄同一數據的通道阻塞和設備阻塞。
數據集采APP的核心設計思路是按照任務配置準時把設備數據采集到數據中心,供臺區智能終端內其他APP使用。為了降低APP風險和適合項目團隊開發,按照正交性設計原理,把此APP劃分為5個功能專一的模塊,每個模塊是一個獨立的線程運行,模塊之間使用消息隊列遙測傳輸協議(message queuing telemetry transport, MQTT)交互數據。
圖1為數據集采APP整體設計方案,任務調度模塊為數據集采APP的主控模塊,數據中心為任務方案參數和數據存儲模塊,串口模塊、交采模塊和載波模塊為通道管理模塊。
圖1 數據集采APP整體設計
數據集采APP的主要處理流程是任務調度模塊負責從數據中心讀取任務方案,管理每個任務的執行時間和邏輯,當任務處于運行時間中,組織抄讀報文,并按照設備通道類型發給相應的通道管理模塊。通道管理模塊回復后,任務調度模塊解析數據,并把解析后的數據傳給數據中心。
2.1 MQTT
程序設計一般都采用模塊化設計,這樣可以降低風險,有問題的代碼區域容易被隔離起來,例如串口模塊的代碼有問題,只需要把此模塊暫時屏蔽,整個數據集采APP依然可以正常運行。模塊化設計會帶來模塊間通信難的問題,在研究了管道、信號量、共享內存等方式后,最后選擇了MQTT。
MQTT是一種基于發布/訂閱(publish/subscribe)模式的“輕量級”通信協議。使用發布/訂閱消息模式,提供一對多的消息發布,可以解除模塊間的耦合。MQTT有3種消息發布服務質量:至多一次、至少一次和只有一次。其中只有一次方式非常適合數據集采APP中各個模塊間的通信,任務調度模塊發給管理通道的報文保證管理通道能夠收到,返回的報文也能保證任務調度模塊能夠收到,從而保證了模塊間的同步。
2.2 數據中心
數據集采APP需要具備同時與運檢類APP和營銷類APP的交互能力,同時還要防止相同任務反復執行,造成通道或設備阻塞,導致數據采集執行不成功,影響臺區智能終端功能的正常運行。
為了解決這個問題,設計上采用數據中心思想,把任務方案和數據封裝一個單獨模塊處理,此模塊就是數據中心。數據中心負責與運檢類APP和營銷類APP交互,這兩類APP把需要采集的數據組成任務方案發給數據中心,數據中心接收后審查對比,重復的任務和無法執行的任務直接回復否認,不予存儲,保證數據采集正常運行。
任務調度模塊執行任務方案時,不區分任務為哪類APP下發的,按照優先級從高到低執行,執行后把數據發給數據中心,數據中心統一處理,這樣可以保證相同數據的唯一性,并可以給兩類APP同時使用。臺區智能終端具有邊緣計算的能力,使用數據中心方式,能夠很好地為各種邊緣計算APP提供數據支撐。
3.1 任務調度模塊設計
任務調度模塊主導著整個數據集采APP的運行,此模塊啟動時,載入任務方案相關參數,這些參數包括采集設備信息、采集任務、普通采集方案,具體參數項見表1。其中采集設備信息內的用戶類型是1~255的整數,其用途是根據設備類型、電力用戶類型和重點用戶情況綜合分類,在配置采集方案時可以實現不同用戶類型采集不同的數據,采集頻率和存儲深度也可以區分,滿足運維和營銷的靈活數據采集的需求。
表1 任務調度模塊需要載入的任務方案
任務方案載入之后,輪詢任務、組織報文、發送報文、等待報文和解析報文,最后傳數據到數據中心,這是任務調度模塊的整體流程,詳細流程如圖2所示。所有任務每秒都輪詢一遍,保證任務狀態切換時間不超過1s,確保任務按時執行和結束。
臺區智能終端的3種數據采集物理通道中RS 485通道和載波通道都存在報文收發失敗的情況,尤其載波通道,它容易受到電網電流、諧波和噪聲的影響,導致報文收發失敗的概率變大。
為了消除通道報文收發失敗造成采集失敗的情況,在任務調度模塊內加入自動補抄功能。具體原理是每個任務開始采集數據時,先向數據中心查待抄數據項的存儲情況,然后只組織沒有存儲的數據項報文,去除不必要抄讀的報文,提高效率。
通道管理模塊把所有要抄報文回復后,更新數據,判斷補抄輪次是否小于限制,若小于限制,則重新啟動此任務。若所有數據項全部抄回,則任務結束;若沒有全部抄回,則繼續補抄。當補抄輪次達到限制,任務結束。具體自動補抄流程如圖3所示。
圖2 任務調度模塊整體運行流程圖
圖3 任務調度模塊自動補抄流程圖
3.2 串口模塊設計
按照數據集采APP的整體設計,串口模塊需具備報文轉發和管理功能:
基于以上4個具體功能,圖4為串口模塊接口的詳細定義。
圖4 串口模塊接口定義
另外兩個通道管理模塊雖然管理的通道類型不同,但設計思路與串口模塊一致,并且與任務調度模塊的接口一致,使用JSON格式。故此文不再對載波模塊和交采模塊做詳細介紹。
按照以上整體和分模塊的設計,在Linux下編寫代碼,搭建數據集采APP,然后在一個典型的使用環境中驗證此APP的功能。選定的配電臺區中需要采集的設備信息見表2。
針對以上設備數據采集有多種方式,但為了驗證數據集采APP的功能,配置以下4個基本采集任務。
1)所有電表和交流采樣的日凍結任務,數據項有正向有功電能示值和反向有功電能示值。
表2 配電臺區需要采集的設備信息
2)三相表的15min曲線任務,數據項有三相電壓、電流和有功功率。
3)單相表的1h曲線任務,數據項有單相電壓和電流。
4)斷路器和電容器的實時數據采集任務,數據項有投合狀態、電壓和電流。
設備信息和采集任務配置后,數據集采APP按配置任務自動抄表,采集數據后傳到數據中心,通過698.45維護軟件和104維護軟件召測的部分數據見表3和表4。
表3 交流采樣和部分電表日凍結數據b
通過表3的數據可知,交流采樣數據在00:00:05就采集并存儲完成,電表的日凍結在00:05:00之后才陸續采集回來,是由于電表的日凍結任務延遲5min執行,留出電表凍結數據的時間,確保一次采集成功率。表4是智能斷路器的實時數據,表中寫的是漏保,是因為漏保是智能斷路器的一種。
表4 斷路器實時數據
通過測試驗證,本文設計的數據集采APP能夠采集整個配電臺區的設備數據,并能根據任務靈活配置,達到臺區智能終端的微應用APP的需求。
根據臺區智能終端的數據采集需求,本文設計了一種能對智能配電臺區所有設備進行數據集采的APP,在實際現場應用中,此APP能夠采集設備的電壓、電流、電能示值、低壓智能斷路器和電容器的狀態等,同時可以通過數據中心把數據上送到營銷和運檢的主站中,解決了臺區智能終端所有設備數據集采和數據上送的難題。
遵循此APP的設計方案,方便擴展接入水表、氣表、熱表、局放、水侵和煙感等感知設備,可以支撐智能配電臺區朝著全面感知和分級智能的方向發展。本文設計的APP是根據補抄周期和次數的方式進行自動補抄的,還有另一種方案是補抄一輪,優先級降低一級,但不限制補抄次數,這種方式理論上更能保證數據采集的成功率,但需要以后的實驗驗證。
本文編自2021年第2期《電氣技術》,論文標題為“臺區智能終端數據集采APP的設計和實現”,作者為田星星、李龍龍 等。