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 |
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 |