01H-读线圈状态1 )说明:读从动线圈寄存器,位操作,可单个或多个读取;
2 )发送命令:
读取从站地址0x01、寄存器开始地址0x0023、抵制寄存器结束0x0038,共计21个线圈。 协议图如下。
3 )响应:
返回与数据位对应的线圈状态,1-ON,0-OFF。 下图;
上表的data1表示0x0023-0x002a的线圈状态,data1的最低位表示最低地址的线圈状态,可以理解为小端序模式;
data2表示地址0x002b-0x0033的线圈状态,如下表所示。
data3表示地址0x0034-0x0038的线圈状态,小于8位,字节的高位用0填充。 下表:
02H-读离散输入状态1 )离散输入寄存器读、位操作、单个或多个可读,协议与功能码0X01协议相似,但这里省略;
03H-读保持寄存器1 )说明:读出保持寄存器、字节命令操作、可进行单次或多次读出;
2 )发送命令:
读出从动地址0x01、保持寄存器开头地址0x0032、两个保持寄存器
3 )响应:
数据的存储顺序
04H-读输入寄存器1 )说明:读输入寄存器、字节命令操作、单个或多个可读;
2 )发送命令)同03H;
3 )应答)同03H;
05H-写单个线圈1 )说明:写一个线圈。 位操作只能写一个。 写为0xff00时打开线圈状态,写为0x0000时关闭线圈状态
2 )发送命令:
打开0x0032线圈;
3 )响应:
同送指令;
06H-写单个保持寄存器1 )说明:写单一保持寄存器,字节指令操作,只能写一个;
2 )发送命令:
0x0032保持寄存器写为0x1232;
3 )响应)同步发送命令
0FH-写多个线圈1 )描述:写多个线圈寄存器。 数据区域的某个值为“1”时,要求的相应线圈的状态为ON,mdty位值为“0”时,状态为OFF。
2 )发送命令:
线圈地址为0x04a5,写12个线圈,
上图中的DATA1为0x0c,表示以下情况。
DATA2为0x02,不到8位。 字节的高位用0填充:
3 )响应:
10H-写多个保持寄存器1 )记述:可以进行多个保持寄存器、字节命令操作、多个写入;
2 )发送命令:
将寄存器的起始地址保存在0x0034中,写入两个寄存器的4字节数据;
3 )响应: