S7-200 SMART指令提供了下述三种类型的定时器。
定时器相关视频教程的链接如下:
定时器对时间间隔计数。定时器的分辨率(时基)决定了每个时间间隔的长短。
S7-200 SMART提供了256个可供使用的定时器,即用户可用的定时器号为T0-T255。TON、TONR 和 TOF 定时器提供三种分辨率:1ms、10ms和100ms。(当前值的每个单位均为时基的倍数。例如,使用 10 ms 定时器时,计数 50 表示经过的时间为 500 ms )。
定时器号的分辨率(时基)及最大计数时间,如下表:
表1. 定时器号和分辨率
定时器类型 | 分辨率 | 最大定时值 | 定时器值 |
TONR (可保持) |
1 ms | 32.767s (0.546min.) | T0, T64 |
10 ms | 327.67s (5.46min.) | T1-T4, T65-T68 | |
100 ms | 3276.7s (54.6min.) | T5-T31, T69-T95 | |
TON,TOF (不保持) |
1 ms | 32.767s (0.546min.) | T32, T96 |
10 ms | 327.67s (5.46min.) | T33-T36, T97-T100 | |
100 ms | 3276.7s (54.6min.) | T37-T63, T101-T255 |
定时器号决定了定时器的分辨率(时基),并且分辨率在指令块上标出。
注意:同一个定时器编号不能同时用于 TON 和 TOF 定时器。 例如,不能同时使用 TON T32和 TOF T32。
不同分辨率的定时器按以下规律刷新:
注意:要确保最小时间间隔,请将预设值 (PV) 增大 1。例如:使用 100 ms 定时器时,为确保最小时间间隔至少为 2100 ms,则将 PV 设置为22。
定时器指令的有效操作数如下表所示:
表2. 定时器指令的有效操作数
输入/输出 |
数据类型 |
操作数 |
Txxx |
WORD |
定时器编号(T0~T255) |
IN |
BOOL |
I、Q、V、M、SM、S、T、C、L、能流 |
PT |
INT |
?IW 、QW、VW、MW、SMW、SW、T、C、LW、AC、AIW、*VD、 *LD、*AC、常数 |
TON 和 TONR 定时器操作:
TOF 定时器
定时器工作规律如下表所示:
表3. 定时器操作和PLC上电循环
类型 |
当前值 >= 预设值 |
使能输入 IN 的状态 |
上电循环/首次扫描 |
TON |
定时器位接通 当前值继续定时到 32,767 |
ON: 当前值 = 定时值 OFF: 定时器位断开,当前值 = 0 |
定时器位 = OFF 当前值 = 0 |
TONR |
定时器位接通 当前值继续定时到 32,767 |
ON: 当前值 = 定时值 OFF: 定时器位和当前值保持最后状态和值 |
定时器位 = OFF 当前值可以保持 |
TOF |
定时器位断开 当前值 = 预设值,停止定时 |
ON: 定时器位接通,当前值 = 0 OFF: 在接通-断开转换之后,定时器开始定时 |
定时器位 = OFF 当前值 = 0 |
接通延时定时器指令举例如下图所示:
图1.接通延时定时器指令程序举例
其中:
图2.时序图
其中:
在条件调用子程序的主程序中,当停止子程序调用时,如果定时器已经激活正在计时,停止调用这个子程序会造成定时器的失控。不管此时定时器前面的激活条件如何变化,定时器(1ms、10ms 时基的)会一直走到最大值,定时器输出也会在达到设定值时接通;(100ms 时基的定时器会在上述情况下停止计时,但在逻辑上处于失控状态)。
如果用 SM0.0 调用子程序;或者在控制逻辑的时序上做到能够保证定时功能完整执行,定时器会正常运行。使用条件调用含有定时器的子程序时,一定要注意时序逻辑,以免造成程序运行错误。
1.利用定时器定时的程序,在编译报错“指令操作数的存储器寻找范围无效”?
这种情况往往是调用的定时器号与定时器类型不配合造成的。参见上面的表格,如T7只能用作TONR,而不能用于TON或TOF。
2.为什么子程序中的定时器和计数器不工作或者工作不正常?
如果有下面情况产生:
A.一个在内部使用了定时器或计数器的子程序,在同一时刻被调用了多次
B. 相同编号的定时器或计数器被多个子程序使用,且同一时刻这些子程序有两个或者以上被调用
则定时器或者计数器资源会因重叠使用而相互影响,造成程序逻辑等方面的错误。