PLC 基础课 第 3 讲|定时器和计数器:典型 6 种写法(电机延时、风机延时、润滑周期)

浏览量:64 次 发布时间:2025-11-14 21:44 作者:明扬工控商城 下载docx

最近更新:PLC 基础课 第 1 讲|什么是 PLC?扫描周期、I/O 映像区,一次讲明白


导读:PLC 中最常用的两个“时间积木”——定时器(Timer)计数器(Counter),几乎贯穿所有自动化逻辑。 从电机延时启动、风机延时停机、润滑周期控制,到报警延时与计数复位,离不开它们。 这一讲总结出 6 种最常用写法,让你能直接在现场或项目里套用。


一、定时器基础:TON / TOF / TP 三兄弟

以 IEC 标准指令为例:

类型 全称 功能 典型用法
TON On-delay Timer(通电延时) 输入为 1 累计时间,达到设定值后输出=1;输入为 0 立即复位。 电机启动延时、顺序启动
TOF Off-delay Timer(断电延时) 输入为 1 时输出=1,输入变 0 后保持一段时间才复位。 风机延时停机、排气延时
TP Pulse Timer(脉冲定时) 上升沿触发后输出维持一段时间为 1。 报警输出维持、润滑时间控制

PLC 实现时,可直接用厂商自带指令(如西门子TON、TP,三菱Txxx,台达TON/TOFF),或用时间累加器实现逻辑。


二、写法 1|电机延时启动(顺序启动 TON)

功能说明:

  • 当主机启动后,辅助设备延时若干秒启动。
  • 常见于“水泵 → 风机 → 皮带”等多级驱动场合。
// 变量
StartCmd  : BOOL;   // 启动命令
T1        : TON;    // 定时器
Q.Motor_A : BOOL;   // 主机
Q.Motor_B : BOOL;   // 辅机

// 主机立即启动
Q.Motor_A := StartCmd;

