GOOSE报文分析

GOOSE报文分析

GOOSE通信也是采用发布和订阅的方式,通过GOOSE报文传输跳闸命令、开关位置和重要告警等多种数据,这些数据对应着传统变电站二次系统中的控制回路、信号回路和告警回路,因此对于具体装置而言,传统端子排和GOOSE输入输出信号存在着对应关系。传统变电站的设计规范和原则可以移植到智能变电站,原有的各种回路的功能可以通过GOOSE的输入输出端子来定义和实现,即通过对GOOSE的数据集、控制块和GOINGGIO节点进行预定义后实现其功能。具体的GOOSE连接关系由设计部门根据设备功能进行定义,以虚端子表的形式提供给系统集成商。集成商依据设计图要求,通过配置工具软件生成基于全站的系统配置文件(SCD文件)。设备生产厂家从全站配置文件中提取出对自己所属设备的GOOSE通信需求后生成装置配置文件(ICD文件),并通过装置配置工具软件将ICD文件写入装置。最后的功能测试和系统联调由调试人员在实验室和现场进行。 在智能变电站中对装置进行GOOSE通信组态和配置文件下装后,利用GOOSE网进行通信,可以大大减少屏柜内、屏柜间及其他应用所需的线缆数量和接线工作,二次系统设计也相应地变得简单了。在各个厂家充分完善组态配置工具软件的前提下,若GOOSE通信具备了人工置数的功能,就可以使得调试工作变得简单,加快智能变电站工程的建设和调试的速度。因此,提供功能完善、使用方便的软件工具就变得尤为重要了

报文的传输

GOOSE 报文的内容体现了智能变电站的设备状态发生了改变,其发送时间间隔并非固定不变。正常情况下没有状态变位时,GOOSE 报文会采用比较长的时间间隔进行发送,这个间隔时间为 To,是比较固定的心跳报文。若智能站内的有事件发生时,会有状态变位的信息生成并通过 GOOSE 报文上送此时智能装置会以最小的时间间隔 T发送两次 GOOSE 报文,其后再逐渐加大时间间隔在 T2和 T发送两次报文。当变位信息不再刷新时,又以固定的时间间隔 T。发送心跳报文。

(GOOSE 采用以太网多播方式传送数据,传输方式有:点对点、广播、多播GOOSE采用连续多次传送的方式实现可靠传输: T1=2ms,T2=4ms,T3=8ms,TO=5s)。如图 3-1。

在这里插入图片描述

报文的订阅和发布

在GOOSE通信中,报文的发布是以组播的方式将多个报文进行发送。由于报文包含了与不同设备相关的特定数据,因此在报文头中的目的地址就各有不同。 由于报文以组播的方式发布,因此所有GOOSE报文都在通信网络的底层进行传输,而订阅方却只需要接收发给自己的、目的地址为其自身的报文信息,对于自己不需要的信息则通过网络控制器进行过滤,从而避免自己的CPU负荷过重。这种过滤的实现是通过订阅方将一个GOOSE报文的目标地址列表配置到接收端的网络适配器中并控制适配器的工作模式,将所有接收到的报文头的目标地址与目标地址列表的内容进行比对,若比对成功,则认为接收的报文是自己所订阅和需要的,然后就将该报文从网络控制器读取到CPU里以进行下一步的解析,否则就丢弃掉该报文。

报文分析

GOOSE报文直接通过以太网链路层发送,其内容经过ASN.1编码,编码使得不同字长、不同字节序的CPU能够互相操作。GOOSE报文具有高优先级标记和VLAN标识,这些信息均保存在CID文件中,保护装置定义需要发送的数据就是通过读取其中的GOOSE控制块和GOOSE发送数据集来实现的。目前国内统一使用GOINGGIO来定义输入虚端子,保护装置通过CID文件中的INPUTS部分的内容来定义其GOOSE输入来源,以及与输入虚端子的对应关系。 GOOSE报文的主要内容有:Head部分,包含GOOSE报文的识别信息:来源、发送时间、变位序号、配置版本等信息;数据部分,包含数据的个数、数据值。
其基本帧格式分析如下表3-6:
在这里插入图片描述
在这里插入图片描述
目的地址和源地址:根据IEC61850标准的的建议, GOOSE报文传输目的地址为01-0C-CD-01-00-00 到 01-0C-CD-01-01-FF。源地址建议为系统中唯一(同一组网下),现在很多公司的做法一般是前两个字节固定为00-10,后2个字节为装置唯一地址。如果有装置有IP地址,后2个字节就表示为IP地址的16进制表示,以便于区分。
GOOSE报文的优先级:GOOSE报文作为高优先级的帧,应设置其优先级为2~7,缺省值为2。

