SCL TON — 接通延时定时器
IEC_TIMER 实例用 #MyTimer.TON(...) 调用;IN 保持到 PT 后 Q=1,IN 断开 Q/ET 立即复位。
SCL 的定时器都是 IEC 定时器实例:TON、TOF、TP、TONR。区别在于 IN 断开后 Q 怎么办、ET 清不清零。
示例统一用 IEC_TIMER 实例,调用写成 #MyTimer.TON(...);实例名不要用 Timer(保留字)。
每个页面都有完整 FB、参数表和云仿真边界场景;先看对比表,再进具体页。
IEC_TIMER 实例用 #MyTimer.TON(...) 调用;IN 保持到 PT 后 Q=1,IN 断开 Q/ET 立即复位。
IEC_TIMER 实例用 #MyTimer.TOF(...) 调用;IN 断开后 Q 继续保持 PT,计时到 0 才复位。
IEC_TIMER 实例用 #MyTimer.TP(...) 调用;IN 上升沿产生固定宽度 PT 的脉冲。
IEC_TIMER 实例用 #MyTimer.TONR(...) 调用;IN 为 1 时累计时间,IN 断开不清零,R=1 复位。
| 需求 | 指令 | Q 的行为 |
|---|---|---|
| 接通后延时 | TON |
IN 持续到 PT 后 Q=1;IN 断开立即复位 |
| 断开后保持 | TOF |
IN 断开后 Q 仍保持 PT |
| 固定脉冲 | TP |
IN 上升沿后 Q 固定保持 PT |
| 累计时间 | TONR |
IN 断开 ET 不清零;R=1 才复位 |
1VAR
2 MyTimer : IEC_TIMER;
3END_VAR
4
5#MyTimer.TON(IN := #Start, PT := #Preset, Q => #Q, ET => #ET);
6#MyTimer.TOF(IN := #Start, PT := #Preset, Q => #Q, ET => #ET);
7#MyTimer.TP (IN := #Start, PT := #Preset, Q => #Q, ET => #ET);
8#MyTimer.TONR(IN := #Start, R := #Reset, PT := #Preset, Q => #Q, ET => #ET);
实例名用 MyTimer,不要用 Timer(TIA 保留字)。
接通延时用 TON,断开延时用 TOF,固定脉宽用 TP,累计运行时间用 TONR。
Timer 是 TIA/SCL 的保留字,外部源导入会报“设定值无效”;改名为 MyTimer 即可。
TON 在 IN=0 时复位;TOF 在 IN 重新为 1 时复位;TP 在脉冲结束且 IN=0 时复位;TONR 只有 R=1 才复位。
不同定时器行为不同:TON/TOF 可能立即输出,TP 可能一个扫描都不亮;PT 一般要求为正。