一、ModBus格式

在这里插入图片描述
协议总共由4部分组成: 地址、功能、数据、校验。

二、功能码

1.概述

在这里插入图片描述

简单的理解线圈就是位操作。比如说单片机控制了8路的继电器输出,为了方便表示继电器的状态,就用8个位来表示8个继电器的状态,比如0表示继电器断开,1表示继电器吸合。这样0x00就表示8路继电器全部断开,0xFF表示8路继电器全部吸合。

寄存器是字节操作,比如传感器采集温度的时候用一个字节表示当前温度,比如当前温度28℃,就用0x1C表示。

2.读多个寄存器03码(0x03)

在这里插入图片描述

主站:从某个起始地址读n个寄存器
从站:返回读取到的字节数+寄存器的值

在这里插入图片描述

3.写单个寄存器06码(0x06)

在这里插入图片描述
主站:从某个地址写某个寄存器值
从站:返回写入的寄存器地址+寄存器值
在这里插入图片描述

4.写多个寄存器16码(0x10)

在这里插入图片描述
主站:从某个地址写几个寄存器的值(字节数为写入寄存器的值)
从站:返回某个地址及寄存器数量
响应命令只返回写的寄存器数量,而不返回写的寄存器值,这个和写单个寄存器是不同的
在这里插入图片描述

5.错误码

在这里插入图片描述
差错码的值为功能码的值加上0x80

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