报文长度:以太网帧中的长度域和APDU中的长度,都是不包括填充字节和CRC的。其中以太网的长度域,是固定两个字节。

GOOSE控制块引用名、数据集引用名和控制块ID都是在装置cid模型中确定的,表现为可视字符串:

① GoCBRef代表GOOSE控制块引用,是GOOSE控制块GoCB的属性之一,作为唯一的路径名,位于逻辑节点LLN0的作用域内。如:GoCBRef = XXXPROT/LLN0 G O GO GOGoCb,XXXPROT为逻辑设备名,LLN0为逻辑节点,GO为功能FC约束,GoCb是GOOSE控制块的name,这样就组成了GoCBRef。

② DatSet数据集引用也是GOOSE控制块GoCB的一个属性,表示该数据集被GOOSE控制块传输。

③ GOOSE控制块ID是用户赋予发出GOOSE的应用系统唯一标识,缺省值为GoCBRef。

存活时间和事件时标:存活时间用ms表示。事件时标是标准Utctime,一共8个字节,2个字节表示从1970年1月1日00时00分00秒开始累积的秒,3个字表示节秒的分数,1个字节表示时间精度位。

状态号stnum和顺序号sqnum:GOOSE数据变位时,stnum增加;不变位时sqnum增加。

测试标识test:目前很多公司的做法是将test和装置检修状态结合在一起,当装置处于检修状态时候,发送的GOOSE报文就带有test位,这样接收方就可以区别处理,方便检修时测试goose功能。

配置版本号:配置版本号用整型表示,当GOOSE数据集等配置发生变化时,版本号随之改变,用来区别不同的配置信息。发送方和接收方配置版本不一致,会产生GOOSE配置错误报警,从而防止一方改变配置信息后,两边配置不一致而产生的错误。

需要重新配置Nds Com:Nds Com是个bool量,当数据集的数据量超过服务规定最大值时,为true,表示GOOSE控制块要重新配置。一般正常情况是false。

GOOSE数据:GOOSE报文一般用来传送开关位置和跳闸命令等,所以常用的数据类型是bool,Bstring2,分别对应单点和双点的数据。这一点不同的装置都是一样的,无论是保护装置,测控装置或者智能操作箱。GOOSE数据对应的具体含义取决于装置cid模型文件,这个是灵活的。

在cid模型文件中一般取某个数据对象的数据属性(DA)作为GOOSE数据集的数据,通过GOOSE传输。数据对象(DO)的类型一般是保护激活信息(ACT),单点状态信息(SPS),双点状态信息(DPS)。以母线保护装置为例子,GOOSE数据集Ref中一个数据的引用名为:

Ref= ABC_PROT/PTRC1$ST$Op$general

ABC_PROT为母线保护逻辑设备名,PTRC1为跳闸逻辑节点,ST为功能约束,表示状态信息。Op为保护激活信息(ACT)类型的数据对象(DO),general是ACT类数据的一个数据属性(DA),类型为bool,表示保护跳闸是三相或的关系。这样代表跳闸命令的数据就可以加入到GOOSE数据集,从而通过GOOSE报文传输。

以智能操作箱为例子,GOOSE数据集中一个数据的引用名为:
ABC/GGIO1$ST$Ind1$stVal

ABC为智能操作箱逻辑设备名,GGIO1为通用IO逻辑节点,ST为功能约束,表示状态信息。Ind1为单点状态信息(SPS)类型的数据对象(DO),表示状态输入。stVal是SPS数据类的数据属性(DA),类型为bool,表示数据的状态值。这样就可以通过GOOSE报文传输一个bool类型的开入量。

报文样例说明:

