跳到正文
Learn-LAD
示例库/七路开关控制加热器

七路开关控制加热器

7 个开关中任意一个接通即启动加热器,用一个线圈汇总多路并联触点。

入门 S7-1200 或逻辑 加热控制 多点控制

导入到我的 TIA 项目

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

TiaLink 设置

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

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

概述

7 个开关分成两组控制一台加热器:Switch 1 + Switch 2 或 Switch 3 + Switch 4 任意一组同时闭合,加热器就启动并保持;当 Switch 4 + Switch 5 或 Switch 6 + Switch 7 同时闭合时,加热器停止。

这个例子很适合练习串并联组合(AND / OR)和置位保持:多路开关如何"成对生效",以及用一个内部标志做停止条件。

信号表

信号 类型 含义 作用
Switch 1~`Switch 4` I 启动开关 成对闭合启动加热
Switch 5~`Switch 7` I 停止开关 成对闭合停止加热
Tag_1 M 加热标志 启动后保持;Heater 由它驱动
Tag_2 M 停止标志 置位后把 Tag_1 复位
Heater Q 加热器 最终输出

工作流程

  1. Switch 1 与 Switch 2 同时闭合(或 Switch 3 与 Switch 4 同时闭合)→ Tag_1 置位并保持;
  2. Tag_1=1 → Network 2 输出 Heater=1,加热器开始工作;
  3. Switch 4 与 Switch 5 同时闭合(或 Switch 6 与 Switch 7 同时闭合)→ Tag_2 置位;
  4. Tag_2=1 使 Network 1 中的常闭触点断开 → Tag_1 复位 → Heater 停止。

MainOB

Network 1 — 加热启动与保持

Network 1:Switch 1、Switch 2、Switch 3、Switch 4、Tag_1、Tag_2、Tag_1

目的:用两组开关控制加热器的启动,并让启动状态保持。

条件 → 动作:(Switch 1 AND Switch 2) OR (Switch 3 AND Switch 4) 任一组成立,Tag_1 置位;Tag_1 自己的常开触点与这些条件并联,所以松开开关后仍然保持。只有当 Tag_2=1 时才复位。

为什么:每组内部是 AND(两个开关必须同时闭合),组与组之间是 OR(任意一组即可),再把自身触点并联进来形成保持——这是"多条件启动 + 自锁"的标准写法。

注意:Tag_2 的常闭触点串在最前面,表示"停止优先":停止条件一旦成立,不管启动条件是否还在,Tag_1 都会断开。

逻辑:Tag_1 = ((Switch 1 AND Switch 2) OR (Switch 3 AND Switch 4) OR Tag_1) AND NOT Tag_2

Network 2 — 加热器输出

Network 2:Tag_1、Heater

目的:把加热标志送到实际输出。

条件 → 动作:Tag_1=1 → Heater=1。

为什么:把"逻辑状态"和"物理输出"分开写,方便以后在中间加联锁、报警或手自动切换。

逻辑:Heater = Tag_1

Network 3 — 停止条件

Network 3:Switch 5、Switch 4、Switch 6、Switch 7、Tag_2、Tag_2

目的:用另一组开关产生停止信号。

条件 → 动作:(Switch 4 AND Switch 5) OR (Switch 6 AND Switch 7) 任一组成立 → Tag_2 置位并保持。

为什么:Tag_2 一旦置位就保持,避免停止开关只是瞬间闭合时加热器又立刻恢复。要重新启动,需要先让 Tag_2 复位(当前程序没有单独的复位逻辑)。

注意:Switch 4 同时出现在启动组和停止组里,这种"共用一个开关"的接法容易让人看晕;读图时建议按"启动路径 / 停止路径"分开看。

逻辑:Tag_2 = ((Switch 4 AND Switch 5) OR (Switch 6 AND Switch 7) OR Tag_2)

常见问题

  • 加热器不启动:检查启动开关是否成对同时闭合;单独一个开关不会生效。
  • 启动后停不下来:停止也是成对的(Switch 4+5 或 Switch 6+7);另外 Tag_2 是保持的,停止后要复位它才能再次启动。
  • 分不清哪个开关管什么:Switch 1~3 主要参与启动,Switch 5~7 参与停止,Switch 4 两边都参与。

变体与扩展

  • 加独立复位:加一个复位按钮把 Tag_2 清零,流程更清晰。
  • 改为单组启停:去掉成对条件,改成"一个开关启动、一个开关停止",就是最基础的起保停电路。
  • 扩展到更多路:继续用"AND 组合 + OR 合并"的写法即可,但路数多了建议改用状态机或数组处理。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
PBBool%I0.0
Switch 1Bool%I0.1
Switch 2Bool%I0.2
Switch 3Bool%I0.3
Switch 4Bool%I0.4
Switch 5Bool%I0.5
Switch 6Bool%I0.6
Switch 7Bool%I0.7
HeaterBool%Q0.0
Tag_1Bool%M0.0
Tag_2Bool%M0.1

下一步