一种iec61850goose报文的组织方法

文档序号:7982167阅读:825来源:国知局
专利名称:一种iec 61850 goose报文的组织方法
技术领域
本发明涉及一种IEC 61850 GOOSE报文的组织方法,属于电力系统自动化领域。
背景技术
智能变电站是智能电网的重要一环。在传统变电站中,模拟量采集、开入信号、跳闸和联闭锁信号等都是通过大量的硬接线实现的。在智能变电站中,过程层电子式互感器采集的信号经合并单元汇总后,通过光纤发布到以太网上,智能开关也将自己采集的开关状态量发布到以太网上,保护测控装置采用组播订阅的方式获取所需的信息,并且通过网络将保护出口信号、开关分合闸信号、间隔层装置之间的联闭锁信号等发布到以太网上。IEC 61850详细定义了通用面向对象的变电站事件(GOOSE)报文以及相应的服务模型,这类报文在进行协议栈映射时均只包含物理层、数据链路层、表示层和应用层,去掉网络层、传输层、会话层是为了提高传输效率。GOOSE报文包括控制信息以及数据集成员数据,用于实现跳合闸、联闭锁等实时性要求很高的场合,其传输延时要求小于3毫秒。GOOSE数据集有可能定义得较大,包含较多的数据成员。在每个GOOSE报文中发送全部的数据集成员,由订阅方根据其INPUT语句进行有选择的解码接收。现有方法每次发送GOOSE报文时都对所有控制信息以及所有数据集成员进行完整的ASN. 1编码,因为ASN. 1编码是比较耗时的操作,所以直接导致了 GOOSE发送延时增加很多。尤其在数据集成员较多的情况下,延时更加明显。

发明内容
本发明所要解决的技术问题是,提出一种IEC 61850 GOOSE报文的组织方法,当GOOSE 控制块监视的数据集成员发生变化、以及GOOSE报文重发送时,能够高效、实时地对控制信息和数据进行编码,缩短报文的生成时间,提高GOOSE报文传输的实时性。为了解决上述问题,本发明采用了以下技术方案。一种IEC 61850 GOOSE报文的组织方法,其特征是系统初始时为每一个GOOSE发布控制块分配一块足以容纳最大以太网帧长度的编码缓冲区EncBuf,编码后报文起始的指针pEncBuf,编码后报文长度的变量EncBufLen,每个数据集成员以及控制信息在编码缓冲区EncBuf中的位置指针;
系统启动发送GOOSE初始数据时,在编码缓冲区EncBuf中进行全部数据集成员数据以及控制信息的ASN. 1编码,对原始数据类型的数据采用固定长度的ASN. 1编码,同时记录每个数据集成员以及控制信息在编码缓冲区EncBuf中的位置指针,记录编码后报文长度 EncBufLen 和起始指针 pEncBuf ;
当GOOSE控制块监视的数据集成员发生变化时,对变化的数据按照其对应的编码位置指针采用固定长度重新编码,对控制信息中的报文存活时间timeToLive、报文刷新时间 UtcTime、状态号StNum、顺序号sqNum按照其对应的编码位置指针,采用固定长度重新编码;当进行GOOSE报文重发送时,对控制信息中的报文存活时间timeToLive、报文刷新时间 utcTime、顺序号sqNum按照其对应的编码位置指针,采用固定长度重新编码。数据集成员数据以及控制信息的重新编码只针对数据本身部分,不包括该数据对应的类型标签和数据长度。对于无符号整型变量,其固定长度编码的数据长度总是为该数据类型的长度加1, 数据区从低字节到高字节分别是一个字节为0,然后按大端字节序排放该数据类型的数据。对于带符号整型变量,其固定长度编码的数据长度总是为该数据类型的长度,数据区从低字节到高字节按大端字节序排放该数据类型的数据。当处于检修状态时,控制信息test置1,按照其对应的编码位置指针,采用固定长度重新编码。整型变量的ASN. 1编码,通常去掉负数高字节冗余的OxfT,去掉正数高字节冗余的0x0,但正数要保证最高bit不为1,否则要在其前面补充一个字节0x0,其目的是通过最高bit区分正负数。因此,对于整型变量,随着其取值的不同,其ASN. 1编码的数据长度不一定相同,造成同一数据集成员数据、GOOSE报文控制信息在每次编码时位置不一定一样。而固定长度的ASN. 1编码不存在这个问题。对于GOOSE报文中可能出现数据变化的布尔量、 固定长度位串量、UTC时间、单双精度浮点型数据,其数据长度是固定的,不需特殊处理。本发明的积极效果在于由于对原始数据类型的数据采用固定长度的ASN. 1编码,因此可以在数据变化发送、重发送时精确定位需要重新编码的控制信息和数据集成员数据。报文的部分内容虽然发生了变化,但所有控制信息和数据集成员数据的编码位置保持不变,没有变化的数据集成员数据以及控制信息不需要重新编码,大大缩短了 GOOSE报文的组织时间,提高了 GOOSE报文传输的实时性。


