弈宸
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 148 点
下载积分: 1423 分
在线时间: 87(小时)
注册时间: 2011-10-08
最后登录: 2024-03-18
查看弈宸的 主题 / 回贴
楼主  发表于: 2012-06-10 18:27
请教各位师傅,MODBUS通讯中,MBUS_MSG出现错误代码6怎么解决呢?能否帮我看下一下程序?有空帮忙的请加574873445.。。。不胜感激
天使之心
级别: 略有小成
精华主题: 0
发帖数量: 187 个
工控威望: 320 点
下载积分: 4215 分
在线时间: 133(小时)
注册时间: 2009-02-08
最后登录: 2024-04-15
查看天使之心的 主题 / 回贴
1楼  发表于: 2012-06-10 20:25
错误代码"6    Modbus忙于处理另一个请求:一次只能激活一条MBUS_MSG指令。"

你的程序中同时执行了两条及两条以上的MBUS_MSG指令。你把程序传上来大家帮你看看。
弈宸
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 148 点
下载积分: 1423 分
在线时间: 87(小时)
注册时间: 2011-10-08
最后登录: 2024-03-18
查看弈宸的 主题 / 回贴
2楼  发表于: 2012-06-11 14:21
麻烦有空的帮忙看看啊。。不胜感激
附件: 120610电机改.rar (53 K) 下载次数:455
网站提示: 请不要用迅雷下载附件,容易出错
天使之心
级别: 略有小成
精华主题: 0
发帖数量: 187 个
工控威望: 320 点
下载积分: 4215 分
在线时间: 133(小时)
注册时间: 2009-02-08
最后登录: 2024-04-15
查看天使之心的 主题 / 回贴
3楼  发表于: 2012-06-11 23:06
你这个程序还蛮复杂的,挂了9个从站(3~11号站),调用了19个MBUS_MSG指令。你这19个MBUS_MSG指令都是同时执行的(都用SM0.0使能),肯定出错(错误代码6)。应该参考帮助里面的程序,让每个MBUS_MSG指令轮流执行,执行完一条MBUS_MSG指令就将激活该MBUS_MSG指令的位复位并激活下一条MBUS_MSG指令,如下图:





你可以这样改,将所有MBUS_MSG指令做在一个开机无条件执行的块内,不要分在那么多个块,免得编程的时候编错了;编一段程序让PLC一运行就将所有激活MBUS_MSG指令的各个位复位(用SM0.1);再编一段程序,让系统一启动就让MBUS_MSG指令轮流循环执行。

你编程的时候还有一个地方错了,就是激活MBUS_MSG指令的EN端和First端必须为同一个位(见上图)。
天使之心
级别: 略有小成
精华主题: 0
发帖数量: 187 个
工控威望: 320 点
下载积分: 4215 分
在线时间: 133(小时)
注册时间: 2009-02-08
最后登录: 2024-04-15
查看天使之心的 主题 / 回贴
4楼  发表于: 2012-06-11 23:16
S7-200PLC的通讯,不管是USS通讯还是MODBUS通讯,都是采用轮询方式通讯,同一时刻只能执行一条通讯的指令,所以,必须让通讯块一个轮着一个执行,就是执行完上一个块后让其自动复位本块并激活下一个块。