可以使用“ 生成关断延时”(Generate off-delay) 指令将延时所指定的时间 PT 复位输出 Q。当输入 IN 的逻辑运算结果 (RLO) 从“0”变为“1”(上升沿)时,置位 Q 输出。当输入 IN 处的信号状态变回“0”时,预设的时间段 PT 开始计时。在 PT 计时过程中,输出 Q 期间将保持置位。
超出所指定的时间段 PT 后,复位输出 Q。如果输入 IN 的信号状态在时间段 PT 计时结束之前变为“1”,则复位该时间。而输出 Q 处的信号状态则保持为“1”。
可以在输出 ET 处查询当前时间值。该时间值从 T#0s 开始,达到 PT 时间值时结束。经过时间 PT 后,输出 ET 会保持为当前值,直至输入 IN 切换回“ 1” 。如果在经过时间 PT 前输入 IN切换回“1”,则输出 ET 会复位为值 T#0 。
该指令与标准 TOF 指令的功能上存在以下几点不同:
• 如果在时间 PT = 0 ms 时调用该指令,则输出 Q 和 ET 复位。
• 如果在 PT < 0 ms 时调用该指令,则输出 Q 和 ET 复位。
需要在 PT 大于 0 且输出 IN 出现另一个下降沿时,重新启动关断延时。
① 对于循环 n+1 中的首次调用,相对于 F 运行组开始的时间,该指令的调用时间比在循环 n 中的调用时间早 Δ1 ,这是因为在循环 n+1 中调用该指令之前跳过了 F 运行组部分安全程序。对于时间更新,该指令将考虑时间 T Base_1,而不是循环 n 中从调用开始实际已用完的 T 1 时间。
② 在循环 n+1 中第二次调用该指令。此时,不考虑其它时间更新(增量为 Δ2 )。
③ 在循环 n+2 中调用该指令时,相对于 F 运行组开始的时间,该指令的调用时间比在循环 n 中的调用时间晚 Δ3 ,这是因为在循环 n+2 中调用该指令之前,更高优先级的中断已中断了 F 运行组。该指令将使用时间 T Base_1 + TBase_2,而不是循环 n 中从调用开始算起已实际经过的时间 T 3 。即使在循环 n+1 中没有调用该指令,也将发生以上状况。
例如:
如果操作数“TagIn_1”的信号状态从“0”变为“1”,则将输出 Q 处操作数“TagOut” 的信号状态置位为“1”。
如果操作数“TagIn_1”的信号状态变为“0”,则输入 PT 处所指定的时间 (200 ms) 开始计时。
超出该时间时,将输出 Q 处操作数“TagOut” 重新置位为“0”。而在操作数“"F_DB_1".Tag_ET”中则为当前时间值。
说明
可以使用“生成关断延时”(Generate off-delay) 指令将 Q 输出的复位延时设定的时间 PT。当输入 IN 的逻辑运算结果 (RLO) 从“0”变为“1”(信号上升沿)时,将置位 Q 输出。当输入 IN 处的信号状态变回“0”时,预设的时间 PT 开始计时。只要 PT 持续时间仍在计时,输出 Q 就保持置位。持续时间 PT 计时结束后,将复位输出 Q。如果输入 IN 的信号状态在持续时间 PT 计时结束之前变为“1”,则复位定时器。输出 Q 的信号状态仍将为“1”。
可以在 ET 输出查询当前的时间值。该定时器值从 T#0s 开始,在达到持续时间值 PT 后结束。当持续时间 PT 计时结束后,在输入 IN 变回“1”之前,输出 ET 会保持被设置为当前值的状态。在持续时间 PT 计时结束之前,如果输入 IN 的信号状态切换为“1”,则将 ET 输出复位为值 T#0s。
每次调用“关断延时”指令,必须将其分配给存储指令数据的 IEC 定时器。
说明
如果程序中未调用定时器(例如,由于跳过定时器而导致),则输出 ET 会在定时器计时结束后立即返回一个常数值。
对于 S7-1200 CPU
IEC 定时器是一个 IEC_TIMER 或 TOF_TIME 数据类型的结构,可如下声明:
声明为一个系统数据类型为 IEC_TIMER 的数据块(例如,“MyIEC_TIMER”)
声明为块中“Static”部分的 TOF_TIME 或 IEC_TIMER 类型的局部变量(例如,#MyIEC_TIMER)
对于 S7-1500 CPU
IEC 定时器是一个 IEC_TIMER、IEC_LTIMER、TOF_TIME 或 TOF_LTIME 数据类型的结构,可如下声明:
声明为一个系统数据类型为 IEC_TIMER 或 IEC_LTIMER 的数据块(例如,“MyIEC_TIMER”)
声明为块中“Static”部分的 TOF_TIME、TOF_LTIME、IEC_TIMER 或 IEC_LTIMER 类型的局部变量(例如,#MyIEC_TIMER)
在以下应用中,将更新该指令数据:
ET 或 Q 输出未互连时调用该指令。如果输出未互连,则不更新输出 ET 中的当前时间值。
访问 Q 或 ET 输出时。
执行“关断延时”指令之前,需要事先预设一个逻辑运算。该运算可以放置在程序段的中间或者末尾。
参数
下表列出了“关断延时”指令的参数:
参数
声明
数据类型
存储区
说明
S7-1200
S7-1500
S7-1200
S7-1500
IN
Input
BOOL
BOOL
I、Q、M、D、L 或常量
I、Q、M、D、L、P 或常量
启动输入
PT
Input
TIME
TIME、LTIME
I、Q、M、D、L 或常量
I、Q、M、D、L、P 或常量
关断延时的持续时间
PT 参数的值必须为正数。
Q
Output
BOOL
BOOL
I、Q、M、D、L
I、Q、M、D、L、P
超出时间 PT 时复位的输出。
ET
Output
TIME
TIME、LTIME
I、Q、M、D、L
I、Q、M、D、L、P
当前时间值
脉冲时序图
下图为“关断延时”指令的时序图:
示例
以下示例说明了该指令的工作原理: