『7x24小时有问必答』
JZGKCHINA
工控技术分享平台

引言
在现代建筑中,自动门不仅提高了通行效率,还提升了用户体验。然而,如何确保自动门在安全和便利之间取得平衡,是设计和应用中的一大挑战。本文将介绍一种基于 PLC(可编程逻辑控制器)的智能自动门控制程序,该程序结合了运动传感器和安全传感器,实现了高效且安全的门控管理。通过对该程序的解析,读者将能够理解其工作原理及应用场景。

1

     

程序代码及介绍
下面是完整的 PLC 程序代码(代码基于 CodeSys 平台的 ST 语言):
FUNCTION_BLOCK FB_AutomaticDoorVAR_INPUT      MotionSensor : BOOL;                  // 运动传感器(检测行人)      SafetySensor : BOOL;                  // 安全传感器(防夹)      ManualOpen : BOOL;                     // 手动开门按钮      ManualClose : BOOL;                    // 手动关门按钮      EmergencyStop : BOOL;                 // 急停END_VARVAR_OUTPUT      DoorOpenMotor : BOOL;                 // 开门电机      DoorCloseMotor : BOOL;               // 关门电机      OpenIndicator : BOOL;                 // 门开指示灯      ClosedIndicator : BOOL;              // 门关指示灯      Alarm : BOOL;                             // 报警(门异常)END_VARVAR      State : (CLOSED, OPENING, OPEN, CLOSING);      OpenTimer : TON;                        // 开门保持时间      SafetyTimer : TON;                     // 安全传感器触发计时      ClosingTimer : TON;END_VAR// 急停优先IF EmergencyStop THEN      State := CLOSED;      DoorOpenMotor := FALSE;      DoorCloseMotor := FALSE;      Alarm := TRUE;      RETURN;END_IFCASE State OF      CLOSED:            ClosedIndicator := TRUE;            IF MotionSensor OR ManualOpen THEN                  State := OPENING;            END_IF      OPENING:            DoorOpenMotor := TRUE;            OpenTimer(IN := TRUE, PT := T#5s);            IF OpenTimer.Q THEN                  DoorOpenMotor := FALSE;                  State := OPEN;                  OpenTimer(IN := FALSE);            END_IF             // 开门过程中遇到障碍物,停止并报警            IF SafetySensor THEN                  DoorOpenMotor := FALSE;                  State := CLOSED;                  Alarm := TRUE;            END_IF      OPEN:            OpenIndicator := TRUE;            OpenTimer(IN := TRUE, PT := T#10s);   // 开门保持时间10秒            IF OpenTimer.Q OR ManualClose THEN                  State := CLOSING;                  OpenTimer(IN := FALSE);            END_IF             // 在开门状态下检测到行人,重新计时            IF MotionSensor THEN                  OpenTimer(IN := FALSE);                  OpenTimer(IN := TRUE, PT := T#10s);            END_IF      CLOSING:            DoorCloseMotor := TRUE;            IF SafetySensor THEN                   // 安全传感器触发,重新开门                  DoorCloseMotor := FALSE;                  State := OPENING;                  SafetyTimer(IN := TRUE, PT := T#2s);                  IF SafetyTimer.Q THEN                        Alarm := TRUE;   // 安全传感器持续触发,报警                  END_IF            ELSE                  SafetyTimer(IN := FALSE);                  ClosingTimer(IN := TRUE, PT := T#5s);                  IF ClosingTimer.Q THEN                        DoorCloseMotor := FALSE;                        State := CLOSED;                  END_IF            END_IFEND_CASE

2

     

