跳到正文
Learn-LAD
示例库/装配线控制

装配线控制

按住启动:输送线运行;任一工位传感器触发后该工位动作 15 秒,期间输送线停止。

进阶 S7-1200 装配线 定时器 互锁

导入到我的 TIA 项目

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

TiaLink 设置

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

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

概述

按住启动按钮,输送线运行;任一工位的传感器检测到工件后,该工位动作 15 秒,期间输送线暂停,动作结束后输送线恢复。

程序用一个网络实现"输送 + 三个工位"的互锁:工位动作时切断输送,工位结束后自动恢复。适合学习多工位联锁的基本结构。

信号表

信号 类型 含义 作用
Start_Button I 启动按钮 按住时输送线运行
Sensor_1/2/3 I 三个工位传感器 触发对应工位
Station_1/2/3 Q 三个工位输出 各动作 15 秒
Conveyor Q 输送线 无工位动作时运行
定时器 TP ×3 15 秒 各工位动作时长

工作流程

  1. 按住 Start_Button → Conveyor=1 输送线运行;
  2. 工件到达工位 1 → Sensor_1=1 → Station_1=1 动作 15 秒;
  3. 任一工位动作时,Conveyor 的常闭条件断开,输送线暂停;
  4. 15 秒后工位停止,输送线恢复;
  5. 工位 2/3 同理。

MainOB

Network 1 — 输送线与三工位互锁

Network 1:Start_Button、Station_1、Station_2、Station_3、Conveyor、Sensor_1、Station_1、Sensor_2

目的:输送线运行时,按传感器触发对应工位,并在工位动作时暂停输送。

条件 → 动作:

  • Conveyor = Start_Button AND NOT Station_1 AND NOT Station_2 AND NOT Station_3:没有工位动作时才运行;
  • Station_N = TP(IN = Start_Button AND Sensor_N, 15s).Q:传感器触发后动作 15 秒。

为什么:三个工位的常闭触点串在输送条件里,形成互锁——任何工位动作都会让输送线停下,避免工件在工位动作时继续移动。

注意:所有条件都依赖 Start_Button 持续为 1;松开按钮,输送线和工位都会停止(TP 会走完当前脉冲)。

逻辑: Conveyor = Start_Button AND NOT Station_1 AND NOT Station_2 AND NOT Station_3

Station_1 = TP(IN = Start_Button AND Sensor_1, PT = T#15s).Q

常见问题

  • 输送线不转:检查是否有工位还在动作(Station_N=1),或启动按钮是否松开。
  • 工位不动作:确认传感器信号;TP 需要上升沿,传感器一直为 1 不会重复触发。
  • 想同时动作:当前互锁只停输送线,工位之间没有互锁;如不允许同时动作,需要在工位条件里互相串常闭触点。

变体与扩展

  • 加自锁:按一次启动输送线,按停止按钮结束。
  • 工位顺序:用"前一工位完成"作为下一工位的允许条件,形成流水线节拍。
  • 加计数:每个工位动作后计数,用于产量统计。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
Sensor_1Bool%I0.0
Sensor_2Bool%I0.1
Sensor_3Bool%I0.2
Start_ButtonBool%I0.3
Station_1Bool%Q0.0
Station_2Bool%Q0.1
Station_3Bool%Q0.2
ConveyorBool%Q0.3
系统实例 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

下一步