资讯详情

资讯详情

基于PLC的立体车库自动存取系统毕业设计全流程指南

去年帮几个学弟评估毕设选题的时候题目清单里躺着“基于PLC的立体车库自动存取系统设计”。说实话这个题目在PLC毕业设计里属于那种“看着经典、实际有点嚼头”的存在——你以为它只是一套电机正反转控制可真做下来要摸到的环节包括机械结构选型、PLC型号与I/O规划、存车取车的状态流转、防坠互锁安全逻辑、上位机监控画面、仿真调试最后还有一整本设计说明书要交。正因为环节多它才适合作为自动化、电气工程、计算机相关专业的毕业设计选题能拿得出手的东西多答辩时也有内容可讲。这篇文章就把做这个选题时的完整思路、选型依据、程序逻辑、调试坑点和文档写法整理出来给正在纠结或者已经开题的读者一份可以直接跟着往下走的参考。1. 题目拆解这个毕设到底在考察什么1.1 评审真正看重的能力维度我习惯把毕业设计当成一个小型工程项目来做。评审老师看你的源码之前先看的是系统设计文档、控制方案的逻辑合理性。以这个题目来说完整的交付物应该包括一套可运行的PLC控制程序、一份设计说明书通常就是LW文档、必要的电气原理图和接线图、以及答辩要用的PPT。很多同学只盯着源码把组态画面和安全互锁当加分项其实顺序反了。那些“看起来不起眼”的部分恰恰是拉开分数的地方。评审看重的不是你把梯形图写得多花哨而是你能否从需求出发把机械结构、传感器布局、电机驱动、逻辑保护和上位监控串成一个闭环。换句话说程序能跑起来不稀奇稀奇的是你能讲清楚为什么这样设计、紧急情况下怎么保证不出事。1.2 为什么首选升降横移式车库立体车库的结构类型有升降横移式、垂直循环式、巷道堆垛式和垂直升降式。毕设首选升降横移式理由很实在机械结构相对规整、控制逻辑能在有限I/O内表达完整、成本可控。拿常见的三层五车位布局举例。地面层设一个出入库位空位其余五个车位分布在二层和三层各载车板既能横移又能升降。控制上需要处理的运动机构不超过三五个电机不会因为I/O点数太多导致程序失控但又能把互锁、定位、防坠、占位检测这些核心逻辑全部覆盖到正好是“麻雀虽小五脏俱全”的标本。车库类型机械复杂度控制难度典型控制对象毕设适合程度升降横移式低中横移电机、升降电机、防坠电磁铁最推荐垂直循环式中高高主传动电机、定位编码器不推荐I/O多巷道堆垛式高高堆垛机三轴伺服成本太高垂直升降式中中高升降机横移台车可作为进阶1.3 系统总体架构与控制层级划分整个系统分三层。底层是执行机构升降电机、横移电机、防坠电磁铁和各类传感器中间层是PLC控制核心负责采集传感器状态、运行存取车流程、输出电机动作上层是监控系统通过工业以太网和PLC通信显示车位状态、报警信息并下发指令。每一层之间有明确的接口。传感器给PLC的是位置和状态信息PLC给执行机构的是经过安全逻辑运算后的动作指令上位机看到的是PLC程序里定义的共享数据块。这样划分之后后面写程序、写文档的思路都会清晰很多不至于做一步想一步。2. PLC选型与I/O点位硬件层必须提前定死2.1 PLC型号到底怎么挑毕设选PLC我建议优先看三件事学校实验室现有资源、资料丰富程度、仿真调试便利性。西门子S7-1200是目前最均衡的选择自带以太网口TIA Portal里能完成编程、仿真、监控一条龙网上中文教程多到看不完。如果学校传统是三菱FX5U或FX3U也完全够用三菱的步进指令很适合写这种顺序控制逻辑。国产汇川、信捷的PLC这两年也做得不错Codesys平台下还能顺手练一下IEC 61131-3的ST语言对找工作有加分。以S7-1200为例典型配置是CPU 1214C DC/DC/DC自带14个数字量输入、10个数字量输出如果I/O不够再扩展一块SM1223数字量模块。这类选型在文档里要写清楚依据输入点估算、输出点估算、系统扩展裕量。2.2 电机驱动与传感器选型立体车库的运动机构说白了就是“升降”和“横移”两个动作。模型级装置用直流减速电机加驱动器就够了真实车库级一般用三相异步电机配接触器实现正反转控制。接触器选型要注意线圈电压和PLC输出端口匹配S7-1200晶体管输出只能接DC 24V负载继电器输出才方便接AC 220V线圈。传感器是整个系统的眼睛。升降限位和横移限位用机械行程开关最稳妥成本低、抗干扰强载车板到位检测用电感式接近开关出入口的人车误入检测用对射式光电传感器。编码器在这个项目里不是必需品但如果有追求可以在升降电机上装一个旋转编码器做软定位和限位开关形成双保险。2.3 I/O点表设计与地址分配实例这部分是硬功夫。拿到题目第一件事不是写程序而是把所有输入输出列成一张表。表里每一项都要有注释说明它装在哪个位置、干什么用。下面是我给三层五车位做的精简版点位表类别地址示意名称作用输入I0.0升降上限位载车板上升到顶输入I0.1升降下限位载车板下降到出入口输入I0.2横移左限位横移到最左端输入I0.3横移右限位横移到最右端输入I0.4车位空位检测检测对应车位无车输入I0.5载车板到位检测载车板在目标车位就位输入I0.6防坠检测防坠挂钩处于闭锁状态输入I0.7急停按钮紧急停止输入I1.0人车误入检测出入口有人员进入输出Q0.0升降电机正转上升输出Q0.1升降电机反转下降输出Q0.2横移电机正转向左输出Q0.3横移电机反转向右输出Q0.4防坠电磁铁解锁动作输出Q0.5报警指示灯故障指示输出Q0.6蜂鸣器故障声音报警I/O地址一旦分配好后面写程序时全部用符号名引用不要直接写绝对地址。比如把I0.0定义成Up_Limit梯形图里阅读性立刻提升。这一步很多人嫌麻烦跳过结果程序写长了自己都看不懂调试时只能一个点位一个点位猜。3. 存车取车的核心控制逻辑从动作流程到程序落地3.1 存车流程的完整动作序列存车的核心问题不是“把车放上去”而是“怎么让目标车位的那块载车板到达出入口”。升降横移式车库没有电梯式的独立搬运器它靠的是让其他载车板让开通道。拿三层五车位举例用户按存车按钮系统自动扫描查找空车位如果空车位上方的载车板挡住了纵向通道先把上方的板横移让位目标载车板下降到出入口位置车辆驶入载车板出入口光电检测确认车辆停好系统把载车板升回原位车位状态置为“占用”。这个序列看起来简单但代码实现时要考虑每一步的完成条件。每走一步都要检查对应限位信号比如“下降到位”必须等升降下限位变成ON才算完成。不能用延时硬撑限位信号不到程序坚决不进入下一步。3.2 取车流程与最短路径决策取车比存车多一个环节要把指定车位上的载车板调度到出入口。调度策略最常见的是“就近调度”和“顺序调度”。作为毕设能做就近调度就已经很出彩了。比如二层某车位要取车系统先判断二层目标板下方有没有车挡住有的话让下方横移板先让位再把目标板降下来。取车动作序列大致是用户输入车位号触摸屏或者按钮编码核对车位状态如果该车位本来就是空位直接提示无效操作执行让位逻辑把阻挡目标板下降路径的其他板横移开目标载车板下降到出入口车辆驶出出入口光电检测确认车辆离开载车板升回原位车位状态置为“空”。3.3 状态机思路在PLC程序中的落地顺序控制最怕的是“一个按钮下去所有电机一起动”。正确做法是在程序里建立一个状态字每个状态用一个M继电器表示比如M10.0 空闲状态M10.1 自动存车状态M10.2 自动取车状态M10.3 复位状态M11.0 故障停止状态程序只允许一个状态位为ON每个状态位都对应一段完整的动作序列。只有当前状态的所有动作完成才会复位当前状态位、置位下一个状态位。用西门子S7-1200时我习惯用SCL语言实现这个逻辑结构比梯形图清晰得多。下面是一段示意IF #State_Idle AND #Start_Store THEN #State_Idle : FALSE; #State_Store : TRUE; END_IF; // 存车状态下的第一步查找空位并启动调度 IF #State_Store AND #Empty_Slot_Found THEN #Select_Target : TRUE; // 根据空位位置决定下一步动作 END_IF;实际工程中不会用这么简化的代码但思想是一致的状态驱动动作动作反馈作为转移条件。这种写法最大的好处是调试方便。程序出问题时看哪个状态位卡住直接定位到对应的动作序列不用在几百行梯形图里翻来翻去。这也是答辩时能拿出来讲的“设计亮点”。4. 防坠、互锁、误入检测立体车库的安全闭环设计4.1 正反转互锁与越位保护电机正反转控制是立体车库最基础也最容易出事的环节。硬件上接触器要加机械互锁防止两个接触器同时吸合造成相间短路程序里还必须加软件互锁输出Q0.0为ON时一定要把Q0.1强制置OFF。我见过不少同学只在硬件上做互锁结果程序同时输出正转和反转指令接触器即便被机械互锁挡住也算一个明显的设计缺陷。越位保护同样重要。如果升降电机运行超过设定时间还没碰到限位说明传感器故障或者机构卡死这时不能傻等必须在程序里加定时器动作超时立即停止输出并报警。4.2 防坠装置的控制时序立体车库载车板升到二层或三层后下方是悬空的一旦钢丝绳或链条断裂后果很严重。所以机械上必须有防坠挂钩车辆升降到位后挂钩自动闭锁。PLC要做的就是检测挂钩闭锁状态确认闭锁后才允许升降电机的抱闸释放需要移动载车板时先给防坠电磁铁通电确认挂钩解锁到位才允许电机动作。电气连锁顺序用一句话概括就是解锁不到位不能动闭锁不到位不能停。这个逻辑在梯形图里要用两个条件串联防坠检测信号和限位信号同时满足才能进入下一步。4.3 急停、误入检测与报警复位急停按钮必须接硬件回路直接切断主接触器控制电源不能只靠程序处理。这是安全回路的基本原则急停是“硬切断”不是“软处理”。程序里可以做急停后的状态锁定急停复位后系统默认进入复位流程所有机构先回到安全位再允许下一次自动操作。误入检测也要讲联动逻辑。出入口的对射光电一旦检测到人或车还在通道内升降和横移动作都必须暂停。我通常把这类信号编成“暂停条件”而不是“故障条件”。人员离开后系统可以自动继续避免动不动就要人工复位。真正的故障条件是限位失效、超时、电机过流这些硬性问题。5. 上位监控与通信对接让车位状态在画面上动起来5.1 通信协议选哪种从Modbus TCP到OPC UA立体车库光有PLC还不算完整上位监控画面是文档和答辩里的重头戏。S7-1200自带以太网口用组态王或者WinCC做画面都很方便。通信方式主要有两条路一是直接用西门子S7协议组态王通过“S7-1200 TCP”驱动直接读写PLC变量二是把PLC当Modbus TCP服务器上位机走Modbus协议读写寄存器。前者配置简单后者通用性强。如果选题里要求体现“信息化”和“数据集成”可以再往上走一层把PLC的OPC UA服务器功能打开用UA Expert或自写的小工具读数据。OPC UA的好处是跨平台、跨厂商将来对接MES或者云平台都顺理成章。作为毕业设计哪怕只把OPC UA客户端和PLC连起来读几个变量写到论文里都是实打实的亮点。5.2 组态画面的设计与变量绑定画面设计建议按三个层次来做总览画面显示整个车库的俯视图每个车位用色块表示绿色为空位、红色为占用、黄色为运动中操作画面放存车、取车、车位选择按钮和当前状态信息报警画面列出故障点位、故障时间、复位按钮。变量绑定是最容易翻车的地方。组态软件里的变量要和PLC程序里的符号名一一对应连接不通或者掉线时先查IP地址、再查变量名拼写、最后查PLC侧有没有把变量的访问权限放开。我在组态王里绑定过几百个变量经验是变量表先在Excel里排好再导入组态软件比在界面里一个个敲快得多还能避免拼写错误。5.3 我实际踩过的几个通信坑先说最经典的一个PLC侧程序正常运行但上位机显示“通讯失败”。排查一圈后发现是PLC里组态了安全隔离功能而且没有激活“允许来自通信模块的PUT/GET访问”。在TIA Portal的“防护与安全”里把“允许与HMI/OPC UA进行通信”勾上问题立刻消失。另一个坑是PLCSIM仿真时和组态软件连不上。这里要分清两个软件PLCSIM只能模拟PLC逻辑对组态软件的支持有限PLCSIM Advanced是可以创建虚拟PLC实例、通过虚拟网卡和外部SCADA通信的。毕设里如果必须演示上位机和PLC联动优先用PLCSIM Advanced但注意它的版本要和TIA Portal严格匹配V16装不了V17的仿真软件。6. 仿真调试、实物验收与设计说明书的写作顺序6.1 仿真软件启动失败的排查思路“PLCSIM启动不了也没有报错信息”——这是评论区里反复出现的高频问题我在自带的两台电脑上分别遇到过。排查思路按顺序来版本匹配问题。TIA Portal V16装PLCSIM V15十有八九打不开。卸载重装前先确认版本号完全一致安装顺序。正确顺序是先装TIA Portal再装对应的PLCSIM。装反了即使软件能打开仿真时也会找不到内核权限问题。右键以管理员身份运行TIA Portal和PLCSIMWindows用户账户控制经常静默拦截仿真器的底层服务授权问题。打开Automation License Manager确认PLCSIM的许可证状态授权过期或没激活时仿真器可能表现为“启动了但没反应”换PLCSIM Advanced时注意虚拟以太网适配器。控制面板里能看到“Siemens PLCSIM Virtual Ethernet Adapter”是否正常没有它虚拟PLC实例起不来。6.2 实物接线与手动调试的顺序有条件做实物装置的我建议严格按“先手动、后自动”的顺序验收。第一步对照I/O点表逐点测试。用万用表确认每个传感器接线的信号状态给PLC强制输出观察每个接触器和电磁铁的动作。第二步做单机构测试。升降电机单独上升、下降横移电机单独向左、向右确认方向正确后再测限位信号的停位效果。第三步做安全测试。模拟限位失效、急停按下、人员进入出入口确认系统都能按设计逻辑响应。这个顺序由浅入深每一步都能独立验证出问题不会扯成一团。电气接线最容易出幺蛾子的地方就两点24V电源正负极接反、传感器输出类型和PLC输入公共端不匹配。接线前先把每类传感器的接线图打印出来对着图接省很多返工时间。6.3 设计说明书的写作顺序与内容骨架LW文档和大程序一样不能从头写到尾。我的建议是先列提纲、再做表格、再画图、最后填充文字。文档骨架可以按下面这个顺序搭摘要和关键词最后再写先给程序跑通后得出的结论需求分析写清楚要解决什么问题、功能需求和非功能需求总体方案设计放系统架构框图、控制方案对比硬件设计放PLC选型依据、I/O分配表、电气原理图软件设计放程序结构图、状态转移图、核心逻辑说明上位机监控设计放画面截图、通信配置步骤系统调试与结果分析放调试记录、问题与解决方法总结与展望。写文档的通用技巧是图表先行。I/O表、流程图、时序图、实物照片这些内容占到位文字只需要把图表的逻辑讲明白就行。最不好的写法是把整个程序贴进论文纯凑字数评审一眼就能看出来。7. 答辩高频追问这些问题答不上来会扣大分答辩环节老师不问你怎么写梯形图问的都是“为什么”和“如果”。我整理了几个高频追问每个都能在十几秒内答到点上。第一个追问为什么选这个型号的PLC答的时候要落在I/O点数、通信接口、开发环境、成本四点上说“实验室有这个”不算有效答案。第二个追问I/O点数是怎么确定的把点位表亮出来说输入包括哪几类传感器、输出包括哪几类执行机构预留百分之多少的扩展裕量。第三个追问正反转互锁在程序里怎么实现的讲清楚硬件互锁和软件互锁双层保障顺便提一句定时超时保护。第四个追问如果升降电机运行过程中卡住系统怎么处理答超时检测动作超过设定时间未到位立即切断输出、置故障位、报警提示人工介入。第五个追问车位状态检测用的是哪种传感器为什么选它备选答案电感式接近开关因为金属载车板靠近时信号稳定不怕油污灰尘价格低寿命长。第六个追问如果上位机通信断了系统能不能继续工作能。PLC程序独立运行上位机只是监控层不参与核心安全逻辑。第七个追问你这个设计的扩展方向是什么往大了说可以接车牌识别、云端管理、移动端预约取车往实了说可以增加变频调速让升降启停更平稳。多说一句我自己的习惯无论程序还是文档所有命名从头到尾保持一致。比如“升降电机上升”在程序里是Lift_Up图里和文档里就永远叫“升降电机上升”谁来看都能对上号。这听起来是小事但每次答辩被问到细节时你能第一时间找到一个具体点位说明问题比现场翻图纸翻半天来得有说服力得多。这个题目能做到什么程度完全取决于你愿不愿意把每一层都想明白。机械结构是载体PLC是核心安全是底线文档是表达。把这四条串通源码和LW文档自然就是顺带手的事。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →