modbus rtu功能码理解

声明:此内容转自http://www.elecfans.com/d/631762.html

 

1 功能码“02”:读1路或多路开关量状态输入

例如:主机要读取地址为01,开关量DI1—DI4的输入状态。

从机(PDM)数据寄存器的地址和数据为:

modbus rtu六种功能码详细解析

主机发送的报文格式:

modbus rtu六种功能码详细解析

从机(PDM)响应返回的报文格式:

modbus rtu六种功能码详细解析

2 功能码“01”:读1路或多路开关量输出状态

例如:主机要读取地址为01,开关量DO1,DO2的输出状态。

从机(PDM)数据寄存器的地址和数据为:

modbus rtu六种功能码详细解析

主机发送的报文格式:

modbus rtu六种功能码详细解析

从机(PDM)响应返回的报文格式:

modbus rtu六种功能码详细解析

3 功能码“03”:读多路寄存器输入

例如:主机要读取地址为01,起始地址为0116的3个从机寄存器数据。

从机(PDM)数据寄存器的地址和数据为:

modbus rtu六种功能码详细解析

主机发送的报文格式:

modbus rtu六种功能码详细解析

从机(PDM)响应返回的报文格式:

modbus rtu六种功能码详细解析

4 功能码“05”:写1路开关量输出(“遥控”)

例1:开关量输出点DO1,其当前状态为“分”,主机要控制该路继电器“合”。

控制命令为:

“FF00”为控制继电器“合”;

“0000”为控制继电器“分”;

主机发送的报文格式:

modbus rtu六种功能码详细解析

从机(PDM)响应返回的报文格式:

与主机发送的报文格式及数据内容完全相同。

例2:开关量输出点DO2,其当前状态为“合”,主机要控制该路继电器“分”。

主机发送的报文格式:

modbus rtu六种功能码详细解析

从机(PDM)响应返回的报文格式:

与主机发送的报文格式及数据内容完全相同。

5 功能码“06”:写单路寄存器

例如:主机要把数据07D0,保存到地址为002C的从机寄存器中去(从机地址码为01)。通讯数据保存结束后,地址为002C的PDM表原存储信息为:

modbus rtu六种功能码详细解析

主机发送的报文格式:

modbus rtu六种功能码详细解析

从机(PDM)响应返回的报文格式:

与主机发送的报文格式及数据内容完全相同。

6功能码“10”:写多路寄存器

主机利用这个功能码把多个数据保存到PDM表的数据存储器中去。Modbus通讯规约中的寄存器指的是16位(即2字节),并且高位在前。这样PDM的存储器都是二个字节。由于Modbus通讯规约允许每次最多保存60个寄存器,因此PDM一次也最多允许保存60个数据寄存器。

例如:主机要把0064,0010保存到地址为002C,002D的从机寄存器中去(从机地址码为01)。通讯数据保存结束后,地址为002C/002D的PDM表内存储信息为:

modbus rtu六种功能码详细解析

主机发送的报文格式:

modbus rtu六种功能码详细解析

从机(PDM)响应返回的报文格式:

modbus rtu六种功能码详细解析


版权声明:本文为zhuangjitongxue原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。