跳到正文
Learn-LAD
示例库/工业烤箱控制

工业烤箱控制

按住启动:预热 10 秒 → 升温 20 秒 → 冷却 30 秒,共 60 秒。

进阶 S7-1200 烤箱 定时器 顺序控制

导入到我的 TIA 项目

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

TiaLink 设置

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

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

概述

按住启动开关,烤箱按顺序执行:预热 10 秒 → 升温 20 秒 → 冷却 30 秒,共 60 秒。

程序只有一个网络,用 TP + TON 嵌套排出一条完整的时间线;它是"多阶段温度工艺"的最简写法。

信号表

信号 类型 含义 作用
Turn_ON I 启动开关 按住启动整个工艺
Pre-Heat Q 预热输出 0~10 秒
Set Temp Q 升温输出 10~30 秒
Cooling Q 冷却输出 30~60 秒
定时器 TON/TP 10s/20s/30s 三段时序

工作流程

  1. Turn_ON=1 → Pre-Heat 立即输出,持续 10 秒;
  2. 10 秒后 → Set Temp 输出 20 秒(第 10~30 秒);
  3. 30 秒后 → Cooling 输出 30 秒(第 30~60 秒);
  4. 松开 Turn_ON,所有 TON/TP 失去条件,工艺中断。

MainOB

Network 1 — 预热 → 升温 → 冷却

Network 1:Turn_ON、Pre-Heat、Set Temp、Cooling

目的:按固定时间线驱动三个加热/冷却阶段。

条件 → 动作:

  • Pre-Heat = TP(IN = Turn_ON, 10s).Q:预热 10 秒;
  • Set Temp = TP(IN = TON(IN = Turn_ON, 10s).Q, 20s).Q:10 秒后升温 20 秒;
  • Cooling = TP(IN = TON(IN = Turn_ON, 30s).Q, 30s).Q:30 秒后冷却 30 秒。

为什么:用 TON 做"何时开始",用 TP 做"持续多久";三组延时并行计时,时间线一目了然。

注意:三个阶段都要求 Turn_ON 持续为 1(TON 需要连续条件);中途松开开关,流程会中断。实际烤箱通常会加自锁和温控闭环。

逻辑(节选): Pre-Heat = TP(IN = Turn_ON, PT = T#10s).Q

Set Temp = TP(IN = TON(IN = Turn_ON, PT = T#10s).Q, PT = T#20s).Q

Cooling = TP(IN = TON(IN = Turn_ON, PT = T#30s).Q, PT = T#30s).Q

常见问题

  • 阶段不切换:确认 Turn_ON 是否一直保持;TON 中途断开就重新计时。
  • 总时间不对:60 秒 = 10 + 20 + 30;改任意一段的 PT 都会改变后续阶段的时间点。
  • 温度不闭环:本程序只有时间控制,没有温度反馈;实际烤箱应加热电偶和 PID。

变体与扩展

  • 加自锁:按一次启动、按停止结束,不要求按住。
  • 温控闭环:用 PID 或温度比较控制加热器,时间只作为阶段切换。
  • 配方:把三个 PT 做成配方参数,适配不同工件的烘烤工艺。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
Turn_ONBool%I0.0
Pre-HeatBool%Q0.0
Set TempBool%Q0.1
CoolingBool%Q0.2
系统实例 DB(5 个)

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

下一步