跳到正文
Learn-LAD
示例库/延时电机启动与泵控制

延时电机启动与泵控制

按钮启动后电机延时投入,并按条件控制泵的启停,含自锁与定时逻辑。

进阶 S7-1200 电机控制 定时器 自锁

导入到我的 TIA 项目

通过 TiaLink 把本示例的 4 个对象导入你当前打开的 TIA Portal 项目。导入前会先预检,默认不覆盖同名对象,导入后不会自动保存。

TiaLink 设置

默认 http://localhost:8080。也可以在本页地址后加 ?tialink= 临时指定。

TiaLink 启动时若设置了 --api-token,这里要填相同的值;只保存在本机浏览器 localStorage,不会上传。

概述

按下启动按钮,电机延时 15 秒投入;按下停止按钮,电机立即停止——但停止按钮同时还会触发一个 10 秒延时,10 秒后泵启动。

程序由两条独立的"自锁 + 定时"链组成:Network 1/2 管电机,Network 3/4 管泵。注意:从逻辑上看,停止按钮是泵的启动触发条件,这很可能是原工程的接线或命名问题,读的时候要特别留意(详见 Network 3)。

信号表

信号 类型 含义 作用
Start pushbutton I 启动按钮 启动电机延时
Stop pushbutton I 停止按钮(常闭) 停止电机;同时触发泵
Tag_1 M 电机运行标志 自锁;电机的总使能
Tag_2 M 泵运行标志 停止按钮触发并自锁
Motor Q 电机 延时 15 秒后运行
Pump Q 泵 Tag_2 后延时 10 秒启动
IEC_Timer_0_DB TON 电机延时 15 秒 延时投入
IEC_Timer_0_DB_1 TON 泵延时 10 秒 延时启动

工作流程

  1. 按 Start pushbutton → Tag_1 置位并自锁;
  2. Tag_1=1 持续 15 秒 → Motor 启动(Stop 随时可打断);
  3. 按 Stop pushbutton → Motor 立即停止;同时 Tag_2 置位并自锁;
  4. Tag_2=1 持续 10 秒 → Pump 启动,并一直运行(Tag_2 保持为 1)。

MainOB

Network 1 — 电机启动自锁

Network 1:Start pushbutton、Tag_1、Stop pushbutton、Tag_1

目的:记住"电机已启动",并让停止优先。

条件 → 动作:按下 Start pushbutton → Tag_1 置位并自锁;Stop pushbutton 用常闭触点串联,按下(或断线)立即复位 Tag_1。

为什么:标准起保停结构,停止优先、失效安全。

逻辑:Tag_1 = (Start pushbutton OR Tag_1) AND NOT Stop pushbutton

Network 2 — 电机延时投入

Network 2:Tag_1、Stop pushbutton、Motor

目的:启动后延时 15 秒再让电机运行。

条件 → 动作:Tag_1=1 持续 15 秒 → TON 输出;再串 Stop 常闭,得 Motor = TON(...).Q AND NOT Stop pushbutton。

为什么:TON 做延时接通;Stop 常闭双保险,即使自锁还没复位也能立即断开电机。

注意:TON 要求 Tag_1 连续保持 15 秒;中途按停止会重新计时。

逻辑:Motor = TON(IN = Tag_1, PT = T#15s).Q AND NOT Stop pushbutton

Network 3 — 泵启动标志(注意逻辑异常)

Network 3:Stop pushbutton、Tag_2、Tag_2

目的:原程序用这个网络产生泵的启动标志。

条件 → 动作:按下 Stop pushbutton → Tag_2 置位并自锁(松开后仍为 1)。

为什么 / 注意:从字面逻辑看,Stop pushbutton 既停止电机,又启动了泵——这通常不是期望的行为。很可能是原工程把"泵启动按钮"误写成了 Stop pushbutton,或者实际接线中这个按钮同时承担两种功能。使用前请对照电气图确认;如果目标是独立的泵控制,应把触发条件改成单独的泵启动按钮。

逻辑:Tag_2 = (Stop pushbutton OR Tag_2)

Network 4 — 泵延时启动

Network 4:Tag_2、Pump

目的:Tag_2 有效后延时 10 秒启动泵。

条件 → 动作:Tag_2=1 持续 10 秒 → Pump=1。

为什么:与电机同样的"自锁 + TON"结构;由于 Tag_2 是保持的,泵一旦启动就会持续运行。

注意:当前程序没有泵的停止条件;要停止泵需要复位 Tag_2。

逻辑:Pump = TON(IN = Tag_2, PT = T#10s).Q

常见问题

  • 电机不启动:检查 Tag_1 是否自锁成功、15 秒是否走完、Stop 常闭是否断开。
  • 按停止后泵反而启动了:这是当前逻辑的直接结果(见 Network 3 的说明);需要独立泵启动按钮才能分开控制。
  • 泵停不下来:Tag_2 自锁且没有复位网络,需要补一个停止/复位条件。

变体与扩展

  • 修正泵触发:把 Network 3 的 Stop pushbutton 换成独立的 Pump start 按钮(自锁结构不变),并补一个泵停止按钮。
  • 错峰启动:如果电机和泵不能同时运行,把 Tag_2 的启动条件串上"电机已停"(NOT Motor)。
  • 统一启停:用同一个启动按钮触发两条延时链,分别得到电机 15 秒、泵 10 秒的投入时序。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
Start pushbuttonBool%I0.0
Stop pushbuttonBool%I0.1
MotorBool%Q0.0
PumpBool%Q0.1
Tag_1Bool%M0.0
Tag_2Bool%M0.1
系统实例 DB(2 个)

TIA 自动生成的定时器/计数器实例 DB,导入示例时会一并导入。

IEC_Timer_0_DB 实例 DB(IEC_TIMER)
名称数据类型起始值注释
Static
PTTime
ETTime
INBool
QBool
IEC_Timer_0_DB_1 实例 DB(IEC_TIMER)
名称数据类型起始值注释
Static
PTTime
ETTime
INBool
QBool

下一步