锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

GSE/GOOSE简介与报文格式

时间:2023-05-29 22:07:00 对射型光电传感器gse6

简介

GSE主要出现在IEC61850-7-2和IEC前者定义了61850-8中ACSI(抽象通信服务接口),后者实现SCSM(具体通信服务映射)GSE的映射。

在分布式变电站自动化系统中,IED越来越多的应用动化功能的应用越来越多,如间隔设备之间的防误、分布式母线保护等。完成这些功能的重要前提是IED数据通信的可靠性和实时性。基于此,IEC61850中定义了通用变电站事件(Generic Substation Event,GSE)该模型提供了在整个系统范围内快速可靠地输入和输出数据值的功能。

GSE分为两种不同的控制类和报文结构:①面向通用对象的变电站事件(Generic Object Oriented Substation Event,GOOSE),由数据集支持(Data-Set)组织公共数据交换:②通用变电站状态事件(Generic Substation State Event,GSSE),用于传输状态变位信息(双比特)。(Control Block)对比属性和服务定义,GOOSE和GSSE差别不大,但其实两者的报文传输内容和实现机制完全不同。

GOOSE该通信结构支持多个通信节点之间的平等直接通信。与点对点通信结构和客户/服务器通信结构相比,出版商/订阅者通信结构是一个或多个数据源(即出版商)向多个接收者(即订阅者)发送数据的最佳解决方案,特别适用于数据流量大、实时性要求高的数据通信。出版商/订阅者的通信结构符合要求GOOSE报纸传输的本质是由事件驱动的。

功能

GSSE其实是UCA2.0中定义的GOOSE,但不支持报文优先级、虚拟局域网、无特定多播地址等。这使得当网络负载较重时,很难保证报文传输的实时性。GSSE目前使用较少。

从协议分析的角度来看,已知的报纸格式包括Header,DNA和User Bits三部分,DNA也可以找到源文档的格式GOMSFE .9, January 14, 1999年很难获得,其次,在网上找不到GSSE的PCAP目前不支持包GSSE的解析。

GSE涉及两类,10种服务。GOOSE控制块类和GSSE控制块类,每个类下有5种服务。只有这10种服务SendGSSEMessage没有明确的定义,其他的都支持分析。

GoCB类

属性名 属性类型 FC TrgOp 值/值域/解释
GoCBName ObjectName GO - GoCB实例名
GoCBRef ObjectReference GO - GoCB实例路径名
GoEna BOOLEAN GO dchg 使能 (TRUE) |停止使能 (FALSE)
AppID VISIBLE STRING65 GO 发送给用户 GOOSE唯一系统的唯一标志是缺省GoCRef
DatSet ObjectReference GO dchg 数据集,成员从1开始编号,每个成员都有唯一的数字和MemberReference或功能约束DataAttribute
ConfRev INT32U GO dchg 表示由DatSet引用的DATA-SET计数值配置变化次数
NdsCom BOOLEAN GO dchg

服务

服务 描述
SendGOOSEMessage 发送GOOSE报文.
GetGoReference 检索和GOOSE报文有关的DATA-SET特定成员的FCD/FCDA
GetGOOSEElementNumber 检索和FCD/FCDA的GOOSE报文有关的DATA-SET成员的位置
GetGoCBValues 检索GoCB的属性
SetGoCBValues GoCB的属性

GsCB类

属性名 属性类型 FC 值/值域/解释
GsCBName ObjectName GsCB实例名
GsCBRef ObjectReference GsCB实例路径名
GsEna BOOLEAN GS 使能(TRUE) | 停止使能(FALSE)
AppID VISIBLE STRING65 GS GsCB所位于的 LOGICAL-DEVICE
DataLabel [1…n] VISIBLE STRING65 GS LastSentData属性中每个条目使用的引用
LSentData [1…n] GSSEData GS 取自GSSE报文代表最近一次GSSE报文发送的数据值

服务

服务 描述
SendGSSEMessage 发送GSSE报文.
GetGsReference 检索和GSSE报文有关的特定值的DataLabel.
GetGSEEDataOffset 检索和DataLabelGSSE报文有关的特定值的位置.
GetGsCBValues 检索GsCB的属性.
SetGsCBValues GsCB的属性.

GSE的asn格式描述如下,但其不包含GSSE,来源是IEC61859-8-1,但是原始的代码格式已经不支持现在版本的ASN1编译器,以下代码是参考原始代码和wireshar代码修改过的版本。

IEC61850 DEFINITIONS ::= BEGIN

IEC61850SpecificProtocol ::= CHOICE {
	gseMngtPdu [APPLICATION 0] IMPLICIT GSEMngtPdu,
	goosePdu [APPLICATION 1] IMPLICIT IECGoosePdu
}

