跳到正文
Learn-LAD
示例库/水处理与过滤

水处理与过滤

按住启动:Pump1 运行、过滤 30 秒、过滤结束后加药 5 秒、35 秒后 Pump2 启动。

进阶 S7-1200 水处理 顺序控制 泵

导入到我的 TIA 项目

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

TiaLink 设置

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

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

概述

按住启动按钮,水处理流程按顺序进行:Pump1 启动 → 过滤 30 秒 → 过滤结束后加药 5 秒 → 第 35 秒 Pump2 启动。

程序只有两个网络,用 多个 TP/TON 并行计时把"抽水、过滤、加药、输送"排成一条时间线,是流程控制的入门结构。

信号表

信号 类型 含义 作用
Start button P1 I 启动按钮 按住时流程有效
Tag_1 M 流程使能 直接反映启动按钮
Pump1 Q 进水泵 流程开始即运行
filtration Q 过滤装置 运行 30 秒
Add chemicals Q 加药阀 过滤结束后运行 5 秒
Pump2 Q 输送泵 第 35 秒启动
Start button P2 / transfer — 点表中未使用 原工程预留

工作流程

  1. 按住 Start button P1 → Tag_1=1,Pump1 立即运行;
  2. filtration 同时启动,运行 30 秒;
  3. 过滤结束后,Add chemicals 打开 5 秒(第 30~35 秒);
  4. 第 35 秒,Pump2 启动;
  5. 松开按钮,Tag_1=0,所有输出停止(TP 会走完当前脉冲)。

MainOB

Network 1 — 流程使能

Network 1:Start button P1、Tag_1

目的:把启动按钮变成流程总使能。

条件 → 动作:按住 Start button P1 → Tag_1=1;松开立即为 0。

为什么:所有定时器都以 Tag_1 为条件,所以松开按钮可以中断流程;这是一个简化写法,实际设备通常用自锁或启停按钮。

注意:没有自锁,必须按住按钮才能走完流程。

逻辑:Tag_1 = Start button P1

Network 2 — 抽水、过滤、加药、输送

Network 2:Tag_1、Pump1、filtration、filtration、Add chemicals、Pump2

目的:在流程使能期间按时间线驱动四台设备。

条件 → 动作:

  • Pump1 = Tag_1:流程开始即抽水;
  • filtration = TP(IN = Tag_1, 30s).Q:过滤 30 秒;
  • Add chemicals = TP(IN = Tag_1 AND NOT filtration, 5s).Q:过滤结束后加药 5 秒;
  • Pump2 = TON(IN = Tag_1, 35s).Q:第 35 秒启动输送泵。

为什么:各设备用独立定时器并行计时,用"上一步输出结束"作为下一步条件(加药),用固定延时启动后段设备(Pump2),结构清楚、容易调整。

注意:Pump2 是 TON,只要 Tag_1 保持就持续运行;filtration 和 Add chemicals 是 TP,固定时长后自动停止。

逻辑(节选): filtration = TP(IN = Tag_1, PT = T#30s).Q

Add chemicals = TP(IN = Tag_1 AND NOT filtration, PT = T#5s).Q

常见问题

  • 流程走不完整:确认启动按钮是否一直按住;Tag_1 没有自锁。
  • 加药不动作:加药条件依赖"过滤结束",检查 filtration 的 30 秒是否走完。
  • Pump2 启动时刻不对:改 TON 的 PT(35 秒)。

变体与扩展

  • 加自锁:把 Tag_1 改成启保停,按一次走完全程。
  • 加液位联锁:在 Pump1 条件中串"源水箱有水",在 Pump2 中串"目标箱未满"。
  • 配方化:把过滤/加药/输送时间做成参数,适配不同水处理工艺。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
Start button P1Bool%I0.0
Start button P2Bool%I0.1
filtrationBool%Q0.0
Add chemicalsBool%Q0.1
transferBool%Q0.2
Pump1Bool%Q0.3
Pump2Bool%Q0.4
Tag_1Bool%M0.0
系统实例 DB(3 个)

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
IEC_Timer_0_DB_2 实例 DB(IEC_TIMER)
名称数据类型起始值注释
Static
PTTime
ETTime
INBool
QBool

下一步