5462-916备件

更新时间: 2023-02-01

​计时器与循环程序的关系

  经过分析,可以看出,M10.2(S)是可以被置位的,那为什么没有看见其被置位呢?

  大家注意,这里t的时间是8s,一个程序的扫描周期很短,可能才十几----几十毫秒,在线时候可以监控到Scan Cycle Time。

  那这个时间不是远远超过了扫描周期么?

  如果程序扫描周期大于扫描周期监控时间Scan Cycle Monitoring Time,那么将会触发中断,甚至造成CPU进入STOP状态。

  其实,计时器的执行是异步于OB1循环扫描的,只要计时器运行后,在每一周期扫描到计时器的触发端S信号如果为1,那么计时器就将在此周期继续计时。因此,它对于**周期监控时间并没有太大的影响,只是调用语句时占用了少许us的时间。

  怎么来验证这个说法呢?就是说计时器的执行并不同步于OB1程序扫描周期。

  1,可以在程序中加入若干SF**7增大程序扫描周期(保证小于Scan Cycle Monitoring Time),通过监控计时器的时间,可以看出,计时器的时间是跳跃式的变化的,也就是说,也就是说,当程序扫描完计时器,继续往下进行时,计时器满足触发条件进行计时,此周期往后的计时是一直在进行的。

  2,可以通过在中断来证明

  3,通过程序死循环监视计时证明

  4,通过多个计时器监视时间来证明等等各种方法

  那说明了是异步的有何作用呢?

  说明了刚才咱们分析程序所作的时序图有一定的问题,因为咱们的分析是按照程序一步步往下进行的,相当于是同步进行的。而实际在程序执行时,扫描周期是比较短的,所以计时器是在其中的某一个周期里计时器计时结束时输出被置位为1,因为这样,所以对编写程序就会有一定的要求。


上一篇:5462-948卡件

下一篇:5463-785