01 读线圈状态
读取从机的线圈状态(ON/OFF),位操作。
例:请求从机设备17读00020-00056线圈。其中00020-00056为线圈的寄存器信息地址,这些线圈的寄存器寻址地址为0019 – 0055,共访问37个线圈。
描述 | Hex |
---|---|
从机地址 | 11 |
功能码 | 01 |
寄存器起始地址(高) | 00 |
寄存器起始地址(低) | 13 |
寄存器数量(高) | 00 |
寄存器数量(低) | 14 |
CRC校验(高) | |
CRC校验(低) |
响应:响应信息中的各线圈的状态与数据区的每一位的值相对应,1代表ON;0代表OFF。若返回的线圈数不是8的倍数,则在最后的数据字节未使用的位中全部填充0,字节数区说明全部数据的字节数。
描述 | Hex |
---|---|
从机地址 | 11 |
功能码 | 01 |
返回字节数 | 05 |
数据1(线圈00027-线圈00020) | CD |
数据2(线圈00035-线圈00028) | 6B |
数据3(线圈00043-线圈00036) | B2 |
数据4(线圈00051-线圈00044) | 0E |
数据5(线圈00056-线圈00052) | 1B |
CRC校验(高) | |
CRC校验(低) |
02 读输入位状态
读取从机的输入状态(ON/OFF),位操作。
用法同上
03 读保持寄存器
读取从机的保持寄存器,一个寄存器两个字节,字操作。
例:请求从机设备17的0x13,0x14,0x15三个寄存器的数据
描述 | Hex |
---|---|
从机地址 | 11 |
功能码 | 03 |
寄存器起始地址(高) | 00 |
寄存器起始地址(低) | 13 |
寄存器数量(高) | 00 |
寄存器数量(低) | 03 |
CRC校验(高) | |
CRC校验(低) |
响应:
描述 | Hex |
---|---|
从机地址 | 11 |
功能码 | 03 |
返回字节数 | 06 |
数据1(寄存器0x13高位) | CD |
数据1(寄存器0x13高位) | 6B |
数据2(寄存器0x14高位) | 6B |
数据2(寄存器0x14高位) | 6B |
数据3(寄存器0x15高位) | 6B |
数据3(寄存器0x15高位) | 6B |
CRC校验(高) | |
CRC校验(低) |
04 读输入寄存器
读取从机的输入寄存器,一个寄存器两个字节,字操作。
用法同上
05 写单个线圈
ff00h为写1,0000h为写0。
例:把地址为0的线圈写1
描述 | Hex |
---|---|
从机地址 | 11 |
功能码 | 05 |
寄存器起始地址(高) | 00 |
寄存器起始地址(低) | 00 |
线圈值(高) | ff |
线圈值(低) | 00 |
CRC校验(高) | |
CRC校验(低) |
响应:
描述 | Hex |
---|---|
从机地址 | 11 |
功能码 | 05 |
寄存器起始地址(高) | 00 |
寄存器起始地址(低) | 00 |
线圈值(高) | ff |
线圈值(低) | 00 |
CRC校验(高) | |
CRC校验(低) |
06 写单个保持寄存器
写从机的保持寄存器,一个寄存器两个字节,字操作。
例:往地址为0的寄存器写1
描述 | Hex |
---|---|
从机地址 | 11 |
功能码 | 06 |
寄存器起始地址(高) | 00 |
寄存器起始地址(低) | 00 |
寄存器值(高) | 00 |
寄存器值(低) | 01 |
CRC校验(高) | |
CRC校验(低) |
响应:
描述 | Hex |
---|---|
从机地址 | 11 |
功能码 | 06 |
寄存器起始地址(高) | 00 |
寄存器起始地址(低) | 00 |
寄存器值(高) | 00 |
寄存器值(低) | 01 |
CRC校验(高) | |
CRC校验(低) |
15 写多个线圈
写从机的多个线圈,位操作。
例:请求从机设备17写00020-00030线圈,未使用位补0。
描述 | Hex |
---|---|
从机地址 | 11 |
功能码 | 0f |
寄存器起始地址(高) | 00 |
寄存器起始地址(低) | 13 |
寄存器数量(高) | 00 |
寄存器数量(低) | 0a |
数据1(线圈27-20) | 00 |
数据2(线圈29-28) | 00 |
CRC校验(高) | |
CRC校验(低) |
响应:
描述 | Hex |
---|---|
从机地址 | 11 |
功能码 | 0f |
寄存器起始地址(高) | 00 |
寄存器起始地址(低) | 13 |
寄存器数量(高) | 00 |
寄存器数量(低) | 0a |
字节数 | 02 |
CRC校验(高) | |
CRC校验(低) |
16 写多个保持寄存器
写从机的保持寄存器,一个寄存器两个字节,字操作。
例:往地址0x13,0x14的寄存器写值
描述 | Hex |
---|---|
从机地址 | 11 |
功能码 | 10 |
寄存器起始地址(高) | 00 |
寄存器起始地址(低) | 13 |
寄存器数量(高) | 00 |
寄存器数量(低) | 02 |
字节数 | 04 |
数据1(高位) | 00 |
数据1(低位) | 00 |
数据2(高位) | 00 |
数据2(低位) | 00 |
CRC校验(高) | |
CRC校验(低) |
响应:
描述 | Hex |
---|---|
从机地址 | 11 |
功能码 | 10 |
寄存器起始地址(高) | 00 |
寄存器起始地址(低) | 13 |
寄存器数量(高) | 00 |
寄存器数量(低) | 02 |
CRC校验(高) | |
CRC校验(低) |