郝為
摘 要:為了能夠更好的實時跟蹤定位換流站主機事件和服務器的故障。文章將開發(fā)一套直流換流站控制保護系統(tǒng)的故障輔助診斷系統(tǒng)。采用Netdde技術,利用已有的軟件接口實時監(jiān)視主機可疑狀態(tài)量,并繪制狀態(tài)量的變化趨勢曲線,通過異常狀態(tài)量定位主機故障;對于服務器故障診斷,創(chuàng)建服務器的警告和錯誤事件的存儲過程,通過實時調(diào)用存儲過程獲取服務器的故障信息。利用該系統(tǒng),能夠快速幫助用戶對各類直流控制保護系統(tǒng)故障進行監(jiān)視,跟蹤及定位,它對原有診斷工具進行了整合,補充和完善同時又不影響原有系統(tǒng)的正常運行。
關鍵詞:換流站;診斷系統(tǒng);實時跟蹤;NeTDDE;軟件接口
引言
隨著直流輸電系統(tǒng)技術的逐漸成熟,國內(nèi)直流工程大量投運,其中以ABB和南瑞公司為主的MACH2直流控制保護系統(tǒng),在國內(nèi)廣泛應用。其異常診斷主要依賴于原有SCADA系統(tǒng)中工程師工作站自帶的一系列異常診斷軟件,主要包括異常報文顯示工具Intouch,異常狀態(tài)監(jiān)視工具Hidraw,直流控制保護系統(tǒng)自定義錄波工具Inspect和波形查看工具Reval等[1-2]。
湖北省境內(nèi)多數(shù)換流站運行時間較長,這些由國外廠家提供的控制保護異常診斷工具一直沒有更新,其設計存在不足,如存在無法診斷服務器異常,控制保護系統(tǒng)狀態(tài)量監(jiān)視功能不完善,舊有診斷工具功能分散等問題。導致2010年江陵換流站出現(xiàn)長達10個月的雙極控制保護主機頻繁死機異常,利用上述診斷工具無論是現(xiàn)場檢修人員還是生產(chǎn)廠家均無法對異常進行準確定位,嚴重危及直流系統(tǒng)正常運行[3]。
1 系統(tǒng)功能設計
本軟件系統(tǒng)將利用直流控制保護系統(tǒng)已有的軟件接口,對系統(tǒng)的一些狀態(tài)量和開關狀態(tài)進行連續(xù)地監(jiān)視、分析以及對服務器的報警事件進行監(jiān)視,幫助運行和檢修人員對各類故障進行跟蹤及定位。
包括以下主要功能:(1)對控制保護主機軟件系統(tǒng)中全部狀態(tài)量的實時監(jiān)視和連續(xù)記錄功能;(2)對服務器數(shù)據(jù)庫系統(tǒng)故障信息的實時監(jiān)視及連續(xù)記錄功能;(3)任一狀態(tài)量越限檢測、告警功能;(4)服務器數(shù)據(jù)庫數(shù)據(jù)可視化瀏覽,檢索及修改功能。
直流換流站輔助診斷系統(tǒng)可分為主機故障診斷部分和服務器故障診斷部分,根據(jù)功能要求系統(tǒng)分為四個部分。分別是:查詢量監(jiān)視模塊、歷史數(shù)據(jù)回放模塊、服務器事件探測器模塊,數(shù)據(jù)庫訪問模塊。四個子功能模塊分別完成其對應的軟件功能,并通過診斷系統(tǒng)統(tǒng)一的可視化界面進行操作。
其系統(tǒng)結構如圖1所示。
整個診斷系統(tǒng)采用自上而下的分層式模塊化開發(fā)流程,整個系統(tǒng)共分為三層,分別是用戶界面層,邏輯功能層,數(shù)據(jù)獲取層。用戶界面為用戶提供友好的診斷系統(tǒng)界面,同時通過用戶界面調(diào)用邏輯功能層的子功能模塊,完成相應的故障診斷功能。
2 Netdde技術
數(shù)據(jù)獲取層為邏輯功能層提供需要的數(shù)據(jù),按照數(shù)據(jù)來源的不同可分為,控制保護系統(tǒng)狀態(tài)量獲取模塊,數(shù)據(jù)庫故障信息獲取模塊以及數(shù)據(jù)庫數(shù)據(jù)獲取模塊。數(shù)據(jù)獲取模塊是本系統(tǒng)功能正常實現(xiàn)的基礎。
控制保護主機接入站內(nèi)局域網(wǎng),并通過Netdde協(xié)議向SCADA發(fā)送數(shù)據(jù)及獲取命令,如何利用Netdde接口從主機收集數(shù)據(jù)是本功能的關鍵,其基本的數(shù)據(jù)獲取過程如圖2所示。
圖2 NetDDE動態(tài)數(shù)據(jù)交換
在圖2中,主機將數(shù)據(jù)通過Netdde協(xié)議轉換成能夠在以太網(wǎng)上傳播的數(shù)據(jù)包,診斷系統(tǒng)通過Netdde協(xié)議對數(shù)據(jù)包進行解析,最終轉換為數(shù)據(jù),從而實現(xiàn)了診斷系統(tǒng)至主機的數(shù)據(jù)獲取流程。其關鍵技術難點在于診斷系統(tǒng)對Netdde數(shù)據(jù)包的解析[4]。
3 功能實現(xiàn)
3.1 運行狀態(tài)監(jiān)視模塊
目前,站內(nèi)開關量的獲取主要是根據(jù)Intouch報文來獲得,而Intouch報文只能獲取某模塊出現(xiàn)問題,它并不能反映到某個具體元件出了故障,因此需要對該模塊的部分開關量進行監(jiān)視。開關元件的老化,機械抖動等原因,會導致開關元件瞬時誤動作(斷開或是閉合),對于故障狀態(tài)監(jiān)視工具Hidraw很難撲捉到開關的瞬時故障[5]。
本模塊主要是為了解決監(jiān)控系統(tǒng)收到高層級(如屏柜)的報警信號后,如何定位異常至較低層級(如板卡),也方便運行人員對可疑狀態(tài)量進行長時連續(xù)監(jiān)測,同時提供越線報警功能,減少運行人員的工作量,免除運行人員長時間對故障狀態(tài)監(jiān)視工具Hidraw進行實時監(jiān)視。
為了方便運行人員和檢修人員方便快速定位故障,此模塊功能結構圖如圖3所示。
圖3 運行量查詢功能圖
監(jiān)視量主要包括模擬狀態(tài)量和數(shù)字開關量。主要依據(jù)運行人員對主機狀態(tài)量是否有異常或Intouch發(fā)出來的報警,來啟動該系統(tǒng)對可疑狀態(tài)量進行監(jiān)視。
監(jiān)視內(nèi)容分為狀態(tài)量和開關量,對于狀態(tài)量,系統(tǒng)每毫秒采集、保存一次數(shù)據(jù),并繪制實時變化曲線。數(shù)據(jù)保存是為設備故障終端提供依據(jù),也方便歷史數(shù)據(jù)回放。繪制實時曲線可以方便地觀察狀態(tài)量的變化趨勢,同時也有利于分析故障,趨勢曲線支持暫停繼續(xù),放大縮小以及鼠標能撲捉到曲線上點的值大小。通過控制timer控件enabled的屬性來控制繪圖數(shù)據(jù)的獲取,從而實現(xiàn)暫停繼續(xù)功能;利用WindowsAPI中的PeekMessage函數(shù)來獲取鼠標滾輪滾動的消息,定義結構體lpMsg參數(shù)中的wParam參數(shù),用來表示鼠標滾輪是向上還是向下,wparam>0表示向上動作消息,反之則向下動作消息,通過設置最大和最小消息范圍參數(shù)wMsgFilterMin、wMsgFilterMax的值為 &H20A,表示要檢索的是鼠標滾動消息,然后通過繪圖控件picture的Scale參數(shù)改變繪圖坐標系統(tǒng)的大小,從而實現(xiàn)放大縮小的功能。最后利用picture控件Mouse_Move事件來捕捉曲線上的點,然后根據(jù)捕捉點的時間來獲取對應狀態(tài)量的值。對于開關量;只輸出0和1兩種狀態(tài)。同樣每1ms采集保存一次開關量狀態(tài),不繪制開關量變化曲線。
查詢量越線檢測需要設置狀態(tài)量的閾值,超過閾值給予報警,同時保存故障數(shù)據(jù)。越線量采用紅色標記,給工作人員提示;采用Access文件來保存數(shù)據(jù),兩個Access文件,分別用來保存全部數(shù)據(jù)和異常數(shù)據(jù)。
3.2 服務器事件探測模塊
本模塊主要是用于監(jiān)視控制保護系統(tǒng)的數(shù)據(jù)庫服務器,定位主機數(shù)據(jù)連接、通信和存儲至服務器過程中的異常或故障,避免主機或服務器長時間的不反應或卡死。通過對數(shù)據(jù)庫服務器警告和錯誤事件的跟蹤,還可以跟蹤服務器的操作用戶和異常操作事件。由于有些換流站自身的原因,產(chǎn)生了許多警告事件,為了更好的定位故障,可對警告和錯誤事件按時間或按用戶名進行篩選,最后還提供事件導出功能,將篩選事件保存在Microsoft Word文件中,方便工作人員作分析報告。為了方便工作人員方便快速定位服務器故障,此模塊功能結構圖如圖4所示。
圖4 數(shù)據(jù)庫實時故障檢測功能結構
通過SQL語句建立事件探測器模塊,采用ADO技術連接所需要監(jiān)視的數(shù)據(jù)庫,然后通過sp_trace_create語句創(chuàng)建跟蹤定義;接著使用sp_trace_generateevent創(chuàng)建跟蹤警告和錯誤事件,主要包括Attention(用于收集所有提示事件,如客戶中斷請求或連接中斷等)、Exception (SQL Server產(chǎn)生的異常錯誤事件)、Excecution Warnings(執(zhí)行SQL語句或存儲過程時出的警告);然后使用 sp_trace_setevent添加跟蹤的事件列,主要有TextData(跟蹤事件的相關信息)、NTDomainName(用戶所屬的Windows NT域)、ClientHostName(發(fā)起請求的客戶計算機名稱)、ApplicationName(客戶端連接SQLServer的應用程序名)、StartTime(啟動事件的時間)、Seventy(異常錯誤的嚴重級別);接著通過sp_trace_setfilter語句設置對應事件數(shù)據(jù)列的條件進行篩選;設置完成后通過sp_trace_setstatus開啟或暫停跟蹤,最后利用 fn_trace_gettable獲得以表格格式返回跟蹤警告和錯誤事件數(shù)據(jù)列的信息,為了方便分析故障和做分析報告,將使用Microsoft Word文件保存警告和錯誤事件的數(shù)據(jù)列,即記錄警告和錯誤事件信息,文件名將以當前時間命名[6]。
3.3 數(shù)據(jù)庫訪問模塊
數(shù)據(jù)庫訪問主要是用于對SQL Server數(shù)據(jù)庫中數(shù)據(jù)的查詢以及刪除功能。當直流換流站控制保護系統(tǒng)返回異?;蚬收闲畔r,在分析故障時需要查詢當日事件表Event和所有事件表Point;每個換流站在配置直流控制保存系統(tǒng)時,由于自身的原因產(chǎn)生了一些警告事件,它并不影響直流換流站的正常運行,因此需要提供一個刪除的功能,數(shù)據(jù)庫訪問模塊的功能結構圖如圖5所示。
圖5 數(shù)據(jù)庫訪問功能結構圖
數(shù)據(jù)庫存在于局域網(wǎng)內(nèi),為了方便快捷運行人員訪問數(shù)據(jù)庫,將數(shù)據(jù)庫配置成ODBC(Open Database Connectivity)數(shù)據(jù)源,ODBC是微軟公司提出的標準數(shù)據(jù)庫訪問接口,它與SQL Server服務器具有良好的兼容性;采用ADO(ActiveX Data Object)接口對象法訪問配置好的ODBC數(shù)據(jù)源,ADO對象具有更多的屬性和方法,其中可以通過設置ADO的PageSize(頁大小)、PageCount(頁數(shù)目)以及AbsolutePage(絕對頁)屬性來實現(xiàn)分頁顯示,同時它也提供靈活的多條件查詢[7]。
4 結束語
利用Netdde技術,本系統(tǒng)向接入站內(nèi)局域網(wǎng)的控制保護主機的SCADA發(fā)送數(shù)據(jù)及獲取命令,并通過NetDDE協(xié)議監(jiān)視不同廠家控制保護系統(tǒng)的可疑狀態(tài)量和開關量,從而快速、精確定位異常層級及設備或板卡。由于數(shù)據(jù)庫服務器與控制保護主機系統(tǒng)的高度耦合,本系統(tǒng)還研制了專用的SQL事件跟蹤模塊,以監(jiān)測數(shù)據(jù)連接、通信以及存儲過程中的異?;虍惓?,避免主機或服務器長時間沒反應或卡死等異常;同時監(jiān)測服務器的操作用戶和異常操作事件,以盡快地定位異常,有效地減少了換流站的異常排查時間。
參考文獻
[1]李鋒鋒.HVDC超高壓直流輸電系統(tǒng)控制保護軟件的研究[D].上海交通大學,2006.
[2]田杰.高壓直流控制保護系統(tǒng)的設計與實現(xiàn)[J].電力自動化設備,2005,25(9):10-14.
[3]戴迪.基于MACH2系統(tǒng)的事件流故障排查方法[J].湖北電力,2011,35(6):18-20.
[4]何海江.NetDDE在自動化網(wǎng)絡中的應用[J].微計算機信息,2002,18(6):54-57.
[5]王靖.組態(tài)軟件InTouch在電力監(jiān)控系統(tǒng)中的應用[D].天津大學軟件學院,2008.
[6]周國賓.SQL Server數(shù)據(jù)庫數(shù)據(jù)操作跟蹤系統(tǒng)的設計與實現(xiàn)[J].福建電腦,2005,12(1):60-62.
[7]馬紹良.用ODBC實現(xiàn)SQL Server 2000在VB中的應用[J].計算機應用,2003,23(1):115-118.