接通延时计时器 (TON)
此信息适用于
CompactLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。TON 指令是一个非保持型计时器,用于累加指令使能的时间。
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
此指令不可用于结构化文本中。
操作数
重要提示:
以下情况下会导致运行出现意外:
- 输出标签操作数被覆盖。
- 结构操作数的成员被覆盖。
- 除非另外指定,否则结构操作数由多条指令共用。
梯形图
操作数 | 数据类型 | 格式 | 说明 |
|---|---|---|---|
Timer | TIMER | 标签 | 计时器结构 |
Preset | DINT | 立即数 | Timer.PRE 的值 |
Accum | DINT | 立即数 | Timer.ACC 的值 |
操作数 | CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器数据类型 | 格式 | 说明 |
|---|---|---|---|
Timer | TIMER_T | 标签 | Timer_t 结构 |
Accum | TIME | 立即数 | Timer.ACC 的值 |
Preset | TIME | 立即数 | Timer.PRE 的值 |
预设和累加值(对应于计时器标签中的 .PRE 和 .ACC)是伪操作数。有关详细信息,请参阅 伪操作数初始化。
TIMER 结构
助记符 | 数据类型 | 说明 |
|---|---|---|
.EN | BOOL | 使能位,包含指令上次执行时的梯级输入条件。 |
.TT | BOOL | 计时位,置位时指示计时操作正在进行。 |
.DN | BOOL | 完成位,置位时指示计时操作完成(或暂停)。 |
.PRE | DINT | 预设值,指定在指令指示完成之前累加值必须达到的值(以 1 毫秒为单位)。 |
.ACC | DINT | 累加值,指定自 TON 指令使能起经过的时间(毫秒)。 |
TIMER_T 结构
助记符 | 数据类型 | 说明 |
|---|---|---|
.EN | BOOL | 使能位,包含指令上次执行时的梯级输入条件。 |
.TT | BOOL | 计时位,置位时指示计时操作正在进行。 |
.DN | BOOL | 完成位,置位时指示计时操作完成(或暂停)。 |
.ACC | TIME | 累加值指定自指令使能后经过的时间,精确到微秒。 |
.PRE | TIME | 预设值指定指令指示完成之前累加值必须达到的值,精确到微秒。 |
说明
TON 指令自使能时开始累加时间,直至:
- 计时器禁用
- 计时器到期
时基始终为 1 毫秒。例如,对于 2 秒计时器,应将 .PRE 值输入为 2000。
计时器在计时器到期时将 .DN 位设置为真。
使能后,将 .DN 位设置为真可暂停计时,将 .DN 位设置为假可恢复计时。

计时器工作原理
计时器工作时会用当前时间减去上次扫描的时间:
ACC = ACC + (current_time - last_time_scanned)
更新 ACC 后,计时器设置 last_time_scanned = current_time,从而使计时器为下一次扫描做好准备。
影响数学状态标志
否
严重/轻微故障
在以下情况下会发生严重故障: | 故障类型 | 故障代码 |
|---|---|---|
.PRE < 0 | 4 | 34 |
.ACC < 0 | 4 | 34 |
对于数组索引故障,请参阅 通过数组建立索引。
执行
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | .EN 位设置为假。 .TT 位设置为假。 .DN 位设置为假。 .ACC 值清零。 |
梯级输入条件为假 | 将梯级输出条件设置为梯级输入条件。 .EN 位设置为假。 .TT 位设置为假。 .DN 位设置为假。 .ACC 值清零。 |
梯级输入条件为真 | 将梯级输出条件设置为梯级输入条件。 请参见 TON 流程图(真)。 |
后扫描 | .EN 位设置为假。 .TT 位设置为假。 .DN 位设置为假。 .ACC 值清零。 |
TON 流程图(真)

示例
梯形图

当 limit_switch_10 设置为真时,light_6 接通并持续 20000 毫秒(Timer_4 计时)。当 Timer_4.acc 达到 20000 时,light_6 断开,light_7 接通。如果在 Timer_4 计时期间 limit_switch_10 设置为假,则 light_6 断开。当 limit_switch_10 设置为假时,Timer_4 状态位和 .ACC 值复位。

当 tglTest21 设置为真时,timing21
(TIMER_T 类型)
持续接通 1 分钟 10 秒 200 毫秒(TIMER_T 类型的 Timer21 计时)。当 timer21.acc 达到 1 分钟 10 秒 200 毫秒时,timing21 断开,done21 接通。如果在 timer21 计时期间,tglTest21 设置为假,则 timing21 断开。当 tglTest21 设置为假时,timer21 状态位和 .ACC 值复位。提供反馈