CN111800524B - Modbus报文中多路数据原地址的解析方法 - Google Patents

Modbus报文中多路数据原地址的解析方法 Download PDF

Info

Publication number
CN111800524B
CN111800524B CN202010664551.3A CN202010664551A CN111800524B CN 111800524 B CN111800524 B CN 111800524B CN 202010664551 A CN202010664551 A CN 202010664551A CN 111800524 B CN111800524 B CN 111800524B
Authority
CN
China
Prior art keywords
data
address
modbus
analysis
parameter
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
CN202010664551.3A
Other languages
English (en)
Other versions
CN111800524A (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.)
Hebei Create Instrumentation Technologies Co ltd
Original Assignee
Hebei Create Instrumentation Technologies 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 Hebei Create Instrumentation Technologies Co ltd filed Critical Hebei Create Instrumentation Technologies Co ltd
Priority to CN202010664551.3A priority Critical patent/CN111800524B/zh
Publication of CN111800524A publication Critical patent/CN111800524A/zh
Application granted granted Critical
Publication of CN111800524B publication Critical patent/CN111800524B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40228Modbus

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

本发明公开了一种Modbus报文中多路数据原地址的解析方法,该方法为计算得到数据偏移地址,利用原地址解析算法计算出在数据域中参数的数据截取索引地址,将数据截取索引地址、Modbus中数据域部分解析得到的数据进行不同进制的数据转换,完成数据解析。本发明直接使用说明书中或通信规约中的原地址,降低技术使用难度,操作人员不需要过多了解Modbus的报文技术。且数学运算并不影响程序的执行性能,在开发中结构清晰,为上层应用开发中提供人性化设计提供支持。本发明适用于所有采用Modbus协议通信的系统。

Description

