goose报文解析

Posted software4y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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报文解析的主要内容,如果未能解决你的问题,请参考以下文章

java怎么解析文本文件中的soap报文

「 Modbus-RTU报文解析」解析030610功能码报文示例

IPv6报文头深度解析

IPv6报文头深度解析

「 Modbus-RTU报文解析」解析030610功能码报文示例

wireshark解析报文一点根据