CN117714564A - 一种基于java语言的通用DLT645协议解析方法及设备 - Google Patents

一种基于java语言的通用DLT645协议解析方法及设备 Download PDF

Info

Publication number
CN117714564A
CN117714564A CN202410162410.XA CN202410162410A CN117714564A CN 117714564 A CN117714564 A CN 117714564A CN 202410162410 A CN202410162410 A CN 202410162410A CN 117714564 A CN117714564 A CN 117714564A
Authority
CN
China
Prior art keywords
data
sequence number
data item
analyzing
item
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202410162410.XA
Other languages
English (en)
Other versions
CN117714564B (zh
Inventor
代辉
郭加兵
全靖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Handu Technology Co ltd
Original Assignee
Chengdu Handu Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Handu Technology Co ltd filed Critical Chengdu Handu Technology Co ltd
Priority to CN202410162410.XA priority Critical patent/CN117714564B/zh
Publication of CN117714564A publication Critical patent/CN117714564A/zh
Application granted granted Critical
Publication of CN117714564B publication Critical patent/CN117714564B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Communication Control (AREA)

Abstract

本申请公开了一种基于java语言的通用DLT645协议解析方法及设备,根据DLT645协议,编辑配置文件,对配置文件进行转换,获得map集合,map集合包括多项配置参数,向设备发送请求帧,接收设备响应于请求帧的应答帧,解析应答帧,获得数据域,数据域包含多个数据项,根据map集合中的配置参数,解析数据域,获得解析结果,将解析结果存入map集合中,本方案提供了一种可检验到DLT645协议数据帧中缺失的具体数据项的方案,至少解决了当检验到DLT645协议数据帧的数据域不完整时,无法检验到缺失的具体数据项的问题。

Description

一种基于java语言的通用DLT645协议解析方法及设备
技术领域
本申请涉及智能电网技术领域,尤其涉及发明一种基于java语言的通用DLT645协议解析方法及设备。
背景技术
DLT645协议是一种用于电能表通信的协议,主要用于智能电能表和电力管理系统之间的通信,通过DLT645协议,电力管理系统可以实时获取电能表的电能数据,监控电能使用情况,进行电能计量和结算等操作,从而实现对电能的有效管理和控制。
目前,在检验DLT645协议数据帧时,仅根据数据帧中的数据域长度检验数据域中的数据项是否有缺失,无法检验到缺失的具体数据项,并且在检验到数据域中的数据项存在缺失时,需要重新获取整段数据域。
发明内容
本申请的主要目的在于提供一种基于java语言的通用DLT645协议解析方法及设备,解决了当检验到DLT645协议数据帧的数据域不完整时,无法检验到缺失的具体数据项的问题。
一种基于java语言的通用DLT645协议解析方法,其特征在于,包括以下步骤:
根据第一协议,编辑第一配置文件;
对所述第一配置文件进行转换,获得第一集合,所述第一集合包括多项配置参数;
向第一设备发送第一请求帧;
接收所述第一设备响应于所述第一请求帧的第一应答帧;
解析所述第一应答帧,获得第一数据,所述第一数据包含多个数据项;
根据所述第一集合中的配置参数,解析所述第一数据,获得解析结果;
将所述解析结果存入所述第一集合中。
可选的,所述向第一设备发送第一请求帧的步骤之前,包括:
向第一设备发送第一前导码。
可选的,所述向第一设备发送第一请求帧的步骤,包括:
获取第一设备地址;
根据所述第一设备地址,生成第一请求帧;
向所述第一设备发送所述第一请求帧。
可选的,所述对所述第一配置文件进行转换,获得第一集合的步骤,包括:
读取所述第一配置文件,获得第一字符串;
将所述第一字符串转换为第一集合。
可选的,所述根据所述第一集合中的配置参数,解析所述第一数据,获得解析结果的步骤之前,包括:
根据第一数据,获得第一序号,所述第一序号是指第一数据中各数据项之前的序号;
将所述第一序号组成第一数据组;
判断所述第一数据组中的序号是否完整;
若所述第一数据组中的序号不完整,获取第二序号,所述第二序号是指第一数据组中缺失的序号;
获取第二序号对应的第二数据项,所述第二数据项是指第一数据中缺失的数据项;
将所述第二序号和所述第二数据项插入第一数据中。
可选的,所述获取第二序号对应的第二数据项的步骤,包括:
根据第一特征数据和所述第二序号,生成第二请求帧;
接收第一设备响应于第二请求帧发送的第二应答帧;
解析所述第二应答帧,获得第二序号对应的第二数据项。
可选的,所述根据所述第一集合中的配置参数,解析所述第一数据,获得解析结果的步骤,包括:
根据第一特征数据,获得与第一特征数据对应的第一配置参数;
根据所述第一配置参数,对第一数据中的数据项进行解析。
可选的,所述根据所述第一配置参数,对第一数据中的数据项进行解析的步骤,还包括:
根据第一配置参数,获取第一数据项长度;
根据所述第一数据项长度,获取第一数据项;
根据所述第一配置参数,对所述第一数据项进行解析,获得第一数据项的解析结果。
可选的,所述根据所述第一配置参数,对所述第一数据项进行解析,获得第一数据项的解析结果的步骤之后,包括:
根据第一配置参数,获得第一数据模型属性;
根据所述第一数据模型属性和第一数据项的解析结果,生成第一键值对;
将所述第一键值对存入所述第一集合中。
再一方面,一种计算机设备,其特征在于,该计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序,实现上述任一项的方法。
本申请公开了一种基于java语言的通用DLT645协议解析方法,根据DLT645协议,编辑配置文件,对配置文件进行转换,获得map集合,map集合包括多项配置参数,向设备发送请求帧,接收设备响应于请求帧的应答帧,解析应答帧,获得数据域,数据域包含多个数据项,根据map集合中的配置参数,解析数据域,获得解析结果,将解析结果存入map集合中,采用本方案,可以通过检验数据域中每个数据项之前的序号是否完整来判断数据域中的数据项是否完整,并且,若每个数据项之前的序号不完整,可以根据缺失的序号,获取与该序号对应的缺失的数据项,本方案提供了一种可检验到DLT645协议数据帧中缺失的具体数据项的方案,至少解决了当检验到DLT645协议数据帧的数据域不完整时,无法检验到缺失的具体数据项的问题。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单的介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本申请中一种基于java语言的通用DLT645协议解析方法的流程示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
如图1所示,一种基于java语言的通用DLT645协议解析方法,由数据解析平台执行,包括:
S1、根据第一协议,编辑第一配置文件;
可选的,根据第一协议,编辑第一配置文件,第一协议为DLT645协议,第一配置文件中存储有配置参数,第一配置文件中的配置参数包括多项与不同数据标识对应的配置参数,此时,第一配置文件中的配置参数为json格式的字符串,第一配置文件为根据第一协议编辑获得的文件。
S2、对所述第一配置文件进行转换,获得第一集合,所述第一集合包括多项配置参数;
可选的,第一配置文件在根据第一协议编辑生成后,第一配置文件中的配置参数为json格式,为了能够方便地存储和操作数据,需要将json格式的配置参数转换为第一集合,第一集合为map集合,配置参数以键值对的形式存储在第一集合中。
S3、向第一设备发送第一请求帧;
可选的,根据第一设备地址和需要请求的数据标识,生成第一请求帧,此时,第一请求帧依次包括帧起始符、第一设备地址、帧起始符、控制码、数据域长度、数据域、校验码、结束符,帧起始符为十六进制的68H,结束符为十六进制的16H,数据域中包括需要读取的数据标识,向第一设备发送第一前导码,再向第一设备发送第一请求帧;第一前导码为FE FEFE FE,用于唤醒第一设备,第一设备地址可以为第一设备的设备号,第一设备有多种类型,例如,串口服务器,智能电表。
S4、接收所述第一设备响应于所述第一请求帧的第一应答帧;
可选的,第一设备解析第一请求帧,获得第一设备地址和需要请求的数据标识,第一设备根据数据标识,获得与数据标识对应的多个数据项,创建以数据标识为标引的映射表,将数据标识对应的多个数据项按协议规定顺序逐项存储到该映射表中,每个数据项存储一行,根据数据项在该映射表中的行位置,在映射表中按顺序生成与每个数据项对应的序号,将数据标识、与数据标识对应的多个数据项和与数据项对应的序号封装进第一应答帧,将与数据标识对应的映射表中最后一行数据项对应的序号设置在第一应答帧中第一设备地址后面,此时,第一应答帧包括帧起始符、第一设备地址、与数据标识对应的最后一个数据项对应的序号、控制码、数据域长度、数据域、校验码、结束符,帧起始符为十六进制的68H,结束符为十六进制的16H,控制码用于表示数据帧的类型,数据帧的类型包括读数据请求帧、写数据请求帧、读数据应答帧和写数据应答帧,数据域中包括数据标识、与数据标识对应的多个数据项和与每个数据项对应的序号。
S5、解析所述第一应答帧,获得第一数据,所述第一数据包含多个数据项;
可选的,对第一应答帧进行解析,获得数据域的原始报文,原始报文是在实际的数据域加上十六进的33(0x33),并进行反序后得到的,需要将原始报文中的每一位数减去0x33后,并进行反序才能得到实际的数据域,第一数据是指实际的数据域,第一数据包括数据标识、与数据标识对应的多个数据项和与每个数据项对应的序号。
S6、根据所述第一集合中的配置参数,解析所述第一数据,获得解析结果;
可选的,根据第一特征数据,获得与第一特征数据对应的第一配置参数,根据第一配置参数,解析第一数据中的数据项,第一配置参数包括数据标识、是否为数据块的判断、与数据标识对应的多个配置参数集合、配置参数集合中包括需要解析数据的名称、需要解析数据长度、解析结果需要保留的小数位数、解析结果的数据类型、解析结果的单位。
S7、将所述解析结果存入所述第一集合中。
可选的,根据第一配置参数,获得解析数据的第一数据模型属性,以第一数据模型属性为键、解析结果为值生成第一键值对,将第一键值对存入第一集合中,将第一集合转换成json格式的数据,向物管平台发送json格式的数据。
可选的,所述向第一设备发送第一请求帧的步骤之前,包括:
向第一设备发送第一前导码。
可选的,向第一设备发送第一前导码,第一前导码为FE FE FE FE,用于唤醒第一设备,第一前导码的长度是固定的。
可选的,所述向第一设备发送第一请求帧的步骤,包括:
获取第一设备地址;
根据所述第一设备地址,生成第一请求帧;
向所述第一设备发送所述第一请求帧。
可选的,查询第一设备地址和需要读取数据的数据标识,根据第一设备地址和需要读取数据的数据标识,生成第一请求帧,向第一设备发送第一请求帧,第一设备解析第一请求帧,获得需要读取数据的数据标识,根据数据标识,获得与数据标识对应的多个数据项,创建以数据标识为标引的映射表,将数据标识对应的多个数据项按协议规定顺序逐项存储到该映射表中,每个数据项存储一行,根据数据项在该映射表中的行位置,在映射表中按顺序生成与每个数据项对应的序号,将数据标识、与数据标识对应的多个数据项和与每个数据项对应的序号封装进第一应答帧,向数据解析平台发送第一应答帧。
可选的,其特征在于,所述对所述第一配置文件进行转换,获得第一集合的步骤,包括:
读取所述第一配置文件,获得第一字符串;
将所述第一字符串转换为第一集合。
可选的,在通过第一配置文件获得json格式的第一字符串后,需要检验第一字符串的格式是否正确,若第一字符串的格式异常,则抛出第一字符串,重新根据第一协议编辑第一配置文件,读取第一配置文件,获得json格式的第一字符串,再次对第一字符串的格式进行检验,循环上述步骤,直到检验到第一字符串的格式正确为止;若第一字符串的格式正确,则将第一字符串转换成第一集合,第一字符串是指第一配置文件在编辑生成后所包含配置参数的格式,第一集合是指包含配置参数的map集合,配置参数以键值对的形式存储在第一集合中。
可选的,所述根据所述第一集合中的配置参数,解析所述第一数据,获得解析结果的步骤之前,包括:
根据第一数据,获得第一序号,所述第一序号是指第一数据中各数据项之前的序号;
将所述第一序号组成第一数据组;
判断所述第一数据组中的序号是否完整;
若所述第一数据组中的序号不完整,获取第二序号,所述第二序号是指第一数据组中缺失的序号;
获取第二序号对应的第二数据项,所述第二数据项是指第一数据中缺失的数据项;
将所述第二序号和所述第二数据项插入第一数据中。
可选的,在第一数据中,每个数据项的前一位数为序号,获取第一数据中各数据项之前的序号,第一序号是指第一数据中各数据项之前的序号,将第一序号按照升序排列,形成第一数据组,根据第一应答帧,获得与数据标识对应的最后一个数据项的序号,该序号设置在第一设备地址之后,用于判断在第一数据中是否缺失与数据标识对应的最后一个数据项,获取第一数据组中的最后一个序号,判断第一设备地址之后的序号与第一数据组中的最后一个序号是否相等,若不相等,说明第一数据的最后一个数据项之后缺失一个或者连续的多个待解析的数据项,判断第一数据组中的序号是否完整,若第一数据组中的序号不完整,则说明在第一数据中缺失待解析的数据项,第二数据项是指上述两个判断中第一数据缺失的待解析的数据项,根据第一数据组中的序号和与数据标识对应的最后一个数据项的序号,获得第一数据组中缺失的序号,第二序号是指第一数据组中缺失的序号,第二序号可以是多个缺失的序号,也可以是某个缺失的序号,将第二序号和数据标识封装进第二请求帧中,向第一设备发送第二请求帧,第一设备响应于第二请求帧,向数据解析平台发送第二应答帧,数据解析平台解析第二应答帧,获得第二序号对应的第二数据项,若第二序号是多个缺失的序号,按照顺序将第二序号和第二数据项插入第一数据中与第二序号对应的位置,若第二序号是某个缺失的序号,将第二序号和第二数据项插入第一数据中与第二序号对应的位置,根据第一集合中的配置参数,解析第一数据中的数据项,将解析结果以键值对的形式存储在第一集合中。
可选的,所述获取第二序号对应的第二数据项的步骤,包括:
根据第一特征数据和所述第二序号,生成第二请求帧;
接收第一设备响应于第二请求帧发送的第二应答帧;
解析所述第二应答帧,获得第二序号对应的第二数据项。
可选的,将第一特征数据和第二序号封装进第二请求帧,向第一设备发送第二请求帧,第一设备解析第二请求帧,获得第一特征数据和第二序号,根据第一特征数据,获得与第一特征数据对应的映射表,该映射表中包括与第一特征数据对应的多个数据项和与每个数据项对应的序号,根据第二序号,在该映射表中获得与第二序号对应的第二数据项,将第二序号和第二数据项封装进第二应答帧,向数据解析平台发送第二应答帧,数据解析平台解析第二应答帧,获得第二序号和与第二序号对应的第二数据项;第一特征数据是指第一数据中的数据标识,例如,第一数据为00 FF 01 00 01 10 56 08 05 02 00 00 00 0003 25 71 68 01 04 74 69 65 01 05 10 15 74 01,此时,将00 FF 01 00反序后得到整个数据块的数据标识为00 01 FF 00。
可选的,所述根据所述第一集合中的配置参数,解析所述第一数据,获得解析结果的步骤,包括:
根据第一特征数据,获得与第一特征数据对应的第一配置参数;
根据所述第一配置参数,对第一数据中的数据项进行解析。
可选的,根据第一特征数据,获得与第一特征数据对应的第一配置参数,第一配置参数包括数据标识、是否为数据块的判断、与数据标识对应的多个配置参数集合、配置参数集合中包括需要解析数据的名称、需要解析数据长度、解析结果需要保留的小数位数、解析结果的数据类型、解析结果的单位,根据是否为数据块的判断识别第一数据的结构是否为数据块,若第一数据的结构为数据块,第一数据中包含关于某个电能属性的多个数据项,例如,第一数据中包括多个有关当前反向有功电能的数据项或第一数据中包括有关当前正向有功电能的多个数据项;第一数据的前4位为数据标识,截取第一数据的第5位数,将第5位数转换为十进制,可以得到第一数据中包含的数据项数量,从第一数据的第6位开始按顺序对第一数据中的数据项进行解析,若第一数据的结构为非数据块,第一数据中包含的数据项为关于不同电能属性的数据项,例如,第一数据中包含关于正向有功基波总电能的数据项、关于反向有功基波总电能的数据项和关于正向有功谐波总电能的数据项等,第一数据的前4位数据为的数据标识,从第一数据的第5位开始按顺序对第一数据中的数据项进行解析。
可选的,所述根据所述第一配置参数,对第一数据中的数据项进行解析的步骤,还包括:
根据第一配置参数,获取第一数据项长度;
根据所述第一数据项长度,获取第一数据中的第一数据项;
根据所述第一配置参数,对所述第一数据项进行解析,获得第一数据项的解析结果。
可选的,不同的数据项对应不同的配置参数集合,根据第一配置参数,获得与第一数据项对应的配置参数集合,从该配置参数集合中获得第一数据项长度,第一数据项的前一位数为与第一数据项对应的序号,获取第一数据项对应的序号的长度,将第一数据项长度与该序号长度相加,得到第二数据长度,根据第二数据长度,截取第一数据中的第一数据段,第一数据段包括与第一数据项对应的序号和第一数据项,根据该配置参数集合中的配置参数,对第一数据项进行解析,获得第一数据项的解析结果;第一数据项长度是指第一数据中的某个数据项在第一配置参数中对应的数据长度,第二数据长度是指第一数据项长度与第一数据项对应的序号的长度相加后获得的长度,第一数据项是指第一数据中的某个数据项,例如,从第一配置参数中获得第一数据中第一个数据项的配置参数集合,此时,第一数据项为第一数据中第一个数据项,该配置参数集合中的配置参数为需要解析数据的名称为“SupWh”、第一数据项长度为4个字节、解析结果需保留小数位数为2位小数、数据类型为BCD码、解析结果的单位为“kWh”,第一数据为00 FF 01 00 01 10 56 08 05 02 00 00 0000 03 25 71 68 01 04 74 69 65 01 05 10 15 74 01,每个数据项之前的序号占1个字节,将第一数据项长度与第一数据项对应的序号的长度相加,得到第二数据长度,第二数据长度为5个字节,截取第一数据中数据长度为5个字节的数据段01 10 56 08 05,01为数据项10 56 08 05的序号,从该数据段中获得数据项10 56 08 05,将该数据项转换为十进制后得到5085610,再将5085610乘以0.01得到该数据项的解析结果50856.1,将该数据项的解析结果以键值对的形式存入第一集合中,键值对为“SupWh”=50856.1,通过上述方法依次对第一数据中的数据项进行解析,并将解析结果存入第一集合中;
第一数据中第一个数据项对应的配置参数如下所示:
{
"name": "SupWh",
"remark": "当前正向有功总电能",
"length": 4,
"degree": "0.01",
"fieldType": "bcdSigned",
"unit": "kWh"
}
可选的,所述根据所述第一配置参数,对所述第一数据项进行解析,获得第一数据项的解析结果的步骤之后,包括:
根据第一配置参数,获得第一数据模型属性;
根据所述第一数据模型属性和第一数据项的解析结果,生成第一键值对;
将所述第一键值对存入所述第一集合中。
可选的,根据第一配置参数,获得第一数据项对应的配置参数集合,从该配置参数集合中获得第一数据模型属性,第一数据模型属性是指需要读取数据的属性,例如,“name”:“SupWh”,第一数据模型属性为“name”对应的值,即“SupWh”,“SupWh”表示当前正向有功总电能,以第一数据模型属性为键,以第一数据项的解析结果为值,生成第一键值对,例如,第一数据项的解析结果为50856.1kWh,那么第一键值对为“SupWh”=50856.1,第一键值对用于指示当前正向有功总电能的大小为50856.1kWh,通过上述方法生成其他数据项解析结果的键值对,将键值对存储在第一集合中,将第一集合转换成json格式的数据,向物管平台发送json格式的数据。
实施例2
本实施例在实施例1的基础上提供一个具体的实现方案,一种基于java语言的通用DLT645协议解析系统,包括第一设备和数据解析平台。
数据解析平台根据第一协议,编辑第一配置文件,第一协议为DLT645协议,第一配置文件中的配置参数包括多项与不同数据标识对应的配置参数,此时,第一配置文件中的配置参数为json格式的字符串,第一配置文件为根据第一协议编辑获得的文件;
数据解析平台读取第一配置文件,获得第一字符串,将第一字符串转换成第一集合,第一字符串为第一配置文件中配置参数为json格式的字符串,第一集合为包括配置参数的map集合,配置参数以键值对的形式存储在第一集合中;
数据解析平台根据第一设备地址和需要请求的数据标识,生成第一请求帧,此时,第一请求帧依次包括帧起始符、第一设备地址、帧起始符、控制码、数据域长度、数据域、校验码、结束符,帧起始符为十六进制的68H,结束符为十六进制的16H,数据域中包括需要读取的数据标识,向第一设备发送第一前导码,向第一设备发送第一请求帧,第一前导码为FEFE FE FE,用于唤醒第一设备,第一设备地址可以为第一设备的设备号,第一设备有多种类型,例如,串口服务器,智能电表;
第一设备解析第一请求帧,获得第一设备地址和需要请求的数据标识,第一设备根据数据标识,获得与数据标识对应的多个数据项,创建以数据标识为标引的映射表,将数据标识对应的多个数据项按协议规定顺序逐项存储到该映射表中,每个数据项存储一行,根据数据项在该映射表中的行位置,在映射表中按顺序生成与每个数据项对应的序号,将数据标识、与数据标识对应的多个数据项和与数据项对应的序号封装进第一应答帧,此时,第一应答帧包括帧起始符、第一设备地址、与数据标识对应的最后一个数据项的序号、控制码、数据域长度、数据域、校验码、结束符,帧起始符为十六进制的68H,结束符为十六进制的16H,控制码用于表示数据帧的类型,数据域中包括数据标识、与数据标识对应的多个数据项和与每个数据项对应的序号,数据帧的类型包括读数据请求帧、写数据请求帧、读数据应答帧和写数据应答帧,数据域长度是指解析数据的最大长度;
数据解析平台对第一应答帧进行解析,获得数据域的原始报文,原始报文是在实际的数据域加上十六进的33(0x33),并进行反序后得到的,需要将原始报文中的每一位数减去0x33后,并进行反序才能得到实际的数据域,第一数据是指实际的数据域,第一数据包括数据标识、与数据标识对应的多个数据项和与每个数据项对应的序号;
数据解析平台根据第一数据,获得第一序号,在第一数据中,每个数据项的前一位数为序号,第一序号是指第一数据中各数据项之前的序号,将第一序号按照升序排列,形成第一数据组,根据第一应答帧,获得与数据标识对应的最后一个数据项的序号,该序号设置在第一设备地址之后,用于判断在第一数据中是否缺失与数据标识对应的最后一个数据项,获取第一数据组中的最后一个序号,判断第一设备地址之后的序号与第一数据组中的最后一个序号是否相等,若不相等,说明第一数据的最后一个数据项之后缺失一个或者连续的多个待解析的数据项,判断第一数据组中的序号是否完整,若第一数据组中的序号不完整,则说明在第一数据中缺失待解析的数据项,第二数据项是指上述两个判断中第一数据缺失的待解析的数据项,根据第一数据组中的序号和与数据标识对应的最后一个数据项的序号,获得第一数据组中缺失的序号,第二序号是第一数据组中缺失的序号,将数据标识和第二序号封装进第二请求帧,向第一设备发送第二请求帧,第一设备解析第二请求帧,获得数据标识和第二序号,根据数据标识,获得与数据标识对应的映射表,该映射表中包括与第一特征数据对应的多个数据项和与每个数据项对应的序号,根据第二序号,在该映射表中获得与第二序号对应的第二数据项,第二数据项是指第一数据中缺失的数据项,将第二序号和第二数据项封装进第二应答帧,向数据解析平台发送第二应答帧,数据解析平台解析第二应答帧,获得第二序号和与第二序号对应的第二数据项,将第二序号和第二数据项插入第一数据中与第二序号对应的位置,再对第一数据中的数据项进行解析,若第一数据组中的序号完整,对第一数据中的数据项进行解析;
数据解析平台根据第一特征数据,获得与第一特征数据对应的第一配置参数,第一配置参数包括数据标识、是否为数据块的判断、与数据标识对应的多个配置参数集合、配置参数集合中包括需要解析数据的名称、需要解析数据长度、解析结果需要保留的小数位数、解析结果的数据类型、解析结果的单位,不同的数据项对应不同的配置参数集合,配置参数集合中包括数据长度、数据项的名称、解析结果需要保留的小数位数、解析结果的数据类型、解析结果的单位,根据第一配置参数,判断第一数据的结构是否为数据块,若第一数据的结构为数据块,第一数据中包含关于某个电能属性的多个数据项,例如,第一数据中包括多个有关当前反向有功电能的数据项或第一数据中包括有关当前正向有功电能的多个数据项;第一数据的前4位为数据标识,截取第一数据的第5位数,将第5位数转换为十进制,可以得到第一数据中包含的数据项数量,若第一数据的结构为非数据块,第一数据中包含的数据项为关于不同电能属性的数据项,例如,第一数据中包含关于正向有功基波总电能的数据项、关于反向有功基波总电能的数据项和关于正向有功谐波总电能的数据项等;第一数据的前4位为数据标识;
数据解析平台根据第一配置参数,获得与数据项对应的配置参数集合,从该配置参数集合中获得第一数据项长度,第一数据项的前一位数为与第一数据项对应的序号,获取第一数据项对应的序号的长度,将第一数据项长度与该序号长度相加,得到第二数据长度,若第一数据的结构为数据块,根据第二数据长度,从第一数据的第6位开始截取第一数据中的第一数据段,若第一数据的结构为非数据块,根据第二数据长度,从第一数据的第5位开始截取第一数据中的第一数据段,第一数据段包括与第一数据项对应的序号和第一数据项,根据该配置参数集合中的配置参数,对第一数据项进行解析,获得第一数据项的解析结果;第一数据项长度是指第一数据中的某个数据项在第一配置参数中对应的数据长度,第二数据长度是指第一数据项长度与第一数据项对应的序号的长度相加后获得的长度,第一数据项是指第一数据中的某个数据项;
数据解析平台从第一数据项对应的配置参数集合中获得第一数据模型属性,根据第一数据项的解析结果和第一数据模型属性,生成第一键值对,将第一键值对存储在第一集合中,通过上述方法生成其他数据项解析结果的键值对,将键值对存储在第一集合中,将第一集合转换成json格式的数据,向物管平台发送json格式的数据。
实施例3
本实施例提供一种计算机设备,该计算机设备包括存储器和处理器,存储器中存储有计算机程序,处理器执行计算机程序,实现上述任一方法。
实施例4
本实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,处理器执行计算机程序,实现上述任一方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。计算机可以是包括智能终端和服务器在内的各种计算设备。
在本公开的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取非易失性存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个非易失性存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例方法的全部或部分步骤。而前述的非易失性存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅是本公开的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本公开的保护范围。

Claims (10)

1.一种基于java语言的通用DLT645协议解析方法,其特征在于,包括以下步骤:
根据第一协议,编辑第一配置文件;
对所述第一配置文件进行转换,获得第一集合,所述第一集合包括多项配置参数;
向第一设备发送第一请求帧;
接收所述第一设备响应于所述第一请求帧的第一应答帧;
解析所述第一应答帧,获得第一数据,所述第一数据包含多个数据项;
根据所述第一集合中的配置参数,解析所述第一数据,获得解析结果;
将所述解析结果存入所述第一集合中。
2.如权利要求1所述的一种基于java语言的通用DLT645协议解析方法,其特征在于,所述向第一设备发送第一请求帧的步骤之前,包括:
向第一设备发送第一前导码。
3.如权利要求1所述的一种基于java语言的通用DLT645协议解析方法,其特征在于,所述向第一设备发送第一请求帧的步骤,包括:
获取第一设备地址;
根据所述第一设备地址,生成第一请求帧;
向所述第一设备发送所述第一请求帧。
4.如权利要求1所述的一种基于java语言的通用DLT645协议解析方法,其特征在于,所述对所述第一配置文件进行转换,获得第一集合的步骤,包括:
读取所述第一配置文件,获得第一字符串;
将所述第一字符串转换为第一集合。
5.如权利要求1所述的一种基于java语言的通用DLT645协议解析方法,其特征在于,所述根据所述第一集合中的配置参数,解析所述第一数据,获得解析结果的步骤之前,包括:
根据第一数据,获得第一序号,所述第一序号是指第一数据中各数据项之前的序号;
将所述第一序号组成第一数据组;
判断所述第一数据组中的序号是否完整;
若所述第一数据组中的序号不完整,获取第二序号,所述第二序号是指第一数据组中缺失的序号;
获取第二序号对应的第二数据项,所述第二数据项是指第一数据中缺失的数据项;
将所述第二序号和所述第二数据项插入第一数据中。
6.如权利要求5所述的一种基于java语言的通用DLT645协议解析方法,其特征在于,所述获取第二序号对应的第二数据项的步骤,包括:
根据第一特征数据和所述第二序号,生成第二请求帧;
接收第一设备响应于第二请求帧发送的第二应答帧;
解析所述第二应答帧,获得第二序号对应的第二数据项。
7.如权利要求1所述的一种基于java语言的通用DLT645协议解析方法,其特征在于,所述根据所述第一集合中的配置参数,解析所述第一数据,获得解析结果的步骤,包括:
根据第一特征数据,获得与第一特征数据对应的第一配置参数;
根据所述第一配置参数,对第一数据中的数据项进行解析。
8.如权利要求7所述的一种基于java语言的通用DLT645协议解析方法,其特征在于,所述根据所述第一配置参数,对第一数据中的数据项进行解析的步骤,还包括:
根据第一配置参数,获取第一数据项长度;
根据所述第一数据项长度,获取第一数据项;
根据所述第一配置参数,对所述第一数据项进行解析,获得第一数据项的解析结果。
9.如权利要求8所述的一种基于java语言的通用DLT645协议解析方法,其特征在于,所述根据所述第一配置参数,对所述第一数据项进行解析,获得第一数据项的解析结果的步骤之后,包括:
根据第一配置参数,获得第一数据模型属性;
根据所述第一数据模型属性和第一数据项的解析结果,生成第一键值对;
将所述第一键值对存入所述第一集合中。
10.一种计算机设备,其特征在于,该计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序,实现根据权利要求1-9中任一项所述的方法。
CN202410162410.XA 2024-02-05 2024-02-05 一种基于java语言的通用DLT645协议解析方法及设备 Active CN117714564B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410162410.XA CN117714564B (zh) 2024-02-05 2024-02-05 一种基于java语言的通用DLT645协议解析方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410162410.XA CN117714564B (zh) 2024-02-05 2024-02-05 一种基于java语言的通用DLT645协议解析方法及设备

Publications (2)

Publication Number Publication Date
CN117714564A true CN117714564A (zh) 2024-03-15
CN117714564B CN117714564B (zh) 2024-04-23

Family

ID=90151990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410162410.XA Active CN117714564B (zh) 2024-02-05 2024-02-05 一种基于java语言的通用DLT645协议解析方法及设备

Country Status (1)

Country Link
CN (1) CN117714564B (zh)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102055814A (zh) * 2010-11-25 2011-05-11 深圳市科陆电子科技股份有限公司 一种实现跨网段实时采集的方法
US20160149765A1 (en) * 2014-11-24 2016-05-26 Arrow Devices Private Limited System and method for extracting protocol information from a simulation environment to analyze system behavior
CN105721451A (zh) * 2016-01-27 2016-06-29 深圳市盛弘电气股份有限公司 一种可拓展的Modbus协议解析方法及装置
US20180109577A1 (en) * 2016-10-13 2018-04-19 Sharp Laboratories Of America, Inc. Systems and methods for enabling communications associated with digital media distribution
CN109189381A (zh) * 2018-10-18 2019-01-11 行吟信息科技(上海)有限公司 一种业务流组件的创建方法及装置
CN109842629A (zh) * 2019-03-03 2019-06-04 北京立思辰安科技术有限公司 基于协议解析框架的自定义协议的实现方法
CN110225026A (zh) * 2019-06-06 2019-09-10 郑州天迈科技股份有限公司 协议转换器仪表远程配置方法
US20200310373A1 (en) * 2019-03-26 2020-10-01 Lenovo (Singapore) Pte. Ltd. Extracting ethercat datagrams from an ethercat frame
US20210075542A1 (en) * 2019-09-05 2021-03-11 Apple Inc. Phy-based hybrid automatic repeat request (harq)
CN114244648A (zh) * 2022-02-21 2022-03-25 浪潮通用软件有限公司 一种设备主动注册物联网平台的方法、装置、设备及介质
WO2022105093A1 (zh) * 2020-11-02 2022-05-27 珠海中慧微电子有限公司 一种基于WiSUN协议的移动抄表方法
CN114640727A (zh) * 2022-03-30 2022-06-17 深圳市汇川技术股份有限公司 协议解析方法、装置及计算机可读存储介质
CN115086449A (zh) * 2022-05-11 2022-09-20 北京旋极信息技术股份有限公司 一种数据解析方法、装置及计算机可读存储介质
CN115277867A (zh) * 2022-06-23 2022-11-01 青岛东软载波科技股份有限公司 一种采集器及基于采集器的Modbus协议设备的电力通信方法和系统

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102055814A (zh) * 2010-11-25 2011-05-11 深圳市科陆电子科技股份有限公司 一种实现跨网段实时采集的方法
US20160149765A1 (en) * 2014-11-24 2016-05-26 Arrow Devices Private Limited System and method for extracting protocol information from a simulation environment to analyze system behavior
CN105721451A (zh) * 2016-01-27 2016-06-29 深圳市盛弘电气股份有限公司 一种可拓展的Modbus协议解析方法及装置
US20180109577A1 (en) * 2016-10-13 2018-04-19 Sharp Laboratories Of America, Inc. Systems and methods for enabling communications associated with digital media distribution
CN109189381A (zh) * 2018-10-18 2019-01-11 行吟信息科技(上海)有限公司 一种业务流组件的创建方法及装置
CN109842629A (zh) * 2019-03-03 2019-06-04 北京立思辰安科技术有限公司 基于协议解析框架的自定义协议的实现方法
US20200310373A1 (en) * 2019-03-26 2020-10-01 Lenovo (Singapore) Pte. Ltd. Extracting ethercat datagrams from an ethercat frame
CN110225026A (zh) * 2019-06-06 2019-09-10 郑州天迈科技股份有限公司 协议转换器仪表远程配置方法
US20210075542A1 (en) * 2019-09-05 2021-03-11 Apple Inc. Phy-based hybrid automatic repeat request (harq)
WO2022105093A1 (zh) * 2020-11-02 2022-05-27 珠海中慧微电子有限公司 一种基于WiSUN协议的移动抄表方法
CN114244648A (zh) * 2022-02-21 2022-03-25 浪潮通用软件有限公司 一种设备主动注册物联网平台的方法、装置、设备及介质
CN114640727A (zh) * 2022-03-30 2022-06-17 深圳市汇川技术股份有限公司 协议解析方法、装置及计算机可读存储介质
CN115086449A (zh) * 2022-05-11 2022-09-20 北京旋极信息技术股份有限公司 一种数据解析方法、装置及计算机可读存储介质
CN115277867A (zh) * 2022-06-23 2022-11-01 青岛东软载波科技股份有限公司 一种采集器及基于采集器的Modbus协议设备的电力通信方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YUNHUA HE ET.AL: "A Sparse Protocol Parsing Method for IIoT Based on BPSO-vote-HMM Hybrid Model", 《 IEEE/ACM TRANSACTIONS ON NETWORKING》, vol. 31, no. 02, 30 April 2023 (2023-04-30) *
魏东;潘瑞锋;王克成;: "单片机总线技术结合Modbus-RTU协议的智能仪表通讯", 辽宁科技大学学报, no. 01, 15 February 2015 (2015-02-15) *

Also Published As

Publication number Publication date
CN117714564B (zh) 2024-04-23

Similar Documents

Publication Publication Date Title
CN109670081B (zh) 业务请求处理的方法及装置
CN111191422B (zh) 一种文件格式转换方法、装置和计算机可读存储介质
CN114500690B (zh) 接口数据处理方法、装置、电子设备及存储介质
CN111258900A (zh) 接口测试脚本的生成方法、系统、设备及存储介质
CN109617754B (zh) 一种实现智能变电站iec61850 通信报文可视化的方法
CN112822276B (zh) 一种变电站站控层通信方法、系统、电子设备及存储介质
CN113691651B (zh) 基于IPv6网络的顶层规划可视化管理方法、系统及存储介质
CN107911381A (zh) 应用程序编程接口的访问方法、系统、服务端及客户端
CN114449018B (zh) 一种电力采集终端的日志文件自动上传方法、系统
CN107580076A (zh) 物联网通信方法及装置
CN110830466B (zh) 一种基于xml的dl/t645规约报文的组帧方法及装置
CN107153539B (zh) 一种文件接口系统
CN113783860B (zh) 一种基于可视化配置的报文处理方法、装置、设备及存储介质
CN117714564B (zh) 一种基于java语言的通用DLT645协议解析方法及设备
CN113220481A (zh) 请求处理及反馈方法、装置、计算机设备及可读存储介质
CN107864199A (zh) 物联网通信方法、装置及物联网通信的实现装置
CN113438226B (zh) 基于混合传输协议的报文生成、解析方法、设备及系统
CN114201176A (zh) 一种智能合约编译匹配方法、装置、设备和存储介质
CN112230929A (zh) 一种cim模型的数据解析方法、装置及存储介质
CN112118162A (zh) 通信系统及其通信方法
CN107896245A (zh) 物联网通信方法、装置及物联网通信的实现装置
CN116841243B (zh) 一种智能化plc协议格式推断方法、模糊测试方法及装置
CN113784306B (zh) 传感数据采集方法、装置、计算机设备和存储介质
CN117978893A (zh) 一种通用Modbus协议解析方法、装置及设备
CN115543755B (zh) 一种性能监管方法、装置、系统、设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant