跳到正文
Learn-LAD
示例库/瓶装灌装与封盖

瓶装灌装与封盖

瓶子检测、灌装与封盖的顺序控制,包含置位复位与边沿检测。

进阶 S7-1200 输送线 流程控制 置位复位 边沿检测

导入到我的 TIA 项目

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

TiaLink 设置

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

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

概述

按住启动按钮,输送线延时 3 秒启动;瓶子到达传感器后,输送线暂停 26 秒,在这段时间里先灌装 15 秒、再(并行)封盖 10 秒;26 秒后输送线恢复,继续送瓶。

这个例子把边沿置位/复位、延时接通和脉冲定时组合在一个流程里,适合练习"输送 + 工位动作"的常见结构。

信号表

信号 类型 含义 作用
Start_station I 启动按钮 按住启动输送线
sensor I 瓶子到位传感器 触发灌装/封盖工位
Tag_1 M 运行标志 按下置位、松开复位(带边沿处理)
Tag_2 M 工位窗口 传感器触发后保持 26 秒
Tag_3 M 上升沿存储位 配合 P 触点检测按下
Tag_4 M 下降沿存储位 配合 N 触点检测松开
Conveyor Q 输送机 运行/暂停
Fill valve/pump Q 灌装阀/泵 灌装 15 秒
Capper actuator Q 封盖执行器 封盖 10 秒
IEC_Timer_0_DB / _1 TP 灌装 15 秒 / 封盖 10 秒 工位动作时长
IEC_Timer_0_DB_2 TP 工位窗口 26 秒 输送线暂停时长
IEC_Timer_0_DB_3 TON 启动延时 3 秒 输送线延迟启动

工作流程

  1. 按住 Start_station 并保持 → Tag_1 置位;松开时 Tag_1 复位;
  2. Tag_1=1 后延时 3 秒 → Conveyor 启动,开始送瓶;
  3. 瓶子到位 → sensor=1 触发 26 秒的工位窗口 Tag_2,输送线暂停;
  4. Tag_2 期间:Fill valve/pump 灌装 15 秒,Capper actuator 封盖 10 秒(两者同时开始);
  5. 26 秒结束 → Tag_2=0,若按钮仍按住,输送线恢复运行。

MainOB

Network 1 — 边沿置位 / 复位运行标志

Network 1:Start_station、Tag_1、Start_station、Tag_1

目的:用按下和松开两个边沿,精确地置位和复位 Tag_1。

条件 → 动作:Start_station 的上升沿(P 触点,存储位 Tag_3)置位 Tag_1;下降沿(N 触点,存储位 Tag_4)复位 Tag_1。

为什么:P/N 触点和 S/R 线圈配合,可以避免用普通触点直接驱动线圈时可能出现的"中间状态"问题,是更规范的按钮处理写法。

注意:Tag_3、Tag_4 是边沿检测的存储位,它们记录上一次扫描的按钮状态,不能当普通标志使用。

逻辑: Tag_1 = P(IN = Start_station, bit = Tag_3)(置位)

Tag_1 = N(IN = Start_station, bit = Tag_4)(复位)

Network 2 — 输送线延时启动

Network 2:Tag_1、Tag_2、Conveyor

目的:启动按钮按下后延迟 3 秒再开输送线,并在工位窗口内暂停。

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

为什么:TON 用于"按下去缓一缓"的软启动;Tag_2 常闭让输送线在工位动作期间停下。

注意:Tag_1 只在按住按钮时为 1,所以松开按钮后 TON 立即复位、输送线停止。如果希望按一下持续运行,需要把 Tag_1 改成自锁。

逻辑:Conveyor = TON(IN = Tag_1, PT = T#3s).Q AND NOT Tag_2

Network 3 — 工位窗口 26 秒

Network 3:sensor、Tag_2

目的:传感器一检测到瓶子,就生成一个 26 秒的工位时间窗口。

条件 → 动作:sensor=1 触发 TP → Tag_2 输出保持 26 秒。

为什么:26 秒 ≥ 灌装 15 秒 + 封盖 10 秒,给两个工位留足时间;用 TP 保证即使瓶子瞬间经过传感器,窗口也能完整走完。

逻辑:Tag_2 = TP(IN = sensor, PT = T#26s).Q

Network 4 — 灌装 15 秒 + 封盖 10 秒

Network 4:Tag_2、Fill valve/pump、Capper actuator

目的:在工位窗口内驱动灌装和封盖两个执行器。

条件 → 动作:Tag_2=1 同时触发两个 TP:Fill valve/pump 输出 15 秒,Capper actuator 输出 10 秒。

为什么:两个工位并行动作、各自定时,比串联更省时间。两个 TP 的 PT 可以根据工艺调整。

注意:两个动作同时开始;如果工艺要求"先灌满再封盖",应把封盖的触发条件改成灌装 TP 的下降沿。

逻辑: Fill valve/pump = TP(IN = Tag_2, PT = T#15s).Q

Capper actuator = TP(IN = Tag_2, PT = T#10s).Q

常见问题

  • 输送线不转:Tag_1 只在按住启动按钮时为 1;松开就停,属于当前逻辑。
  • 工位动作不完整:检查 26 秒窗口是否覆盖了两个动作的总时长;要调时间就改 Tag_2 的 TP。
  • 边沿存储位被人误用:Tag_3/Tag_4 只服务于 P/N 触点,不要在其他逻辑里当状态位使用。

变体与扩展

  • 按一下持续运行:把 Tag_1 的置位/复位换成"启动按钮置位、停止按钮复位",输送线不再依赖按住。
  • 先灌装再封盖:用灌装 TP 的下降沿触发封盖 TP,形成严格先后顺序。
  • 多工位:按同样结构继续并联 TP,做贴标、检测等工位。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
sensorBool%I0.1
ConveyorBool%Q0.0
Fill valve/pumpBool%Q0.1
Capper actuatorBool%Q0.2
Start_stationBool%I0.0
Tag_1Bool%M0.0
Tag_2Bool%M0.1
Tag_3Bool%M0.2
Tag_4Bool%M0.3
系统实例 DB(4 个)

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

下一步