一张图让你看懂定时器的异步刷新

定时器是编程中很常用的一个功能,编程人员需要熟悉其各种原理特性,这样才能在工作中少踩坑。本次绍定时器的其中一个特性,即定时器的异步刷新。

如图,为什么5秒的接通延时定时器执行完成后累计时间竟然大于5秒?

图片

原因如下:

从定时器启动接通执行定时那一刻,定时器就一直在运行,且本身的时间累计不受PLC扫描周期影响。5秒的设定时间到,定时器本身会完成计时,但是由于此刻PLC程序并不会马上立即执行定时完成的程序,而是要等到PLC刷新到这一段才开始检查定时器是否完成计时。这样,最终时间累计就会受PLC扫描周期影响。

为了放大该影响,笔者故意在程序中加入WAIT等待指令,故意拉长程序扫描时间,这样就很明显采集到了一个20ms的累计时间误差。

由于定时器异步刷新的特点,所以不能用它来做精确定时。精确定时还是推荐使用循环中断(OB30)配合计数器来实现。

知其道用其妙,与各位工友共勉。

2024年03月