DL/T698.45协议中记录型数据的解析方法与流程

文档序号:17088915发布日期:2019-03-13 23:12阅读:7131来源:国知局
DL/T 698.45协议中记录型数据的解析方法与流程

本发明涉及数据处理技术领域,更具体地,涉及一种面向对象的用电信息数据交换协议(dl/t698.45)中记录型数据的解析方法。



背景技术:

现行用电信息采集系统中通信协议不统一的问题突出,如主站、采集终端、智能电能表三者之间的通信规约有q/gdw1376.1、q/gdw1376.2、dl/t645及其各种扩展版本,导致了用电信息采集过程中增加了大量不必要的规约转换工作。当前用于用电信息采集的通信协议主要是面向过程的数据型协议,其拓展性、复用性和灵活性方面显现出一些不足。

基于面向对象的用电信息数据交换协议,即dl/t698.45可以贯穿系统主站、采集终端以至智能电能表,实现用电信息采集系统通信协议的统一性和规范性,提升系统运行的可靠性。dl/t698.45协议是根据《国家电网公司关于下达2017年度公司第一批技术标准制修订计划的通知》(国家电网科﹝2017﹞72号)的要求而制订的面向对象的用电信息数据交换协议。



技术实现要素:

为了推进dl/t698.45协议在用电信息采集过程中的应用,本发明提供一种dl/t698.45协议中记录型数据的解析方法。在采集终端接收到智能电能表响应的记录型数据报文后,对应用层协议数据单元(apdu)进行分解:

步骤一:对应用层协议数据单元(apdu)进行分解,根据分解出的第一列对象属性描述符(oad_1)以及其数据类型和数据长度,可得到oad_1的结果数组(resultarray_1)、执行步骤二;

步骤二:对resultarray_1的第一个字节(databyte)进行判断,若为1,执行步骤三;否则,执行步骤五;

步骤三:对resultarray_1的数据类型进行判断,判断数据类型是否为data_time_s,若是,执行步骤四;否则,执行步骤五;

步骤四:对data_time_s型数据进行分解,得到时间数据信息,执行步骤五;

步骤五:根据resultarray_1的长度定位到第二列对象属性描述符(oad_2)的起始位置,对oad_2进行分解,得到oad_2的对象标识、数据类型和数据长度信息,进而得到oad_2的结果数组(resultarray_2),执行步骤六;

步骤六:对resultarray_2的数据类型进行判断,数据类型包括数组类(array)、布尔值(boolean)和长整型(long)等。不同数据类型得到不同的结果数据,执行步骤七;

步骤七:根据步骤五中oad_2的对象标识与步骤六中结果数据生成接口类,在接口类下确定记录型数据单位并进行数据换算,执行步骤八;

步骤八:获得最终解析结果数据,解析结束。

进一步地,在步骤六中,当数据类型是数组(array)类型时,需对数组(array)类型数据具体分解:

首先、分解resultarray_2中共有几组数据,获得每组数据中的子数据类型;

然后、根据子数据类型确定数据长度,进行具体的数据分析;

当数据长度大于1字节时,结果数据将是二维数据,二维数据需降维处理成一维数据,并将其存入结果数组。例如当数据长度为4个8位字节时,要将此4个8位字节的数据变换成1个32位的整型数据,使得结果数组保持一维数据;

当数据长度小于等于1字节时,将分解后的数据存入结果数组。

附图说明

通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:

图1为本dl/t698.45协议中记录型数据的解析流程图;图2为数组类型的数据处理流程图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的方法进行详细地描述,然而,本发明可以用许多不同形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。

图1是本发明具有具体实施方式的dl/t698.45协议中记录型数据的解析流程图,在终端接收到智能电能表响应的记录型数据报文后,对应用层协议数据单元(apdu)数据逐位进行分解,解析方法从步骤s101开始。

在步骤s101,对应用层协议数据单元(apdu)进行分解,根据分解出的第一列对象属性描述符(oad_1)以及其数据类型和数据长度,可得到oad_1的结果数组(resultarray_1)、执行步骤s102;

在步骤s102,对resultarray_1的第一个字节(databyte)进行判断,若为1,执行步骤s103;否则,执行步骤s105;

在步骤s103,对resultarray_1的数据类型进行判断,判断数据类型是否为data_time_s,若是,执行步骤s104;否则,执行步骤s105;

在步骤s104,对data_time_s型数据进行分解,得到时间数据信息,执行步骤s105;

在步骤s105,根据resultarray_1的长度定位到第二列对象属性描述符(oad_2)的起始位置,对oad_2进行分解,得到oad_2的对象标识、数据类型和数据长度信息,进而得到oad_2的结果数组(resultarray_2),执行步骤s106;

在步骤s106,对resultarray_2的数据类型进行判断,数据类型包括数组类(array)、布尔值(boolean)和长整型(long)等。不同数据类型得到不同的结果数据,执行步骤s107;

在步骤s107,根据步骤五中oad_2的对象标识与步骤六中结果数据生成接口类,在接口类下确定记录型数据单位并进行数据换算,执行步骤s108;

在步骤s108,获得最终解析结果数据,解析结束。

优选地,在步骤s106中,当数据类型是数组(array)类型时,需对数组(array)类型数据具体分解,图2为数组类型的数据处理流程图:

首先、分解resultarray_2中共有几组数据,获得每组数据中的子数据类型;

然后、根据子数据类型确定数据长度,进行具体的数据分析;

当数据长度大于1字节时,结果数据将是二维数据,二维数据需降维处理成一维数据,并将其存入结果数组。例如当数据长度为4个8位字节时,要将此4个8位字节的数据变换成1个32位的整型数据,使得结果数组保持一维数据;

当数据长度小于等于1字节时,将分解后的数据存入结果数组。



技术特征:

技术总结
DL/T 698.45协议中记录型数据的解析方法,包括:在采集终端接收到智能电能表响应的记录型数据报文后,对应用层协议数据单元(APDU)进行分解出的第一列对象属性描述符(OAD_1)以及其数据类型和数据长度,可得到到OAD_1的结果数组(Result Array_1),然后对Result Array_1进行具体分解;根据Result Array_1的长度定位到第二列对象属性描述符(OAD_2)的起始位置,对OAD_2进行分解,得到OAD_2的对象标识、数据类型和数据长度信息,进而得到OAD_2的结果数组(Result Array_2);对Result Array_2进行分解,最终得到带有确定单位的数据信息,并显示解析结果。

技术研发人员:国帅;汪清;殷聪;苏全志;吴琼;杜博;王珏;赵晓琪;苏家宇;李迪星;刘福东;张若楠
受保护的技术使用者:哈尔滨电工仪表研究所有限公司;黑龙江省电工仪器仪表工程技术研究中心有限公司
技术研发日:2018.10.31
技术公布日:2019.03.12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1