// 辅机延时启动
T1(IN := StartCmd, PT := T#5s);
Q.Motor_B := T1.Q;  // 达到5秒后启动

要点: T1.IN 触发后开始计时;T1.Q 输出延时后为真;主机停机后 T1 复位。


三、写法 2|风机延时停机(TOF 断电延时)

功能说明:

  • 主机停止后,排风机继续运行一段时间,用于散热或排尘。
// 变量
Main_Run : BOOL;
Fan_TOF  : TOF;

Fan_TOF(IN := Main_Run, PT := T#10s);  // 停机后保持10秒
Q.Fan := Fan_TOF.Q;

逻辑解释: 当Main_Run= TRUE 时风机立即运行;主机停止后,风机继续保持 TRUE 10 秒后才断。


四、写法 3|润滑泵周期运行(TP 周期脉冲)

功能说明:

  • 润滑泵每隔一段时间运行一会儿,例如每 30 分钟润滑 10 秒。
// 变量
CycleTimer : TON;   // 周期计时
PulseTimer : TP;    // 润滑脉冲
CycleTime  : TIME := T#30m;
LubTime    : TIME := T#10s;

IF NOT CycleTimer.Q THEN
    CycleTimer(IN := TRUE, PT := CycleTime);
ELSE
    // 周期到,触发一次润滑脉冲
    PulseTimer(IN := TRUE, PT := LubTime);
    CycleTimer(IN := FALSE);   // 重置周期
END_IF;

Q.LubPump := PulseTimer.Q;

说明: 这种方式在不带“周期定时器”功能的 PLC 上非常通用,用两个定时器拼出周期循环。


五、写法 4|报警延时输出(避免误报警)

功能说明:

  • 例如温度超过阈值必须持续 5 秒以上才算报警。
// 温度信号超过阈值持续5秒才输出报警
OverTemp := (AI_Temp > 80.0);
T_Over   : TON;

T_Over(IN := OverTemp, PT := T#5s);
Alarm_Temp := T_Over.Q;

要点: TON 延时型常用于“稳态确认”——信号持续一段时间才触发,不抖动。


六、写法 5|循环计数 + 复位(生产计数)

功能说明:

  • 每检测到一次工件信号,计数加一;到设定数量自动报警或复位。
// 变量
PulseEdge : BOOL;   // 传感器脉冲上升沿
C1        : CTU;    // 计数器
Preset    : INT := 100;

C1(CU := PulseEdge, R := Reset, PV := Preset);
IF C1.Q THEN
    Alarm_Count := TRUE;   // 达到设定数
END_IF;

说明: CTU 是“向上计数器”,每次 CU 上升沿 +1,达到设定 PV 后 Q=TRUE。 复位信号 R=TRUE 时计数清零。


七、写法 6|电机运行时间累计(维护保养提示)

功能说明:

  • 统计某台设备累计运行小时数,达到阈值发出保养提示。
// 变量
T_Run   : TON;
RunTime : TIME := T#0s;    // 累计时间
Limit   : TIME := T#100h;

IF Motor_Run THEN
    T_Run(IN := TRUE, PT := T#1s);
    IF T_Run.Q THEN
        RunTime := RunTime + T#1s;
        T_Run(IN := FALSE);   // 重启周期
    END_IF;
END_IF;

IF RunTime >= Limit THEN
    Alarm_Maint := TRUE;
END_IF;

多数高端 PLC 提供系统时钟,可直接使用RTM(运行时间计时器)或专用“小时计”功能块。上例为通用写法。


八、典型工程示例对照表

应用场景 定时器类型 时间 说明
电机启动延时 TON 3–10 s 主机→辅机顺序启动
风机停机延时 TOF 5–30 s 主机停后排热风
润滑周期 TON+TP 周期 30m / 动作 10s 定期自动润滑
报警稳定判断 TON 3–10 s 信号稳定再报警
工件计数 CTU 到数停机或报警
累计运行时间 TON 或 RTM 累计至阈值 用于保养提示

九、常见问题与调试经验

  • 定时器不起作用:确认扫描周期小于定时精度,且输入信号真正有“1”保持。
  • 时间跳动:部分 PLC 默认单位为 100 ms,使用 IEC 型需明确T#5s格式。
  • 计数丢失:脉冲太快 → 用高速计数器(HSC)或中断任务。
  • 润滑泵频繁动作:周期未复位,应在TP.Q结束后清零主定时器。
  • 风机停不下来:TOF 输入没完全断;需确保主机信号=0 才进入延时。

十、小结

  1. TON / TOF / TP 是 PLC 时间控制的三大基石。
  2. 定时+计数 是实现“周期动作”和“保养逻辑”的关键组合。
  3. 写 PLC 程序时,应把“时间逻辑”集中放在一层,命名统一,便于调试。

下一讲我们将进入 PLC 第 4 讲|模拟量采集与滤波:0–10V、4–20mA、工程量换算与限幅,讲清楚如何从原始电流信号变成稳定的温度、压力、位置等工程量。


明扬工控商城

推荐阅读:

PLC 基础课 第 8 讲|一个完整小项目:水泵控制柜,从电气原理图到 PLC 梯形图

PLC 基础课 第 7 讲|报警与状态:怎么写出一个好用的报警逻辑 + 保留最后一次故障

PLC基础课 第6讲|PLC 与变频器通讯:DI/DO + 模拟量 + 简单串口的三种常见组合

PLC基础课 第5讲|顺控/步进:从“顺序动作表”到一个简易顺控程序

PLC基础课 第4讲|模拟量:4–20mA/0–10V 是怎么变成“显示 0–100.0℃”的?

PLC 基础课 第 1 讲|什么是 PLC?扫描周期、I/O 映像区,一次讲明白

PLC 基础课 第 3 讲|定时器和计数器:典型 6 种写法(电机延时、风机....docx

将本文的Word文档下载到电脑

推荐度:

下载

全部评论

请登录
产业新闻-明扬资讯网
科技资讯-明扬资讯网