戴曉輝
(國網寧夏電力公司檢修公司,寧夏銀川 750001)
直流換流站遠動通道全部中斷故障分析和功能改進
戴曉輝
(國網寧夏電力公司檢修公司,寧夏銀川 750001)
本文通過銀川東換流站基于惠普服務器遠動系統通道全部中斷故障現象,從遠動系統的基本通信構架,硬件系統,軟件系統三個方面進行故障分析定位,就發現的問題進行有針對性改進,并完善遠動系統軟件方面的設計缺陷,確保遠動系統能安全穩定運行。
換流站 遠動通信系統 通道 中斷
遠動通信系統是直流換流站控制保護系統的重要組成部分,它主要任務是在直流輸電控制保護系統和遠方調度中心之間完成數據交換,向遠方調度中心發送換流站的運行狀態信息,銀川東換流站遠動通信系統是由許繼直流輸電公司開發完成,全部網絡構架和通信節點按照雙網雙機冗余配置,在雙網和雙機未同時故障的前提下是不會發生遠動通道中斷的,而雙機和雙網同時故障的概率非常小,所以整個網絡構架和配置完全滿足要求。
銀川東換流站遠動系統基礎數據全部從極站控系統采集,經LAN網與數據服務器、極站控系統通訊,全部節點和網絡都采用雙機雙網冗余配置,網絡構架如圖1所示。
遠動系統軟件結構中軟件流程圖如圖2所示。
2013年4月5日20點24分開始,銀川東換流站遠動工作站至國調、西北、寧夏、山東等六個調控機構通信全部中斷,遙測、遙信數據無法上傳。此時,銀川東站OWS后臺監控系統運行正常,也無遠動異常報警信號。對GWS遠動服務器進行檢查,發現KVM鍵盤顯示器無反應,遠動系統維護客戶端無法連接遠動服務器。初步判斷是雙遠動機死機。手動重啟遠動服務器后,銀川東至相關調控機構數據通信業務恢復正常。

圖1 遠動通訊系統硬件結構圖

圖2 遠動通訊軟件流程圖
遠動雙機死機故障發生時,銀川東換流站直流滿負荷運行,控制保護系統運行穩定,輸送功率沒有發生變化,遠動服務器指示燈無明顯異常,遠動系統與極、站控主機的通訊連接正常;國調101通道一直處于不穩定狀態,通道誤碼太高導致通道頻繁中斷。故障發生后現場復制了故障時系統的記錄信息,對信息進行分析,對相應的軟件代碼進行排查,同時搭建了對應的測試環境,對照現場環境進行反復測試。
在故障發生后調取服務器工作日志對服務器當時硬件工作的情況進行分析,經分析當天服務器本身硬件無異常現象。

圖3 core文件報告

圖4 core記錄的程序出錯點
在程序異常退出時,系統內核會在當前工作目錄下生成一個core文件(一個內存映像,包含調試信息)。該文件可以指示導致程序出錯的代碼所在文件以及在文件中的位置,是幫助核查程序問題的有效依據。圖3為從換流站現場拷貝過來的core文件內容:
根據core文件提示的內容,程序出錯時運行點為文件Link_un balance_slave.cpp的第883行,圖4為該文件中該函數的內容,以及程序出錯點。
從此函數的代碼中分析,這段代碼是比較嚴謹的,在訪問內存時對于訪問區域有較嚴格的限制條件,不會導致內存訪問越界出現。通過對memcpy上下文語境相關的源代碼進行分析,內存操作是安全的。從core文件的調用堆棧信息中按照調用關系向前檢查,從圖4中可以得出其調用關系,該函數為一個線程的執行函數。
該線程的功能為IEC101規約數據處理,由IEC101鏈路層線程創建,其創建流程如圖5所示。
從以上流程可知,每一個IEC101規約建立通信連接后,都會創建一個線程來處理此連接的數據收發。當判斷此連接斷開時,終止該線程,但是在設置線程安全停止標記后,并沒有等待線程安全退出,而是調用了函數TerminateThread強制終止了該線程。當該線程處于等待狀態時,調用此函數是不會有影響的,但是如果終止時該線程處于運行狀態并有系統級函數調用時,調用此函數則可能引起異常。

圖5 IEC101規約處理流程

