周運卓 陳泰峰
(1.南瑞集團(國網電力科學研究院)有限公司,江蘇南京210000;2.南方電網海南數字電網研究院有限公司,海南海口570100)
本文以遠動機使用南網104規約通信時,在遙信信號發生雪崩狀態下的主備機切換實驗中發生的現象作為研究對象,結合南網104規約實施細節,分析實驗現象產生的原因。雪崩狀態是指信號在短時間內(如1 min)大量聚集驟增,發生雪崩一樣的現象。
此類報文的基本格式主要有3種:U格式、S格式、I格式。I格式報文的主要功能是輸出編號信息;S格式報文的主要功能是監視編號;U格式報文的主要功能是控制編號。
1.1.1 I格式
I格式報文控制域標志:八位位組中的第1個,0是其第一位比特;八位位組中的第3個,0是其第一位比特。根據特殊規定,在此格式中,應用服務數據單元結構APDU一定要含有一個或一個以上的ASDU。
1.1.2 S格式
S格式報文控制域標志:第1個八位位組的第一位比特等于1且第二位比特等于0,第3個八位位組第一位比特等于0。其中還特別規定S格式的APDU只包括APCI。
1.1.3 U格式
U格式報文控制域標志:八位位組中的第1個,1是其第一位和第二位比特;八位位組中的第3個,0是其第一位比特。根據特殊規定,在此格式中,應用服務數據單元結構APDU中只能有APCI存在。STARTD或STOPDT或TESTFR在同一時刻內僅僅可以激活一個功能。
對于每一個APDU以及各個方向,N(S)發送序列號以及N(R)接收序列號的順序都需加1。發送序列號增加在發送方,接收序列號增加在接收方。如果接收站接連實現APDU數字的正確接收,并將接收序列號返回,這說明接收站對這些APDU認可。如果發送站在同一個緩沖區域內保存了一個或是多個APDU,一直到其發送序列號被用作接收序列號而收回為止,該序列號可有效確認所有小于或者是等于這個序列號的數字,以此來將緩沖區域內已經被正確發送的APDU刪除。如果需要在一個方向上傳輸更長的數據,就應該在另一方向進行S格式報文的發送,并在超時之前或者是溢出緩沖區域之前對APDU予以認可。因此,在創建一個TCP連接后,發送和接收序列號都被設置為0。
在控制站通過數據傳輸啟動以及停止對被動站內所傳輸數據進行控制時,如果站間有多個鏈接打開并且可以利用時,每次只有一個鏈接可用于數據傳輸。啟動和停止功能的作用在于由一個鏈接向另一個鏈接切換過程中防止丟失數據。當建立好連接之后,被控站不可以對連接上正在傳輸的用戶數據激活,也就是在建立好一個連接之后,停止功能將缺省。此時,被控站不會在該連接上進行任何數據的發送,除了未編號的控制功能以及確認這些功能之外,控制站一定要借助于該連接進行一個啟動命令的發送,以此來實現用戶在這一連接中的數據傳輸,被控站需要借助于啟動功能來實現這一命令的響應。若未確認啟動功能,該連接將關閉被控站,即初始化被控站以后,其中的所有待發數據都僅在確認了啟動功能之后才可以發送。
在任何一個TCP地址中,其組成都包括一個端口號和一個IP地址。任何一個和TCP-LAN進行連接的設備的IP地址都是特定的,但是系統整體的端口號定義則相同。其中,南網104規約中所規定的端口號是2404。
在某特定時間段沒有實現DTE確認的最大I格式連續編號APDU數目為k。各個I格式幀需要按照0-n-1模數順序進行編號,此處的模數指的是序列號對于n這一參數的模數。在將n作為模數進行操作時,k始終小于n-1。
根據特殊規定:
如果I格式中的APDU沒有確定是否達到k值,發送方需要停止發送。
接收方對沒有確認I格式報文的最大接收數量是w。通常情況下,接收方接收I格式報文的數量不超過w個,接收方就給發送方確認。k的最大推薦范圍是1~32 767,推薦值為12,精確到一個APDU。w的最大推薦范圍是1~32 767,推薦值為8,精確到一個APDU。k值比w值大。
遙信信號主要分成兩個大類:COS和SOE。COS是指不帶時標的變化遙信信號;SOE是指帶有時標的事件順序記錄,即把信號發生的時間按先后順序逐個記錄下來。
(1)k=12,w=8,主備機104參數里配置了鏈路重建時清除COS的信號。1 min內發出1 200個遙信信號,在信號上送過程中做主備機切換實驗。其結果為主站收到SOE事件信息多達22條記錄,截取一部分傳送報文幀進行分析,如圖1所示。

圖1 信號開始接收(k=12,w=8)
圖1接收報文幀中“28 00”為接收序列號,每次遞增2;發送報文幀中“2a 00”為發送序列號,是對接收幀的確認,“2a 00”是對“28 00”之前8包數據的確認。因為規約中k值是12,w值是8,因此調度收到不大于12包的數據會回復一個確認幀或者數據上送完成回復一個確認幀,因此“2a 00”是對“28 00”之前8包數據的確認。信號接收過程如圖2所示。

圖2 信號接收過程(k=12,w=8)
13:20:00,主備機切換,即關掉主機,備機升為主機。從圖2報文中可以看出標注為CF1、CF2、CF3這三幀報文還未被主站確認,因此遠動機的緩存里這3幀未被確認的報文未被清除。13:21:31,備機升為主機后的通信報文如圖3所示。

圖3 備機升為主機后的通信報文
圖3中的接收報文為重復上送的信號,與圖2中接收報文CF3數據內容(第13個字節開始)相同。當備機升為主機且與主站建立連接后,由于104規約配置中設置了鏈路重建時清除COS,因此將CF1、CF2這兩幀COS報文清除,CF3這一幀未被確認的SOE報文再次送給主站,經分析這幀報文的信號數量是22個,均為SOE信號。
(2)k=1,w=1,主備機104參數里配置了鏈路重建時清除COS信號。1 min內發出1 200個遙信信號,在信號上送過程中做主備機切換實驗,主站收到SOE事件信息不多不少,截取一部分傳送報文幀進行分析,如圖4所示。

圖4 信號接收過程(k=1,w=1)
圖4的接收報文幀中,“02 00”為接收序列號,每次遞增2;而發送報文幀中“04 00”為發送序列號,是對接收幀的確認,“04 00”是對“02 00”1包數據的確認。因為規約中k值是1,w值是1,所以調度收到不大于1包的數據會回復一個確認幀或者數據上送完成回復一個確認幀,也就說主備機切換時,未出現未被確認的報文幀。
根據上述分析,主機復位,主機已發送數據給主站,但沒收到主站的確認報文,造成備機升為主機后,將未收到確認的這一部分數據重新上送給主站,導致主站收到信號個數多于實際發生的信號數量。其實驗結果與南網104規約實施細節中“防止報文丟失和報文重復傳送控制”這一節描述一致,符合南網104規約實施細節的要求。
在雪崩狀態下的遠動機主備機切換實驗中,若要主站收到的信號不多不少,需要修改南網104規約中的k值和w值,使其均為1。