Modbus报文中多路数据原地址的解析方法
技术领域
本发明属于工业物联网领域,涉及一种数据地址的解析方法,具体地说是一种Modbus报文中多路数据原地址解析方法。
背景技术
MODBUS-RTU协议是被广泛应用于电子控制器上的一种串行通信协议,Modbus网络由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。通过此协议和网络,控制器之间、控制器和其它设备之间可以通信,且能够实现不同厂商生产的控制设备可以连成工业网络,进行集中监控。
Modbus协议是一种master/slave架构的协议,Modbus信息中的所有数据地址以零作为基准,各项数据的第一个数据地址的编号为0,编码机制是每8位算作一个单位。Modbus寻址空间由256个不同地址组成,地址0为广播地址,所有从站地址必须识别广播地址,因此在开发物联网应用系统中必然涉及到报文的数据解析问题。
而目前所有采用Modbus协议的控制系统中,普遍采取的数据解析方法为:采集的响应数据中,应用层程序通常事先定义好相对地址和数据长度与此路参数的对应关系,即使用相对地址,提前做好转换和对应关系,人为数一下索引地址然后截取响应报文中的数据。上述的方法对于非专业人员配置参数时,由于非专业人员对于协议的不理解,势必造成一定障碍和技术难度,进而无法完成参数的配置。
发明内容
本发明的目的是,提供一种Modbus报文中多数据原地址解析方法,以实现非专业人士在控制系统中轻松完成参数配置的目的。
为实现上述目的,本发明提供了一种Modbus报文中多路数据原地址的解析方法,利用设备通信规约中的寄存器起始地址、Modbus中的寄存器读开始地址计算得到数据偏移地址,然后将解析得到的数据偏移地址的数据类型与通信规约中的参数地址利用原地址解析算法,计算出在数据域中参数的数据截取索引地址;最后将数据截取索引地址、Modbus中数据域部分解析得到的数据进行不同进制的数据转换,完成数据解析。
作为对本发明的限定,包括依次进行的以下步骤:
一、根据报文内容,将字节数组的地址信息,功能码,数据长度,校验部分截取掉,取出数据部分,完成对Modbus中数据域部分的解析;
二、输入设备通信规约中的寄存器起始地址,参数地址;
三、根据Modbus中的寄存器读开始地址和寄存器起始地址计算出数据的偏移地址;
四、根据偏移地址数据的数据类型,计算出在数据域中参数的数据开始地址和数据结束地址;
五、将步骤一中得到的数据与步骤四中得到的数据进行16进制数据转换,完成数据解析。
作为对步骤三的限定:所述步骤三中偏移地址的计算方法为:偏移地址=寄存器起始地址-寄存器读开始地址+1。
作为对步骤四的限定:所述步骤四中数据开始地址的计算方法为:
数据开始地址=2*(起始参数地址的首位端点-寄存器读开始地址-偏移地址);
数据结束地址=数据开始地址+2*(起始参数地址的末位端点-起始参数地址的最左端地址+1)。
作为对步骤五的限定:所述步骤五中做16进制数据转换,完成数据解析的过程为:得到参数的索引地址后取出数据,并进行16进制数据转换形成编码,然后进制转换得到10进制数据。
由于采用了上述的技术方案,与现有技术相比,所取得的有益效果是:
本发明的数据解析方法不需要人为对索引地址进行数量上的计数,只需按照设备通信规约中的地址输入,本发明的算法根据各个地址数据即可计算出需要的截取索引地址,解决了现有技术中数据解析存在的遇到多参数需要多次计算,不够灵活,且易出错,非专业人员无法读取理解的问题。不仅方便数据转换,解析得到的数据具有直观、高性能、易操作、避免误操作的优点。且多参数同样适用,为上层应用提供功能上支持。
综上所述,本发明直接使用说明书中或通信规约中的原地址,降低技术使用难度,操作人员不需要过多了解Modbus的报文技术。且数学运算并不影响程序的执行性能,在开发中结构清晰,为上层应用开发中提供人性化设计提供支持。
本发明适用于所有采用Modbus协议通信的系统。
附图说明
下面结合附图及具体实施例对本发明作更进一步详细说明。
图1为本发明的原理框图;
图2为本发明实施例的读指令对应关系图;
图3为本发明实施例的响应数据对应关系图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明。应当理解,此处所描述的优选实施例仅用于说明和理解本发明,并不用于限定本发明。
实施例1 一种传感器通信系统中规约中的Modbus报文中多路数据原地址解析方法
本实施例中寄存器定义如表1所示
表1
Figure 72088DEST_PATH_IMAGE001
本实施例中寄存器的测量参数如表2所示
表2
Figure DEST_PATH_IMAGE002
如果Modbus读指令为:01 03 00 01 00 18 14 00 ,则对应关系如图2所示;
而Modbus响应数据为:
01 03 30 07 D0 00 00 02 B9 02 1E 00 00 00 02 00 04 FF FF FF FF FF FFFF FF FF FF FF FF 01 02 01 09 00 00 FF FF FF FF FF FF F9 16 FA F6 00 00 00 5006 EA 83 27 ,对应关系如图3所示。
依据上述的读指令及相应数据,对其进行报文多路数据原地址解析,如图1所示,包括依次进行的以下步骤:
一、根据报文内容,将字节数组的地址信息,功能码,数据长度,校验部分截取掉,取出数据部分,完成对Modbus中数据域部分的解析。
即将上述的相应数据截取后的数据为:
07 D0 00 00 02 B9 02 1E 00 00 00 02 00 04 FF FF FF FF FF FF FF FF FFFF FF FF 01 02 01 09 00 00 FF FF FF FF FF FF F9 16 FA F6 00 00 00 50 06 EA
二、由说明书或设备通信规约中找到寄存器起始地址(StartDx )、参数地址(ItemDx),这两个地址作为输入型参数。
本步骤中于上述表2所显示的传感器通信规约中,取传感器通信规约中的pH下测量的mV值,那么该数值的StartDx = 40001,BeginDxAddr = 1, ItemDx = 40003~40004。
三、根据Modbus中的寄存器读开始地址(BeginDxAddr)和寄存器起始地址(StartDx)计算出数据的偏移地址(offset)。
本步骤中offset的计算方法为:offset = StartDx - BeginDxAddr + 1。
本实施中通信规约中得知StartDx = 40001,BeginDxAddr = 1,因此,本实施例中的offset = 40001 - 1 + 1 = 40001。
四、根据偏移地址数据的数据类型,计算出在数据域中参数的数据截取索引地址,其中,参数的数据截取索引地址包括数据开始地址(FromDataIndex)和数据结束地址(ToDataIndex)。
本步骤中FromDataIndex与ToDataIndex的计算方法分别为:
FromDataIndex=2 *( ItemDx1 - BeginDxAddr - offset),
ToDataIndex = FromDataIndex + 2 * (ItemDx2 - ItemDx1 + 1);
上述公式中ItemDx1为起始参数地址的首位端点,ItemDx2为起始参数地址的末位端点,因此本实施例中pH下主测量值为32位浮点型,对应寄存器的参数地址为40003~40004,因此本实施例中ItemDx = 40003~40004 ,ItemDx1 = 40003,itemDx2 = 40004
将上述数据数据带入公式后,计算得到:
FromDataIndex = 2 * (40003 - 1 - 40001 ) = 2;
ToDataIndex = 2 + 2 *( 40004 - 40003 +1) = 6。
五、将步骤一中得到的数据与步骤四中得到的数据进行16进制数据转换,完成数据解析。
本实施例中做16进制数据转换,完成数据解析。得到参数的索引地址即FromDataIndex =2、ToDataIndex)=6后,可取出数据“00 02 B9 02”进行进制转换,编码方式可以查询说明书(通常3412,1234),进制转换得到10进制数据值6.97。

