阐明
使用“启动脉冲定时器”命令启动IEC 定时器,该定时器以指定周期发出脉冲。当逻辑运算结果(RLO)从“0”变为“1”(信号的上升沿)时,IEC 定时器启动。无论RLO 的后续变化如何,IEC 定时器都会运行指定的时间段。新信号上升沿的检测不会影响该IEC 定时器的操作。只要IEC 定时器正在计数,查询定时器状态是否为“1”将返回信号状态“1”。当IEC定时器到期时,定时器状态将返回到信号状态“0”。
脉冲的持续时间在指令下方的操作数1(持续时间)中指定,IEC 启动时间在指令上方的操作数2(IEC 时间)中指定。
阐明
可以启动和查询不同执行级别的IEC定时器,每次查询输出Q或ET时都会更新IEC_TIMER的结构。对于S7-1200 CPU
“启动脉冲定时器”指令将其数据存储在数据类型IEC_TIMER 或TP_TIME 的结构中。该结构可以声明如下:
声明为系统数据类型IEC_TIMER 的数据块(例如“MyIEC_TIMER”)
在块的“静态”部分中声明为TP_LTIME 或IEC_TIMER 类型的局部变量(例如,#MyIEC_TIMER)
对于S7-1500 CPU
“启动脉冲定时器”指令将其数据存储在数据类型为IEC_TIMER、IEC_LTIMER、TP_TIME 或TP_LTIME 的结构中。该结构可以声明如下:
声明为系统数据类型IEC_TIMER 或IEC_LTIMER 的数据块(例如“MyIEC_TIMER”)
TP_TIME、TP_LTIME、IEC_TIMER 或IEC_LTIMER 类型的局部变量声明为块的“静态”部分的一部分(例如,#MyIEC_TIMER)
在以下应用中,该指令数据将被更新:
当调用该指令时,IEC_Timer 结构被更新。仅当扫描ET 或Q 输出(例如“MyTimer”.Q 或“MyTimer”.ET)时,ET 输出中的时间值才会更新。
当访问指定定时器时。
当前定时器状态将保存在IEC定时器的结构组件Q中。可以通过常开触点查询定时器状态“1”,也可以通过常闭触点查询定时器状态“0”。
执行“启动脉冲定时器”指令需要前置逻辑运算。它只能放置在程序部分的末尾。
范围
下表列出了“启动脉冲定时器”指令的参数:
参数声明数据类型存储区域描述S7-1200S7-1500 持续时间输入TIMETIME、LTIMEI、Q、M、D、L 或常数IEC 定时器操作的持续时间。 InOutIEC_TIMER、TP_TIMEIEC_TIMER、IEC_LTIMER、TP_TIME、TP_LTIMED、L 启动的IEC 定时器脉冲时序图
下图是该指令的脉冲时序图:
例子
以下示例说明了该指令的工作原理:
当操作数Tag_Input 的信号状态从“0”变为“1”时,执行“启动脉冲定时器”指令。 “DB1”.MyIEC_TIMER 定时器将在操作数“TagTime”中存储的时间段内继续运行。
只要定时器'DB1'.MyIEC_TIMER正在运行,定时器状态('DB1'.MyIEC_TIMER.Q)的信号状态就为“1”,并且操作数“Tag_Output”被设置。当IEC定时器到期时,定时器状态的信号状态将再次变为“0”,同时操作数“Tag_Output”将被重置。
审稿人:刘庆
下一篇
贝特过滤器(贝昂滤清器)