跳到正文
Learn-LAD
示例库/多级输送线

多级输送线

三段输送机错峰启动(10/15/25 秒),40 秒后自动停止。

进阶 S7-1200 输送线 定时器 顺序控制

导入到我的 TIA 项目

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

TiaLink 设置

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

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

概述

按下启动按钮,三段输送机按 10 秒、15 秒、25 秒错峰启动,运行一段时间后在第 40 秒自动停止。

程序用自锁 + 一个自动停止脉冲 + 三组定时器链实现一条会自己停下来的输送线,是"顺序启动 + 自动收尾"的典型结构。

信号表

信号 类型 含义 作用
Start_PB I 启动按钮 启动整条线
Stop I 停止按钮(常闭) 随时停止
Tag_1 M 运行标志 自锁;三组定时器的总使能
Tag_2 M 自动停止脉冲 40 秒后复位 Tag_1
M1 / M2 / M3 Q 三段输送机 分别延时启动
IEC_Timer_0_DB TP M1 运行 10 秒 第 0 秒启动
IEC_Timer_0_DB_2 / _1 TON / TP M2 延时 15 秒、运行 20 秒 第 15 秒启动
IEC_Timer_0_DB_5 / _3 TON / TP M3 延时 25 秒、运行 15 秒 第 25 秒启动
IEC_Timer_0_DB_6 / _4 TON / TP 40 秒后产生 1 秒停止脉冲 自动收尾

工作流程

  1. 按 Start_PB → Tag_1 自锁,三组定时器同时开始计时;
  2. 第 0 秒:M1 启动,运行 10 秒;
  3. 第 15 秒:M2 启动,运行 20 秒(到第 35 秒);
  4. 第 25 秒:M3 启动,运行 15 秒(到第 40 秒,与 M2 有 10 秒重叠);
  5. 第 40 秒:TON 到时间 → 1 秒 TP → Tag_2=1 复位 Tag_1,全部停止。

MainOB

Network 1 — 启动自锁与自动停止

Network 1:Start_PB、Tag_1、Stop、Tag_2、Tag_1

目的:启动整条线,并允许手动停止或自动停止。

条件 → 动作:Start_PB 置位 Tag_1 并自锁;Stop 常闭或 Tag_2 脉冲都会复位 Tag_1。

为什么:Tag_1 是总使能;Stop 是人工停止,Tag_2 是程序运行完的自动停止——两个停止条件并联(都通过常闭触点串联)让流程既能手动停也能自动停。

逻辑:Tag_1 = (Start_PB OR Tag_1) AND NOT Stop AND NOT Tag_2

Network 2 — 三段错峰与收尾

Network 2:Tag_1、M1、M2、M3、Tag_2

目的:控制三段输送机的启动时刻、运行时长,并在最后自动停止。

条件 → 动作:

  • M1 = TP(IN = Tag_1, PT = 10s).Q:立即启动 10 秒;
  • M2 = TP(IN = TON(IN = Tag_1, PT = 15s).Q, PT = 20s).Q:15 秒后启动 20 秒;
  • M3 = TP(IN = TON(IN = Tag_1, PT = 25s).Q, PT = 15s).Q:25 秒后启动 15 秒;
  • Tag_2 = TP(IN = TON(IN = Tag_1, PT = 40s).Q, PT = 1s).Q:40 秒后产生 1 秒停止脉冲。

为什么:每条输送机都是"TON 定时 → TP 定长",时间轴彼此独立,因此可以重叠运行。收尾用 40 秒的 TON 加 1 秒 TP,让 Tag_1 复位得干净利落。

注意:Tag_2 只需要 1 秒就足以复位自锁;如果 Start_PB 一直被按住,复位后又会马上启动。点表里还有一个未使用的 Tag_3,与本逻辑无关。

逻辑(节选): M2 = TP(IN = TON(IN = Tag_1, PT = T#15s).Q, PT = T#20s).Q

Tag_2 = TP(IN = TON(IN = Tag_1, PT = T#40s).Q, PT = T#1s).Q

常见问题

  • 某段输送机不启动:检查它的 TON 延时是否小于总运行时间;延时超过 40 秒就永远等不到。
  • 停不下来:检查 Stop 常闭触点是否被断开,以及 Tag_2 的 1 秒脉冲是否正常。
  • 想改运行时间:总时长由 40 秒的 TON 决定,各段启动时刻由各自的 TON 决定,运行时长由各自的 TP 决定。

变体与扩展

  • 逆序停止:把三段的停止时间也做成独立延时,形成"先启后停"的顺序。
  • 加联锁:后段输送机启动前,确认前段已经运行(串入前段的常开触点)。
  • 按物料检测启停:把定时启动换成传感器触发,做到"有料才转"。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
Start_PBBool%I0.1
M1Bool%Q0.0
M2Bool%Q0.1
M3Bool%Q0.2
StopBool%I0.0
Tag_1Bool%M0.0
Tag_2Bool%M0.2
Tag_3Bool%M0.3
系统实例 DB(7 个)

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

下一步