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 |