PLC编程及案例手册
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.3 定时器指令

4.3.1 定时器指令解析

(1)定时器的指令格式和功能

定时器的指令格式和功能如表4-16所示。

表4-16 定时器的指令格式和功能

(2)定时器相关参数

① 启动输入端IN IN为启动输入端,数据类型为BOOL型,控制着定时器的能流。

② 定时器编号Tn Tn为定时器编号,不同的定时器编号对应于不同的分辨率等级,定时器的分辨率有1ms、10ms和100ms共3个等级,分辨率等级和定时器编号关系如表4-17所示。

表4-17 分辨率等级和定时器编号表

从表4-17可知,通电延时型(TON)定时器和断电延时型(TOF)定时器共用同一组编号,在一个程序中,同一编号的定时器不能被多次使用。例如,如果程序中采用了通电延时型定时器T37,则不能再用编号为T37的断电延时型定时器。

③ 定时器位和定时器当前值Tn Tn不仅仅是定时器的编号,它还包含两方面的变量信息:定时器位和定时器当前值。

定时器位:存储定时器的状态,当定时器的当前值达到预设值PT时,该位发生动作,其数据类型为BOOL型,取值为0或1。

定时器当前值:存储定时器当前所累计的时间,其数据类型为16位有符号整数,故最大计数值为32767。

④ 预设值PT、分辨率S、定时时间T PT、S、T三者之间的关系式为

T=PT×S

式中 T—实际定时时间;

PT—时间的预设值;

S—定时器的分辨率。

例如:TON指令用定时器T33,其分辨率S为10ms,预设值PT为125,则实际定时时间T的计算公式为

T=125×10=1250(ms)

4.3.2 定时器指令编程案例

(1)例说通电延时型定时器

从梯形图4-25(a)来看,当I0.0接通,定时器T37开始计时,当计时1s时间到,T37触点闭合,使线圈Q0.0得电。

图4-25 梯形图和时序图

从时序图4-25(b)来看,I0.0共有三次接通,说明如下。

① 第一次 当I0.0接通时,定时器T37开始计时,其当前值从0开始递增。若当前值还没达到预设值PT=10时,I0.0断开,则定时器当前值被清零。

② 第二次 当I0.0接通时,定时器T37开始计时,其当前值从0开始递增。若当前值达到预设值10时,定时器位T37接通,从而使线圈Q0.0得电;当I0.0断开时,T37定时器位立刻复位,同时当前值清0,输出Q0.0变为0。

③ 第三次 当I0.0接通时,定时器T37开始计时,其当前值从0开始递增。若当前值达到预设值10时,定时器位T37接通,从而使线圈Q0.0得电,此时只要I0.0处于接通状态,计时到达预设值以后,当前值仍然增加,直到32767停止增加。

(2)例说断电延时型定时器

从梯形图4-26(a)来看,当I0.0接通,T33触点立刻接通,同时将定时器当前值清零,线圈Q0.0得电;当I0.0断开,定时器T33开始计时,当计时1s时间到,T33触点断开,线圈Q0.0失电。

图4-26 梯形图和时序图

从时序图4-26(b)来看,当I0.0接通,T33触点立刻接通,线圈Q0.0得电;定时是从I0.0断开开始的,I0.0共有三次从接通到断开。

① 第一次 当I0.0断开时,定时器T33开始计时,其当前值从0开始递增。若当前值达到预设值100时,定时器位T33置0,从而使线圈Q0.0失电;同时其当前值停止增加,保持不变。

② 第二次 当I0.0断开时,定时器T33开始计时,其当前值从0开始递增。若当前值还没达到预设值100时,I0.0接通,则定时器当前值被清零,定时器T33触点保持接通。

③ 第三次 情况与第一次相同,在此不再赘述。

(3)例说保持型通电延时定时器指令

从梯形图4-27(a)来看,当I0.0的累计接通时间达到1s时,T1触点立刻接通,线圈Q0.0得电,当I0.1接通时,定时器T1被复位,线圈Q0.0失电。

图4-27 梯形图和时序图

从时序图4-27(b)来看,I0.0共有三次接通。

① 第一次 当I0.0第一次接通时,定时器T1开始计时,其当前值从0开始递增。当计时时间达到0.6s时,I0.0断开,其当前值保持现在的值不变。

② 第二次 当I0.0第二次接通时,定时器T1当前值从原有基础上继续增加,当第二次接通时间达到0.4s,即累计接通时间达到1s时,定时器位T1置1,从而使线圈Q0.0得电;只要I0.0保持闭合,T1的当前值将继续增加,此后即使是I0.0断开,定时器T1状态位仍然为1,只是当前值保持不变。

③ 第三次 当I0.0接通时,T1的当前值将继续增加,直到达到32767为止,其定时器位保持1。当I0.1闭合,定时器被复位,触点T1断开,使Q0.0失电,同时当前值被清零。当I0.1断开后,只要I0.0接通,定时器将又开始计时,其当前值从0开始递增。

④ 复位 保持型通电延时定时器的复位不能像普通通电延时定时器的复位那样使用IN从1变为0,而只能使用复位指令R对其进行复位操作。

(4)定时器的刷新机制

不同精度的定时器,它们当前值的刷新周期是不同的,具体情况如下。

① 1ms分辨率定时器 定时器当前值每隔1ms刷新一次,在一个扫描周期中要刷新多次,不和扫描周期同步。

② 10ms分辨率定时器 在每次扫描周期开始对10ms定时器刷新,在一个扫描周期内定时器当前值保持不变。

