沈阳广成科技有限公司
工业级Modbus/TCP-CAN转换模块—GCAN-205
B.2 Modbus常用功能码
在Modbus消息帧的功能码中较常使用的是01、02、03、04、06和16功能码,使用它们即可实现对从机的数字量和模拟量的读写操作。下面以在RTU传输模式下通讯为例,对这些功能码进行详细介绍。
下面是2个Modbus命令的主从机收发的数据包格式,其余的命令可参照其格式。
(1)功能码:03H
代码功能:读保持寄存器
说明:读从机保持寄存器的二进制数据,不支持广播。
查询:查询信息规定了要读的寄存器起始地址及寄存器的数量,寄存器寻址起始地址为0000,寄存器1-16所对应的地址分别为0-15。
响应:响应信息中的寄存器数据为二进制数据,每个寄存器分别对应2个字节,第一个字节为高位值数据,第二个字节为低位数据。
(2)功能码:10H(十进制为16) 代码功能:预置多个寄存器
说明:把数据按顺序预置到各(4x类型)寄存器中,广播时该功能代码可把数据预置到全部从机中的相同类型的寄存器中。需要注意的是该功能代码可越过控制器的内存保护,在寄存器中的预置值一直保持有效,只能由控制器的下一个逻辑来处理寄存器的内容,控制逻辑中无该寄存器程序时,则寄存器中的值保持不变。
查询:信息中规定了要预置的寄存器类型,寄存器寻址的起始地址为0。查询数据区中指定了寄存器的预置值,M84和484型控制器使用10位二进制数据,2个字节,剩余的高6位置0。而其他类型的控制器使用一个16位二进制数据,每个寄存器2个字节。
响应:正常响应返回从机地址、功能代码、起始地址和预置寄存器数。
26