CN117978893B - 一种通用Modbus协议解析方法、装置及设备 - Google Patents

一种通用Modbus协议解析方法、装置及设备 Download PDF

Info

Publication number
CN117978893B
CN117978893B CN202410391019.7A CN202410391019A CN117978893B CN 117978893 B CN117978893 B CN 117978893B CN 202410391019 A CN202410391019 A CN 202410391019A CN 117978893 B CN117978893 B CN 117978893B
Authority
CN
China
Prior art keywords
configuration file
configuration
frame
command
target
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.)
Active
Application number
CN202410391019.7A
Other languages
English (en)
Other versions
CN117978893A (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 CN202410391019.7A priority Critical patent/CN117978893B/zh
Publication of CN117978893A publication Critical patent/CN117978893A/zh
Application granted granted Critical
Publication of CN117978893B publication Critical patent/CN117978893B/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
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Communication Control (AREA)

Abstract

本申请公开了一种通用Modbus协议解析方法、装置及设备,其方法包括,根据至少一个目标设备的协议,编辑与目标设备对应的第一配置文件;根据第一配置文件,生成第一请求帧并发送至目标设备;响应于第一请求帧对应的第一应答帧,编辑目标设备对应的第二配置文件;根据第二配置文件对应的第二配置信息,生成第二请求帧并发送至目标设备;响应于第二请求帧对应的第二应答帧,对第二应答帧进行拆分,获得第一解析结果;根据第一解析结果,获得目标设备的目标配置参数,以目标配置参数作为第二解析结果。本申请对于不同的Modbus协议端设备,只需要修改对应的配置文件,即可实现对Modbus协议端设备的数据解析。

Description

一种通用Modbus协议解析方法、装置及设备
技术领域
本申请涉及智能电网技术领域,尤其涉及一种通用Modbus协议解析方法、装置及设备。
背景技术
Modbus协议是一种用于电能表通信的协议,主要用于智能电能表和电力管理***之间的通信,通过Modbus协议,电力管理***可以实时获取电能表的电能数据,监控电能使用情况,进行电能计量和结算等操作,从而实现对电能的有效管理和控制。
目前,存在对于Modbus协议端设备,同一类型的Modbus协议端设备的存储地址没有统一的规范,这就会存在不同厂家生产的Modbus协议端设备,报文解析的方式存在差异的情况,所以针对不同厂家的Modbus协议端设备,就需要开发不同的程序进行处理。
发明内容
本申请的主要目的在于提供一种通用Modbus协议解析方法、装置及设备,旨在解决Modbus协议端设备,因同一类型的设备存储地址没有统一的规范,导致针对不同设备,需要开发不同的程序进行报文解析的技术问题。
为实现上述目的,本申请提供一种通用Modbus协议解析方法,包括以下步骤:
根据至少一个目标设备的协议,编辑与目标设备对应的第一配置文件,所述第一配置文件被配置为获取目标设备的第一配置信息,其中,所述目标设备的协议为Modbus协议,所述第一配置文件包括用于表征协议解析信息的配置文件中的至少一项,所述第一配置信息包括至少一项配置参数;
根据所述第一配置文件,生成第一请求帧并发送所述第一请求帧至目标设备;
响应于所述第一请求帧对应的第一应答帧,编辑目标设备对应的第二配置文件;
根据所述第二配置文件对应的第二配置信息,生成第二请求帧并发送所述第二请求帧至目标设备;
响应于所述第二请求帧对应的第二应答帧,对所述第二应答帧进行拆分,获得第一解析结果;
根据所述第一解析结果,获得目标设备的目标配置参数,以所述目标配置参数作为第二解析结果。
可选的,所述根据至少一个目标设备的协议,获得目标设备对应的第一配置文件,所述第一配置文件被配置为获取目标设备的第一配置信息的步骤,包括:
根据目标设备的目标寄存器对应的第一标识,对目标设备的协议进行分解,获得多个第一分解变量和所述多个第一分解变量对应的第一配置参数,以所述第一分解变量和第一配置参数作为协议解析配置文件,其中,所述第一配置参数包括用于表征目标设备状态的数据中的至少一项;
根据预设的调控方案,生成第一遥控命令和第一遥调命令,以所述第一遥控命令和所述第一遥调命令作为调控命令配置文件,所述第一遥控命令和/或所述第一遥调命令被配置为在接收到来自管理平台的第二遥控命令和/或第二遥调命令后,根据第二配置参数和预设的第一拼帧规则,生成设置寄存器的帧;
根据预设的调控方案,生成拼帧命令和第一召测频率命令,以所述拼帧命令和所述第一召测频率命令作为数据召测配置文件,其中,所述拼帧命令被配置为在开始召测后,根据预设的第二拼帧规则,生成读寄存器的帧,所述第一召测频率命令被配置为在接收到第二召测频率命令后,根据第二召测频率命令中的召测任务,定时触发召测请求;
根据预设的调控方案,生成第二召测频率命令,以所述第二召测频率命令作为任务配置文件,所述第二召测频率命令被配置为根据预设的调控方案,生成召测任务;
获取目标设备的地址,以所述目标设备的地址作为档案配置文件中的地址参数;
根据所述协议解析配置文件、所述调控命令配置文件、所述数据召测配置文件、所述任务配置文件和所述档案配置文件,获得所述第一配置文件。
可选的,所述根据所述第一配置文件,生成第一请求帧并发送所述第一请求帧至目标设备的步骤,包括:
根据所述任务配置文件,定时触发召测请求;
根据所述档案配置文件中的地址参数,获得设备地址集合,遍历至少一个目标设备进行召测;
根据所述设备地址集合,读取目标设备对应的数据召测配置文件中的生成的所述读寄存器的帧作为第一请求帧;
发送所述读寄存器的帧至目标设备并记录所述读寄存器的帧对应的寄存器的起始地址。
可选的,所述响应于所述第一请求帧对应的第一应答帧,编辑目标设备对应的第二配置文件的步骤,包括:
根据所述第一应答帧,读取所述第一配置文件,转换所述第一配置文件的格式,获得第二配置文件并定位到对应的目标设备。
可选的,所述根据所述第二配置文件对应的第二配置信息,生成第二请求帧并发送所述第二请求帧至目标设备的步骤,包括:
获取目标设备的设备地址,根据寄存器数量、所述设备地址和所述第一请求帧对应的所述寄存器的起始地址,生成第二请求帧并发送所述第二请求帧至目标设备。
可选的,所述响应于所述第二请求帧对应的第二应答帧,对所述第二应答帧进行拆分,获得第一解析结果的步骤,包括:
响应于所述第二请求帧对应的第二应答帧,根据所述寄存器的起始地址,从所述第二应答帧获取数据域,以所述数据域作为第一解析结果。
可选的,所述根据所述第一解析结果,获得目标设备的目标配置参数,以所述目标配置参数作为第二解析结果的步骤,包括:
依次查询所述数据域对应的第二配置参数,直至取完整个数据域,获得多个第二配置参数;
将多个所述第二配置参数作为第二解析结果并存储。
可选的,在所述根据所述第一解析结果,获得目标设备的目标配置参数,以所述目标配置参数作为第二解析结果的步骤之后,还包括:
发送所述第二解析结果至管理平台;
响应于来自管理平台的第二解析结果对应的调控命令,对目标设备进行调控。
此外,为实现上述目的,本申请还提供一种通用Modbus协议解析装置,包括:
第一编辑模块,所述第一编辑模块用于根据至少一个目标设备的协议,获得与目标设备对应的第一配置文件,所述第一配置文件被配置为获取目标设备的第一配置信息,其中,所述第一配置文件包括用于表征协议解析信息的配置文件中的至少一项,所述第一配置信息包括至少一项配置参数;
第一生成模块,所述第一生成模块用于根据所述第一配置文件,生成第一请求帧并发送所述第一请求帧至目标设备;
第二编辑模块,所述第二编辑模块用于响应于所述第一请求帧对应的第一应答帧,编辑目标设备对应的第二配置文件;
第二生成模块,所述第二生成模块用于根据所述第二配置文件对应的第二配置信息,生成第二请求帧并发送所述第二请求帧至目标设备;
第一解析模块,所述第一解析模块用于响应于所述第二请求帧对应的第二应答帧,对所述第二应答帧进行拆分,获得第一解析结果;
第二解析模块,所述第二解析模块用于根据所述第一解析结果,获得目标设备的目标配置参数,以所述目标配置参数作为第二解析结果;
所述根据至少一个目标设备的协议,获得目标设备对应的第一配置文件的步骤,包括:
根据目标设备的目标寄存器对应的第一标识,对目标设备的协议进行分解,获得多个第一分解变量和所述多个第一分解变量对应的第一配置参数,以所述第一分解变量和第一配置参数作为协议解析配置文件,其中,所述第一配置参数包括用于表征目标设备状态的数据中的至少一项;
根据预设的调控方案,生成第一遥控命令和第一遥调命令,以所述第一遥控命令和所述第一遥调命令作为调控命令配置文件,所述第一遥控命令和/或所述第一遥调命令被配置为在接收到来自管理平台的第二遥控命令和/或第二遥调命令后,根据第二配置参数和预设的第一拼帧规则,生成设置寄存器的帧,其中,所述第二配置参数根据所述第二遥控命令和/或所述第二遥调命令获得;
根据预设的调控方案,生成拼帧命令和第一召测频率命令,以所述拼帧命令和所述第一召测频率命令作为数据召测配置文件,其中,所述拼帧命令被配置为在开始召测后,根据预设的第二拼帧规则,生成读寄存器的帧,所述第一召测频率命令被配置为在接收到第二召测频率命令后,根据第二召测频率命令中的召测任务,定时触发召测请求;
根据预设的调控方案,生成第二召测频率命令,以所述第二召测频率命令作为任务配置文件,所述第二召测频率命令被配置为根据预设的调控方案,生成召测任务;
获取目标设备的地址,以所述目标设备的地址作为档案配置文件中的地址参数;
根据所述协议解析配置文件、所述调控命令配置文件、所述数据召测配置文件、所述任务配置文件和所述档案配置文件,获得所述第一配置文件;
所述响应于所述第一请求帧对应的第一应答帧,编辑目标设备对应的第二配置文件的步骤,包括:
根据所述第一应答帧,读取所述第一配置文件,转换所述第一配置文件的格式,获得第二配置文件并定位到对应的目标设备。
此外,为实现上述目的,本申请还提供一种电子设备,包括:
处理器及存储器,其中,所述存储器用于存储计算机程序;所述处理器用于加载执行所述计算机程序,以使所述电子设备执行上述任一项所述的通用Modbus协议解析方法。
与现有技术相比,本申请的有益效果是:
本申请公开了一种通用Modbus协议解析方法,根据Modbus协议,编辑协议解析配置文件、调控命令配置文件、数据召测配置文件、任务配置文件和档案配置文件,以获取目标设备的至少一项配置参数,向目标设备发送第一请求帧以开启召测,接收第一应答帧后,根据当前目标设备的协议,编辑对应的配置文件并发送第二请求帧,以获取所需要的、当前目标设备的至少一项配置参数,接收第二应答帧后,先进行拆分,获取第二应答帧中的数据域,再进一步解析数据域,完成Modbus协议解析,获得所需要的召测数据,采用本方案,对于不同的Modbus协议端设备,只需要修改对应的配置文件,即可实现对Modbus协议端设备的数据采集和解析,解析完成的结果可以上报至管理平台,或者作为其他业务的输入,至少解决了Modbus协议端设备,因同一类型的设备存储地址没有统一的规范,导致针对不同设备,需要开发不同的程序进行报文解析的技术问题。
附图说明
图1为本申请一种通用Modbus协议解析方法实施例的流程示意图;
图2为本申请一种通用Modbus协议解析装置实施例的功能模块示意图;
图3为图2中的装置实施例应用于电力物联网***的示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
如图1所示,一种通用Modbus协议解析方法,包括:
S1、根据至少一个目标设备的协议,获得与目标设备对应的第一配置文件,第一配置文件被配置为获取目标设备的第一配置信息,其中,第一配置文件包括用于表征协议解析信息的配置文件中的至少一项,第一配置信息包括至少一项配置参数;
可选的,其步骤包括,根据目标设备的目标寄存器对应的第一标识,对目标设备的协议进行分解,获得多个第一分解变量和多个第一分解变量对应的第一配置参数,以第一分解变量和第一配置参数作为协议解析配置文件,其中,第一配置参数包括用于表征目标设备状态的数据中的至少一项,表征目标设备状态的数据可以包括第二标识、第二标识对应的寄存器的起始地址、字节数、小数位和数据类型;
根据预设的调控方案,生成第一遥控命令和第一遥调命令,以第一遥控命令和第一遥调命令作为调控命令配置文件,第一遥控命令和第一遥调命令被配置为在接收到来自管理平台的第二遥控命令和/第二遥调命令后,根据第二配置参数和预设的第一拼帧规则,生成设置寄存器的帧,其中,所述第二配置参数根据所述第二遥控命令和/或所述第二遥调命令获得;
根据预设的调控方案,生成拼帧命令和第一召测频率命令,以拼帧命令和第一召测频率命令作为数据召测配置文件,其中,拼帧命令被配置为在开始召测后,根据预设的第二拼帧规则,生成读寄存器的帧,第一召测频率命令被配置为在接收到第二召测频率命令后,根据第二召测频率命令中的召测任务,定时触发召测请求;
根据预设的调控方案,生成第二召测频率命令,以第二召测频率命令作为任务配置文件,第二召测频率命令被配置为根据预设的调控方案,生成召测任务;
获取目标设备的地址,以目标设备的地址作为档案配置文件中的地址参数;
存储协议解析配置文件、调控命令配置文件、数据召测配置文件、任务配置文件和档案配置文件作为第一配置文件。
具体的,其步骤包括,根据目标设备的Modbus协议,编辑json格式的第一配置文件;
例如,协议解析配置文件的格式如下:
{
"name":"Growatt_5000MTL_S_04",
"cmd":"04,",
"remark":"古瑞瓦特Growatt5000MTL_S_04",
"offset":0,
"childNodes":
{
"name":"status"
"addr":"0"
"remark":"状态0:等待态,1:运行态,3:故障态"
"length":2,
"degree":"",
"fieldType":"unsigned8"
"unit":"
},
{
"name":"P_PV",
"addr":"1",
"remark":"输入功率",
"length":4,
"degree":"0.1",
"fieldrype":"decstring",
"unit":"w"
},
{
"name":"V_PVl",
"addr":"3",
"remark":"PV1 电压",
"length":2,
"deqree":"0.1,
"fieldrype":"decstring",
"unit":"V"
}
}
其中,"name":"Growatt_5000MTL_S_04"中的"name"为第一标识,可以是区分不同的厂家及型号的不同寄存器唯一标识,也可以是目标设备的目标寄存器对应的标识,也可以是目标设备寄存器的型号,协议相同,则可使用同一型号,cmd为该类型寄存器的访问命令代码,childNodes为该协议的分解,"name":"status"、"name":"P_PV"和"name":"V_PVl"为解析后,存储和上报的字段名称,其对应的"name"即第二标识,addr表示对应寄存器的起始地址,length为该变量的字节数(寄存器个数*2),degree表示小数位数,fieldType表示数据类型,unit表示变量的单位,"remark"后的"状态0:等待态,1:运行态,3:故障态"、"输入功率"、和"PV1 电压"即第一分解变量;
第一遥控命令的格式如下:
{
"cmdKey":"PvInvRemCtl_TrCtl_close",
"cmdType" :"06",
"addr":"0",
"dataType":1",
desc":"0000",
}
{
"cmdKey":"PvInvRemCtl_Trctl_open",
"cmdType" :"06"
"addr":"0"
"dataType":1",
desc":"0001"
}
第一遥调命令的格式如下:
{
"cmdKey":"PESta_MEM",
cmdType":"06",
"addr":"2",
"dataType":1,
"desc":"指令记忆状态位"
}
其中,cmdKey表示命令或参数名称,cmdType表示modbus的命令代码,addr表示寄存器地址,dataType表示数据类型(1表示直接转成16进制),desc遥控命令中该值表示执行命令要写入的值(16进制);
当收到来自物管平台的第二遥控命令和/或第二遥调命令后,可根据第二遥控命令和/或第二遥调命令,获得第二配置参数,将第二配置参数的名称与cmdKey对应,得到对应需要设置的寄存器地址和类型,再结合预设的第一拼帧规则生成设置寄存器的帧后发送至目标设备;
设置寄存器的帧的格式如下表1所示;
表1:
第一召测频率命令的格式如下:
{
"pwModel":"Growatt_TH_275_00",
"taskName":"15min",
"framestr :"04,0,37",
"description":"古瑞瓦特H-275-00状态、电压、输入电流、输入功率"
}
其中,pvModel表示型号,taskName表示召测频率,frameStr表示拼帧参数,"framestr :"04,0,37"中的04、0和37依次表示命令代码、起始地址、寄存器数量;
第二召测频率命令的格式如下:
{
"ltu_pv_inv_read_data_task": "0 0/15 * * * ?",
"ltu_pv_inv_read_data_task_hour": "0 0 0/* * ?"
}
与"taskName:"对应,分别用于召测频率的单位为分钟和小时的情况。
当收到第二召测频率命令后,第一召测频率命令根据第二召测频率命令中的召测任务设置,定时触发召测请求。
S2、根据第一配置文件,生成第一请求帧并发送第一请求帧至目标设备;
可选的,其步骤包括:
根据任务配置文件,定时触发召测请求;
根据档案配置文件中的地址参数,获得设备地址集合,遍历至少一个目标设备进行召测;
根据设备地址集合,读取目标设备对应的数据召测配置文件中的生成的读寄存器的帧作为第一请求帧;
发送读寄存器的帧至目标设备,并记录读寄存器的帧对应的寄存器的起始地址;
具体的,根据第二拼帧规则,生成的读寄存器的帧的格式如下表2所示;
表2:
S3、响应于第一请求帧对应的第一应答帧,编辑目标设备对应的第二配置文件;
可选的,其步骤包括,根据第一应答帧,读取第一配置文件,转换第一配置文件的格式,获得第二配置文件并定位到对应的目标设备;
具体的,其步骤包括,读取第一配置文件,得到json格式的字串,将其转换为map集合(List<Map>);
根据设备名称,定位到对应的目标设备,其中,设备名称可以由型号和命令代码组成,例如,对于"name":"Growatt_5000MTL_S_04",Growatt_5000MTL_S为型号,04为命令代码,"Growatt_5000MTL_S_04"即为设备名称;
当收到第一应答帧或超时未收到第一应答帧后,进行下一项召测。
S4、根据第二配置文件对应的第二配置信息,生成第二请求帧并发送第二请求帧至目标设备;
可选的,其步骤包括,获取目标设备的设备地址,根据寄存器数量、设备地址和第一请求帧对应的寄存器的起始地址,生成第二请求帧并发送第二请求帧至目标设备;
具体的,例如,需要读取【固德威光伏逆变器】的【电流R/S/T相大小】、【电压R/S/T相大小】,生成的第二请求帧为:F7 03 03 E8 00 0C D1 29,其中,F7表示设备地址,03表示读取多个寄存器,03 E8表示起始地址转换成十进制(等于1000),00 0C表示读取个数转换为十进制(等于12),D1 29表示校验位,记录当前起始地址为1000。
S5、响应于第二请求帧对应的第二应答帧,对第二应答帧进行拆分,获得第一解析结果;
可选的,其步骤包括,响应于第二请求帧对应的第二应答帧,根据寄存器的起始地址,从第二应答帧获取数据域,以数据域作为第一解析结果;
具体的,例如,步骤S4中第二请求帧对应的第二应答帧为F7 03 18 00 00 00 3E00 00 00 3F 00 00 00 42 00 00 0F F2 00 00 0F CC 00 00 0F E8 54 6C,前3个byte分别是F7设备地址、03功能码和18数据域长度(换成十进制等于24),剩余的除了最后两个byte,最后两个byte为校验位,其他都为数据域。
S6、根据第一解析结果,获得目标设备的目标配置参数,以目标配置参数作为第二解析结果;
可选的,其步骤包括,依次查询数据域对应的第二配置参数,直至取完整个数据域,获得多个第二配置参数;
将多个第二配置参数作为第二解析结果并存储;
具体的,例如,在步骤S5中,将第二应答帧拆分之后,得到数据域为00 00 00 3E00 00 00 3F 00 00 00 42 00 00 0F F2 00 00 0F CC 00 00 0F E8,根据步骤S4中记录的起始地址,查询到对应的配置参数如下:
{
"name":"A_phsR",
"addr":"1000",
"remark":"电流R相大小",
"length":4,
"degree":"0.1",
"fieldType":" decimal ",
"unit":"A"
}
得到第一个值的属性为长度4byte、一位小数、数据类型为数值型,单位为A(安培),即从数据域中第一位开始取4byte得到的值为00 00 00 3E转换十进制为62再乘以0.1最终值为6.2A,同时,以【name】为键值存入步骤S3的map集合(List<Map>)中;
将地址加上长度除以二(每个寄存器为2byte),得到下一个值的起始地址:1000+4÷2=1002根据起始地址查询到的配置参数如下:
{
"name":"A_phsS",
"addr":"1002",
"remark":"电流S相大小",
"length":4,
"degree":"0.1",
"fieldType":"decimal",
"unit":"A"
}
得到该值的属性:长度4byte、一位小数、数据类型为数值型,单位为A(安培),从数据域中第4位开始取4byte得到的值为00 00 00 3F转换十进制为63再乘以0.1最终值为6.3A,以【name】为键值存入map集合(List<Map>)中;
以此类推,直到取完整个数据域,将最终得到的map集合(List<Map>)内容为A_phsR=6.2,A_phsS=6.3,A_phsT=6.6,PhV_phsR=408.2,PhV_phsS=404.4, PhV_phsT=407.2。
可选的,还包括:
S7、发送第二解析结果至管理平台;
具体的,其步骤包括,将map集合(List<Map>)发送至管理平台。
S8、响应于来自管理平台的第二解析结果对应的调控命令,对目标设备进行调控;
具体的,其步骤包括,接收来自管理平台下发的第二遥控命令和/或第二遥调命令并解析,获得第二配置参数和第二配置参数对应的目标值;
读取第一配置文件,获得对应第一配置参数和设备地址,其中,第一配置参数可以包括第二标识、第二标识对应的寄存器的起始地址、字节数、小数位和数据类型;
根据第二遥控命令和/或第二遥调命令的命令类型,以及寄存器的起始地址,生成设置寄存器的帧并发送至目标设备;
例如,收到的命令是要修改【指令记忆状态位(PFSta_MEM)】为0,根据对应第一配置参数和设备地址,
{
"cmdKey":"PFSta_MEM",
"cmdType":"06",
"addr":"2",
"dataType":1,
"desc":"指令记忆状态位"
}
得到寄存器的起始地址为2,第二遥控命令和/第二遥调命令的命令类型为06,生成的设置寄存器的帧为11 06 00 02 00 01 EB 5A。
实施例2
参照图2,本实施例在实施例1的基础上提供一个具体的实现方案,一种通用Modbus协议解析装置,包括:
第一编辑模块,第一编辑模块用于根据至少一个目标设备的协议,获得与目标设备对应的第一配置文件,第一配置文件被配置为获取目标设备的第一配置信息,其中,第一配置文件包括用于表征协议解析信息的配置文件中的至少一项,第一配置信息包括至少一项配置参数;
第一生成模块用于根据第一配置文件,生成第一请求帧并发送第一请求帧至目标设备;
第二编辑模块,第二编辑模块用于响应于第一请求帧对应的第一应答帧,编辑目标设备对应的第二配置文件;
第二生成模块,第二生成模块用于根据第二配置文件对应的第二配置信息,生成第二请求帧并发送第二请求帧至目标设备;
第一解析模块,第一解析模块用于响应于第二请求帧对应的第二应答帧,对第二应答帧进行拆分,获得第一解析结果;
第二解析模块,第二解析模块用于根据第一解析结果,获得目标设备的目标配置参数,以目标配置参数作为第二解析结果。
实施例3
参照图3,本实施例在实施例2的基础上提供一个具体的实现方案,一种电力物联网***,包括管理平台、通用Modbus协议解析装置和多个Modbus协议端设备,其中,Modbus协议端设备有多种类型,例如,串口服务器,智能电表。
实施例4
一种电子设备,包括处理器及存储器,其中,所述存储器用于存储计算机程序;所述处理器用于加载执行所述计算机程序,以使所述电子设备执行上述任一方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。计算机可以是包括智能终端和服务器在内的各种计算设备。
在本公开的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取非易失性存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个非易失性存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例方法的全部或部分步骤。而前述的非易失性存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅是本公开的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本公开的保护范围。

Claims (8)

1.一种通用Modbus协议解析方法,其特征在于,包括以下步骤:
根据至少一个目标设备的协议,编辑与目标设备对应的第一配置文件,所述第一配置文件被配置为获取目标设备的第一配置信息,其中,所述目标设备的协议为Modbus协议,所述第一配置文件包括用于表征协议解析信息的配置文件中的至少一项,所述第一配置信息包括至少一项配置参数;
根据所述第一配置文件,生成第一请求帧并发送所述第一请求帧至目标设备;
响应于所述第一请求帧对应的第一应答帧,编辑目标设备对应的第二配置文件;
根据所述第二配置文件对应的第二配置信息,生成第二请求帧并发送所述第二请求帧至目标设备;
响应于所述第二请求帧对应的第二应答帧,对所述第二应答帧进行拆分,获得第一解析结果;
根据所述第一解析结果,获得目标设备的目标配置参数,以所述目标配置参数作为第二解析结果;
所述根据至少一个目标设备的协议,获得目标设备对应的第一配置文件的步骤,包括:
根据目标设备的目标寄存器对应的第一标识,对目标设备的协议进行分解,获得多个第一分解变量和所述多个第一分解变量对应的第一配置参数,以所述第一分解变量和第一配置参数作为协议解析配置文件,其中,所述第一配置参数包括用于表征目标设备状态的数据中的至少一项;
根据预设的调控方案,生成第一遥控命令和第一遥调命令,以所述第一遥控命令和所述第一遥调命令作为调控命令配置文件,所述第一遥控命令和/或所述第一遥调命令被配置为在接收到来自管理平台的第二遥控命令和/或第二遥调命令后,根据第二配置参数和预设的第一拼帧规则,生成设置寄存器的帧,其中,所述第二配置参数根据所述第二遥控命令和/或所述第二遥调命令获得;
根据预设的调控方案,生成拼帧命令和第一召测频率命令,以所述拼帧命令和所述第一召测频率命令作为数据召测配置文件,其中,所述拼帧命令被配置为在开始召测后,根据预设的第二拼帧规则,生成读寄存器的帧,所述第一召测频率命令被配置为在接收到第二召测频率命令后,根据第二召测频率命令中的召测任务,定时触发召测请求;
根据预设的调控方案,生成第二召测频率命令,以所述第二召测频率命令作为任务配置文件,所述第二召测频率命令被配置为根据预设的调控方案,生成召测任务;
获取目标设备的地址,以所述目标设备的地址作为档案配置文件中的地址参数;
根据所述协议解析配置文件、所述调控命令配置文件、所述数据召测配置文件、所述任务配置文件和所述档案配置文件,获得所述第一配置文件;
所述响应于所述第一请求帧对应的第一应答帧,编辑目标设备对应的第二配置文件的步骤,包括:
根据所述第一应答帧,读取所述第一配置文件,转换所述第一配置文件的格式,获得第二配置文件并定位到对应的目标设备。
2.如权利要求1所述的一种通用Modbus协议解析方法,其特征在于,所述根据所述第一配置文件,生成第一请求帧并发送所述第一请求帧至目标设备的步骤,包括:
根据所述任务配置文件,定时触发召测请求;
根据所述档案配置文件中的地址参数,获得设备地址集合,遍历至少一个目标设备进行召测;
根据所述设备地址集合,读取目标设备对应的数据召测配置文件中的生成的所述读寄存器的帧作为第一请求帧;
发送所述读寄存器的帧至目标设备并记录所述读寄存器的帧对应的寄存器的起始地址。
3.如权利要求1所述的一种通用Modbus协议解析方法,其特征在于,所述根据所述第二配置文件对应的第二配置信息,生成第二请求帧并发送所述第二请求帧至目标设备的步骤,包括:
获取目标设备的设备地址,根据寄存器数量、所述设备地址和所述第一请求帧对应的所述寄存器的起始地址,生成第二请求帧并发送所述第二请求帧至目标设备。
4.如权利要求1所述的一种通用Modbus协议解析方法,其特征在于,所述响应于所述第二请求帧对应的第二应答帧,对所述第二应答帧进行拆分,获得第一解析结果的步骤,包括:
响应于所述第二请求帧对应的第二应答帧,根据所述寄存器的起始地址,从所述第二应答帧获取数据域,以所述数据域作为第一解析结果。
5.如权利要求4所述的一种通用Modbus协议解析方法,其特征在于,所述根据所述第一解析结果,获得目标设备的目标配置参数,以所述目标配置参数作为第二解析结果的步骤,包括:
依次查询所述数据域对应的第二配置参数,直至取完整个数据域,获得多个第二配置参数;
将多个所述第二配置参数作为第二解析结果并存储。
6.如权利要求1所述的一种通用Modbus协议解析方法,其特征在于,在所述根据所述第一解析结果,获得目标设备的目标配置参数,以所述目标配置参数作为第二解析结果的步骤之后,还包括:
发送所述第二解析结果至管理平台;
响应于来自管理平台的第二解析结果对应的调控命令,对目标设备进行调控。
7.一种通用Modbus协议解析装置,其特征在于,包括:
第一编辑模块,所述第一编辑模块用于根据至少一个目标设备的协议,编辑与目标设备对应的第一配置文件,所述第一配置文件被配置为获取目标设备的第一配置信息,其中,所述目标设备的协议为Modbus协议,所述第一配置文件包括用于表征协议解析信息的配置文件中的至少一项,所述第一配置信息包括至少一项配置参数;
第一生成模块,所述第一生成模块用于根据所述第一配置文件,生成第一请求帧并发送所述第一请求帧至目标设备;
第二编辑模块,所述第二编辑模块用于响应于所述第一请求帧对应的第一应答帧,编辑目标设备对应的第二配置文件;
第二生成模块,所述第二生成模块用于根据所述第二配置文件对应的第二配置信息,生成第二请求帧并发送所述第二请求帧至目标设备;
第一解析模块,所述第一解析模块用于响应于所述第二请求帧对应的第二应答帧,对所述第二应答帧进行拆分,获得第一解析结果;
第二解析模块,所述第二解析模块用于根据所述第一解析结果,获得目标设备的目标配置参数,以所述目标配置参数作为第二解析结果;
所述根据至少一个目标设备的协议,获得目标设备对应的第一配置文件的步骤,包括:
根据目标设备的目标寄存器对应的第一标识,对目标设备的协议进行分解,获得多个第一分解变量和所述多个第一分解变量对应的第一配置参数,以所述第一分解变量和第一配置参数作为协议解析配置文件,其中,所述第一配置参数包括用于表征目标设备状态的数据中的至少一项;
根据预设的调控方案,生成第一遥控命令和第一遥调命令,以所述第一遥控命令和所述第一遥调命令作为调控命令配置文件,所述第一遥控命令和/或所述第一遥调命令被配置为在接收到来自管理平台的第二遥控命令和/或第二遥调命令后,根据第二配置参数和预设的第一拼帧规则,生成设置寄存器的帧,其中,所述第二配置参数根据所述第二遥控命令和/或所述第二遥调命令获得;
根据预设的调控方案,生成拼帧命令和第一召测频率命令,以所述拼帧命令和所述第一召测频率命令作为数据召测配置文件,其中,所述拼帧命令被配置为在开始召测后,根据预设的第二拼帧规则,生成读寄存器的帧,所述第一召测频率命令被配置为在接收到第二召测频率命令后,根据第二召测频率命令中的召测任务,定时触发召测请求;
根据预设的调控方案,生成第二召测频率命令,以所述第二召测频率命令作为任务配置文件,所述第二召测频率命令被配置为根据预设的调控方案,生成召测任务;
获取目标设备的地址,以所述目标设备的地址作为档案配置文件中的地址参数;
根据所述协议解析配置文件、所述调控命令配置文件、所述数据召测配置文件、所述任务配置文件和所述档案配置文件,获得所述第一配置文件;
所述响应于所述第一请求帧对应的第一应答帧,编辑目标设备对应的第二配置文件的步骤,包括:
根据所述第一应答帧,读取所述第一配置文件,转换所述第一配置文件的格式,获得第二配置文件并定位到对应的目标设备。
8.一种电子设备,其特征在于,包括:
处理器及存储器,其中,所述存储器用于存储计算机程序;所述处理器用于加载执行所述计算机程序,以使所述电子设备执行如权利要求1-6中任一项所述的通用Modbus协议解析方法。
CN202410391019.7A 2024-04-02 2024-04-02 一种通用Modbus协议解析方法、装置及设备 Active CN117978893B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410391019.7A CN117978893B (zh) 2024-04-02 2024-04-02 一种通用Modbus协议解析方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410391019.7A CN117978893B (zh) 2024-04-02 2024-04-02 一种通用Modbus协议解析方法、装置及设备

Publications (2)

Publication Number Publication Date
CN117978893A CN117978893A (zh) 2024-05-03
CN117978893B true CN117978893B (zh) 2024-06-14

Family

ID=90856786

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410391019.7A Active CN117978893B (zh) 2024-04-02 2024-04-02 一种通用Modbus协议解析方法、装置及设备

Country Status (1)

Country Link
CN (1) CN117978893B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112995133A (zh) * 2021-02-02 2021-06-18 深圳市科陆电子科技股份有限公司 基于modbus协议的解析方法、装置及***
CN117176840A (zh) * 2023-11-02 2023-12-05 成都汉度科技有限公司 一种通信协议辨识方法及***

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10057382B2 (en) * 2015-09-24 2018-08-21 Amrita Vishwa Vidyapeetham Intelligent “IoT gateway”
WO2021038271A2 (en) * 2019-08-24 2021-03-04 Hussaini Al Anizi Abdullah Mufadhi Fadgham Al System and method for establishing communications, attaining evaluation and feedback regarding multiple categories
CN111130883B (zh) * 2019-12-25 2022-12-30 杭州安恒信息技术股份有限公司 工控设备拓扑图的确定方法、装置及电子设备
CN112261061B (zh) * 2020-11-03 2022-07-19 合沃物联技术(南京)有限公司 一种基于工业物联网关的设备多协议解析方法
CN114338849A (zh) * 2021-12-23 2022-04-12 瀚云科技有限公司 一种协议报文处理方法、装置、电子设备及存储介质
CN115242890A (zh) * 2022-06-14 2022-10-25 深圳市老狗科技有限公司 一种基于微码的通用工业协议转换方法
CN115733873A (zh) * 2022-11-21 2023-03-03 青岛东软载波科技股份有限公司 一种基于能源路由器设备模型化配置文件的数据抄读方法
CN116614326A (zh) * 2023-05-18 2023-08-18 珠海瑞捷电气股份有限公司 一种基于单通道多设备的modbus通信方法
CN116915875B (zh) * 2023-09-12 2023-12-05 深圳市天思智慧科技有限公司 一种物联网关解析modbus设备的通用方法及modbus***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112995133A (zh) * 2021-02-02 2021-06-18 深圳市科陆电子科技股份有限公司 基于modbus协议的解析方法、装置及***
CN117176840A (zh) * 2023-11-02 2023-12-05 成都汉度科技有限公司 一种通信协议辨识方法及***

Also Published As

Publication number Publication date
CN117978893A (zh) 2024-05-03

Similar Documents

Publication Publication Date Title
CN112631633B (zh) 基于双芯智能电表的功能模块升级方法和装置
CN112395187A (zh) 测试方法、***、计算机设备及存储介质
CN112488745A (zh) 一种智能费控管理方法、装置、设备和存储介质
CN113656357A (zh) 文件管理方法、装置、***及存储介质
CN114489711A (zh) 终端升级方法、装置及存储介质
CN111198709A (zh) 一种rpm软件包管理方法、***、装置及可读存储介质
CN117978893B (zh) 一种通用Modbus协议解析方法、装置及设备
CN111078588B (zh) 垃圾回收方法、装置、设备及存储介质
CN114745448B (zh) 一种多通道规约适配处理方法、***及装置
CN115714933A (zh) 一种采集器适配电表的方法、***、介质及设备
CN116055538A (zh) 一种物联网设备的控制方法、装置、终端设备及存储介质
CN113176973B (zh) Psu电源黑盒日志时间戳记录方法、装置、设备及介质
CN111651338B (zh) 日志格式化时间的获取***及其方法
CN112230929B (zh) 一种cim模型的数据解析方法、装置及存储介质
CN114201176A (zh) 一种智能合约编译匹配方法、装置、设备和存储介质
CN117714564B (zh) 一种基于java语言的通用DLT645协议解析方法及设备
CN110852743A (zh) 一种数据获取方法及装置
CN108121711B (zh) 一种数据处理方法和客户端设备
CN112965694B (zh) 一种数据处理方法、装置、设备及存储介质
CN115129544B (zh) 一种raid日志的带外一键获取方法、***、装置及存储介质
CN112582014B (zh) 一种固态硬盘批量生产方法、装置、设备及介质
CN114296357B (zh) 功能数据的处理方法及装置、电子设备、存储介质
JP7426490B2 (ja) オンラインオフィスネットワーク擾乱処理方法及び装置
CN111626794B (zh) 一种电费计算方法、装置、***、电子设备和存储介质
CN114495363B (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