-
Modbus RTU
协议
2018.05.08
Big Q
1
功能码:
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 : <
/p>
读取总共的线圈个数,
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
)<
/p>
Type:Byte
07
00
:
返回线圈状态,读取
10
个线圈状态,用两个字节存储
(
00000111,00000000
)
Type:Byte
bb cc:
发送
CRC
校验码
Type:Word
如下图
2
功能码:
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 : <
/p>
读取总共的输入个数,
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
)<
/p>
Type:Byte
00
00
:
返回线圈状态,读取
10
个线圈状态,用两个字节存储
(
00000000,00000000
)
Type:Byte
b9 b8<
/p>
:发送
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 : <
/p>
读取总共的输入个数,
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
个寄存器为二个字节
p>
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<
/p>
:发送
CRC
校验码
Type:Word
如下图:
3
功能码:
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 : <
/p>
读取总共的输入个数,
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
个寄存器为二个字节
p>
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
如下图:
4