跳到正文
Learn-LAD
示例库/门锁控制系统

门锁控制系统

门锁的解锁、延时与重新锁定流程,演示状态保持与定时器组合。

进阶 S7-1200 流程控制 定时器 状态保持

导入到我的 TIA 项目

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

TiaLink 设置

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

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

概述

门锁只有在"收到上锁命令、监测区无人、且不在解锁窗口内"时才输出上锁;解锁命令会让门锁在 10 秒内保持释放状态;只要检测到人,门锁就不能上锁。

这是个安全联锁类的小例子:命令 + 传感器 + 定时窗口三个条件共同决定门锁输出,非常适合理解"安全条件优先"的写法。

信号表

信号 类型 含义 作用
Door Lock Command I 上锁命令 请求门锁输出
Door Unlock Command I 解锁命令 触发 10 秒解锁窗口
Human_Sensor I 人体传感器 检测到人时禁止上锁
Door Q 门锁输出 上锁线圈
Tag_1 M 有人标志 直接反映 Human_Sensor
Tag_2 M 解锁窗口 解锁命令后保持 10 秒
IEC_Timer_0_DB TP 解锁窗口 10 秒 决定解锁保持时长

工作流程

  1. 没有上锁命令时,门锁输出为 0(释放状态);
  2. 给出 Door Lock Command,且 Human_Sensor=0、Tag_2=0 → Door=1 上锁;
  3. 给出 Door Unlock Command → Tag_2 输出 10 秒;这 10 秒内 Door 被强制为 0;
  4. 只要 Human_Sensor=1,Tag_1 就为 1,门锁同样保持释放。

MainOB

Network 2 — 门锁输出条件

Network 2:Door Lock Command、Tag_1、Tag_2、Door

目的:把命令和两个安全条件组合成门锁输出。

条件 → 动作:Door Lock Command=1 且 Tag_1=0(无人)且 Tag_2=0(不在解锁窗口)→ Door=1。

为什么:门锁输出没有自锁,是"条件全部成立才输出"的组合逻辑。这样任何安全条件失效(有人或正在解锁),门锁都会立即释放。

注意:Door 是线圈输出而不是保持状态,所以上锁命令若只是按钮点动,门锁只在按钮按住期间通电。实际工程中通常会让上锁命令来自门禁系统并保持,或者给 Door 加自锁——取取决于门锁硬件的控制方式。

逻辑:Door = Door Lock Command AND NOT Tag_1 AND NOT Tag_2

Network 3 — 有人检测

Network 3:Human_Sensor、Tag_1

目的:把人体传感器变成"禁止上锁"的条件。

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

为什么:单独一层映射让 Network 2 的组合逻辑更整齐;以后若要增加"维修模式""测试模式"等条件,可以在这里继续并联。

逻辑:Tag_1 = Human_Sensor

Network 4 — 解锁窗口 10 秒

Network 4:Door Unlock Command、Tag_2

目的:收到解锁命令后,保持 10 秒的解锁状态。

条件 → 动作:Door Unlock Command=1 触发 TP → Tag_2 输出保持 10 秒。

为什么:用 TP 保证解锁窗口完整(即使解锁命令只是瞬间脉冲),避免"按一下解锁、马上又锁上"。

注意:TP 触发后固定 10 秒,不会因为再次按解锁按钮而延长;要延长需要等本次脉冲结束。

逻辑:Tag_2 = TP(IN = Door Unlock Command, PT = T#10s).Q

常见问题

  • 门锁一直不上锁:按住解锁按钮或有人停留在传感器范围内都会阻止上锁,检查 Tag_1/Tag_2 是否有一个为 1。
  • 上锁只持续一瞬间:Door Lock Command 是点动信号时,输出只在按下期间有效;需要保持命令或给输出加自锁。
  • 解锁时间太短/太长:改 TP 的 PT(T#10s)。

变体与扩展

  • 上锁自锁:把 Door 改成自锁输出(Door = (Door Lock Command OR Door) AND NOT Tag_1 AND NOT Tag_2),点动命令也能保持上锁。
  • 增加安全条件:在 Network 2 的串联链上继续加"门已关闭""无火警"等常闭条件。
  • 多门管理:按同样结构复制多个网络,分别管理每扇门的传感器和输出。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
Door Lock CommandBool%I0.0
Door Unlock CommandBool%I0.1
DoorBool%Q0.0
Human_SensorBool%I0.2
Tag_1Bool%M0.0
Tag_2Bool%M0.1
系统实例 DB(1 个)

TIA 自动生成的定时器/计数器实例 DB,导入示例时会一并导入。

IEC_Timer_0_DB 实例 DB(IEC_TIMER)
名称数据类型起始值注释
Static
PTTime
ETTime
INBool
QBool

下一步