③ 100ms分辨率定时器 只有在定时器指令执行时,100ms定时器的当前值才被刷新。由于子程序和中断程序不是每个扫描周期都执行,因此,在子程序和中断程序中不宜使用100ms定时器。在主程序中,不能重复使用同一个100ms的定时器号,否则该定时器指令在一个扫描周期中多次被执行,定时器的当前值在一个扫描周期中多次被刷新。这样,定时器就会多计了时基脉冲,同样造成计时失准。因而,100ms定时器只能用于每个扫描周期内同一定时器指令执行一次,且仅执行一次的场合。

(5)例说不同刷新机制对电路的影响

例如,要求用定时器实现电路产生每隔3s Q0.0接通一个扫描周期的方波。

1)用100ms定时器实现

如图4-28(a)所示。

图4-28 梯形图和时序图

① 当程序执行时,T39开始计时,计时时间到3s且程序执行到TON指令时,100ms定时器被刷新,其常开触点闭合,Q0.0得电。

② 下一个扫描周期,其常闭触点断开,T39当前值被清零,其定时触点T39置0,Q0.0失电。

③ 一个扫描周期后,其常闭触点重新闭合,T39又开始计时。由此分析,此电路每隔3s Q0.0将接通一个扫描周期。

2)用1ms定时器实现

如图4-29(a)所示。

图4-29 错误梯形图和正确梯形图

如果在某个扫描周期开始,定时器当前值恰好达到3000,因为T32定时器每1ms刷新一次,所以会在扫描周期开始刷新定时器,结果会使常闭触点T32断开,T32当前值清零,执行到第二个网络时,常开触点T32没有机会接通,故Q0.0则不会接通。所以此程序不能实现与图4-28(a)相同的功能。改正方法如图4-29(b)所示。

另外,此程序也不适合10ms分辨率定时器。

4.3.3 综合实例

综合实例1——停止操作保护和接触器故障处理程序

在某些特定工业场合下,接触器卡阻不能吸合、接触器触点熔焊、按钮按下不能启动等故障不再是小概率事件。为了避免接触器不吸合、电动机启动按钮不弹起以至停止按钮失效带来的不良后果,需要通过一定的PLC程序对停止操作做出保护,或者给予现场维护人员以不同形式的声光报警等提示,以便于设备维护人员进行相应的处理。本案例要求通过一定的PLC程序完成对停止操作的保护并在接触器不吸合时进行报警。

元件说明见表4-18。

表4-18 元件说明

控制程序如图4-30所示。

图4-30 控制程序

① 电动机无故障 当按下I0.0时,I0.0得电常开触点闭合,Q0.0得电,接触器线圈得电其常开触点闭合,电动机启动运转,按下停止按钮I0.1,I0.1得电常闭触点断开,Q0.0失电,电动机停止运行。

② 启动按钮不能正常弹起的故障

a.本例分析 按下停止按钮I0.1,Q0.0失电并解除自锁,松开停止按钮I0.1,I0.1状态为OFF,I0.1常闭触点闭合。如果此时启动按钮不能正常弹起,由于I0.0串联上升沿脉冲指令,电动机不会重新启动仍然处于停转状态。这样就通过程序(将启动按钮I0.0常开触点用上升沿触发来代替)避免了特殊情况(启动按钮不能正常弹起)下停止按钮失效(按下停止按钮松开后电动机重新自启动)问题。

b.如果网络1中I0.0没有串联上升沿脉冲指令,而且启动按钮不能正常弹起,则会出现按下停止按钮、电动机停转,松开停止按钮,电动机又重新启动的状况,即用停止按钮I0.1不能实现Q0.0的停机操作。

③ 接触器不能正常吸合的故障 若接触器Q0.0已经得电,而接触器未正常吸合,则其辅助触点同样不能闭合,则I0.2常闭触点闭合,定时器T32开始计时,0.5s后T32常开触点闭合,Q0.1得电,报警蜂鸣器启动(并自锁)提醒维护人员进行处理。按下停止按钮I0.1时,Q0.0失电,Q0.1失电,报警器停止报警,可进行后续维护检修等工作。

综合实例2——通电延时和断电延时控制

要求开关闭合时,1号电动机延时5s启动,开关断开时,延时2s停止。当1号电动机累计延时时间达到30mim时,2号电动机工作。

元件说明见表4-19。

表4-19 元件说明

控制程序如图4-31所示。

图4-31 定时器延时控制程序

① 将开关I0.0拨到上方,I0.0的状态由OFF变为ON,I0.0常开触点闭合,T37开始计时,同时T38得电常开触点闭合。5s后T37得电常开触点闭合,Q0.0得电并自锁,T30开始计时。

② 此时若将I0.0拨到下方,T38开始计时,2s后T38失电,常开触点断开,Q0.0失电,T30停止计时但不复位。

③ 再将I0.0拨到上方,5s后Q0.0得电,T30继续计时,直到计时30min,T30得电常开触点闭合,Q0.1得电,Q0.0失电。

④ 保持型通电延时定时器的当前值在IN从1变为0时,定时器位和当前值保留下来。当IN再次从0变为1时,当前值从上次保持值继续计时,当累计当前值大于等于预设值时,定时器位为1,但不会停止计时,只有计时到32767时才停止计时。因此保持型接通延时定时器的复位不能像普通接通延时定时器那样使IN从1变为0,只能使用复位指令。因此,在本案例中需要对T30进行复位时,需按下复位按钮I0.1。