一种数字化变电站网络报文的解码方法及装置制造方法及图纸

技术编号:11439225 阅读:113 留言:0更新日期:2015-05-13 08:40
本发明专利技术提出了一种数字化变电站网络报文的解码方法及装置,方法包括:接收数据报文,并对其解析获取报文类型;判断数据报文是否是smv报文,如是,获取smv报文的长度,执行下一步骤;否则,判断是否为goose报文;判断smv报文的数据头类型并依据其数据头类型的内容解析数据内容;判断数据报文是否是goose报文,如是,获取goose报文的长度,执行下一步骤;否则,不执行任何操作;判断goose报文的数据头类型并依据其数据头类型的内容解析数据内容,执行下一步骤;判断数据内容是否解析完毕,如是,结束;否则,返回。实施本发明专利技术的数字化变电站网络报文的解码方法及装置,具有以下有益效果:解码效率较高、提高处理性能。

【技术实现步骤摘要】
一种数字化变电站网络报文的解码方法及装置
本专利技术涉及变电站报文领域,特别涉及一种数字化变电站网络报文的解码方法及装置。
技术介绍
目前,goose报文和smv报文均采用ASN.1编码方式。ASN.1是一种ISO/ITU-T标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序,在任何需要以数字方式发送信息的地方,ASN.1都可以发送各种形式的信息(例如声频、视频、数据等等)。ASN.1和特定的ASN.1编码规则推进了结构化数据的传输,尤其是网络中应用程序之间的结构化数据传输,它以一种独立于计算机架构和语言的方式来描述数据结构。因此ASN.1是一种较为复杂的编码格式,同样,在解码的时候,也是一个极其复杂的过程。但是在数字化变电站中,由于报文流量较大,对于网络报文处理性能有极高的要求,需要实时处理每一条报文并给出业务逻辑判断。因此,需要采用高效的解码算法,提高处理性能。然而,目前报文的解码主要是针对ASN.1结构逐层的进行解析。由于ASN.1编码适应各种数据结构,组合方式非常灵活,被称为“自描述”报文格式。因此其编码方式复杂,解码的时候,按照其编码进行逐层的解析,其解码效率低下,处理性能较差。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述解码效率低下、处理性能较差的缺陷,提供一种解码效率较高、提高处理性能的数字化变电站网络报文的解码方法及装置。本专利技术解决其技术问题所采用的技术方案是:构造一种数字化变电站网络报文的解码方法,包括如下步骤:A)接收数据报文,并对其进行解析获取报文类型;B)判断所述数据报文是否是smv报文,如是,获取所述smv报文的长度,执行步骤C);否则,执行步骤D);C)判断所述smv报文的数据头类型并依据其数据头类型的内容解析数据内容,执行步骤F);D)判断所述数据报文是否是goose报文,如是,获取所述goose报文的长度,执行步骤E);否则,不执行任何操作;E)判断所述goose报文的数据头类型并依据其数据头类型的内容解析数据内容,执行步骤F);F)判断所述数据内容是否解析完毕,如是,结束;否则,返回所述步骤C)或步骤E)。在本专利技术所述的数字化变电站网络报文的解码方法中,所述步骤C)进一步包括:C1)判断smv报文的标识是否为0x80,如是,获取所述smv报文中结构体的个数,执行步骤C3);否则,执行步骤C2);C2)出现错误提示并跳出程序;C3)判断所述smv报文的标识是否为0x81,如是,获取所述smv报文的安全等级数据,执行步骤C4);否则,返回步骤C2);C4)判断所述smv报文的标识是否为0xa2,如是,获取所述smv报文中结构体的数据内容,执行步骤C5);否则,返回步骤C2);C5)依次解析采样值ID、数据集字符串、采样计数、配置版本、刷新时间、采样同步和采样率。在本专利技术所述的数字化变电站网络报文的解码方法中,所述步骤E)进一步包括:E1)判断goose报文的标识是否为0x80,如是,获取所述goose报文中结构体的个数,执行步骤E3);否则,执行步骤E2);E2)出现错误提示并跳出程序;E3)依次解析控制块引用、生成时间、数据集引用、goose应用标识、事件时间、状态计数、序列计数、测试、版本、需要重新配置和数据集条目数,执行步骤E4);E4)判断所述goose报文的标识是否为0x82,如是,将其解析为bool(布尔)类型,执行步骤E5);否则,返回步骤E2);E5)判断所述goose报文的标识是否为0x84,如是,将其解析为bit-string(位串)类型,执行步骤E6);否则,返回步骤E2);E6)判断所述goose报文的标识是否为0x85,如是,将其解析为int(整型)类型,执行步骤E7);否则,返回步骤E2);E7)判断所述goose报文的标识是否为0x86,如是,将其解析为unsigned(无符号整型)类型,执行步骤E8);否则,返回步骤E2);E8)判断所述goose报文的标识是否为0x87,如是,将其解析为float(浮点)类型,执行步骤E9);否则,返回步骤E2);E9)判断所述goose报文的标识是否为0x91,如是,将其解析为UTC类型,执行步骤E10);否则,返回步骤E2);E10)判断所述goose报文的标识是否为0xa2,如是,将其解析为数据结构体类型;否则,返回步骤E2)。在本专利技术所述的数字化变电站网络报文的解码方法中,在所述步骤B)中,获取所述smv报文的长度后,还根据所述smv报文的长度进行数据的有效性验证。在本专利技术所述的数字化变电站网络报文的解码方法中,在所述步骤D)中,获取所述goose报文的长度后,还根据所述goose报文的长度进行数据的有效性验证。本专利技术还涉及一种实现上述数字化变电站网络报文的解码方法的装置,包括:报文接收解析单元:用于接收数据报文,并对其进行解析获取报文类型;smv报文判断单元:用于判断所述数据报文是否是smv报文,如是,获取所述smv报文的长度;否则,继续判断是否为goose报文;smv报文数据头类型判断单元:用于判断所述smv报文的数据头类型并依据其数据头类型的内容解析数据内容;goose报文判断单元:用于判断所述数据报文是否是goose报文,如是,获取所述goose报文的长度;否则,不执行任何操作;goose报文数据头类型判断单元:用于判断所述goose报文的数据头类型并依据其数据头类型的内容解析数据内容;解析判断单元:用于判断所述数据内容是否解析完毕,如是,结束;否则,返回。在本专利技术所述的装置中,所述smv报文数据头类型判断单元进一步包括:第一smv报文标识判断模块:用于判断smv报文的标识是否为0x80,如是,获取所述smv报文中结构体的个数;否则,出现错误提示并跳出程序;第一错误提示模块:用于出现错误提示并跳出程序;第二smv报文标识判断模块:用于判断所述smv报文的标识是否为0x81,如是,获取所述smv报文的安全等级数据;否则,返回;第三smv报文标识判断模块:用于判断所述smv报文的标识是否为0xa2,如是,获取所述smv报文中结构体的数据内容;否则,返回;smv报文解析模块:用于依次解析采样值ID、数据集字符串、采样计数、配置版本、刷新时间、采样同步和采样率。在本专利技术所述的装置中,所述goose报文数据头类型判断单元进一步包括:第一goose报文标识判断模块:用于判断goose报文的标识是否为0x80,如是,获取所述goose报文中结构体的个数;否则,出现错误提示并跳出程序;第二错误提示模块:用于出现错误提示并跳出程序;goose报文解析模块:用于依次解析控制块引用、生成时间、数据集引用、goose应用标识、事件时间、状态计数、序列计数、测试、版本、需要重新配置和数据集条目数;第二goose报文标识判断模块:用于判断所述goose报文的标识是否为0x82,如是,将其解析为bool类型;否则,返回;第三goose报文标识判断模块:用于判断所述goose报文的标识是否为0x84,如是,将其解析为bit-string类型;否则,返回;第四goose报文本文档来自技高网...
一种数字化变电站网络报文的解码方法及装置

