本人在进行两台s7-200的modbus通讯时,主站侧没问题,从站的mbus_init指令的出错代码为5,查资料说是“保持寄存器与modbus从属符号重叠”,本人不知道是什么意思?同时mbus_slave指令的出错代码是10,望各位朋友能指点指点,这两条出错代码究竟是什么原因的?
答:1、保持寄存器与modbus从属符号重叠”,本人不知道是什么意思?
分配的库内存范围一定不要和可读取的内存范围有重复的地方,否则初始化不成功。
帮助:maxhold参数设定供modbus地址04xxx使用的v内存中的字保持寄存器数目。例如,为了允许主设备存取2000个字节的v内存,将maxhold设为1000个字的数值(保持寄存器)。
holdstart参数是v内存中保持寄存器的起始地址。该数值一般被设为vb0,因此holdstart参数被设为&vb0(vb0地址)。其他v内存地址可指定为保持寄存器的起始地址,以便在项目的其他地方使用vb0。modbus主设备可存取v内存maxhold个字数,从holdstart开始。
如果holdstart设为&vb0,maxhold设为1000,即modbus主设备可存取v内存从vb0开始,可存取1000个字,2000个字节。则库内存的开始地址一定要从2000以上开始,否则初始化不成功,返回错误代码为5,即“保持寄存器与modbus从属符号重叠”。
2、同时mbus_slave指令的出错代码是10?
error=10=modbusnotinitialized。
当mbus_int的error不等于0时,mbus_slave的error=10。