任志翔,仇群輝,周 垠
(嘉興電力局,浙江 嘉興 314033)
隨著變電站監控中心的成立,無人值班變電站對調度自動化系統的要求進一步提高,對運行數據的準確性和系統的可靠性要求也隨之提高,原則上不允許任何錯誤信息和信號丟失。因此,監測并分析數據流十分重要。
從研究突發性誤信號入手,借鑒其它領域黑匣子(BLACK BOX)的概念,開發了一套SCADA智能診斷系統,記錄SCADA系統運行中通信部分所有信息,并進行初步的分析篩選,對系統中出現的誤信號、丟信號等事件進行快速故障定位,找出問題的原因所在,大大提高了自動化系統的運行水平。
數據錯誤在遠動系統中時常發生,對于發生周期穩定且長期存在的誤信,可以通過不斷試驗和取樣得以解決。而發生周期不穩定的誤信,具有瞬時性和不確定性,給專業技術人員的判斷造成了很大的困難。錯誤往往稍縱即逝,無法獲取足夠的分析數據。例如某變電站的刀閘一直處于合閘狀態,主站上突然收到刀閘斷開又立刻合上的信息,而當地后臺卻沒有任何信號。由于發生時間不確定,無法及時對關鍵數據進行采樣,所以很難對此做出解釋。
數據丟失經常出現,特別是當事故跳閘發生時,保護信號的丟失尤其頻繁,事后的傳動試驗又一切正常。由于缺少事故發生時的數據采樣,廠商也往往束手無策。
如何解釋錯誤數據的發生,并對其做出科學的評估,關鍵是能否在錯誤發生時取得足夠的數據采樣。
錯誤數據可能產生在各個環節,SCADA主站的前置機對校驗錯誤的報文采取丟棄處理,經過前置機過濾后的正確報文由系統更高層次的軟件處理。而錯誤的報文恰恰是遠動技術人員用于分析問題最直接的原始資料,有助于以后的跟蹤研究,因此有必要保留遠動系統中的所有信息。
黑匣子是一種實時記錄手段,可以監聽記錄各種數據傳輸。根據黑匣子功能,針對使用最廣泛的CDT規約和音頻通信的特點,在普通PC上開發SCADA智能診斷系統,選擇廠站端和通信設備之間的上行通道為捕捉點,通過調制解調器并接,對SCADA報文進行不間斷數據記錄和保存,并進行誤碼標記。系統原理如圖1所示。

圖1 SCADA智能診斷系統原理設計圖
SCADA智能診斷系統以普通PC為平臺,以VC環境開發軟件,通過PC串口和專線MODEM連接,MODEM直接和音頻線連接。所有數據從音頻線路傳入,并通過MODEM解調成數字信號進入智能診斷系統,使整個數據流得到長期監聽。當出現突發性錯誤時,專業人員通過對比不同監聽點的數據,可以分析判斷錯誤的來源和成因。
SCADA智能診斷系統基本模塊包括通信模塊、報文記錄模塊和誤碼標記模塊。主要功能是從串口讀入廠站所有的上行報文,以固定大小的文件存儲,并按時間命名該文件。
以某變CDT數據傳輸為例,數據傳輸速度是600波特,無校驗,1個起始位、1個停止位,那么變電站每天將產生約5 M數據,1 G容量可以記錄大約204天的數據。實際上,只要存儲幾周的數據就足以應對突發性錯誤數據的分析,因此普通硬盤的存儲容量就足夠了。SCADA智能診斷系統的軟件總體結構如圖2所示。

