
简介这是面向自动化、电气类专业本科生的一份停车场PLC控制系统课程设计报告以中南民族大学自动化专业课程设计为背景基于欧姆龙PLC实现十六个车位的车辆进出计数、入口闸栏控制、红绿指示灯与七段数码管显示。报告完整收录课题要求、I/O分配表、外部接线图、梯形图程序、CX-Designer人机界面及系统调试结果程序采用模块化结构便于阅读和修改从需求分析到成品展示链路清晰可直接作为PLC课程设计的参考模板。压缩包仅含1个docx文档大小约319KB目前已有477人学习下载。借助其中的I/O分配与梯形图逻辑读者可快速理解传感器输入、电机输出和数码管显示之间的对应关系尤其适合正在完成欧姆龙PLC课设、需要对照接线方案与程序结构的初学者既能规避常见地址配置错误也能缩短设计周期。1. 停车场PLC设计报告从I/O分配到现场调试的完整落地路径做停车场PLC项目最容易被低估的是逻辑细节。我见过某开发者把主控箱装好、程序下载完上电后道闸纹丝不动查了三天发现是“车检器信号接到了输入点但梯形图里写的是常闭触点”。这类问题不是不会写程序而是没有把“现场物理信号”和“程序逻辑模型”对应清楚。这份设计报告讲的就是这件事从车位检测、道闸控制、红绿指示灯、计数显示到手动/自动切换一台小型PLC加十几个I/O点就能管住一个几十车位的停车场。这篇内容适合两类人一是刚接触PLC项目、需要做课程设计或毕业设计的学生二是公司里要接小规模自动化改造的工程师。我会把I/O分配、梯形图设计、防抖处理、故障排查这些环节拆开讲所有指令和参数按通用型PLC的写法给出你可以直接对着改。文章最后会聊一个容易被忽略的话题仿真通过不等于现场能用中间差的那几步才是真正值钱的经验。2. 确认控制对象与I/O点数选型做错的代价远超预期2.1 停车场控制需求拆解从“车进出”到“灯和杆”的联动逻辑停车场PLC控制的核心对象就四类入口、出口、车位检测、显示与报警。每个对象又拆成几个物理动作。入口处需要地感线圈或红外对射检测车辆到来道闸电机正转抬起、反转落下到位后压到限位开关停止出口侧逻辑相同但要考虑“是否允许出场”——无牌车扫码、月卡过期这类因素在纯PLC方案里通常用外部收费系统的干接点信号来决定放行还是拦截。车位检测是整个系统的数据来源。每个车位装一个地感线圈车辆停入后输出一个开关量信号PLC把这些信号汇总后做减法运算总车位数减已占用数得出剩余车位。有人在选型时只数了道闸需要几个点把车位检测的几十个点漏算了结果换更大PLC布线和成本全部返工。正确做法是先画控制对象表再统计I/O最后才选型号。2.2 输入输出点数统计表一个40车位停车场的I/O清单下面以最常见的40车位单进单出停车场为例列出完整的I/O清单。注意这里假设采用地感线圈检测方案每个车位一个检测点如果你们项目用的超声波或视频检测只换前端传感器PLC侧的接入方式基本不变。信号类别信号含义数量说明数字量输入入口地感线圈1车辆到达入口道闸数字量输入出口地感线圈1车辆到达出口道闸数字量输入入口道闸上限位1闸杆抬到位数字量输入入口道闸下限位1闸杆落到位数字量输入出口道闸上限位1同上数字量输入出口道闸下限位1同上数字量输入手动/自动切换1维护时切手动数字量输入手动抬杆按钮1配手动放行数字量输入手动落杆按钮1同上数字量输入剩余车位校准1调试时校准计数数字量输入车位检测信号并入40每个车位一个点数字量输出入口道闸上升1继电器输出数字量输出入口道闸下降1同上数字量输出出口道闸上升1同上数字量输出出口道闸下降1同上数字量输出入口红绿灯1绿允许入场数字量输出出口红绿灯1绿允许出场数字量输出满位报警灯/蜂鸣器1车位数占满时触发总计输入点数49个、输出点数8个选主机时要预留10%~15%的余量所以我一般不会选刚好够的型号而是直接选60点左右的扩展方案。如果你选的是带扩展模块的小型PLC主机本体自带一部分I/O剩余用扩展模块补务必要确认扩展模块的刷新周期与主程序扫描周期的配合关系。2.3 PLC选型三个关键参数I/O余量、继电器输出、掉电保持区小型停车场项目选PLC我只看三个参数。第一是I/O总点数带着余量前面清单已经算过安装调试时多两个备用点是救命稻草第二是输出类型道闸电机和指示灯必须用继电器输出或晶体管输出带中间继电器直接驱动交流接触器会打火触点寿命很快报废第三是掉电保持区长度车位计数是停电不能丢的数据没有保持区就得每次上电手动校准这在无人值守停车场完全是灾难。写程序前还要确认一个参数输入滤波时间。大多数小型PLC默认滤波10ms左右地感线圈信号本身是持续的这个时间没问题但如果你用的传感器输出是短脉冲滤波时间太长会丢信号要在PLC参数里把它调短。这个细节在仿真软件里看不出来现场才暴露。选型阶段就把这些参数核对好比写程序时再纠结舒服得多。3. 梯形图与程序结构设计把“车来抬杆、车走落杆”变成可运行逻辑3.1 主程序框架扫描周期内的自锁、互锁与状态记忆PLC程序按扫描周期循环执行停车场这类逻辑不适合用跳转指令写流水账而是把稳定状态用自锁回路表达。入口道闸的控制核心是三个元素启动条件地感信号、保持条件自锁、终止条件限位开关。抬杆动作一旦开始即使车辆稍微后退导致地感短暂消失闸杆也不能立刻落下来否则会砸车顶。下面是入口道闸上升的梯形图逻辑用结构化文本表述方便对照——大多数PLC的ST语言语法都接近IEC 61131-3标准梯形图也是这个逻辑// 入口道闸上升控制 // X0: 入口地感线圈信号 // X1: 入口上限位开关 // M0: 上升动作保持标志 // Y0: 入口道闸上升输出 // M100: 手动模式标志 // X4: 手动抬杆按钮 // 自动模式下的上升启动与自锁 M0 : (X0 AND NOT X1 AND NOT M100) OR (M0 AND NOT X1); // 手动模式下的上升 M0 : M0 OR (M100 AND X4 AND NOT X1); // 输出 Y0 : M0;这段逻辑的关键在自锁回路。第一次扫描时地感X0有信号且上限位X1没压到M0置位第二次扫描时即使X0消失因为M0自身保持Y0继续输出闸杆持续上升。直到闸杆压到上限位X1M0被复位输出停止。手动模式通过M100切换维护人员按抬杆按钮时也能单独控制不需要走自动检测链路。3.2 道闸正反转互锁没有互锁闸杆电机会烧给你看道闸电机是单相交流电机正转抬杆、反转落杆靠两个接触器切换电源相序。如果上升输出Y0和下降输出Y1同时为ON接触器同时吸合轻则跳闸重则烧电机。梯形图里必须做双重互锁程序内部互锁加外部接触器互锁。// 上升与下降互锁逻辑 // Y0: 上升输出Y1: 下降输出 // X1: 上限位X2: 下限位 // 下降启动条件地感消失且未到下限位或手动落杆按钮 // 关键Y0为ON时禁止Y1Y1为ON时禁止Y0 // 上升输出 Y0 : (M0 OR (M100 AND X4)) AND NOT Y1 AND NOT X1; // 下降输出 // X3: 出口地感信号对本门而言车已离开 // M1: 落杆保持标志 M1 : (NOT X0 AND NOT M0 AND NOT X1 AND NOT M100) OR (M1 AND NOT X2); Y1 : (M1 OR (M100 AND X5)) AND NOT Y0 AND NOT X2;注意看Y0的表达式里加了NOT Y1Y1的表达式里也加了NOT Y0这是程序级互锁。外部接触器还要把上升接触器的常闭触点串进下降接触器线圈回路形成硬件级互锁。两道保险缺一道都不行——程序里有互锁但PLC输出继电器或中间继电器卡死时硬件互锁是最后一道防线。3.3 车位计数与显示加法计数、减法计数和掉电保持车位计数逻辑是停车场PLC程序的第四个核心块。入口抬杆放行一辆车计数器减一出口抬杆放行一辆车计数器加一。总车位数减去当前计数就是剩余车位。用ST语言实现// 车位计数逻辑 // D0: 当前已停车辆数 // D1: 总车位数本例为40 // X0: 入口地感X3: 出口地感 // M2: 入口抬杆完成脉冲M3: 出口抬杆完成脉冲 // 脉冲生成上升沿触发 // 入口抬杆完成时车辆进入 IF (X0 AND NOT X0_OLD) THEN M2 : TRUE; ELSE M2 : FALSE; END_IF; X0_OLD : X0; IF M2 AND D0 D1 THEN D0 : D0 1; END_IF; // 出口抬杆完成时车辆离开 IF (X3 AND NOT X3_OLD) THEN M3 : TRUE; ELSE M3 : FALSE; END_IF; X3_OLD : X3; IF M3 AND D0 0 THEN D0 : D0 - 1; END_IF; // 剩余车位显示 D2 : D1 - D0;老练的工程师会把计数触发条件做得更稳。单纯用地感信号上升沿计数会出问题车辆在道闸前倒车再前进地感信号反复变化一次进场可能计两次。常见做法是把地感信号和道闸上限位组合成“车辆确实已进入”的状态位用这个状态位的上升沿去触发计数。道闸没有完全抬起之前车辆无法通过计数不动作。3.4 红绿灯与满位报警指示灯逻辑比你想的更需要时序红绿灯逻辑看起来简单——剩余车位大于0时亮绿灯等于0时亮红灯。但实际项目里满位瞬间的抖动会让人抓狂。剩余车位在1和0之间跳动时红绿灯也跟着闪夜间尤其明显。解决方案是给满位状态加一个“确认延时”连续200ms检测到剩余车位为0才点亮红灯// 满位红灯确认逻辑防抖动 // D2: 剩余车位 // T0: 200ms定时器 // Y5: 入口红灯 IF D2 0 THEN // 满位条件持续 IF T0_RUNNING FALSE THEN T0_START : TRUE; // 启动200ms定时 END_IF; IF T0_DONE THEN Y5 : TRUE; // 红灯亮 END_IF; ELSE // 有车位时立即复位 T0_START : FALSE; T0_DONE : FALSE; Y5 : FALSE; // 绿灯亮 END_IF;定时器的具体写法不同PLC差异很大但逻辑思路通用延时确认比直接比较更可靠。入口红灯亮了之后外面等待的车辆不会再触发地感道闸保持关闭司机看到红灯会停在入口外面这是正常的系统行为不是故障。调试时很多人误以为道闸坏了其实是满位逻辑正确生效了。4. 停车场PLC项目最常翻车的4个现场坑4.1 现象上电后PLC运行灯正常但所有输出都不动作原因检查后发现输出端公共端没接电源线。很多小型PLC的输出端子是分组独立的COM0、COM1要分别接24V电源负极漏型或正极源型只接了一组的话另一组的继电器有输出信号但外部回路根本没形成回路。我见过某开发者把程序翻了三遍最后用万用表量输出端子才发现24V根本没送到COM端。解决接线完成后逐组测试。给每组输出一个强制ON用万用表量对应端子和COM之间有没有导通。养成习惯上电前先核对电源接线再核对输入信号线最后才下载程序。4.2 现象车辆驶过道闸抬杆后无法自动落杆原因地感线圈附近有大功率电缆或金属物体检测灵敏度被干扰。闸杆抬起后车辆停在道闸下方等待地感信号时断时续PLC检测不到“车辆离开”落杆条件永远不满足。更隐蔽的情况是地感线圈埋在水泥里切割缝过深或过浅导致电感量偏差超出检测器调节范围。解决现场处理时先看PLC输入指示灯——车辆离开后地感指示灯是否还在闪如果还在闪说明检测器灵敏度太高或受干扰如果不闪但道闸不落说明程序里落杆条件被其他输入点卡住了。我一般会调低检测器灵敏度到刚好稳定触发为止同时检查道闸下限位开关是否被卡住——限位开关失灵时PLC认为闸杆一直在下限位下降指令不会输出。4.3 现象车位计数越用越乱最终剩余车位变成负数原因非正常情况下车辆进出没有被正确计数。比如行人手动抬起道闸、车辆冲杆闯入、施工车辆从其他通道进出这些事件都会让PLC的实际计数和物理车辆数脱节。计数逻辑本身没有错错在系统没有自校准机制。解决必须在程序里加“校准输入”。实际项目里做法是每天早上交接班时保安按一次校准按钮把PLC内的当前车辆数设为人工清点的实际值。梯形图里用一段覆盖逻辑校准开关接通时把D0强制设为预设定值。有人说这样不够自动化——但无人值守停车场本来就不该只靠PLC一个系统管所有异常地感道闸计数天生有盲区校准是低成本高可靠的做法。4.4 现象仿真程序一切正常一接现场就频繁误动作原因仿真软件里输入信号是理想的“0变1”而现场信号有抖动、毛刺、反电动势干扰。道闸电机启停瞬间接触器线圈产生的反向电动势会通过电源或者信号线耦合进PLC输入回路导致没车经过也有地感信号脉冲。这属于电磁兼容问题不是程序逻辑问题。解决给所有感性负载接触器、电机并联RC阻容吸收或续流二极管PLC输入信号线用屏蔽双绞线屏蔽层单端接地输入回路串接1kΩ限流电阻能在一定程度上衰减干扰但根治法还是隔离继电器。信号线与动力线分开走线距离至少15cm以上不能挤在同一根线槽里。程序上还可以用滤波计数器——输入信号连续稳定保持一段时间才认为是有效信号但这招在快速脉冲信号面前不能乱用。5. 用仿真软件和硬件在环把程序“跑透”再交付一份调试顺序清单5.1 为什么仿真通过不等于现场能用差在哪仿真软件的PLC是“理想执行器”它认为输出Y0为ON时外部电机立刻运转、限位开关立刻切换。真实的道闸电机从得电到闸杆压到限位开关有几百毫秒到几秒的机械行程时间真实的地感线圈检测车辆有几十毫秒的响应延迟真实的接触器吸合有抖动。这些时间参数不进入仿真模型程序里跟时序相关的Bug就根本暴露不出来。一个典型例子程序中用“道闸上升输出置ON同时开始计时计时到5秒认为抬杆完成”。仿真里5秒后限位开关马上到位程序继续往下走现场里如果机械机构卡阻5秒后闸杆还没到位程序却认为到位了继续执行放行逻辑非常危险。所以仿真只能验证“常理下逻辑是否正确”验证不了“异常下逻辑是否安全”。5.2 硬件在环测试的简化做法用开关和灯模拟整个停车场没有完整设备也能做硬件在环测试我自己的习惯是搭一个操作面板PLC输入端接若干拨码开关代表地感、限位、按钮输出端接LED灯代表道闸电机、红绿灯、报警器。代码不需要任何改动只是外部负载变了。测试时要特别关注三个场景。第一个快速拨动“地感”开关模拟车辆快速通过观察计数是否稳定第二个同时拨通“上升限位”和“下降限位”模拟限位开关故障系统是否卡死第三个反复通断电模拟现场掉电看掉电保持区的数据是否恢复。这三个场景在纯仿真里很难做出真实效果硬件在环一次就能发现问题。这套测试方法成本极低作用非常大——交付前把所有异常工况过一遍现场调试时间能压缩一半以上。5.3 现场调试顺序与单步验证清单到现场后先不要下载整个程序按顺序来。第一步把PLC切到STOP模式用编程软件逐一强制每个输入点验证外部信号线和传感器状态与PLC输入指示灯一致第二步强制每个输出点确认接触器动作、电机方向正确、指示灯亮灭符合预期第三步恢复RUN模式在手动模式下测试单步动作第四步才是自动模式整体联调。最后一步是实车测试依次测车辆到达入口地感→绿灯亮→道闸抬起→车辆通过→道闸落杆→计数减一。每个步骤观察两个东西PLC对应输入/输出指示灯是否变化、现场设备实际状态是否跟随。两者不一致的瞬间就是问题所在。这个习惯帮我解决过大量“看起来程序没问题但设备不听话”的疑难杂症。这个项目做完我最大的教训是PLC程序占总工作量的比例其实不到三分之一I/O规划、时序设计、电磁兼容、现场调试才是真正的分水岭。希望这些内容能帮你绕开我踩过的坑把停车场PLC项目一次跑通少几次半夜跑现场的体验。本文还有配套的精品资源点击获取