MODBUS协议整理——写多个线圈寄存器0FH,写多个保持寄存器10H
2.7 写多个线圈寄存器 0FH1) 说明写多个线圈寄存器。若数据区的某位值为“1”表示被请求的相应线圈状态为ON,若某位值为“0”,则为状态为OFF。2) 查询从机地址为11H,线圈寄存器的起始地址为0013H,线圈寄存器的结束地址为001CH。总共访问10个寄存器。寄存器内容如下表所示。表2.7.1 线圈寄存器0013H到001CH001AH
2.7 写多个线圈寄存器 0FH
1) 说明
写多个线圈寄存器。若数据区的某位值为“1”表示被请求的相应线圈状态为ON,若某位值为“0”,则为状态为OFF。
2) 查询
从机地址为11H,线圈寄存器的起始地址为0013H,线圈寄存器的结束地址为001CH。总共访问10个寄存器。寄存器内容如下表所示。
表2.7.1 线圈寄存器0013H到001CH
|
001AH |
0019H |
0018H |
0017H |
0016H |
0015H |
0014H |
0013H |
|
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
|
0022H |
0021H |
0020H |
001FH |
001EH |
001DH |
001CH |
001BH |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
传输的第一个字节 CDH 对应线圈为0013H到001AH,LSB(最低位)对应线圈0013H,传输第二个字节为 01H,对应的线圈为001BH到001CH,LSB 对应线圈001CH,其余未使用位使用0 填充。
表2.7.1 写多个线圈寄存器——查询
|
|
Hex |
|
从机地址 |
11 |
|
功能码 |
0F |
|
寄存器地址高字节 |
00 |
|
寄存器地址低字节 |
13 |
|
寄存器数量高字节 |
00 |
|
寄存器数量低字节 |
0A |
|
字节数 |
02 |
|
数据1(0013H-001AH) |
CD |
|
数据2(001BH-001CH) |
01 |
|
CRC校验高字节 |
BF |
|
CRC校验低字节 |
0B |
3) 响应
表2.7.1 写多个线圈寄存器——响应
|
|
Hex |
|
从机地址 |
11 |
|
功能码 |
0F |
|
寄存器地址高字节 |
00 |
|
寄存器地址低字节 |
13 |
|
寄存器数量高字节 |
00 |
|
寄存器数量低字节 |
0A |
|
字节数 |
02 |
|
CRC校验高字节 |
99 |
|
CRC校验低字节 |
1B |
2.8 写多个保持寄存器10H
1) 说明
写多个保持寄存器。
2) 查询
从机地址为11H。保持寄存器的其实地址为0001H,寄存器的结束地址为0002H。总共访问2个寄存器。保持寄存器0001H的内容为000AH,保持寄存器0002H的内容为0102H。
表2.8.1 写多个保持寄存器——请求
|
|
Hex |
|
从机地址 |
11 |
|
功能码 |
10 |
|
寄存器起始地址高字节 |
00 |
|
寄存器起始地址低字节 |
01 |
|
寄存器数量高字节 |
00 |
|
寄存器数量低字节 |
02 |
|
字节数 |
04 |
|
数据1高字节 |
00 |
|
数据1低字节 |
0A |
|
数据2高字节 |
01 |
|
数据2低字节 |
02 |
|
CRC校验高字节 |
C6 |
|
CRC校验低字节 |
F0 |
表2.8.2 保持寄存器0001H到0002H内容
|
地址 |
0001H高字节 |
0001H低字节 |
0002H高字节 |
0003H低字节 |
|
数值 |
00 |
0A |
01 |
12 |
3) 响应
表2.8.3 写多个保持寄存器——响应
|
|
Hex |
|
从机地址 |
11 |
|
功能码 |
10 |
|
寄存器起始地址高字节 |
00 |
|
寄存器起始地址低字节 |
01 |
|
寄存器数量高字节 |
00 |
|
寄存器数量低字节 |
02 |
|
CRC校验高字节 |
12 |
|
CRC校验低字节 |
98 |
更多推荐



所有评论(0)