王蓉 邵鏡昇 張健宏
(杭州萬高科技股份有限公司 浙江杭州 310000)
電力系統(tǒng)本身所支持的通信方式多種多樣,電力線載波通信技術利用電力線纜作為信號傳輸媒介,在不同網絡節(jié)點間交換信息與數(shù)據(jù)[1-2],是一種無需額外物理媒介的有線通信方式,也是構建智能電網的重要手段。G3-PLC 路由機制是一種國際通用的電力線載波通信技術體系,具有自愈、自組織、多跳式等特性的mesh網絡拓撲結構[3],近年來逐漸受到廣泛關注[4]。高速電力線載波抄表方案的網絡架構由物理層、數(shù)據(jù)鏈路層和應用程序層組成[5],但現(xiàn)有的G3-PLC 標準僅定義了物理層和數(shù)據(jù)鏈路層,并未規(guī)定具體的網絡維護方法。在沒有合適的網絡維護機制設計時,路由端因意外導致原網絡失效(復位、頻段更換等)后,表端并不知情,會保持當下已組網狀態(tài),不進行重新入網的動作,但實際上這種狀態(tài)下該載波網絡并不能再進行抄表、上報等動作,影響正常使用。
為繼續(xù)抄表作業(yè),可以手動對表端進行復位,但多數(shù)情況下表端數(shù)量遠超路由端,且分布較廣,逐一手動復位工程量大;也可以設定一個長時間不通信后自動復位時間,但該時間一般設置的較長,將導致抄表等作業(yè)長時間卡頓。為解決上述問題,各應用平臺擬定了不同的網絡維護方案。以下是兩種較為常用或得到過批量運用的方案。
方案一:定時發(fā)送數(shù)據(jù)幀確認狀態(tài)。建立連接時,關聯(lián)一組定時器,當定時器倒計時結束時,向對方發(fā)送探測數(shù)據(jù)包。如果能收到回復幀,說明連接仍在繼續(xù);如果對方因重新啟動等原因已失去連接,則無法收到回復幀,可以認為連接已失效[6],需要重新建立連接。這種方法協(xié)議簡單,實現(xiàn)方便,但不能保證及時發(fā)現(xiàn)連接失效狀況,響應存在遲滯。
方案二:路由端在重啟后發(fā)送私有“廣播召喚”數(shù)據(jù)包讓表端重新入網。當路由端因意外使原網絡失效后,為更快通知所屬網絡中的表計重新關聯(lián)到本集中器,集中器在組建新網絡成功后,將下發(fā)私有“廣播召喚”數(shù)據(jù)包,當從模塊收到時,延時原報文中定義的時間后復位并重新入網,并且優(yōu)先以收到報文中定義的頻段內嘗試。該方法能及時恢復正常組網狀態(tài),但因廣播召喚僅在重啟后發(fā)送,若有從節(jié)點因干擾或其他原因,未能及時收到廣播召喚,則無法重新入網,這些節(jié)點無法再進行正常的抄讀、上報等任務,直至長時間不通信后自動復位。這種方法雖然保證了時效性,但抗干擾效果不佳,存在個別節(jié)點長時間無法通信的隱患。
本文根據(jù)大量現(xiàn)場使用經驗,提出了一種更為靈活高效的網絡維護方案,該方案不僅可以在路由重啟時保障表端迅速響應,也能在日常運作時維護網絡,并已在Vango V63xx+V600x 平臺上運用Vango Keepalive私有機制得以實現(xiàn)。
在典型的電網環(huán)境中,電表及搭載于上的表端通信模塊分布于各個區(qū)域內,因與集中器間的物理距離、線路干擾等原因,產生自然分級,可與搭載于集中器上的路由模塊直接通信的稱之為一跳節(jié)點,一跳節(jié)點可收到一跳廣播信號,需要一跳節(jié)點進行中繼的稱為二跳節(jié)點,可收到二跳廣播信號,以此類推?;经h(huán)境如圖1所示。
圖1 基本環(huán)境架構示意圖
當電網環(huán)境上電后,萬高模塊Keepalive 機制即開始啟動。集中器將提供主節(jié)點地址給路由模塊(CCO),路由模塊根據(jù)主節(jié)點地址換算成臺區(qū)編號(PAN ID),Keepalive機制則用臺區(qū)標編號作為發(fā)送Keepalive幀參數(shù)之一,用以區(qū)分確認對應的集中器。路由模塊借由電力線載波通道發(fā)出keepalive幀,表模塊(STA)接收到上一跳的Keepalive幀后,等待一段時間后,再轉送Keepalive幀給下一跳模塊。后續(xù)以此類推。
將環(huán)境架構圖1切換為實際拓撲圖后即為圖2。
圖2 實際拓撲結構示意圖
Keepalive機制是以廣播的方式借助中繼節(jié)點一跳一跳地擴散出去,確保每個能組上網的表模塊都可以接收到維護信號并響應這些信息。
路由模塊透過Keepalive 幀廣播通知全部組網上的表模塊關于該臺區(qū)的狀態(tài)信息,其中包含了Keepalive 序號(SEQ)。路由模塊重啟時,SEQ 會被更新,數(shù)值將增加1,以此示意該臺區(qū)申請重新入網動作。
表模塊收到Keepalive 幀后,會與自身記錄的SEQ進行對比,如果收到的SEQ 與模塊本身紀錄的SEQ 相同,則認為當前網絡狀態(tài)正常,保持狀態(tài)不變;若收到的SEQ 與模塊本身紀錄的SEQ 不同,則認為當前網絡已失效,需執(zhí)行重新入網流程,故表模塊從已入網狀態(tài)轉換為未入網狀態(tài),再次執(zhí)行入網流程,同時更新表模塊Idle Time,重新計數(shù)8 h 復位定時器,并轉送Keepalive幀信息。即當路由模塊重啟時,會更新Keepalive序號,表模塊會收到與本身記錄不同的Keepalive 序號,因此轉換為重新入網狀態(tài)。該方法保障了網絡失效后能夠及時恢復[7]。
機制發(fā)送方式源碼如下:
因線路干擾等原因,表端可能未能及時收到路由模塊發(fā)出的Keepalive 幀,因此路由端設計為重復定時發(fā)送維護封包,通過多次嘗試提升成功率。為規(guī)避多次發(fā)送造成的重復復位問題,故廣播幀中夾帶的SEQ等信息,還能使表端對該類型幀能進行有效分析,當SEQ 與集中器一致則無需復位,從而支持路由模塊定時對表模塊進行網絡維護,而不是如廣播召喚數(shù)據(jù)包一樣僅在重啟階段發(fā)送,有效避免了部分從節(jié)點未及時收到錯過復位消息的隱患。根據(jù)實際使用經驗設置發(fā)送間隔周期為30 min,若有從節(jié)點未及時收到重啟后的Keepalive封包,也有機會在下一次Keepalive封包轉發(fā)時完成重新入網,無需等待較長的“無通信自主復位時間”,優(yōu)化了系統(tǒng)運轉效率,提升了系統(tǒng)穩(wěn)定性。
區(qū)別于定時發(fā)送數(shù)據(jù)幀和廣播召喚這兩種方案,Keepalive機制用途更加廣泛。不僅可用于實現(xiàn)重啟復位,也可用于設備正常運作階段定時的網絡維護。能夠讓路由端更清晰地掌握拓撲信息,傳遞相位信息,讓表端確認自身是否離網等,相關運作流程見圖3。
圖3 Keepalive機制運作流程圖
表模塊收到上一跳Keepalive 幀后,將進行轉發(fā)等待,之后將收到的Keepalive 幀封包內的跳數(shù)加一后再進行轉發(fā)。后續(xù)以此類推。表模塊有兩組周期定時器,其一為轉發(fā)等待時間(Forwarding Wait Time, FTW),將使用20 s內的隨機數(shù)再加上10 s的跳數(shù)階級倍數(shù)。
當定時器時間到后轉發(fā)Keepalive 幀。另一定時器是重置轉發(fā)時間(Reset Forwarding Time, RFT),將根據(jù)實際需求設置重置轉發(fā)時間,在這期間內收到任何Keepalive幀,皆視為無效封包,合理減輕網絡負擔。等待機制方法源碼如下:
該運作流程有效保障Keepalive 機制運行穩(wěn)定,集中器執(zhí)行抄表業(yè)務或線路上有表模塊正在入網等,也基本不會對Keepalive機制的執(zhí)行造成影響。
Keepalive 幀中包含Keepalive 序號(SEQ)、臺區(qū)編號(Pan ID)、跳數(shù)(Hop-Count)、相位(phase)等信息,網絡維護機制信息說明表見表1。
表1 網絡維護機制信息說明表
這些信息的傳遞能有效進行網絡維護,并輔助完成以下擴展功能。
(1)網絡拓撲采集:G3-PLC 標準并未對網絡拓撲獲取進行具體規(guī)定,使用Keepalive 機制,路由端可以獲取表端跳數(shù)信息,從而掌握當前拓撲。
(2)相位信息傳遞:搭配過零檢測電路,Keepalive機制可以傳遞相位信息,完善載波網絡維護必備信息。
(3)加速異常狀態(tài)偵測:電力線載波通信網絡在運行過程中,鏈路質量容易受到信道時變造成的影響,可能會出現(xiàn)通信鏈路失效的問題[8],Keepalive 機制能有效提升表端發(fā)現(xiàn)該問題的效率?;诼酚啥硕〞r發(fā)送與表端相應轉發(fā)規(guī)則,從節(jié)點若在4 個Keepalive 周期(2 h),均未收到Keepalive幀,可以判定自己已離線,并進行自行復位再次尋找可靠路由。
為充分證明所提網絡維護機制的有效性,本文在Vango V63xx+V6000平臺上進行了實驗驗證。
V6306 是一個窄帶電力線通信處理器芯片,集成了一個32位MCU,一個32位DSP,兩個UART接口,一個SPI Master 控制器,一個SPI Slave 接口,1 個I2C 主Master 接口,PLC MAC/PHY 層功能和仿真前端。加上Vango的大電流驅動的線路驅動器芯片(V6000),它形成了一個完整的調制解調器解決方案平臺,支持窄帶PLC標準。
該平臺已通過由日本TüV Rheinland 實驗室進行的G3-PLC協(xié)議相關認證,包括FCC頻段和CENELEC_A頻段。
此次驗證中,應用端使用通用協(xié)議,路由端通信協(xié)議采用GDW 1376.2,表端通信協(xié)議采用DL/T645[9]。
首先搭建載波通信環(huán)境,使表端和集中器端至于同一通信網絡中,并對表模塊和路由模塊進行監(jiān)控。讓表端和集中器端正常組網,并通過1376.2 協(xié)議查詢入網情況,如表2所示。
使用串口工具模擬集中器[10],對路由模塊應用串口發(fā)送AFN=10H-F2(查詢從節(jié)點信息),得到當前有1個從節(jié)點應答,從節(jié)點地址為:000300019805,該地址與實際表號相符合。串口發(fā)送AFN=10H-F21(查詢網絡拓撲信息)確認,結果與10H-F2一致,可以確認該從節(jié)點已入網。之后手動復位路由端,通過AFN=03HF10(本地通信模塊運行模式信息,重啟時會推上行報文,可見表3)確認路由模塊已重啟。
表3 重啟復位AFN
監(jiān)控表端接收報文,觀測到在3 s 后,表端收到Keepalive 幀,并能解析出SEQ、PAN_ID、Phase 等訊息。之后進入重新入網流程,并轉發(fā)keepalive幀,詳見圖4。證明Keepalive 機制在路由模塊重啟后,可使表模塊進行重新入網,有效避免手動操作,且響應時間較短,運作高效。
監(jiān)聽表端接收報文,觀測到在30 min后,表端收到Keepalive 幀,證明路由端進行了定時發(fā)送,如圖5 所示。重復多次發(fā)送能有效避免第一批未收到Keepalive幀的模塊一直處于通信異常狀態(tài),且不會影響已正常入網模塊狀態(tài)。
圖5 30 min后表端監(jiān)聽報文
以上測試證實Keepalive 機制符合理論預期,能有效進行網絡維護。
本文首先介紹了兩種較為常見的網絡維護機制設計方案,針對目前方案的問題,提出了Vango設計并在自研平臺已實現(xiàn)的一種Keepalive 網絡維護機制。不同于以往方案只考慮單一因素,改進方案要同時考慮時效性和可靠性,在保證路由重啟后表端能及時入網的基礎上,確保了單次未能重入網模塊能在較短時間內恢復正常工作狀態(tài)。另一方面,該機制更加靈活易擴展,在正常工作狀態(tài)亦可進行網絡維護,可協(xié)助路由端確認拓撲狀態(tài)、掌握相位訊息,在鏈路失效時,加速表端確認速度。最后通過實驗驗證該機制的可行性。未來研究方向將考慮在已有機制下,根據(jù)實際需求擴展相應內容,使機制更具有實際工程使用價值,適用于不同的應用環(huán)境和市場。