Modbus-RTU通讯协议03功能码详解——小白一看就会的协议解析

Modubus 03功能码数据帧解析

主机发送Master:
假设从机地址为06,则主机发送为
06 03 00 00 00 01 XX XX

  • 06 表示从机地址
  • 03 表示modbus03功能码
  • 00 第一组表示寄存器起始地址高8位
  • 00 第二组表示寄存器起始地址低8位
  • 00 第三组表示读取的寄存器数量高8位
  • 01 表示读取的寄存器数量低8位,即这条数据帧代表从第0个地址开始,读取一个寄存器
  • XX 第一组表示CRC校验低8位
  • XX 第二组表示CRC校验高8位

从机收到回复Slave:
06 03 02 00 00 XX XX

  • 06 表示从机地址
  • 03 表示modbus03功能码
  • 02 表示后面数据的字节数,因为一个寄存器有2个字节,所以后面的字节数肯定是2*查询的寄存器个数
  • 00 第一组表示数据高8位
  • 00 第二组表示数据低8位
  • XX 第一组表示CRC校验低8位
  • XX 第二组表示CRC校验高8位

基本数据帧格式为
发送: 地址正确+我要查的寄存器个数+校验
回复: 从机的地址+数据的字节数+数据+校验

你可能感兴趣的:(modbus,嵌入式)