您可利用定时器执行时间基准计数功能。S7-200指令集提供三种不同类型的定时器。
?接通延时定时器(TON),用于单间隔计时
?保留性接通延时定时器(TONR),用于累计一定数量的定时间隔
?断开延时定时器(TOF),用于延长时间以超过关闭(或假条件),例如电机关闭后使电机冷却。
定时器操作:
定时器类型 当前值 >= 预设值 启用输入"打开" 启用输入"关闭" 电源循环/首次扫描
TON 定时器位打开,
当前值继续计数
直至达到32,767 当前值记录时间 定时器位关闭,
当前值=0 定时器位关闭,
当前值=0
TONR 定时器位打开,
当前值继续计数
直至达到32,767 当前值记录时间 定时器位及当前
值保持最后的状态 定时器位关闭,
可保持当前值(1)
TOF 定时器位关闭,
当前值=预设值,
停止计数 定时器位打开,
当前值=0 从"打开"转换为"关
闭"后定时器开始计
数 定时器位关闭,
当前值=0
(1) 可通过电源循环为保留目的选择保留性定时器当前值。请参阅保留范围标记-系统块配置中有关S7?00 CPU的内存保留信息。
请参阅文档光盘"提示和技巧"中的提示31,查阅使用接通延时定时器(TON)的抽样程序。
注释:
可用"复原"(R)指令复原任何定时器。"复原"指令执行下列操作:
定时器位 = 关闭,定时器当前值 = 0
只能用"复原"指令复原TONR定时器。
复原后,TOF定时器要求启用输入从"打开"转换为"关闭",以便重新启动。
1毫秒分辨率
1毫秒定时器记录自现用1毫秒定时器启用以来1毫秒定时器间隔的数目。执行定时器指令即开始计时;但是,1毫秒定时器每毫秒更新一次(定时器位及定时器当前值),不与扫描循环同步。换言之,在超过1毫秒的扫描过程中,定时器位和定时器当前值将多次更新。
定时器指令用于打开和复原定时器,如果是TONR定时器,则用于关闭定时器。
因为可在1毫秒内的任意时刻启动定时器,预设值必须设为比最小要求定时器间隔大一个时间间隔。例如,使用1毫秒定时器时,为了保证时间间隔至少为56毫秒,则预设时间值应设为57。
10毫秒分辨率
10毫秒定时器记录自现用10毫秒定时器启用以来10毫秒定时器间隔的数目。执行定时器指令即开始计时;但是,在每次扫描循环的开始更新10毫秒定时器,其方法是以当前值加上积累的10毫秒间隔的数目(自前一次扫描开始算起)(换言之,在整个扫描过程中,定时器当前值及定时器位保持不变)
因为可在10毫秒内的任意时刻开始定时器,预设值必须设为比最小要求定时器间隔大一个时间间隔。例如,使用10毫秒定时器时,为了保证时间间隔至少为140毫秒,则预设时间值应设为15。
100毫秒分辨率
100毫秒定时器记录自现用100毫秒定时器上一次更新以来100毫秒定时器间隔的数目。这种定时器的更新方法是在执行定时器指令时以当前值加上积累的100毫秒间隔的数目(自前一次扫描开始算起)。
只有在执行定时器指令时才对100毫秒定时器的当前值进行更新。因此,如果启用了100毫秒定时器但并未对各扫描循环执行定时器指令,则仍不能更新定时器当前值并将丧失时间。同样,如果在单个扫描循环内多次执行100毫秒定时器指令,将向定时器的当前值多次增加100毫秒间隔数,赢得时间。只有在每次扫描循环仅仅执行一次定时器指令时,才应该使用100毫秒定时器。
因为可在100毫秒内的任意时刻启动定时器,预设值必须设为比最小要求定时器间隔大一个时间间隔。例如,使用100毫秒定时器时,为了保证时间间隔至少为2100毫秒,则预设时间值应设为22。
更新定时器当前值
更新当前时间值有多种方式,其作用取决于如何使用定时器,如下图所示的定时器操作:
?使用1毫秒定时器时,每次在执行正常关闭触点T32之后和执行正常打开触点T32之前更新定时器当前值时,Q0.0即打开进行一次扫描。
?使用10毫秒定时器时,从不打开Q0.0,因为从扫描顶端至执行定时器方框均打开定时器位T33。一旦执行了定时器方框,定时器的当前值及T位均被设为零。执行正常打开触点T33时,T33及Q0.0均被关闭。
?使用100毫秒定时器时,每当定时器当前值达到预设数值时,Q0.0时钟打开进行一次扫描。
通过使用正常关闭解点Q0.0代替定时器位作为定时器方框的启用输入,可保证每次定时器达到预设值时均打开输出Q0.0进行一次扫描。
大家一起复习一下