GOOSE入门

GOOSE报文功能与实现

一.  简介

采用数据集以“发布/订阅”方式进行公共数据交换的GOOSE在智能变电站过程总路线上被用于跳合闸命令及状态信息的快速传递,它工作于以太网链路层,直接服务于应用层保护和测控等装置。

GOOSE以高实时性和宽范围的传播特性使其成为智能变电站过程层调用和应用的重要基础,是故障定位的依据,是保障智能变电站可靠运行的重要技术手段。

二.原理

GOOSE入门_第1张图片

1  GOOSE 通信协议栈

GOOSE模型的报文传输映射实现比较特殊:如图1所示。GOOSE报文经应用协议规范PDU(Protocol Data Unit)标示,经过表示层编码后,不经TCP/IP协议(即会话层、传输层和网络层均为空),直接映射到以太网链路层的ISO/IEC8802-3帧结构,采用ASN.1/BER编码。这种映射方式的目的是为了避免通信堆栈造成传输延迟,从而保证报文传输、处理的快速性。

GOOSE入门_第2张图片

2 GOOSE信息传输模型

以图2说明GOOSE的用途。

发布者(如主变保护装置)的GOOSE控制块GoCB定时根据虚端子映射表更新与IECGoosePdu变量列表成员相对应的数据集,依据GOOSE的应用协议描述,经ASN.1 BER编码后将数据以FIFO方式压入发送缓冲区,由网络适配器通过以太网交换机采取多播或单播的方式发送给订阅者(如主变主一次智能操作箱)。特定事件发生后,立即启动上述流程,并以先密后疏(2ms10s)的形式,快速重传以提高可行性。

订阅者根据新数据通知读取接收缓冲区中的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字符串

有效时间tINT32U,单位:毫秒

类型=81H

长度≤4

t

DatSet名字符串

类型=82H

长度≤65

DatSet名字符串

goID字符串

类型=83H

长度≤65

goID字符串

StNum1时的时间,精确到毫秒

类型=84H

长度=8

t

变化序号,INT32U,每次报文中的数据有变位时,此值加1,初始值=1,值0保留

类型=85H

长度≤4

StNum

报文(递增)顺序号,INT32U,初始值=1,值0保留,StNum变化时此值复归到1

类型=86H

长度≤4

SqNum

测试标志testBOOLEAN

类型=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

q2字节)

C1/KZGGIO1.DPCSO.t

类型=91H

长度=8

t

GOOSE数据2

C1/KZGGIO2.DPCSO.stVal

类型=83H

长度=1

stVal

C1/KZGGIO2.DPCSO.q

类型=84H

长度=3

03H

q2字节)

C1/KZGGIO2.DPCSO.t

类型=91H

长度=8

t

。。。。。

。。。。。

 

四.实例

GOOSE的工程配置文件是从发布者的ICD自描述文件抽取出来的,主要用于描述以太网链路层基本参数:MAC地址、VLAN号、优先级、AppID应用标识、报文传送的时间要求等,以及allData数据集序列的具体成员。

GOOSE入门_第3张图片

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   不动作,1736

                   00 83 01 00 83 01 00 83   控软压板全部投入,

                   01 00 83 01 01 83 01 01  3739主变有载调

                   83 01 01 83 01 01 83 01   压分接头位置升、降、

                   01 83 01 01 83 01 01 83   急停出口继电器不

…………………………………….   动作

—————————————————————————————

五.实现

发送部分

场景

参数来源

实时数据

用途

IED设备上电

ICD文件

/

描述IED设备

工作中通知

ICD文件

跳闸/闭锁信号

通知其他IED

实时告警

ICD文件+设置

异常信息

描述故障原因

IEDIntelligent Electronic Device)智能电子设备,智能电网中包括:合并单元,继电保护,测控装置,故障录波和数字化电能表。

接收部分

IED设备先解析和配置发送方的ICD参数,再接收GOOSE报文,过滤解析后对照配置参数获取通知或告警信息,逻辑过程如下。

GOOSE入门_第4张图片

你可能感兴趣的:(IEC61850,GOOSE,数字化变电)