石文江,黃佳偉,朱亮亮,陳興元
(國網大連供電公司電力調度控制中心,遼寧 大連 116011)
遠動104規(guī)約接收序號不連續(xù)問題的分析與解決
石文江,黃佳偉,朱亮亮,陳興元
(國網大連供電公司電力調度控制中心,遼寧 大連 116011)
遠動104規(guī)約I幀序號計數(shù)的連續(xù)性對SCADA系統(tǒng)的安全穩(wěn)定運行具有重要意義,針對104規(guī)約運行中經常出現(xiàn)的“接收序號不連續(xù)”問題,通過典型報文分析找到了問題原因及解決方法,即模數(shù)測試方法和I幀序號人工清零重新計數(shù)的方法。
遠動104規(guī)約;接收序號;模數(shù);I幀;SCADA
隨著電力調度數(shù)據(jù)專網實現(xiàn)對大部分變電站的覆蓋,基于TCP/IP網絡通信的DL/T634.5104規(guī)約[1](以下簡稱CS104)由于其運維簡便、鏈路可靠得到了用戶的青睞,目前已取代DL/T634.5101規(guī)約成為調控中心的主數(shù)據(jù)源。但在大連調控中心主站系統(tǒng)的實際運行中經常周期性地出現(xiàn)某些廠站的畫面數(shù)據(jù)刷新時斷時續(xù)、遙控時好時壞的問題,通過對這些廠站的實錄報文進行過濾排查,發(fā)現(xiàn)問題幾乎都出現(xiàn)在主站前置服務器報錯“接收序號不連續(xù)”的期間,典型報文如圖1所示。文獻[1-6]總結了CS104現(xiàn)場應用經驗,文獻[7]應用信息安全技術對CS104的APDU及其傳輸模式進行了研究,但這些文獻均沒有涉及接收序號不連續(xù)的問題,本文根據(jù)規(guī)約[8]標準深入分析了故障報文,找出了問題產生的原因,并提出了相應的解決方法。
1.1 序號計數(shù)原理
圖1 主站端實錄報文
圖2 CS104控制域格式
CS104報文只有3種報文格式:用于信息傳輸?shù)腎格式、用于編號監(jiān)視的S格式、用于通信控制的U格式,其中發(fā)送和接收序號計數(shù)僅發(fā)生在I幀中,U幀沒有序號,S幀只有接收序號,U、S幀均不參與序號的累加計數(shù)。I、U、S幀報文的控制域如圖2所示,它們從報文中的幀頭68和幀長L后的第3個字節(jié)開始,到第6個字節(jié)結束。發(fā)送方的前后2個I幀中的發(fā)送序號必須是連續(xù)加1的,接收方的前后2個I幀中的接收序號也必須是連續(xù)加1的,由于I幀報文中的發(fā)送序號和接收序號的最低位固定為0,因此它在報文中呈現(xiàn)出連續(xù)的偶數(shù)。S幀用于向對方確認所接收到I幀報文的個數(shù),即接收方將最后收到的I幀發(fā)送序號加1(在報文中加2)作為S幀的接收序號發(fā)送給對方,以便對方清除發(fā)送緩沖區(qū)中序號小于該S幀接收序號的I幀數(shù)據(jù)。
1.2 主廠站間故障定位
從圖1第1個下劃線標識部分及其上下相鄰報文看,廠站上傳的I幀報文的發(fā)送序號是連續(xù)的,發(fā)送序號從0x77B8到0x77C4,圖1中的下劃線(1)是主站應答的S幀報文,其報文的接收序號為0x77C0(實際序號為30 656/2=15 328)等于緊接上一個廠站的I幀發(fā)送序號0x77BE+2(實際序號為15 328+1=15 329),因此得到主站的確認。隨后出現(xiàn)的“接收序號不連續(xù)”的報文,根據(jù)廠站端記錄的報文來分析,序號的計數(shù)也是連續(xù)的,因此造成該問題的原因在主站端。
1.3 故障原因分析
問題原因可以從主站在故障點前后下發(fā)的報文來分析。圖1中下劃線(3)是主站接收到7幀接收序號不連續(xù)的I幀報文后發(fā)出的1幀U格式啟動激活報文(STARTDT),圖1中下劃線(4)是主站緊接著下發(fā)的總召報文,該報文中的發(fā)送序號和接收序號都是0,因此可以推定主站試圖通過U格式啟動激活命令來實現(xiàn)廠站I幀序號的清零并重新計數(shù)的目的,這主要是因為主站的模數(shù)設定為0x77c6(報文中低前高后,十進制為30662,實際序號15 331),即序號0x77c4的下一個序號應為0,但從隨后廠站上送的I幀來看,發(fā)送序號依舊繼續(xù)計數(shù),見圖1中下劃線(2),導致主站判斷為接收序號不連續(xù)的錯誤。但這里廠站也存在一個嚴重缺陷,當主站發(fā)送的總召報文中的發(fā)送和接收序號突然變0,即出現(xiàn)了不連續(xù)的情況時,該廠站并沒有丟棄該報文,而是繼續(xù)響應總召,并且所應答的I幀報文的發(fā)送序號繼續(xù)原有計數(shù),在廠站向主站傳送24幀單點遙信(數(shù)據(jù)類型0x01,報文的第7個字節(jié))和5幀短浮點數(shù)遙測(數(shù)據(jù)類型0x0d)后總召結束,但終因主站不向廠站應答S幀進行確認而使廠站在圖1中下劃線(5)的時點出現(xiàn)t1超時而關閉會話,主站被迫連續(xù)發(fā)送U格式啟動激活報文來試圖建立會話,隨后在圖1中下劃線(6)時會話被重新打開,I幀從零開始重新計數(shù)(圖1中下劃線(6)和(7)),通信恢復正常。所以從長時間看,該廠站由于CS104調試中遺留的bug而呈現(xiàn)畫面數(shù)據(jù)刷新時斷時續(xù),遙控操作時好時壞的現(xiàn)象出現(xiàn)。
2.1 嚴格驗證序號編碼的正確性
CS104的I幀序號的連續(xù)編碼是保證所傳信息合法性的重要措施之一,在廠站接入主站的施工調試中必須嚴格驗證。因此圖1中的廠站CS104的軟件版本必須修改升級,對接收序號不連續(xù)的I幀必須丟棄,并及時回1個S幀報文給主站告知廠站所接收到的合法I幀報文的數(shù)目,接著馬上關閉本次會話,隨后主動打開。
2.2 模數(shù)的設定與測試
序號的連續(xù)編碼終究是要溢出的。CS104的模數(shù)就是避免溢出而設定的一個值,使序號編碼在達到模數(shù)-1時重新從零開始計數(shù),循環(huán)不止。但在DL/T634.5104—2009規(guī)約中沒有明確規(guī)定其具體值,這導致了不同廠家的CS104模數(shù)設定值不同。但根據(jù)ITU_T X.25 2.3.2.2.1的規(guī)定,模數(shù)值可以取8,128或32 768。由于遠動信息量大,主廠站在線連續(xù)通信時間長,因此CS104模數(shù)宜取32 768,這個值可以通過地區(qū)電網CS104的實施細則予以明確,主站和所有的廠站需共同遵守。為了測試廠站和主站CS104通信I幀報文序號達到32 767(在報文中低前高后排列為f0 ff)后是否從零開始計數(shù),可以將廠站的遙測變化上送閥值設為0,對于新建廠站還要選中1路遙測人工加入模擬量,以便加快廠站上送主站的I幀報文的速度,如果以1 s 1幀I格式的報文計算,大概需要9 h就能看到結果。對主站下傳報文的模數(shù)測試比較困難,按10 min 1次下發(fā)總召和對時計算,需要114天才能看到結果,為此在主站CS104程序中應增加監(jiān)控程序,對每個廠站監(jiān)視當主站下發(fā)的I幀的發(fā)送序號由32 767變到0時廠站是否正常響應,如果某個廠站不能正常響應,應產生報警記錄到SCADA告警窗并向該廠站發(fā)送遠方復位命令的報文。
2.3 序號人工清零重新計數(shù)的方法
調度自動化系統(tǒng)正常運行時,CS104的I幀序號的連續(xù)性是不應被打斷的,但由于某些特殊原因需要人工清零并重新計數(shù)時,不宜使用圖1中主站下發(fā)U格式啟動激活命令的方法。因為在CS104中,STARTDT、STOPDT被設計用來切換冗余組內的數(shù)據(jù)連接,在DL/T634.5104—2009 10.7部分中明確指出了“一個冗余組中的每個連接的發(fā)送/接收計數(shù)器連續(xù)計數(shù),與是否使用STARTDT/STOPDT無關”,雖然在10.7部分提到了“任何連接如果不是處于STOPPED狀態(tài),則在新的連接啟動事件發(fā)生時應被立即關閉。這意味著可使用不對稱超時t1(超時t2同)縮短切換時間,即改變控制站t1使之小于被控站的t1”,但它的主要目的是用于縮短冗余組內數(shù)據(jù)連接的切換時間,并保證在冗余組內只有一個激活連接,而不是在激活連接上通過下發(fā)U格式STARTDT報文使該連接立即被關閉,從而實現(xiàn)重新從零開始計數(shù)的目的。并且規(guī)約強調在連接切換時,序號應保持連續(xù)計數(shù),這對預防黑客軟件竊入有重要意義。要實現(xiàn)I幀序號計數(shù)的人工清零,能夠快速且合法的做法是主站向廠站下發(fā)遠方復位命令,它的一個I幀報文的示例如下:68 0E D0 01 C6 77 69 01 06 00 3F 00 00 00 00 01,其中D0 01是報文發(fā)送序號(0x01d0),C6 77為報文接收序號(0x77c6),69為十六進制數(shù)據(jù)類型(十進制為105),緊接著的01是VSQ(只有1個信息體),06 00是傳送原因(遠方復位激活),3F 00是ASDU公共地址(與站地址同),緊接著的00 00 00是信息體地址(固定為0),最后一個字節(jié)01是QRP復位進程命令限定詞(進程的總復位)。
CS104在調度自動化系統(tǒng)中越來越重要,它的安全穩(wěn)定運行是保證SCADA系統(tǒng)安全可靠的基石,它也是SCADA網絡安全防護的一個重點。CS104的I幀序號的連續(xù)計數(shù)是保證CS104穩(wěn)定運行的關鍵,而在新建廠站接入調度主站的施工調試中,運維人員往往忽視了這一環(huán)節(jié)的嚴格驗收。本文提出的解決“接收序號不連續(xù)”問題的方法,在現(xiàn)場應用中已被證明是有效的,并且所采用的報文分析方法對解決CS104運行中出現(xiàn)的其它問題也有借鑒意義。
[1]石文江,李 論,洪一云.提高廠站接入主站調試效率的方法[J].東北電力技術,2015,36(6):21-26.
[2]石文江,潘鵬飛,陳朝紅.曹屯變RTU改造工程二次安全防護技術[J].東北電力技術,2008,29(6):48-52.
[3]石文江.外置式實時報警分類指示器的研發(fā)與應用[J].東北電力技術,2013,34(7):15-17.
[4]張建設,馬維青,郭晉洋.IEC 60870-5-104協(xié)議在遠動通信中的應用[J].電力系統(tǒng)自動化,2003,27(11):91-93.
[5]廖澤友,蔡運清.IEC 60870-5-103和IEC 60870-5-104協(xié)議應用經驗[J].電力系統(tǒng)自動化,2003,27(4):66-68.
[6]關鴻耀,劉 榕.IEC 60870-5-104協(xié)議在水電廠集控通信中的應用[J].電力系統(tǒng)自動化,2011,35(2):5-7.
[7]劉 念,段 斌.IEC 60870-5-104遠動協(xié)議的一種安全報文探討[J].電力系統(tǒng)自動化,2005,29(2):93-96.
[8]遠動設備及系統(tǒng)第5-104部分傳輸規(guī)約采用標準傳輸協(xié)議集的IEC60870-5-101網絡訪問:DL/T634.5104-2009[S].
Analysis and Solution on Receiving Serial Number Discontinuous Problem in Telecontrol Protocol 104
SHI Wen?jiang,HUANG Jia?wei,ZHU Liang?liang,CHEN Xing?yuan
(State Grid Dalian Power Supply Company Dispacth Center,Dalian,Liaoning 116011,China)
Continuity of I frame's serial number in telecontrol protocol 104 is very important to safe and stable operation of SCADA,this paper is aimed at the problem of“Receiving Signal Discontinuity”which often occurs in the running of 104 protocol,the cause of the problem is given by the analysis of typical recorded message,the methods about modulus test and I frame's serial number manual reset are also given in this paper.
Telecontrol protocol 104;Receiving message's serial number;Modulus;I frame;SCADA
TM734
A
1004-7913(2016)07-0044-03
石文江(1970—),男,高級工程師,從事調度自動化系統(tǒng)運維管理工作。
2016-04-28)