跳到正文
Learn-LAD
示例库/监控摄像头录制

监控摄像头录制

系统开启且检测到运动时,摄像头录制 25 秒,同时警示灯 2 秒闪烁。

进阶 S7-1200 监控 定时器 闪烁

导入到我的 TIA 项目

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

TiaLink 设置

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

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

概述

系统开启且检测到运动时,摄像头录制 25 秒;录制期间警示灯以 2 秒亮、2 秒灭的节奏闪烁。

程序用 TP 定时录制 + 两个定时器交替闪烁,是"触发录制 + 现场警示"的组合。

信号表

信号 类型 含义 作用
System_ON I 系统开启 录制总前提
Motion_Sensor I 运动传感器 触发录制
Tag_1 M 录制触发 系统开启且有运动
Camera Q 摄像头录制 录制 25 秒
Security_Light Q 警示灯 2 秒闪烁
Tag_2 M 闪烁间隔标志 控制亮/灭交替
定时器 TP/TON 25s、2s、2s 录制与闪烁

工作流程

  1. System_ON=1 且 Motion_Sensor=1 → Tag_1=1;
  2. Tag_1 触发 TP → Camera=1 录制 25 秒;
  3. 录制期间 Security_Light 亮 2 秒、灭 2 秒,循环闪烁;
  4. 25 秒后录制结束,警示灯停止。

MainOB

Network 1 — 录制触发

Network 1:System_ON、Motion_Sensor、Tag_1

条件 → 动作:System_ON=1 且 Motion_Sensor=1 → Tag_1=1。

为什么:系统开关是总前提,避免未布防时误录;运动传感器提供触发。

注意:Tag_1 是普通线圈,运动消失就变 0;TP 一旦触发会走完 25 秒。

逻辑:Tag_1 = System_ON AND Motion_Sensor

Network 2 — 录制 25 秒

Network 2:Tag_1、Camera

条件 → 动作:Tag_1 触发 TP → Camera=1 保持 25 秒。

为什么:TP 适合"触发一次、固定录一段",不要求运动持续。

注意:25 秒内再次检测到运动不会延长录制(TP 不重触发);需要延长时改用 TON 或重新触发逻辑。

逻辑:Camera = TP(IN = Tag_1, PT = T#25s).Q

Network 3 — 警示灯 2 秒闪烁

Network 3:Camera、Tag_2、Security_Light、Security_Light、Tag_2

目的:录制期间让警示灯闪烁,起到威慑/提示作用。

条件 → 动作:Camera=1 时,Security_Light 亮 2 秒;随后 Tag_2 计时 2 秒,期间灯灭;Tag_2 结束后重新点亮,循环。

为什么:用 TP + TON 交替产生 2 秒亮/2 秒灭;Tag_2 是灭灯窗口。

注意:闪烁依赖 Camera=1;录制结束后两个定时器都复位。

逻辑: Security_Light = TP(IN = Camera AND NOT Tag_2, PT = T#2s).Q

Tag_2 = TON(IN = Camera AND NOT Tag_2 AND NOT Security_Light, PT = T#2s).Q

常见问题

  • 不录制:检查 System_ON 和 Motion_Sensor 是否同时为 1。
  • 只录 25 秒:这是 TP 的固定时长;需要更久就改 PT 或改成长时间 TON。
  • 灯不闪:检查 Tag_2 的 2 秒计时和 NOT Tag_2 条件。

变体与扩展

  • 录制延长:运动持续时用 TON 保持录制,运动停止后再延 25 秒。
  • 分段录像:用计数器记录触发次数,生成多个录像片段。
  • 白天/夜间模式:夜间同时打开补光灯,白天只录像。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
System_ONBool%I0.0
CameraBool%Q0.0
Motion_SensorBool%I0.1
Security_LightBool%Q0.1
Tag_1Bool%M0.0
Tag_2Bool%M0.2
系统实例 DB(3 个)

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

IEC_Timer_0_DB 实例 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

下一步