PLC自动门控制系统设计:I/O选型、状态机与防夹调试避坑 简介围绕PLC自动门控制系统展开的毕业设计论文面向电气自动化、机电一体化等专业学生以及正在学习PLC控制的初学者可用于毕业设计选题、课程设计参考和自动门控制方案梳理。论文从实际功能需求入手依次讨论主电路与控制电路的设计要求、I/O地址分配、PLC选型、驱动装置与感应器件选型、传动机构及限位开关配置并给出梯形图编程、程序调试和硬件接线的整体思路较完整地呈现自动门由人体感应、逻辑判断到电机驱动与门体执行的闭环过程。读者可从中了解红外或微波感应信号如何进入PLC、开门与关门速度如何分段控制、旋转门遇阻怎样快速制动以及对开门限位保护等典型问题的处理方式对搭建小型机电控制系统和撰写同类课题具有借鉴意义。资源包内为1个doc文件约528KB结构紧凑便于查阅和打印。已有2358人学习具备一定的参考热度。1. 自动门为什么值得用PLC来控制一次门体返工引出的时序问题有个写字楼的平移感应门返工过一次感应器是好的电机是好的门也能开能关可只要有人站在门中间稍微挪一下脚门就慢慢合拢被安全光幕逼停后停两秒又关一次。现场查了半天问题不在任何一个部件上而在“谁先动、谁后动、动多久”没有一条明确的时序约束。基于PLC自动门控制系统的设计本质上就是把这条时序链写死什么条件下允许关门关门过程中哪些信号能推翻它被打断后回到哪个状态故障后怎么复位。它面向做楼宇自控、门禁集成、机电安装的从业者也面向手上已有门体机构、想把控制部分自己啃下来的人。下面按算点数、选型、写状态机、现场整定、避坑的顺序往下走。2. 算清自动门的接口连接关系感应器、电机、变频器与PLC怎么连自动门拆开看只有四块感知微波雷达、红外、安全光幕、执行变频减速电机、同步带、导轨吊轮、驱动变频器、决策PLC。四块单独拿出来都是成熟货架产品出问题多半出在接口上——不是哪块不好而是块与块之间的电平、公共端、时序对不上。我习惯先把接口连接关系算清楚再动手画图因为这一张表决定了后面选多少点的PLC、变频器要配几个端子、以及哪些线必须走硬件而不能交给程序。这一章先把这张表铺开再倒推电机功率和减速比最后把主回路、控制回路、安全回路三层分开。2.1 先把I/O点数算清一套双开平移门的信号清单点数宁可先多算一遍也别在现场临时加扩展模块——扩展模块本身不贵贵的是重新布线、重新改程序、重新做点动验证的那半天。我把信号分成四类触发类、位置类、安全类、状态输出类。触发类决定门什么时候动位置类决定门动到哪减速、到哪停安全类负责在关门段推翻一切动作状态输出类给楼控或门禁系统回读。序号信号名类型点数说明1门外感应DI1微波或红外常开触点2门内感应DI1同上内外分开便于做方向判断3开门按钮DI1手动模式用4关门按钮DI1手动模式用5开门减速位DI1接近开关或行程开关6开门到位DI1机械限位兼作位置记忆基准7关门减速位DI1与开门减速位对称布置8关门到位DI1机械限位9安全光幕DI1多束串接成一路无源触点10急停DI1同时进硬线回路见 2.311手/自动旋钮DI1调试与维保必备12门禁或消防联动DI1无源干接点13变频器故障DI1继电器输出型14电机热继DI1常闭15开门运行输出DO1接变频器正转端子16关门运行输出DO1接变频器反转端子17多段速1DO1高速40Hz18多段速2DO1爬行12Hz19变频器复位DO1故障复位20运行指示灯DO1门体上方21故障指示灯DO1含蜂鸣器可选22开到位回读DO1给楼控23关到位回读DO1给楼控14 入 9 出看着一台 24 点机型14 入 10 出刚好卡满但我一般不会这么选。卡满意味着后期想加一路“门体防撞条”或者“后备电池欠压”就没有余量而且 24 点机型的输出公共端分组往往不灵活几路继电器输出共一个公共端一旦其中一路接了不同电位的负载就得加中间继电器。实际配置按 1.3 到 1.5 倍冗余走选 32 点机型或者 24 点加一块 8 点扩展成本差不了多少后期改动空间差很多。还有一点容易被忽略所有输入建议走 24VDC 漏型或源型统一接法不要一半 NPN 一半 PNP。感应器、接近开关、光幕来自不同厂家输出类型经常不一致混接之后公共端一塌糊涂排查时万用表量半天量不出所以然。2.2 从门体重量和速度倒推电机与变频器选型选型不靠经验拍脑袋按受力算一遍算出来的数字再乘安全系数。平移门的阻力来自两块滚轮与导轨的摩擦、门体加速时的惯性力。风压对室内门可以忽略对室外门或者大堂风口位置要单独加一般按 50 到 100 N 估算。$$F \mu m g m a,\qquad P \frac{F \cdot v}{\eta} \cdot K$$其中 μ 是等效摩擦系数新装滚轮导轨取 0.015 左右用久了积灰、导轨变形会到 0.03 甚至更高η 是同步带加减速机的传动效率取 0.6K 是工况安全系数室内门 3 倍够用室外或者高频次场景取 4。# 平移门驱动功率与减速比估算 MASS 90.0 # 单扇门体质量 kg玻璃 边框 吊轮 V_MAX 0.40 # 目标运行速度 m/s T_ACC 0.60 # 加速时间 s MU 0.015 # 等效摩擦系数脏污工况改 0.03 ETA 0.60 # 同步带 减速机效率 K_SAFE 3.5 # 工况安全系数 PULLEY_D 0.060 # 同步带轮节圆直径 m N_MOTOR 1350.0 # 电机额定转速 rpm G 9.81 a V_MAX / T_ACC # 加速度 m/s^2 F_fric MU * MASS * G # 摩擦阻力 N F_acc MASS * a # 惯性力 N F_total F_fric F_acc P_shaft F_total * V_MAX # 轴功率 W P_motor P_shaft / ETA * K_SAFE # 选型功率 W n_door V_MAX / (3.14159 * PULLEY_D) * 60 # 门侧所需转速 rpm ratio N_MOTOR / n_door # 需要的减速比 print(f摩擦阻力 {F_fric:.1f} N惯性力 {F_acc:.1f} N合计 {F_total:.1f} N) print(f轴功率 {P_shaft:.1f} W含效率与安全系数后 {P_motor:.0f} W) print(f门侧转速 {n_door:.1f} rpm减速比约 1:{ratio:.1f})跑出来是摩擦阻力 13.2 N、惯性力 60.0 N、合计 73.2 N轴功率 29.3 W含效率和安全系数后约 171 W门侧转速 127 rpm减速比约 1:10.6。惯性力占了八成这说明平移门的负载主要来自“启停”而不是“匀速推着走”——这也是为什么变频器的加减速时间设置比电机功率更容易影响手感。按这个结果选 0.2kW 变频减速电机理论上够但货架上 0.4kW 是常见最小档价格差不多我一般直接选 0.4kW减速比取 1:10 或 1:15。原因有三个导轨脏污后摩擦系数会翻倍、门体玻璃可能从单层换成双层、冬天门框变形会额外增加阻力。多花的那点钱换来的是不用在验收前一天改机械。变频器按电机功率往上取一档0.4kW 电机配 0.75kW 变频器原因是平移门是典型的恒转矩负载且频繁启停变频器长期工作在 80% 以上额定电流留一档余量能明显降低过热跳闸概率。载波频率设 4 到 6kHz太高会让电机温升和漏电流增加太低会有明显电磁噪音。2.3 主回路与控制回路分层哪些线必须走硬件哪些能交给程序这一层分不清后面所有调试都是白费。我按三条原则分第一能量通路走主回路信号通路走控制回路。主回路由断路器、接触器可选、变频器、电机、热继电器组成走 380V 或 220V线径按电机额定电流的 1.25 倍选。控制回路统一 24VDC由开关电源供电PLC 输入输出、感应器、接近开关全部挂在这条路上。第二急停和安全光幕必须有一条不经过 PLC 的硬线通路。急停按钮的常闭触点直接串在变频器使能回路或者主接触器线圈回路里同时分一路进 PLC 输入点做状态显示。安全光幕同理用安全继电器做一次硬切断PLC 只负责“知道光幕被遮挡了”并执行重开门逻辑。软件写得再严密扫描周期也有几毫秒CPU 死机时更是完全失效人命关天的回路不能只靠程序。第三变频器的运行指令可以走 PLC 输出但故障复位建议双通道。正转、反转、多段速这些端子由 PLC 继电器输出驱动完全够用因为动作频率低、时序要求不严。复位信号除了 PLC 输出再并一个面板上的手动复位按钮方便维保人员不接电脑也能恢复。回路层级电压主要元件线径/线型接地要求主回路AC 380V/220V断路器、变频器、电机2.5mm² 三芯变频器 PE 单独接柜体控制回路DC 24VPLC、感应器、接近开关0.75mm²负极单点接地安全回路DC 24V / AC 220V急停、安全继电器、光幕1.0mm² 屏蔽屏蔽层单端接柜体通信RS485PLC 与变频器双绞屏蔽屏蔽层单端接地提示变频器到电机的动力线必须用屏蔽电缆屏蔽层两端接地PLC 的输入信号线不要和动力线走在同一个线槽里平行走线超过 30cm 就很容易出现偶发误动作。3. 自动门PLC程序怎么写从状态机到防夹重开门的梯形图落地程序这块最容易犯的错是“用一堆自锁和互锁堆出来”能跑但改不动。门开一半有人进来要重开、关门被光幕打断要退回、连续三次关不上要停在开位报警——这些都是状态切换不是简单的条件判断用状态机写最省心。这一章从变量命名讲到开门段、关门段、防夹段的完整实现最后给出变频器多段速跟 PLC 输出的对应关系。3.1 变量命名与状态编码把状态机先写在纸上写代码之前先在纸上画状态转移图这一步省不掉。我一般会列出所有可能的稳态再标注触发条件和超时保护最后才动手写。自动门的状态不多八个够用状态号状态名含义主要出口0关门待机门在关位等待触发触发信号 → 11开门加速高速开门开门减速位 → 22开门爬行低速接近开位开到位 → 33开门保持计时等待计时到 → 44关门加速高速关门关门减速位 → 55关门爬行低速接近关位关到位 → 06防夹返回反向低速退回计时到 → 0 或 77故障停机停在当前位置报警手动复位 → 0命名统一前缀DI_输入、DO_输出、M_中间继电器、T_定时器、iStep状态字、iCounter计数器。前缀统一的好处是符号表能排序找信号不用翻图纸。状态字用 INT 而不是一堆布尔量好处是调试时在监控表里一眼能看到当前在第几步不用猜五个位组合出什么含义。还有一条经验所有超时保护都写成“进入某状态后 N 秒未收到预期信号即转故障”而不是“动作开始后 N 秒”。前者跟着状态走状态一跳变计时自动重来后者在重试场景下会自动累加第三次关门时计时器已经跑满了。3.2 开门段加速、减速、到位三个动作的梯形图落地下面这段用结构化文本写转成梯形图也是同样的逻辑只是把 CASE 拆成一组比较指令加跳转。为了让代码短一些开门段写全关门段结构对称。(* 自动门主状态机节选 *) (* iStep: 0关门待机 1开门加速 2开门爬行 3开门保持 4关门加速 5关门爬行 6防夹返回 7故障停机 *) TON_OpenTry(IN : (iStep 1) OR (iStep 2), PT : T#8S); (* 开门全程超时 8s *) TON_OpenHold(IN : (iStep 3), PT : T#5S); (* 开门保持 5s可做成 HMI 可调 *) TON_CloseTry(IN : (iStep 4) OR (iStep 5), PT : T#12S); (* 关门全程超时 12s *) CASE iStep OF 0: (* 关门待机任何触发都允许开门但必须不在故障态 *) DO_OpenRun : FALSE; DO_CloseRun : FALSE; DO_SpeedLow : FALSE; DO_SpeedHigh : FALSE; iCounter : 0; (* 回到待机清重试计数 *) IF (DI_OutSensor OR DI_InSensor OR DI_OpenBtn) AND NOT DI_EStop AND NOT DI_Fault AND DI_AutoMode THEN iStep : 1; END_IF; 1: (* 开门加速高速启动等减速位 *) DO_CloseRun : FALSE; DO_OpenRun : TRUE; DO_SpeedHigh : TRUE; DO_SpeedLow : FALSE; IF DI_OpenSlowPos THEN (* 压到开门减速接近开关 *) iStep : 2; ELSIF TON_OpenTry.Q THEN (* 8s 没减速判定卡阻或限位丢失 *) iStep : 7; END_IF; 2: (* 开门爬行切低速等机械限位 *) DO_SpeedHigh : FALSE; DO_SpeedLow : TRUE; IF DI_OpenLimit THEN DO_OpenRun : FALSE; DO_SpeedLow : FALSE; iStep : 3; ELSIF TON_OpenTry.Q THEN iStep : 7; END_IF; 3: (* 开门保持计时期间任何关门请求都无视光幕遮挡刷新计时 *) DO_OpenRun : FALSE; IF NOT DI_SafetyCurtain THEN TON_OpenHold(IN : FALSE); (* 有人经过重新计时 *) END_IF; IF TON_OpenHold.Q AND NOT DI_SafetyCurtain THEN iStep : 4; END_IF; (* 4 / 5 / 6 段与上面结构对称见 3.3 *) END_CASE;这段代码有几个地方值得说清楚。DI_OpenSlowPos是接近开关装在导轨上、距离开到位大概 80 到 120mm 的位置具体数值在 4.2 节整定时确定。它的作用是让门在最后一段切低速避免高速撞限位。如果这个信号丢了接近开关坏了、线头松了门会一直高速冲到底虽然有机械限位挡着但冲击声很大门体吊轮也容易松脱。所以状态 1 必须配TON_OpenTry超时保护。TON_OpenHold的IN写成iStep 3在状态 3 里又用NOT DI_SafetyCurtain去复位它这是故意为之门在开位时只要光幕一直被遮挡保持时间就无限刷新人站在门下门不会关。这个逻辑比“光幕中断立即重开”更符合实际因为人在门下站着时门本来就是开的不需要重开只需要别关。状态 0 里把iCounter清零是为了让“连续三次关不上”的计数在每次成功开门后重置。如果不在这清白天累计的误触发会让晚上的第一次关门就报故障。3.3 关门段与防夹重开门三重判据怎么写防夹是所有自动门项目里最不能省的部分也是现场被投诉最多的地方。我一般用三重判据同时监视光幕遮挡、关门超时、变频器输出电流。任何一条成立就打断关门但三条的响应策略不一样。光幕遮挡是最直接的要求响应最快去抖时间给 20 到 30ms——太短会被日光灯、阳光斜射干扰太长则人在门缝里伸手时来不及反应。关门超时是间接判据门被异物轻度阻挡时速度会下降还没到停转的程度但耗时明显变长这条能覆盖“光幕没遮住但门被箱子卡住”的情况。电流判据需要变频器支持模拟量输出或者通信读取成本高一些好处是能识别“门被风吹得吃力”这类机械问题。(* 防夹与重开门逻辑 *) TON_Curtain(IN : NOT DI_SafetyCurtain, PT : T#30MS); b_Blocked : TON_Curtain.Q; (* 光幕连续遮挡 30ms 才算有效 *) (* 关门段被打断立即停止转入防夹返回 *) IF b_Blocked AND ((iStep 4) OR (iStep 5)) THEN DO_CloseRun : FALSE; DO_SpeedHigh : FALSE; DO_SpeedLow : FALSE; iStep : 6; iCounter : iCounter 1; END_IF; (* 关门超时也判防夹针对光幕覆盖不到的卡阻 *) IF TON_CloseTry.Q AND ((iStep 4) OR (iStep 5)) THEN DO_CloseRun : FALSE; iStep : 6; iCounter : iCounter 1; END_IF; 6: (* 防夹返回低速反向开一小段给被困者让出空间 *) DO_CloseRun : FALSE; DO_SpeedHigh : FALSE; DO_OpenRun : TRUE; DO_SpeedLow : TRUE; (* 12Hz 爬行避免反向撞人 *) TON_Back(IN : TRUE, PT : T#400MS); IF TON_Back.Q THEN DO_OpenRun : FALSE; DO_SpeedLow : FALSE; IF iCounter 3 THEN iStep : 7; (* 连续三次停在开位报警等人工 *) ELSE iStep : 0; (* 退回待机重新判断触发条件 *) END_IF; END_IF;iCounter 3这个阈值不是拍脑袋定的。设太小遇到门框轻微变形、导轨有灰尘就频繁报警物业会被投诉设太大真的有人被夹住时要反弹四五次才停体验很差。三次是我在几个项目里试下来比较平衡的值同时在状态 7 里让故障指示灯闪烁、蜂鸣器间断响提醒现场有人处理。状态 6 的反向时间 400ms 也要按门速算。门速 0.4 m/s 时400ms 能退回 160mm足够让被困者把脚抽出来如果门速设得慢这个时间要相应加长否则退了个寂寞。我一般会在 HMI 上把这两个参数做成可调交付时给物业留一份参数说明别写死在程序里。3.4 变频器多段速参数与PLC输出的对应表多段速是自动门控制里性价比最高的做法不需要模拟量输出模块不需要通信两根数字量线就能切出高速和爬行两个速度。缺点是速度档位有限调起来是离散的但对平移门这种只有“快走”和“慢走”两种需求的场景完全够用。多段速1高速端子多段速2爬行端子变频器输出频率对应状态000 Hz自由停车状态 0、3、71040 Hz状态 1、40112 Hz状态 2、5、6118 Hz可选保持力矩特殊场景变频器参数建议值说明加速时间0.8 s太短会过流太长门起步发闷减速时间0.5 s配合机械制动避免到位后滑行S 曲线时间0.2 s减轻启停冲击延长吊轮寿命载波频率4~6 kHz兼顾噪音与温升过载保护电机额定电流 100%与热继配合双重保护停车方式减速停车不要用自由停车门会滑过限位端子功能正转/反转/多段速1/多段速2按实际接线核对表里“1 和 1 同时为 1 输出 8Hz”这一档有些变频器不支持组合需要查手册确认是叠加还是优先。这一档的用途是门在开位长时间停留时给电机一个很小的保持力矩防止风压把门吹动室内门一般用不上。4. 调试现场把梯形图跑通要过的几道关程序下载进去只是开始真正的活在现场。自动门的调试有个特点机械、电气、程序三者的偏差会互相掩盖门关不上你分不清是限位偏了、皮带松了还是程序里的超时给短了。所以调试顺序必须固定先机械后电气先单机后联机先低速后高速。这一章按这个顺序讲四个环节最后给一段用 Modbus 读变频器电流做力矩监视的脚本。4.1 空载点动与限位标定先让门动起来再谈逻辑第一步是把同步带从电机侧脱开让门体能在导轨上自由推拉。用手推一遍感受阻力是否均匀有没有某一段特别涩——如果有先处理导轨和吊轮别急着上电。这一步花十分钟能省掉后面两小时的困惑。第二步是单机点动变频器不接 PLC。用变频器面板或者短接端子给正转指令确认电机转向与开门方向一致。三相电机接反的概率不低尤其是现场重新压过端子之后。转向反了不要改程序直接调换任意两相电源线。第三步是限位开关位置标定。门推到全开位置把开门到位开关装上并调整到刚好动作、留 2mm 余量然后把门往关的方向推 100mm 左右装开门减速位开关。关门侧对称操作。这个 100mm 的初始值后面还要在 4.2 节精调先给个能跑的值。# 现场常用的快速自检清单人工执行不需要脚本 # 1. 断电万用表蜂鸣档量每个限位的通断 # 2. 手动推门到各位置确认对应输入点指示灯变化 # 3. 上电PLC 打到手动模式用强制表逐个置位输出 # 4. 观察变频器面板频率是否跟随多段速切换 # 5. 复位强制表切回自动模式强制表是这一步的核心工具。逐个强制DO_OpenRun、DO_CloseRun、DO_SpeedHigh、DO_SpeedLow观察变频器面板的频率显示和门体动作是否一致。如果强制了高速但门还是慢悠悠先查变频器多段速端子接线再查参数里的端子功能分配——这两个地方错一个症状都一样。注意强制输出前一定把门体运行范围内的人清空并在门口挂警示牌。强制状态下所有软互锁都失效两个方向同时被强制会直接触发变频器过流。4.2 加减速时间与爬行速度整定门不撞、不夹、不抖这一段是整篇里最“玄学”的部分但其实有公式可依。减速位到位的距离等于爬行速度乘以“减速时间加上系统响应延时”再加 30% 余量$$L v_{crawl} \times (t_{dec} t_{resp}) \times 1.3$$以爬行速度 0.12 m/s、变频器减速时间 0.5s、PLC 扫描周期加继电器动作加机械响应合计 0.08s 计算L ≈ 0.12 × 0.58 × 1.3 ≈ 90mm。这跟 4.1 节里先给的 100mm 差不多说明初始值不离谱微调就行。调整顺序是先定爬行速度再定减速位最后微调加减速时间。爬行速度太低低于 8Hz时门会一顿一顿地爬同步带的弹性会让它前后晃看着像要停不停太高超过 20Hz就失去了“慢速接近”的意义撞限位的声音还是很大。12Hz 左右是个比较舒服的区间。加减速时间要跟机械状态配合。加速时间太短门起步时吊轮会有明显的“顿”一下长期下来吊轮螺栓会松太长则门起步发闷感觉像推不动用户会以为坏了。0.8s 加速、0.5s 减速是平移门比较通用的值重门单扇超过 120kg要适当加长到 1.2s 和 0.8s。有一个容易被忽略的细节减速时间不要设得比机械制动响应还短。变频器减速太快会在门到位瞬间产生反向电动势如果制动电阻没配或者配小了直流母线电压会升高触发过压保护。小功率变频器很多时候没有制动单元这时候减速时间就得放长靠自由滑行加机械限位吸收能量。4.3 用强制表与趋势记录抓偶发误动作偶发误动作是最难查的一类问题一天出现一两次等工程师到场又不出现了。我的做法是在 PLC 里加一段事件记录把每次状态切换的时间戳、触发源、当时的输入点快照写进一个环形缓冲区容量 50 条左右掉电保持。之后再出问题直接在 HMI 上翻记录。如果没有 HMI可以用编程软件的趋势图功能同时监视 8 到 16 个关键点内外感应、光幕、两个减速位、两个到位、状态字、输出。采样周期设 20ms录一段完整的开关门周期。偶发问题复现后把趋势图拉出来看时序是哪一路信号先动、动了多久、在哪一步被忽略一目了然。常见的误动作模式有三种。第一种是感应器在无人时短暂触发趋势图上能看到 20 到 50ms 的窄脉冲这种一般是电磁干扰或者感应器灵敏度过高。第二种是光幕在门关到某个特定位置时报警多半是门体反光或者光幕支架松动可以看趋势图上光幕信号跟位置信号的相关性。第三种是限位信号抖动接近开关距离太远或者供电电压不足会看到信号在动作边缘反复跳变。4.4 用Modbus读变频器电流做力矩监视变频器的模拟量输出口通常只有一路用来做频率给定想再看电流就得占用第二路或者加扩展卡。用 RS485 读寄存器更划算一根双绞线串起变频器和 PLC还能顺便读故障码、母线电压、运行时间。# 用 Modbus RTU 读变频器运行电流做力矩监视与卡阻判断 # 依赖 pymodbus注意不同大版本 API 有差异 # 老版本用 slave新版本改为 device_id按实际安装版本调整 from pymodbus.client import ModbusSerialClient import time client ModbusSerialClient( port/dev/ttyUSB0, # Windows 下改成 COM3 之类 baudrate9600, bytesize8, parityN, stopbits1, timeout0.3, ) if not client.connect(): raise SystemExit(串口打开失败先确认线序 A/B 没接反) REG_CURRENT 0x0002 # 运行电流寄存器地址按手册实际值修改 REG_FAULT 0x0007 # 故障码寄存器 SCALE 0.01 # 电流缩放系数0.01 A/字按手册确认 try: while True: rr client.read_holding_registers(REG_CURRENT, count1, device_id1) if rr.isError(): print(读取失败检查站号与波特率) else: current rr.registers[0] * SCALE # 门体匀速运行时电流应稳定突增说明有卡阻 flag 偏高 if current 1.8 else 正常 print(f电流 {current:.2f} A {flag}) time.sleep(0.2) except KeyboardInterrupt: client.close()代码里的REG_CURRENT和SCALE必须按实际变频器手册改不同厂家的寄存器映射差别很大照抄别人的地址基本读不出来。device_id就是变频器的站号多台设备串在同一条总线上时不能重复。读出来的电流值有两个用途。一是做趋势记录正常开关门过程的电流曲线是“起步冲高、匀速回落、到位前小幅上升”的形状任何偏离这个形状的地方都值得追查。二是做阈值报警电流超过额定值 1.5 倍并持续 200ms就可以在 PLC 里判为卡阻直接转入状态 6 或者 7。这个判据比光幕和超时都灵敏能提前发现导轨缺油、吊轮磨损这类慢性问题。5. 自动门控制系统避坑现场最容易翻车的五个地方自动门的故障现象高度相似——“门自己关了”“门关不上”“门一直开开关关”但根因可能分布在传感、驱动、程序三个层面。下面五条是返工率最高的每条按现象、原因、解决三段写遇到同类现象可以顺着往下对。5.1 门自己动、自己停不了感应与信号类踩坑第一条无人经过门反复开关。现象白天正常傍晚或者阴天开始频繁自触发有时一分钟开合三四次监控里门口确实没人。原因微波感应器的探测波束穿过玻璃门或者侧墙探到了门外走道上的行人。微波对玻璃、薄墙有一定穿透能力安装角度不对时探测区会甩到门外。另一种可能是感应器灵敏度调到最高把远处树叶晃动、灯光闪烁的变化也算了进去。解决先把感应器角度往下压 10 到 15 度让探测区集中门前 1 到 2 米的地面范围再把灵敏度从最高档降一到两档用现场走位测试确认边缘位置能触发。如果结构上无法避开穿透换成红外加微波的复合型感应器两种原理同时满足才输出误触发率会低很多。程序侧再补一层保护门在开位保持期间忽略所有触发信号相邻两次开门的间隔设一个最小间隔比如 2s防止信号抖动导致连续动作。第二条光幕频繁报警门关到一半就退回。现象门关到距离关闭还有 20 到 30cm 的位置就退回反复几次后停在开位报警但门下确实没有人和物。原因门体玻璃边缘或者不锈钢门框把光幕发射端的光反射回接收端形成“自遮挡”。这在阳光斜射、地面反光强的时段特别明显所以经常表现为“下午三点到五点必犯”。另一个原因是光幕支架在门体运行中轻微震动发射接收两端不再对准。解决先给光幕加遮光罩把发射端和接收端的视角收窄避开反射路径再检查支架刚度必要时在门体上加一段加强筋或者把光幕从门体边缘往内侧移 50mm。程序侧把去抖时间从 20ms 调到 30 到 50ms能滤掉大部分瞬时干扰但不要超过 80ms否则真的有人伸手时反应会慢。5.2 电机叫、变频器报故障驱动与机械类踩坑第三条门关到位后电机嗡嗡响几秒后变频器过流跳闸。现象门已经贴到关位限位也压下了但电机还在转发出沉闷的嗡嗡声随后变频器报过流或者过载。原因限位开关的安装位置在减速位之前或者减速位距离留得太短。门在高速段就被限位切断机械惯性让门继续往前顶电机被门体反拖电流迅速上升。另一种情况是变频器设成了“自由停车”收到停止指令后输出直接关断但门体惯性还在反向电动势冲击功率模块。解决把减速位往远离关闭方向移让门在低速段走完最后 80 到 120mm用 4.2 节的公式算一遍距离。变频器停车方式改成减速停车减速时间设 0.5s 左右。如果门体较重、惯性大加装制动电阻或者改用带制动的电机。检查限位开关的滚轮臂有些型号在压下后还会有一小段行程实际动作点比看到的早用万用表配合手动推门找准真正的动作位置。第四条门运行中抖动速度不稳同步带发出异响。现象门在高速段明显一顿一顿同步带在某几个位置发出“咯”的声音速度看起来忽快忽慢。原因同步带张力不合适。太松会在启动瞬间跳齿太紧会加大轴承负载并让门体运行阻力上升。另一个原因是导轨内有异物或者吊轮磨损阻力在某几个固定位置突然增大变频器为了维持频率输出会自动加大电流表现出来就是抖动。解决先清洁导轨用手推门全程感受阻力是否均匀。同步带张力按厂家给的下垂量调一般在中点施加规定力时下垂 5 到 10mm没有数据就用手指按压感受两侧对称、按下去有弹性但不松垮。吊轮磨损的话直接换别省这个钱磨损的吊轮会让门体在运行中轻微摆动长期下来导轨也会被磨出坑。5.3 上电就关门、复位后乱走程序与初始化踩坑第五条停电后恢复送电门不管在什么位置都直接执行关门。现象停电时门停在半开位置来电后 PLC 一上电就进入状态 0判定“门在关位”然后等几秒触发或者直接执行关门如果此时门下站着人就很危险。原因程序里的状态字默认初值是 0而状态 0 的语义是“门在关位待机”这两件事被混为一谈了。上电瞬间门实际在哪程序完全不知道所有限位信号可能都是 FALSE但状态机不检查就直接往下走。解决加一个上电初始化流程。上电后先进入一个独立的“位置识别”状态如果关到位信号为 TRUE正常进入状态 0如果开到位为 TRUE进入状态 3如果两个都不为 TRUE说明门停在中间此时不执行任何自动动作只点亮故障灯等待人工按复位按钮后以低速12Hz向关门方向运行直到关到位信号有效再进入状态 0。整个过程光幕必须全程有效一旦遮挡立即停止。再补一层状态机里所有“进入某状态”的动作都要先校验当前位置信号而不是假设。程序里多写几行判断能避免交付后最尴尬的一次事故。6. 交付前的验收清单与两个值得加的进阶功能门能正常开关只是及格线交付前我一般会带着一张表逐项过一遍过完再让物业签字。这张表不是形式它逼着我把每个边界条件都想一遍断电怎么办、有人被困怎么办、光幕坏了怎么办、连续触发怎么办。验收项判定方法合格标准开门响应门前 1m 处走动1s 内启动开门保持站在门下 30s全程不关门防夹返回关门中伸入 30cm 挡板200ms 内停止并反向连续防夹反复阻挡三次停在开位报警不自动重试急停运行中按下急停立即断电停机复位后才能再动断电恢复门停中间时断电再上电不自动动作等人工复位限位失效拔掉开门到位信号8s 内报故障停机光幕失效断开光幕任一端PLC 报故障禁止自动关门手动模式旋钮打到手动只响应按钮不响应感应器噪音距门 1m 处听无金属撞击声、无持续异响两个进阶功能值得加成本不高但体验差别明显。第一个是门宽自学习。首次上电或者更换门体后让门以低速从关位走到开位PLC 用定时器累加运行时间乘以爬行速度算出总行程存进保持寄存器。之后开门时不需要依赖减速位开关按行程的 85% 自动切低速减速位开关退化成冗余保护。这个做法能解决接近开关位置漂移导致的门速突变也让现场调试少一个必须精调的机械件。代价是每次换同步带或者调整限位后要重新学习一次在 HMI 上留一个“自学习”按钮就行。第二个是事件记录与远程回读。用 PLC 内部的环形缓冲区存最近 50 次状态切换每条记录包含时间戳、触发源、当时的输入快照。有以太网口的机型可以直接开一个 Modbus TCP 从站物业中控室定时轮询。这样门出问题时不用等人到现场先远程看一眼记录判断是感应器误触发还是机械卡阻带对配件再上门。我自己吃过一次亏客户报“门半夜自己开”跑了三趟现场都没复现最后装了记录功能才发现是隔壁店铺卷帘门的红外遥控串频改了个感应器频段就解决了。最后一个习惯算是血泪经验所有现场可调参数都做成 HMI 可改并且留一份纸质参数表贴在电控箱门内侧。门的开合速度、保持时间、防夹重试次数、超时阈值这些值在不同项目上差别很大写死在程序里等于每次都要带电脑去改。贴一张表在箱子里物业换个电工也能照着恢复。别问我怎么想到这一条的。希望帮到你。本文还有配套的精品资源点击获取