下面的报文是220kv线路保护保护装置单相跳闸的goose报文是通过光电转换装置,用抓包工具抓取的数据包,16进制格式。此报文需要人工进行解析。

报文的原始内容为:“83 01 00 00 10 c6 57 5f c8 81 00 80 01 88 b8 01 25 00 8e 00 00 00 00 61 81 83 80 18 50 43 53 39 33 31 50 52 4f 54 2f 4c 4c 4e 30 24 47 4f 24 67 6f 63 62 30 81 02 27 10 82 18 50 43 53 39 33 31 50 52 4f 54 2f 4c 4c 4e 30 24 64 73 47 4f 4f 53 45 30 83 0a 50 43 53 39 33 31 50 52 4f 54 84 08 49 1e d1 d4 1c 40 00 0a 85 01 02 86 01 01 87 01 00 88 01 01 89 01 00 8a 01 0b ab 21 83 01 01 83 01 00 83 01 00 83 01 00 83 01 00 83 01 00 83 01 00 83 01 00 83 01 00 83 01 00 01 0c cd 01 00 25”

下面对其做详细分析:(虚线后面是注释说明)

01 0c cd 01 00 25----目的mac地址
00 10 c6 57 5f c8----源mac地址
81 00 80 01----优先级标记,优先级=4 VID=1
88 b8-----GOOSE报文以太网类型
01 25----APPID
00 8e----报文长度0x8e
00 00 00 00----保留字节
61 81 83----APDU 标记0x61 长度0x83
80 18---- GOOSE控制块引用名 “PCS931PROT/LLN0 G O GO GOgocb0”
50 43 53 39 33 31 50 52 4f 54
2f 4c 4c 4e 30 24 47 4f 24 67 6f 63 62 30
81 02 27 10----存活时间 10000ms
82 18 ----数据集引用名 “PCS931PROT/LLN0$dsGOOSE0”
50 43 53 39 33 31 50 52 4f 54
2f 4c 4c 4e 30 24 64 73 47 4f 4f 53 45 30
83 0a ----GOOSE控制块 id “PCS931PROT”
50 43 53 39 33 31 50 52 4f 54
84 08 49 1e d1 d4 1c 40 00 0a----事件时标 2008年 11月 15日 13时 42分 44
秒 110ms
85 01 02----stnum 0x02
86 01 01----sqnum 0x01
87 01 00----测试标识 false
88 01 01----配置版本号0x01
83 0a ----GOOSE控制块 id “PCS931PROT”
50 43 53 39 33 31 50 52 4f 54
84 08 49 1e d1 d4 1c 40 00 0a----事件时标 2008年 11月 15日 13时 42分 44
秒 110ms
85 01 02----stnum 0x02
86 01 01----sqnum 0x01
87 01 00----测试标识 false
88 01 01----配置版本号0x01

  • 29
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
模拟发送goose报文是指通过软件或者工具模拟生成和发送goose(Generic Object Oriented Substation Event)报文。goose报文是用于电力系统间通信的一种标准报文格式。下面是一个简单的方案,用于模拟发送goose报文。 首先,需要选取一款可靠的模拟工具或者软件,例如OMICRON Test Universe或者Doble Protection Suite。这些工具可以帮助我们模拟生成和发送goose报文。 接下来,我们需要准备一个goose报文的模板。goose报文包括头部和数据部分,其中包含了源MAC地址、目的MAC地址、APPID(Application Identifier)、由数据组成的Payload等信息。 然后,我们可以使用模拟工具中的函数或者命令来生成和发送goose报文。根据模板,填入需要的信息,并指定报文的发送方式和目的地。可以根据需要设置发送的频率或者循环发送。 在模拟发送goose报文之前,还需要确保网络连接正常,目标设备可达,以及相关的网络配置正确。可以使用网络诊断工具对网络进行检测,确保没有任何阻碍或者故障。 最后,启动模拟工具,开始模拟发送goose报文。可以在监控台或者日志文件中查看发送结果,确认报文是否发送成功。 需要注意的是,模拟发送goose报文涉及到电力系统通信的模拟,因此需要在相应的测试环境或者网络中完成。并且,操作前应该对目标设备和网络有一定的了解,以避免对正常运行产生影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值