ModBus TCP 分布式远程IO数据采集模块系统耦合器BL200 Modbus功能码0x01读线圈

2022-10-28 17:41:36 钡铼技术

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

功能码0x01读线圈

工业物联网关

此功能码用于读取远程设备中单个或多个线圈的连续状态。


请求

该请求指定了起始地址,即指定第一个线圈的地址,以及线圈的数量。

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

字段名称

字节数

示例

说明

事务标识符

2 Byte

0x00 01

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

协议标识符

2 Byte

0x00 00

0x00 00 Modbus协议

报文长度

2 Byte

0x00 06

后面数据的字节数

设备地址

1 Byte

0x01

从站的地址识别

功能码

1 Byte

0x01

读线圈,用功能码0x01

起始地址

2 Byte

0x03 E8

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

线圈数量

2 Byte

0x00 08

8 个线圈状态



响应


数据字段表明了输入状态的值。二进制1对应开启状态,0对应关闭状态。第一个数据字节的最低有效位(LSB)包含请求的第一位,其他的则按升序排列。如果响应数据不是8的倍数,则最后一个数据字节的其余位将填充零(朝向字节的高位)。


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

字段名称

字节(Byte

示例

说明

事务标识符

2 Byte

0x00 01

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

协议标识符

2 Byte

0x00 00

0x00 00 Modbus协议

报文长度

2 Byte

0x00 04

后面数据的字节数

设备地址

1 Byte

0x01

从站的地址识别

功能码

1 Byte

0x01

读线圈,用功能码0x01

数据字节数

1 Byte

0x01

数据字节

数据

1 Byte

0x89

响应的数据


异常


表 3:功能码0x01-异常

字段名称

字节(Byte

示例

说明




功能码

1 Byte

0x81

Modbus功能码 + 0x80

异常编码

1 Byte

0x01

0x01 0x02



示例

从地址1000到1007读8个线圈的状态值。


请求

0x00 01 00 00 00 06 01 01 03 E8 00 08


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

Byte

1

2

3

4

5

6

7

8

9

10

11

12

Data

00 01

00 00

00 06

01

01

03 E8

00 08

说明

事务标识符

协议标识符

报文长度

设备地址

功能码

起始地址

线圈数量

响应

0x00 01 00 00 00 04 01 01 01 89


表 5:功能码0x01-响应报文

Byte

1

2

3

4

5

6

7

8

9

10

Data

00 01

00 00

00 04

01

01

01

89

说明

事务标识符

协议标识符

报文长度

设备地址

功能码

数据字节数

数据

从1007到1000的状态显示为字节值0x89或二进制1000 1001。地址1007是该字节最高有效位MSB,1000是最低有效位LSB,从高位到低位的分布如下:


表 6:线圈数据

Bit

7

6

5

4

3

2

1

0

地址

1007

1006

1005

1004

1003

1002

1001

1000

状态

1

0

0

0

1

0

0

1

说明

闭合

断开

断开

断开

闭合

断开

断开

闭合





微信公众号

首页
产品
案例
联系钡铼