你的位置:首页 > 新闻动态 > 公司新闻

德明4G路由器R40如何读取设备映射寄存器

1.读取设备映射寄存器

平台通过Modbus协议访问R40设备的映射地址来访问从机设备,映射地址和从机设备地址的对应关系需要通过配置页面进行配置。

 

1.1 映射寄存器地址

1)布尔类型从机映射寄存器地址:保持线圈型,支持功能码01/05/15指令。

映射寄存器地址

数据名称

数据类型

说明

16进制

10进制

40

64

布尔64

Bool

布尔位类型,从机映射地址,可以映射从机输入线圈和保持线圈状态。共计64个地址

41

65

布尔65

Bool

42

66

布尔66

Bool

...

...

...

Bool

...

...

...

Bool

7F

127

布尔127

Bool

 

2)16位数据类型从机映射寄存器地址:保持寄存器型,可读可写,支持03/06/16指令。

映射寄存器地址

数据名称

数据类型

说明

16进制

10进制

4E 20

20000

16位数据20000

排序AB,具体数据类型取决于从机映射的数据类型

根据配置映射规则,该地址数据会把从机映射数据统一排序成AB,存放在该地址,方便云端统一读写。可以映射从机输入寄存器和保持寄存器。共计128个地址。

4E 21

20001

16位数据20001

4E 22

20002

16位数据20002

...

...

...

...

...

...

4E 9F

20127

16位数据20127

 

3)32位数据类型从机映射寄存器地址:保持寄存器型,可读可写,支持03/06/16指令。

映射寄存器地址

数据名称

数据类型

说明

16进制

10进制

4E A0

20128

32位数据20128

排序ABCD,具体数据类型取决于从机映射的数据类型

根据配置映射规则,该地址数据会把从机映射数据统一排序成ABCD,存放在该地址,方便云端统一读写。可以映射从机输入寄存器和保持寄存器。共计64个地址。

4E A2

20130

32位数据20130

4E A4

20132

32位数据20132

...

...

...

...

...

...

4F 1E

20254

32位数据20254

 

4)64位数据类型从机映射寄存器地址:保持寄存器型,可读可写,支持03/06/16指令。

映射寄存器地址

数据名称

数据类型

说明

16进制

10进制

4F 20

20256

64位数据20256

排序ABCDEFGH,具体数据类型取决于从机映射的数据类型

根据配置映射规则,该地址数据会把从机映射数据统一排序成ABCDEFGH,存放在该地址,方便云端统一读写。可以映射从机输入寄存器和保持寄存器。共计64个地址。

4F 24

20260

64位数据20260

4F 28

20264

64位数据20264

...

...

...

...

...

...

50 1C

20508

64位数据20508

 

1.2 读取布尔型映射地址数据

服务器主站发送报文格式:

发送内容

字节数

数据样例

说明

设备地址

1

01H

01H 号设备,范围:1-247,以设置的地址为准

功能码

1

01H

读保持线圈,用功能码01

布尔型寄存器起始地址

2

00 40H

范围:0040H-007FH,地址对应详见映射寄存器地址

读取寄存器数量

2

00 0AH

范围:0001H-0040H,布尔映射地址一共有64地址。

16 CRC 校验

2

BD D9H

CRC0 CRC1 低字节在前,高字节在后

 

接收设备返回报文格式:

发送内容

字节数

数据样例

说明

设备地址

1

01H

01H 号设备,与下发数据一致

功能码

1

01H

读保持线圈

返回字节长度

1

02H

返回数据长度

返回数据

2

73 01H

 

16 CRC 校验

2

5D 0CH

CRC0 CRC1 低字节在前,高字节在后

 

示例:从地址64开始,读取10个映射布尔数据的值,则:

服务器发送:01 01 00 40 00 0A BD D9

其中:

01    :设备地址

01    :读取保持线圈

00 40 :读取从地址64的开始布尔数据

00 0A :连续读取10 个布尔状态

BD D9 : CRC 校验

 

设备返回:01 01 02 73 01 5D 0C

其中:

01    : 设备地址

01    : 读取保持线圈

02    : 返回数据字节数

73 01 : 返回的10个布尔状态。高字节表示低地址数据,低字节表示高地址数据,根据Modbus协议规定73 01H 实际值为01 73H 转成二进制如下