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配置文件进行解析