goose报文分析

合集下载

Goose报文格式

Goose报文格式

1.Goose报文格式一、GOOSE通信帧结构描述字节1 2 3 4 5 678 9 10 11 12 1314 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 · · · ·图1 以太网通信帧结构解释:1.以太网地址2. TPID 和TCI 标记头的结构:TPID值:0x8100User Priority:三位,User priority 的值应在配置时进行设置,以便将模拟量采样值和时间紧迫的、保护相关的GOOSE信息与低优先级的总线负载相区别。

缺省的优先级为4。

CFI:一位[0],Length后无嵌入的RIF域/以太网标记帧中有类型域。

VID:支持虚拟局域网是一种可选的机制,如果采用了这种机制,那么配置时应设置虚拟局域网标识(VID)。

另外,虚拟局域网标识VID缺省值为0。

3.EtherType、APPID和LengthEtherType:基于ISO/IEC 8802-3 MAC子层的以太网类型将由IEEE 著作权注册机构进行注册。

所注册的以太网型(Ethertype)值为0X88B8。

APPID:应用标识。

APPID用于选择包含模拟量采样值的信息和用于区别关联的应用。

为模拟量采样值保留的APPID值范围是0x4000~0x7FFF。

缺省值为0x4000。

缺省值表示APPID没有被配置。

配置系统时将强烈推荐将APPIP配置为系统中的唯一值。

Length:包括从APPID开始的以太网型PDU的8位位组的数目。

4.保留1、保留2和APDUReserved1/Reserved2:用于将来的标准化应用。

该设备中认为是0x0000。

特别说明: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)。

学会看报文二GOOSE

学会看报文二GOOSE

所谓的GOOSE就是通用面向对象的变电站事件(Generic Object Oriented Substation Event)。

当发生任何状态变化时,智能电子设备将借助变化报告,高速多播一个二进制对象通用面向变电站事件对象(GOOSE)报告,该报告一般包含有:状态输入、起动和输出元件、继电器等实际和虚拟的每一个双点命令状态。

在第一次报告后,该报告一般以间隔2,4,8……60,000ms顺序重发。

(第一重发延时不固定,可长可短)。

面向变电站通用事件对象报告允许高速传输跳闸信号,具有高传输成功概率DL/T860.5所定义的报文类型和性能分类按照图1所示进行映射。

-类型1(快速报文)-类型1A(跳闸报文)-类型2(中速报文)-类型3(低速报文)-类型4(原始数据报文)-类型5(文件传输功能)-类型6(时间同步报文)而为了变电站得变为信息能够快速的传递,及跳闸报文嫩够及时快速的传送给ICU(智能控制单元)所以GOOSE报文选用了类型1和类型1A的报文。

GOOSE报文的数据目的地址(对应下图的Destination)应包括一个多播MAC地址。

GOOSE 报文的数据源地址(Source)应包括一个单播MAC地址。

因为电脑网卡的问题,V-lan优先级(PRIORITY)和V-lan的VID无法显示。

所以报文一般只能看到目的MAC和APPID.GOOSEGOOSE标识该可视串最大长度为65字节。

该值与被GOOSE控制引用指定的GOOSE控制块的数值相同。

GOOSE控制引用control block reference表示GOOSE数据的控制块路径该可视位串最大长度为65字节。

值应是控制GOOSE报文的GOOSE控制块的引用。

如下图所示状态序号(StNum)该整数值取值在0到4,294,967,295。

祥见下图的方框内。

顺序序号(SqNum)该整数值取值在0到4,294,967,295。

0为状态序号改变的第一次发送保留。

GOOSE解析心得

GOOSE解析心得

GOOSE 报文的解析心得1、IEC61850的GOOSE 报文的帧格式Header MACMAC 目的地址(6字节)=0x010CCD010000~0x010CCD0101FF MAC 源地址(6字节)TPID (2字节类型)=0x8100TC I(2字节)=0x4000Ethertype (2字节)=0x88B8APPID (2字节)=0x0000~0x3FFF Length (2字节)=8+m Reserved1(2字节)=0x0000Reserved2(2字节)=0x0000ASDU (m 字节<1480)(Pad bytes if necessary )(若干字节)CRC (4字节)Priority tagged Header EthertypeMAC t 填充MAC计算检验87654321图4. GOOSE 报文的帧格式GOOSE报文中主要分为网络参数、GOOSE参数和GOOSE数据,下面主要介绍一下网络参数。

