岳 浩,吳義文,王 勇,張小龍,程 鑫
(安徽南瑞中天電力電子有限公司,安徽 合肥 230031)
智能用電信息采集物聯(lián)終端(以下稱“智能用采終端”)是用電信息采集系統(tǒng)的樞紐設(shè)備,承擔(dān)著臺(tái)區(qū)電量數(shù)據(jù)采集、用電信息精準(zhǔn)計(jì)量、數(shù)據(jù)管理以及轉(zhuǎn)發(fā)或執(zhí)行控制命令的核心任務(wù)。隨著能源互聯(lián)網(wǎng)的迅速發(fā)展,智能用采終端產(chǎn)業(yè)在國內(nèi)逐漸興起,終端數(shù)量與采集信息量不斷增多,傳統(tǒng)用采終端完全依賴主站做出智能判斷與行動(dòng)決策的交互模式,已無法滿足采集管控信息量日益增多的需求。面對(duì)電力行業(yè)對(duì)海量數(shù)據(jù)智能化實(shí)時(shí)處理的強(qiáng)烈需求,如果完全依賴主站集中分析處理電力系統(tǒng)采集到的原始數(shù)據(jù),不僅會(huì)造成主站網(wǎng)絡(luò)流量壓力過大,而且大量設(shè)備協(xié)同工作的實(shí)時(shí)性難以得到保證。為減小主站計(jì)算壓力,設(shè)計(jì)一種APP對(duì)智能用采終端所有采集任務(wù)進(jìn)行統(tǒng)一分析、管理以及調(diào)度,允許終端自身分析運(yùn)行狀態(tài)并做出智能決策的方案勢(shì)在必行。
采集任務(wù)調(diào)度管理APP須支持以下功能:
(1)篩查冗余的采集任務(wù),剔除冗余的采集方案或采集數(shù)據(jù)項(xiàng);
(2)支持多級(jí)采集任務(wù)優(yōu)先級(jí)管理,支持按業(yè)務(wù)類型編排優(yōu)先級(jí),抄表端口按照優(yōu)先級(jí)進(jìn)行排序,確保高優(yōu)先級(jí)業(yè)務(wù)優(yōu)先執(zhí)行;
(3)執(zhí)行采集任務(wù)前,先從數(shù)據(jù)中心查詢?cè)摂?shù)據(jù)項(xiàng)是否已存在,如已存在(抄讀成功)不再重復(fù)抄讀,避免浪費(fèi)端口資源;
(4)為提高采集效率,采集數(shù)據(jù)支持本地緩存功能,按需或定時(shí)將采集數(shù)據(jù)寫入數(shù)據(jù)中心;
(5)采集數(shù)據(jù)對(duì)外提供數(shù)據(jù)庫接口和消息訂閱接口,實(shí)現(xiàn)數(shù)據(jù)共享;
(6)可接收主動(dòng)上報(bào)數(shù)據(jù)或事件,按需將采集數(shù)據(jù)寫入數(shù)據(jù)中心。
采集任務(wù)調(diào)度管理APP負(fù)責(zé)所有采集任務(wù)的管理,對(duì)采集任務(wù)的配置執(zhí)行相應(yīng)抄表過程,通過本地抄表模塊管理APP進(jìn)行抄表,將數(shù)據(jù)采集結(jié)果存儲(chǔ)到數(shù)據(jù)中心,與高級(jí)APP實(shí)現(xiàn)數(shù)據(jù)共享。
采集任務(wù)調(diào)度管理APP處于邊緣計(jì)算APP容器中,負(fù)責(zé)對(duì)通過本地抄表模塊完成數(shù)據(jù)采集的采集任務(wù)進(jìn)行分析、管理以及調(diào)度,由采集任務(wù)調(diào)度管理APP完成采集任務(wù)的執(zhí)行,并將采集結(jié)果存儲(chǔ)到數(shù)據(jù)中心供各業(yè)務(wù)APP或邊緣計(jì)算APP查詢。平臺(tái)整體架構(gòu)如圖1所示。
圖1 平臺(tái)架構(gòu)
采集任務(wù)調(diào)度管理APP通過時(shí)間觸發(fā)或者命令觸發(fā)生成自動(dòng)抄表任務(wù)和透明傳輸任務(wù),執(zhí)行抄表流程;抄表通道分載波通道和485通道,采集任務(wù)調(diào)度管理APP負(fù)責(zé)對(duì)通過本地抄表APP或者485通道完成數(shù)據(jù)采集的采集任務(wù)進(jìn)行分析、管理以及調(diào)度。有抄表需求的業(yè)務(wù)APP,將抄表任務(wù)配置到數(shù)據(jù)庫APP,由采集任務(wù)調(diào)度管理APP完成采集任務(wù)的優(yōu)化和執(zhí)行,調(diào)用采集規(guī)約進(jìn)行組幀和解幀,并將采集結(jié)果存儲(chǔ)到數(shù)據(jù)中心供各業(yè)務(wù)APP或邊緣計(jì)算APP查詢。APP的業(yè)務(wù)架構(gòu)如圖2所示。
圖2 業(yè)務(wù)架構(gòu)
采集任務(wù)調(diào)度管理APP啟動(dòng)后首先在系統(tǒng)管理APP中進(jìn)行注冊(cè),建立與消息中心的鏈路。注冊(cè)完成后從數(shù)據(jù)中心循環(huán)讀取采集方案和采集任務(wù),進(jìn)行冗余篩查,去除重復(fù)的采集方案或者采集數(shù)據(jù)項(xiàng),最終形成統(tǒng)一的采集任務(wù)集合。采集任務(wù)調(diào)度管理APP上電或者收到參數(shù)變更通知時(shí)讀取一次采集方案和采集任務(wù)。
采集任務(wù)調(diào)度管理APP對(duì)采集任務(wù)集合進(jìn)行優(yōu)先級(jí)管理,確保高優(yōu)先級(jí)任務(wù)優(yōu)先執(zhí)行。達(dá)到采集任務(wù)開始周期時(shí)任務(wù)啟動(dòng),首先從數(shù)據(jù)中心中查詢需要采集的數(shù)據(jù)項(xiàng)是否已存在,如果存在則無須抄讀,如果不存在則進(jìn)行抄讀。組成抄表幀下發(fā)至本地通信管理APP進(jìn)行抄表。抄表完成后先將數(shù)據(jù)記錄在緩沖區(qū),按需或者定時(shí)將數(shù)據(jù)寫入數(shù)據(jù)中心;采集任務(wù)調(diào)度管理APP還可支持本地通信管理APP主動(dòng)上報(bào)的數(shù)據(jù)或者事件,按需將這部分?jǐn)?shù)據(jù)寫入數(shù)據(jù)中心。
采集任務(wù)調(diào)度管理APP負(fù)責(zé)所有采集任務(wù)的管理,通過采集任務(wù)的配置執(zhí)行相應(yīng)的抄表過程。APP上電時(shí)從數(shù)據(jù)中心讀取所有采集任務(wù),按照一定條件進(jìn)行篩選,加入到任務(wù)隊(duì)列中,例如去除無效的任務(wù);再對(duì)任務(wù)按照優(yōu)先級(jí)進(jìn)行排序,確保優(yōu)先級(jí)高的任務(wù)優(yōu)先執(zhí)行。
3.1.1 任務(wù)隊(duì)列建立
采集任務(wù)調(diào)度管理APP啟動(dòng)時(shí)從數(shù)據(jù)中心讀取所有采集任務(wù),進(jìn)行初步的篩查,剔除無效的任務(wù),讀取每個(gè)任務(wù)對(duì)應(yīng)的采集方案,對(duì)其進(jìn)行參數(shù)解析后加入到任務(wù)列表中。當(dāng)采集任務(wù)調(diào)度管理APP收到采集任務(wù)變更的消息后,重新進(jìn)行上述操作,更新采集任務(wù)列表,否則任務(wù)列表保持不變。
3.1.2 任務(wù)狀態(tài)管理
每個(gè)采集任務(wù)都具有四種狀態(tài):無效、有效、激活以及完成。每個(gè)任務(wù)按照所處的狀態(tài)進(jìn)行統(tǒng)一調(diào)度,具體如下:
(1)無效:任務(wù)配置為“停用”狀態(tài),任務(wù)不可執(zhí)行;
(2)有效:任務(wù)配置為“啟用”狀態(tài),須按配置周期執(zhí)行;
(3)激活:任務(wù)滿足執(zhí)行條件(開始時(shí)間、結(jié)束時(shí)間、延時(shí)等),但任務(wù)配置的數(shù)據(jù)項(xiàng)未全部抄讀完成;
(4)完成:任務(wù)配置的數(shù)據(jù)項(xiàng)抄讀成功率100%或者任務(wù)超過執(zhí)行周期。
狀態(tài)切換規(guī)則如下:
(1)有效與無效:兩種狀態(tài)的切換通過任務(wù)參數(shù)配置完成;
(2)有效與激活:根據(jù)任務(wù)配置參數(shù),滿足運(yùn)行條件后執(zhí)行,從有效切換至激活狀態(tài),清除所有任務(wù)執(zhí)行狀態(tài)標(biāo)記,激活狀態(tài)不能切換至有效狀態(tài);
(3)激活與完成:當(dāng)此任務(wù)抄讀成功率為100%,或者任務(wù)超過執(zhí)行周期,轉(zhuǎn)為“完成”狀態(tài);
(4)完成與激活:按配置周期,滿足運(yùn)行條件后執(zhí)行,從完成切換至激活狀態(tài)。
3.1.3 任務(wù)優(yōu)先級(jí)管理
采集任務(wù)調(diào)度管理支持255個(gè)任務(wù)、256種優(yōu)先級(jí),可以多個(gè)任務(wù)同一優(yōu)先級(jí)。當(dāng)優(yōu)先級(jí)相同時(shí),按照任務(wù)序號(hào)順序執(zhí)行。通過對(duì)任務(wù)隊(duì)列的排序進(jìn)行任務(wù)優(yōu)先級(jí)的管理。
采集任務(wù)的執(zhí)行須按照表計(jì)檔案的配置端口分別進(jìn)行管理,可以按照端口并發(fā)執(zhí)行。如果某一端口配置的表計(jì),其高優(yōu)先級(jí)采集任務(wù)全部執(zhí)行完成,可以繼續(xù)執(zhí)行低優(yōu)先級(jí)任務(wù),與其他端口的高優(yōu)先級(jí)采集任務(wù)狀態(tài)無關(guān)。采集任務(wù)排序流程如圖3所示。
圖3 采集任務(wù)排序流程
功能實(shí)現(xiàn)程序如下:
3.2.1 數(shù)據(jù)項(xiàng)抄讀
抄讀數(shù)據(jù)項(xiàng)的流程如下:
(1)采集任務(wù)調(diào)度管理APP可連續(xù)發(fā)送多條抄讀命令,然后等待上報(bào)數(shù)據(jù)。如果某數(shù)據(jù)項(xiàng)在超時(shí)時(shí)間內(nèi)未有任何響應(yīng),表示此數(shù)據(jù)項(xiàng)抄讀失敗(未響應(yīng)),如圖4所示。
圖4 數(shù)據(jù)項(xiàng)抄讀流程
(2)對(duì)于連續(xù)多次都無響應(yīng)的表計(jì),不再抄讀,直接切表;在一個(gè)任務(wù)執(zhí)行周期內(nèi),所有表計(jì)全部請(qǐng)求完成后,須將所有未響應(yīng)的數(shù)據(jù)項(xiàng)狀態(tài)清零,再次請(qǐng)求抄讀。
(3)如果表計(jì)回復(fù)否認(rèn),將此數(shù)據(jù)項(xiàng)加入不支持?jǐn)?shù)據(jù)列表,后續(xù)將不再抄讀此數(shù)據(jù),然后抄讀下一個(gè)數(shù)據(jù)項(xiàng)。
(4)如果表計(jì)正常返回,保存數(shù)據(jù)。
3.2.2 補(bǔ)抄功能設(shè)計(jì)
終端上電或者首次下發(fā)檔案,判斷是否需要補(bǔ)抄。如果需要補(bǔ)抄,將需要補(bǔ)抄的表計(jì)及數(shù)據(jù)項(xiàng)存入補(bǔ)抄信息的私有文件;每輪任務(wù)抄表結(jié)束后,將該任務(wù)中抄表失敗的表計(jì)數(shù)據(jù)項(xiàng)存儲(chǔ)到私有文件中。補(bǔ)抄任務(wù)運(yùn)行時(shí)檢測(cè)文件并讀取文件中需要補(bǔ)抄的信息,進(jìn)行補(bǔ)抄任務(wù)。每輪抄表過程中,只有未響應(yīng)的表計(jì)數(shù)據(jù)項(xiàng)需要存儲(chǔ)到補(bǔ)抄文件中,如果表計(jì)明確回復(fù)不支持,則不需要進(jìn)行補(bǔ)抄。補(bǔ)抄執(zhí)行優(yōu)先級(jí)最低,在所有正常任務(wù)執(zhí)行完成之后才啟動(dòng)補(bǔ)抄任務(wù)。
當(dāng)采集任務(wù)調(diào)度管理接收到本地通信管理APP上報(bào)的事件數(shù)據(jù)時(shí),將上報(bào)數(shù)據(jù)轉(zhuǎn)換成規(guī)定的存儲(chǔ)格式存儲(chǔ)到數(shù)據(jù)中心,供高級(jí)APP讀出后上報(bào)給主站,關(guān)鍵程序如下:
按照以上整體和分模塊的設(shè)計(jì),在Linux開發(fā)環(huán)境下編寫代碼,搭建采集任務(wù)調(diào)度管理APP;然后在一個(gè)典型的使用環(huán)境中驗(yàn)證此APP的功能。選定的用電臺(tái)區(qū)中需要采集的設(shè)備信息見表1所列。
表1 臺(tái)區(qū)智能用采物聯(lián)終端需采集的設(shè)備信息
針對(duì)以上設(shè)備數(shù)據(jù)采集有多種方式,但為了驗(yàn)證采集任務(wù)調(diào)度管理APP的功能,配置以下4個(gè)基本采集任務(wù):
(1)所有電表和交流采樣的日凍結(jié)任務(wù):數(shù)據(jù)項(xiàng)包含正向有功電能示值和反向有功電能示值。
(2)三相表的15 min曲線任務(wù):數(shù)據(jù)項(xiàng)包含三相電壓、電流和有功功率。
(3)單相表的1 h曲線任務(wù):數(shù)據(jù)項(xiàng)包含單相電壓和電流。
(4)斷路器的實(shí)時(shí)數(shù)據(jù)采集任務(wù):數(shù)據(jù)項(xiàng)有投合狀態(tài)、電壓和電流。
設(shè)備信息和采集任務(wù)配置后,采集任務(wù)調(diào)度管理APP按配置任務(wù)自動(dòng)抄表,采集數(shù)據(jù)后傳到數(shù)據(jù)中心。通過698.45維護(hù)軟件和104維護(hù)軟件召測(cè)的部分?jǐn)?shù)據(jù)見表2和表3所列。
表2 交流采樣和部分電表日凍結(jié)數(shù)據(jù)
通過表2的數(shù)據(jù)可知,交流采樣數(shù)據(jù)在00:00:05就采集并存儲(chǔ)完成,電表的日凍結(jié)在00:05:00之后才陸續(xù)采集回來。這是由于電表的日凍結(jié)任務(wù)延遲5 min執(zhí)行,留出電表凍結(jié)數(shù)據(jù)的時(shí)間,確保一次采集成功率。表3是智能斷路器的實(shí)時(shí)數(shù)據(jù),其中漏保是一種智能斷路器。
表3 智能斷路器實(shí)時(shí)數(shù)據(jù)
通過測(cè)試驗(yàn)證,本文設(shè)計(jì)的采集任務(wù)調(diào)度管理APP能夠采集整個(gè)用電臺(tái)區(qū)的設(shè)備數(shù)據(jù),并能根據(jù)任務(wù)靈活配置,實(shí)現(xiàn)臺(tái)區(qū)用采設(shè)備物物相連,滿足智能用采物聯(lián)終端的微應(yīng)用APP的需求。
針對(duì)智能用采物聯(lián)終端多任務(wù)并發(fā)、多采集對(duì)象、多數(shù)據(jù)類型的新業(yè)務(wù)需求,本文設(shè)計(jì)了一種能對(duì)智能用電臺(tái)區(qū)所有設(shè)備進(jìn)行采集任務(wù)調(diào)度管理的APP。在實(shí)際現(xiàn)場應(yīng)用中,此APP能夠采集設(shè)備的電壓、電流、電能示值、低壓智能斷路器等;同時(shí)可以通過數(shù)據(jù)中心把數(shù)據(jù)上送到主站中,解決多級(jí)采集任務(wù)管理困難、抄讀通道沖突、同一數(shù)據(jù)重復(fù)采集等問題,提高了臺(tái)區(qū)智能用采物聯(lián)終端的數(shù)據(jù)集采性能,能夠支撐智能用電臺(tái)區(qū)朝著物物相連、全面感知和分級(jí)智能的方向發(fā)展。