西门子S7 200 两个口都进行MODBUS通讯问题
S7-200PLCCPU226CN,PORT1做主站,采用SM0.5触发,从另外一个MODBUS仪表上读取数据,经过换算后,由PORT0做MODBUS从站,被GPRS读取...
S7-200PLC CPU226 CN,PORT1做主站,采用SM0.
5触发,从另外一个MODBUS仪表上读取数据,经过换算后,由PORT0做MODBUS从站,被GPRS读取换算结果。测试采用MODSCAN软件从PORT0读取到计算机,发现有3%的数据是失败的,怀疑485转换器故障,更换后故障依旧,怀疑程序有问题,停止PORT1向MODBUS仪表采集数据,故障排除,MODSCAN与PLC通讯完全正常,遂将SM0.5调整为SM0.4进行触发采集仪表数据,在用MODSCAN测试,发现故障率存在,但基本在0.4%,因此怀疑是S7 200 CPU226的两个口在分别进行MODBUS主、从数据任务时程序有问题,做了很多工作都没有效果,请教大家,看看有没有好办法@!
另:反复排查过,库存储区与在用V地址并无冲突
均为MODBUS RTU格式 展开
5触发,从另外一个MODBUS仪表上读取数据,经过换算后,由PORT0做MODBUS从站,被GPRS读取换算结果。测试采用MODSCAN软件从PORT0读取到计算机,发现有3%的数据是失败的,怀疑485转换器故障,更换后故障依旧,怀疑程序有问题,停止PORT1向MODBUS仪表采集数据,故障排除,MODSCAN与PLC通讯完全正常,遂将SM0.5调整为SM0.4进行触发采集仪表数据,在用MODSCAN测试,发现故障率存在,但基本在0.4%,因此怀疑是S7 200 CPU226的两个口在分别进行MODBUS主、从数据任务时程序有问题,做了很多工作都没有效果,请教大家,看看有没有好办法@!
另:反复排查过,库存储区与在用V地址并无冲突
均为MODBUS RTU格式 展开
1个回答
展开全部
S7-200中的MODBUS通讯协议实际上是用了其自由口协议来实现,因此,端口上的报文接收都要用到SMB2这个系统寄存器。双口MODBUS在原生西门子S7-200PLC的CPU上是不可能实现的。
解决办法:
选择兼容品牌的CPU,某些产品具有双自由口,可以实现第二通道MODBUS,程序轻微修改;
选择兼容品牌的扩展模块,某些产品可以扩展第二个口,可以实现第二通道MODBUS,程序轻微修改;
升级至200SMART并扩展SB通讯信号板(程序轻微修改),甚至是1200(需重写);
跳出一定要双口MODBUS RTU的方案,则可以其中一个口用PPI、扩展模块EM277走DP或MPI、扩展模块CP243走以太网S7协议、扩展兼容以太网模块走以太网S7协议或MODBUS TCP/IP模块,都是一些解决上述问题的对策。
追问
答案很完整,很有价值!
我已经找到了解决的办法了!利用MODBUS的从站指令的执行输出功能,即有MODBUS活动时为“1”,我利用这个活动位,让他在下沿的时候执行MODBUS主站指令,相当于两个指令分别执行,这样就解决了!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询