GOOSE报文详细解析(上篇) 一、基础概念‍⬛1.1 GOOSE报文‍⬛1.2 GSE模型二、GOOSE报文发送与链路监测机制‍⬛2.1 稳态心跳报文机制‍⬛2.2 变位事件报文发送机制‍⬛2.3 工程参数配置重要实际应用‍⬛2.4 链路中断监测机制三、GOOSE接收机制‍⬛3.1 单网接收机制‍⬛3.2 双网接收机制四、ASN.1编码规则‍⬛4.1 Tag标签‍⬛4.2 Length长度‍⬛4.3 Value内容五、GOOSE报文结构GOOSEGeneric Object Oriented Substation Event即面向对象的通用变电站事件。GOOSE信息主要包括开关/刀闸位置、控制开关位置、异常/告警信号、闭锁信号等。GOOSE链路相当于传统站中的直流控制和信号电缆传输的是控制指令和信号例如设备处于什么状态正常/异常分闸/合闸动作/复归联锁/解锁使能/闭锁投入/退出非全相SF6压力降低等。GOOSE服务器通过重发相同数据主要是为了获得额外的可靠性。一、基础概念‍⬛1.1 GOOSE报文GOOSE以快速的以太网多播报文传输为基础代替了传统的智能电子设备IED之间的硬接线的通信方式为逻辑节点间的通信提供了快速且高效可靠的方法。GOOSE服务主要用于传输变电站内保护跳闸、断路器位置、测控联锁等实时性要求的数据还可以传输如温湿度等模拟量信息甚至可以传输时间同步信息等。GOOSE报文的传输过程与普通的网络报文不同它是从应用层经过表示层ASN.1编码后直接映射到底层的数据链路层和物理层而不经TCP/IP协议即不经网络层和传输层。这种映射方式避免了通信堆栈造成的传输延时从而保证了报文传输的快速性。Goose报文在网络上传输时采用的是OSI模型但只用到OSI网络模型七层中的四层应用层、表示层、数据链路层和物理层传输层和网络层为空。应用层定义协议数据单元PDU经过表示层编码后不采用TCP/IP协议而是直接映射到数据链路层和物理层。这种映射方式的目的是避免通信堆栈造成传输延时从而保证报文传输、处理的快速性。‍⬛1.2 GSE模型通用变电站事件GSE模型包含两种类型类型全称说明GSSE通用变电站状态事件双比特用于传输状态变位信息。GSSE报文传输服务均映射于OSI的7层协议堆栈中一方面存在协议堆栈传输延时另一方面此报文仍基于传统的以太网实现不支持报文优先级和虚拟局域网、无特定的多播地址等。这使得当网络负荷较重时难以保证报文传输的实时性。差GOOSE面向通用对象的变电站事件支持由数据集组织的公共数据交换。GOOSE报文传输服务只用到OSI网络模型七层中的四层以快速的以太网多播报文传输为基础代替了传统的智能电子设备IED之间的硬接线的通信方式为逻辑节点间的通信提供了快速且高效可靠的方法。好二、GOOSE报文发送与链路监测机制‍⬛2.1 稳态心跳报文机制T0为心跳时间。当GOOSE数据集数据无任何变化、装置处于稳态运行时设备会平均每隔T0时间主动发送一次当前设备状态报文该报文即为心跳报文。心跳报文序号规则状态序号 StateNumberstNum0~FFFFFFFF数值保持不变该参数用于记录GOOSE数据发生变位的总次数稳态无变位时不更新变位时更新数值。反映出GOOSE报文中数据值与上一帧报文数据值是否有变化。顺序序号 SequenceNumbersqNum0~FFFFFFFF数值持续递增该参数用于记录稳态场景下报文的发送帧数。反映出在无变化事件情况下GOOSE报文发送的次数到最大值后将归0重新开始计数。‍⬛2.2 变位事件报文发送机制当装置发生开关变位、状态变更等事件GOOSE数据集数据同步更新设备会立即触发变位报文发送采用快速重传、间隔递增的发送逻辑保障变位信息可靠传输。1发送间隔规则数据变位后首帧报文瞬时发送后续报文间隔按倍数规律递增发送间隔规则帧序号发送间隔说明第1帧瞬时发送变位发生后立即发送第2帧T1最短重传间隔第3帧T1最短重传间隔第4帧T2 2T1间隔翻倍第5帧T3 4T1再次翻倍后续报文持续以2倍规律递增直至间隔时长等于T0切换为稳态心跳报文发送模式2报文序号规则变位后第1帧报文stNum自增1记录本次变位事件sqNum归零重启后续重传报文stNum保持不变sqNum持续递增‍⬛2.3 工程参数配置重要实际应用现场工程应用中固定参数配置如下心跳周期T0 5s变位初始重传间隔T1 2ms2248规则重要单次GOOSE状态变位事件设备固定连续发送5帧数据报文具体发送间隔序列为2ms → 2ms → 4ms → 8ms。5帧变位报文发送完成后设备恢复5s周期的心跳报文发送模式。反映事件稳态与变化过程的完整序列工程2248规则在稳态情况下GOOSE源将稳定的以T05s时间间隔循环发送GOOSE报文当有事件变化时GOOSE服务器立即发送事件变化报文此时T05s时间间隔将被缩短在变化事件发送完成后GOOSE服务器将以最短时间间隔T12ms快速重传两次变化报文在三次快速传输完成后GOOSE服务器将以T24ms、T38ms各传输一次变位报文最后GOOSE服务器又将进入稳态传输过程以T05s时间间隔循环发送GOOSE报文。‍⬛2.4 链路中断监测机制依托GOOSE报文心跳机制可实现装置间二次回路状态在线监测自动判别链路中断并报警。1监测判定标准定义报文允许存活时间TimeAllowedToLive 2T0中断判定条件接收方超过2倍稳态心跳发送周期即2T0)未收到任何GOOSE报文即刻判定通信链路中断2联动逻辑链路中断判定生效后系统自动触发GOOSE断链报警信号实现二次回路状态的实时在线监控保障电力通信回路运行可靠性三、GOOSE接收机制‍⬛3.1 单网接收机制单网接收机制1首先比较新接收帧和上一帧GOOSE报文中的StNum状态号参数是否相等。2若两帧GOOSE报文的StNum相等继续比较两帧GOOSE报文的SqNum顺序号若新接收GOOSE帧的SqNum大于上一帧的SqNum则判断是重传报文而丢弃若新接收GOOSE帧的SqNum小于上一帧的SqNum判断发送方是否重启装置是则更新数据否则丢弃数据。3若新接收GOOSE报文帧的StNum大则为新状态更新接收方的数据。4若新接收GOOSE报文帧的StNum小则为异常或者重启更新接收方的数据。‍⬛3.2 双网接收机制双网接收装置发送方A、B双网发一模一样的报文。接收方同时监听A、B两网但全局只维护一套StNum、SqNum。在丢弃报文的情况下判断该网络故障通过网络切换装置切换到备用网络进行传输。这种方法采用双网同时工作的模式保证了传输的快速性由接收方判别是否通信中断并决定是否更新数据当接收到重传或因某一网络故障而传输的错误信息时并不会更新数据从而保证了数据的可靠性。四、ASN.1编码规则GOOSE/SV报文采用ASN.1 BERBasic Encoding Rules编码。编码结构由三部分组成标记Tag长度Length内容Value。‍⬛4.1 Tag标签Tag号是十进制数但是在报文中的表示是用十六进制表示的。11 字节Tag 号0–30形式——0xMNM、N为任意十六进制数位 8–7类别00Universal标准类型01Application应用自定义10Context-specific上下文相关11Private私有位 60 原始Primitive1 构造Constructed含子项位 5–1Tag 号0–302多字节Tag号≥31形式——0xRF0xMN 0xPQ ……R、M、N、P、Q为十六进制数首字节位 8、7、6规则不变首字节 5–1 全 1。后续字节最高位 1表示还有下一字节最高位 0 表示最后一个字节。每个字节只使用低 7 位表示数字3示例示例一Tag 0x61十六进制数对应二进制数0110000101表示Application1表示构造00001表示Tag号为1。示例二Tag 0xFF 0x1F十六进制数对应二进制数11111111 0001111111表示Private1表示构造第二个字节里00011111表示Tag号为31。示例三Tag 0xBF 0x41十六进制数对应二进制数10111111 0100000110表示Context-specific1表示构造第二个字节里01000001表示Tag号为65‍⬛4.2 Length长度短格式1 字节最高位 0后 7 位表示长度0–127。示例长度为19即00010011即0x13。长格式≥2 字节最高位 1后 7 位表示后续字节数再跟长度值大端。示例长度为139即1000000110001011即0x81 0x8B。不定长仅 BER/CERLength0x80Value 以 0x0000 结尾DER 禁止。Length字段的字节数不确定。假定数据域的字节数为n编码规则如下条件编码方式n ≤ 127长度 1字节直接写n的值n 127第1字节0x80 后续字节个数后续字节n的十六进制高位在前‍⬛4.3 Value内容原始类型如 INTEGER、BOOLEAN直接二进制编码大端。构造类型如 SEQUENCE、SET嵌套多个 TLV。五、GOOSE报文结构详见GOOSE报文详细解析下篇GOOSE报文详细解析下篇https://blog.csdn.net/m0_62876521/article/details/161721228