阐明
您可以使用“Off-delay”指令将Q 参数的复位延迟PT 指定的时间。当参数IN 的逻辑运算(RLO)结果从“0”变为“1”(信号上升沿)时,设置参数Q。当参数IN的信号状态变回“0”时,预设时间PT开始计时。只要时间PT 运行,参数Q 就保持设置状态。当超过时间PT时,参数Q被重置。如果在超过时间值PT 之前参数IN 的信号状态变为“1”,则定时器复位。参数Q 的信号状态保持设置为“1”。
通过ET参数可以查询当前时间值。该定时器值从T#0s 开始,并在达到持续时间PT 后结束。经过PT 时间后,参数ET 保持其当前值,直到参数IN 再次更改为“1”。如果参数IN 在时间PT 过去之前更改为“1”,则参数ET 将重置为值T#0s。
阐明
如果程序中没有调用定时器(这是因为定时器被忽略),则输出ET 在定时器到期后立即返回一个常量值。每次调用“关闭延迟”指令时,必须将其分配给存储指令数据的IEC 定时器。
指令数据将在以下情况下更新:
当输出ET 或Q 互连时调用该指令。如果输出未互连,则不会更新输出ET 中的当前时间值。
当访问输出Q 或ET 时。
有关在结构中调用IEC 定时器(多个实例)的信息,请参阅“调用IEC 定时器”
S7-1200系列CPU
IEC定时器是IEC_TIMER或TOF_TIME数据类型的结构体,可以如下声明:
声明为系统数据类型IEC_TIMER 的背景DB(例如“MyIEC_TIMER_DB”)
在程序块中声明为“静态”的数据类型TOF_TIME 的局部变量(例如,#MyIEC_TIMER_Instance)
S7-1500系列CPU:
IEC 定时器是数据类型IEC_TIMER、IEC_LTIMER、TOF_TIME 或TOF_LTIME 的结构,可以声明如下:
声明为具有系统数据类型IEC_TIMER 或IEC_LTIMER 的背景DB(例如“MyIEC_TIMER_DB”)
在程序块中声明为“静态”的数据类型TOF_TIME 或TOF_LTIME 的局部变量(例如,#MyIEC_TIMER_Instance)
IEC 定时器作为系统数据类型IEC_timer 的背景数据块(共享DB)
您可以将IEC 定时器声明为数据块,如下所示:到F();
IEC定时器作为块接口的局部变量(多个实例)
您可以将IEC 计时器声明为局部变量,如下所示:
#myLocal_Timer();
范围
该命令的参数如下表所示:
参数声明数据类型存储区域说明S7-1200S7-1500INInputBOOLBOOLI, Q, M, D, L, P 启动输入PTInputTIMETIME, LTIMEI, Q, M, D, L, P 关闭延迟的持续时间。
PT 参数的值必须为正。 QOutputBOOLBOOLI、Q、M、D、L、P 是超过时间PT 后复位的操作数。 ETOutputTIMETIME、LTIMEI、Q、M、D、L、P 当前定时器值脉冲时序图
下图是“关闭延时”指令的脉冲图:
例子
以下示例说明了该指令的工作原理:
SCL'TOF_DB'.TOF(IN :='Tag_Start',
PT :='Tag_PresetTime',
Q='标签_状态',
ET='Tag_ElapsedTime');当“Tag_Start”操作数的信号状态从“0”变为“1”时,“Tag_Status”操作数被置位。当“Tag_Start”操作数的信号状态从“1”变为“0”时,PT 参数指定的时间开始计数。只要时间正在流逝,“Tag_Status”操作数就会保持设置状态。该时间过后,“Tag_Status”操作数将被复位。当前时间值存储在“Tag_ElapsedTime”操作数中。
审稿人:刘庆