遠動傳輸規約之IEC60870-5-104篇

1)IEC-60870-5-104的規約結構
IEC-60870-5-104遠動規約使用的參考模型源出於開放式系統互聯的ISO-OSI參考模型,但它只採用其中的5層,其結構如圖所示:
 遠動傳輸規約之IEC60870-5-104篇
IEC60870-5-104實際上是將IEC60870-5-101與TCP/IP(Transmission Control Protocol/Internet Protocol)提供的網絡傳輸功能相組合,使得IEC60870-5-101在TCP/IP內各種網絡類型都可使用,在上圖的5層參考模型中,IEC60870-5-104實際上處於應用層協議的位置;基於TCP/IP的應用層協議很多,每一種應用層協議都對應着一個網絡端口號,根據其在傳輸層上使用的是TCP協議(傳輸控制協議)還是UDP協議(用戶數據報文協議),端口號又分爲TCP端口號和UDP端口號,其中TCP協議是一種面向連接的協議,爲用戶提供可靠的、全雙工的字節流服務,具有確認、流控制、多路複用和同步等功能,適用於數據傳輸,而UDP協議則是無連接的,每個分組都攜帶完整的目的地址,各分組在系統中獨立地從數據源走到終點,它不保證數據的可靠傳輸,也不提供重新排列次序或重新請求功能,爲了保證可靠地傳輸遠動數據,IEC60870-5-104規定傳輸層使用的是TCP協議,因此其對應的端口號是TCP端口。IEC60870-5-104規定本標準使用的端口號爲2404,並且此端口號已經得到IANA(互聯網地址分配機構,Internet Assigned Numbers Authority)的確認。對於基於TCP的應用程序來說,存在兩種工作模式,即服務器模式和客戶機模式。服務器模式和客戶機模式的區別是,在建立TCP連接時,服務器從不主動發起連接請求,它一直處於偵聽狀態,當偵聽到來自客戶機的連接請求後,則接受此請求,由此建立一個TCP連接,服務器和客戶機就可以通過這個虛擬的通信鏈路進行數據的收發。IEC60870-5-104規定控制站(即調度系統)作爲客戶機,而被控站(即站端RTU)作爲服務器。
 
2)IEC-60870-5-104的應用規約數據單元的結構
IEC-60870-5-104的應用規約數據單元(APDU)的結構如圖所示,
遠動傳輸規約之IEC60870-5-104篇
它由應用規約控制信息(APCI)和應用服務數據單元(ASDU)組成,和IEC-60870-5-101的幀結構相比,其中應用服務數據單元是相同的,相異之處在於,IEC-60870-5-104使用應用規約控制信息(APCI),而IEC-60870-5-101使用鏈路規約控制信息(LPCI)。在APDU中,啓動字符68H定義了數據流內的起始點,應用規約數據單元的長度定義了APDU主體的長度;需要注意的是,IEC 60870-5-104規定一個APDU報文(包括啓動字符和長度標識)不能超過255個字節,因此APDU最大長度爲253(等於255減去啓動和長度標識共兩個8位位組),ASDU的最大長度爲249,這個要求限制了一個APDU報文最多能發送121個不帶品質描述的歸一化測量值或243個不帶時標的單點遙信信息,若RTU採集的信息量超過此數目,則必須分成多個APDU進行發送。
 
3)IEC-60870-5-104的數據幀類型
APDU控制域包括4個8位位組,根據其定義,可以將APDU分成3種報文格式,即I格式、S格式和U格式。
①I格式用於編號的信息傳輸,包含ASDU。
遠動傳輸規約之IEC60870-5-104篇
②S格式用於編號的監視功能,用於確認I格式的數據幀。
遠動傳輸規約之IEC60870-5-104篇
③U格式未編號的控制功能,用於啓動數據傳輸,停止數據傳輸,測試鏈路。
遠動傳輸規約之IEC60870-5-104篇
控制域的第一個8位位組的第1比特=0定義了I格式,它表明APDU中包含應用服務數據單元ASDU;控制域的第一個8位位組的第1比特爲1,第2比特爲0定義了S格式,此種格式的APDU不包含ASDU,當報文接收方收到發送方的I格式報文後,如果沒有I格式報文需要發送給對方,可以向對方發送S格式報文以對所接收到的報文進行確認;控制域的第一個8位位組的第1比特=1,第2比特=1定義了U格式,此種格式的APDU也不含ASDU,其作用主要在於實現3種控制功能,即啓動子站進行數據傳輸(STARTDT)、停止子站的數據傳輸(STOPDT)和TCP鏈路測試(TESTFR)。
 
4)應用規約數據單元(APDU)的發送和接收序號的維護
IEC 60870-5-104採用RFC 793/RFC791(即TCP/IP)協議。IP協議負責將數據從一處傳往另一處,TCP負責控制數據流量,並保證傳輸的正確性。由於在最底層的計算機通信網絡提供的服務是不可靠的分組傳送,所以當傳送過程中出現錯誤以及在網絡硬件失效或網絡負荷太重時,數據包有可能丟失、延遲、重複和亂序,因此應用層協議必須使用超時和重傳機構。爲了防止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的值。
 
