ModBus TCP 分布式远程IO数据采集模块系统耦合器BL200 Modbus功能码0x06写单个寄存器

2022-11-02 09:58:38 钡铼技术

ModBus TCP 分布式远程IO数据采集模块系统耦合器BL200 Modbus

功能码0x06写单个寄存器

此功能码用于写入单个远程设备中的保持寄存器。请求PDU指定起始寄存器的地址和寄存器的数量。响应消息中的寄存器数据被打包为每个寄存器两个字节,每个字节内的二进制内容靠右对齐。

该功能码只适用读取串口I/O模块寄存器映射数据,地址范围: 40000 ... 49999 。模拟输入输出 I/O模块的数据类型是32Bit Float 格式,无法读取完整数据,不可以使用该功能。

工业物联网关

1. 请求

表 1:功能码0x06-请求报文

字段名称

字节数

示例

说明

事务标识符

2 Byte

0x00 01

Modbus请求/响应事务处理的识别

协议标识符

2 Byte

0x00 00

0x00 00 Modbus协议

报文长度

2 Byte

0x00 06

后面数据的字节数

设备地址

1 Byte

0x01

从站的地址识别

功能码

1 Byte

0x06

写单个保持寄存器,用功能码0x06

寄存器地址

2 Byte

0x9C 40

地址详见Modbus 寄存器映射”章节

数据

2 Byte

0x04 D2



2. 响应

表 2:功能码0x06-响应报文

字段名称

字节(Byte

示例

说明

事务标识符

2 Byte

0x00 00

Modbus请求/响应事务处理的识别

协议标识符

2 Byte

0x00 00

0x00 00 Modbus协议

报文长度

2 Byte

0x00 06

后面数据的字节数

设备地址

1 Byte

0x01

从站的地址识别

功能码

1 Byte

0x06

写单个保持寄存器,用功能码0x06

寄存器地址

2 Byte

0x75 30


数据

2 Byte

0x04 D2



3. 异常

表 3:功能码0x06-异常

字段名称

字节(Byte

示例

说明




功能码

1 Byte

0x86

Modbus功能码 + 0x80

异常编码

1 Byte

0x01

0x01 0x02


4. 示例

将寄存器地址40000的值写入1234 (0x04 D2).

请求

0x00 01 00 00 00 06 01 06 9C 40 04 D2

表 4:功能码0x06-请求报文-示例

Byte

1

2

3

4

5

6

7

8

9

10

11

12

Data

00 01

00 00

00 06

01

06

9C 40

04 D2

说明

事务标识符

协议标识符

报文长度

设备地址

功能码

寄存器地址

数据


响应

0x00 01 00 00 00 06 01 06 9C 40 04 D2


表 5:功能码0x06-响应报文-示例

Byte

1

2

3

4

5

6

7

8

9

10

11

12

Data

00 01

00 00

00 06

01

0F

9C 40

04 D2

说明

事务标识符

协议标识符

报文长度

设备地址

功能码

寄存器地址

数据



标签: 远程IO
微信公众号

首页
产品
案例
联系钡铼