4.4 定时器与计数器指令
定时器和计数器的结构相似,是PLC中的重要编程元件。定时器和计数器的当前值和设定值寄存器均为16位有符号整数(INT)。当定时器和计数器的当前值达到设定值时,定时器位和计数器位从0变为1,使PLC作出相应的动作,此时它们对应的常开触点闭合,常闭触点断开。因此,利用定时器位和计数器位的变化便可完成相应的控制功能。
4.4.1 定时器指令
S7-200PLC提供三种定时器指令:TON(通电延时),TONR(有记忆通电延时)和TOF(断电延时)。
定时器的时基脉冲有1ms、10ms和100ms三种分辨率,分辨率与定时器的编号有关,如表4-4所示。
表4-4 定时器的分类
定时器的设定时间(或定时时间)等于设定值与分辨率的乘积,例如,T33的设定值为100,则定时时间为100×10ms=1000ms。
定时器指令的操作数有3个:定时器编号、设定值(PT)和使能输入(IN)。
(1)定时器编号:用定时器的名称T加它的常数编号(0~255)来表示,如T37。定时器编号可以表示定时器位和定时器当前值。在定时器当前值到达设定值PT时,定时器位被置1,其常开触点闭合,常闭触点断开。
定时器当前值用于存储定时器的累积时间,它用16位有符号整数(INT)表示,范围是1~32767。
(2)设定值PT:它的数据类型为INT型,寻址范围是VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数,其中常数最为常用。
(3)使能输入(IN):它的数据类型为布尔型(bool),寻址范围是I、Q、M、SM、T、C、V、S和L。
三种定时器指令的梯形图和语句表格式如表4-5所示。
在梯形图指令盒中的右下角,标出了该定时器的分辨率。
1.通电延时定时器(on-delay timer,TON)
通电延时定时器用于单一时间间隔的定时。PLC通电或首次扫描,定时器位为OFF状态,当前值为0,定时器处于初始状态。使能输入接通时,定时器位为OFF状态,当前值从0开始累计计时;当前值达到设定值时,定时器位为ON状态,当前值仍连续计数到32767。使能输入断开,定时器自动复位,此时,定时器位为OFF状态,当前值为0。
表4-5 定时器指令的格式
图4-20所示的为通电延时定时器指令应用示例。
图4-20 通电延时定时器指令应用示例
当I0.0接通时,T33开始计时,即当前值寄存器计下周期为10ms的时基脉冲数,在当前值达到设定值100时,计时时间到,则T33定时器位状态被置1,其常开触点接通,Q0.0输出为ON状态;其后当前值仍增加但不影响T33定时器位的状态。
当I0.0断开时,T33复位,当前值和定时器位清零,即恢复初始状态。若I0.0的接通时间未达到设定值就断开,则T33立即复位,Q0.0不会有输出。
2.有记忆通电延时定时器(retentive on-delay timer,TONR)
有记忆通电延时定时器具有记忆功能,可用于对多个间隔的累计定时。PLC通电或首次扫描,定时器位为OFF状态,当前值保持。当使能输入接通时,定时器位为OFF,当前值从0开始累计计数时间。使能输入断开,定时器位保持断开前的状态,当前值保持在掉电前的值。当使能输入再接通时,当前值从上次的保持值开始继续计数,当累计当前值达到设定值时,定时器位为ON状态,当前值仍连续计数到32767。
需要注意的是,TONR定时器只能用复位指令R对其进行复位操作。TONR定时器复位后,定时器位为OFF状态,当前值为0。
图4-21所示的为有记忆通电延时定时器指令应用示例。
图4-21 有记忆通电延时定时器指令应用示例
对于有记忆通电延时定时器T3,当I0.0接通,输入端IN为1时,定时器开始计时(计时基脉冲数);当I0.0断开,输入端IN为0时,其当前值保持;下次IN再为1时,T3从保持值开始再计时,在当前值大于或等于设定值PT时,T3定时器位为ON状态,当前值被置1,其常开触点接通,Q0.0输出为ON状态;以后即使输入端IN再为0,也不会使T3复位,其当前值保持断开前的值。必须接通I0.1执行复位指令,才使T3复位。复位后,定时器位为OFF,当前值为0。
3.断电延时定时器(off-delay timer,TOF)
断电延时定时器用于断电后的单一时间间隔的定时。PLC通电或首次扫描,定时器位为OFF状态,当前值为0,定时器处于初始状态。使能输入接通时,定时器位为ON状态,当前值为0;当使能输入由接通到断开时,定时器开始累计计时,在当前值达到设定值时,停止计时,定时器位为OFF状态。
如果使能输入再次从断开到接通(OFF→ON),TOF定时器复位,此时,定时器位为OFF状态,当前值为0。如果使能输入再次从接通到断开(ON→OFF),则TOF定时器可实现再次启动。
图4-22所示的为断电延时定时器指令应用示例。
当I0.0接通时,定时器位为ON状态,当前值为0。当I0.0由接通到断开时,定时器开始计时,当前值达到设定值(PT=10ms×100=1s)时,定时器位为OFF状态,并停止计时。
4.分辨率对定时器的影响
对于S7-200PLC的定时器,分辨率有1ms、10ms、100ms三种,不同分辨率定时器的刷新方式是不同的。
1ms定时器由系统每隔1ms刷新一次,与扫描周期及程序处理无关,即采用中断刷新方式。在扫描周期大于1ms时,定时器位和当前值在一个扫描周期内被多次刷新。因此,其当前值在一个扫描周期内不一定保持不变。
图4-22 断电延时定时器指令应用示例
10ms定时器的定时器位和当前值则由系统在每个扫描周期开始时自动刷新。由于每个扫描周期只刷新一次,故在每次程序处理期间定时器位和当前值不变。
100ms定时器的定时器位和当前值在执行该定时器指令时被刷新。为了使定时器正确地定时,要确保一个扫描周期中只执行一次100ms定时器指令。如果一个100ms定时器指令在一个扫描周期中多次被执行,则该定时器就会多计时基脉冲数,此时相当于时钟走快了,造成计时失准。
4.4.2 计数器指令
计数器用来累计输入脉冲的次数,是应用非常广泛的编程元件,经常用来对产品进行计数。
S7-200PLC有三种计数器指令:CTU(加计数器)、CTUD(加减计数器)和CTD(减计数器)。计数器指令的操作数有4个:计数器编号、设定值(PV)、脉冲输入和复位输入。
(1)计数器编号:用计数器的名称C和它的常数编号(0~255)来表示,如C3。计数器编号C3可以表示计数器位和计数器当前值。计数器位是在计数器当前值到达设定值PV时,该位被置1,其常开触点闭合、常闭触点断开。计数器当前值用于存储计数器当前所累计的脉冲个数,它用16位有符号整数(INT)表示,范围是1~32767。
(2)设定值PV:它的数据类型为INT型,寻址范围是VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数,其中常数最为常用。
(3)脉冲输入:它的数据类型为布尔型(bool),寻址范围是I、Q、M、SM、T、C、V、S和L。
(4)复位输入:它的数据类型和寻址范围与脉冲输入的相同。当复位输入R为ON状态时计数器被复位,此时,计数器位变为OFF状态,计数器当前值被清零。
三种计数器指令的梯形图和语句表格式如表4-6所示。
表4-6 计数器指令的格式
每个计数器有一个16位的当前值寄存器和一个1位的计数器位。CU为加计数脉冲输入端,CD为减计数脉冲输入端,R为复位端,PV为设定值。当复位端R断开时,计数器工作,计数脉冲有效;当复位端R接通时,计数器复位不工作。
1.加计数器(count up,CTU)
S7-200PLC首次扫描时,计数器位为OFF状态,当前值为0,计数器处于初始状态。图4-23所示的为加计数器指令的应用示例。
图4-23 加计数器电路
当计数器复位输入端R接通,即I0.1状态为1时,计数器处于初始状态,不工作。当计数器复位输入端断开,即I0.1状态为0时,计数器开始工作,在计数脉冲输入端CU的每一个上升沿(OFF→ON),计数器的当前值加1,当前值大于或等于设定值时,计数器位为ON状态(则Q0.0接通),当前值继续计数,直到32767才停止计数。当复位输入端R接通或执行复位指令时,计数器被复位处于初始状态。
2.加减计数器(count up/down,CTUD)
加减计数器有两个计数脉冲输入端,CU输入端用于递增计数,CD输入端用于递减计数。S7-200PLC首次扫描时,计数器位为OFF状态,当前值为0,计数器处于初始状态。
在递增计数脉冲输入端CU的上升沿,计数器的当前值加1;在递减计数脉冲输入端CD的上升沿,计数器的当前值减1,当前值大于或等于设定值PV时,计数器位为ON状态。若复位输入端R为ON状态或对计数器执行复位指令,计数器复位处于初始状态。
加减计数器的当前值计数到最大值32767(16#7FFF)时,下一个CU输入的上升沿使当前值加1,变为最小值-32768(16#8000);当前值为最小值-32768时,下一个CD输入的上升沿使当前值减1,变为最大值32767。
加减计数器的应用示例如图4-24所示。
图4-24 加减计数器电路
3.减计数器(count down,CTD)
S7-200PLC首次扫描时,计数器位为OFF状态,当前值为设定值PV。图4-25所示的为减计数器指令的应用示例。
当计数器复位输入端LD接通,即I0.1状态为1时,计数器不工作,即计数器位为OFF状态,当前值为设定值5。当计数器复位输入端断开,即I0.1状态为0时,计数器开始工作,在计数脉冲输入端CD的每一个上升沿(OFF→ON),计数器的当前值减1,当前值减到0时,停止计数,计数器位为ON状态(则Q0.0接通)。
当复位输入端LD接通或执行复位指令(R)时,计数器被复位,即计数器位为OFF状态,并把设定值PV装入当前值寄存器中。
应用计数器指令应注意如下的问题。
(1)可以用复位指令R来对三种计数器复位,复位指令的执行结果是使计数器位变为OFF状态,同时计数器当前值清零(CTD变为设定值PV)。
(2)在一个程序中,同一个计数器只能使用一次。
(3)脉冲输入和复位输入同时存在时,优先执行复位操作。
图4-25 减计数器电路
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。