资讯动态

PLC门禁控制系统设计与梯形图编程实战:从硬件选型到现场调试

发布时间:2026/10/21 9:44:48 来源:尧图企业网站定制
做门禁系统很多人第一反应就是买现成的门禁一体机刷卡器加电锁再加个控制器几百块钱搞掂。但如果是厂区设备间、实验室、仓库这类对可靠性要求高、还时常要跟消防报警联动的场景现成一体机往往不够用。我这两年用PLC做了好几套自动门禁系统从硬件选型到梯形图编写到现场调试踩了不少坑也攒了不少经验。这篇文章就想把这些东西完整梳理一遍标题可能有点长但内容是真的硬核适合自动化工程师、电气技师还有想自己动手做门禁控制的爱好者参考。1. 方案选型与整体设计思路1.1 为什么用PLC而不是门禁一体机先回答一个最直接的问题门禁一体机又便宜又成熟为什么还要用PLC答案就是“联动”和“可控”四个字。现成的门禁一体机逻辑是厂家写死的你没法改出了故障只能换整机。而PLC门禁系统本质是把门禁控制逻辑做成了一个可编程的程序你可以随意配置开门延时、报警条件、消防联动规则甚至后面接上位机监控都不需要厂家介入。我在某车间做的一套门禁甲方要求必须跟消防主机联动火警信号来了以后强制所有门断电敞开不管有没有人刷卡。这个需求拿门禁一体机做得很费劲地找带干接点输入的高端型号而PLC这边就是写一个触点的逻辑几分钟改完上传下就完事了。另外还有一个被很多人忽视的点PLC的输入输出天生就是干接点逻辑跟24V传感器、按钮、继电器、中间继电器这些电气元件无缝配合。门禁一体机虽然也有接口但抗干扰能力和电气隔离能力跟工业级的PLC差了一个档次。车间里电焊机、电机一开门禁一体机偶尔死机丢失卡号的情况我处理过不止一次。用PLC之后这个现象基本消失了。1.2 门禁系统的完整工作流程这套系统的组成其实很简单外围设备都是常规门禁配件核心变成了PLC。系统主要由五部分组成身份识别设备读卡器或密码键盘、门状态反馈门磁开关、电控锁电磁锁或电插锁、开锁按钮、输出设备指示灯、报警器。PLC负责把所有信号串起来按你写的梯形图逻辑运行。整个工作流程可以拆成三步来看。第一步人员刷卡或者按出门按钮产生一个瞬时的开门请求信号。第二步PLC收到这个信号后给电磁锁一个开锁动作同时点亮门开指示并且开始计时。第三步人员进门门磁检测到门已经关好PLC在延时结束后重新给电磁锁上电恢复锁门状态。辅助流程也很重要。门状态反馈持续监控如果有人在没有合法开门请求的情况下把门撬开PLC会触发声光报警并保持报警状态。消防联动信号到来时无条件强制开门忽略所有正常逻辑。1.3 方案的成本与扩展性考虑我知道有朋友看到PLC就担心成本。一台小型PLC本体的价格确实比门禁一体机控制器贵一些但你要算上后面省下的维护时间成本和改造费用。举个例子普通门禁一体机坏了好一点的厂牌你还能找到服务商小厂牌的直接连售后都找不到只能整套换重新配卡人员重新录入麻烦得要死。PLC坏了市面上随便找一台同型号的程序一导进去接线端子一一对应半小时就恢复运行。这种“可复制性”才是PLC方案最大的隐性收益。扩展性上PLC的后发优势也很明显。后期要加第二道门或者加人脸识别模块只需要增加扩展模块、修改几行程序就行而不像门禁一体机那样受限。如果是需要做考勤统计的项目PLC还可以通过通信口把刷卡记录上传到上位机组态软件这也是现成门禁控制器很难做到的事情。2. 硬件选型与电气接线细节2.1 核心硬件怎么挑先说PLC本体。对于一套单门门禁系统输入输出点数要求并不高但为了后期扩展我个人建议选择输入点数8点、输出点数6点以上的小型一体机。这个规模能把按钮、读卡器、门磁、消防信号、手动旁通全部接进去同时还能留一两个备用点。如果以后要加第二道门只要反过来重新规划点位就行不必换本体。读卡器的选型核心要看接口类型。一定要选带继电器干接点输出的读卡器不要选那种只输出韦根信号的。韦根信号是弱电数据脉冲PLC没法直接采集还需要转接模块而干接点输出就相当于一个按钮PLC输入端直接就能识别。我用过的读卡器输出方式一般两种刷卡成功就输出一个0.5秒左右的闭合脉冲或者输出一个电平保持信号。程序里我会按脉冲信号来设计这个后面详细讲。电磁锁这块普通磁力锁的工作电压通常是12V而PLC的输出通常是24V或继电器触点不能直接驱动。必须在PLC输出和磁力锁之间加一个中间继电器用PLC控制继电器线圈继电器触点再去控制磁力锁的电源通断。中间继电器选14脚插座式的就行线圈电压必须和PLC输出回路的电压一致。门磁开关建议选常闭型也就是门关好时开关闭合导通门打开时开关断开。为什么用常闭不用常开因为常闭型门磁万一接线断线系统能检测到异常而不是误以为门一直关着安全性更高。还有一个容易被忽略的硬件是消防联动接口。消防主机一般提供一组无源干接点火灾时动作。这个信号直接接PLC输入不需要外部供电接线非常安全。手动应急旁通开关我也强烈建议加上一旦PLC出故障或者程序要调试可以用它直接把磁力锁断电保证人员可以正常进出。2.2 I/O点位规划与分配表I/O分配是整个项目的基础点位一旦规划错了后面接线、程序全部要返工。我一般是先把输入点列出来再列输出点最后再核对有没有遗漏。下面是我在一套单门门禁系统里实际用过的点位表可以参考。输入部分出门按钮接X0读卡器开门信号接X1门磁反馈接X2消防联动干接点接X3手动旁通开关接X4。输出部分电磁锁控制接Y0开门状态指示灯接Y1非法闯入报警接Y2门锁状态异常指示接Y3。把这张表贴在电控箱门上方便后续维护也方便别人接手。很多同行在家自制系统时不重视点位表的留下了我自己以前也吃过这个亏程序调试到一半忘了点位对应的设备只能顺着线缆捋浪费时间还容易出错。2.3 接线时容易忽略的三件事第一件事PLC的24V电源和中间继电器线圈的电源要共地。如果PLC用开关电源供电开关电源的0V一定要跟中间继电器线圈回路的0V连在一起否则PLC输出导通时继电器线圈两端电压可能是悬浮的继电器不动作逻辑全乱。第二件事磁力锁电源不要直接用PLC端子排的24V。磁力锁瞬间电流很大尤其是通电吸合的瞬间会把PLC内部的电源模块压垮。我给的做法是磁力锁单独用一个12V电源中间继电器触点控制这个电源的通断PLC只负责控制继电器线圈这样两边完全隔离各自稳定。第三件事门磁和读卡器的线要跟磁力锁的电源线分开走。磁力锁通断电瞬间会产生反向电动势虽然是12V小电压但在长距离布线情况下对信号线是有干扰的。线缆分开走管之后读卡器误触发和门磁误报警的概率会低很多。3. 梯形图程序核心逻辑详解3.1 开门请求的自保持处理读卡器刷卡输出的是一个短脉冲大概0.5秒而电磁锁需要断电保持几秒钟这中间必须有一个“锁存”机制可以理解为把短信号“延长”并且“记住”。梯形图里就有专门干这个的指令SET和RST。在PLC内部定义一个中间继电器M10作为“开门请求保持标志”。当X0出门按钮或者X1读卡器任何一个有信号就执行SET M10把这个标志置位。M10一旦置位就算X0、X1信号消失了它依然保持接通。等到开锁延时结束后再用RST M10把它复位。如果用一句话总结这里的设计思路按钮和读卡器只负责“启动”开门动作真正控制电磁锁的是M10这个自保持标志延时到了才允许复位。3.2 电磁锁的反逻辑控制与延时落锁很多人第一次做门禁程序时核心认知就是错的电磁锁不是“通电开锁”而是“断电开锁”。磁力锁平时要通电才能吸合住门板一旦断电锁就失去了吸力门自动打开。这个设计是为了安全——火灾断电时门禁系统会自动开锁人员逃生不受阻拦。所以在梯形图里Y0这个输出点写的是“反逻辑”正常情况Y0必须保持ON电磁锁吸合当开门请求M10置位时Y0要变成OFF磁力锁断电门才能打开。这跟控制普通电机、灯的逻辑正好相反写程序的时候脑子里一定要转过弯来。梯形图的控制写法也很典型。用M10的常闭触点串联在Y0线圈回路里M10不动作Y0得电M10一动作Y0失电。开门的同时还要启动一个延时定时器T0延时时间我通常设在5秒。T0定时时间到其常开触点驱动RST M10M10复位Y0重新得电磁力锁重新吸合完成一次完整开门周期。这个延时时间的设置有一点要注意太短了人还没推门进去锁就吸上了反而会夹到人太长了门开在那里又存在安全隐患不刷卡的人也能顺门溜进去。5秒是我实际用下来比较舒服的值如果是无障碍通道或者大铁门可以调到8秒左右各位按安装环境灵活调整。3.3 门状态检测与非法闯入报警门状态检测的逻辑核心是判别“开门动作是不是合法的”。合法开门的前提是M10处于置位状态也就是有人正常刷卡或按按钮。如果没有这个前提门却开了那必然是非法的。梯形图里我加了这样的逻辑M10的常闭触点串联门磁X2的常闭触点再串联一个延时定时器。门关好的状态下门磁X2是导通的所以X2的常闭触点断开后面电路没有输出。一旦门被打开X2断开它的常闭触点闭合如果这时M10没有置位也就是没有合法开门请求那这条支路就会导通开始计时。计时时间设置为1秒目的是过滤门缝晃动、关门冲击造成的瞬间触点抖动。如果门真的被撬开了超过1秒定时器T1动作置位M11非法闯入报警标志Y2报警输出接通声光报警器开始报警。M11只有通过维护人员用复位按钮才能清除系统设计上不让它自动消失这样才能保留现场证据给安保人员。3.4 消防联动与手动应急旁通消防联动是最能体现PLC灵活性的部分。正常情况下消防干接点X3是闭合的梯形图里我用了它的常闭触点串联在电磁锁控制回路里。这句描述可能有点绕我展开解释一下。程序的大致逻辑是当消防信号未动作时X3为ONX3的常闭触点断开不影响Y0的正常控制。当火灾发生时消防主机动作X3信号变为OFFX3的常闭触点闭合这个信号直接强制让M10置位。M10一置位电磁锁Y0断电门全部敞开整个过程绕过所有开门请求和延时限制实现强制开门。消防信号接入还有一个细节干接点是有源还是无源的最好跟消防主机确认清楚。我遇到过消防主机输出的是24V有源信号而PLC输入只能接无源干接点的情况最终是加了一个小型中间继电器做转换有源信号驱动继电器线圈继电器触点再进PLC输入点。现场调试时很多问题其实都出在这种信号类型匹配上。手动旁通开关X4的逻辑就更简单直接了。它是一个常开型开关接在PLC输入端闭合后直接置位M10让门锁一直保持在释放状态。这主要用于维修调试或者长期不锁门的场景。值得强调的是这个开关我一定建议接成“硬件开关”而不是程序里的软开关因为万一PLC死机或者程序乱掉硬件开关还能兜底。4. 程序整合与模拟调试4.1 软元件分配与程序结构写程序之前先把软元件分配规划好能省下后面不少调试功夫。我习惯用一张表格登记所有内部继电器的用途接工程的时候也会把这张表直接附在程序文件里。还是以这套单门门禁为例我规划的软元件大概是这样M0是系统初始化标志M10是开门请求保持M11是非法闯入报警标志M12是消防联动强制开门标志M13是手动旁通标志。定时器方面T0是开门保持延时5秒T1是非法闯入确认延时1秒。程序分成五个功能段来写。第一段是初始化把报警标志和开门标志全部复位。第二段是开门请求处理X0、X1、X3、X4任何一个触发都置位M10。第三段是电磁锁控制M10常闭触点控制Y0同时驱动T0计时。第四段是门状态检测M10常闭串联门磁通断驱动T1和M11报警。第五段是输出处理根据M10、M11驱动Y0、Y1、Y2、Y3。这样分段的好处一个是程序可读性高另一个是排查故障的时候可以直接切断某一段。比如报警总是误报我就先看第四段的逻辑不用在其他段里大海捞针。4.2 完整程序指令示意这里我给出一段核心程序的指令流方便大家对照自己手头的PLC理解。各家PLC的指令符号有差异但思路是一样的能看懂就行。开门请求处理这条支路就是把X0、X1、X3、X4四个触点并联输出到SET M10。电磁锁控制这条支路核心是M10的常闭触点和Y0线圈串联同时并联T0定时器。因为M10置位后Y0断电M10常闭触点处于断开状态这不是你想要的吗这里真正的细节是T0必须用M10的上升沿启动否则第一次置位后线圈断开了定时器计时就没法进行了。实际程序里我会在置位M10的同时用M10的上升沿驱动T0的线圈。LD X0 OR X1 OR X3 OR X4 SET M10 LD M10 ANI Y0 OUT T0 K50 LD M10 ANI T0 OUT Y0 LD M10 ANI X2 OUT T1 K10 LD M10 LD T1 AND M20 OUT M11简单解释一下T0设为5秒T1设为1秒。M20是门状态确认辅助继电器用它的上升沿门磁保持逻辑确保真正撬门持续1秒以上才触发避免手滑碰一下门就响警报。4.3 离线仿真与在线监控程序写完之后我永远先做离线仿真再上真机。现在用的编程软件基本都带仿真模式能在电脑上模拟PLC运行不需要接真实硬件就能验证逻辑。仿真时我习惯把每个输入点做成开关图标手动点击模拟现场信号。点击X0、X1模拟刷卡和按按钮观察M10是否置位、Y0是否失电、T0是否开始计时。我还在仿真模式下把延时参数临时改短比如T0改成1秒加快调试节奏。逻辑验证无误之后再把参数改回真实值。在线监控这一步就更直观了。PLC连上编程软件后打开梯形图监视窗口可以看到每个触点、线圈的通断状态。现场按下按钮对应触点上会实时变化成绿色高亮。如果程序逻辑有问题几乎一眼就能看出来是哪条支路没有导通。我个人调试习惯是先看输入点信号有没有到PLC再看内部继电器有没有置位最后看输出点有没有动作。按照“输入→逻辑→输出”的顺序排查效率是最高的。很多新手一上来就盯输出点没动作就怀疑是PLC坏了其实回头一看输入信号根本没进来。4.4 调试过程中的时序观察程序逻辑跑通之后还有一个容易忽略的环节就是信号时序。我在现场用编程软件的软元件时序图功能观察M10、Y0、X2这三个信号的变化关系这对发现隐蔽问题特别有帮助。正常开门过程在时序图里应该是这个样子X1刷卡脉冲出现M10立刻置位变高Y0同时变低磁力锁断电。然后人员推门X2门磁信号从高变低表示门已打开。等T0延时时间到M10变低复位Y0重新变高门锁恢复。整个时序里M10从高到低的跨越时间就是你的开门保持时间。如果发现M10已经复位但Y0没有恢复说明电磁锁控制支路里Y0线圈回路还有断路点。如果发现M10没动作但Y0已经变了那大概率是硬件接线问题PLC输出模块或者中间继电器先看了再说。时序观察法能吸纳的故障症状很多尤其是在调试阶段建议养成多看时序的习惯。5. 现场调试常见问题与避坑清单5.1 电磁锁打不开或者锁不上这个问题是现场发生概率最高的。排查思路先看继电器和锁的电源。如果电磁锁单独供电先量12V有没有输出再看中间继电器触点动作是否正常。有一次我遇到的情况是PLC输出Y0已经灭掉了但磁力锁纹丝不动量锁的电源发现没断开。查了半天才发现中间继电器用的是交流线圈型号而PLC输出是直流24V线圈根本没法吸合触点自然不动。这类错误完全是选型的时候没核对线圈电压用万用表量一遍就能发现。还有一次是锁能打开但不能吸合回去磁力锁测试的时候吸力也正常后来发现是门扇下沉导致锁体和衔铁错位间隙太大磁力锁吸不住。这种机械问题跟电气控制无关但排查逻辑上要明白不是所有问题都在程序里。5.2 读卡器信号触发不可靠读卡器刷卡之后有时候开门有时候不开门这是最常见的间歇性故障。多数原因是读卡器输出的干接点信号瞬间抖动或者接线端子松动接触不良。PLC输入端本身有硬件滤波通常能过滤掉毫秒级的干扰脉冲。但如果读卡器距离PLC比较远线路长感应干扰就大了。我做过一个项目读卡器到PLC的线走了将近三十米中间还跟一根24V电源线同管刷卡就是经常没反应。后来把线缆单独敷设问题就消失了。如果确认是信号抖动问题也可以在程序上做一级软件滤波用一个5毫秒的定时器延时再读取输入信号让抖动在一个扫描周期内被吸收掉。这类方案没有固定参数需要现场实测看效果。5.3 门磁位置与误报警误报警是门禁系统做调试时最多人叫苦的事。基本原因都是门磁安装位置不好门关好后磁体和开关间隙偏大或者关门时震动导致触点瞬间弹开。机械上调整门磁的安装位置让磁体和开关尽量靠近通常能解决80%的问题。剩下的20%靠程序补我把T1非法闯入确认延时设成1秒就是让短于1秒的误动作不会触发报警。撬门和关门震动不一样前者门会持续打开信号一直保持断开后者只是瞬间抖动区分他们靠延时足够了。5.4 程序下载与PLC通信失败程序写好了要下到PLC里面这一步也经常卡住。最常见的原因就是编程电缆的驱动没装好或者通信端口参数没选对。我的经验是先到设备管理器确认USB转串口的端口号然后再到编程软件里把端口设置成一致的值。有些PLC支持网络下载需要设IP地址下载前先PING一下最稳妥。还有一个坑就是某些PLC在RUN状态下无法写入部分程序要先切换到STOP模式再下载下载完重新启动运行模式。5.5 一份能救命的调试顺序清单这几年的项目干下来我自己整理了一个调试顺序清单每次新装一套系统都按这个走踩坑次数明显减少。先说方法论一定要把“空载测试”和“带载测试”分开做。第一次上电先把所有输出负载的电源断开也就是中间继电器和磁力锁的12V电源先不给。纯用PLC本身测试逻辑按下按钮看Y0的输出灯有没有灭观察程序逻辑是否正确。确认程序逻辑OK了再给执行机构的电源通电做带载测试。这样即使接线错误也不会烧掉锁或者直接把PLC输出点打坏。接线之前先拿万用表挨个量一遍输入点的通断确保每个信号到PLC端子确实导通了再上电。上电之后再按点位表核对每个信号和点位的对应关系这一步能发现市面上非常多接错线的情况。调试完成之后把最终版本的程序上传到电脑备份同时在电控箱里留一份U盘程序和一个打印出来的点位表。下次出问题接手的人不用从头查直接对照点位表就能找到对应端子。这些看起来琐碎的小习惯在做维护时可以节省大量时间。这套系统做完之后我最大的体会是PLC门禁的精髓不在于多高大上的指令而在于把现场的物理信号映射到梯形图逻辑里稳稳地控制住执行机构。那些看似简单的小细节——常闭门磁、反逻辑电磁锁、消防联动无源干接点——每个都是现场跑过之后总结出来的。如果各位照着这套思路搭出来的系统也碰到了书上没写的怪问题欢迎沿着点位表逐段排查大概率能找到答案。后续如果要加考勤统计和远程监控也可以在这个基础上扩展祝调试顺利。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