程序结构解析
该程序通过不同的状态控制自动门的开关,并保障行人的安全。其主要结构包括:
输入变量
MotionSensor: 检测是否有行人靠近的运动传感器信号。
SafetySensor: 用于防止夹伤的安全传感器。
ManualOpenManualClose: 分别用于手动开门和关门的按钮。
EmergencyStop: 紧急停止按钮,用于立即停止门的所有动作。
输出变量
DoorOpenMotorDoorCloseMotor: 控制开门和关门的电机状态。
OpenIndicatorClosedIndicator: 指示门是否打开或关闭的指示灯。
Alarm: 当出现异常情况时触发的报警信号。
内部变量
State: 表示自动门的当前状态,可以为 CLOSED(关闭)、OPENING(开门中)、OPEN(打开)和 CLOSING(关门中)。
OpenTimerSafetyTimerClosingTimer: 定时器,用于控制门的开关时间及安全检测。
逻辑流程
首先检查是否按下紧急停止按钮,若按下则立即停止门的所有动作,发出警报。
根据当前状态切换门的状态,处理行人接近、手动开关和安全传感器的反馈,确保门操作的安全性与及时性。

3

     

应用场景
该自动门控制程序适用于多个场景,例如:
商业建筑:如购物中心、大型超市等,通过自动门提高人流通行效率,同时保障顾客的安全。
办公楼:方便员工进出,提高工作效率,避免因手动开门导致的人流拥堵。
医院:在医疗场所中,自动门不仅提供便捷,还能有效减少交叉感染的风险。

4

     

拓展思考
在进一步的发展中,这一自动门控制系统可以扩展出更多的功能:
远程监控:将系统数据上传至云端,实现对门的实时监控和管理,便于维护和故障排查。
智能识别:结合人脸识别或 RFID 技术,实现更加智能化的门控管理,提升安全性和便捷性。
节能模式:根据人流量自动调整门的开关频率,减少不必要的能耗,达到节能效果。

总结
本文介绍了基于 PLC 的智能自动门控制系统,通过运动和安全传感器的结合,实现了高效、安全的门控管理。该系统不仅提升了通行效率,还注重了用户的安全需求。随着技术的发展,未来的自动门系统将更加智能化,为人们的生活带来更多便利。通过对该程序的学习,读者可以深入理解自动门的工作原理及其在日常生活中的重要性。
你来出题 我来答
欢迎大家在评论区提一些标准功能块的需求,如果合适,我们会在以后的文章中与大家分享。
往期回顾

每周一个编程小例子:Bit到Word转换的两种实现方案对比

每周一个编程小例子:记录设备运行时间

每周一个编程小例子:基于长按检测的启动控制系统

每周一个编程小例子:探秘PLC数据记录功能块

每周一个编程小例子:心跳检测与PLC应用

每周一个编程小例子:斜坡发生器

每周一个编程小例子:旋转速度计算

每周一个编程小例子:计算PLC循环周期|例程需求征集!

每周一个编程小例子:如何优雅的分割字符串

每周一个编程小例子:带反馈的阀门控制程序

每周一个编程小例子:西门子LGF库中的脉冲继电器功能块

每周一个编程小例子:曲线加减速的控制应用

每周一个编程小例子:轻松去除字符串前导字符

每周一个编程小例子:根据阈值更新输入

每周一个编程小例子:官方模拟量输入处理模块

每周一个编程小例子:主从电机的时序控制

每周一个编程小例子:基于一阶滞后滤波的优化方案

每周一个编程小例子:16进制到浮点数的神奇转换

每周一个编程小例子:PLC长按控制程序

每周一个编程小例子:PLC程序实现多位整数拆分

每周一个编程小例子:流量累积计算器

每周一个编程小例子:用于连锁的电机标准控制模块

每周一个编程小例子:PID控制算法在PLC系统中的实现与应用

每周一个编程小例子:自定义种子生成随机数

每周一个编程小例子:可调时间的脉冲生成器

每周一个编程小例子:带滤波的标准模拟量输入功能块

每周一个编程小例子:使用PLC将字符串转换为日期格式

2026年6月
1.Smart200&V90伺服系统:已更新15课
2.贝加莱直播课程:已更新30课
3.PKS快速入门:初级&中级-全
4.剑指工控经典公开课:已更新35课
5.EPLAN快速入门:初级20课全

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
主题回复
倒序浏览

341查看1回复

发新帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码