告警直傳是指以變電站監(jiān)控系統(tǒng)的單一事件或綜合分析結(jié)果為信息源,經(jīng)過規(guī)范化處理,生成標準的告警條文,經(jīng)由告警直傳系統(tǒng)直接以文本格式傳送到調(diào)度主站及設備運維站的業(yè)務。
告警直傳系統(tǒng)在換流站中均為雙機冗余配置,在雙機切換過程中,若無雙機同步功能或雙機同步功能不完善,則在雙機切換后易引起事件重發(fā)或者事件漏發(fā)現(xiàn)象。事件的重發(fā)和漏發(fā)均易引起主站監(jiān)盤人員對換流站當前設備運行狀態(tài)的誤判,極大地影響電力系統(tǒng)的安全穩(wěn)定運行。
ICE(internet communications engine)是一種面向?qū)ο蟮闹虚g件技術,ICE定義了自己的規(guī)范語言Slice,用于使對象接口與其實現(xiàn)相分離的基礎性抽象機制。客戶端和服務器程序可以用不同的編程語言編寫,可以運行在不同的操作系統(tǒng)和機器架構(gòu)上,并且可以使用多種網(wǎng)絡協(xié)議進行高效通信。
針對上述問題,本文提出了一種基于ICE的雙機數(shù)據(jù)同步方法。該方法采用ICE中間件技術,可以較少考慮雙機同步所采用的底層通信程序的實現(xiàn),專注于主機之間所采用的同步數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)和同步邏輯原理,將已發(fā)送成功事件的特征值作為數(shù)據(jù)傳輸給對機,對機接收后清除緩存中對應的事件。
采用該方法實現(xiàn)了告警直傳雙機切換過程中事件減少重發(fā)、杜絕漏發(fā)的目標,確保了主站能夠可靠地監(jiān)視換流站的運行狀態(tài),維護電力系統(tǒng)的穩(wěn)定運行。
告警直傳通信機在換流站中為雙機冗余配置,如圖1所示。與調(diào)度通信采用DL476規(guī)約[15],不與站內(nèi)控制保護裝置直接通信,直接與站內(nèi)SCADA(supervisory control and data acquisition)服務器相連,從SCADA系統(tǒng)中獲取全站實時產(chǎn)生的事件。
圖1 換流站告警直傳結(jié)構(gòu)圖
告警直傳雙機的運行模式較簡單,正常運行情況下,只有一臺主機與調(diào)度主站通信,另外一臺處在熱備用狀態(tài),平時與主站的通信連接為斷開狀態(tài)。
切換過程:當告警直傳值班A機與主站通信出現(xiàn)中斷時,告警直傳B機自動切換為值班狀態(tài)與主站開始正常通信。當A機與B機進行切換時,主站的數(shù)據(jù)源就由A機切換為B機,當雙機同步功能不完善時易引起事件重發(fā)或者漏發(fā)。
本文主要解決告警直傳雙機切換引起的以下幾種問題:①同步機制及數(shù)據(jù)不完善造成A、B主機切換后B機過多地清除掉了緩存中的事件;②A機未及時正確地將要清除的事件同步給B機;③B機未正確清除A機已發(fā)送的事件。上述3種問題,第1種情況易造成事件漏發(fā),第2、3種情況易造成事件重發(fā)。
本文的雙機同步方案采用了ICE對等模式,即告警直傳通信機A、B里邊既有ICE客戶端部分,又有ICE服務器部分,A、B機之間由兩條ICE連接,這樣雙機切換后才能保證雙機事件數(shù)據(jù)的正常同步,系統(tǒng)的同步設計方案如圖2所示。
雙機數(shù)據(jù)同步指當告警直傳通信機A向主站發(fā)送事件成功后,將發(fā)送成功的事件數(shù)據(jù)特征值同步給告警直傳通信機B;網(wǎng)關機B將從SCADA系統(tǒng)獲取的事件與A機同步數(shù)據(jù)進行比對,若找到特征值一致的事件即為已成功發(fā)送的事件,則應立即清除;每清除1條事件,也應清除1條A機同步給B機的數(shù)據(jù)記錄,未被清除的事件,當雙機切換產(chǎn)生時仍須上送給主站。
圖2 ICE對等模式數(shù)據(jù)同步方案
事件的特征有4個,分別為換流站內(nèi)事件號、事件狀態(tài)值、動作時間及主站的IP地址,4個特征值完全一致,才能認定該事件為同一條事件。事件號為全站惟一的事件索引;狀態(tài)值為事件的動作狀態(tài),如產(chǎn)生、消失等;動作時間為該事件產(chǎn)生的時間,IP地址為接收事件的調(diào)度主站地址。
前3個特征采用控制保護裝置的賦值,以確保兩臺告警直傳主機收到的事件是相同的,IP地址由告警直傳通信機來賦值,用來區(qū)分發(fā)送到不同調(diào)度主站收到的事件。其中,每個IP代表1個調(diào)度主站,不同的IP代表不同的調(diào)度主站。
事件發(fā)送成功的判據(jù)為告警直傳主機發(fā)送后收到主站針對該事件的DL 476的確認報文。
告警直傳系統(tǒng)正常運行情況下,A機與B機都從站內(nèi)SCADA系統(tǒng)獲取站內(nèi)事件,假定A機與調(diào)度主站通信,B機與調(diào)度主站處在通信中斷狀態(tài),A機把獲取到事件上送給調(diào)度主站,調(diào)度主站收到事件后應給予確認,A機根據(jù)確認幀清除緩存中發(fā)送的事件,并記錄已清除事件的特征,然后調(diào)用ICE客戶端程序,把特征數(shù)據(jù)通過ICE插件同步給B機,B機再根據(jù)記錄的特征值,清除已發(fā)送成功的事件。告警直傳雙機切換邏輯流程圖如圖3所示。
雙機切換情況下,假定A機切換到B機,A機與調(diào)度主站通信正常切換為通信中斷,B機與調(diào)度主站由通信中斷切換為正常通信;B機與調(diào)度主站正常通信后,首先休眠500ms,然后進行同步,并根據(jù)A機同步的數(shù)據(jù),清除已發(fā)送成功的事件,最后根據(jù)告警直傳系統(tǒng)值班主機正常運行同步邏輯示意圖的步驟執(zhí)行即可。B機進入值班狀態(tài),首先休眠500ms后再根據(jù)同步數(shù)據(jù)清除緩存中的事件主要是為了防止由于時序問題,部分同步數(shù)據(jù)未完全接收到,造成已發(fā)送成功的事件重發(fā)的現(xiàn)象。
圖3 告警直傳雙機切換邏輯流程圖
驗證環(huán)境搭建:采用4臺計算機和2臺交換機搭建測試環(huán)境,計算機1作為站內(nèi)SCADA系統(tǒng),計算機2作為站內(nèi)告警直傳A機,計算機3作為站內(nèi)告警直傳B機,計算機4作為簡易遠方告警直傳主站與站內(nèi)告警直傳系統(tǒng)進行通信;計算機2、3、4通過交換機2組成簡易網(wǎng)絡,模擬與調(diào)度主站的通信;計算機1、2、3與交換機1組成簡易站內(nèi)網(wǎng)絡,模擬告警直傳系統(tǒng)與站內(nèi)SCADA系統(tǒng)的通信。
測試方法:告警直傳A機、B機連接到站內(nèi)SCADA系統(tǒng),能獲取站內(nèi)SCADA系統(tǒng)的所有事件,模擬調(diào)度端連接到告警直傳主機A。通過事件產(chǎn)生程序,在SCADA系統(tǒng)上產(chǎn)生模擬事件,告警直傳A機獲取事件后,發(fā)送給模擬調(diào)度主站。
A機斷開與模擬調(diào)度主站的網(wǎng)絡連接使B機切換為值班主機,與模擬調(diào)度主站端相連,此時A機已發(fā)送的事件不應重新發(fā)送到模擬調(diào)度端,切換過程中發(fā)送的事件應由B機發(fā)送,不應漏發(fā)或者重發(fā)。然后,再進行B機到A機的切換,同樣也應滿足不出現(xiàn)事件重發(fā)或者漏發(fā)的現(xiàn)象,測試的結(jié)果如圖4所示。
圖4中告警直傳A機主機名為jiafeng,告警直傳B機主機名為DESKTOP-3SN1JIT,主站的IP地址為192.168.5.100。圖4(a)是SCADA系統(tǒng)事件記錄圖,記錄了告警直傳A機、B機與主站通信兩次切換的事件和切換前后站內(nèi)產(chǎn)生的事件;圖4(b)是A機切換到B機時主站的輸出,能清晰地看到主站有一次鏈路切換和收到的站內(nèi)事件;圖4(c)是主站收到的換流站事件記錄的日志;圖4(d)是B機切換到A機時主站程序輸出的提示和收到的站內(nèi)事件。
在測試中,首先告警直傳主機由A機切換到B機,SCADA系統(tǒng)在切換前后均產(chǎn)生了事件,在圖4(b)和圖4(c)的主站日志中均未發(fā)現(xiàn)上送模擬主站的事件重發(fā)及漏發(fā);然后由值班主機B機切換到A機,對比主站日志與站內(nèi)SCADA系統(tǒng)事件記錄,可知也未出現(xiàn)事件重發(fā)及漏發(fā)。經(jīng)多次實驗驗證了文中雙機同步方法的有效性,能有效防止事件漏發(fā)并減少重發(fā)的現(xiàn)象。
圖4 驗證試驗中SCADA系統(tǒng)和模擬主站截圖
本文針對告警直傳系統(tǒng)向主站傳送事件的重發(fā)及漏發(fā)現(xiàn)象,進行分析并提出了一種基于ICE的雙機同步方法。采用事件特征值及目標主站IP地址作為事件的惟一標識的同步數(shù)據(jù),通過ICE對等模式方法同步給對機,無需關注雙機通信的復雜性,僅關注具體業(yè)務邏輯,實現(xiàn)雙機同步。
通過實驗,驗證了文中同步方法和同步數(shù)據(jù)結(jié)構(gòu)的有效性,并且在多個換流站中得到了應用,維護了電力系統(tǒng)的穩(wěn)定運行。