请教:S7-200做从站,与其通讯的模块只能做主站。用Modbus_RTU_Slave库指令Q区数据与MOUDBUS地址0000*对应,I区数据与MOUDBUS地址1000*对应,因与其通讯的模块的功能限制只能与Modbus地址0000*通讯,不能与Modbus地址1000*通讯,想将I区、Q区的数据都通过Modbus地址0000*通讯,例如I0.0对应Modbus地址00001,Q0.0对应Modbus地址00002,如何实现?
问题补充:
与其通讯的模块的功能限制:只能读MOUDBUS地址00001-000032,读写MOUDBUS地址000033-000064,这64个数据,不能更改。通常这前面的PLC地址已使用,且不通过V区转换,有没有办法实现?如I0.0对应Modbus地址00001,I1.0对应Modbus地址00002,Q0.0对应Modbus地址00003?
钻石用户推荐最佳答案
1、如果受这些限制条件,可以将 I 区的值传到Q区,用MOVB指令就可以实现;
2、比如你的PLC系统Q区物理点地最大是用到QB6,你可以将IB0传送到QB7,IB1传送到QB8,依次类推,但不能超过QB15。
补充:
如果你程序中Q0.0-Q3.7确实没有用,在S7-200这一侧每一个扫描周期将
IB0传QB0,QB0对应的就是MODBUS RTU 线圈地址 00001-00008
IB1传QB1,QB1对应的就是MODBUS RTU 线圈地址 00009-00016
IB2传QB2,QB2对应的就是MODBUS RTU 线圈地址 00017-00024
IB3传QB3,QB3对应的就是MODBUS RTU 线圈地址 00025-00032
对于主站来说你即使改了从00001-00032这32个数据,也会在每一个扫描周期被上面的四个传送指令将实际的 I 点值对应写入,这相当于只读。
Q4.0-Q7.7 对应的就是00033-00064,这个些数据你是可读可写的。
提问者对于答案的评价:
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc368630.html