MODBUS RTU的报文格式

如果是想通过串口调试助手给PLC发命令的话,假设PLC从站地址为1的情况下,比如要对Q0.0进行置位的话,可以发如下命令:
01 0F 00 00 00 08 01 01 3F 55
其中:
01:从站地址,指的就是PLC站地址
0F:功能码,用来写多路位变量的功能码
00:预写的寄存器起始地址高8位
00:预写的寄存器起始地址低8位
00:预写的寄存器个数的高8位
08:预写的寄存器个数的低8位
01:预写寄存器数据的字节计数,8个位变量组成一个字节,所以为01
01:预写的寄存器数据内容,最低位为1,即就是给Q0.0置位
3F:CRC校验的低8位
55:CRC校验的高8位
如果是想通过串口调试助手给PLC发命令的话,假设PLC从站地址为1的情况下,比如要对Q0.0进行置位的话,可以发如下命令:
01 0F 00 00 00 08 01 01 3F 55
其中:
01:从站地址,指的就是PLC站地址
0F:功能码,用来写多路位变量的功能码
00:预写的寄存器起始地址高8位
00:预写的寄存器起始地址低8位
00:预写的寄存器个数的高8位
08:预写的寄存器个数的低8位
01:预写寄存器数据的字节计数,8个位变量组成一个字节,所以为01
01:预写的寄存器数据内容,最低位为1,即就是给Q0.0置位
3F:CRC校验的低8位
55:CRC校验的高8位
上述,如果只是对一个Q区的位进行置位、复位操作的话,也可以用05功能码,命令如下:
01 05 00 00 FF 00 8C 3A
解释如下:
01:地址码
05:功能码
00 00:寄存器地址
FF:对位变量置位的数据内容,如果复位的话则为00
00:位变量的原状态
8C 3A:CRC校验
如果要对多路Q区执行写操作的话,则寄存器起始地址必须为Q0.0、Q1.0、Q2.0等开始,寄存器个数必须是8的整倍数!

你可能感兴趣的:(通讯协议)