在2)我在程序NW1的前面插入一NW:
M00:A M0.6
JCB M00
然后在仿真中监控T0的值,当定时器执行时,我让M0.6为高电平,让程序进行死循环,可以看见定时器一样的计时,直到计时到值减为零为止。所以从这可以证明定时器应该是在扫描周期外执行的,也就是异步执行的。
通过几次的仿真试验,我似乎有点明白了定时器的工作,但不知是否是对的,请大家多多指教:
定时器是异步执行的,定时值到达时,要在下一个扫描周期更新定时器位,而对于逻辑上控制的定时器位是可以即时更新的。这样就可以解释为什么NW3中的定时位不能执行了,因为定时器到达定时值时,定时器位是被置位的,但在NW2中进行逻辑运算时,又被复位了,所以执行到NW3时,定时器位已是复位状态了。
管理员注:本帖已被纳入此次探讨整理结果,请
点此详阅。