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