
1. 立体车库为什么值得用PLC来做控制核心很多人第一次接触立体车库项目脑子里冒出来的方案是用单片机或者工控机加运动控制卡。我当年做第一个升降横移式车库模型的时候也是这么想的结果在实验室调了两周光是一个多轴联动的互锁逻辑就把我折腾得够呛。后来换成西门子S7-1200三天就把核心动作跑通了。这个经历让我彻底理解了为什么工业现场的设备控制PLC依然是绕不开的选择。立体车库本质上是一套多轴运动协调 安全互锁 状态管理的系统。它不像流水线那样动作单一而是要根据车位占用情况动态决定哪一层升降、哪一层横移、哪个车位取车。这里面涉及大量的逻辑判断和时序控制用梯形图或者SCL来写逻辑一目了然调试的时候在线监控每个变量的状态出问题一眼就能定位。从毕业设计的角度来说选PLC做立体车库有几个很实际的好处。第一逻辑清晰可展示答辩的时候老师看到你的梯形图网络和IO分配表能直接判断你是不是真的理解了控制流程。第二仿真验证方便没有实物也能用PLCSIM跑通逻辑配合触摸屏仿真还能做出完整的操作演示。第三资料丰富西门子、三菱、汇川的PLC在车库控制方面的应用案例非常多遇到问题容易找到参考。但这里有个坑要提前说很多同学一上来就想着做“全自动智能车库”恨不得把AGV、视觉识别、云端管理全塞进去。结果到中期检查的时候连最基本的升降横移动作都没跑通。我的建议是先把单车位存取的最小闭环做扎实再考虑扩展。一个能稳定运行的简单系统比一个跑不起来的复杂系统得分高得多。下面这张表是我总结的几种常见控制方案对比你可以根据自己手头的资源和能力来选控制方案优势劣势适合场景西门子S7-1200生态完善、仿真方便、资料多成本较高、体积偏大毕业设计首选尤其是有仿真需求三菱FX系列入门简单、指令直观仿真软件体验一般有实物设备、偏重实操汇川H5U国产替代、性价比高教程相对少预算有限但想要实物单片机运动控制卡成本低、体积小开发周期长、稳定性差不推荐用于毕业设计选型这件事没有绝对的对错关键是匹配你的答辩展示需求。如果你打算用仿真演示西门子PLCSIM是最好用的如果你手上有实物模型那就要考虑IO点数和电机驱动方式。2. 存取逻辑的拆解从“想清楚”到“写出来”2.1 先画状态转移图别急着写程序我见过太多同学拿到题目就开始写梯形图写着写着发现逻辑乱了回头改又牵一发动全身。正确的做法是先用状态转移图或者流程图把整个存取过程理清楚。以最常见的两层升降横移式车库为例假设有5个车位上层3个1、2、3号下层2个4、5号下层车位可以横移上层车位可以升降。存车流程是这样的操作员在触摸屏上选择“存车”系统检测是否有空车位如果有空位判断空位在上层还是下层如果空位在上层需要先把对应位置下方的下层车位横移让开上层车位下降到地面层车辆驶入检测到位后车位上升复位更新车位状态完成存车取车流程反过来但多了一个关键点取上层车之前必须确认下方没有车辆或者下方车位已经移开。这个互锁条件是安全的核心写程序的时候要作为硬约束。注意状态转移图不需要画得多漂亮关键是每个状态的进入条件、退出条件和执行动作要写清楚。我一般用纸笔先画一遍确认没有死循环和逻辑漏洞再动手编程。2.2 IO分配表的规范做法IO分配表是PLC程序的基础也是答辩时老师必看的内容。很多同学的IO表就是随便列一下没有分区、没有预留、没有注释看起来很业余。规范的IO分配表应该包含以下几列信号名称、地址、类型DI/DO/AI/AO、信号来源/去向、备注。更重要的是要按功能分区比如数字量输入DI按钮信号、限位开关、光电传感器、急停数字量输出DO接触器线圈、指示灯、蜂鸣器模拟量输入AI如果是变频控制可能需要频率反馈我建议在IO表里预留10%~20%的备用点方便后期调试时增加功能。地址分配也要有规律比如DI从I0.0开始按功能顺序排DO从Q0.0开始对应排这样查线的时候一目了然。2.3 梯形图编程的几个关键网络立体车库的梯形图程序核心就是几个功能块手动/自动切换、车位状态管理、运动控制、安全互锁。手动模式主要用于调试和故障处理每个动作单独控制但必须加上限位保护。自动模式是核心需要根据车位状态和操作指令自动决定动作顺序。车位状态管理我一般用一个整型数组或者位存储器来记录每个车位是否有车。比如用M10.0~M10.4分别表示1~5号车位有车程序里每次存取完成后更新这些位。运动控制部分如果是用普通三相电机加接触器那就是正反转控制加限位停止如果用步进或伺服就需要发脉冲或者走通信。毕业设计里为了简化通常用接触器限位开关的方案逻辑简单、仿真也容易做。安全互锁是必须单独强调的。至少要有以下几层保护急停按钮按下后切断所有输出程序进入安全状态限位开关防止机械结构冲顶或撞底光电传感器检测车辆是否到位、人员是否误入逻辑互锁上层下降前确认下层已移开横移前确认目标位置空闲这些互锁在程序里要用常闭触点串联的方式实现确保任何一个条件不满足都不会执行危险动作。3. 仿真环境搭建没有实物也能跑通全流程3.1 TIA Portal和PLCSIM的版本匹配问题这是新手最容易踩的坑。TIA Portal的版本和PLCSIM的版本必须匹配而且PLCSIM Advanced和普通PLCSIM的用法完全不同。普通PLCSIM只能仿真S7-1200/1500的基本逻辑不支持通信指令PLCSIM Advanced支持更复杂的仿真包括Web服务器和OPC UA通信但安装配置更麻烦。我建议毕业设计用TIA Portal V16或V17 普通PLCSIM就够了。安装的时候注意先装TIA Portal再装PLCSIM顺序反了可能会出问题。安装完成后在TIA Portal里新建项目添加S7-1200 CPU编写程序后点击“开始仿真”按钮会自动启动PLCSIM并下载程序。提示如果PLCSIM启动不了先检查Windows的防火墙和杀毒软件是否拦截了相关服务。另外PLCSIM和TIA Portal必须以管理员身份运行否则可能出现通信失败。3.2 用HMI仿真做出完整的操作界面光有PLC逻辑仿真还不够答辩的时候老师希望看到完整的操作流程。这时候就需要HMI触摸屏仿真。在TIA Portal里可以添加一个精智面板或者精简面板然后在画面上放置按钮、指示灯、IO域等元素关联到PLC的变量。仿真的时候PLCSIM和HMI仿真会同时运行你在HMI上点按钮PLC程序响应指示灯状态变化整个流程就活了。HMI画面设计有几个要点主画面显示车库整体布局每个车位用不同颜色表示有车/无车操作画面存车、取车按钮车位选择当前状态显示报警画面显示急停、限位、传感器故障等信息手动画面调试用每个动作单独控制画面不用做得太花哨关键是信息清晰、操作直观。我见过有的同学把画面做得像游戏界面结果答辩的时候老师找不到关键信息反而扣分。3.3 仿真中常见的“程序跑不通”排查思路仿真的时候程序不动先别急着改代码按这个顺序排查PLC是否处于RUN模式PLCSIM启动后默认是STOP需要手动切换到RUN输入信号是否强制仿真环境下物理输入不会自动变化需要用“监控表”强制输入点程序块是否被调用OB1里有没有调用你的FC/FB这个低级错误很常见变量地址是否冲突同一个地址被多处使用导致逻辑混乱互锁条件是否满足安全互锁没通过输出自然不会动作我一般会在程序里加一些调试用的中间变量比如“自动模式运行中”、“存车流程步序”等仿真的时候监控这些变量能快速定位卡在哪一步。4. 从仿真到实物如果要做硬件模型需要注意什么4.1 机械结构的选择亚克力还是铝型材如果毕业设计要求做实物模型机械结构是第一个要解决的问题。常见的方案有两种亚克力板拼接和铝型材搭建。亚克力板的优点是加工方便、透明度好、看起来精致适合展示。缺点是强度有限如果载重较大容易变形。铝型材的优点是结构稳固、可扩展性强缺点是成本高、加工需要专用工具。我的建议是如果只是做演示模型亚克力板足够了用激光切割加工精度也有保证。如果要做能实际载小车的模型那就用铝型材配合直线导轨和丝杆传动。传动方式也要选。升降用丝杆或者同步带横移用齿轮齿条或者同步带。步进电机是首选控制简单、定位准确。如果预算有限用直流电机加编码器也行但控制逻辑会复杂一些。4.2 传感器和限位开关的布置实物模型上传感器的布置直接决定了系统的可靠性。至少需要以下几类限位开关每个运动轴的上下/左右极限位置各一个防止冲撞光电传感器检测车位是否有车、车辆是否到位接近开关检测运动机构是否到达目标位置限位开关建议用机械式的可靠性高、抗干扰能力强。光电传感器用漫反射式的安装方便但要注意避免环境光干扰。接线的时候所有传感器信号都接到PLC的DI点公共端根据PLC的类型接24V或24V-。急停按钮必须用常闭触点这样断线的时候系统会自动进入安全状态这是工业安全的基本要求。4.3 电机驱动和电气柜的简化方案毕业设计的电气柜不需要像工业现场那么规范但基本的安全措施要有。断路器、接触器、热继电器这三样不能省。断路器负责短路保护接触器负责通断控制热继电器负责过载保护。如果用的是步进电机需要步进驱动器PLC通过脉冲方向信号控制。接线的时候注意共阳/共阴的接法不同驱动器的定义可能不一样接错了电机不转或者发热。电气柜的布局要强弱电分开PLC和传感器信号线走一边电机动力线走另一边避免干扰。接地线一定要接这是安全底线。5. 论文和文档的写作别让“软件工程”拖了后腿5.1 论文结构怎么安排才不像“说明书”很多同学的毕业设计论文读起来像产品说明书全是“本系统采用XX技术实现了XX功能”没有分析、没有对比、没有思考。这样的论文得分不会高。正确的写法是每个技术选择都要有理由。比如为什么选PLC而不是单片机为什么选西门子而不是三菱为什么用梯形图而不是SCL这些“为什么”才是论文的核心价值。论文结构我建议这样安排绪论立体车库的背景、国内外现状、本设计的目标和内容总体方案设计控制方案对比、机械结构选型、系统架构硬件设计PLC选型、IO分配、电气原理图、传感器布置软件设计控制流程、状态转移图、梯形图程序、HMI画面仿真与调试仿真环境搭建、调试过程、遇到的问题和解决方案总结与展望完成的工作、不足之处、改进方向其中仿真与调试这一章是加分项把你调试过程中遇到的真实问题和解决过程写进去比空泛的“系统运行稳定”有说服力得多。5.2 源码和文档的整理规范毕业设计提交的源码和文档可读性比功能多少更重要。我见过有的同学程序功能很全但变量名全是M1、M2、M3注释一个没有老师看了直接皱眉。源码整理要注意变量命名规范用英文或拼音缩写见名知义比如Car_Exist_1表示1号车位有车程序分块主程序、手动模式、自动模式、报警处理分开写不要全堆在OB1里注释完整每个网络、每个关键变量都要有注释版本管理用Git或者至少保留多个版本方便回退文档方面除了论文本身还需要IO分配表、电气原理图、程序流程图、HMI画面截图。这些材料整理成一个附录或者单独的文档答辩的时候可以快速展示。5.3 答辩时老师最可能问的几个问题根据我的经验立体车库PLC毕业设计的答辩老师大概率会问这几个问题安全互锁是怎么实现的你要能说清楚每一层保护的作用和实现方式如果两个车位同时请求存取怎么办这是考察你的调度逻辑要有优先级或者排队机制程序里用了哪些定时器和计数器考察你对PLC指令的掌握程度仿真和实物有什么区别考察你对实际工程问题的理解如果限位开关坏了会怎样考察你的故障分析和安全意识提前准备好这些问题的答案答辩的时候就不会慌。6. 几个让我印象深刻的调试教训第一个教训是关于互锁条件的顺序。我当初写程序的时候把“下层移开”和“上层下降”两个条件用并联的方式写结果仿真的时候发现上层可以直接下降差点撞到下层。后来改成串联并且加了一个中间变量表示“下层已安全移开”逻辑才正确。这个经历告诉我安全相关的逻辑必须用最保守的方式写宁可多几个条件也不能有漏洞。第二个教训是关于仿真和实物的差异。仿真的时候限位开关是手动强制的想让它什么时候动作就什么时候动作。但实物上限位开关的安装位置、触发方式、信号抖动都会影响程序运行。我在实物调试的时候因为限位开关的常开常闭接反了导致电机一直转不停差点把丝杆撞坏。后来养成习惯每次接线后先用万用表确认信号状态再下载程序。第三个教训是关于HMI和PLC的变量同步。HMI画面上显示的车位状态必须和PLC里的实际状态一致。我当初用了一个“取反”操作结果HMI显示有车的时候PLC里是无车差点把车取错。后来统一用只读变量显示状态操作指令用单独的按钮变量避免了这类问题。这些教训在教科书上不会写但实际做项目的时候一定会遇到。如果你正在做类似的设计希望这些经验能帮你少走点弯路。最后分享一个提高调试效率的小技巧在程序里加一个**“调试模式”开关**打开后所有安全互锁暂时旁路方便单独测试每个动作。但切记这个开关只能在调试时用正式运行前必须关闭并且要在程序里加一个明显的报警提示。我一般会把这个开关做成需要输入密码才能激活防止误操作。