LAD
TP:生成脉冲
使用“ 生成脉冲 ”(Generate pulse) 指令,可以将输出 Q 置位为预设的一段时间。当输入 IN 的逻辑运算结果 ( RLO ) 从“0”变为“1”(信号上升沿)时,启动该指令。指令启动时,预设的时间 PT 即开始计时。无论后续输入信号的状态如何变化,都将输出 Q 置位由 PT 指定的一段时间。 PT 持续时间正在计时时,即使检测到新的信号上升沿,输出 Q 的信号状态也不会受到影响。
可以扫描 ET 输出处的当前时间值。该定时器值从 T#0s 开始,在达到持续时间值 PT 后结束。如果 PT 时间用完且输入 IN 的信号状态为“0”,则复位 ET 输出。每次调用“ 生成脉冲 ”指令,都会为其分配一个 IEC 定时器用于存储指令数据。
说明
如果程序中未调用定时器(例如,由于跳过定时器而导致),则输出 ET 会在定时器计时结束后立即返回一个常数值。
对于S7-1200CPU
IEC 定时器是一个 IEC_TIMER 或 TP_TIME 数据类型的结构,可如下声明:声明为一个系统数据类型为 IEC_TIMER 的数据块(例如,“ MyIEC_TIMER ”)声明为块中“ Static ”部分的 TP_TIME 、 TP_LTIME 或 IEC_TIMER 类型的局部变量(例如, #MyIEC_TIMER )
对于S7-1200CPU
IEC 定时器是一个 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 )在以下应用中,将更新该指令数据:
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 脉冲输出 ET Output TIME TIME 、 LTIME I、Q、M、D、L I、Q、M、D、L、P 当前时间值
---|
脉冲时序图
下图显示了“ 生成脉冲 ”指令的脉冲图:
实例
以下示例说明了该指令的工作原理:
下表将通过具体的操作数值对该指令的工作原理进行说明:参数 | 操作数 | 值 | IN Tag_Start 信号跃迁“0”=>“1” PT Tag_PresetTime T#10s Q Tag_Status TRUE ET Tag_ElapsedTime T#0s => T#10s
---|
TON:生成接通延时
可以使用“ 生成接通延时 ”(Generate on-delay) 指令将 Q 输出的设置延时设定的时间 PT 。当输入 IN 的逻辑运算结果 ( RLO ) 从“0”变为“1”(信号上升沿)时,启动该指令。指令启动时,预设的时间 PT 即开始计时。超出时间 PT 之后,输出 Q 的信号状态将变为“1”。只要启动输入仍为“1”,输出 Q 就保持置位。启动输入的信号状态从“1”变为“0”时,将复位输出 Q 。在启动输入检测到新的信号上升沿时,该定时器功能将再次启动。
可以在 ET 输出查询当前的时间值。该定时器值从 T#0s 开始,在达到持续时间值 PT 后结束。只要输入 IN 的信号状态变为“0”,输出 ET 就复位。
每次调用“ 接通延时 ”指令,必须将其分配给存储指令数据的 IEC 定时器。
说明
如果程序中未调用定时器(例如,由于跳过定时器而导致),则输出 ET 会在定时器计时结束后立即返回一个常数值。
对于S7-1200CPU
IEC 定时器是一个 IEC_TIMER 或 TON_TIME 数据类型的结构,可如下声明:
-
声明为一个系统数据类型为 IEC_TIMER 的数据块(例如,“ MyIEC_TIMER ”)
声明为块中“ Static ”部分的 TON_TIME 或 IEC_TIMER 类型的局部变量(例如#MyIEC_TIMER )
对于S7-1500CPU
IEC 定时器是一个 IEC_TIMER 、 IEC_LTIMER 、 TON_TIME 或 TON_LTIME 数据类型的结构,可如下声明:
-
声明为一个系统数据类型为 IEC_TIMER 或 IEC_LTIMER 的数据块(例如,“ MyIEC_TIMER ”)
声明为块中“ Static ”部分的 TON_TIME 、 TON_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 当前时间值
---|
脉冲时序图
实例
以下示例说明了该指令的工作原理:
下表将通过具体的操作数值对该指令的工作原理进行说明:参数 | 操作数 | 值 | IN Tag_Start 信号跃迁“0”=>“1” PT Tag_PresetTime T#10s Q Tag_Status FALSE;10 秒后变为 TRUE ET Tag_ElapsedTime T#0s => T#10s
---|
TOF:生成关断延时
可以使用“ 生成关断延时 ”(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 。
对于“ 生成关断延时 ”(Generate off-delay) 指令的每次调用,必须将其分配给用于存储指令数据的 IEC 定时器。
说明
如果程序中未调用定时器(例如,由于跳过定时器而导致),则输出 ET 会在定时器计时结束后立即返回一个常数值。
对于S7-1200CPU
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 当前时间值
---|
参数 | 操作数 | 值 | IN Tag_Start 信号跃迁“0”=>“1”;信号跃迁“1”=>“0” PT Tag_PresetTime T#10s Q Tag_Status TRUE ET Tag_ElapsedTime T#10s => T#0s
---|
TONR:时间累加器
可以使用“ 时间累加器 ”指令来累加由参数 PT 设定的时间段内的时间值。输入 IN 的信号状态从“0”变为“1”(信号上升沿)时,将执行该指令,同时时间值 PT 开始计时。当 PT 正在计时时,加上在 IN 输入的信号状态为“1”时记录的时间值。累加得到的时间值将写入到输出 ET 中,并可以在此进行查询。持续时间 PT 计时结束后,输出 Q 的信号状态为“1”。即使 IN 参数的信号状态从“1”变为“0”(信号下降沿), Q 参数仍将保持置位为“1”。
无论启动输入的信号状态如何,输入 R 都将复位输出 ET 和 Q 。
每次调用“ 时间累加器 ”指令,必须为其分配一个用于存储指令数据的 IEC 定时器。
对于 S7-1200 CPU
IEC 定时器是一个 IEC_TIMER 或 TONR_TIME 数据类型的结构,可如下声明:
声明为一个系统数据类型为 IEC_TIMER 的数据块(例如,“ MyIEC_TIMER ”)
声明为块中“ Static ”部分的 TONR_TIME 或 IEC_TIMER 类型的局部变量(例如, #MyIEC_TIMER )
对于 S7-1500 CPU
IEC 定时器是一个 IEC_TIMER 、 IEC_LTIMER 、 TONR_TIME 或 TONR_LTIME 数据类型的结构,可如下声明:
声明为一个系统数据类型为 IEC_TIMER 或 IEC_LTIMER 的数据块(例如,“ MyIEC_TIMER ”)
声明为块中“ Static ”部分的 TONR_TIME 、 TONR_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 启动输入 R 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 累计的时间
---|
脉冲时序图 下表将通过具体的操作数值对该指令的工作原理进行说明:
参数 | 操作数 | 值 | IN Tag_Start 信号跃迁“0”=>“1” PT Tag_PresetTime T#10s Q Tag_Status FALSE;10 秒后变为 TRUE ET Tag_ElapsedTime 信号跃迁“0”=>“1” 时间 T#10s 超出。 5 秒后发生信号跃迁“1”=>“0”: 操作数“ Tag_ElapsedTime ”中的时间仍在 T#5s 中计时。 大约 2 秒后重新发生信号跃迁“1”=>“0”: 操作数“ Tag_ElapsedTime ”中的时间继续在 T#5s 中计时。
---|
( TP )---:启动脉冲定时器
使用“ 启动脉冲定时器 ”指令启动将指定周期作为脉冲的 IEC 定时器。逻辑运算结果 ( RLO ) 从“0”变为“1”(信号上升沿)时,将启动 IEC 定时器。无论 RLO 之后会发生如何变化,IEC 定时器都将运行指定的一段时间。检测到新的信号上升沿也不会影响该 IEC 定时器的运行。只要 IEC 定时器正在计时,对定时器状态是否为“1”的查询就会返回信号状态“1”。当 IEC 定时器计时结束之后,定时器的状态将返回信号状态“0”。
说明
可以启动和查询不同执行等级的 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 定时器运行的持续时间。 <IEC 定时器> InOut IEC_TIMER 、 TP_TIME IEC_TIMER 、 IEC_LTIMER 、 TP_TIME 、TP_LTIME D、L 启动的 IEC 定时器。
---|
( TON )---:启动接通延时定时器
使用“ 启动接通延时定时器 ”指令启动将指定周期作为接通延时的 IEC 定时器。逻辑运算结果 ( RLO ) 从“0”变为“1”(信号上升沿)时,将启动 IEC 定时器。IEC 定时器运行一段指定的时间。如果该指令输入处 RLO 的信号状态为“1”,则输出的信号状态将为“1”。如果 RLO 在定时器计时结束之前变为“0”,则复位 IEC 定时器。此时,查询状态为“1”的定时器将返回信号状态“0”。在该指令的输入处检测到下个信号上升沿时,将重新启动 IEC 定时器。
说明
可以启动和查询不同执行等级的 IEC 定时器,每次查询输出 Q 或 ET 时,都会更新 IEC_TIMER 的结构。
对于 S7-1200 CPU
“ 启动接通延时定时器 ”指令以数据类型为 IEC_TIMER 或 TON_TIME 的结构存储其数据。可以如下声明此结构:
声明为一个系统数据类型为 IEC_TIMER 的数据块(例如,“ MyIEC_TIMER ”)
声明为块中“ Static ”部分的 TON_TIME 或 IEC_TIMER 类型的局部变量(例如, #MyIEC_TIMER )
对于 S7-1500 CPU
“ 启动接通延时定时器 ”指令以数据类型为 IEC_TIMER 、 IEC_LTIMER 、 TON_TIME 或 TON_LTIME 的结构存储其数据。可以如下声明此结构:
声明为一个系统数据类型为 IEC_TIMER 或 IEC_LTIMER 的数据块(例如,“ MyIEC_TIMER ”)
声明为块中“ Static ”部分的 TON_TIME 、 TON_LTIME 、 IEC_TIMER 或 IEC_LTIMER 类型的局部变量(例如, #MyIEC_TIMER )在以下应用中,将更新该指令数据:
调用该指令时,更新 IEC_Timer 结构。只有对 ET 或 Q 输出(例如," MyTimer ". Q 或 " MyTimer ". ET )进行了扫描,才会更新 ET 输出中的时间值。
访问所指定的定时器时。
当前定时器状态将保存在 IEC 定时器的结构组件 ET 中。可以通过常开触点查询定时器状态“1”,或通过常闭触点查询定时器状态“0”。
执行“ 启动接通延时定时器 ”指令,需要有一个前导逻辑运算。它只能放置在程序段的末端。
参数
下表列出了指令“ 启动接通延时定时器 ”的参数:
参数 | 声明 | 数据类型 | 存储区 | 说明 | S7-1200 | S7-1500 | <持续时间> Input TIME TIME 、 LTIME I、Q、M、D、L 或常数 IEC 定时器运行的持续时间。 <IEC 定时器> InOut IEC_TIMER 、 TON_TIME IEC_TIMER 、 IEC_LTIMER 、 TON_TIME 、TON_LTIME D、L 启动的 IEC 定时器。
---|