圖2 系統軟件模塊框圖
系統初始化串口緩存和相關參數后,從串口處逐個讀取二進制數據,并把該數據緩存到數據管道結構中。為了隨時同步CDT數據,系統采用每讀1個數據即和前5個數據結合,進行同步頭檢測,如果是同步頭,就不必再進行CRC(循環冗余碼)校驗,可直接加校驗正確標志并寫入文件,提高了運行速度。如果不是同步頭,就要檢測收到的數據個數是否達到6個,即是否可以構成1個信息字結構。當沒達到6個數據的時候,繼續接收數據,并把該數據緩存到數據管道結構中,同時寫入文件,直到數據達到6個后,對該信息字結構進行CRC校驗,并把數據和校驗結果符號寫入文件。由于系統采用每收一個字符首先進行同步檢測,所以能在混亂情況下很快和傳輸數據實現同步,不會出現由于錯誤信號而無法同步的現象,并且能對亂碼進行恰當的數據組織,所以有很強的亂碼適應能力。
通信模塊主要采用VC中的MSComm控件進行程序編寫,可以根據不同的通信方式進行波特率、校驗、停止位等參數的設置,采用MSComm控件的事件驅動方法提取串口緩沖區內的字節數據。
MSComm即Microsoft Communications Control,是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,每個MSComm控件對應1個串行端口。它為應用程序提供了2種處理通信問題的方法,即事件驅動(Event-driven)方法和查詢方法。事件驅動方法是處理串行端口交互作用的一種非常有效的方法。在許多情況下,事件的發生需要得到通知,然后利用MSComm控件的OnComm事件,捕獲并處理這些通信事件。OnComm事件還可以檢查和處理通信錯誤。這種方法的優點是程序響應及時,可靠性高。
報文記錄模塊采用文本文件的格式進行數據記錄。為了避免在文件記錄時發生錯誤,采用以固定大小的多個文件序列組進行循環記錄,使系統發生故障后不至于丟失太多的歷史數據。所有文件使用創建時的時間作為文件名稱,如2008-11-02-12:30:40.txt。為了方便查詢,在報文中的每組同步頭后添加時間標記,如eb90 eb90 eb90 2008-11-02 14:59:17,使工作人員能很快找到特定時間的報文。
誤碼標記模塊是對所收到的數據按照指定規約進行檢驗,在正確的信息字后面添加“+”標記,錯誤的信息字后面添加“-”標記,以標注數據的正誤。系統主要對使用最廣泛的CDT和DISA規約進行監聽。針對CDT規約,校驗主要采用多項式法、半字節查表法和查表法。多項式法主要用在信息傳輸速度不高、程序空間很小的地方。半字節查表法和查表法速度相對較高,適合對程序空間要求不高、速度則要求較高的地方使用。針對實際情況,在要求保證速度的情況下,采用查表法來實現CRC校驗。校驗碼生成是軟件的核心,通過對比校驗碼可以判斷每個信息字的正誤。
由于需要快速對報文進行解釋,另外增加了1個報文翻譯模塊,該模塊主要按照CDT編碼規則,對每一段遙信報文的信息字進行解碼,方便工作人員快速找出當前的遙信狀態。
某110 kV變電所母線刀閘信號經常發生錯誤信息,周期不定,因而一直被判斷為通信通道存在干擾。采用該系統對變電所的上行出口及在主站端的上行入口同時監聽,連續運行了3個多月。誤信號發生后,對比2處的監聽報文,最終判斷為廠站的規約程序存在缺陷。在特殊的條件下,程序將遙信F3幀的最后2個字節完全歸零,以致變成了特定的遙信報文。由于它能通過主站系統的校驗,所以引起該變母線閘刀誤信。查明原因后進行了處理,問題因此得以解決。
某35 kV變電所時常出現信號丟失現象,采用該系統進行診斷,發現在廠站出口處監聽的數據正確,而主站入口處的監聽數據發生了錯誤。因此判斷信號在通信傳送中受到干擾,最后被主站校驗后排除。
有些廠站設備也經常出現信號丟失現象。經過對比診斷,斷定廠站設備在信號快速連續翻轉的情況下會丟棄信號。比如當重合閘成功的時候,開關狀態會經歷合閘、分閘、再合閘3個狀態,但是由于速度非???,廠站會丟棄分閘的信號,導致主站只有保護信號而沒有開關動作信號。
SCADA數據出錯的智能診斷系統原理簡單,應用方便,硬件要求低,只需要普通PC或工控機;能夠實現報文的長期監聽,診斷自動化運行中的固有缺陷,成為自動化診斷強有力的手段。
[1]李建華,郭明.RS-232和調制解調器高級通信編程[M].北京:人民郵電出版社,2001.
[2]JAN AXELSON.串行端口大全.北京:中國電力出版社,2001.
[3]EVANGE,LOS PETROUTSOS, KEVIN HOUGH.VISUAL BASIC6高級開發指南[M].北京:電子工業出版社,1999.
[4]戴梅萼,史嘉權.微型計算機技術及應用[M].北京:清華大學出版社,1999.