2.MODBUS指令说明
2.1 读线圈寄存器01H
1) 描述:
读MODBUS从机线圈寄存器当前状态。
2) 查询:
例如从机地址为11H,线圈寄存器的起始地址为0013H,结束地址为0037H。该次查询总共访问37个线圈寄存器。
表2.1.1 读线圈寄存器-查询
| Hex |
从机地址 | 11 |
功能码 | 01 |
寄存器起始地址高字节 | 00 |
寄存器起始地址低字节 | 13 |
寄存器数量高字节 | 00 |
寄存器数量低字节 | 25 |
CRC校验高字节 | 0E |
CRC校验低字节 | 84 |
3) 响应
响应负载中的各线圈状态与数据内容每位相对应。1代表ON,0代表OFF。若返回的线圈数不为8的倍数,则在最后数据字节未尾使用0代替。
表2.1.2 读线圈寄存器-响应
| Hex |
从机地址 | 11 |
功能码 | 01 |
返回字节数 | 05 |
数据1(线圈0013H-线圈001AH) | CD |
数据2(线圈001BH-线圈0022H) | 6B |
数据3(线圈0023H-线圈002AH) | B2 |
数据4(线圈0032H-线圈002BH) | 0E |
数据5(线圈0037H-线圈0033H) | 1B |
CRC校验高字节 | 45 |
CRC校验低字节 | E6 |
线圈0013H到线圈001AH的状态为CDH,二进制值为11001101,该字节的最高字节为线圈001AH,最低字节为线圈0013H。线圈001AH到线圈0013H的状态分别为ON-ON-OFF-OFF-ON-ON-OFF-ON。
表2.1.3 线圈0013H到001A状态
001AH | 0019H | 0018H | 0017H | 0016H | 0015H | 0014H | 0013H |
ON | ON | OFF | OFF | ON | ON | OFF | ON |
最后一个数据字节中,线圈0033H到线圈0037状态为1BH(二进制00011011),线圈0037H是左数第4位,线圈0033H为该字节的最低字节,线圈0037H至线圈0033H的状态分别为ON-ON-OFF-ON-ON,剩余3位使用0填充。
表2.1.4 线圈0033H到线圈0037状态
003AH | 0039H | 0038H | 0037H | 0036H | 0035H | 0034H | 0033H |
填充 | 填充 | 填充 | ON | ON | OFF | ON | ON |
2.2 读离散输入寄存器 02H
1) 说明
读离散输入寄存器状态。
2) 查询
从机地址为11H。离散输入寄存器的起始地址为00C4H,结束寄存器地址为00D9H。总共访问32个离散输入寄存器。
表 2.2.1 读离散输入寄存器——查询
| Hex |
从机地址 | 11 |
功能码 | 02 |
寄存器地址高字节 | 00 |
寄存器地址低字节 | C4 |
寄存器数量高字节 | 00 |
寄存器数量低字节 | 16 |
CRC校验高字节 | BA |
CRC校验低字节 | A9 |
3) 响应
响应各离散输入寄存器状态,分别对应数据区中的每位值,1 代表ON;0 代表OFF。第一个数据字节的LSB(最低字节)为查询的寻址地址,其他输入口按顺序在该字节中由低字节向高字节排列,直到填充满8位。下一个字节中的8个输入位也是从低字节到高字节排列。若返回的输入位数不是8的倍数,则在最后的数据字节中的剩余位至该字节的最高位使用0填充。
表2.2.1 读输入寄存器-响应
| Hex |
从机地址 | 11 |
功能码 | 02 |
返回字节数 | 03 |
数据1(00C4H-00CBH) | AC |
数据2(00CCH-00D3H) | DB |
数据3(00D4H-00D9H) | 35 |
CRC校验高字节 | 20 |
CRC校验低字节 | 18 |
离散输入寄存器00D4H到00D9H的状态为35H (二进制00110101)。输入寄存器00D9H为左数第3位,输入寄存器00D4为最低位,输入寄存器00D9H到00D4H的状态分别为ON-ON-OFF-ON-OFF-ON。00DBH寄存器和00DAH寄存器被0填充。
表2.2.2 离散输入寄存器00C4H到00DBH状态
00CBH | 00CAH | 00C9H | 00C8H | 00C7H | 00C6H | 00C5H | 00C4H |
0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
00D3H | 00D2H | 00D1H | 00D0H | 00CFH | 00CEH | 00CDH | 00CCH |
1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 |
00DBH | 00DAH | 00D9H | 00D8H | 00D7H | 00D6H | 00D5H | 00D4H |
填充 | 填充 | 1 | 1 | 0 | 1 | 0 | 1 |