阐明
您可以使用“On-delay”命令将Q 参数的设置延迟PT 指定的时间。当参数IN 的逻辑运算结果(RLO)从“0”变为“1”(信号上升沿)时启动该指令。当命令启动时,预设时间PT开始计时。
当超过持续时间PT时,参数Q的信号状态变为“1”。只要启动输入保持为“1”,参数Q 就会保持设置状态。如果IN 参数的信号状态从“1”变为“0”,则参数Q 被复位。当参数IN 检测到新的上升信号沿时,定时器功能将重新启动。
通过ET参数可以查询当前时间值。该时间值从T#0s 开始,并在达到持续时间PT 后结束。一旦参数IN 的信号状态变为“0”,ET 参数就会复位。
阐明
如果程序中没有调用定时器(这是因为定时器被忽略),则输出ET 在定时器到期后立即返回一个常量值。每次调用“接通延迟”指令时,必须将其分配给存储指令数据的IEC 定时器。
指令数据将在以下情况下更新:
当输出ET 或Q 互连时调用该指令。如果输出未互连,则不会更新输出ET 中的当前时间值。
当访问输出Q 或ET 时。
S7-1200系列CPU
IEC定时器是IEC_TIMER或TON_TIME数据类型的结构,可以如下声明:
声明为系统数据类型IEC_TIMER 的背景DB(例如“MyIEC_TIMER_DB”)
在程序块中声明为“静态”的数据类型TON_TIME 的局部变量(例如,#MyIEC_TIMER_Instance)
S7-1500系列CPU:
IEC定时器是IEC_TIMER、IEC_LTIMER、TON_TIME或TON_LTIME数据类型的结构,可以如下声明:
声明为具有系统数据类型IEC_TIMER 或IEC_LTIMER 的背景DB(例如“MyIEC_TIMER_DB”)
在程序块中声明为“静态”的数据类型TON_TIME 或TON_LTIME 的局部变量(例如,#MyIEC_TIMER_Instance)
IEC 定时器作为系统数据类型IEC_timer 的背景数据块(共享DB)
您可以将IEC 定时器声明为数据块,如下所示:吨();
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'TON_DB'.TON(IN :='Tag_Start',
PT :='Tag_PresetTime',
Q='标签_状态',
ET='Tag_ElapsedTime');当“Tag_Start”操作数的信号状态从“0”变为“1”时,PT 参数指定的时间开始计数。经过该时间段后,操作数“Tag_Status”的信号状态将设置为“1”。
只要Tag_Start 操作数的信号状态为“1”,Tag_Status 操作数就保持设置为“1”。当前时间值存储在“Tag_ElapsedTime”操作数中。当Tag_Start 操作数的信号状态从“1”变为“0”时,Tag_Status 操作数复位。
审稿人:刘庆