使用“启动脉冲定时器”指令启动将指定周期作为脉冲的 IEC 定时器。逻辑运算结果 (RLO) 从“0”变为“1”(信号上升沿)时,启动 IEC 定时器。无论 RLO 的后续变化如何,IEC 定时器都将运行指定的一段时间。检测到新的信号上升沿也不会影响该 IEC 定时器的运行。只要 IEC 定时器正在计时,对定时器状态是否为“1”的查询就会返回信号状态“1”。当 IEC 定时器计时结束之后,定时器的状态将返回信号状态“0”。
在指令下方的 <操作数 1>(持续时间)中指定脉冲的持续时间,在指令上方的 <操作数 2>(IEC 时间)中指定将要开始的 IEC 时间。
说明 可以启动和查询不同执行等级的 IEC 定时器,每次查询输出 Q 或 ET 时,都会更新 IEC_TIMER 的结构。 |
对于 S7-1200 CPU
“启动脉冲定时器”指令以数据类型为 IEC_TIMER 或 TP_TIME 的结构存储其数据。可以如下声明此结构:
声明为一个系统数据类型为 IEC_TIMER 的数据块(例如,“MyIEC_TIMER”)
声明为块中“Static”部分的 TP_LTIME 或 IEC_TIMER 类型的局部变量(例如,#MyIEC_TIMER)
对于 S7-1500 CPU
“启动脉冲定时器”指令以数据类型为 IEC_TIMER、IEC_LTIMER、TP_TIME 或 TP_LTIME 的结构存储其数据。可以如下声明此结构:
声明为一个系统数据类型为 IEC_TIMER 或 IEC_LTIMER 的数据块(例如,“MyIEC_TIMER”)
声明为块中“Static”部分的 TP_TIME、TP_LTIME、IEC_TIMER 或 IEC_LTIMER 类型的局部变量(例如,#MyIEC_TIMER)
在以下应用中,将更新该指令数据:
调用该指令时,更新 IEC_Timer 结构。只有对 ET 或 Q 输出(例如,"MyTimer".Q 或 "MyTimer".ET)进行了扫描,才会更新 ET 输出中的时间值。
访问所指定的定时器时。
当前定时器状态将保存在 IEC 定时器的结构组件 Q 中。可以通过常开触点查询定时器状态“1”,或通过常闭触点查询定时器状态“0”。
执行“启动脉冲定时器”指令,需要有一个前导逻辑运算。它只能放置在程序段的末端。
参数
下表列出了“启动脉冲定时器”指令的参数:
参数 | 声明 | 数据类型 | 存储区 | 说明 | |
---|---|---|---|---|---|
S7-1200 | S7-1500 | ||||
<持续时间> | Input | TIME | TIME、LTIME | I、Q、M、D、L 或常数 | IEC 定时器运行的持续时间。 |
InOut | IEC_TIMER、TP_TIME | IEC_TIMER、IEC_LTIMER、TP_TIME、TP_LTIME | D、L | 启动的 IEC 定时器。 |
脉冲时序图
下图为此指令的脉冲时序图:
示例
以下示例说明了该指令的工作原理:
当操作数 Tag_Input 的信号状态从“0”变为“1”时,执行“启动脉冲定时器”指令。“DB1”.MyIEC_TIMER 定时器将持续运行操作数“TagTime”中存储的一段时间。
只要定时器 "DB1". MyIEC_TIMER 在运行,定时器状态 ("DB1".MyIEC_TIMER.Q) 的信号状态便为“1”且置位操作数“Tag_Output”。当 IEC 定时器计时结束后,定时器状态的信号状态将重新变为“0”,同时复位操作数“Tag_Output”。