GOOSE的GOCB定义的5种服务中,Send GOOSE Message指GOOSE报文传输,其他4种服务体现了GOOSE模型中发布者/订阅者通信结构的灵活性,即订阅者能够主动询问,发布者会对此询问做出对应响应。例如,利用服务Set GOCB Values能够改变GoCB中GoEna和AppID等属性,从而改变GOOSE报文传输特性。需要注意的是在实现此服务之前,应保证GoEna为FALSE,即发布者停止发送GOOSE报文。
映射提供在APDU(应用协议数据单元)被递交到传输缓冲区时,在此以前由若干个ASDU(应用服务数据单元)连接成一个APDU。被连接为一个APDU的ASDU的数目是可以配置的并与采样速率有关。
IMPORTS构件指出此模块引用了ISO2IEC2950622 (MMS)中定义的Data参数,这从IECGoosePdu定义的元素all Data中也能得到印证。Data是MMS中一个重要的参数,它同样采用ASN.1进行定义。
Data := CHOICE{
IF(str1)
Array [1]IMPLICIT SEQUENCE OF Data,
ELSE
..........
ENDIF
Boolean [3]IMPLICIT BOOLEAN,
bit2string [4]IMPLICIT BIT STRING,
integer [5]IMPLICIT INTEGER,
...............
mMSString [16] IMPLICITMMSString
}
GOOSE报文需要支持的数据类型很少归纳如下:
#define TAG_BOOL 0x83
#define TAG_BIT_STRING 0x84
#define TAG_INT32 0x85
CFI固定选择0。VLAN标识VID可以选择0。报文优先级可以按下表选择,4代表最高。
CFI:以太网交换机中,规范格式指示器总被设置为0。由于兼容特性,CFI常用于以太网类网络和令牌环类网络之间,如果在以太网端口接收的帧具有CFI,那么设置为1,表示该帧不进行转发,这是因为以太网端口是一个无标签端口。
表3.1 Default Virtual LAN IDs and Priorities
Service | Default VID | Default Priority |
GOOSE | 0 | 4 |
GSE | 0 | 1 |
Sampled Values | 0 | 4 |
优先级2和3都未使用,我们可以按应用数据对实时性要求的不同进行分类,建议如下:
4-跳闸、闭锁命令。
4-断路器和刀闸位置信号。
3-非电量保护信号。
2-GIS、PAS组合电器状态信号等。
表3.1 Assigned Ethertype Values
Use | Ethertype Value (hexadecimal) | APPID Type |
IEC 61850-8-1 GOOSE | 88-B8 | 0 0 |
IEC 61850-8-1 GSE Management | 88-B9 | 0 0 |
IEC 61850-9-2 Sampled Values | 88-BA | 0 1 |
表3.3 PDU格式说明:
数据 | 说明 |
PDU长度 |
|
GOOSE控制块路径 | 从LD开始的全名路径 |
生存时间 | 以毫秒为单位的整型数,为接收端判断网络提供时间判据,当生存时间内收不到报文时,将确定为网络故障 |
数据集路径 | 从LD开始的全名路径 |
应用标识 | Gocb控制块中的appID,又叫goID,是字符串。注意不同于前面的appID。 |
事件发生时刻 | utctime格式,基于IEEE1588对时。 |
事件序号stNum | 每次新事件发生,stNum需要加一。上电初始化或累加到最大值时,stNum=1。 |
发送序号sqNum | 每次新事件发生时sqNum=0, 只有心跳报文会使sqNum不断增加。gocb发送后,其记数器加1。上电初始化,sqNum=0;累加到最大值时,sqNum=1。 |
测试模式 | TRUE 表示为测试状态。装置应用时,采集试验把手的位置,对该变量赋值。 |
配置版本号 | 与存储不一致时,需要告警。GOOSE配置工具将关联装置的配置版本号下载给装PRS7000新平台置。 |
需要配置 | 固定为FALSE |
信息点数据 | 数据集中所有成员的实时数据值 |
IEC61850 DEFINITIONS : :=BEGIN
IMPORTS Data FROM ISO-IEC-9506-2
IEC 61850-8-1 Specific Protocol::=CHOICE{
gseMngtPdu [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,
nsCom [9] IMPLICIT BOOLEAN DEFAULT FALSE,
numDatSetEntries [10] IMPLICIT INTEGER,
al1Data [11] IMPLICIT SEQUENCE OF NamedVariableList1
security [12] ANY OPTIONAL
}
NamedVariableList1::=SEQUENCE{
qOXCBR1$Pos$stVal [0] IMPLICIT INTEGER,
qOXCBR1$Pos$validity [1] IMPLICIT BIT-STRING
……. }
UtcTime::=OCTETSTRING
END