黃孟孟
(寧波三星醫療電氣股份有限公司,浙江寧波315000)
電力采集系統通過電力采集終端對臺區電能表數據進行采集,從而對居民用戶的電量實現每日監控,以把握臺區的供電情況。但電力采集終端多裝配在地下室、配電房、山野郊區等網絡信號覆蓋差的地方,現場環境較為惡劣,掉線情況多有發生,若因掉線導致數據無法上報,對電力公司采集率有較大影響。本文從設計端出發,設計循環心跳流程并在終端異常掉線后新增上線補上報機制,以防終端不在線導致數據丟點的情況發生。
能夠進行數據上報的前提是電力采集終端和電力采集系統主站[1]處于協商握手狀態下,即能進行數據交互。而電力采集終端通過客戶機和服務器模式與電力采集系統主站進行交互,電力采集終端作為交互系統中的客戶機,需主動向電力采集系統發起應用連接請求,并由電力采集終端進行鏈路維護[2],這就需要終端有一套自發性的心跳管理流程。心跳管理流程可以有兩種方式:
(1)心跳流程耦合于正常數據交互,即發生正常數據交互后刷新心跳周期,認為該數據包可作為鏈路穩定的依據,順延一個心跳周期發送心跳包。該方法最大的好處是能夠節約電力采集終端所攜帶SIM卡的流量,缺點是電力采集終端對鏈路狀況的判定也將順延一個心跳周期。
(2)心跳流程與正常數據交互相互獨立,即心跳周期不受數據交互影響,固定時間刷新,如此設計才能夠保證電力采集終端第一時間知曉鏈路的異常狀況。故本文更推薦上報設計采用獨立心跳流程。
針對方式(2)所需的月通信流量做如下計算:假設電力采集終端數據上報任務按1 h上報一次(運行現場上報任務一般為一日一次),并且每個上報時間點均能刷新下一條心跳包的時間計,則一個月(31天)多發送心跳幀數量為24×31=744條;心跳報文一包為30字節,則一個月增加流量為744×30÷1 024≈21.8 kb,且實際現場數據上報遠沒有這么頻繁,故使用獨立心跳流量無流量越限風險,本上報機制采用獨立心跳流程。
電力采集終端正常在線上報分為兩種情況:(1)正常數據采集的任務式上報;(2)異常事件發生時的主動上報。任務式上報需由電力采集系統對電力采集終端配置上報任務及上報數據方案,由電力采集終端完成指定數據指定時間的任務式上報,則電力采集終端內部需有一套針對任務式上報的任務調度、輪詢機制;而異常事件發生時存在一個觸發狀態,將會搶占當前執行的上報任務輪詢優先進行上報。上報流程框圖如圖1所示。

圖1 數據上報流程框圖
由于終端通過心跳包和主站進行鏈路狀態的維護,這也意味著終端只有在每次發送心跳包時能夠刷新在線標志位,狀態位變更必然存在一定的滯后性,終端只有在發送下一個心跳包或主動發送數據無法響應時能夠改變狀態位。
業務模塊的數據需要通過判斷在線標志位來決策是否能夠上報,若數據上報時間點剛好卡在兩個心跳中間,上報模塊則會判斷為正常在線狀態,并將狀態機更改為發送狀態,上報終端便會在掉線狀態下發生數據上報,并且重新上線后不再上報,如圖2所示。

圖2 終端異常掉線上報示意圖
針對異常掉線情況,新增補報機制,新上報流程如下:
(1)電力采集終端因上報任務或事件產生上報需求,首先置上報標志位并檢測終端是否在線,若在線則嘗試向主站上報數據,否則掛起上報,等待終端上線后進行數據上報。
(2)嘗試發起數據上報后,判斷主站是否回復確認幀,若接收到主站返回的數據上報確認幀,則清空數據上報標志位,流程結束。若未收到數據上報確認幀,則開始第二次嘗試,最多連續嘗試3次且每次上報間隔1 min,并對補報行為進行記錄(最大存儲96×31=2 976條補報記錄,按滾動方式存儲,超出深度部分覆蓋最早記錄,補報記錄按15 min 96點曲線最大存儲一個月計算)。
(3)若3次均未收到主站回復確認幀,此時對終端在線狀態存在疑問,上報任務需等待一個心跳周期后重新檢測終端是否在線,若終端不在線需返回到步驟(1)等待終端上線。
(4)若一個心跳周期后終端處于在線狀態,重復步驟(2)重新發起上報,收到主站回復的確認幀后,清除當前數據包標志,準備發送下一幀數據,返回到步驟(1)。
(5)所有幀發送完畢后,結束上報流程。
具體補報工作流程圖如圖3所示。

圖3 終端異常掉線上報流程圖
選擇部分臺區對電力采集終端進行四天的試掛測試,發現實行新上報流程的電力采集終端采集率較原流程有較大幅度提高,原流程部分臺區采集率甚至不足68%,而新流程基本能達到99%,滿足電力公司要求。具體結果差異如表1、表2所示。
總之,采集率是電力公司考核的重要指標,也是電力采集系統中對臺區電能采集情況最直觀的反映,而電力采集終端作為采集系統中握住咽喉的一環更是不容有失。在現場運行環境如此惡劣的情況下,需要在設計端對上行、下行切割分析,增加相對應的數據容錯機制,最終去克服現場問題,提高采集率。

表1 無補報機制電力采集終端試掛統計表

表2 帶補報機制電力采集終端試掛統計表