Claims (6)

1.一种Modbus报文中多路数据原地址的解析方法,其特征在于,利用设备通信规约中的寄存器起始地址、Modbus中的寄存器读开始地址计算得到数据偏移地址,然后将解析得到的数据偏移地址的数据类型与通信规约中的参数地址利用原地址解析算法,计算出在数据域中参数的数据截取索引地址;最后将数据截取索引地址、Modbus中数据域部分解析得到的数据进行不同进制的数据转换,完成数据解析。
2.根据权利要求1所述的Modbus报文中多路数据原地址的解析方法,其特征在于, 包括依次进行的以下步骤:
一、根据报文内容,将字节数组的地址信息,功能码,数据长度,校验部分截取掉,取出数据部分,完成对Modbus中数据域部分的解析;
二、输入设备通信规约中的寄存器起始地址,参数地址;
三、根据Modbus中的寄存器读开始地址和寄存器起始地址计算出数据的偏移地址;
四、根据偏移地址数据的数据类型,计算出在数据域中参数的数据开始地址和数据结束地址;
五、将步骤一中得到的数据与步骤四中得到的数据进行16进制数据转换,完成数据解析。
3.根据权利要求2所述的Modbus报文中多路数据原地址的解析方法,其特征在于,所述步骤三中偏移地址的计算方法为:偏移地址=寄存器起始地址-寄存器读开始地址+1。
4.根据权利要求2或3所述的Modbus报文中多路数据原地址的解析方法,其特征在于,所述步骤四中数据开始地址的计算方法为:
数据开始地址=2*(起始参数地址的首位端点-寄存器读开始地址-偏移地址);
数据结束地址=数据开始地址+2*(起始参数地址的末位端点-起始参数地址的最左端地址+1)。
5.根据权利要求2或3所述的Modbus报文中多路数据原地址的解析方法,其特征在于,所述步骤五中做16进制数据转换,完成数据解析的过程为:得到参数的索引地址后取出数据,并进行16进制数据转换形成编码,然后进制转换得到10进制数据。
6.根据权利要求4中所述的Modbus报文中多路数据原地址的解析方法,其特征在于,所述步骤五中做16进制数据转换,完成数据解析的过程为:得到参数的索引地址后取出数据,并进行16进制数据转换形成编码,然后进制转换得到10进制数据。
CN202010664551.3A 2020-07-10 2020-07-10 Modbus报文中多路数据原地址的解析方法 Active CN111800524B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010664551.3A CN111800524B (zh) 2020-07-10 2020-07-10 Modbus报文中多路数据原地址的解析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010664551.3A CN111800524B (zh) 2020-07-10 2020-07-10 Modbus报文中多路数据原地址的解析方法

Publications (2)

Publication Number Publication Date
CN111800524A CN111800524A (zh) 2020-10-20
CN111800524B true CN111800524B (zh) 2022-10-14

Family

ID=72806975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010664551.3A Active CN111800524B (zh) 2020-07-10 2020-07-10 Modbus报文中多路数据原地址的解析方法

Country Status (1)

