【本文要点】
一、定时器的存储及格式

S7-300/400 CPU为定时器保留了一片存储区域。每个定时器有一个16位的字和一个二进制位。定时器的字用来存放其当前的定时时间值;定时器的触点状态由它的位的状态决定。

用户使用的定时器由3位BCD码时间值(0-999),和时间基准组成,如图1所示。

s7-300定时器用法(S7-300400进阶笔记8深入浅出的认识一下S7的定时器)(1)

图1 定时器"字"

1、时基

如图1所示,定时器"字"的第12、13位用于指定时基,其代码与对应的时基如下表所示。

实际的定时时间等于时间值乘以时基。例如,定时器"字"的值为W#16#2099时,时基为1s,则定时时间为99*1s=99s。

时基反映了定时器的分辨率,时基越小分辨率越高,可定时时间越短;时基越大分辨率越低,可定时时间越长。比如图1中BCD码表示的时间值同为999时,在时基"10ms"下,其定时时长仅为9990ms,即9.99s;而在时基"10s"下,其定时时长可达9990s。

2、时间预置值

(1)在LAD中,定时器的预置值通过"S5T#"的形式写入。"S5T#"的完整格式为:

S5T#aH_bM_cS_dMS,其中H表示小时,M为分钟,S为秒,MS为毫秒,a、b、c、d为用户设定的时间预置值。

由于定时器的最大定时时长为9990s(时基为"10s"),转换为"时、分、秒"的形式为:2小时46分钟30秒,因此,"S5T#"的最大时间值为S5T#2H_46M_30S,在编程中,下划线可以省略,因此,其可写成S5T#2H46M30S,如图2所示。

编程中,输入时间预置值后,系统会自动选择合适的时基,选择的原则是在满足定时范围的条件下,选择最小的时基。如定时要求为90s,则时基"100ms"、"1s"和"10s"都能满足定时范围要求,此时,系统会自动选择"100ms"的时基。

s7-300定时器用法(S7-300400进阶笔记8深入浅出的认识一下S7的定时器)(2)

图2 "S5T#"时间预置值

(2)如果用STL编程,除了可用"S5T#"将时间预置值装入累加器外,还可以用16进制数,其格式为:

W#16#wxyz,其中w为时基,xyz是BCD码格式的时间值。

STL语句格式如下:

s7-300定时器用法(S7-300400进阶笔记8深入浅出的认识一下S7的定时器)(3)

图3 STL下,设置时间值


二、CPU中定时器的数量

不同的CPU支持定时器数量不同的,有两种方法可确定某一CPU的定时器个数:

  1. 查看该CPU对应的硬件手册;
  2. "硬件组态"界面下,在线查看当前CPU的性能数据,如图4所示。注意,由于这里我们用的是仿真器,因此,在线查看的信息与实际的硬件(CPU315)信息不符,实际上CPU315仅有256个定时器。

s7-300定时器用法(S7-300400进阶笔记8深入浅出的认识一下S7的定时器)(4)

图4 在线查看CPU的"性能数据"

定时器在程序中的表示方式:T 定时器号。定时器使用时,不能超过CPU的所支持的个数。比如,CPU315有T0-T255共256个定时器,如果你使用T600,下载程序块的时候会提示你 不能复制块,即下载不了。


三、S7中定时器的类别

s7-300定时器用法(S7-300400进阶笔记8深入浅出的认识一下S7的定时器)(5)

图5 S7-300/400定时器汇总

如图5所示,汇总了S7-300/400的5种定时器,分别为脉冲定时器(SP)、扩展脉冲定时器(SE)、接通延时定时器(SD)、保持型接通延时定时器(SS)及断开延时定时器(SF)。编程中,要根据实际需求,灵活选择合适的定时器。具体用法,请待下回分解。

,