发送: 功能代码 起始地址 线圈数量 接收: 功能代码 字节数 线圈状态 1字节 1字节 n字节 0x01 N n = N/N+1 1字节 2字节 2字节 0x01 0x0000~0xFFFF 1~2000(0x7D0) N=读取线圈个数 / 8 ,如果余数不为0则N=N+1 出错时的返回: 功能代码 错误代码
例子: 2、“02”读取输入状态 发送: 功能代码 起始地址 输入点数量 接收: 功能代码 字节数 输入点状态 1字节 1字节 n字节 0x02 N n = N/N+1 1字节 2字节 2字节 0x02 0x0000~0xFFFF 1~2000(0x7D0) 1字节 1字节 0x81 01/02/03/04 N=读取输入点个数 / 8 ,如果余数不为0则N=N+1 出错时的返回: 功能代码 错误代码
例子: 3、“03”保持型寄存器读取 发送: 功能代码 起始地址 寄存器数量 接收: 功能代码 字节数 寄存器值 N=寄存器数量
1字节 1字节 N*2字节 0x03 2*N 1字节 2字节 2字节 0x03 0x0000~0xFFFF 1~125(0x7D) 1字节 1字节 0x82 01/02/03/04 出错时的返回: 功能代码 错误代码
例子: 4、“05”写单一线圈 发送: 功能代码 线圈地址 写入值 接收: 功能代码 线圈地址 写入值 出错时的返回: 功能代码 错误代码 例子: 5、“06”写单一寄存器 发送: 功能代码 寄存器地址 写入值 接收: 功能代码 寄存器地址 写入值 出错时的返回: 功能代码 错误代码
例子: 6、“15(0x0F)”写多线圈 发送: 功能代码 起始地址 写入线圈个数 1字节 2字节 2字节 0x0F 0x0000~0xFFFF 0x0001~0x07B0 1字节 1字节 0x86 01/02/03/04 1字节 2字节 2字节 0x06 0x0000~0xFFFF 0x0000~0xFFFF 1字节 2字节 2字节 0x06 0x0000~0xFFFF 0x0000~0xFFFF 1字节 1字节 0x85 01/02/03/04 1字节 2字节 2字节 0x05 0x0000~0xFFFF 0x0000或0xFF00 1字节 2字节 2字节 0x05 0x0000~0xFFFF 0x0000或0xFF00 1字节 1字节 0x83 01/02/03/04 写入字节数 写入值 1字节 N字节 N N=写入线圈个数 / 8 ,如果余数不为0则N=N+1 接收: 功能代码 起始地址 写入线圈个数 出错时的返回: 功能代码 错误代码
例子: 7、“16(0x10)”写多寄存器 发送: 功能代码 起始地址 写入寄存器个数 写入字节数 写入值 N=写入寄存器个数 接收: 功能代码 起始地址 写入寄存器个数 出错时的返回: 功能代码 错误代码
例子:
1字节 1字节 0x90 01/02/03/04 1字节 2字节 2字节 0x10 0x0000~0xFFFF 0x0001或0x007B 1字节 2字节 2字节 1字节 N*2字节 0x10 0x0000~0xFFFF 0x0001~0x007B 2*N 1字节 1字节 0x8F 01/02/03/04 1字节 2字节 2字节 0x0F 0x0000~0xFFFF 0x0001或0x07B0
相关推荐: