当前位置:文档之家› MODBUSRTU协议解析

MODBUSRTU协议解析

M o d b u s R T U协议

2018.05.08 Big Q 功能码:01 02 03 04 05 06 15 16

功能码:01 读取线圈状态

读取从站为1 起始地址为0 数量为10

主站发送报文: 01 01 00 00 00 0a bc 0d

01:从站地址 Type:Byte

01:功能码; Type:Byte

00 00 :读取从站的起始地址;Type:Word (主站访问实际起始地址=报文地址+1)

00 0a : 读取总共的线圈个数,10个;Type:Word

bc 0d: CRC校验;Type:Word

从站返回报文: 01 01 02 07 00 bb cc

01:从站地址 Type:Byte

01:功能码 Type:Byte

02:返回字节个数(每读8个BIT线圈为一个字节BYTE)Type:Byte 07 00 :返回线圈状态,读取10个线圈状态,用两个字节存储(00000111,00000000) Type:Byte

bb cc:发送CRC校验码 Type:Word

如下图

功能码:02 读取输入状态

读取从站为1 起始地址为10 数量为10

主站发送报文: 01 02 00 09 00 0a 28 0f

01:从站地址 Type:Byte

02:功能码; Type:Byte

00 00 :读取从站的起始地址;Type:Word (主站访问实际起始地址=报文地址+1)

00 0a : 读取总共的输入个数,10个;Type:Word

28 0f: CRC校验;Type:Word

从站返回报文: 01 02 02 00 00 b9 b8

01:从站地址 Type:Byte

02:功能码 Type:Byte

02:返回字节个数(每读8个BIT线圈为一个字节BYTE)Type:Byte 00 00 :返回线圈状态,读取10个线圈状态,用两个字节存储(00000000,00000000) Type:Byte

b9 b8:发送CRC校验码 Type:Word

如下图

功能码:03 读取保持型寄存器

读取从站为1 起始地址为10 数量为10

主站发送报文: 01 03 00 09 00 0a 15 cf

01:从站地址 Type:Byte

03:功能码; Type:Byte

00 09 :读取从站的起始地址;Type:Word (主站访问实际起始地址=报文地址+1)

00 0a : 读取总共的输入个数,10个;Type:Word

15 cf: CRC校验;Type:Word

从站返回报文: 01 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a3 67

01:从站地址 Type:Byte

03:功能码 Type:Byte

14:返回字节个数(每读1个寄存器为二个字节BYTE)Type:Byte 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 一个寄存器用两个字节存储,读取10个寄存器为20个字节Type:Byte

b9 b8:发送CRC校验码 Type:Word

如下图:

功能码:04 读取输入寄存器

读取从站为1 起始地址为10 数量为10

主站发送报文: 01 04 00 09 00 0a a0 0f

01:从站地址 Type:Byte

04:功能码; Type:Byte

00 09 :读取从站的起始地址;Type:Word (主站访问实际起始地址=报文地址+1)

00 0a : 读取总共的输入个数,10个;Type:Word

a0 0f: CRC校验;Type:Word

从站返回报文: 01 04 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 95 81

01:从站地址 Type:Byte

04:功能码 Type:Byte

14:返回字节个数(每读1个寄存器为二个字节BYTE)Type:Byte 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 一个寄存器用两个字节存储,读取10个寄存器为20个字节Type:Byte

发送CRC校验码:95 81Type:Word

如下图:

功能码:15 写多个线圈寄存器

读取从站为1 起始地址为0 数量为10

主站发送报文: 01 0f 00 00 00 0a 02 1e 00 ec 98

01:从站地址 Type:Byte

0f:功能码; Type:Byte

00 00 :读取从站的起始地址;Type:Word (主站访问实际起始地址=报文地址+1)

00 0a : 写入总共的线圈个数,10个;Type:Word

02:总字节数(8个线圈占用一个字节,多余的再占用一个)Type:Byte 1e 00 :写入数据的值(01111000 00000000)Type:Byte

ec 98: CRC校验;Type:Word

从站返回报文: 01 0f 14 00 00 00 00 0a d5 cc

01:从站地址 Type:Byte

0f:功能码 Type:Byte

00 00:返回起始地址Type:Word

00 0a :返回读取寄存器个数 Type:Word

d5 cc :发送CRC校验码 Type:Word

如下图

相关主题