【技术保护点】
一种数字化变电站网络报文的解码方法,其特征在于,包括如下步骤:A)接收数据报文,并对其进行解析获取报文类型;B)判断所述数据报文是否是smv报文,如是,获取所述smv报文的长度,执行步骤C);否则,执行步骤D);C)判断所述smv报文的数据头类型并依据其数据头类型的内容解析数据内容,执行步骤F);D)判断所述数据报文是否是goose报文,如是,获取所述goose报文的长度,执行步骤E);否则,不执行任何操作;E)判断所述goose报文的数据头类型并依据其数据头类型的内容解析数据内容,执行步骤F);F)判断所述数据内容是否解析完毕,如是,结束;否则,返回所述步骤C)或步骤E)。

【技术特征摘要】
1.一种数字化变电站网络报文的解码方法,其特征在于,包括如下步骤:A)接收数据报文,并对其进行解析获取报文类型;B)判断所述数据报文是否是smv报文,如是,获取所述smv报文的长度,执行步骤C);否则,执行步骤D);C)判断所述smv报文的数据头类型并依据其数据头类型的内容解析数据内容,执行步骤F);D)判断所述数据报文是否是goose报文,如是,获取所述goose报文的长度,执行步骤E);否则,不执行任何操作;E)判断所述goose报文的数据头类型并依据其数据头类型的内容解析数据内容,执行步骤F);F)判断所述数据内容是否解析完毕,如是,结束;否则,返回所述步骤C)或步骤E);所述步骤C)进一步包括:C1)判断smv报文的标识是否为0x80,如是,获取所述smv报文中结构体的个数,执行步骤C3);否则,执行步骤C2);C2)出现错误提示并跳出程序;C3)判断所述smv报文的标识是否为0x81,如是,获取所述smv报文的安全等级数据,执行步骤C4);否则,返回步骤C2);C4)判断所述smv报文的标识是否为0xa2,如是,获取所述smv报文中结构体的数据内容,执行步骤C5);否则,返回步骤C2);C5)依次解析采样值ID、数据集字符串、采样计数、配置版本、刷新时间、采样同步和采样率;所述步骤E)进一步包括:E1)判断goose报文的标识是否为0x80,如是,获取所述goose报文中结构体的个数,执行步骤E3);否则,执行步骤E2);E2)出现错误提示并跳出程序;E3)依次解析控制块引用、生成时间、数据集引用、goose应用标识、事件时间、状态计数、序列计数、测试、版本、需要重新配置和数据集条目数,执行步骤E4);E4)判断所述goose报文的标识是否为0x82,如是,将其解析为bool类型,执行步骤E5);否则,返回步骤E2);E5)判断所述goose报文的标识是否为0x84,如是,将其解析为bit-string类型,执行步骤E6);否则,返回步骤E2);E6)判断所述goose报文的标识是否为0x85,如是,将其解析为int类型,执行步骤E7);否则,返回步骤E2);E7)判断所述goose报文的标识是否为0x86,如是,将其解析为unsigned类型,执行步骤E8);否则,返回步骤E2);E8)判断所述goose报文的标识是否为0x87,如是,将其解析为float类型,执行步骤E9);否则,返回步骤E2);E9)判断所述goose报文的标识是否为0x91,如是,将其解析为UTC类型,执行步骤E10);否则,返回步骤E2);E10)判断所述goose报文的标识是否为0xa2,如是,将其解析为数据结构体类型;否则,返回步骤E2)。2.根据权利要求1所述的数字化变电站网络报文的解码方法,其特征在于,在所述步骤B)中,获取所述smv报文的长度后,还根据所述smv报文的长度进行数据的有效性验证。3.根据权利要求1所述的数字化变电站网络报文的解码方法,其特征在于,在所述步骤D)中,获取所述goose报文的长度后,还根据所述goose报文的长度进行数据的有效性验证。4.一种实现如权利要求1所述的数字化变电站网络报文的解码方法的装置,其特征在于,包括:报文接收解析单元:用于接收数据报文...

【专利技术属性】
技术研发人员:曹珍崇陈娟陆以夫昊皓陈明华徐晶
申请(专利权)人:中国能源建设集团广西电力设计研究院有限公司广州思唯奇计算机科技有限公司
类型:发明
国别省市:广西;45

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1