导入到我的 TIA 项目
通过 TiaLink 把本示例的 3 个对象导入你当前打开的 TIA Portal 项目。导入前会先预检,默认不覆盖同名对象,导入后不会自动保存。
概述
四个车位传感器全部检测到车辆时,点亮"满位"指示;未满时,入口检测到车辆就抬起道闸 5 秒,同时鸣笛提示。
程序两个网络:一个用"与"判断满位,一个用"非满位 + 入口有车"触发 5 秒脉冲。它演示了状态判断 + 定时输出的组合,注意它不是按进出车辆计数的方案。
信号表
| 信号 |
类型 |
含义 |
作用 |
sensor_1~`sensor_4` |
I |
四个车位传感器 |
各自检测车位是否有车 |
Entrance_Vehicle_Sensor |
I |
入口车辆传感器 |
检测到车准备入场 |
Full_Indicator |
Q |
满位指示 |
四个车位都有车时点亮 |
Barrier |
Q |
道闸输出 |
未满时抬杆 5 秒 |
Buzzer |
Q |
蜂鸣器 |
与道闸同步响 5 秒 |
IEC_Timer_0_DB |
TP |
5 秒脉冲 |
抬杆/鸣笛时长 |
工作流程
- 四个车位传感器同时为 1 →
Full_Indicator=1,表示车位已满;
- 未满(
Full_Indicator=0)且入口检测到车辆 → TP 触发;
Barrier=1、Buzzer=1 保持 5 秒,然后自动关闭;
- 满位时入口车辆不会触发道闸,车辆无法进入。
MainOB
Network 1 — 满位判断
目的:四个车位都有车时输出满位指示。
条件 → 动作:sensor_1 AND sensor_2 AND sensor_3 AND sensor_4 → Full_Indicator=1。
为什么:每个传感器对应一个车位,四个都为 1 才是满位;这是最直接的"与"逻辑。
注意:没有"车位计数",所以无法区分"4 个车位满"和"某个传感器故障常亮";实际项目可加故障判断。
逻辑:Full_Indicator = sensor_1 AND sensor_2 AND sensor_3 AND sensor_4
Network 2 — 入口抬杆与鸣笛
目的:未满时允许车辆入场,抬杆 5 秒并提示。
条件 → 动作:Full_Indicator=0 且 Entrance_Vehicle_Sensor=1 → TP 触发 → Barrier=1、Buzzer=1 保持 5 秒。
为什么:用满位标志的常闭触点做联锁,满位时即使有车也不抬杆;TP 保证抬杆时间固定。
注意:TP 需要上升沿;如果入口车辆一直停在传感器上,5 秒后不会再次抬杆,需要车辆离开再触发。
逻辑:
Barrier = TP(IN = NOT Full_Indicator AND Entrance_Vehicle_Sensor, PT = T#5s).Q
Buzzer = TP(IN = NOT Full_Indicator AND Entrance_Vehicle_Sensor, PT = T#5s).Q
常见问题
- 满位灯不亮:检查是否真的四个传感器都为 1;空车位传感器应为 0。
- 有车位但道闸不抬:确认满位标志是否为 0、入口传感器是否有上升沿。
- 蜂鸣器和道闸不同步:它们共用同一个 TP,正常情况下应同时动作;检查接线。
变体与扩展
- 改成计数方案:用
CTUD 对进出车辆计数,剩余车位 = 总数 - 当前数,更接近真实停车场。
- 加显示:用数字输出或 HMI 显示剩余车位数。
- 加防砸:落杆前确认入口/出口区域无车。
变量与数据块
系统实例 DB(1 个)
TIA 自动生成的定时器/计数器实例 DB,导入示例时会一并导入。
IEC_Timer_0_DB 实例 DB(IEC_TIMER)
| 名称 | 数据类型 | 起始值 | 注释 |
| Static |
| PT | Time | | |
| ET | Time | | |
| IN | Bool | | |
| Q | Bool | | |