圖6 修改后的IEC101規約處理流程

圖7 IEC104規約處理流程
根據以上問題定位分析,搭建實驗環境,模擬現場實際運行環境,通過技術手段,使IEC101規約鏈路頻繁連接和斷開,進行測試。運行一段時間后,出現了鏈路中斷。在進行了約2300次的測試后,如按照平均每天10次中斷計算,約7個月時間,IEC101通道和IEC104通道都出現了鏈路中斷。
在故障發生前一段時間內,101通道一直處于不穩定狀態,時通時斷,導致101數據處理線程頻繁的創建和強制終止,雖然在強制終止時線程正在運行的概率很小,但是當累積數量達到一定程度時,發生了正在進行內存復制時強制終止線程,導致異常發生。
另外,當線程安全退出時,會釋放占用的操作系統中此進程的線程池資源,但是強制結束的線程,其線程池資源是不會釋放的,如果線程池資源耗盡,則該進程就不能成功創建新的線程,因此,程序即使沒有異常退出,也可能導致連接中斷。
由于其中一臺遠動服務由于線程池耗盡,故障發生前已經出現了鏈路中斷,切換到另外一臺繼續運行,但是由于沒有相應的事件上送,沒有引起運行人員注意,直到第二臺出現故障,導致和調度的所有通道都出現中斷。
在線程結束時,設置線程安全停止標記后,等待線程安全結束。修改內容如圖6所示。
完成修改后,按照3.3節環境連續運行,進行了8096次測試,未出現異常。如按照每天平均10次計算,約相當于運行2年時間,鏈路沒有出現異常,內存未見變化。
經檢查,104規約處理流程中沒有強制結束線程現象,線程結束時是安全退出。圖7是104規約的處理流程圖。
根據對該問題的分析、故障定位和持續試驗,修改遠動服務程序,對銀川東換流站遠動系統的程序進行更換。
取消調用系統函數TerminateThread(link_handle,0),強制線程退出改為等待線程安全退出。
原程序如下:
if(link_handle!=0)
{
TerminateThread(link_handle,0);
link_handle = 0;
}
修改后的程序如下:
sleep(2);
if(link_handle!=0)
{
pthread_join(link_handle,0)
link_handle = 0;
}
(1)將遠動工作站的運行信息:CPU、內存使用情況、IP地址、啟動時間注冊到運行人員監控系統,便于換流站運行人員了解遠動工作站的運行工況;
(2)增加服務注冊信息,指示各個進程的運行信息;
(3)增加告警信息,將遠動系統運行狀態變化時發生的事件告知運行人員;
(4)啟用自啟動功能,采用軟件開門狗形式,在系統啟動后自動啟動遠動服務程序、前置服務程序以及對時服務程序,當程序異常退出時,自動重啟動相應的服務程序;
(5)增加第二平面網絡通訊,已配合銀川站調通了調度數據網第二平面網絡通訊,為高速網絡通道取代專線通道做好了準備。
遠動通信系統在每個變電站存在,他實現的功能也基本相同,但不同的設計者這些功能實現的方法不盡相同。相對于交流變電站,直流換流站站內通信比較復雜,對應的調度中心較多,可靠性和安全性要求較高,本文通過一起遠動通信服務器雙機死機導致通道全部中斷故障,從網絡構架,軟硬件等方面分析查找原因,并提出可行的解決方案。希望能為以后有關自動化維護人員分析遠動故障提供一定的思路和幫助。
[1]楊學巍,閻帥,付燕青,李喜林.電力系統廠站及調度自動化解析.《電子技術與軟件工程》,2014年第5期.
[2]IEC 60870-5-103.遠動設備及系統第5-103部分:傳輸規約——繼電保護設備信息接口配套標準,1998.
[3]劉艷,韓肖清.面向對象數據庫及其在電力系統中的應用[J].電力系統及其自動化學報,2001年01期.
[4]周翔.調度自動化系統故障現象及其處理方法[J].技術與市場,2011年08期.
[5]姚小平.調度自動化系統常見問題分析及解決辦法的探討[A].第三屆安徽自然科學學術年會安徽省電機工程學會2005年學術年會論文集[C],2005年.
戴曉輝(1981—),男,碩士,工程師,電網調度自動化專業,長期從事變電站改造和監控系統維護工作。