恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
基于PLC的立体车库自动存取系统:从硬件选型到调试全解析
首页
资讯中心
/
基于PLC的立体车库自动存取系统:从硬件选型到调试全解析
基于PLC的立体车库自动存取系统:从硬件选型到调试全解析
发布时间:2026/10/3 19:37:48
1. 项目的三板斧这套立体车库系统到底在做什么1.1 为什么毕业设计选PLC而不是单片机很多学生拿到基于PLC的立体车库自动存取系统设计这个题目第一反应是想这个东西用单片机做不是更简单吗51单片机、STM32便宜又灵活网上教程一抓一大把为什么偏要上PLC我用一个我曾辅导过的学生案例说。他最初想用STM32模拟一个立体车库模型功能全做出来了但答辩的时候被老师问了几个问题工业现场抗干扰怎么保证梯形图程序在哪你的系统怎么跟组态软件联调一问一个不吭声。不是他做得差而是题目叫基于PLC评审老师默认你要体现PLC方案的价值——可编程逻辑控制器强在稳定、强在可视化、强在工业现场规范。PLC在这个项目里的位置打个比方它就像一个车间的老班长认死理、按流程走、出了故障立刻报警虽然不花哨但可靠。单片机更像是个聪明但毛躁的年轻人功能强大可一到震动、干扰、高温的环境就状态不稳。立体车库这种设备电机频繁启停接触器吸合释放如果没有PLC这种抗干扰能力和互锁保护系统早乱了。另外一个现实原因是PLC方案在毕设答辩中的成功率确实更高。梯形图程序、I/O分配表、接线图、组态监控画面每一项都是评委会看、会问、会给分的点。你用单片机程序写在C文件里老师没法直观看到控制逻辑你用PLC打开GX Works或者STEP 7梯形图一页一页展开存车流程、取车流程、互锁条件一目了然。1.2 升降横移式这个结构选得聪明立体车库的机械结构有很多种升降横移式、垂直升降式、巷道堆垛式、平面移动式。毕设题目里最常见的是升降横移式没有之一。为什么因为这个结构刚好踩在所有加分点上。先把这个结构的逻辑讲透。升降横移式车库我习惯用格子滑板来理解每一层都有一排车位每个车位上有一块载车板。底层车位能横向移动上面几层能升降。存车的时候系统先把目标车位下方腾空然后把载车板降下来等车开上去之后再把板升回原位。取车的逻辑反过来。以3×3的车库为例底层有3个车位2层有2个可用车位因为自动存取需要留一个空位给底层横移3层只有1个可用车位。听起来车位利用率好像不高但你细品实际存车数量是下面横移层加上面升降层的组合。这种结构最大的好处是——机械装置只需要两类动作横向平移和垂直升降。对应的控制对象就两种电机控制逻辑的复杂度被控制在一个既能展示水平、又不会把自己写死的范围。我见过不少学生一上来就想搞垂直升降式也就是一个升降平台加一个机械手叉臂看起来高级实际做起来定位精度、防摆控制、机械结构加工哪个都是大坑。毕设是在有限时间内做出一个能稳定演示的系统不是搞科研样机。升降横移式机构和控制都成熟视频资料多出问题的概率低这就是聪明的地方。1.3 存车和取车完整流程拆给你看不要一上来就写梯形图先把流程想清楚。我习惯用两条时间线来描述这套系统的工作过程。存车的完整链路系统空闲→用户按下存车按钮或者刷卡/扫码→PLC扫描车位状态表找出一个空车位→如果目标车位下方被占底层横移电机先动作把障碍车位挪开→提升电机启动把空载车板降到底层→PLC通过限位开关确认载车板到位亮起请驶入指示灯→用户把车开上去→红外/光电传感器检测到车已停稳→PLC再次启动提升电机把载车板升回原来的层→系统更新车位状态表存车完成。取车的完整链路用户输入车位号比如203表示2层3号位→PLC解析车位号→底层横移机构腾出通道→提升电机把载车板连同车降到底层→载车板到位指示灯提示用户驶出→传感器检测到车已离开→载车板归位→车位状态表清空取车完成。这两条链路中暗藏了三个所有PLC项目通用的核心要素。第一是状态判断系统每走一步都要确认我到底到没到位靠的全是传感器信号。第二是互锁保护电机正反转不能同时动作载车板上有车的时候升降电机不能空转。第三是异常处理任何一个环节卡住系统必须停下来报警而不是傻乎乎地继续执行。这个流程不仅用于写控制逻辑也是论文里软硬件设计章节的骨架。很多同学的论文看起来空洞就是因为没有把流程写具体通篇只有一个大框。2. 硬件选型与I/O规划先把地基打牢后面不返工2.1 主控选型三菱FX3U还是西门子S7-200 SMART毕业设计选PLC型号我的建议很简单你学校实验室用哪个你就选哪个不用纠结性能。如果非要给一个推荐我建议多数人用三菱FX3U或者FX3G系列占市场保有量的大头配套教材多网上案例多得吓人。另外一个选项是西门子S7-200 SMART它自带以太网口在做上位机组态的时候可以用S7协议和触摸屏通信调试方便程度比RS485线的方案舒服不少。一个容易被忽略的选型思路是看你的库房和实验室有什么周边设备。学校如果有一堆旧的三菱FX系列那就选三菱接线端子、扩展模块、编程线缆都能借到。S7-200 SMART虽然新但如果你需要给PLC程序截图写论文界面确实更现代而且它的仿真和调试功能对新手更友好。型号定了就别再换。我见过一个学生程序写了一半发现实验室没有对应编程线临时换型号I/O分配、程序结构全部推倒重来多花了整整一周时间。选型这件事稳比新更重要。另外要注意实物PLC如果太旧固件版本低可能不支持你电脑上的编程软件版本这个在下载程序之前先确认一遍。2.2 I/O点数怎么规划一张表说清楚我按一个两层两列的小型升降横移车库模型来规划实际毕设中常见规模给出的一份典型I/O分配表PLC地址信号名称类型作用说明X0急停按钮输入常闭触点串联在所有输出回路中紧急情况下切断全部动力X1自动/手动切换输入手动模式用于调试自动模式用于演示X2存车请求按钮输入触发存车流程X3取车确认按钮输入取车流程的第一步确认X4车位1下层左检测输入接近开关/光电开关判断是否已有车X5车位2下层右检测输入同上X6车位3上层左检测输入同上X7车位4上层右检测输入同上X10提升电机上限位输入行程开关检测载车板是否升到顶X11提升电机下限位输入行程开关检测载车板是否降到底X12横移机构左限位输入检测横移支架是否左移到位X13横移机构右限位输入检测横移支架是否右移到位X14载车板有车检测输入光电传感器确认车辆是否上/下载车板Y0提升电机正转输出上升动作通过继电器/接触器控制Y1提升电机反转输出下降动作Y2横移电机正转输出左移动作Y3横移电机反转输出右移动作Y4运行状态指示灯输出绿灯表示系统空闲可操作Y5报警蜂鸣器/红灯输出故障报警Y6请驶入指示输出提示车主把车开上载车板这样算下来输入14点、输出7点一台FX3U-32MR16入16出刚好覆盖还留了2个输入和9个输出的余量。千万别卡着点数上限选PLC一定要预留15%~20%的余量否则调试时想加一个急停回路或者一个传感器只能干瞪眼。如果做的是3层3列甚至更大的车库I/O估算方法一样输入按钮数传感器数限位数输出电机控制数指示灯数报警数。把这两个数算清楚再选机型比到时候手忙脚乱扩模块靠谱得多。2.3 传感器选型和安装别在这省钱传感器是PLC的眼睛这话真不是白说的而且这个位置恰恰是很多毕设翻车的重灾区。有车检测推荐用光电传感器或者接近开关。在模型车库上接近开关用得更普遍因为它体积小、接线简单、检测金属物体。实物车库的话用光电对射或者超声波更贴合实际但这里要提醒一下安全第一实物场景建议在地面划出车辆到位标志不能用传感器直接测量人体。限位开关也就是行程开关用来确定载车板升降和横移的物理到位。安装位置很关键不是随便装在框架上就行要装在运动的极限位置工作到位位置两个点。什么意思就是载车板不仅需要一个降到最底不许再降的保护限位还需要一个降到取车高度刚好到位的工作限位。这两个信号在程序里的用途完全不同一个是保护条件一个是流程推进条件混在一起写程序逻辑就会乱掉。我踩过一个很具体的坑某个学生把上下限位开关装在同一个导轨的两端结果载车板升降的中途状态完全没有传感器反馈程序只能靠时间来判断应该到位了——这种时间推断极其不靠谱电机老化了、阻力大了到位时间会漂移写着写着就出事故。正确的做法是除了极限保护每个工作位置都要有独立的检测点。模型级项目直流减速电机继电器或者L298N驱动模块是标配注意电机驱动电源和PLC电源要完全分开共用一个电源时电机一启动PLC就经常莫名其妙复位。实物级的工业系统用的是三相异步电机接触器电气上更复杂但这个选题下大多数学校用模型就足够支撑论文了。3. 控制程序与上位机让车库会思考的代码长什么样3.1 梯形图程序结构按这三个层次搭写PLC程序很多新手上来就从头写到底最后整出一个几百行的大杂烩看着眼花改起来更崩溃。正确思路是分层次组织即使是用梯形图也要有模块化的思想。我的建议是把程序拆成四块。第一块是初始化程序PLC上电后执行一次完成车位状态表清零、所有输出复位、系统进入空闲状态。这一步不能省否则一个意外停电再上电系统可能顶着上次的半截状态继续运行。第二块是主控流程对应存车和取车的状态机。这一块用步进指令来写最清晰每执行完一个动作根据到位信号跳转下一状态。三菱的步进梯形图指令每个状态就是一个Step状态转移条件就是传感器信号直观又好调试。第三块是手动调试程序通过手动模式下按不同的按钮分别控制升降电机和横移电机动作。这块别觉得多余它在硬件调试阶段是最重要的传感器有没有装歪电机转向对不对全部靠手动模式先验证一遍才敢上自动流程。第四块是报警与互锁处理。急停、上下极限、电机过载这些条件用常闭触点串联在输出回路中保证任何异常出现的第一时间切断输出。同时程序里也要做软件互锁比如Y0和Y1绝对不能同时为ON即使在梯形图里忘了写互锁电气回路里还要再放一层接触器互锁。这就是常说的双重保护。我用一个简洁的流程来描述自动模式下的主控循环上电初始化→空闲等待指令→判断存车/取车→执行对应流程每一步都要等待位确认→完成后复位流程变量→回到空闲。每一步的等待位确认就是读取对应限位开关或者传感器信号信号没到程序就停在那里而不是靠延时猜过去。3.2 车位管理编号、状态表、空位搜索的逻辑立体车库的核心除了动作控制还有数据管理就是跟踪每个车位到底是空还是有车。这部分用PLC的寄存器写逻辑并不复杂但要想清楚。先定义车位编号。假设车库是3层3列我习惯用两位编码第一位表示层第二位表示列。比如12就是1层2列23就是2层3列。用一个数据寄存器D0来管理车位状态每一位对应一个车位0表示空1表示有车。这样PLC在搜索空位的时候直接按位运算就能快速得到一个空车位的编号。车位实际数量这个概念要拎清楚。升降横移式有一个强制规则升降动作的位置必须留一个空位给载车板周转所以并不是所有格子都能存车。这会导致顶层有效车位数量比底层少。写论文的时候把这个约束写清楚不仅显得你懂还能让答辩老师知道你是真正理解了机械结构和控制需求的关系。第二个要注意的数据关联点是车位的物理位置坐标。PLC执行存车动作时要知道目标车位在哪个层、哪个列也就是编号拆成层和列两个数字。层决定升降电机动作列决定横移电机动作。这两个动作是有时序的不能同时乱动作必须由流程状态机控制如果目标车位和当前空位不在同一列先横移腾道再升降到位。3.3 电机控制的几个细节老手和新手的分水岭电机控制部分的代码最能看出一个人是真正调试过还是在瞎写。第一正反转切换必须有延时不能直接从一个方向跳到另一个方向。电机在高速旋转时瞬间反向电流冲击极大继电器触点很容易打火烧蚀。我通常会在程序里加一个0.5~1秒的延时状态先停再启动反向动作。这个在实物上叫电机换向安全延时在论文里可以写答辩时候加一句为了避免反接制动电流冲击老师对你的加分是肉眼可见的。第二到位信号要加去抖逻辑不能直接用一个裸的限位信号做跳变触发。限位开关的动作过程会有机械抖动第一次碰到、弹开、再次碰到可能连续产生几个脉冲。用定时器做一个50ms~100ms的稳定区间判断确认信号持续稳定后再认为到位从此传感器误触发少一大半。第三输出触点驱动的不是电机而是继电器/接触器的线圈这是最容易被忽略的接线知识。PLC输出端的容量驱动指示灯和蜂鸣器没问题直接驱动接触器线圈就可能烧输出端子。中间加一层继电器隔离PLC端子只控制继电器线圈继电器触点再控制接触器接触器主触点再控制电机。层层隔离安全性完全不同。3.4 触摸屏和组态上位机负责让老师说不错毕设的系统要演示给老师看光有PLC和一堆指示灯是不够的。一个漂亮的监控界面能让演示效果上一个台阶。实际操作中有两个方案可选。第一个方案是接一块触摸屏比如MCGS昆仑通态、威纶通触摸屏跟PLC通过串口或者以太网通信。界面上画一个车库的俯视图每个车位格子里用一个色块表示空/有车下方放存车取车按钮和一个车位号输入框。存车流程开始后界面上的小车图标跟着流程移动数据变化、传感器信号状态全部可视。现场演示效果特别直观。第二个方案是用组态软件在电脑上做监控界面组态王、WinCC、LabVIEW都行。这个的好处是写论文的时候截图方便还能顺手把报警记录、数据曲线导出来放论文里当图表素材。不论哪个方案有一个通信参数要提前约定好那就是站号、波特率、数据格式。PLC这边设置和触摸屏那边设置要完全一致否则通信连不上。我记得有学生调试了一下午最后发现是PLC的通信端口地址设成了站号0而触摸屏对面配置的站号是1两边互相看不见。先把通信参数表核对一轮能省掉很多无意义的时间消耗。这里有点要补充真正做工业项目时用OPC UA协议把PLC和上位机做数据通信越来越普遍。论文中可以把Modbus RTU/OPC UA两种方案都提一下作为扩展对比内容更有层次但程序主体不用动。4. 源码交付与LW文档怎么把手里的东西变成能过答辩的成果4.1 源码包的目录结构老师一眼看明白是加分项毕设的交付物从来不只是程序能跑而是源码LW文档打包成完整成果。我在项目交付时要求结构一定要清爽03_立体车库PLC控制系统/ 1_PLC程序/ FX3U_garage.gxw PLC工程文件用GX Works打开 程序注释说明.txt 2_组态工程/ MCGS_touchscreen.mcg 触摸屏工程 画面设计说明.docx 3_仿真与演示/ 调试录像.mp4 运行截图/ 4_论文文档/ 毕业设计论文.docx 答辩PPT.pptx这个结构有个好处PLC工程是主程序组态工程是辅助界面仿真演示是证明程序真的跑起来了论文文档是理论设计依据四个文件夹覆盖了毕设评审中老师主要看的四个方面。不少同学最后的交付物是一堆散乱的文件PLC程序一个文件夹论文一个单独的没编号的文件截图插在word里视频没有。老师想看的时候要自己翻找体验很差。把目录规范好就是告诉老师一个信息这个学生是懂项目管理的。4.2 论文LW文档怎么写每章该写多少字都给你列好LW文档也就是LunWen文档毕业设计里它是主角。很多学生程序做完了却不知道该写什么。我基于指导经验给一个普遍的章节字数参考章节建议字数核心内容摘要300~500项目背景一段、系统方案一段、成果总结一段第1章 绪论1500立体车位的背景与意义、国内外现状、论文主要工作第2章 系统总体方案设计1500机械结构选型、控制方案选型、PLC选型理由、I/O总体规划第3章 硬件设计2000接线图、元件选型、电气原理图、安全保护设计第4章 软件设计3500程序结构、I/O分配表、控制流程图、关键梯形图分析、触摸屏画面设计第5章 系统调试与运行1500调试步骤、遇到的问题和解决方案、运行效果验证第6章 总结与展望800总结已完成工作和不足、改进方向参考文献20篇含期刊论文、教材、设计手册需要提醒的是每个学校的论文模板不一样打印要求、各部分顺序可能不同先到学院拿一份最新的写作规范跟着模板框架来。论文中最有价值的内容是第3章和第4章。硬件设计不要只写一个清单要把电气原理图画出来哪怕是用CAD或者其他工具画的简化图也要有一张能让老师看懂的图。软件设计里每个关键流程存车、取车、报警管理最好各画一张流程图再配一段梯形图截图做分析。4.3 答辩十个高频问题提前准备好不会翻车我经常问毕设学生十个问题答好了就直接过了PLC为什么比单片机更适合工业控制现场——从抗干扰、可靠性、程序可读性、维护性来回答。你的I/O点是怎么算出来的——说出输入输出各有哪些信号还要留了多少余量。系统在存取车过程中的安全保护措施有哪些——急停、电机换向延时、正反转互锁、极限限位、软件互锁。如果存车过程中提升电机卡住系统怎么处理——超时判断加报警停机。如果你的程序没有超时设计现在就去补一个。这是万能答案。车位状态表存在哪里怎么做到掉电不丢失——存在PLC的保持型寄存器或者用断电保持数据区并在论文里说明。为什么选升降横移式而不是其他结构——成本低、结构成熟、控制典型、占地要求低。触摸屏怎么和PLC通信——说清楚协议、通信参数、数据映射方式。系统有哪些扩展空间——加车牌识别、语音提示、APP远程查看、可视化调度算法等。你的程序有多少步每个子程序的作用是什么——要把项目结构背下来防止老师细问。调试中遇到的最大困难是什么——挑一个传感器干扰或通信问题的案例完整说出排查过程。5. 调试实录那些踩过的坑和排查套路5.1 六个高频故障按症状、原因、解法给你列全调试阶段的挫折感是真实的聪明的项目设计者都会提前准备一份故障排查表。下面是六个我亲身经历过的高频故障写成症状原因解法的形式故障1程序下载不进去。现象是GX Works提示通信失败。常见原因是COM口驱动没装对或者编程电缆要选MITSUBISHI FX-USB-AW驱动模式。另一个坑是PLC型号选错了软件里选成FX3U但实际是FX3G会报CPU型号不匹配。排查思路先看设备管理器里USB转串口芯片是什么型号装对应驱动再看软件中PLC型号是否和面板完全一致。故障2到位传感器信号忽有忽无。现象是程序走到某一步突然停住状态不跳转。原因是限位开关安装位置有松动或者有外界信号干扰。解法先用手去按压开关观察输入指示灯是否稳定如果指示灯闪说明机械位置问题如果不闪可能就是接线松动或者传感器坏了。这种故障十有八九是机械安装问题不是程序问题别一上来就怀疑程序。故障3电机不停到位后还继续转。这是最危险的故障。常见原因是限位开关的常开常闭接法搞反了程序以为没到位就一直输出。排查方法先看PLC输入指示灯载车板到顶时限位指示灯是否点亮。如果没亮把行程开关接线重新调整。之前有个学生接的是常开触点结果行程杆一压反而断开逻辑全部反了差点把模型电机烧掉。故障4触摸屏能连上PLC但数据不刷新。现象是通信状态显示正常但是车位的状态数据一直是初始值。原因通常是寄存器地址映射不一致。触摸屏里的编辑框关联的地址和PLC里实际存储的地址对不上或者是数据格式不一致。解法把屏幕上的每个变量地址和PLC软元件编号一一对照写成表格贴在本子上调试的时候能少掉一大半头发。故障5急停按下后重新启动系统不恢复。现象是急停复位后PLC恢复了但整个自动流程卡死。原因是急停后程序的步进状态没有回到初始化状态。解法急停回路设计时要让复位操作触发一次初始化流程把所有的步进状态寄存器清零让系统从头开始跑而不是试图从上次断点继续。这点在论文中写出来会特别加分。故障6继电器烧蚀快触点发黑。现象是继电器用一段时间就不行了或者PLC输出点烧了。原因是驱动的感性负载没加续流保护开关频率太高。解法给继电器线圈并联一个续流二极管触点加RC灭弧吸收回路。这是电工基本操作很多学生会在这里栽跟头。5.2 调试的通用方法论先手动后自动先单步后联调所有PLC项目的调试都有一个万用流程先手动后自动先硬件后软件先单步后连续。我在调试每个车库项目时管线基本是这样第一步空载手动测试。直接把PLC切到手动模式分别操作四个输出点确认提升电机正转是上升、反转是下降横移电机正转是左移、反转是右移错了就交换两根电机线。同时把所有限位开关按压一遍确认对应的输入点全部能反馈。第二步手动逻辑验证。程序中的手动子程序跑通了载车板能上下、横移能左右且限位保护都生效再进行下一步。第三步自动流程单步验证。将自动程序的运行速度放慢通过调试模式下强制赋值状态寄存器手工跳转每个状态确认每个状态的进出条件和输出动作都正确。这一步最耗时间但也是出成果的关键所有不确定的细节都在这里暴露。第四步连续自动循环测试。让系统连续存车取车10次以上观察是否有偶发性问题比如偶发的传感器丢失、偶发的互锁异常。如果连续运行稳定再接入触摸屏一起测通信。第五步故障模拟测试。人为制造一些异常比如按急停、挡住传感器、卡住电机确认系统的报警机制和复位机制正常。这一部分是最能体现工程思维的部分也是答辩老师喜欢追问的部分。我多说一句关于调试记录的习惯每次遇到问题不仅在程序里改掉还要在调试记录中登记现象是什么、排查思路是什么、最终原因是什么、解决办法是什么。这份调试记录最后整理出来会成为论文里第5章系统调试的素材而且老师一看就知道这个项目是自己一步步调出来的不是网上扒的。个人体会毕设交付之外这套系统还能往下深挖什么做完这套基于PLC的立体车库自动存取系统我个人的最大收获其实不是那几页梯形图而是整个过程中被逼着养成的把大问题拆成小步骤的思考习惯。车库本身是一个机械、电气、软件、通信交叉的系统任何一个环节掉链子整个演示就黄了所以你必须学会一套从具体故障现象倒推到根本原因的排查方法。这套方法放到任何工程岗位上都通用。最后再分享一个小技巧如果你还有精力在系统后添加一个超时保护机制也就是程序里定义一个最长的动作时间比如升降电机运行超过15秒仍没碰到位信号立刻切断输出并报警。这个功能麻雀虽小却是整个系统从能跑跨到安全可靠的关键分水岭论文里写一笔、答辩时讲两句老师基本都会满意。