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