采用数据集以“发布/订阅”方式进行公共数据交换的GOOSE在智能变电站过程总路线上被用于跳合闸命令及状态信息的快速传递,它工作于以太网链路层,直接服务于应用层保护和测控等装置。
GOOSE以高实时性和宽范围的传播特性使其成为智能变电站过程层调用和应用的重要基础,是故障定位的依据,是保障智能变电站可靠运行的重要技术手段。
图1 GOOSE 通信协议栈
GOOSE模型的报文传输映射实现比较特殊:如图1所示。GOOSE报文经应用协议规范PDU(Protocol Data Unit)标示,经过表示层编码后,不经TCP/IP协议(即会话层、传输层和网络层均为空),直接映射到以太网链路层的ISO/IEC8802-3帧结构,采用ASN.1/BER编码。这种映射方式的目的是为了避免通信堆栈造成传输延迟,从而保证报文传输、处理的快速性。
图2 GOOSE信息传输模型
以图2说明GOOSE的用途。
发布者(如主变保护装置)的GOOSE控制块GoCB定时根据虚端子映射表更新与IECGoosePdu变量列表成员相对应的数据集,依据GOOSE的应用协议描述,经ASN.1 BER编码后将数据以FIFO方式压入发送缓冲区,由网络适配器通过以太网交换机采取多播或单播的方式发送给订阅者(如主变主一次智能操作箱)。特定事件发生后,立即启动上述流程,并以先密后疏(2ms至10s)的形式,快速重传以提高可行性。
订阅者根据新数据通知读取接收缓冲区中的GOOSE数据,经MAC过滤、ASN.1 BER解码、GOOSE报文状态号(StNum)和顺序号(SqNum)的效验等解析出合法的应用数据。实现正确解析的一个重要前提是订阅者必须获得发布者的ICD自描述文件,以获得多播MAC地址、APPID、数据集成员顺序等重要参数,这些参数可抽取并归纳到发布者的GOOSE配置文件中。
根据IEC协议,GOOSE的应用协议描述文件采用ASN.1语法规则,本文摘取与GOOSE报文相关的模块定义。
IEC61850 DEFINITIONS ::=BEGIN
IMPORTS Data FROM ISO-IEC-9506-2
IEC 61850-8-1 Specific Protocol::=CHOICE {
gseMngPdu [APPLICATION 0] IMPLICIT GSEMngtPdu,
goosePdu [APPLICATION 1] IMPLICIT IECGoosePdu,
……
}
IECGoosePdu::=SEQUENCE {
gocbRef [0] IMPLICIT VISIBLE-STRING,
timeAllowedtoLive [1] IMPLICIT INTEGER,
datSet [2] IMPLICIT VISIBLE-STRING,
goID [3] IMPLICIT VISIBLE-STRING OPTIONAL,
t [4] IMPLICIT UtcTime,
stNum [5] IMPLICIT INTEGER,
sqNum [6] IMPLICIT INTEGER,
test [7] IMPLICIT BOOLEAN DEFAULT FALSE,
confRev [8] IMPLICIT INTEGER,
ndsCom [9] IMPLICIT BOOLEAN DEFAULT FALSE,
numDatSetEntries [10] IMPLICIT INTEGER,
allData [11] IMPLICIT SEQUENCE OF Data,
security [12] ANY OPTIONAL,
}
用成员和意义来描述上述定义的话,可以列成下表:
说 明 |
报文内容 |
|
gocbRef字符串 |
类型=80H |
|
长度≤65 |
||
gocbRef字符串 |
||
有效时间t,INT32U,单位:毫秒 |
类型=81H |
|
长度≤4 |
||
t |
||
DatSet名字符串 |
类型=82H |
|
长度≤65 |
||
DatSet名字符串 |
||
goID字符串 |
类型=83H |
|
长度≤65 |
||
goID字符串 |
||
StNum加1时的时间,精确到毫秒 |
类型=84H |
|
长度=8 |
||
t |
||
变化序号,INT32U,每次报文中的数据有变位时,此值加1,初始值=1,值0保留 |
类型=85H |
|
长度≤4 |
||
StNum |
||
报文(递增)顺序号,INT32U,初始值=1,值0保留,StNum变化时此值复归到1。 |
类型=86H |
|
长度≤4 |
||
SqNum |
||
测试标志test,BOOLEAN |
类型=87H |
|
长度=1 |
||
Test |
||
配置版本号(配置次数),INT32U |
类型=88H |
|
长度≤4 |
||
confRev |
||
未配置好标志,BOOLEAN |
类型=89H |
|
长度=1 |
||
ndsCom |
||
Goose数据总个数,INT32U |
类型=8aH |
|
长度≤4 |
||
总个数 |
||
GOOSE数据的报头 |
类型=abH |
|
长度 |
||
GOOSE数据1 |
C1/KZGGIO1.DPCSO.stVal |
类型=83H |
长度=1 |
||
stVal |
||
C1/KZGGIO1.DPCSO.q |
类型=84H |
|
长度=3 |
||
03H |
||
q(2字节) |
||
C1/KZGGIO1.DPCSO.t |
类型=91H |
|
长度=8 |
||
t |
||
GOOSE数据2 |
C1/KZGGIO2.DPCSO.stVal |
类型=83H |
长度=1 |
||
stVal |
||
C1/KZGGIO2.DPCSO.q |
类型=84H |
|
长度=3 |
||
03H |
||
q(2字节) |
||
C1/KZGGIO2.DPCSO.t |
类型=91H |
|
长度=8 |
||
t |
||
。。。。。 |
。。。。。 |
GOOSE的工程配置文件是从发布者的ICD自描述文件抽取出来的,主要用于描述以太网链路层基本参数:MAC地址、VLAN号、优先级、AppID应用标识、报文传送的时间要求等,以及allData数据集序列的具体成员。
图3 GOOSE的工程配置文件
如图3中数据集序列的第一个成员指向主变智能操作箱(LD:PT6601API_BCU)的断路器控制逻辑节点(LN:CK_GOIN CSWI1)的主变主一次断路器分闸位置控制继电器(B04.highout.Obj1.OUT_
RELAY_F)。$ST$OpOpn$general用于属性描述,含义为:状态量、分闸操作、通用。
基于GOOSE的工程配置文件再来理解报文会更容易,下面解析一个GOOSE报文实例。
Tag GOOSE应用层 以太网报文 解析结果及注释
编号 描述成员列表
::= IECGoosePdu::= 61 81 Value Value内嵌全部GOOSE
SEQUENCE{……} 成员的TLV编码
[0] gocbRef 80 1B 50 54 36 36 30 GOOSE控制块路径:PT
31 41 50 49 5F 42 43 6601 API_BCU/LN0$GO
55 2F 4C 4C 4E 30 24 $gocb0,<65 Octet的
47 4F 24 67 6F 63 62 30 ASCII码
[1] timeAllowedtoLive 81 02 27 10 生存时间=1000ms
[2] datSet 82 1B 50 54 36 36 30 数据集全名路径:PT
31 41 50 49 5F 42 43 6601 API_BCU/LLN0$ds
55 2F 4C 4C 4E 30 24 GOOSE1,<65 Octet的
64 73 47 4F 4F 53 45 31 ASCII码
[3] goID 83 18 50 54 36 36 30 GOOSE控制块标识:PT
31 41 50 49 5F 42 43 6601 API_BCU/LLN0.go
55 2F 4C 4C 4E 30 2E cb0,1个以太网APPID
67 6F 63 62 30 中可有多个goID
[4] t 84 08 4D 37 C0 CA 0F 事件发生时刻:2013-
9D A5 0A 01-01 00:00.00.000000
[5] stNum 85 01 01 事件序号:1
[6] sqNum 86 02 05 18 发送序号:1304
[7] test 87 01 00 测试状态:FALSE
[8] confRev 88 01 01 配置版本变更:1
[9] ndsCom 89 01 00 需要配置:FALSE
[10] numDatSetEntries 8A 01 27 数据集成员数目:39
[11] allData AB 75 83 01 00 83 01 00 数据集中所有成员的
83 01 00 83 01 00 83 01 实时状态。属于TLV
00 83 01 00 83 01 00 83 结构嵌套。根据图3,
01 00 83 01 00 83 01 00 前16个出口继电器
83 01 00 83 01 00 83 01 不动作,17至36遥
00 83 01 00 83 01 00 83 控软压板全部投入,
01 00 83 01 01 83 01 01 37至39主变有载调
83 01 01 83 01 01 83 01 压分接头位置升、降、
01 83 01 01 83 01 01 83 急停出口继电器不
……………………………………. 动作
—————————————————————————————
发送部分
场景 |
参数来源 |
实时数据 |
用途 |
IED设备上电 |
ICD文件 |
/ |
描述IED设备 |
工作中通知 |
ICD文件 |
跳闸/闭锁信号 |
通知其他IED |
实时告警 |
ICD文件+设置 |
异常信息 |
描述故障原因 |
IED(Intelligent Electronic Device)智能电子设备,智能电网中包括:合并单元,继电保护,测控装置,故障录波和数字化电能表。
接收部分
IED设备先解析和配置发送方的ICD参数,再接收GOOSE报文,过滤解析后对照配置参数获取通知或告警信息,逻辑过程如下。