
【前言】前面我们介绍了西门子的S5定时器,根据功能区分,共有5种定时器,分别为脉冲定时器SP、扩展脉冲定时器SE、接通延时定时器SD、保持型接通延时定时器SS以及断开延时定时器SF。根据应用需求,结合......
【前言】
前面我们介绍了西门子的S5定时器,根据功能区分,共有5种定时器,分别为脉冲定时器SP、扩展脉冲定时器SE、接通延时定时器SD、保持型接通延时定时器SS以及断开延时定时器SF。根据应用需求,结合编程技巧,通过S5定时器可以实现许多控制功能。
S5定时器在使用中有以下局限性:
1、S5定时器的数量是有限的,比如CPU315中共有256个定时器。不同的CPU支持的定时器的数量有所不同,但都是有限的;
2、不仅过编程扩展的情况下,S5定时器的定时时长较短,最大定时时长为9990s,即2小时46分钟30秒。
基于上述S5定时器的两个局限性,这里我们引出IEC定时器。
一、IEC定时器IEC定时器没有数量限制,其通过调用系统功能块SFB3(TP)、SFB4(TON)和SFB5(TOF)来实现,3者分别对应脉冲定时器、接通延时定时器和断开延时定时器。
SFB3(TP):脉冲定时器
SFB4(TON):接通延时定时器
SFB5(TOF):断开延时定时器

图1IEC定时器
二、接口定义1、接口
由图1可见,三种IEC定时器的接口定义类似,归纳如下:

图2IEC定时器接口定义
2、TIME数据类型
S5定时器的时间采用的是"s5time"的数据类型,其完整格式为:
S5TaaD_bbH_ccM_ddS_eeeMS
其中:aa为天数,bb为小时,cc为分钟,dd为秒,eee为毫秒
由于时间值为双整数,其最大值为16#7FFFFFFF,即十进制数2,147,483,647。时基为固定的1ms,所以:
IEC定时器的最大定时时长为2,147,483,648MS,即
24天20小时31分23秒648毫秒
三、定时器逻辑IEC定时器的时序逻辑与S5定时器基本类似,我们以接通延时定时器SFB4(TON)为例进行简单分析,如图3所示,为SFB4(TON)的时序逻辑图。

图3SFB4(TON)时序逻辑
1、输入"IN"端检测到上升沿信号,定时器开始计时,定时时间由"PT"端给定,输出"ET"端指示"流逝"的时间;
2、定时器计时期间,输出"Q"(即定时器状态)一直为0;
3、如果定时器计时结束期间输入端"IN"一直保持高电平,则计时结束后,输出"Q"置位,直到"IN"变为低电平,输出"Q"也随之复位,从而实现"接通延时功能"。
4、如果"IN"端高电平的持续时间小于"PT"端的值时(图3篮框所示),定时器会在"IN"端回零时随之停止计时,直到"IN"端检测到下一个上升沿,定时器再重新计时。这与S5定时器中的"接通延时定时器SD"是一致的。
总的来说,在时序逻辑上,IEC定时器与S5定时器并没有本质的差异,有兴趣的小伙伴可以自行分析一下SFB3(TP)和SFB5(TOF)的时序逻辑,如图4、图5所示,这里懒得写了。

图4SFB3(TP)时序逻辑

图5SFB5(TOF)时序逻辑
【几点注意事项】IEC定时器只在STARTUP和RUN模式下运行。
操作系统会在冷启动期间重置SFB4"TON"的背景数据块。如果希望在暖启动后初始化此SFB的背景,必须在OB100中使用PT=0ms调用SFB4。如果此SFB的背景位于另一个块中,可以通过初始化更高级别的块,重置这些背景。