[其他] 三菱 | 定时器的这个知识点,99%的人都不知道!

[复制链接]
查看89920 | 回复0 | 2024-8-17 10:05:24 | 显示全部楼层 |阅读模式

前几天,有个工程师,问了我一个问题,他说在做一个工程,需要控制一个电机,运转1.25s的时间后,停止转动,发现总是存在误差,不能及时动作,就算用了1ms的定时器也是一样,存在延时,由于这个设备对时间的精度要求比较高,他没办法达到控制要求,以下是他写的程序:





这里我们要了解一个概念,普通的定时器,线圈的导通受到扫描周期的影响。

PLC的工作分为3个步骤,输入检测、程序扫描、输出刷新,这个过程需要消耗时间,也就是说,定时器线圈触发的条件,受到扫描周期的影响,要等程序扫描完加入下一个周期,才开始触发线圈,触发定时器线圈的时间到了,也要完成程序扫描然后才能输出。这个就会造成一些误差,触发线圈的时间最大有2个扫描周期的延时,线圈导通后,定时器的常开触点触发对应的指令最大也有2个扫描周期的延迟,这样一个定时器从触发,到触点动作,最大会有4个扫描周期的时间延迟。假如这个程序的扫描周期是10ms,那么延迟最大将达到40ms。

1ms和10ms级别的定时器不受扫描周期的影响,就是说你线圈的导通信号一导通那么定时器就会马上计时,这个不会受到扫描周期的影响,但是,定时器的常开触点触发控制指令时,这一步会受到扫描周期的影响,导致我们输出滞后了。

所以上图的这个程序定时时间到了,rst Y0不是马上执行的,而是要等到程序扫描完后,再执行Y0的复位,导致Y0输出的时间过长。

这个时候我们需要用到定时中断,我把程序优化了一下,如下图:



采用I601中断指针,I601这段中断程序每隔1ms就会执行一遍,这样的话延迟输出的时间就不会超过中断的时间间隔1ms的2倍,就是最多有2ms的延迟。精度大大的提高了。

部分不能看懂这篇文章的同学,可以先去学习plc扫描周期和中断的相关知识点。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则