图1是GOOSE报文示意图。
具体实施例方式
下面结合附图和具体实施例进一步说明本发明。1、首先实现原始数据类型数据的固定长度ASN. 1编码。整型变量的ASN. 1编码,通常去掉负数高字节冗余的OxfT,去掉正数高字节冗余的0x0,但正数要保证最高bit不为1,否则要在其前面补充一个字节0x0,其目的是通过最高bit区分正负数。因此,对于整型变量,随着其取值的不同,其ASN. 1编码的数据长度不一定相同,造成同一数据集成员数据、
GOOSE报文控制信息在每次编码时位置不一定一样。例如控制信息StNum为无符号 32位整型变量,其有效取值范围为I-Oxffffffff,当StNum为1时,其ASN. 1编码的数据长度为1,数据区为0x01 ;当StNum为Oxff时,其ASN. 1编码的数据长度为2,数据区为0x0, Oxff ;当StNum为Oxffff时,其ASN. 1编码的数据长度为3,数据区为0x0,Oxff,Oxff ;当 StNum为Oxffffffff时,其ASN. 1编码的数据长度为5,数据区为0x0,Oxff,Oxff,Oxff, Oxff0每次发送GOOSE报文时,可能发生变化的控制信息和数据集成员数据的数据类型包括整型、布尔型、固定长度位串型、UTC时间类型、单精度浮点型、双精度浮点型。除了整型,其它类型都是固定长度的ASN. 1编码。因此重点实现整型变量固定长度的ASN. 1编码。(1)对于无符号整型变量,其固定长度编码的数据长度总是为该数据类型的长度加1,数据区从低字节到高字节分别是一个字节为0,然后按大端字节序排放该数据类型的数据。
(2)对于带符号整型变量,其固定长度编码的数据长度总是为该数据类型的长度, 数据区从低字节到高字节按大端字节序排放该数据类型的数据。2、系统初始时为每一个GOOSE发布控制块分配一块足以容纳最大以太网帧长度的编码缓冲区EncBuf,编码后报文起始的指针pEncBuf,编码后报文长度的变量 EncBufLen,每个数据集成员以及控制信息在编码缓冲区EncBuf中的位置指针。3、系统启动发送GOOSE初始数据时,在编码缓冲区EncBuf中进行全部数据集成员数据以及控制信息的ASN. 1编码,对原始数据类型的数据采用固定长度的ASN. 1编码,同时记录每个数据集成员以及控制信息在编码缓冲区EncBuf中的位置指针,记录编码后报文长度EncBufLen和起始指针pEncBuf。编码后报文长度EncBufLen和起始指针pEncBuf在系统运行期间保持不
变,用于后续报文的发送。ASN. 1编码是从缓冲区的后部向前部依次编码,分别是数据集成员n,数据集成员n-1……,数据集成员个数numDataEntries,是否需要进一步配置 GOOSE控制块标志needsCommissioning,版本号confRev,检修标志test,顺序号sqNum,状态号stNum,报文刷新时间utcTime,应用标识号appID,数据集名称dataSetRef,报文存活时间timeToLive,GOOSE控制块索引名gcRef。每个数据集成员以及控制信息在编码缓冲区EncBuf中的位置指针记录的也是该编码数据最后一个字节的位置指针。4、当G00SE控制块监视的数据集成员发生变化时,对变化的数据按照其对应的编码位置指针采用固定长度重新编码,对控制信息中的报文存活时间timeToLive、报文刷新时间UtcTime、状态号StNum、顺序号sqNum按照其对应的编码位置指针,采用固定长度重新编码。5、当进行G00SE报文重发送时,对控制信息中的报文存活时间timeToLive、报文刷新时间UtcTime、顺序号sqNum按照其对应的编码位置指针,采用固定长度重新编码。6、当处于检修状态时,控制信息test置1,按照其对应的编码位置指针,采用固定长度重新编码。由于使用原始数据类型固定长度ASN. 1编码,可以精确定位每一个变量的编码位置,只对当前要发送的G00SE报文中有变化的数据集成员数据以及控制信息进行重新编码,并且只针对数据本身部分进行编码,不包括该数据对应的类型标签和数据长度,以进一步提高编码效率。
权利要求
1.一种IEC 61850 GOOSE报文的组织方法,其特征是系统初始时为每一个GOOSE发布控制块分配一块足以容纳最大以太网帧长度的编码缓冲区EncBuf,编码后报文起始的指针pEncBuf,编码后报文长度的变量EncBufLen,每个数据集成员以及控制信息在编码缓冲区EncBuf中的位置指针;系统启动发送GOOSE初始数据时,在编码缓冲区EncBuf中进行全部数据集成员数据以及控制信息的ASN. 1编码,对原始数据类型的数据采用固定长度的ASN. 1编码,同时记录每个数据集成员以及控制信息在编码缓冲区EncBuf中的位置指针,记录编码后报文长度 EncBufLen 和起始指针 pEncBuf ;当GOOSE控制块监视的数据集成员发生变化时,对变化的数据按照其对应的编码位置指针采用固定长度重新编码,对控制信息中的报文存活时间timeToLive、报文刷新时间 UtcTime、状态号StNum、顺序号sqNum按照其对应的编码位置指针,采用固定长度重新编码;当进行GOOSE报文重发送时,对控制信息中的报文存活时间timeToLive、报文刷新时间utcTime、顺序号sqNum按照其对应的编码位置指针,采用固定长度重新编码。
2.如权利要求1所述的一种IEC61850 GOOSE报文的组织方法,其特征是数据集成员数据以及控制信息的重新编码只针对数据本身部分,不包括该数据对应的类型标签和数据长度。
3.如权利要求1所述的一种IEC61850 GOOSE报文的组织方法,其特征是对于无符号整型变量,其固定长度编码的数据长度总是为该数据类型的长度加1,数据区从低字节到高字节分别是一个字节为0,然后按大端字节序排放该数据类型的数据;对于带符号整型变量,其固定长度编码的数据长度总是为该数据类型的长度,数据区从低字节到高字节按大端字节序排放该数据类型的数据。
4.如权利要求1所述的一种IEC61850 GOOSE报文的组织方法,其特征是当处于检修状态时,控制信息test置1,按照其对应的编码位置指针,采用固定长度重新编码。
全文摘要
本发明是一种IEC 61850 GOOSE报文的组织方法。对原始数据类型的数据采用固定长度的ASN.1编码,因此可以在数据变化发送、重发送时精确定位需要重新编码的控制信息和数据集成员数据。报文的部分内容虽然发生了变化,但所有控制信息和数据集成员数据的编码位置保持不变,没有变化的数据集成员数据以及控制信息不需要重新编码,大大缩短了GOOSE报文的组织时间,提高了GOOSE报文传输的实时性。
文档编号H04L1/00GK102394729SQ20111037419
公开日2012年3月28日 申请日期2011年11月23日 优先权日2011年11月23日
发明者唐永建, 王志华, 韩明峰, 马长武 申请人:东方电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1