news 2026/6/6 2:15:52

GOOSE报文详细解析(上篇)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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报文结构


GOOSE:Generic 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时间主动发送一次当前设备状态报文,该报文即为心跳报文

心跳报文序号规则:

  • 状态序号 StateNumber(stNum:0~FFFFFFFF):数值保持不变,该参数用于记录GOOSE数据发生变位的总次数,稳态无变位时不更新,变位时更新数值。反映出GOOSE报文中数据值与上一帧报文数据值是否有变化。

  • 顺序序号 SequenceNumber(sqNum:0~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 = 2ms

2248规则(重要!):单次GOOSE状态变位事件,设备固定连续发送5帧数据报文,具体发送间隔序列为:2ms → 2ms → 4ms → 8ms。5帧变位报文发送完成后,设备恢复5s周期的心跳报文发送模式。

反映事件稳态与变化过程的完整序列:

工程2248规则
  1. 在稳态情况下,GOOSE源将稳定的以T0(5s)时间间隔循环发送GOOSE报文;

  2. 当有事件变化时,GOOSE服务器立即发送事件变化报文,此时T0(5s)时间间隔将被缩短;

  3. 在变化事件发送完成后,GOOSE服务器将以最短时间间隔T1(2ms)快速重传两次变化报文;

  4. 在三次快速传输完成后,GOOSE服务器将以T2(4ms)、T3(8ms)各传输一次变位报文;

  5. 最后GOOSE服务器又将进入稳态传输过程,以T0(5s)时间间隔循环发送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 BER(Basic Encoding Rules)编码。

编码结构由三部分组成:标记(Tag)+长度(Length)+内容(Value)

🐈‍⬛4.1 Tag(标签)

Tag号是十进制数,但是在报文中的表示是用十六进制表示的。

(1)1 字节(Tag 号0–30):形式——0xMN(M、N为任意十六进制数)

  • 位 8–7:类别

    • 00=Universal(标准类型)

    • 01=Application(应用自定义)

    • 10=Context-specific(上下文相关)

    • 11=Private(私有)

  • 位 6:0 = 原始(Primitive),1 = 构造(Constructed,含子项)

  • 位 5–1:Tag 号(0–30)

(2)多字节(Tag号≥31):形式——0xRF0xMN 0xPQ ……(R、M、N、P、Q为十六进制数)

  • 首字节位 8、7、6规则不变,首字节 5–1 全 1。

  • 后续字节最高位 = 1,表示还有下一字节;最高位 = 0 ,表示最后一个字节。每个字节只使用低 7 位表示数字!

(3)示例

  • 示例一:Tag = 0x61(十六进制数),对应二进制数01100001;

01表示Application,1表示构造,00001表示Tag号为1。

  • 示例二:Tag = 0xFF 0x1F(十六进制数),对应二进制数11111111 00011111;

11表示Private,1表示构造,第二个字节里00011111表示Tag号为31。

  • 示例三:Tag = 0xBF 0x41(十六进制数),对应二进制数10111111 01000001

10表示Context-specific,1表示构造,第二个字节里01000001表示Tag号为65

🐈‍⬛4.2 Length(长度)

  • 短格式(1 字节):最高位 0,后 7 位表示长度(0–127)。

    • 示例:长度为19,即00010011,即0x13。

  • 长格式(≥2 字节):最高位 1,后 7 位表示后续字节数,再跟长度值(大端)。

    • 示例:长度为139,即1000000110001011,即0x81 0x8B。

  • 不定长(仅 BER/CER):Length=0x80,Value 以 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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 2:15:35

别再死记公式了!用LTspice仿真带你搞定Boost电路电感电容选型

用LTspice仿真实战:Boost电路电感电容选型避坑指南Boost电路设计中最让人头疼的莫过于电感电容参数的选择——公式复杂、变量众多,稍有不慎就会导致电路性能不达标。但今天我要分享的方法,能让你摆脱死记硬背的困扰,通过LTspice仿…

作者头像 李华
网站建设 2026/6/6 2:14:47

别再手动改样式了!PyQt5用pyrcc5一键管理图片资源(附Pycharm配置)

PyQt5资源管理革命:用pyrcc5告别手动样式时代在开发PyQt5应用时,你是否经历过这样的痛苦:每次修改图片资源都要手动更新路径,项目迁移时资源文件散落各处,团队成员因为资源引用不一致而互相踩坑?传统的手动…

作者头像 李华
网站建设 2026/6/6 2:13:38

从5G NSA到VoLTE:手把手教你用EARFCN定位和排查4G网络干扰问题

从5G NSA到VoLTE:手把手教你用EARFCN定位和排查4G网络干扰问题当你在5G NSA组网环境下调试VoLTE语音业务时,是否遇到过这些情况:终端频繁掉线、切换失败率居高不下,或者下载速率始终达不到理论值?这些看似复杂的问题&a…

作者头像 李华
网站建设 2026/6/6 2:12:36

Android模糊效果终极指南:用BlurView实现iOS风格毛玻璃界面

Android模糊效果终极指南:用BlurView实现iOS风格毛玻璃界面 【免费下载链接】BlurView Android blur view 项目地址: https://gitcode.com/gh_mirrors/blu/BlurView 在移动应用设计中,视觉层次和用户体验是至关重要的。你是否曾经羡慕iOS系统那优…

作者头像 李华