面向通用對象的變電站事件模型GOOSE
1 面向通用對象的變電站事件模型GOOSE
在分布式的變電站自動化系統中,IED共同協助完成自動化功能的應用場合越來越多,如間隔層的設備之間的防誤閉鎖、分布式母線保護等,這些功能得以完成的重要前提條件是IED之間數據通信的可靠性和實時性。基於此,IEC61850中定義了通用變電站事件(Generic Substation Event,GSE)模型,該模型提供了在全系統範圍內快速可靠地輸入、輸出數據值的功能。
GSE分為兩種不同的控制類和報文結構:①面向通用對象的變電站事件(Generic Object Oriented Substation Event,GOOSE),支持由數據集(Data-Set)組織的公共數據交換:②通用變電站狀態事件(Generic Substation State Event,GSSE),用於傳輸狀態變位信息(雙比特)。如果只從抽象通信服務模型控制塊(Control Block)的屬性和服務定義兩方面比較,GOOSE和GSSE差異不大,但實際上,兩者的報文傳輸內容和實現機制截然不同。GSSE報文傳輸服務均映射於OSI的7層協議堆棧中,一方面存在協議堆棧傳輸延時,另一方面,此報文仍基於傳統的以太網實現,不支持報文優先級和虛擬局域網、無特定的多播地址等。這使得當網絡負荷較重時,難以保證報文傳輸的實時性。GSSE目前較少使用。下面主要介紹應用最多的GOOSE的服務。
IEC61850中定義的面向通用對象的變電站事件(GOOSE)以快速的以太網多播報文傳輸為基礎,代替了傳統的智能電子設備IED之間的硬接線的通信方式,為邏輯節點間的通信提供了快速且高效可靠的方法。GOOSE服務主要用於傳輸變電站內保護跳閘、斷路器位置、測控聯鎖等實時性要求的數據,還可以傳輸如溫濕度等模擬量信息,甚至可以傳輸時間同步信息等。
2 GOOSE發送機制及其特點
GOOSE報文的發送采用心跳報文和變位報文快速重發相結合的機制,按圖2-5所示的規律執行。
其中T0又稱心跳時間,在GOOSE數據集中的數據沒有變化的情況下,裝置平均每隔T0時間發送一次當前狀態,即心跳報文,報文中的狀態序號stNum(StateNumber用於記錄GOOSE數據發生變位的總次數)不變,順序號sqNum(SequenceNumber用於記錄穩態情況下報文發出的幀數)遞增。
當裝置中有事件發生(如開關狀態變位)時,GOOSE數據集中的數據就發生變化,裝置立刻發送該數據集的所有數據,然後間隔T1發送第2幀及第3幀,間隔T2、T3發送第4、5幀,T2為2T1,T3為4T1,後續報文以此類推,發送間隔以2倍的規律逐漸增加,直到增加到T0,報文再次成為心跳報文。當數據變位後的第1幀報文中stNum增加1,sqNum從零開始,隨後報文中stNum不變,sqNum遞增。
工程應用中,T0設為5s,T1設為2ms。GOOSE狀態變位過程共發5幀數據,即以2ms—2ms—4ms—8ms的時間間隔重發GOOSE報文,連續發5幀後便以5s時間間隔變成心跳報文。
GOOSE接收可以根據報文允許存活時間來檢測鏈路中斷,定義報文允許存活時間為2T0,接收方若超過2倍允許存活時間沒有收到GOOSE報文即判為中斷,發GOOSE斷鏈報警信號。由此,通過GOOSE通信機制也實現了裝置間二次回路狀態在線監測。
圖1 GOOSE報文傳輸時間
T0—穩定條件下,心跳報文傳輸間隔;(T0)—穩定條件下,心跳報文傳輸可能被事件打斷;T1—事件發生後,最短的重傳間隔;T2、T3一直至獲得穩定條件的重傳間隔。
GOOSE報文的傳輸過程與普通的網絡報文不同,它是從應用層經過表示層ASN.1編碼後,直接映射到底層的數據鏈路層和物理層(如圖2-6所示),而不經TCP/IP協議,即不經網絡層和傳輸層。這種映射方式避免了通信堆棧造成的傳輸延時,從而保證了報文傳輸的快速性。其中,ASN.1基本編碼規則采用的編碼結構由標記(Tag)、長度(Length)以及內容(Value)三個部分組成。
GOOSE采用發布者/訂閱者通信結構,此通信結構支持多個通信節點之間的對等直接通信。與點對點通信結構和客戶/服務器通信結構相比,發布者/訂閱者通信結構是一個或多個數據源(即發布者)向多個接收者(即訂閱者)發送數據的最佳解決方案,尤其適合數據流量大且實時性要求高的數據通信。發布者/訂閱者通信結構符合GOOSE報文傳輸本質,是事件驅動的。
圖2 GOOSE報文傳輸過程
3 GOOSE接收機制
3.1 GOOSE單網接收機制
裝置的單網GOOSE接收機制,如圖3 所示,裝置的GOOSE接收緩沖區接收到新的GOOSE報文,接收方嚴格檢查GOOSE報文的相關參數後,首先比較新接收幀和上一幀GOOSE報文中的StNum(狀態號)參數是否相等。若兩幀GOOSE報文的StNum相等,繼續比較兩幀GOOSE報文的SqNum(順序號)的大小關系,若新接收GOOSE幀的SqNum大於上一幀的SqNum,丟棄此報文,否則更新接收方的數據。若兩幀GOOSE報文的StNum不相等,更新接收方的數據。
圖3 單網GOOSE接收示意圖
3.2 GOOSE雙網接收機制
裝置的GOOSE雙網通信方法如圖4 所示,接受方和發送方都采用自動信息處理裝置並通過雙網相連,兩個網絡同時工作,裝置的GOOSE接收緩沖區接收到新的GOOSE報文,接收方嚴格檢查GOOSE報文的相關參數後,首先比較新接收幀和上一幀GOOSE報文中的StNum。若StNum大於上一幀報文,則判斷為新數據,更新老數據。若StNum等於上一幀報文,再將SqNum與上一幀進行比較,如果SqNum大於等於上一幀,則判斷是重傳報文而丟棄,如果SqNum小於上一幀,則判斷發送方是否重啟裝置,是則更新數據,否則丟棄數據。若StNum小於上一幀報文,則判斷發送方是否重啟裝置,是則更新數據,否則丟棄報文。在丟棄報文的情況下,判斷該網絡故障,通過網絡切換裝置切換到備用網絡進行傳輸。這種方法采用雙網同時工作的模式,保證了傳輸的快速性,由接收方判別是否通信中斷並決定是否更新數據,當接收到重傳或因某一網絡故障而傳輸的錯誤信息時,並不會更新數據,從而保證了數據的可靠性。
圖4 雙網GOOSE接收示意圖
4 GOOSE報文幀結構
根據IEC61850標準,GOOSE報文在數據鏈路層上采用ISO/IEC 8802-3以太網協議,GOOSE報文由報文頭和協議數據單元PDU兩部分組成,報文頭部分如圖5 所示,協議數據單元PDU部分如圖6 所示。
圖5 GOOSE報文頭部分
圖6 GOOSE PDU部分
GOOSE報文頭各參數含義如下:
(1)6個字節的目的地址“01 0c cd 01 00 33”和6個字節的源地址“00 10 00 00 00 33”。對於GOOSE報文的目的地址,前三個字節固定為“01-0C-CD”,第四個字節為“01”時代表GOOSE。IEC61850規定GOOSE報文目的地址取值範圍為01-0C-CD-01-00-00~01-0C-CD-01-01-ff。
(2)地址字段後面是4個字節的Tag標簽頭信息“81 00 80 00”。“81 00”是TPID的固定值;“8000”換算成二進制數為“1000000000000000”,它包括三個部分的內容,用戶優先級占據前三個Bit位“100”,CFI占第四個Bit位“0”,VLAN ID占最後十二個Bit位“000000000000”,換算成十進制數後可以看出優先級為4,VLAN ID為0。
(3)Tag標簽頭後是以太網類型值“88 b8”,代表該數據幀是一個GOOSE報文。IEC 61850中各種報文的以太網類型已經由IEEE的著作權註冊機構進行了註冊,是獨一無二的,GOOSE報文的以太網類型值是0x88B8。
(4)緊接著是應用標識APPID“00 33”,該值全站唯一。
(5)APPID後面是長度字段“00 b6”,換算成十進制數為182,表示數據幀從APPID開始到應用協議數據單元APDU結束的部分共有182個字節。
(6)保留位1和保留位2共占有4個字節,默認值為“00 00 00 00”。
GOOSE 協議數據單元PDU各參數含義如下:
(1)gocbRef:即GOOSE控制塊引用,由分層模型中的邏輯設備名、邏輯節點名、功能約束和控制塊名級聯而成。
(2)Time Allowed to Live:即報文允許生存時間,該參數值一般為心跳時間T0值的2倍,如果接收端超過2T0時間內沒有收到報文則判斷報文丟失,在4T0時間內沒有收到下一幀報文即判斷為GOOSE通信中斷,判出中斷後裝置會發出GOOSE斷鏈報警。
(3)dataset:即GOOSE控制塊所對應的GOOSE數據集引用名,由邏輯設備名、邏輯節點名和數據集名級聯而成。報文中Data部分傳輸的就是該數據集的成員值。
(4)goID:該參數是每個GOOSE報文的唯一性標識,該參數的作用和目的地址、APPID的作用類似。接收方通過對目的地址、APPID和goID等參數進行檢查,判斷是否是其所訂閱的報文。
(5)t:即Event TimeStamp,事件時標,其值為GOOSE數據發生變位的時間,即狀態號stNum加1的時間。
(6)stNum:即StateNumber,狀態序號,用於記錄GOOSE數據發生變位的總次數。
(7)sqNum:即SequenceNumber,順序號SqNum,用於記錄穩態情況下報文發出的幀數,裝置每發出一幀GOOSE報文,SqNum應加1;當有GOOSE數據變化時,該值歸0,從頭開始重新計數。
(8)test:檢修標識,用於表示發出該GOOSE報文的裝置是否處於檢修狀態。當檢修壓板投入時,test標識應為True。
(9)confRev:配置版本號,Config Revision是一個計數器,代表GOOSE數據集配置被改變的次數。當對GOOSE數據集成員進行重新排序、刪除等操作時,GOOSE數據集配置被改變。配置每改變一次,版本號應加1。
(10)ndsCom:即Needs Commissioning,該參數是一個布爾型變量,用於指示GOOSE是否需要進一步配置。
(11)NumDataSetEntries:即數據集條目數,圖中其值為“19”,代表該GOOSE數據集中含有19個成員,相應地報文Data部分含有19個數據條目。
(12)Data:該部分是GOOSE報文所傳輸的數據當前值。Data部分各個條目的含義、先後次序和所屬的數據類型都是由配置文件中的GOOSE數據集定義的。
引用自:http://www.pinlue.com/article/2017/06/0602/072485561456.html
面向通用對象的變電站事件模型GOOSE