签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
如下图所示,不加定时器的情况下, 置位复位输出没有问题。可是加了定时器以后,感觉置位复位失效了一样。为什么呢?百思不得其解......
注:红线上下是同一段程序,只是 iw64值不同的时候的监控状态(iw64先大于10000,然后iw64再小于10000)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1499443&b_id=50&s_id=0&num=10
不能用置位和复位局部变量。
@Zane 版主能帮我看看这个问题吗? 谢谢
你难道没看到 上面的程序这个已经置位了吗?
@不断攀登
对呀, 首先红线上面的程序状态是 iw64>10000的时候的状态, 此时 temp1已被置位,
再看红线下面的程序状态(上下是同一段程序,只是 iw64的值变了), iw64<10000了,但是temp1明明已经在上一状态的时候被置位了,中间没有任何其它复位的指令, 那么照理来说, 就算是 此时 iw64<10000了,temp1也应该是置位状态啊,为什么它自动复位为0了呢?
临时变量每个周期会重新分配,不能跨周期保存数据
定时器的Q 是对变量进行赋值操作,变量在程序中是可以被多次赋值的。
本例中,temp1变量在第一个计时器那里被置位为1(第一次被赋值),但是在第二个定时器那里又被复位为0了(第二次赋值)
兄弟,你一定要记住一个原则,临时变量切不可以用来S/R和自锁回路,同理,FC块的out引脚连接的是DB也不应该S/R和自锁回路,连接DB就是在V区了,这个也是不保存上一个周期状态的,但是作为调用者,谁能保证FC的out不输出到DB呢,所以推广下概念,FC的out不应该用 S/R,也不能用自锁回路,非要用,换FB吧。
临时变量不能这儿么用
是的,我用全局变量就可以了,感谢!修改后的程序如下图:
用上升沿(左边的)和定时器(右边的)都可以:
用的临时存储区吗?
www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1497078&b_id=50&s_id=76&num=19#anch
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录