超時的定義
參數 默認值 備注 選擇值
t0 30s 連接建立的超時
t1 15s 發送或測試APDU的超時
t2 10s 無數據報文t2<t1時確認的超時
t3 20s 長期空閑t3 >t1狀態下發送測試幀的超時
所有超時值的最大范圍: 1 到255s, 精確到1s。
當報文接收方收到發送方的I格式報文后,如果沒有I格式報文需要發送給對方,可以向對方發送S格式報文以對所接收到的報文進行確認;
為了防止I格式報文在傳送過程中丟失或重復傳送 ,IEC 60870-5-104的I格式報文的控制域定義了發送序號N(S)和接收序號R(S),發送方每發送一個I格式報文,其發送序號應加1,接收方每接收到一個與其接收序號相等的I格式報文后,其接收序號也應加1。需要注意的是,每次重新建立TCP連接后,調度主站和子站RTU的接收序號和發送序號都應清零,因此
在雙方開始數據傳送后,接收方若收到一個I格式報文,應判斷此I格式報文的發送序號是否等於自己的接收序號。若相等則應將自己接收序號加1,若此 I格式報文的發送序號大於自己的接收序號,這說明發送方發送的一些報文出現了丟失;若此I格式報文的發送序號小於自己的接收序號,這意味着發送方出現了重復傳送。此外,I格式和S格式報文的接收序號表明了發送該報文的一方對已接收到的I格式報文的確認,若發送方發送的某一I格式報文后長時間無法在對方的接收序號中得到確認,這就意味着發生了報文丟失。當出現上述這些報文丟失、錯序的情況時,通常意味着TCP連接出現了問題,發送方或接收方應關閉現在的 TCP連接然后
再重新建立新的TCP連接,並在新的TCP連接上重新開始會話過程。在主站端和子站RTU端進行通信時,接收方可以使用S格式報文(當有應用服務單元需要發送給對方時,可使用I格式報文)對已接收到的I格式報文進行確認,以免發送方超時收不到確認信息而重新建立TCP連接。這就存在一個接收方收到多少個I格式報文進行一次確認的問題,以及發送方應在多少個I格式報文未得到確認時停止發送數據。IEC 60870-5-104規定了兩個參數k和w,其取值范圍為1到32767,其中k表示發送方在有k個I格式報文未得到對方的確認時,將停止數據傳送,w 表示接收方最遲在接收了w個I格式報文后應發出認可;IEC 60870-5-104規定k和w的默認值分別為12個APDU和8個APDU。在實際中,k和w的具體取值可以根據TCP連接雙方的數
據通信量來加以確定,對於子站RTU端來說,每收到一個調度端的I格式報文都應立即進行響應,其w的取值實際上為1,由於RTU端可以循環向調度端發送遙信、遙測等信息,因此k的取值與其循環發送的定時周期有關,通常12到20個APDU就足夠了;對於主站端,由於不停接收到RTU的數據,因此應及時地給以確認,通常w取小於8個APDU的值。
為了能對TCP連接進行檢查和維護,IEC 60870-5-104規定了幾個超時時間,即t0、
t1、t2、t3,它們的取值范圍為1~255s,准確度為1s。
t0規定了主站端和子站RTU端建立一次TCP連接的最大允許時間,主站端和子站
RTU端之間的TCP連接在實際運行中可能經常進行關閉和重建,這發生在4種情況下:
① 主站端和子站RTU端之間的I格式報文傳送出現丟失、錯序或者發送U格式報文得
不到應答時,雙方均可主動關閉TCP連接,然后進行重建;
② 主站系統重新啟動后將與各個子站重新建立TCP連接;
③ 子站RTU合上電源或由於自恢復而重新啟動后,將重建連接;
④ 子站RTU收到主站端的RESET_PROCESS(復位遠方終端)信號
后,將關閉連接並重新初始化,然后重建連接。每次建立連接時,RTU都調用
socket的listen( )函數進行偵聽,主站端調用socket的connect( )函數進行連
接,如果在t0時間內未能成功建立連接,可能網絡發生了故障,主站端應該向運
行人員給出警告信息。t1規定發送方發送一個I格式報文或U格式報文后,必須在
t1的時間內得到接收方的認可,否則發送方認為TCP連接出現問題並應重新建立連
接。t2規定接收方在接收到I格式報文后,若經過t2時間未再收到新的I格式報
文,則必須向發送方發送S格式幀對已經接收到的I格式報文進行認可,顯然t2必
須小於t1。t3規定調度端或子站RTU端每接收一幀 I幀、S幀或者U幀將重新觸發計
時器t3,若在t3內未接收到任何報文,將向對方發送測試鏈路幀