恭喜,你发布的帖子
发布于 2020-05-05 16:33:10
3楼
这个问题的实质就是对PLC逻辑运算寄存器RLO及其堆栈的理解的问题,以及定时器访问的一般逻辑问题。因此,我在原贴中就留下了是否有“放之四海而皆准”的编程方法的提问,可惜应者寥寥,而原贴楼主持否定建议。
原想在我的一个编程专题中说一下的,但楼主既已提出了,我就提前就这部分内容答复一下。
计数器C的计数条件是输入条件的的上升沿变化
上图逻辑,C1的逻辑条件是定时器T1保存在RLO堆栈中的值,所以C1能检测到输入值的变化,从而正常工作。
C2的逻辑条件是T1的实时状态值,因为上图的逻辑,C2是只能检测到一次输入值的变化,定时器的T1的上电后首次出发,以后就再也无法检测到输入值的上升沿变化了。
从上面的分析看出,只有在RLO堆栈中才能检测到T1的状态变化,在正常OB1扫描中是无法检测到T1的状态变化的,这就给编程带来的诸多不便。
因此,使用定时器状态去复位定时器的做法本身就是一种不可取的编程方法,我认为是编程上的一些陋习,其根本原因就是不愿意多使用中间标志位,一个字“懒”!
请填写推广理由:
分享
只看
楼主