孔圣立,韓偉,時晨,劉超,李斌,張峰
(1.國網(wǎng)河南省電力公司電力科學研究院,鄭州 450052;2.河南省電力公司,鄭州 450052;3.河南恩湃高科集團有限公司,鄭州 450052)
隨著變電站智能化技術的發(fā)展,基于IEC 61850協(xié)議的智能變電站在國際上得到了越來越多的應用,我國也采用相對應的DL/T 860協(xié)議實現(xiàn)變電站的智能化?;贗EC 61850智能變電站的一個顯著特征是采用通信網(wǎng)絡代替?zhèn)鹘y(tǒng)的電纜傳遞變電站信息,通過就地采集變電站信息,并經(jīng)通信網(wǎng)絡傳送給保護、測量和自動化等多個智能電子設備共用,實現(xiàn)變電站信息的高效利用和有效監(jiān)控[1]。
變電站采用智能化技術后,突破了原有的傳統(tǒng)變電站的信息采集、處理模式,但信息的智能化也給變電站的系統(tǒng)監(jiān)控帶來了新的問題。隨著智能變電站采用“不可直觀的”通信網(wǎng)絡傳送信號,傳統(tǒng)變電站的端子連接等方式不再以物理形式展示出來,而多被智能變電站配置文件等代替。
為了提高智能變電站報文的可觀度,陸續(xù)開發(fā)了智能變電站報文分析系統(tǒng),但當前智能變電站報文分析系統(tǒng),多采用信息領域的報文分析方式,較少考慮以圖形化形式生動展示智能電子設備配置和互動關系。一般的報文記錄及分析手段也無法把通過信令表達的一些控制指令、關鍵事件,通過高可視化的方法進行動態(tài)展現(xiàn)。從而給技術人員,尤其是具有傳統(tǒng)變電站運檢經(jīng)驗背景的技術人員帶來很多理解、操作、故障分析定位等方面的難度[2]。
論文將研究具有可視化全景功能的智能變電站二次系統(tǒng),該系統(tǒng)基于DL/T 860標準,具有實時全景數(shù)據(jù)的智能監(jiān)測、數(shù)據(jù)智能挖掘與分析、和高度可視化表現(xiàn)等特點,從而極大提高智能化變電站的運行、維護能力,排除系統(tǒng)隱患,大幅度提高供電可靠性。
DL/T 860協(xié)議主要包含了以下報文[3]:(1) 抽象通信服務接口映射到制造報文規(guī)范的MMS報文;(2) 面向通用對象的變電站事件GOOSE報文;(3) 通用變電站事件GSSE報文;(4) 采樣值SV報文;(5) SNTP 對時報文。論文將重點研究MMS、GOOSE和SMV三種最重要IEC 61850報文的可視全景功能實現(xiàn)方法。
由于MMS采用抽象語法記法(ASN.1)來描述APDU,利用基本編碼規(guī)則實現(xiàn)ASN.1描述的抽象語法和比特流形式的傳輸語法的轉換,因此如何實現(xiàn)MMS的ASN.1解碼成為實現(xiàn)的關鍵[4]。
針對上述問題,文中研究基于asn1c的MMS報文分析和報文可視,主要內(nèi)容包括:(1)OSI七層協(xié)議的報文解碼,其中表示層、ACSE、MMS層采用asn1c所自動生成的C語言代碼來進行TLV解碼;(2)生成MMS REPORT報文的DA描述以及相應告警和事件;(3)對七層報文解析后的可操作展示[5]。系統(tǒng)結構如圖1所示。
圖1 MMS報文可視化系統(tǒng)圖
該方法實現(xiàn)了一種基于asn1c的MMS報文深度解析服務,并提供了MMS報文詳細信息和二進制信息間對應的高可視化的可操作展示。
基于asn1c的IEC 61850 MMS信令的深度解析和內(nèi)容展示的運行方法,包括:
(1) asn1c編譯器的準備和使用。
(a)根據(jù)PRES、ACSE、MMS層對應的協(xié)議規(guī)范手動生成抽象語法文件mms.asn1;
(b)使用asn1c把所述生成的抽象語法文件自動生成為相應的C語言代碼。
(2)解析智能電子設備的IEC 61850 SCL信息模型,建立與模型匹配的內(nèi)存數(shù)據(jù)庫。
(a)解析基于IEC 61850 SCL所定義的數(shù)據(jù)模型文件;
(b)將所解析的數(shù)據(jù)模型轉換成系統(tǒng)內(nèi)存數(shù)據(jù)庫,內(nèi)存數(shù)據(jù)庫包括兩張表,一張表存放IED名稱、訪問點、rptId、數(shù)據(jù)集、數(shù)據(jù)集描述、邏輯設備、邏輯節(jié)點等信息,建立rptId與DA描述的對應關系;另一張表存放數(shù)據(jù)集、DA_ID、DA描述、順序號等信息;
通過遍歷內(nèi)存數(shù)據(jù)庫中的rptId得到數(shù)據(jù)集名稱,然后根據(jù)數(shù)據(jù)集名稱按順序號取得所有的DA描述,按順序填入到生成的XML串中。
(3)啟動IEC 61850 MMS信令的深度解析服務,包括OSI七層協(xié)議的報文解碼、生成對MMS REPORT報文信息的DA描述以及相應告警和事件。
(a)深度解析包括: MMS層、ACSE層和CONNECTION-ORIENTED PRESENTATION層使用asn1c所自動生成的C語言代碼進行TLV解碼,CONNECTION-MODE TRANSPORT層解碼涉及COTP報文的重組,TCP/IP層解碼涉及TCP報文的重組,Ethernet層解碼包括對VLAN各字段的解碼。協(xié)議棧如圖2所示;
圖2 MMS、TCP/IP及以太網(wǎng)的協(xié)議棧模型
(b)解析多個MMS報文,并結合所述內(nèi)存數(shù)據(jù)庫里的模型信息生成對MMS REPORT報文信息的DA描述。對MMS REPORT報文信息的DA描述最終生成一個XML串及相關的二進制信息流串,在XML串中包含了協(xié)議棧各字段的詳細信息并且在每個字段中給出此字段對應的二進制串的開始位置和長度,基于所述XML串進行高可視化的可操作展示。
(4)對七層報文解析后的內(nèi)容進行高可視化的可操作展示。
通過應用管理界面程序MMSGUI為用戶提供操作界面,查看MMS報文解析的詳細信息、各報文字段對應的二進制信息和MMS的告警及事件,包括:TCP連接、COTP連接、TCP銷毀、CTOP銷毀、MMS斷鏈、MMS解碼失敗、寫操作等。還可以通過應用管理界面程序MMSGUI打開歷史MMS報文文件進行靜態(tài)深度解析。
該方法的核心組成部分的MMS深度解析服務,包含了以下關鍵技術:
(1)TCP、COTP報文重組模塊:服務中設置2個狀態(tài),分別記錄TCP、COTP重組的情況,內(nèi)容包括已經(jīng)重組的數(shù)據(jù)起始地址及數(shù)據(jù)長度,以(源IP地址、源端口、目的IP地址、目的端口)四元組區(qū)分不同的鏈接,根據(jù)報文內(nèi)容標志(TPKT報文的標志0300、以及COTP中的isLastUnit標志)和報文的長度字段決定是否需要重組,是否應該繼續(xù)進行下一層解碼等操作;
(2)MMS解碼庫模塊:由asn1c生成的C代碼及在此代碼基礎上對PRES、ACSE、MMS層解碼封裝的代碼組成,該模塊以動態(tài)庫的形式存在,供解析服務調用。該方法已對MMS解碼庫做了大量的測試工作。測試結果表明,它能夠很好地完成所有解碼工作;
(3)報文記錄模塊:服務抓取的MMS報文以PCAP文件的形式無損記錄到硬盤上,以(源IP:目的IP)為目錄名建立分層次存儲目錄,(源IP:目的IP)下建立時間子目錄,時間目錄下包含該時間段的原始數(shù)據(jù)。對存儲文件以(源IP:目的IP)做鍵,存儲塊偏移作為值,使用LevelDB建立文件索引,保證從海量數(shù)據(jù)中準確、快速的定位到告警事件報文。
在開發(fā)平臺上實現(xiàn)MMS報文展示功能,首先可以從全局上查看MMS實時和歷史的報文,進行快速查詢和MMS報文情況,如圖3所示。
圖3 MMS報文總體圖
系統(tǒng)提供了進一步查看每個MMS報文的具體內(nèi)容的功能??梢詮目傮w圖中,選擇所需深入分析的報文,可視化后,在頁面下方會出現(xiàn)該報文信息的詳細內(nèi)容,點擊右下角“顯示原始報文”,如圖4所示,可以查看MMS報文細節(jié)。
圖4 MMS報文細節(jié)展示圖
MMS報文細節(jié)展示圖中,左邊部分顯示的是選中的歷史報文解析后的詳細信息,右邊顯示的是該歷史報文的十六進制原始信息、解析信息與原始信息相互關聯(lián)。
GOOSE主要傳載電力系統(tǒng)開關狀態(tài)和控制等信息,是IEC 61850最重要的報文之一[6]。首先對GOOSE報文進行深度分析,如圖5所示。
圖5 GOOSE報文解析過程
包含以下重要模塊:
(1)GOOSE報文的解碼模塊:將每條GOOSE報文解碼成一個特殊的鏈表。鏈表中的每個節(jié)點保存了,GOOSE消息中每個字段對應的類型、長度,以及該數(shù)據(jù)在原始報文中的偏移;
(2)數(shù)據(jù)庫模型解析模塊:加載之前SCD解析生成的GOOSE控制塊信息,為GOOSE報文配置分析提供依據(jù)。并為GOOSE報文的高可視化提供相應的描述信息;
(3)配置分析模塊:針對每條解碼后的GOOSE消息,分析其配置是否正確。如配置存在錯誤,則將對應的錯誤標志位置1,為之后生成告警信息提供依據(jù);
(4)st & sq分析模塊:根據(jù)GOOSE報文st,sq的變化規(guī)律分析接受到的報文st或sq是否正常,如有異常同上置對應的錯誤標志位;
(5)DA深度分析:若st發(fā)生變化則找出發(fā)生變化的DA,記錄下變化的情況;
(6)告警上送模塊:結合之前各個錯誤標志位,GOOSE報文的編碼信息及GOOSE模型生成XML格式的GOOSE告警信息。并將告警信息上送給高可視化模型。
在開發(fā)平臺上實現(xiàn)GOOSE報文展示功能,不僅可以查看多個GOOSE報文的順序收發(fā)情況,包括每個報文的到達時間、序號等摘要信息,還可以進一步查看每個報文的具體內(nèi)容,如圖6所示。
圖6 GOOSE報文可視化圖
圖6的中間部分顯示是該時間段內(nèi)的GOOSE歷史報文信息列表,上方為GOOSE數(shù)據(jù)圖形展示,中間部分為GOOSE歷史數(shù)據(jù)列表信息,下方部分為顯示的詳細信息,其中圖形數(shù)據(jù)與列表數(shù)據(jù)相互關聯(lián),點擊右下角“顯示原始報文”,顯示選中GOOSE條目十六進制原始報文及報文的解析結果,如圖7所示。
圖7 GOOSE報文展示圖
圖7中,選中列表中的報文可以定位到圖形中的心跳動作,點擊心跳動作也可以定位到對應報文明細。每出現(xiàn)一個心跳,表示接收到一個正常的報文。出現(xiàn)一個綠旗(圓圈內(nèi))表示出現(xiàn)一個新的GOOSE動作(如此例中的開關動作),出現(xiàn)一個紅旗(方框內(nèi))則表示出現(xiàn)一個告警信息,如圖8所示。
圖8 GOOSE心跳報文
Fig.8 GOOSE heartbeat message
SMV報文深度分析是SMV信令(實時和歷史)高可視化展示的基礎[7]。SMV報文深度分析流程如圖9所示。
圖9 SMV報文解析過程
具體包含以下重要模塊:
(1)SMV報文的解碼模塊:將每條SMV報文解碼成一個特殊的鏈表。鏈表中的每個節(jié)點保存了,SMV消息中每個字段對應的類型、長度,以及該數(shù)據(jù)在原始報文中的偏移;
(2)數(shù)據(jù)庫模型解析模塊:加載之前SCD解析生成的SMV控制塊信息,將SMV報文配置分析提供依據(jù)。并為SMV報文的高可視化提供相應的描述信息;
(3)配置分析模塊:針對每條解碼后的SMV消息,分析其配置是否正確。如配置存在錯誤,則將對應的錯誤標志位置1,為之后生成告警信息提供依據(jù);
(4)Smpcnt & quality分析模塊:解析SMV報文的smpcnt,看smpcnt是否累加1,判斷SMV報文中通道品質是否正常,如有異常同上置對應的錯誤標志位;
(5)DA深度分析:結合SCD文件及SMV報文的定義,對SMV報文按TLV格式進行解碼;
(6)告警上送模塊:結合之前各個錯誤標志位,SMV報文的編碼信息及SMV模型生成XML格式的SMV告警信息。并將告警信息上送給高可視化模型。
該系統(tǒng)可針對SMV實時和歷史報文數(shù)據(jù)進行多種監(jiān)測和查詢處理,并可對其進行深度解析和告警分析,經(jīng)典的SMV可視化圖如圖10所示。
圖10 SMV報文可視化圖
該系統(tǒng)具有較強的實時數(shù)據(jù)監(jiān)測和處理能力,可以圖示化多路SMV實時數(shù)據(jù)流,并對其進行實時檢測和分析。系統(tǒng)可以單機緩存過去24小時的所有SMV數(shù)據(jù),并對其建立了快速索引機制?;谶@種機制,用戶可以方便的檢索和深度分析任一時間段的數(shù)據(jù)細節(jié),并進行高可視化的展現(xiàn),如圖11所示。
圖11 SMV報文緩存圖
秒級內(nèi)的數(shù)據(jù)以原始波形展示,對于大于1 s的數(shù)據(jù),由于數(shù)據(jù)量過大,則以趨向圖方式表示,如圖12所示,在圖形上使用鼠標滑動可以查看滑塊時間范圍內(nèi)的數(shù)據(jù),數(shù)據(jù)也以列表的方式展示,其中數(shù)與圖相關聯(lián),點擊界面右下角“顯示原始報文”,可以查看選中條目原始報文,其中右欄為16進制的原始報文,左欄為報文解析。
圖12 SMV原始報文展示圖
針對現(xiàn)有變電站二次系統(tǒng)存在的不足,提出了一種具有可視全景功能的智能變電站二次系統(tǒng),重點研究了智能變電站MMS、GOOSE和SMV三種重要報文的解析、監(jiān)控和可視化方法。通過論文所提出的系統(tǒng),實現(xiàn)了智能變電站二次系統(tǒng)的可視化成圖和事件告警展示,使得復雜的保護、測控等系統(tǒng)動作的報文交互情況一目了然,從而可以做到針對站內(nèi)復雜業(yè)務場景的“白盒”精細化測試。