写的一个定时计数的程序块。
图中M4.7用块内变量#m时不能使定时器复位,计数器不计数,而全局M4.7可以。这是为啥?
图片说明:
最佳答案
1、注意,由于一个块的临时变量只在块运行期间有效,即只在本周期有效,而在每一个程序扫描周期过程中,RLO 位的信号状态都将与前一周期中获得的结果进行比较,看信号状态是否有变化。前一 RLO 的信号状态必须保存在边沿标志地址(<位>)中,以进行比较。所以,不能应用临时变量来存储保存边沿标志的状态。
鉴于上述情况你的上升沿或下降沿指令无效。
2、参考:
、见同类问题答案:
http://www.ad.siemens.com.cn/Service/answer/solution.aspx?Q_ID=80803&cid=1029
、S7-300/400的上升沿、下降沿检测指令应用的问题
http://blog.gkong.com/liaochangchu_139813.ashx
提问者对于答案的评价:
我使用步进的方式仿真,temp确实不能存储前一周期的值,按链接里的建议添加IN/OUT传入M点,可用。暂且作为解决办法吧。
专家置评
阿鸣,正解
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc155326.html