签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
在各位大佬面前不敢献丑,虚心请教。。。。程序错误之处还请指点。
以前用FX3U轮询20个仪表,通过偏移量修改数据,几乎很少的步数就能完成。
后面接触S7-1200,看手册,要想实现轮询,有多少个站点就需要写对应数量主站指令,不知是我理解错了还是啥???!!
现在自己琢磨了一套,数组里面下标不一定是常量,也可以是变量,这就方便了很多,用三菱的思路套过来,一样可以只写一个主站程序就完成多个仪表的数据接收、发送、站的连接成功。
我现场试过了,能满足要求。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1571473&b_id=50&s_id=0&num=5
嗯,我觉得可以通讯上是根本的。
使用的是485通讯模块,当EN=1时,每扫描周期到FB时就能获得模块信息;模块它自己按配置工作,不用管理。
所以不应该用定时(周期)REQ。每次REQ上升沿,是将FB输入送给模块,启动一次通讯。
这是异步通讯,没必要这样做。
实际做法应该是,监控FB的输出 DONE、BUSY、ERROR和STATUS;由此判断通讯状态;完成一个站点,立即配置下一站点参数、报文;下个周期 REQ 上升沿即可。
你说呢?
对,没必要加时间,我只监控DONE和ERROR,完成了进行下一个,错误时间长了也进行下一个,不影响整体通讯,但是可以输出通讯报警
精彩好文!
嗯,这种方法也可以,看到论坛里面有人讨论过,这种方法唯一不足是 当某一站点报错的时候发现不了 ,下个周期又执行别的站了 因为那个报错点就一个,如果用SCL 把输出的错误字 放一个数组变量 每执行一站就让数组的下标动作一次
手册里没有说一定要多个主站指令才能轮询,也提供了FAQ用一个主站指令实现的。三菱的我也用过,确实更简洁方便,因为三菱用指令代替功能块了。
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录