Country Link
CN (1) CN111800524B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112462655B (zh) * 2020-11-19 2023-09-01 北京大华无线电仪器有限责任公司 一种仪器仪表内部通讯方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425312A (zh) * 2012-06-11 2013-12-04 上海理工大学 一种基于arm的触摸屏文件编译和解码方法
CN105808549A (zh) * 2014-12-30 2016-07-27 施耐德电器工业公司 基于映射文件自动组帧及分析帧的客户端方法
CN107222458A (zh) * 2017-04-17 2017-09-29 珠海格力电器股份有限公司 一种兼容Modbus协议的BACnet协议栈的数据处理方法及系统
CN108280030A (zh) * 2018-01-12 2018-07-13 厦门科灿信息技术有限公司 一种寄存器地址的分配方法、系统及相关装置
CN108319178A (zh) * 2017-01-16 2018-07-24 浙江正泰电器股份有限公司 变频器和自动获取产品内部参数信息的方法
CN110417764A (zh) * 2019-07-19 2019-11-05 西门子工厂自动化工程有限公司 发送数据的方法和装置及接收数据的方法和装置
CN111031070A (zh) * 2019-12-30 2020-04-17 苏州浪潮智能科技有限公司 一种modbus通信的实现方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051143B2 (en) * 2001-06-25 2006-05-23 Schneider Automation Inc. Method, system and program for the transmission of modbus messages between networks
US10271381B2 (en) * 2017-05-22 2019-04-23 Honeywell International Inc. Legacy Modbus communication devices

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425312A (zh) * 2012-06-11 2013-12-04 上海理工大学 一种基于arm的触摸屏文件编译和解码方法
CN105808549A (zh) * 2014-12-30 2016-07-27 施耐德电器工业公司 基于映射文件自动组帧及分析帧的客户端方法
CN108319178A (zh) * 2017-01-16 2018-07-24 浙江正泰电器股份有限公司 变频器和自动获取产品内部参数信息的方法
CN107222458A (zh) * 2017-04-17 2017-09-29 珠海格力电器股份有限公司 一种兼容Modbus协议的BACnet协议栈的数据处理方法及系统
CN108280030A (zh) * 2018-01-12 2018-07-13 厦门科灿信息技术有限公司 一种寄存器地址的分配方法、系统及相关装置
CN110417764A (zh) * 2019-07-19 2019-11-05 西门子工厂自动化工程有限公司 发送数据的方法和装置及接收数据的方法和装置
CN111031070A (zh) * 2019-12-30 2020-04-17 苏州浪潮智能科技有限公司 一种modbus通信的实现方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MODBUS通信协议解析;李洁;《电子制作》;20121215(第12期);第20页 *

Also Published As

Publication number Publication date
CN111800524A (zh) 2020-10-20

Similar Documents

Publication Publication Date Title
CN111371638B (zh) 智能设备测试方法、装置、服务器及存储介质
CN107992026B (zh) 一种基于labveiw的解析dbc分析报文的方法
CN103714150A (zh) 配电网拓扑模型可视化纠错方法
JP6604341B2 (ja) センサの登録方法、センサの登録システム及び中継装置
CN111800524B (zh) Modbus报文中多路数据原地址的解析方法
CN114205427B (zh) 用于协议对接调试的方法、装置和存储介质
CN111026460A (zh) 一种组态工具中利用区域模板快速配点的方法及装置
CN115914437A (zh) 用于Modbus协议的数据读取方法、系统、电子设备及存储介质
CN106407139B (zh) 用于传输hart变量的方法和外围组件及cpu单元
CN109270885B (zh) 监测plc系统的数据通信方法、装置、设备及存储介质
CN114253585B (zh) 机器人运行程序的远程更新方法、系统、装置及存储介质
CN114268650B (zh) 用于建立通信连接的配置方法及系统
KR101312035B1 (ko) 감시제어시스템
TW202024825A (zh) 工業物聯網系統及其資料處理裝置
US8554966B2 (en) Method for data exchange
CN109212346B (zh) 一种低压智能配电柜的调试方法
CN113300887A (zh) 采集数据获取方法、装置、系统及存储介质
US20190271960A1 (en) Module for Industrial Process Automation and Method for Operation and Configuration
TW202036014A (zh) 無線電控系統
CN117591283B (zh) 基于跨平台数据融合的云切设备管理方法及系统
CN116112357B (zh) 一种可视化配置的软网关系统及其实现方法
CN118400443B (zh) 电能表数据转换方法、装置、计算机设备及存储介质
TWI758175B (zh) 資料處理系統與方法
CN114500148B (zh) Pa设备的转换装置、接入方法、电子设备及存储介质
CN210428173U (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