西门子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格式
展开
 我来答
百度网友7192e8b
2015-01-09 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:92%
帮助的人:1459万
展开全部

S7-200中的MODBUS通讯协议实际上是用了其自由口协议来实现,因此,端口上的报文接收都要用到SMB2这个系统寄存器。双口MODBUS在原生西门子S7-200PLC的CPU上是不可能实现的。

解决办法:

  1. 选择兼容品牌的CPU,某些产品具有双自由口,可以实现第二通道MODBUS,程序轻微修改;

  2. 选择兼容品牌的扩展模块,某些产品可以扩展第二个口,可以实现第二通道MODBUS,程序轻微修改;

  3. 升级至200SMART并扩展SB通讯信号板(程序轻微修改),甚至是1200(需重写);

  4. 跳出一定要双口MODBUS RTU的方案,则可以其中一个口用PPI、扩展模块EM277走DP或MPI、扩展模块CP243走以太网S7协议、扩展兼容以太网模块走以太网S7协议或MODBUS TCP/IP模块,都是一些解决上述问题的对策。

追问
答案很完整,很有价值!
我已经找到了解决的办法了!利用MODBUS的从站指令的执行输出功能,即有MODBUS活动时为“1”,我利用这个活动位,让他在下沿的时候执行MODBUS主站指令,相当于两个指令分别执行,这样就解决了!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式