5)關於超時時間的理解
爲了能對TCP連接進行檢查和維護,IEC 60870-5-104規定了幾個超時時間,即t0、t1、t2、t3,它們的取值範圍爲1~255s,準確度爲1s,其缺省定義如圖所示:
遠動傳輸規約之IEC60870-5-104篇
 
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內未接收到任何報文,將向對方發送測試鏈路幀TESTFR。
 
6)IEC-60870-5-104的實施過程
    TCP連接的建立過程。站端RTU作爲服務器,在建立TCP連接前,應一直處於偵聽狀態並等待調度端的連接請求,當TCP連接已經建立,則應持續地監測TCP連接的狀態,以便TCP連接被關閉後能重新進入偵聽狀態並初始化一些與TCP連接狀態有關的程序變量;調度端作爲客戶機,在建立TCP連接前,應不斷地向站端RTU發出連接請求,一旦連接請求被接收,則應監測TCP連接的狀態,以便TCP連接被關閉後重新發出連接請求。需要注意的是,每次連接被建立後,調度端和站端RTU應將發送和接收序號清零,並且子站只有在收到了調度系統的STARTDT後,才能響應數據召喚以及循環上送數據,但在收到STARTDT之前,子站對於遙控、設點等命令仍然應進行響應。
    ②循環遙測數據傳送。對於遙測量,可以使用類型標識爲9(歸一化值)、11(標度化值)和13(短浮點數)的ASDU定時循環向調度端發送。
    ③總召喚過程。調度主站向子站發送總召喚命令幀(類型標識爲100,傳輸原因爲6),子站向主站發送總召喚命令確認幀(類型標識爲100,傳輸原因爲7),然後子站向主站發送單點遙信幀(類型標識爲1)和雙點遙信幀(類型標識爲3),最後向主站發送總召喚命令結束幀(類型標識爲100,傳輸原因爲10)。
    ④校時過程。調度主站向子站發送時間同步幀(類型標識爲104,傳輸原因6),子站收到後立即更新系統時鐘並向主站發送時間同步確認幀(類型標識爲104,傳輸原因7)。需要注意的是,在以太網上進行時鐘同步,要求最大的網絡延時小於接收站時鐘所要求的準確度,即如果網絡提供者保證在網絡中的延時不會超過400ms(典型的X.25 WAN值),在子站所要求的準確度爲1s,這樣時鐘同步纔有效。使用這個校時過程可以避免成百上千地在子站安裝GPS衛星定位系統,但如果網絡延時很大或者子站所要求的準確度很高(例如1ms),則變電站綜合自動化系統必須安裝精確度很高的全球定位系統(GPS),而以上的時鐘同步過程實際上就沒有意義了。
    ⑤子站事件主動上傳。以太網對於調度端和子站端都是一個全雙工高速網絡,因此IEC6080-5-104必然使用平衡式傳輸。當子站發生了突發事件,子站將根據具體情況主動向主站發送下述報文:遙信變位幀(單點遙信類型標識爲1, 雙點遙信類型標識爲3,傳輸原因爲3)、遙信SOE幀(單點遙信類型標識爲30, 雙點遙信類型標識爲31,傳輸原因爲3)、調壓變分接頭狀態變化幀(類型標識爲32,傳輸原因爲3)、繼電保護裝置事件(類型標識爲38)、繼電保護裝置成組啓動事件(類型標識爲39)、繼電保護裝置成組輸出電路信息(類型標識爲40)。
    ⑥遙控/遙調過程。主站發送遙控/遙調選擇命令(類型標識爲46/47,傳輸原因爲6,S/E=1),子站返回遙控/遙調返校(類型標識爲46/47,傳輸原因爲7,S/E=1),主站下發遙控/遙調執行命令(類型標識爲46/47,傳輸原因爲6,S/E=0),子站返回遙控/遙調執行確認(類型標識爲46/47,傳輸原因爲7,S/E=0),當遙控/遙調操作執行完畢後,子站返回遙控/遙調操作結束命令(類型標識爲46/47,傳輸原因爲10,S/E=0)。
    ⑦召喚電度過程。主站發送電度量凍結命令(類型標識爲101,傳輸原因爲6),子站返回電度量凍結確認(類型標識爲101,傳輸原因爲7),然後子站發送電度量數據(類型標識爲15,傳輸原因爲37),最後子站發送電度量召喚結束命令(類型標識爲101,傳輸原因爲10)。
 
7)其它
104規約中應用服務數據單元結構(ASDU)的結構如圖:
遠動傳輸規約之IEC60870-5-104篇 
注1:應用服務數據單元結構(ASDU)結構如下:
①一個8位位組表示類型標識;
②一個8位位組表示可變結構限定詞;
③兩個8位位組表示傳送原因;
④兩個8位位組表示應用服務數據單元公共地址;
⑤三個8位位組表示信息體地址。
注2:104規約中,應用規約數據單元(APDU)沒有校驗、沒有結束字符 (由於底層有TCP/IP,所以不需要額外判斷一幀的正確與完整性)。
 
參考文獻:
【1】趙淵 沈智健. 基於TCP/IP的IEC60870-5-104遠動規約在電力系統中的應用.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章