Modbus地址表示方式有两种:PLC地址、协议地址 协议地址 协议地址的编号从0开始,一般用16进制格式表示,只标识地址,不标识数据类型,0x2000/2000H/8192都是指相同的含义 使用协议地址时,一般需要告诉使用地址的软件,这个地址里面是什么数据类型 注意:线圈输出、离散量输入、输入寄存器、保持寄存器这四种不同的数据类型分别编址,modbus协议是通过功能码区分操作的分区 PLC地址
5位十进制数表示,使用0/1/3/4开头,用于区分读写的数据类型,地址编号从1开始 Modbus 寄存器分区及功能码定义 数据类型(功能分区) | PLC地址 | 数据类型 | 读取功能码 | 单个写功能码 | 批量写功能码 | | | | | | | | | | | | | | | | | | | | | | | | |
由于保持寄存器可读可写非常灵活,很多Modbus设备甚至仅有保持寄存器,并且使用保持寄存器保存布尔量和不可写入的数据,如果软件没有要求声明数据类型,通常默认是保持寄存器
以你的问题为例,0x2000 就是个协议地址,换成PLC地址是48193,数据类型是保持寄存器或者输入寄存器(具体看从机设备实现,主机这里没有声明应该是调用了默认设置,就看双方的实现是否一致了)
|