网络参数——Destination(目的地址):一种组播MAC地址,在交换机上以组播的形式传播,GOOSE的目的地址一般以01 -0C-CD-01开头,后两个字节可以自由的分配,是全站唯一的,是GOOSE报文订阅机制的主要参数之一,他的正确配置是过程层实现通信的基本条件,工作人员可将其认定为GOOSE数据的唯一标识。

Source(源地址):装置板卡的物理地址,过程层应用中没有实际的意义,但要保证其不能冲突,物理地址是可以有厂家修改的。

2、程序中所建立的GOOSE数组结构体struct GOOSEData{uint8_t macDst[6];uint8_t macSrc[6];uint8_t TPID[2];uint8_t TCI[2];uint8_t ethernetType[2];uint8_t APPID[2];uint8_t PDULength[2];uint8_t reserved1[2];uint8_t reserved2[2];uint8_t GOOSEPDU[4];uint8_t gocbRef_Type;uint8_t gocbRef_Length;uint8_t gocbRef_String[25];uint8_t timeAllowToLive_Type;uint8_t timeAllowToLive_Length;uint8_t timeAllowToLive_Value[2];uint8_t DatSet_Type;uint8_t DatSet_Length;uint8_t DatSet_string[25];uint8_t goID_Type;uint8_t goID_Length;uint8_t goID_Value[33];uint8_t BianWeiTime_Type;uint8_t BianWeiTime__Length;uint8_t BianWeiTime_Value[8];uint8_t StNum_Type;uint8_t StNum__Length;uint8_t StNum_Value[4];uint8_t SqNum_Type;uint8_t SqNum__Length;uint8_t SqNum_Value[4];uint8_t Test_Type;uint8_t Test__Length;uint8_t Test_Value;uint8_t confRev_Type;uint8_t confRev__Length;uint8_t confRev_Value;uint8_t ndsCom_Type;uint8_t ndsCom__Length;uint8_t ndsCom_Value;uint8_t TotalNumOfGoose_Type;uint8_t TotalNumOfGoose__Length;uint8_t TotalNumOfGoose_Value;uint8_t GOOSEDataHead_Type;uint8_t GOOSEDataHead_Type_Length[3];uint8_t GOOSE_DIData[240];}GOOSEData1={0x00,0x60,0x6e,0x90,0x00,0xae,//目的地址0x01,0x02,0x03,0x03,0x04,0x05, //源地址0x81,0x00,0x40,0x00,0x00,0x00,0x80,0x19,0x50,0x4c,0x32,0x32,0x30,0x31,0x41,0x50,0x49,0x30,0x31,0x2f,0x4c,0x4c,0x4e,0x30,0x24,00x82, 0x19,0x50,0x4c,0x32,0x32,0x30,0x31,0x41,0x50,0x49,0x30,0x31,0x2f,0x4c,0x4c,0x4e,0x30,0x24,0 x47,0x4f,0x24,0x67,0x6f,0x63,0x62,0x31,//27个字节0x83, 0x21,0x50,0x4c,0x32,0x32,0x30,0x31,0x41,0x54,0x45,0x4d,0x50,0x4c,0x41,0x54,0x45,0x50,0x49, 0x30,0x31,0x2f,0x4c,0x4c,0x4e,0x30,0x24, 0x47, 0x4f, 0x24, 0x67, 0x6f, 0x63, 0x62,0x87, 0x01, 0x00,//3个字节0x88, 0x01, 0x01,//3个字节0x89, 0x01, 0x00,//3个字节0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01, 0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01, 0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01, 0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01, 0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01, 0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01, 0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01, 0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01, 0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00,0x83,0x01,0x00};附加说明:常见的GOOSE参数分为布尔型、位串行、时间型、浮点型四种类型数据。

学会看GOOSE、SV报文

学会看GOOSE、SV报文

学会看GOOSE、SV报文一、GOOSE报文GOOSE是什么?它的英文全称是Generic Object Oriented Substation Event,是一种面向通用对象的变电站事件,主要用于实现在多IED之间的信息传递,包括传输跳合闸信号(命令),具有高传输成功概率。

GOOSE控制块:描述IED的“开出”能力。

IED将需要开出的数据实例化为不同的LN,再按一定的逻辑分类将其汇总至不同的数据集(DataSet),数据集再关联至不同的Gocb。

如保护装置的跳闸出口、测控装置的遥控出口、智能终端上送采集到的开入量等。

既然其作用是反映事件,必然需要反映事件的稳态与变化。

在稳态情况下,GOOSE源将稳定的以T0(可设、一般为5S)时间间隔循环发送GOOSE报文,当有事件变化时,GOOSE 服务器将立即发送事件变化报文,此时T0时间间隔将被缩短;在变化事件发送完成一次后,GOOSE服务器将以最短时间间隔T1,快速重传两次变化报文;在三次快速传输完成后,GOOSE服务器将以T2、T3时间间隔各传输一次变位报文;最后GOOSE服务器又将进入稳态传输过程,以T0时间间隔循环发送GOOSE报文。

在GOOSE 传输机制中,有两个重要参数StateNumber 和SequenceNumber ,StateNumber(0~4294967295(FFFFFFF))反映出GOOSE报文中数据值与上一帧报文数据值是否有变化,SequenceNumber(0~4294967295)反映出在无变化事件情况下,GOOSE报文发送的次数(到最大值后,将归0重新开始计数)。

GOOSE服务器通过重发相同数据主要是为了获得额外的可靠性。

GOOSE源传输GOOSE 报文,都是以数据集形式发送,一帧报文对应一个数据集,一次发送,将整个数据集中所有数据值同时发送。

一帧GOOSE 报文由AppID、PDU 长度、保留字1、保留字2、GOOSEPDU 组成,其中GOOSEPDU为可变长度,由数据集中DA的个数决定。

如何解读GOOSE报文

如何解读GOOSE报文

如何解读GOOSE报文goose附件:我们以一个220kV线路保护PCS-931三相跳闸(同时发出启动失灵信号)的动作报文来分析。

用MMS Ethereal软件打开文中附件的GOOSE报文:进入工具栏的“File”→“Open”左栏的“Directories”中选择文件路径,“Files”中选取文件后按“OK”确认打开后报文如上图,我们需先对报文进行过滤在“Filter”后的文本框中键入“iecgoose”(注意大小写),按回车提交过滤过滤后显示的全部都是GOOSE 报文图中“Time ”表示报文发生的的相对时间,“Source ”表示产生报文的源MAC 地址,“Destination ”表示报文的目的MAC 地址。

对照设计院提供的保护GOOSE 信号表中的组播地址找到我们需要查看的GOOSE 信号,在这里我们就以一个220kV 线路保护PCS-931的保护动作GOOSE 信号来进行分析。

该GOOSE 的组播地址为01:0c:cd:01:14:1b 。

如上图示,在“Filter ”后的文本框中键入“eth.dst == 01:0c:cd:01:14:1b ”(注意大小写)过滤查看所有目的源地址为01:0c:cd:01:14:1b 的报文。

这是我们抓到报文中保护动作GOOSE 报文的一帧注1:Time Allowed to Live 值一般为T0值的2倍,该参数主要用于GOOSE 断链的判断,在2倍的Time Allowed to Live 时间(在这里为20000毫秒即20秒)内未收到下一帧报文,AppID 表示应用ID 好,在此显示的是十进制数Time Allowed to Live 表示GOOSE 报文的生存时间(注1)DataSetReference 表示该GOOSE 发送数据集的路径,具体解释见注2GOOSEID 对应为GOOSE 控制块GSEControl 下的appID 值Event Timestamp 表示事件时标,该值为时间发生的时间而非本段报文发送的时间ControlBlockReference 表示GOOSE 控制块路径StateNumber 为状态序号即StNum ,SequenceNumber 为顺序号即SqNum ,Test 表示报文是否为检修位Number Dateset Entries 表示所传输数据集中数据的数量,Data 下的数据为数据集中各数据的传输值接收方即发出GOOSE断链告警。

goose报文采用

goose报文采用

Goose报文1. 什么是Goose报文?Goose(Generic Object Oriented Substation Event)报文是一种用于电力系统中的通信协议,用于在互联的电力设备之间传输信息。

它基于IEC 61850标准,并采用了发布-订阅模式(Publish-Subscribe)。

Goose报文主要用于在智能电网中实现实时数据的传输和事件的通知。

它可以用于监测电力设备的状态变化、故障事件的传递以及控制指令的发送。

Goose报文具有高可靠性、低时延和广播特性,适用于各种电力系统中的通信需求。

2. Goose报文的结构Goose报文由报文头部和报文数据组成。

2.1 报文头部报文头部包含了一些关键的信息,用于标识和控制报文的传输。

•GooseID:每个Goose报文都有一个唯一的GooseID,用于标识报文的发送者和接收者。

它是一个16位的无符号整数。

•AppID:每个Goose报文都有一个唯一的AppID,用于标识报文的应用程序。

它是一个16位的无符号整数。

•GoCBRef:Goose Control Block的引用,用于标识报文的发送者和接收者之间的关联关系。

•TimeAllowedtoLive:报文的存活时间,以毫秒为单位。

超过存活时间后,报文将被丢弃。

•DatSet:报文中包含的数据集的名称。

•ConfRev:数据集的配置版本号,用于标识数据集的变化。

•NumDatSetEntries:数据集中包含的条目数量。

•AllData:指示报文中是否包含了所有数据。

2.2 报文数据报文数据包含了要传输的实时数据和事件信息。

Goose报文的数据部分采用了简单的二进制编码格式,可以包含多个数据条目。

每个数据条目由数据对象的名称、数据类型和数据值组成。

3. Goose报文的应用Goose报文在电力系统中有广泛的应用。

3.1 实时数据传输Goose报文可以用于实时传输电力设备的状态数据。

例如,变电站中的断路器状态、电流、电压等信息可以通过Goose报文传输到监控系统,实现对电力系统实时监测和控制。

IEC-61850 GOOSE报文研究

IEC-61850 GOOSE报文研究

IEC-61850 GOOSE报文研究【摘要】IEC-61850通信协议是一个完整的变电站通信体系,对于实现设备间的互操作具有重要意义,是实现数字化变电站的基础,数字化变电站是智能电网的关键部分。

GOOSE是IEC-61850中定义的一种通用变电站事件模型类。

本文分析了GOOSE的控制和报文规范,详细介绍了GOOSE报文语法结构。

【关键词】IEC-61850;GOOSE报文;数字化变电站;通信协议0.引言IEC-61850《变电站网络与通信协议》标准(以下简称IEC-61850)是新一代的变电站网络通信体系,适应分层的IED和变电站自动化系统。

它根据电力系统生产过程的特点,制定了满足实时信息传输要求的服务模型,采用抽象通信服务接口、特定通信服务映射,以适应网络发展。

与传统的体系相比,有如下突出特点:采用面向对象建模技术,面向设备建模和自我描述,以适应功能扩展,满足应用开放互操作性要求。

采用配置语言,配备配置工具,在信息源定义数据和数据属性。

定义和传输元数据,扩充数据和设备管理功能,传输采样测量值等,还包括变电站通信网络和系统总体要求、系统和工程管理、一致性测试等。

IEC-61850标准对变电站系统中所有的通信报文做了详细的规定和分类,并对各种报文的传输做了特殊的通信服务映射。

它解决了不同设备和不同系统之间传输时的不兼容,真正实现了设备的互操作性。

IEC-61850规定了若干种报文来传输变电站实时数据,每种报文传输值的侧重点不同。

其中间隔之间的联闭锁、跳闸信息,基于出线保护IED信息的分布式母线保护,分布式故障录波器通过GOOSE传输,GOOSE采用多播方式。

本文介绍了IEC-61850各部分的地位和作用,分析了GOOSE报文的控制和报文规范,根据GOOSE报文的定义,介绍了GOOSE报文语法结构。

1.GOOSE报文机制面向系统-范围事件的通用对象即GOOSE是IEC-61850-7-2标准中定义的一种派生于GSE类的通用变电站事件模型。

GOOSE报文解析

GOOSE报文解析

GOOSE报文解析GOOSE报文的结构,基于ISO/IEC 8802-3的帧格式普通报文:目的MAC+ 源MAC+ (TPID+ TCI) + 以太网类型+ APPID+APDU数据的长度(m+8)TPID为0x8100 以太网类型为0x88B8(对于GOOSE报文)TCI为用户优先级+CFI+VID+ 00 00 + APDU(长度为m)00 00 为保留位注:( ) 中的部分可以不写,但强烈建议以以太网传输的时候,加入….APDU Head : 格式为61 81 + GOOSEPDU的长度,从80开始算起广播报文:目的MAC + 源MAC + 以太网类型+ APPID + APDU数据的长度(m+8)(目的MAC为FF FF FF FF)+ 00 00 + APDU(长度为m)ASN.1 的BE R编码形式为:TLV形式,即Tag + Length + Value 的形式Tag 与数据类型标记的编码一致Length 表示后面Value的长度Value 应用ASCII码进行编码解析对于Tag 的解析:Bit 7,6 Type of TagBit 5 Primitive or Constructed FlagBit 4-0 Tag V alueASN.1 数据类型83BOOL型84 BIT-String 型91 UTC 型(时间)85 Int 型86 Unsigned 型8a Visble-String 型翟大厨的报文分析:0000: 01 00 00 00 00 0708 00 06 86 48 42 81 0040 03目的MAC 源Mac TPID TCI0010: 88 B800 0700 9000 00 00 0061 81 8580 2550以太网类型APPID 长度保留位APDU Head gocbRef (80 表示数据类型Tag,25表示数据长度,从50开始都是后续数据)0020: 32 41 31 4A 31 51 36 50 72 6F 74 65 63 74 69 6F0030: 6E 2F 4C 4C 4E 30 24 47 53 45 70 72 6F 74 65 630040: 74 69 6F 6E81 02 05 0082 25 50 32 41 31 4A 31timeAllowtoLive(81表示类型) dataSet(82表示类型)0x0500---12800050: 51 36 50 72 6F 74 65 63 74 69 6F 6E 2F 4C 4C 4E0060: 30 24 47 53 45 70 72 6F 74 65 63 74 69 6F 6E 83goID(83表示类型)0x37 对应ASCII码中的‘7’0070: 01 3784 08 00 00 00 00 00 00 00 0085 01 0186t(84表示类型) stNum(85表示类型) Num 为1表示时间:01/01/1970_00:00:00.000000q000080: 03 02 70 A187 01 0088 01 01 89 01 008A 01 04numDatSetEntries(8A表示类型)值4 sqNum(86表示类型) test(87表示类型) ConfRev(88表示类型) ndsCom(89表示类型)0x0270A1---159905 00 表示FALSE 为1 00表示FALSE0090: AB 10 83 01 00 84 03 02 00 00 83 01 00 84 03 02allData(AB表示类型)allData为一个数据的集合10表示后面的数据长度内部分解为不同的小的数据集如:83 01 00 83 (数据类型为boolean型) 01(数据长度为1) 00 (表示数据内容,对于boolean型表示为FALSE)84 03 02 00 0084(数据类型为bit-string型)03(数据长度为03) 02 00 00(表示数据内容)00A0: 00 00注:其中numDatSetEntries表示了allData中的数据链的个数报文解析出来为:GoosePdu {gocbRef "P2A1J1Q6Protection/LLN0$GSEprotection",timeAllowedtoLive 1280,datSet "P2A1J1Q6Protection/LLN0$GSEprotection",goID "7",t 01/01/1970_00:00:00.000000q00,stNum 1,sqNum 159905,test FALSE,confRev 1,ndsCom FALSE,numDatSetEntries 4,allData {boolean FALSE,bit-string '00000000000000'B,boolean FALSE,bit-string '00000000000000'B }}Comgoose 中报文分析:0000 01 0c cd 01 00 0401 0c cd 01 10 1088 b800 04目的MAC 源MAC 以太网类型APPID0010 00 9400 00 00 0061 81 8980 1c 58 37 32 31 32长度保留位APDU Head gocbRef0020 5f 32 48 42 50 52 4f 54 2f 4c 4c 4e 30 24 47 4f0030 24 67 6f 63 62 54 7881 02 27 10 82 1c 58 37 32timeAllowtoLive datSet100000040 31 32 5f 32 48 42 50 52 4f 54 2f 4c 4c 4e 30 240050 64 73 47 6f 6f 73 65 54 7883 11 58 37 32 31 32goID(查ASCII码表可得)X7212_GOOSE_TX_ID0060 5f 47 4f 4f 53 45 5f 54 58 5f 49 4484 08 47 42t0070 d2 8a c8 31 26 ea85 01 0186 01 0d87 01 0088stNum(值为1) sqNum(值为13) test(FALSE)0080 01 0189 01 008a 01 08ab 18 83 01 00 84 01 00ConfRev(值为1) ndsCom(FALSE) numDatSetEntries(值为8) allData(共有8个数据链,长度为24) 0090 83 01 00 84 01 00 83 01 00 84 01 00 83 01 00 8400a0 01 00报文解析出来为:GoosePdu {gocbRef "X7212_2HBPROT/LLN0$GO$gocbTx",timeAllowedtoLive 1280,datSet "X7212_2HBPROT/LLN0$dsGooseTx",goID " X7212_GOOSE_TX_ID ",t 01/01/1970_00:00:00.000000q00,stNum 1,sqNum 13,test FALSE,confRev 1,ndsCom FALSE,numDatSetEntries 8,allData {boolean FALSE,bit-string '00000000000000'B,boolean FALSE,bit-string '00000000000000'Bboolean FALSE,bit-string '00000000000000'B,boolean FALSE,bit-string '00000000000000'B}}Goose3 中报文分析:0000 01 0c cd 01 01 ff00 0d 60 9f 07 a6 81 00 80 00目的MAC 源MAC TPID TCI 0010 88 b800 00 01 79 00 00 00 00 61 82 01 6d80 10以太网类型APPID 长度保留位APDU Head gocbRef0x0179---3850020 45 44 50 30 31 4c 44 30 2f 67 6f 6f 73 65 53 54 0030 81 01 0a 82 18 45 44 50 30 31 4c 44 30 2f 4c 4c timeAllowedtoLive datSet100040 4e 30 24 41 6c 6c 5f 53 54 5f 50 6f 7383 0c 4cgoID0050 44 30 5f 47 6f 6f 73 65 5f 53 54 84 08 00 00 00t0060 00 00 00 00 00 85 01 0186 01 00 87 01 00 88 01stNum sqNum test ConfRev值为1 值为0 FALSE 32 0070 2089 01 00 8a 01 08ab 82 01 10 a2 20 a2 05 85ndsCom numDatSetEntries allData 数据结构为嵌套型FALSE 值为8,表示有8个嵌套结构数据0080 01 00 89 00 86 01 00 84 02 06 40 84 03 03 00 00 0090 91 08 45 65 09 c2 7f ff ff 1883 01 00 a2 20 a200a0 05 85 01 00 89 00 86 01 00 84 02 06 80 84 03 03 00b0 00 00 91 08 00 00 00 00 00 00 00 0083 01 00 a2 00c0 20 a2 05 85 01 00 89 00 86 01 00 84 02 06 40 84 00d0 03 03 00 00 91 08 00 00 00 00 00 00 00 0083 01 00e0 00 a2 20 a2 05 85 01 00 89 00 86 01 00 84 02 0600f0 80 84 03 03 00 00 91 08 00 00 00 00 00 00 00 00 0100 83 01 00 a2 20 a2 05 85 01 00 89 00 86 01 00 84 0110 02 06 80 84 03 03 00 00 91 08 00 00 00 00 00 00 0120 00 0083 01 00 a2 20 a2 05 85 01 00 89 00 86 01 0130 00 84 02 06 40 84 03 03 00 00 91 08 00 00 00 00 0140 00 00 00 00 83 01 00 a2 20 a2 05 85 01 00 89 00 0150 86 01 00 84 02 06 40 84 03 03 00 00 91 08 00 00 0160 00 00 00 00 00 0083 01 00 a2 20 a2 05 85 01 00 0170 89 00 86 01 00 84 02 06 80 84 03 03 00 00 91 08 0180 00 00 00 00 00 00 00 00 83 01 00报文解析出来为:GoosePdu {gocbRef " EDP01LD0 /gooseST ",timeAllowedtoLive 10,datSet "EDP 01LD0/LL N0$All_S T_Pos ",goID " LD0_Goose _ST ",t 01/01/1970_00:00:00.000000q00,stNum 1,sqNum 0,test FALSE,confRev 32,ndsCom FALSE,numDatSetEntries 8,allData {}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

GOOSE报文详解Goose报文在网络上传输时采用的是OSI模型,但只用到OSI网络模型七层中的四层,应用层、表示层、数据链路层和物理层,传输层和网络层为空。

应用层定义协议数据单元PDU,经过表示层编码后,不采用TCP/IP协议,而是直接映射到数据链路层和物理层。

这种映射方式的目的是避免通信堆栈造成传输延时,从而保证报文传输、处理的快速性。

GOOSE报文在MAC层的帧结构包括:源MAC地址、目的地址即组播地址、报文类型、四字节Tag、APPID、报文长度、四字节的保留和GOOSEPDU。

Goose具体报文格式如图0所示[0]。

图0 Goose报文格式Goose举例报文(十六进制):01 0C CD 01 00 51 00 1E 4F D3 AE 41 81 00 80 42 88 B8 00 33 00 90 00 00 00 00 61 81 85 80 08 67 6F 63 62 52 65 66 31 81 05 00 00 00 27 10 82 07 64 61 74 53 65 74 31 83 05 67 6F 49 44 31 84 08 4E F2 85 E1 F7 CE D9 00 85 05 00 00 00 00 01 86 05 00 00 00 00 01 87 01 00 88 05 0000 00 00 01 89 01 00 8A 05 00 00 00 00 09 AB 36 83 01 00 84 03 03 00 00 91 08 00 00 00 00 00 00 00 00 83 01 00 84 03 03 00 00 91 08 00 00 00 00 00 00 00 00 83 01 00 84 03 03 00 00 91 08 00 00 00 00 00 00 00 00分析如下(可结合Ethereal解析):1、01 0C CD 01 00 51目的MAC地址2、00 1E 4F D3 AE 41源MAC地址3、81 00 80 42GOOSE报文支持IEEE 802.1Q/P优先级技术,IEEE 802.1Q为VLAN技术的标准,IEEE 802.1P为报文优先级标准。

这4个字节共同组成goose报文的tag位。

Tag是有两个字节的TPID(标签协议标识)和2个字节的TCI(标签控制信息)组成。

TPID配置为0x8100表示goose报文加入了优先级标识。

TPID和TCI组成如图1所示:图1:PID和TCI组成TCI中12位VID,1位CFI和3位Priority(优先级)。

12位VID可以配置4096个VLAN,CFI一般配置为0,3位Priority可以分为8个优先级:其中只配置了0-4级,5、6、7及保留未来使用。

4、88 B8以太网类型值0x88 B8为goose,0x88 B9为GSE,0x88 BA为采样值。

如图3所示图3 以太网类型值分配5、00 33APPID两字节的最高两位对照图3解释。

所以此处APPID=51(D)6、00 90长度=144(D)长度字节数包含从APPID开始以太网PDU头和APDU(应用协议数据单元)的长度。

长度是8+m,m是APDU的长度,m<1492。

为什么是8+m?这个8个字节分别是APPID 2个字节,长度2个字节,以及后面的保留1、保留2各两个字节。

对应到本帧报文的8个字节为:00 33 00 90 00 00 00 00。

7、00 00 00 00保留1、保留2。

为将来的应用扩展使用,缺省值为0。

8、61 81 85GoosePDU开始(APDU应用协议数据单元)搞清楚这个,得看ASN.1编码,此处稍作解释。

ASN.1的传输基于八位位组的字节序列来进行的,它的编码规则遵循标记TAG(也有称TYPE)、长度LENGTH、值V ALUE的格式,简称TLV,如图4所示。

图4 ASN.1编码格式对图4解释:TAG:一般占1或者2个字节。

TAG的组成如图5所示,图5 TAG编码格式Bit7 Bit6不解释,如上图。

Bit5:=0表示V ALUE为简单结构,即只包含数值内容。

=1表示V ALUE为复合结构,即V ALUE还包含了TLV结构,直至TLV结构中Bit5为0.Bit4~0:由于最高的3位(7、6、5)作为它用,因此TAG(bit4~0)只能表示到11111(b)=31(D)。

若想表示>31是,此时TAG就要占2个字节(第1个字节后面的被称为扩展字节)。

此时TAG 编码格式如图6所示。

图6 大于31时TAG编码对图6解释:此时字节1中Bit7~5不变,Bit4~0全为1,字节2表示真正的TAG值,可表示0~255。

LENGTH:紧跟TAG后面的length,它描述后续的V ALUE值是由多少个字节数所构成。

若V ALUE 长度≤127,则LENGTH占1个字节,字节最高位为Bit7=0;若V ALUE长度>127,则LENGTH 第1个字节最高位Bit7=1,Bit6~0表示的是LENGTH本身所占的字节数,从第2个字节开始到最后1个字节表示的是V ALUE的长度。

如图7所示。

图7 LENGTH编码格式V ALUE:值。

实际所要传递的编码内容,具体编码规则,根据不同的标记类型,采用不用的编码规范。

因此,结合上述,对61 81 85解释为:TAG=0x61,APPLICATION应用,复合结构,tag 值为1。

0x81最高位为1,表示V ALUE长度>127,LENGTH本身长度为1,即:0x85。

后续V ALUE长度为0x85=133(D)个字节。

9、之后的字节排列顺序如图8所示图8 IECGoosePDU报文格式10、80 08 67 6F 63 62 52 65 66 31gocbRef字符串ASN.1编码格式TLV。

80为TAG,08为LENGTH,后面的为V ALUE,67 6F 63 62 52 65 66 31转换成字符为gocbRef1。

11、81 05 00 00 00 27 10timeAllowedtoLive(报文存活时间,单位ms)ASN.1编码格式TLV。

81为TAG,05为LENGTH,后面的为V ALUE,00 00 00 27 10转成10进制为10000,即10s。

Goose接收方的中断时间一般定为大于2* timeAllowedtoLive即报Goose中断告警。

由于Goose报文的重要性,即使外部状态不再变换,也应重发。

此参数提示订阅者等待下一报文到来的最长时间。

当等待事件大于timeAllowedtoLive值仍未收到有效报文时,订阅者认为通信联系失去,采用预先定义的默认值取代。

12、82 07 64 61 74 53 65 74 31datSet字符串ASN.1编码格式TLV。

82为TAG,07为LENGTH,后面的为V ALUE,64 61 74 53 65 74 31转换成字符为datSet1。

13、83 05 67 6F 49 44 31goID字符串ASN.1编码格式TLV。

83为TAG,05为LENGTH,后面的为V ALUE,67 6F 49 44 31转换成字符为goID1。

14、84 08 4E F2 85 E1 F7 CE D9 00t,stnum加1时的时间,精确到毫秒。

Goose报文产生时的时标。

通常作为驱动事件的发生时标(若有特殊要求,驱动事件的发生时标可另外包含在数据集中)。

ASN.1编码格式TLV。

84为TAG,08为LENGTH,后面的为V ALUE。

第8个字节代表品质因数。

15、85 05 00 00 00 00 01 86 05 00 00 00 00 01stnum值85 05 00 00 00 00 01sqnum值86 05 00 00 00 00 01装置发送方:后面allData数据跟上一次的allData值不一致时stnum+1,sqnum=0。

一致时stnum不变,sqnum+1。

上电第1帧时stnum=1,sqnum=1。

stnum、sqnum加到最大值时都从1开始。

装置接收方:上电时stnum=sqnum=0。

16、87 01 00test位当装置检修压板投入时,装置发送的GOOSE报文中的test应置位。

Goose接收装置应将接收的Goose报文中的test位与装置自身的检修压板状态比较,只有两者一致时才将信号作为有效进行处理或动作。

17、88 05 00 00 00 00 01confRev()配置版本号(配置次数)。

表示Data-Set配置改变的计数器,例如当Data-Set里某个成员被删除或成员重新排序等均会导致confRev数值改变。

18、89 01 00ndsCom表示此控制块配置的必要性,当属性dataset值为NULL时,ndsCom值应为TRUE,表示此控制块需进一步配置。

19、8A 05 00 00 00 00 09numDatSetEntries表示allData中有多少个数据项,此处表示有9个20、AB 36从这开始到结束为allData内容TAG=0xAB,上下文关联,复合结构,即V ALUE也是有TLV组成。

LENGTH=0x36=54(D)21、83 01 00 84 03 03 00 00 91 08 00 00 00 00 00 00 00 00时间t表示最后一次状态变位发生的时间,是格林威治时间,即比当前时间晚了8个小时。

时间品质反应最后一次状态变位发生时候的时间品质,而不是当前状态的时间品质。

22、83 01 00 84 03 03 00 00 91 08 00 00 00 00 00 00 00 0083 01 00 84 03 03 00 00 91 08 00 00 00 00 00 00 00 00同21。

相关文档
最新文档