goose報文解析
goose報文理論相關可以查看上一篇隨筆:https://www.cnblogs.com/software4y/p/10017602.html
GOOSE報文在MAC層的幀結構包括:源MAC地址、目的地址即組播地址、報文類型、四字節Tag、APPID、報文長度、四字節的保留和APDU。
GOOSE的幀格式見下表:
Header MAC |
MAC目的地址(6字節) |
MAC源地址(6字節) |
|
Priority tagged |
TPID(2字節標記)= 0x8100 |
TCI(2字節) |
|
網絡數據類型 |
Ethertype(2字節)=0x88B8 |
APPID (2字節)=0x0000~0x3FFF |
|
Length(2字節)= 8+m |
|
Reserved 1(2字節)=0x0000 |
|
Reserved 2(2字節)=0x0000 |
|
APDU |
GOOSE的APDU報文格式見下表
APDU數據T-L |
標記61H,長度 |
GoCBRef字符串 |
標記80H,長度≤65,GOOSE控制塊索引 |
允許生存時間 |
標記81H,長度,t |
Datset字符串 |
標記82H,長度≤65,Datset字符串 |
GoID |
標記83H,長度≤65 |
StNum 時間 |
標記84H,長度=8,t |
StNum 值 |
標記85H,長度≤5,StNum值 |
SqNum |
標記86H,長度≤5,SqNum值 |
Test位 |
標記87H,長度=1,test值 |
配置版本號 |
標記88H,長度≤5,ConfRev |
未配置好標誌 |
標記89H,長度=1,Needs?commissioning |
GOOSE的ASN.1編碼單元個數 |
標記8aH,長度≤5,總個數 |
GOOSE數據T-L |
標記abH,長度 |
GOOSE狀態 |
標記83H,長度=1,stVal |
標記84H,長度=2,q |
|
標記91H,長度=8,t |
|
GOOSE整型 |
標記85H,長度=4,值(4字節) |
GOOSE浮點 |
標記87H,長度=5,08H,浮點(4字節) |
…… |
|
解析註意事項:
1.Length-ASN.1的字節數不確定。假定數據域的字節數為n。按ASN.1的編碼規則,當n≤127時Length只有一個字節,值為n;當n>127時,Length有2~127字節,第一個字節的Bit7為1,Bit0~6為Length總字節數減1,第二個字節開始給出n,基於256,高位優先(例子:200用ASN.1表示就是0x81C8)
2.StNum 時間為UTC時間,此時間格式共占8個字節,其中的前四個字節是從1970年1月1日0時0秒0分0秒至今流過的秒數,緊跟著的3個字節是秒的小數部分,最後的一個字節是時間的品質和精度
3.GOOSE數據部分,數據集中具體的數據順序,需要根據goose配置文件進行解析
goose報文解析