GSEMngtPdu ::= SEQUENCE  {
	stateID  	[0] IMPLICIT INTEGER,
	security 	[3] ANY OPTIONAL,
	requestResp	RequestResponse
}

RequestResponse ::= CHOICE{
		requests			[1] EXPLICIT GSEMngtRequests,
		responses			[2] EXPLICIT GSEMngtResponses
}

GSEMngtRequests ::= CHOICE {
	getGoReference   	        [1] IMPLICIT GetReferenceRequestPdu,
	getGOOSEElementNumber 	    [2] IMPLICIT GetElementRequestPdu,
	getGsReference	            [3] IMPLICIT GetReferenceRequestPdu,
	getGSSEDataOffset	        [4] IMPLICIT GetElementRequestPdu,
	...
}


GSEMngtResponses ::= CHOICE {
	gseMngtNotSupported		[0] IMPLICIT NULL,
	getGoReference     	    [1] IMPLICIT GSEMngtResponsePdu,
	getGOOSEElementNumber   [2] IMPLICIT GSEMngtResponsePdu,
	getGsReference			[3] IMPLICIT GSEMngtResponsePdu,
	getGSSEDataOffset		[4] IMPLICIT GSEMngtResponsePdu,
	...
}


GetReferenceRequestPdu ::= SEQUENCE {
	ident	  		[0] IMPLICIT VisibleString,   
	-- 可支持多达 65个八位组
	offset			[1] IMPLICIT SEQUENCE OF INTEGER,
	...
}


GetElementRequestPdu ::= SEQUENCE {
	ident   	[0] IMPLICIT VisibleString,   
	--可支持多达 65个八位组
	references 	[1] IMPLICIT SEQUENCE OF VisibleString,
	...
}

GSEMngtResponsePdu ::= SEQUENCE {
	ident		[0] IMPLICIT VisibleString,
	-- 返回请求的值
	confRev	    [1] IMPLICIT INTEGER OPTIONAL,
	posNeg		PositiveNegative,
	...
}


PositiveNegative ::= CHOICE{
		responsePositive  [2] IMPLICIT SEQUENCE {
			datSet         [0] IMPLICIT VisibleString OPTIONAL,
			result  	[1] IMPLICIT SEQUENCE OF RequestResults
			},
		responseNegative [3] IMPLICIT GlbErrors
}

RequestResults::= CHOICE {
	offset		[0] IMPLICIT INTEGER,
	reference	[1] IMPLICIT IA5String,
	error		[2] IMPLICIT ErrorReason
}


GlbErrors ::= INTEGER {
	other(0),
	unknownControlBlock(1),
	responseTooLarge(2),
	controlBlockConfigurationError (3)
}


ErrorReason ::= INTEGER {
	other (0),
	notFound (1)
}



IECGoosePdu ::= SEQUENCE {
	gocbRef 			[0] IMPLICIT VisibleString,
	timeAllowedtoLive 	[1] IMPLICIT INTEGER,
	datSet 				[2] IMPLICIT VisibleString,
	goID 				[3] IMPLICIT VisibleString OPTIONAL,
	t 					[4]	IMPLICIT UtcTime,
	stNum 				[5] IMPLICIT INTEGER,
	sqNum 				[6] IMPLICIT INTEGER,
	simulation 			[7] IMPLICIT BOOLEAN DEFAULT FALSE,
	confRev 			[8] IMPLICIT INTEGER,
	ndsCom 				[9] IMPLICIT BOOLEAN DEFAULT FALSE,
	numDatSetEntries 	[10] IMPLICIT INTEGER,
	allData 			[11] IMPLICIT SEQUENCE OF GooseData
}

GooseData ::= CHOICE
	{
	-- context tag 0 is reserved for AccessResult
	array			[1] IMPLICIT DataSequence,
	structure		[2] IMPLICIT DataSequence,
	boolean			[3] IMPLICIT BOOLEAN,
	bitstring		[4] IMPLICIT BIT STRING,
	integer			[5] IMPLICIT INTEGER,
	unsigned		[6] IMPLICIT INTEGER, -- shall not be negative
	floatingpoint		[7] IMPLICIT FloatingPoint,
	--			[8] is reserved
	octetstring		[9] IMPLICIT OCTET STRING,
	visiblestring		[10] IMPLICIT VisibleString,
	generalizedtime	[11] IMPLICIT GeneralizedTime,
	binarytime		[12] IMPLICIT TimeOfDay,
	bcd			[13] IMPLICIT INTEGER,
	booleanArray		[14] IMPLICIT BIT STRING,
	--objId			[15] IMPLICIT OBJECT IDENTIFIER
	mMSString		[16] IMPLICIT MMSString, -- unicode string
	utctime		[17] IMPLICIT UtcTime   --UTC Time
	}

DataSequence ::= SEQUENCE OF GooseData

FloatingPoint ::= OCTET STRING

