基于三菱FX3U的停车场PLC出入库控制系统设计与调试全解析
发布时间:2026/9/9 15:20:52 锦皓数字建站

做停车场出入口控制这么多年说句实话真正把“出入库”这三个字吃透的项目并不多。很多人以为就是道闸抬杆落杆的事但实际上一个基于PLC的停车场出入库电气控制系统要同时处理车辆检测、道闸控制、防砸保护、信号提示、手动应急、远程联动这些环节任何一个点处理不好现场就会出各种幺蛾子。这篇就用我一个实际做完的项目来讲从方案选型、I/O分配、PLC程序编写到现场调试的全过程完整捋一遍给准备做PLC毕设或者正在接手同类现场项目的朋友一个能直接参考的样板。我用的主力是三菱FX3U系列PLC触摸屏配昆仑通泰MCGS道闸是常见的交流电机挡车器车辆检测用地感线圈加光电开关。这套组合在中小型停车场里非常典型成本可控、资料多、维修方便。下面所有步骤和代码逻辑都是按这套硬件来写的如果你用的是西门子S7-200 SMART或者其他品牌思路完全通用只是地址和指令写法略有差异。1. 项目整体设计与方案选型1.1 控制需求拆解与系统架构停车场出入库控制系统本质上解决的就是“车来了怎么办、车走了怎么办、车没走完闸杆怎么办”这三件事。表面看很简单但拆分下来需求其实不少入口检测到车辆→提示取卡/扫码→抬杆→车辆通过→落杆。出口检测到车辆→确认缴费/放行→抬杆→车辆通过→落杆。安全车辆未完全通过时禁止落杆落杆过程中检测到车辆必须立即停止并抬杆。应急停电或故障时能手动抬杆现场要有急停回路。管理实时显示车位余量、道闸状态支持参数调整。我习惯先把系统按层级拆开方便后面做硬件设计和编程。这个项目的控制架构分四层检测层负责感知现场状态包括地感线圈检测器、光电开关、道闸限位开关、取卡按钮、手动/自动切换开关。控制层就是PLC本体负责逻辑运算和状态判断。执行层包括道闸电机、LED引导屏、语音提示模块、报警灯。管理层是触摸屏和上位机负责人机交互、参数设置和状态监控。这个架构是典型的集散控制思路把“感知—决策—执行—管理”分开任何一层出问题都可以单独排查不会牵一发动全身。1.2 核心设备选型与选型依据设备选型我倾向于成熟稳定、资料多的型号毕竟停车场的环境不比实验室夏天暴晒、雨天进水、冬天低温还经常有灰尘和震动。PLC选型选三菱FX3U-32MR16点输入16点继电器输出。为什么选这款一是点数刚好够用一进一出两个通道总共需要十多个输入、十多个输出余量充足二是继电器输出型可以直接驱动中间继电器和小型接触器不用额外加固态继电器三是FX3U支持扩展模块以后要加车牌识别联动、远程通信都有接口。如果你手头是西门子S7-200 SMART那选SR30或ST30即可思路一致后面我会在关键差异地方提一下。车辆检测器用地感线圈检测器这是停车场系统里最可靠的车辆检测手段。它利用线圈电感变化来检测车辆抗干扰能力强不受光线和天气影响。配套线圈埋设在车道路面下尺寸一般是1m×2m每个出入口车道至少布两个一个在道闸前方用于触发抬杆一个在道闸下方用于判断车辆是否完全通过。光电开关补充地感盲区我选E3F-DS30C4漫反射型光电开关检测距离30cmNPN常开输出。这个型号便宜、耐用装在道闸两侧用于检测道闸附近的车辆或行人。道闸市面上通用的交流电机挡车器带热保护和限位开关。道闸内部通常已经集成了控制板但我们的方案是直接用PLC控制电机正反转和停止所以选型时要确认电机是单独的220V交流电机且带上限位和下限位输出接点方便接入PLC。触摸屏用昆仑通泰MCGS TPC7062Ti7寸屏自带串口和网口支持与三菱FX3U直接通信。触摸屏在这个项目里主要用于显示车位状态、设置延时参数、查看报警记录不参与核心控制逻辑。1.3 电气控制系统的总体工作流程有了设备型号接下来就是流程设计。这个环节我一般先画流程图再编程序流程清楚了梯形图就是体力活。入口流程这样设计车辆驶入入口车道压到入口地感线圈X0PLC检测到信号后控制取卡指示灯亮起同时语音提示“请取卡”。司机取卡后取卡按钮X1被触发PLC延时1秒确认信号稳定然后输出抬杆信号道闸电机正转上升碰到上限位开关后停止。车辆继续前行经过道闸下方地感时如果此时道闸没有完全抬到位程序禁止落杆。车辆完全通过后道闸下方地感信号从有到无PLC开始延时2秒确认车辆已经离开道闸区域输出落杆信号道闸电机反转下降碰到下限位后停止。出口流程与此类似只是把“取卡”换成“缴费确认”由管理员在岗亭按下放行按钮或者通过上位机下发放行指令。这里要特别强调一点整个流程必须按顺序控制来做不能用一堆散落的SET/RST指令硬凑。散落编程的逻辑容易出现状态竞争比如车辆刚压到地感、取卡信号和抬杆信号同时为ON程序执行顺序稍微乱一下动作就会错乱。我用的是三菱的STL步进梯形图指令每个流程步骤占用一个状态继电器切换清晰排查也方便。2. 硬件电路设计与I/O分配2.1 I/O点位统计与分配表动手画电路图之前先把所有输入输出点数统计清楚。我这个项目是一进一出两个通道先列一个清单输入信号包括入口地感、入口取卡按钮、入口道闸上限位、入口道闸下限位、入口光电开关、出口地感、出口缴费确认按钮、出口道闸上限位、出口道闸下限位、出口光电开关、手动/自动切换旋钮、急停按钮。输出信号包括入口道闸抬杆、入口道闸落杆、入口取卡指示灯、出口道闸抬杆、出口道闸落杆、出口放行指示灯、报警灯、语音播报触发。按这个清单做I/O分配表必须留10%~20%的备用点防止现场临时增加设备。这是工程项目的基本习惯别卡得死死的。地址信号名称说明X0入口地感入口车道地感线圈检测器输出X1取卡按钮司机按下取卡X2入口道闸上限位闸杆抬到位X3入口道闸下限位闸杆落到水平X4入口光电道闸附近防砸检测X5出口地感出口车道地感线圈检测器输出X6缴费确认按钮管理员放行X7出口道闸上限位出口闸杆抬到位X10出口道闸下限位出口闸杆落到水平X11出口光电出口防砸检测X12手动/自动切换现场旋钮X13急停急停按钮常闭触点Y0入口抬杆控制入口道闸电机正转Y1入口落杆控制入口道闸电机反转Y2入口取卡指示灯亮起提示取卡Y3出口抬杆控制出口道闸电机正转Y4出口落杆控制出口道闸电机反转Y5出口放行灯放行提示Y6报警灯故障报警Y7语音播报触发触发语音模块播放语音这是精简版点位表实际项目里如果还有车位余量显示、车牌识别联动再继续扩展。地址分配时我把输入输出都集中在X0~X13和Y0~Y7这样写程序时一目了然不用来回翻地址。2.2 传感器选型与接线要点停车场的传感器接线有个非常容易踩坑的地方就是NPN和PNP的区别。很多初学者一上来就被这个问题卡住信号死活进不了PLC。三菱FX3U的输入端子是漏型输入也就是输入端一共用一个公共端COM信号电流从PLC内部流出经过输入点再经过外部传感器回到公共端。因此配NPN型传感器时传感器的正极接24V电源正负极接电源负和PLC COM端输出信号线直接接PLC输入点。NPN传感器输出是低电平有效导通时把信号线拉到0V电流正好从PLC输入点流出来形成回路PLC检测到输入信号。反过来如果拿了PNP传感器输出是高电平有效导通时信号线是24V电流方向完全反了PLC输入点无法检测到信号公共端甚至可能被倒灌电流搞出问题。这个“输出脉冲接入西门子PLC的NPNPLC公共端接电源正接法”在西门子S7-200 SMART上也是一样的道理只是西门子的输入公共端是1M、2M端子NPN传感器把公共端接24V电源正传感器输出接I点信号照样能进PLC。地感线圈检测器的输出一般是继电器干接点不用管NPN还是PNP直接把常开触点接到PLC输入点和公共端之间就行。但要注意地感检测器输出的是脉冲信号还是电平信号要确认我们用的型号默认是车辆在线期间一直导通也就是电平型这样PLC程序处理起来更简单。2.3 执行机构驱动电路设计道闸电机的控制是整个硬件设计里最需要小心的部分。一般停车场道闸是220V交流电机正反转各用一个接触器控制交流接触器线圈由PLC输出点通过中间继电器驱动。为什么不用PLC输出点直接带接触器线圈因为PLC继电器输出触点容量一般是2A而接触器线圈启动瞬间电流大频繁通断容易损坏PLC输出继电器。中间继电器起到电流放大的作用同时把PLC和主回路隔离开安全系数高很多。正反转控制必须加互锁这个我在前面提过但值得再说一次正转接触器和反转接触器的线圈控制回路必须串联对方的常闭辅助触点。不然一旦PLC程序出现占空比错乱两个接触器同时吸合相间短路瞬间就能把接触器烧掉。PLC程序里也要做软件互锁X0和Y1不能同时为ON双保险。另外PLC继电器输出点接感性负载接触器线圈、继电器线圈时要在负载两端反向并联续流二极管或RC吸收电路。不接的话断电瞬间线圈产生的反电动势可能达到上千伏一方面打火损坏触点另一方面会产生强烈电磁干扰干扰附近的传感器信号。注意续流二极管极性要接对反向并联在线圈两端阴极接电源正极这个方向错了等于短路。2.4 供电与抗干扰设计这套系统的供电回路我是这么做的总电源220V进来先过断路器然后分成三路——一路给道闸电机接触器主回路供电一路给24V开关电源供电一路给触摸屏和PLC供电。PLC、传感器、触摸屏共用一台24V开关电源问题不大但道闸电机的主回路必须和PLC控制回路分开走线不能在同一根线槽里并排走否则电机启停瞬间的大电流产生的电磁场会在信号线上耦合出干扰脉冲轻则传感器误动作重则PLC直接死机。接地这块最容易被人忽略。PLC的接地端子要求独立接地接地电阻小于4Ω不能和电机外壳、接触器外壳共用接地体。现场如果实在没有独立接地条件至少要保证PLC和传感器屏蔽层单端接地避免形成地环路。还有一点容易被忽略的是急停回路的接法。急停按钮用常闭触点串联在接触器控制回路里而不是只接到PLC输入点。这样急停按下时不管PLC程序是什么状态接触器都能直接断电道闸电机立刻停止这是硬件层的安全保护不能依赖软件。3. PLC程序设计与关键逻辑实现3.1 程序整体框架与模块划分写程序我习惯先搭框架再填逻辑不要拿到就从头开始写梯形图否则后面改起来全是坑。FX3U的程序我一般分四个模块初始化模块、手动控制模块、自动控制模块、故障处理模块。初始化模块在程序开头用M8002首次运行脉冲把所有状态复位输出全部清零同时把计时器预设值从数据寄存器中读出保证现场可以随时调整参数。手动控制模块用于维修调试和应急操作。切换开关X12打到手动位置时自动控制模块被旁路现场操作员通过手动按钮直接控制道闸升降。必须注意手动模式下输出也不能绕过互锁逻辑抬杆和落杆的软件互锁始终有效。自动控制模块是整个程序的核心用STL步进指令实现入口和出口两个独立的顺序流程。为什么要用STL而不是普通线圈因为STL指令天然支持“当前步执行、其他步停止”的模式不会出现多个步骤同时执行的状态竞争。这个特性在道闸控制里非常关键比如车辆已经取卡但还没通过此时如果出口侧有车触发两个流程互不干扰各自走各自的步进状态。3.2 车辆检测与防砸逻辑防砸车是停车场控制系统的灵魂宁可多几次误抬杆也不能出现一次砸车事故。我在这套系统里做了三层防砸逻辑。第一层闸杆未抬到位时禁止落杆。道闸只有碰到上限位开关后才允许进入落杆流程。如果车取卡后没有前进闸杆一直保持抬起状态不会因为超时自动落杆。第二层道闸下方地感持续检测。车辆经过道闸时下方地感一直被车辆占用此时即使收到落杆信号程序也不会执行必须等地感信号从有变无后再延时2秒确认车辆完全离开。第三层光电开关覆盖道闸区域。如果车辆或行人在落杆过程中出现在道闸附近光电开关瞬时打断落杆动作并触发自动抬杆同时报警灯闪烁。这三层逻辑在实际梯形图里是层层叠加的任何一个条件满足都会把落杆输出断开。我见过一些项目只靠地感检测结果地感死区正好在道闸正下方车头过去但车尾没过去闸杆落下来正好砸到后备箱十分危险。所以光电开关这个冗余是必须的不是省成本的地方。3.3 手动/自动模式切换与互锁手动/自动切换看起来简单但处理不好会出安全事故。现场切换的时候如果道闸正好处于运行状态直接切换模式导致输出突然断开闸杆可能会停在半空电机堵转发热时间长了就烧了。我的做法是切换模式前先检测道闸状态如果道闸正在上升或下降过程中不允许立即切换等闸杆到位后再切换。这个逻辑通过一个中间继电器实现只有上限位或下限位有信号时切换开关才有效。另外手动模式下的抬杆、落杆按钮也必须有互锁。硬件上互锁已经在接触器回路里做了程序里仍然要加两步台阶都踩住才能保证电机正反转不会同时导通。我把这些安全相关的逻辑写好后在程序注释里做了醒目标记方便后期维护的人一眼看到哪些地方不能随便改。这一点太重要了很多PLC程序经过几个人经手之后改得面目全非就是一开始没做好注释和规范。3.4 信号灯与语音提示控制信号灯的控制逻辑相对简单但要注意输出类型的选择。LED指示灯的闪烁频率如果比较高继电器输出型PLC的机械触点寿命会受影响建议用晶体管输出型PLC或者加中间继电器过渡。我这个项目里取卡指示灯和放行灯是常亮或慢闪频率不高继电器输出够用。语音提示模块的控制要特别注意时序。语音模块一般需要一个触发脉冲比如低电平触发播放一段语音播放过程中不能重复触发。我在程序里用PLC的定时器做一个1秒的脉冲输出同时用辅助继电器记录语音模块是否处于播放状态避免频繁触发导致语音叠音或者模块锁死。车位余量显示可以通过触摸屏实现也可以直接在PLC里做计数逻辑。入口抬杆信号上升沿触发D100减1出口抬杆信号上升沿触发D100加1同时设置上下限低于0或高于设定值时报警。这样即使触摸屏离线车位计数也不会丢失因为数据存储在PLC的数据寄存器里。4. 人机界面设计与联机调试4.1 触摸屏界面设计与数据交互触摸屏在这个项目里不是必需的但加上了之后现场调试和后期维护的体验天差地别。我用的昆仑通泰MCGS触摸屏设计了三类画面。主监控画面显示一进一出两个通道的道闸状态抬杆/落杆/正在运行、地感状态、当前车位余量。用图形和颜色区分状态比如闸杆抬起时显示绿色落下时显示灰色。参数设置画面设置落杆延时时间、抬杆确认时间、车位上下限等参数。这些参数对应PLC的数据寄存器比如D200对应入口落杆延时D201对应出口落杆延时触摸屏直接读写这些地址。报警画面显示历史报警记录和当前报警状态比如“入口道闸超时未到位”“出口地感故障”等。触摸屏和PLC通信这块MCGS与三菱FX3U之间我用的是串口通信PLC侧设置站号1通信协议选FX系列编程口协议波特率9600、数据位8位、停止位1位、偶校验。MCGS设备组态里建立“通用串口父设备”和“三菱FX系列编程口”两个设备地址格式是“D100”“M0”“X0”“Y0”之类的直接地址注意X和Y的地址要按八进制输入。4.2 通信参数设置与联调步骤通信联调是最容易卡壳的环节我提供一套标准操作流程。先给PLC通电用GX Works2在线连接确认PLC本身工作正常程序能上传下载。然后单独给触摸屏通电在系统设置里确认串口参数、站号。接着把PLC和触摸屏用通信线连接到触摸屏的“设备调试”页面手动读写一个PLC寄存器地址比如写D100100如果返回成功说明通信链路没问题。通信成功后再进入“变量监控”页面把PLC程序里所有需要显示的地址逐一加入监控列表检查每个变量的值是否和实际状态一致。这一步非常关键地址写错是常态特别是三菱的X/Y是八进制X7后面是X10而不是X8我在MCGS组态里就踩过这个坑地址填X8之后无论如何都读不到数据查了半天才反应过来是八进制的锅。4.3 系统调试步骤与方法整套系统的调试我分成三步走。第一步是空载调试。把道闸电机的接触器输出断开用GX Works2的在线监控功能模拟输入信号看PLC程序状态是否正确跳变。比如手动置位入口地感信号观察程序是否进入“等待取卡”状态触发取卡按钮观察抬杆输出是否置位。这个阶段不需要任何执行机构动作纯粹验证逻辑。第二步是带载调试。接上道闸电机但速度先调低测试手动模式下的抬杆、落杆动作是否正常限位开关能否准确停止电机。然后切到自动模式模拟完整流程。重点测试防砸逻辑这个阶段可以用一块硬纸板代替车辆在落杆过程中慢慢移到光电开关前面确认道闸能在碰到纸板前停止并反向抬杆。第三步是现场模拟。所有设备正常安装到位后用人员站在地感区域模拟车辆逐个测试触发条件。注意测试出口和入口两个通道的联动特别是出入口同时有车时两个流程是否互不影响。最后测试急停按钮在道闸运行过程中按下急停道闸应立即停止并保持松开急停后手动复位才能恢复。5. 常见问题与排查技巧实录5.1 传感器误触发与抖动处理停车场现场最常见的问题是光电开关误触发。我遇到过几次道闸旁边风吹过一片树叶光电开关就认为有物体遮挡闸杆马上反向抬起来后面的车莫名其妙就被堵住了。这个问题的根源是光电开关的灵敏度太高检测距离设得太远把旁边的绿化植物都纳入了检测范围。处理办法有两个一是调整光电开关的灵敏度旋钮让检测距离刚好覆盖道闸附近区域多余的距离全部砍掉二是在PLC程序里加一个滤波时间比如光电信号必须持续50ms以上才认为是有效信号这样可以滤掉飞虫、落叶造成的瞬时遮挡。三菱定时器实现这个滤波很简单用一个辅助继电器加T100定时器就行。地感线圈的误触发问题主要出在埋设环节。线圈埋得太浅、距离钢筋太近、周围和金属管道平行都会导致电感量不稳定车辆还没到就触发。我踩过最离谱的一个坑是地感线圈旁边埋了一条水管下雨后水流动导致电感波动系统半夜自动抬杆。后来把线圈重新挖开调整位置避开水管在检测器上把灵敏度从最高档降到中间档问题才彻底解决。5.2 干扰导致的误动作现场干扰导致的问题排查起来最头疼因为现象往往是偶发的。我遇到过一个情况入口道闸每次抬杆时出口侧的PLC输入点偶尔会突然亮一下导致出口流程误触发。检查了接线、换过传感器都没解决最后发现是道闸电机和PLC信号线在同一个线槽里走了将近10米电机启动瞬间的电磁干扰直接感应到信号线上。解决办法很直接把动力线从线槽里单独抽出来改成金属管穿管敷设和PLC信号线保持30厘米以上距离。同时PLC输入信号的屏蔽层在PLC侧单端接地干扰立刻消失。这个案例给我一个教训控制柜里的走线是设计阶段就要做好的事等现场出问题再改成本是原来的好几倍。另外PLC自身供电也可以加一个EMI滤波器或者用带隔离的开关电源成本不高但效果明显。如果现场用了变频器那PLC和变频器必须分开接地共用接地极容易产生地环流干扰。5.3 道闸砸车隐患与逻辑漏洞砸车是停车场控制系统绝对不能出现的事故但现实中屡见不鲜。我分析过几个砸车案例基本都出在逻辑漏洞上。最典型的漏洞是落杆延时固定比如2秒但有些长车通过道闸需要3秒2秒后闸杆直接落下砸在车顶或后备箱上。延时落杆只适用于车短、道闸距离短的标准场景对有货车、SUV甚至拖挂车的停车场完全不适用。所以我现在做方案时只要资金允许就必做双地感冗余方案道闸前方的地感用于触发抬杆道闸下方的地感用于判断车辆完全通过两个地感信号都恢复后再延时落杆。如果只有单地感条件那程序里就把落杆延时的默认值调大比如5秒同时配合光电开关防砸。安全第一效率第二。还有一类漏洞出在手动模式下。有些维保人员手动抬杆后没用手动按钮落杆直接切到自动模式结果闸杆一直保持抬起状态车辆连续跟车通过出口没有计时管理混乱。这个问题的对策是在自动模式启动时通过初始化程序强制检查道闸位置如果闸杆不在下限位必须执行一次落杆动作后才能进入正常自动流程。5.4 现场调试踩坑实录最后分享几个我记了很多年的现场调试失误都是真实踩过的坑。第一个是NPN和PNP传感器混装。项目交付前一晚调试入口光电信号死活不亮换了三个光电开关都没用。后来拿万用表量传感器输出发现电压一直是0V才意识到库房发的是PNP型传感器和PLC的漏型输入根本不匹配。那晚折腾到凌晨两点最后在备用物料箱里翻出一个NPN型换上去就通了。从此以后我每次下现场都先核对传感器型号和PLC输入类型这个10秒钟的动作能省下来一晚上的折腾。第二个是触摸屏地址填错。MCGS里写三菱X地址时我按十进制写了X8实际应该是X10导致“入口道闸上限位”这个状态在触摸屏上始终显示异常。检查了通信参数、重启了PLC最后翻手册才发现是三菱八进制编址的问题。这类问题不太常见但遇到了非常耽误时间建议用触摸屏时先做一个小工程把PLC所有输入点状态都读出来验证一遍确认地址无误后再做正式画面。第三个是道闸限位开关位置没调好。新装的道闸限位挡块位置不准导致上限位开关经常不触发闸杆抬到顶但PLC收不到信号程序一直卡在“抬杆中”状态。这个不是PLC程序问题而是机械安装问题。调试时要注意先手动调整好限位挡块的物理位置确认机械动作正常再动PLC程序。程序写得再漂亮机械硬件不配合也白搭。我个人做项目到现在最大的体会是停车场出入库控制难点不在程序逻辑多复杂而在于现场环境太“脏”——灰尘、雨水、震动、干扰全都会影响传感器所以设计阶段就要把冗余和安全机制提前考虑进去别把宝压在单个检测信号上。防砸车逻辑宁可多几次误抬杆也不要出现一次压车事故。后续如果要在这个系统上扩展还可以加远程管理、车牌识别联动、车位引导屏等功能硬件上留足点数和通信接口到时候直接往框架里添模块就行。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。