在 Allen-Bradley (AB) ControlLogix 5500 系列PLC中,实现 定时静止输出(即输出在满足条件后保持一段时间,然后自动复位)可以通过 定时器(Timer)指令 和 逻辑控制 实现。以下是详细的实现方法和示例程序:
1. 定时静止输出程序逻辑
功能需求
当输入条件(如
Input_Trigger
)触发时,输出Output_Signal
置为 ON。输出保持 ON 状态一段时间(如
T#5s
),然后自动复位为 OFF。如果在定时期间
Input_Trigger
再次触发,则重新计时。
适用指令
TON(On-Delay Timer):延时接通定时器。
TOF(Off-Delay Timer):延时断开定时器(也可用 TON 实现)。
RES(Reset):复位定时器(可选)。
2. 程序示例(使用 TON 定时器)
梯形图(Ladder Logic)示例
// 输入触发条件(如 X0 或某个 BOOL 变量) Input_Trigger (X0) |--[ ]------------------------------------------------(TON Timer_1, ????????, T#5s)
// 定时器接通时,输出 ON Timer_1.DN (Done Bit) |--[ ]------------------------------------------------(Output_Signal)
// 可选:手动复位定时器(如 HMI 按钮) Reset_Button (X1) |--[ ]------------------------------------------------(RES Timer_1)
说明
Input_Trigger
:可以是数字量输入(如I:0/0
)或内部 BOOL 变量。TON Timer_1
:Timer_1:定时器标签(可在
Controller Tags
中定义)。????????
:定时器预设值(PRE),单位可以是 ms 或 s(如5000
= 5秒)。T#5s
:在 Studio 5000 中,可以直接输入5000
(毫秒)或使用TIME
数据类型。Timer_1.DN
:定时器完成位(Done Bit),当计时到达PRE
值时置1
。Output_Signal
:可以是数字量输出(如O:0/0
)或内部 BOOL 变量。Reset_Button
:可选,用于手动复位定时器(如 HMI 按钮)。
3. 程序示例(使用 TOF 定时器)
如果希望 输出在输入消失后保持一段时间(类似 延时断开),可以使用 TOF(Off-Delay Timer):
Input_Trigger (X0) |--[ ]------------------------------------------------(Output_Signal) // 直接驱动输出
// 当 Input_Trigger 断开时,启动 TOF 定时器 Input_Trigger (X0) |--[\ ]------------------------------------------------(TOF Timer_2, ????????, T#5s)
// 定时器未完成时,保持输出 ON Timer_2.DN (Done Bit) |--[\ ]------------------------------------------------(Output_Signal)
说明
TOF 定时器在 输入条件从 ON→OFF 时启动。
Timer_2.DN
为0
时,输出保持ON
;为1
时,输出断开。
4. 在 Studio 5000 中的实现
创建定时器:
Timer_1
(类型:TIMER
)Input_Trigger
(类型:BOOL
)Output_Signal
(类型:BOOL
)在
Controller Tags
中添加:编写梯形图:
使用
TON
或TOF
指令。设置
PRE
(预设值)为5000
(5秒)。测试:
强制
Input_Trigger
为1
,观察Output_Signal
是否在 5 秒后自动复位。
5. 高级应用(带复位功能)
如果需要在定时期间 手动复位 或 重新触发:
Input_Trigger (X0) |--[ ]------------------------------------------------(TON Timer_1, ????????, T#5s)
// 定时器接通时,输出 ON Timer_1.DN (Done Bit) |--[ ]------------------------------------------------(Output_Signal)
// 手动复位(如 HMI 按钮) Reset_Button (X1) |--[ ]------------------------------------------------(RES Timer_1)
// 重新触发逻辑(可选) Input_Trigger (X0) |--[ ]------------------------------------------------(RES Timer_1) // 重新启动定时器
6. 注意事项
定时器单位:
在 Studio 5000 中,
PRE
值可以是 毫秒(ms) 或 秒(s)(如5000
= 5秒)。也可以使用
TIME
数据类型(如T#5S
)。扫描周期影响:
定时器精度受 PLC 扫描周期影响,短延时(<100ms)建议使用 高速计数器 或 中断。
冗余设计:
如果输出控制重要设备,建议增加 互锁逻辑(如急停信号)。
7. 完整示例(Studio 5000 代码)
// 输入触发 Input_Trigger (BOOL) |--[ ]------------------------------------------------(TON Timer_1, 5000) // 5秒定时
// 定时器完成时,输出 ON Timer_1.DN (BOOL) |--[ ]------------------------------------------------(Output_Signal)
// 手动复位(可选) Reset_Button (BOOL) |--[ ]------------------------------------------------(RES Timer_1)
总结
方法 | 适用场景 | 指令 | 特点 |
---|---|---|---|
TON | 输入触发后定时输出 | TON Timer, PRE, Time | 输入 ON 时启动,到达时间后输出 ON |
TOF | 输入消失后保持输出 | TOF Timer, PRE, Time | 输入 OFF 时启动,到达时间后输出 OFF |
TON + RES | 可复位定时 | TON + RES | 支持手动复位或重新触发 |
通过 TON 或 TOF 定时器,可以轻松实现 定时静止输出 功能,适用于 电机启动延时、阀门控制、报警提示 等场景。