UtcTime ::= OCTET STRING 	-- 格式和大小规定在8.1.3.6.

MMSString ::= UTF8String

TimeOfDay ::= OCTET STRING -- (SIZE (4 | 6))

END


表B1-建议的分组广播地址例子

建议的地址范围
服务 起始地址 (十六进制) 结束地址 (十六进制)
GOOSE 01-0C-CD-01-00-00 01-0C-CD-01-01-FF
GSSE 01-0C-CD-02-00-00 01-0C-CD-02-01-FF
分组广播采样值 01-0C-CD-04-00-00 01-0C-CD-04-01-FF

表C2-以太网类型值分配

使用 以太网类型值 (十六进制) APPID类型
IEC 61850-8-1 GOOSE 88-B8 0 0
IEC 61850-8-1 GSE 管理 88-B9 0 0
IEC 61850-9-2 采样值 88-BA 0 1

gseMngtPdu报文结构

参见 gseMngtPdu.gmind 文件

GOOSE报文结构

GOOSE和SV报文都是基于ISO/IEC 8802-3框架进行通讯,其基本帧结构如下

字节 总体结构 字段 8 7 6 5 4 3 2 1 说明
1 报文头 7字节前导码
2
3
4
5
6
7
8 帧起始 1字节
9 MAC报头 目的地址 6字节目的地址
10 前四字节固定
11 010CCD01
12
13
14
15 源地址 6字节源地址
16
17
18
19
20
21 优先级标记 TPID 2字节
22 (可选) 0x8100
23 TCI 优先级 CFI VID 优先级4,VID0
24
25 以太网类型 2字节
26 0x88B8
27 以太网方式PDU APPID 应用标识,全站唯一
28 GOOSE的预留值范围是0x000到0x3fff
29 长度 GSE同上
30
31 保留1
32
33 保留2
34
35 APDU
·
·
·
·
必要的填充字节
帧校验序列

GOOSE的APDU报文格式见下表

字段 描述 说明
APDU T-L 标记61H,长度 此长度占用可能为1,2,3…字节,由ASN.1格式而定
GoCBRef 标记80H,长度≤65 由分层模型中的逻辑设备名、逻辑节点名、功能约束和控制块名级联而成
timeAllowedtoLive 标记81H,长度,t 该参数值一般为心跳时间T0值的2倍,如果接收端超过2T0时间内没有收到报文则判断报文丢失,
在4T0时间内没有收到下一帧报文即判断为GOOSE通信中断,判出中断后装置会发出GOOSE断链报警。
DatSet 标记82H,长度≤65,Datset字符串 即GOOSE控制块所对应的GOOSE数据集引用名,由逻辑设备名、逻辑节点名和数据集名级联而成。报文中Data部分传输的就是该数据集的成员值。
GoID 标记83H,长度≤65 该参数是每个GOOSE报文的唯一性标识,该参数的作用和目的地址、APPID的作用类似。接收方通过对目的地址、APPID和goID等参数进行检查,判断是否是其所订阅的报文。
t 标记84H,长度=8,t 即Event TimeStamp,事件时标,其值为GOOSE数据发生变位的时间,即状态号stNum加1的UTC时间
StNum 标记85H,长度≤5,StNum值 即StateNumber,状态序号,用于记录GOOSE数据发生变位的总次数
SqNum 标记86H,长度≤5,SqNum值 即SequenceNumber,顺序号SqNum,用于记录稳态情况下报文重复发出的帧数,装置每发出一帧GOOSE报文,SqNum应加1;当有GOOSE数据变化时,该值归0,从头开始重新计数。
simulation 标记87H,长度=1,test值 **布尔型变量,**检修标识,用于表示发出该GOOSE报文的装置是否处于检修状态。当检修压板投入时,test标识应为True。
confRev 标记88H,长度≤5 配置版本号,Config Revision是一个计数器,代表GOOSE数据集配置被改变的次数。当对GOOSE数据集成员进行重新排序、删除等操作时,GOOSE数据集配置被改变。配置每改变一次,版本号应加1。
ndsCom 标记89H,长度=1,Needs commissioning 该参数是一个布尔型变量,用于指示GOOSE是否需要进一步配置。
numDatSetEntries 标记8aH,长度≤5,总个数 即数据集条目数,(alldata中数据链的个数)
allData T-L 标记abH,长度 该部分是GOOSE报文所传输的数据当前值。Data部分各个条目的含义、先后次序和所属的数据类型都是由配置文件中的GOOSE数据集定义的。
allData 具体数据 具体格式参见上一节GooseData ::= CHOICE,可以为布尔值,比特串,整型,浮点型,位串,字符串,时间等任意一种或其组合

allData中的数据由DatSet数据集定义,在不同系统中是不一样的,可以有SCL文件配置。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章