※PLC中的定时器※
PLC中,定时器和计数器是两个非常主要的编程元件,是PLC程序编制不可或缺的环节。我在之前的文章中简单地扯了一下这两个元件,而现在就是揭秘时刻了,让我们一起来看看它们的庐山真面目吧!
一、定时器
说到定时器,其实我们生活中就有很多它的应用,例如洗衣机的定时选择,烤箱的定时旋钮、空调的定时遥控、定时炸弹(这个还是算了)等。当然,还有电工朋友们比较熟悉的时间继电器也算是一种定时器。而PLC的定时器是一种编程元件,其实它就相当于继电控制系统中的时间继电器。为了便于学习PLC的定时器,我们先来了解一下时间继电器。

在继电控制电路中,如果要用到时间控制,就必须要用到时间继电器,其实我对时间继电器不熟悉,因为我对继电控制电路的接触本来就不多,但是我说过,我是专门去学习了接触器的,时间继电器和接触器有点类似,只不过接触器不能进行时间控制罢了。
要驱动接触器的常开、常闭触点动作,就必须给接触器的线圈通电,同样的,在控制电路中,要使时间继电器的各种触点动作,也是需要驱动条件的,即线圈得电。这让我想起了我平时在家打游戏的时候,如果是其他人叫我吃饭,那我肯定是专注游戏,纹丝不动的,但如果是老妈的狮子吼,还管什么游戏,小命要紧,这里的老妈狮子吼就是驱动条件,而我去吃饭就是触点动作,可以说非常形象了。

根据变化的不同,时间继电器有三种类型触点:瞬时动作、通电延时、断电延时。结合时间继电器常开触点动作时序图,我们可以更为直观的看出其触点的动作过程,特别是"通电延时"和"断电延时"。
通电延时,也就是线圈得电,但触点延时动作,线圈失电,触点马上动作。这就像是我们上课,上课铃响,大家磨磨蹭蹭的挪向教室,但下课铃声一响,大家就跟长跑运动员一样瞬时就不见人影了。断电延时,也就是线圈得电,触点马上动作,线圈失电,触点延时动作。这也像是上课,如果说通电延时是上数学课,那断电延时就是上体育课,上课铃响,大家奔向操场放飞自我,但下课铃响,大家像是七老八十一样慢慢挪回教室。这时的上课铃和下课铃就像线圈的得电与失电,而学生的上课和下课就是触点动作。

在PLC中,定时器作用其实和时间继电器相差无几,都是用于对时间的控制,特别是延时控制,且都需要驱动条件,但PLC的定时器只能进行瞬时动作和通电延时的控制,要实现断电延时,就得通过程序编制。我在前面的文章说过,定时器是字(16位)元件,所以可以对时钟脉冲计数并保存数值,也因为它是16位元件,所以定时的时长是有范围的。
三菱FX2N PLC的定时器分为通用型定时器和积算型定时器。通用型定时器又称非积算定型时器或常规定时器,积算型定时器又称断电保持型定时器。接下来,我们一起看看它们两者有什么不同吧。
1、通用型定时器T0~T245
通用型定时器根据计数时钟脉冲不同分为100ms定时器和10ms定时器。

从上图我们也可以看出,定时器的时钟脉冲是由它们的编号区分的,其中T0~T199为时钟脉冲100ms的定时器,共200个;T200~T245为时钟脉冲10ms的定时器,共46个。例如选用T20这个定时器,那就表示选用了时钟脉冲为100ms的定时器,K20表示十进制数的20,所以T20 K20就表示定时器的定时时间为20个脉冲,即20×100=2s。

因为PLC的定时器类似于继电控制电路的时间继电器,所以,在梯形图中,我们把定时器作为线圈处理,如上图所示,定时器的驱动元件为X1触点,当X1触点闭合,定时器T20(线圈)得电,经过定时时间2s后,定时器的常开触点闭合。
定时器的脉冲数除了可以用十进制数表示外,还可以用数据寄存器D的内容来表示。D就像是一个口袋,里面装着一个数(16位的二进制数),这个数就是计数器的脉冲个数,例如T20 D0,D0里存的数是H10,转换为十进制就是16,这时计数器T20的定时时间就为16×100=1.6s。
这里要注意的是,当通用计数器的驱动信号断开,此时不管计数器的计时时间是否达到设定值,计数器都会复位,计时清零,直到再次被驱动,才开始重新计时。这也是通用型定时器和断电保持型定时器的区别。
2、积算型定时器(断电保持型定时器)T246~T255
顾名思义,断电保持型定时器是指在定时过程中,当驱动信号断开,定时器虽然不能继续计时,但能保持当前计时值,等驱动信号再次恢复,定时器有在原来的计时基础上继续计时,直到累积时间达到设定值,对应触点开始动作。换句话说,就是断电保持型定时器不会自动复位,所以我们想要它复位时,只能用RST指令进行强制复位。

积算型定时器按时钟脉冲不同也可以分为两种。显然这个的数量比通用型的少很多,可能是它比较少用吧。

积算型定时器的工作原理图如上图所示,定时器T250的定时时间为60×100ms=6s,当驱动条件成立,也就是X1接通,定时器T250的线圈得电,开始计时,计到2s时X1断开,虽然定时器的线圈失电,但它的计时依然保持在2s;直到X1再次接通,定时器在2s的基础上继续计时,计到6s后,定时器的常开触点闭合。又因为定时器不会自动复位,所以,就是X1断开,定时器的线圈失电,但它的计时保持在6s,常开触点一直闭合,直到X2触点闭合,RST指令强制复位定时器,定时器的常开触点才会断开。
总的来说就是,通用型定时器只需一个信号就可以控制线圈和触点的通断。而积算型定时器必须要两个信号加上RST指令才能控制其线圈和触点的通断,真麻烦,怪不得比较少用。
定时器在梯形图中非常常用,所以在课程中,李老师举了好几个典型的实例,为了节省大家的阅读时间(并不是为了偷懒哦),我就抽其中一个例子吧。

每一个定时器的定时时间是有限制的,那么,如果我们需要的定时时间超过定时器的最长定时时间,怎么办呢?简单,一个不够,两个来凑。如下图所示,一个定时器最多可以累计32767个时钟脉冲,为了好看,我们就取3万个吧,然后把几个定时器进行接力。这时候,从X0闭合到线圈Y0得电,此间的定时时长就为30000×3×100ms=150min,也就是两个半小时,这也太久了吧。

定时器的各种玩法,我在这就不一一解说啦,大家感兴趣的,可以去看看李老师的课程,或者自己编程试试,反正是用软件编程,也玩不坏。看清了定时器的真面目,我们继续来"探索"计数器吧。
