1. 项目概述:这题为什么值得做,以及你真正要交的是什么
如果你是自动化、电气工程或者计算机专业的学生,正在为毕业设计选题发愁,那“基于PLC的立体车库自动存取系统设计”这题,十有八九已经在你电脑的选题列表里躺了很久。这题目看起来老生常谈,但每年都有大量学生选它,原因很简单:它横跨了PLC编程、传感器检测、电机控制、组态监控、机械结构理解等多个方向,既能展示硬件动手能力,又能体现软件逻辑思维,属于典型的“一个题目撑起整篇论文”的类型。更关键的是,立体车库本身是真实存在于城市生活里的设备,你做的东西不是纯虚拟的玩具,这让答辩时“这东西有什么应用价值”这个问题非常好回答。
但很多同学拿到这个题目后,第一反应是去搜现成的源码和文档,下载下来改个名字就往上交。如果你只是想要个能交差的材料,那确实能找到一大堆。但如果你想在答辩时能讲清楚、能回答老师的追问,或者你其实是想通过这个设计真正搞懂一套自动化系统的完整设计流程,那这篇文章就是按这个标准来写的。
我打算从几个层面帮你把这件事捋清楚。第一,这个系统到底由哪些部分组成,每个部分解决什么问题,这是所有设计文档的灵魂。第二,PLC的程序逻辑怎么设计,这决定了你的系统是不是真的“能跑”。第三,上位的监控和调度怎么处理,这是很多人容易敷衍的地方,但恰恰是拿高分的地方。第四,也是你最关心的,就是那些别人文档里不会写明白的坑——比如传感器抖动、硬件选型踩雷、通信不稳定、程序仿真和实物运行的差异。这些内容我会用实际调试中遇到的问题来讲,而不是给你堆一堆理论名词。
另外要说明一点,本文会结合目前市场上主流的PLC品牌来讲,比如西门子S7-200 SMART和三菱FX系列,这两个是学生在毕业设计里用得最多的,资料好找,软件破解方便(当然我还是建议你用正版),而且网上教程质量也高。至于那些相对冷门或者只在个别学校实验室里才有的设备,我不会花太多篇幅去讲,因为对大多数人来说参考价值不大。
在开始拆解之前,先把这题的核心脉络理清楚。立体车库自动存取系统,本质上是一套“人机交互-逻辑运算-执行机构-状态反馈”的闭环控制系统。用户通过操作面板或者上位机软件下达“我要取某个车位的车”的指令,PLC接收到指令后,先判断这个指令合不合法、当前设备状态允不允许执行,然后按照预设的运动逻辑,控制升降电机、横移电机、载车板锁紧机构等一系列执行元件动作,同时通过传感器实时检测车位有没有车、设备有没有到位、有没有人误入危险区域,最终把车平稳地送进或者送出车位。整个过程里,PLC扮演的是大脑的角色,而传感器是眼睛,电机和机械结构是手脚。
所以你在写文档的时候,不要一上来就写“PLC是核心控制器件”这种废话,而是要把这个系统拆成信号采集层、逻辑控制层、执行驱动层、人机交互层四个层面,每一层选什么器件、为什么这样选、层与层之间怎么衔接,这些才是论文里真正值钱的内容。
2. 系统总体架构:先把“车怎么停进去再取出来”这件事想明白
2.1 立体车库的几种常见结构,你该选哪一种
在动手画框架图之前,你得先弄清楚一件事:你设计的是哪种类型的立体车库。不同类型的车库,PLC程序逻辑完全不同,不要一上来就套网上的模板。目前毕业设计里最常出现的三种结构是升降横移类、垂直循环类和巷道堆垛类,它们各有各的优缺点,我一个个说。
升降横移类是目前市面上商业运营里最常见的,也是毕业设计里最好写的。它的原理是每一层有若干车位,一层有一个空位,要取某个车位时,通过横移和升降把空位移到目标车位旁边,然后车辆横向移动到空位,再整体升降到出口层。这类车库的优点是结构简单、成本低、安装灵活,缺点是存取车效率一般,而且每次存取都需要“腾位置”,逻辑上涉及多个电机的联动。
垂直循环类就像一个大摩天轮,车辆固定在载车板上,通过链条带动整个循环转动,把目标车位转到最底层出入口。这种车库占地面积小,但对机械强度要求高,而且一旦链条故障,整个车库就瘫痪了。它的PLC控制逻辑相对简单,主要是定位和停止的准确性,但是因为涉及连续运转,对变频器和制动器的配合要求比较高。
巷道堆垛类常见于大型公共停车场,中间是一条巷道,堆垛机在巷道里移动,把车放进两边的车位。这种系统效率高、自动化程度高,但投资大,控制逻辑也最复杂,涉及三维坐标定位,通常要配合编码器、伺服或者变频电机使用。一般本科毕业设计选这种的较少,因为工作量确实大,但如果你本身对定位算法有兴趣,这反而是一个出彩的方向。
我的建议是选升降横移类,尤其是两层三列或者三层两列这种规模适中的方案。原因有几个:第一,控制对象数量适中,既不会因为电机太多导致IO点表爆炸,也不会因为结构太简单让论文看起来没内容;第二,它的运行流程最贴近真实的商用立体车库,答辩时老师问工业应用场景,你有的说;第三,仿真模拟和实物搭建的难度都相对可控,你完全可以用一台PLCSIM加触摸屏模拟软件把整个流程跑通,不一定非得去买一堆实物电机回来。
2.2 控制系统的硬件组成与选型逻辑
硬件选型这部分,我见过太多人直接复制网上的器件清单,连型号都懒得改。但实际上,你的每一个选型都应该能讲出理由,这是答辩时体现专业度的地方。
先说PLC。对于立体车库这种系统,IO点数一般不会超过40个(以两层三列为例,大概有3个横移电机、2个升降电机、若干限位开关和光电传感器),所以小型PLC就足够了。西门子S7-200 SMART的CPU SR30或者SR40都是不错的选择,自带以太网口,方便和上位机通信,而且对应的编程软件STEP 7-MicroWIN SMART上手难度低,梯形图编程对于没接触过PLC的人来说也容易理解。三菱FX3U系列同样很常见,如果你在学校实验室里接触的是三菱,那选FX3U就好,只是它的编程软件GX Works2或者GX Works3需要一点时间适应。
电机这块要区分对待。横移电机一般用三相异步电机加减速机就够了,因为横移速度不需要太快,而且精度要求不高,到位靠限位开关就行。升降电机则建议用带制动器的电机,因为在停车过程中如果突然断电,升降台会带着车往下滑,这是非常危险的事故场景。带制动器的电机在断电时制动器会自动抱死,这是安全设计里非常重要的一环,你写论文时一定要把这一点考虑进去。如果你想让系统更精致一点,可以在升降电机上配变频器,实现低速启动、高速运行、低速停车的S形速度曲线,这样不仅对机械冲击小,乘客体验也好,但代价是程序和调试复杂度都会上升。
传感器配置是很多新手容易漏掉的地方。限位开关用于检测载车板是否移动到了指定位置,这是最基础的一层保障。光电传感器用于检测车位上有没有车,通常安装在每个车位的后方,通过遮挡与否来判断车位状态。还有安全检测,包括出入口的红外对射传感器或者安全光幕,用于检测车辆进出时有没有人或者障碍物进入危险区域。防坠落装置也要有对应的检测开关,用于确认挂钩到位才能放行。这些传感器选型时不用追求高端,欧姆龙或者施耐德的普通光电开关就够了,关键是要明确它们的接线方式——NPN型输出和PNP型输出的接线逻辑完全不同,接反了信号就反了。
整个IO点表的规划我建议你在一开始就做出来,这会让你后续写程序和画图纸都省很多事。IO点表就像系统的“地图”,每一个输入信号对应PLC的哪一个输入端口,每一个输出信号对应哪一个输出端口,都列的清清楚楚,包括信号名称、PLC地址、信号类型、作用说明,甚至线缆颜色都可以标注上去。有了这张表,你接线时不会乱,写程序时逻辑也清晰,到后面调试出问题时排查起来能省一半时间。
3. 核心控制逻辑:存取车流程怎么设计,程序才经得起答辩追问
3.1 存车流程:从刷卡到载车板复位的完整信号链
存车流程的起点是用户在出入口操作面板上按下“存车”按钮,或者在上位机界面点击存车图标。系统随即判断当前有没有空闲车位,如果没有,就直接提示“车库已满”,并拒绝执行后续动作。如果有空闲车位,则打开入口门,提示用户将车辆驶入载车板,车辆轮胎压过入口处的压力传感器或者遮挡对射光电后,系统会提示“车辆已到位,请拉好手刹,离开车库”,然后通过另一个确认按钮来启动后续动作。
这个确认环节非常重要,不能省。如果没有这个人工确认步骤,万一驾驶员还在车里或者还在车库附近,设备突然启动,极易引发安全事故。所以在程序里,这一段的逻辑是:检测到车辆到位信号后,需要同时满足“安全光幕未遮挡”和“确认按钮已按下”两个条件,升降和横移动作才允许启动。
确认之后,PLC会根据空闲车位的位置,规划出一条运动路径。这里就是程序逻辑的关键了。我以两层三列升降横移车库为例来说明。假设一层有三个车位,编号从左到右是101、102、103,其中103是空位;二层有三个车位,编号是201、202、203。现在要存一辆车,系统选择了201作为目标车位。那么程序需要做的是:先把二层的202和203分别横移到一层空位103的位置,给二层的201腾出横移空间,然后把车辆从一层入口的位置升到二层,再整体横移到201车位,最后下降到位锁止,存车完成。
这一连串动作在程序里不能是简单的顺序启动,要有互锁和顺序控制。互锁的意思是,同一时刻只能有一个电机运行,尤其是横移和升降这两个动作绝对不能同时执行,否则机械结构会卡死甚至损坏。顺序控制则是要严格规定动作的先决条件——比如横移动作开始前,必须确认升降台已经在目标层并且锁止到位;升降动作开始前,必须确认所有横移机构都已经回位并且锁定。这些在梯形图里通常通过辅助继电器的置位和复位来实现,也就是常说的步进控制逻辑。
3.2 取车流程与优先级调度的逻辑细节
取车流程大体上就是存车的逆过程,但它有一个非常容易在答辩时被问到的问题:当多个用户同时请求取车时,系统怎么安排执行顺序?很多同学的方案是“先到先服务”,这当然可以,但如果你能加一个简单的优先级调度策略,绝对会比别人高出一个档次。
我的做法是在程序里设计了一个请求队列。每个取车请求进来之后,先根据目标车位位置计算一个“预计完成动作数”,动作数少的优先执行。比如同时来了两个请求,一个是一层101,一个是一层102,101只需要直接横移出库就行,102则需要先把周边的车移开腾出路径,那101的优先级就高。这样不仅能减少用户等待时间,还能降低设备频繁运转带来的磨损。当然,这属于优化的范畴,如果你的论文字数不够或者精力有限,先到先服务也完全能跑通。
取车流程中还有一个关键点是安全确认。当车辆从车位下降到出入口时,下降到位信号必须由下限位开关和载车板锁止信号双重确认,才能打开出口门。同时,安全光幕要持续监测下降通道有没有人或者异物。一旦安全光幕被遮挡,程序要立即停止所有动作,并保持制动器抱死状态,直到障碍解除才允许继续。
3.3 手自动模式与故障急停:这两个功能不加,答辩很难过关
纯自动模式当然能体现系统的核心功能,但如果你只在答辩时演示自动存取,老师大概率会问一句:设备出故障了怎么办?为了应对这个追问,你必须在程序里设计手动模式和急停逻辑。
手动模式的价值在于调试和检修。设备安装调试的时候,你需要单独控制某个电机动作,这时候就要通过手动模式来操作。实现方式很简单,就是把自动模式下由程序内部触发的信号,改由外部按钮直接触发,同时保留互锁逻辑。我在写程序时是这样做的:用一个模式选择开关作为总控制,手动模式下,横移和升降按钮直接接通对应的输出,但互锁逻辑用同一个辅助继电器组来保证,防止手动误操作造成机械碰撞。
急停逻辑则是所有控制系统的底线。急停按钮要采用常闭触点接入PLC的输入,意思是在正常情况下这个输入信号一直是通的,一旦按下急停按钮,信号断开,PLC马上通过程序把所有输出置为断开状态。这里有一个细节要注意,急停只断开控制回路的输出,但电机的制动器电源设计上要保证急停时制动器立即得电抱死。这个逻辑不能依赖PLC程序——如果PLC本身死机了,程序就失效了,所以制动器回路要通过中间继电器硬接线接入急停回路,这在电工领域叫作硬安全回路。
4. 程序实现与仿真:梯形图怎么组织,仿真时又一个一个控制变量
4.1 程序结构划分与常用指令组合
拿到一个程序需求后,不要直接打开软件就开始拖梯形图。你先在纸上画出程序的总体结构,把它分成几个功能块,再逐步细化。立体车库程序我建议这样分块:初始化与复位模块、模式判断模块、存车流程模块、取车流程模块、电机细分控制模块、状态检测与报警模块。每个模块对应一个或者几个子程序,在主程序里按照扫描周期调用。
梯形图编程里,有三类指令是你一定会用到的,这里详细说一下它们的使用场景。第一类是置位和复位指令,它们是步进逻辑的基础。第二类是定时器和计数器指令,比如横移电机启动后,如果10秒内没有收到到位信号,就应该通过定时器触发超时报警,并停止这台电机,防止设备卡死时电机一直堵转烧毁。第三类是边沿检测指令,比如按钮按下和抬起产生的上升沿和下降沿,利用上升沿来触发一次动作,可以避免按钮长按时程序重复执行。
我来举一段典型的程序逻辑。比如横移电机向右移动到位的控制逻辑,可以拆成三个部分。启动条件:收到横移指令,且当前横移方向允许(左右限位均未触发),且同层其他横移电机未运行。运行条件:横移输出接通,同时启动一个3秒的到位检测定时器。停止条件:右侧到位限位开关接通,或者超时定时器动作,或者急停信号断开。当停止条件满足时,横移输出断开,同时把“横移已到位”标志位输出给后续的升降或者锁止控制模块。这就是一个完整的、可验证的逻辑链条。
4.2 用PLCSIM做仿真调试的详细过程
没有实物硬件的情况下,用仿真软件把程序跑通是完全可行的,这也是大多数没有实验室资源的同学的主要手段。西门子S7-200 SMART可以在编程软件里直接启动仿真功能,S7-1200和S7-1500则要用PLCSIM,三菱系列里GX Works也可以通过仿真模式运行。
仿真调试的步骤是这样的。第一步,把程序编译通过并下载到仿真PLC中,确保没有语法错误和地址冲突。第二步,把程序切换到运行模式,观察一下初始化模块有没有正确执行,比如所有输出应为0,一些中间标志位应该恢复默认值。第三步,手动强制一些输入信号来模拟传感器状态。比如强制某车位光电传感器为ON,表示该车位有车,强制某限位开关为OFF,表示该位置未到位。然后通过强制“存车按钮”为ON,观察程序是不是按照你预先设定的顺序,一步一步地输出电机控制信号。每一步之间,你要手动调整传感器状态来模拟设备到位,程序才会走到下一步。
这个“手动模拟传感器反馈”的过程是仿真调试里最繁琐但也是最关键的环节。很多同学仿真跑不通,不是因为程序写错了,而是因为忽略了反馈信号。比如你让横移电机输出了,但程序里横移到位是靠限位开关来停止的,你如果不手动把那个限位开关置ON,电机指令就会一直保持,程序就卡在这一步了。所以在仿真时,你要像在玩一个回合制游戏一样,程序出一个动作,你就给它对应的反馈,这样一步步把整个流程走完。
到了这一步,你就可以把“存车流程仿真通过”“取车流程仿真通过”“超时报警逻辑仿真通过”这些截图放到论文的系统调试章节里,答辩时展示效果非常好。
4.3 触摸屏组态:让系统看起来像一个真正的产品
如果你的毕业设计只是用几个按钮和指示灯来操作,虽然逻辑上没问题,但视觉效果会很吃亏。现在几乎所有PLC都支持和人机界面(触摸屏)通信,你只要用组态软件把监控画面画出来,系统整体档次立刻就不一样了。西门子可以用WinCC或者Smart Panel的配套组态软件,三菱可以用GT Designer,国产的还有MCGS昆仑通态、威纶通等,这些软件上手难度都不高,类似于PPT的操作。
在触摸屏页面上,至少要包含两部分内容。第一部分是操作区,包括存车按钮、取车按钮、车位选择面板、模式切换开关、急停复位按钮。第二部分是状态显示区,用一个俯视示意图展示每个车位是“空”还是“占”,用颜色区分,同时显示当前正在执行的动作,比如“正在存车,目标车位202”,还有报警信息栏。这里有一个细节值得花心思:当你点击某个车位来选择取车时,触摸屏的宏脚本要判断这个车位是不是真的有车,如果没车就弹出提示“该车位为空”,这样可以避免向PLC发送无效指令,也减少了程序里的异常判断。
触摸屏和PLC的通信协议一般是以太网或者串口,在组态软件里配置好PLC型号和通信参数,绑定好变量地址就能连通。这里的地址绑定有一个禁忌:一定要在组态软件里使用变量名来建立映射,不要直接用I区和Q区地址。因为程序后续调试时,PLC内部的中间继电器M区和数据寄存器D区地址很可能会调整,如果你在组态里配的是硬地址,到时候改起来会非常痛苦。用变量名的话,你只要在组态软件里改一下映射关系,画面不用动。
5. 常见问题与排查技巧:那些文档上不会写的调试现场
5.1 传感器信号抖动和误触发怎么处理
立体车库的传感器工作环境其实比较恶劣,电机启停时振动大,电磁干扰也不小。光电传感器在这种环境下一个典型的故障就是信号抖动——车明明还没到位,传感器因为振动瞬间断了一下又恢复,如果程序里直接用这个信号去控制电机停止,就会出现电机运行中莫名其妙停一下又继续跑的诡异现象。
处理方式有两个层面。硬件上,传感器的供电电源最好和电机的动力线分开走线,信号线用屏蔽线且屏蔽层单端接地,这样能减少大部分电磁干扰。软件上,PLC的输入滤波时间要合理设置。S7-200 SMART的输入滤波默认是几个毫秒,但对于存在机械振动的场合,可以适当增加滤波时间或者程序里自己写一个延时确认逻辑——传感器信号必须持续有效超过200毫秒才认为是真的到位了,这样可以滤掉绝大部分抖动信号。这个延时逻辑在你的程序里非常有必要,它属于那种“看起来很简单但实际工程里非常管用”的细节。
5.2 定位不准,停车位置偏了怎么办
如果你做的是实物演示装置,可能会出现载车板运动到位后位置有偏差的情况。限位开关的安装位置是固定的,但机械结构每次运动的停止位置会因为惯性、负载不同而有细微差别。要想定位准确,除了在机械上调整限位开关的安装位置外,程序上还有一个技巧:电机在接近目标位置时先减速,再低速爬行到位。具体做法是在目标位置前一个固定距离处安装一个减速感应开关,程序检测到这个开关信号后,控制电机切换为低速运行,直到精确到达目标限位开关停止。这种做法在工业上有成熟的应用,放在论文里写出来,能体现你对运动控制系统的理解深度。
当然,如果你用的是带编码器的伺服电机或者变频器加编码器闭环方案,定位精度可以通过编码器反馈来保证,PLC只需要发目标位置,定位由驱动器完成。这个方案更适合巷道堆垛类的设计,升降横移类用限位开关配合减速逻辑就足够了。
5.3 PLCSIM Advanced启动不了、报错Error 11这类问题的处理
这个问题我特别提一下,因为很多人的仿真环境是在虚拟机里跑的,问题尤其多。PLCSIM Advanced启动时报Error 11,绝大多数情况是通信端口被占用或者许可证服务没有正常启动。解决步骤一般是这样的:先确认你的系统版本和PLCSIM Advanced版本兼容,然后在Windows服务里检查Siemens相关的许可证服务是不是在运行,再检查是否被杀毒软件拦截,最后可以把PLCSIM Advanced以管理员身份运行试试。如果你发现是端口占用,可以在命令行输入netstat -ano查一下是哪个进程占用,然后结束掉它。还有一个容易被忽略的点:PLCSIM Advanced在某些虚拟机环境下需要开启虚拟化技术才能正常工作。所以如果你在虚拟机里跑不起来,不妨先去BIOS里把VT-x打开。
5.4 常见问题速查表:从程序编译到通信断线
下面我整理了一张速查表,把立体车库系统设计和调试过程中最常遇到的故障现象、可能原因和排查思路列出来,这份内容你可以直接写进论文的“系统调试与故障分析”章节。
| 故障现象 | 可能原因 | 排查优先级 | 关键排查思路 |
|---|---|---|---|
| 程序编译报错,无法下载 | 变量名重复、I/O地址冲突 | 高 | 检查符号表里的变量名是否有重复定义,地址是否超出PLC实际范围 |
| 下载后PLC不运行 | PLC处于STOP模式 | 高 | 切换到RUN模式,检查是否有强制变量、是否被急停信号锁闭程序 |
| 电机不动作 | 输出点损坏、中间继电器故障 | 中 | 先用万用表量PLC输出点是否有电压,再检查继电器线圈是否得电 |
| 电机动作但方向反了 | 电机三相接线相序不对 | 高 | 调换任意两相电源线,所有横移电机和升降电机都要逐一确认 |
| 存车流程执行到一半卡住 | 缺少传感器反馈信号 | 高 | 查看程序当前卡在哪一步,强制对应的传感器输入为ON看是否能继续 |
| 触摸屏显示乱码或无法连接 | 通信参数不匹配 | 中 | 核对PLC和触摸屏的通信协议、波特率、站号是否一致 |
| 设备到位后仍继续运行 | 限位开关信号没被程序捕捉到 | 中 | 检查限位信号是用上升沿还是电平触发,如果设备动作太快,改用扫描周期更短的逻辑或者使用立即输入指令 |
| 急停后恢复运行设备突然动作 | 没有做复位流程 | 高 | 急停恢复后必须按下“复位”按钮,所有设备回到初始位置后才允许自动运行 |
这张表的价值在于,它把你在调试阶段会反复遇到的“低级但致命”的问题都提前暴露出来了。你在写文档时,把这些案例写进去,远比只写“经调试系统运行正常”这句话有说服力得多。
6. 文档撰写与答辩要点:论文怎么配得上你的程序
6.1 系统设计论文的核心章节应该怎么组织
很多人程序做得挺顺,但论文写得稀烂,原因就是内容组织没有逻辑。一份合格的基于PLC的立体车库系统设计论文,我建议按这个顺序组织章节。第一章绪论,讲立体车库的背景意义、国内外研究现状、本设计要完成的目标。第二章需求分析,说明系统功能需求和非功能需求,包括安全指标、效率指标等。第三章总体方案设计,画系统架构图,说明选型理由,做IO点表。第四章硬件设计,包括主电路和控制电路原理图、接线图。第五章软件设计,包括程序流程图、梯形图或者STL程序、触摸屏画面设计。第六章系统调试与仿真,放仿真截图、调试过程、问题分析。第七章总结与展望。
这套结构最大的好处是把硬件和软件分开讲,逻辑清晰。很多同学把PLC接线图、梯形图、组态画面全塞在一章里,看起来像一份操作手册,不像论文。分开之后,每一章都有明确的主题,老师审阅时也容易抓到重点。
6.2 图表的规范与细节
论文里的图表质量,决定了老师翻看你论文的第一印象。控制流程图用Visio画,标清楚每个判断条件和动作框;梯形图直接用编程软件的截图,不要自己重画;电气原理图可以用CAD或EPLAN画的规范图。这里要提醒的是,接线图上每个端子的线号必须与IO点表一一对应,图上标注的PLC地址要和程序里的地址完全一致。答辩时老师最喜欢干的一件事,就是拿接线图随机指一个点问你,“这个信号在程序里在哪里处理”,如果你对不上,就很尴尬了。
6.3 答辩时最容易被问到的几个问题,以及怎么回答
我参加过不少次答辩,老师对这类题目的提问方向相对集中,提前准备好回答思路,比临场发挥要稳得多。第一个高频问题是“你的系统如果断电,车辆怎么保证安全”。这是所有自动化系统都会问的安全问题,你的回答思路是先讲硬件安全回路——制动器由硬接线急停回路控制,断电自动抱死;再讲软件恢复策略——重新上电后,系统必须经过初始化确认所有设备位置无误后,才能进入待机状态,不支持直接从中途恢复运行。第二个高频问题是“两个电机同时动作会不会冲突”。这正是程序里互锁逻辑存在的意义,你在回答时可以直接展示梯形图里互锁触点部分,说明同一时刻只能有一个输出为真。第三个高频问题是“你这个设计实际能用吗,和真实的商用立体车库比差距在哪里”。这个问题没有标准答案,但你要展现出你了解真实场景的复杂性,比如真实的升降横移车库有几十个车位、需要多组PLC联动、具备远程监控和故障自诊断功能,而你的设计是核心原理的验证和简化实现。
6.4 源码和文档怎么整理提交
最后说说交付物,也就是你最终要提交的“源码+LW文档”这件事。源码部分不要只扔一个PLC工程文件,那样别人拿到根本不知道哪里是哪里。建议在工程文件里建立一个readme.txt,写清这个程序包含哪些模块、每个模块的功能、IO分配摘要、仿真使用方法。如果有触摸屏组态工程,也要一并放进去。文档部分除了论文正文,最好附一份设计图纸的PDF版和CAD源文件,还有IO点表和程序变量表的Excel版。把这些整理成一个清晰的文件包,压缩后提交,不仅自己以后回看方便,答辩时老师把文件拷走研究,对你留下好印象也有帮助。
7. 来自调试现场的经验总结
写到最后,我想说几个我在实际做这类系统过程中沉淀下来的体会。这些东西不一定会出现在你自己的论文里,但它们能帮你少走很多弯路。
第一,不要急着写程序。我看到太多人拿到题目就往电脑前面一坐,拖拉出第一段梯形图之前,连车库有几层几列、谁先动谁后动都没想清楚。你先把运动流程用自己熟悉的语言写一遍,哪怕是写成“先把2号车位的车往左移,然后把3号载车板升上去”这种大白话,也比直接写梯形图强。程序只是流程的另一种表达形式,流程想清楚了,程序就是水到渠成的事。
第二,尽量给自己留出至少一个星期的完整调试时间。程序编译通过、下载运行和把整个流程跑通,这中间隔着巨大的鸿沟,绝大多数故障都是在联调和仿真阶段冒出来的。如果你把所有工作压在答辩前三天,那你大概率是在焦虑和无尽反复中度过。
第三,文档和程序同步更新。我自己的习惯是,每完成一段程序逻辑,就立刻在文档里把对应的流程图和设计说明补上,哪怕只是初稿。别指望最后集中补文档,那时候你的记忆已经模糊了,写的都是大实话——但你要记住,你此刻记录的接线细节、地址分配、遇到的坑,恰恰是答辩和以后最有价值的内容。
如果你是为了应付而抄了一份源码,那这篇文章可能帮不上太多忙。但如果你是真心想把这个设计做扎实,想在这个过程中学会PLC控制系统的完整设计思路,那按着上面这条路线走下来,你交出去的不仅是一个能答辩通过的毕业设计,更是一套你真正理解了的东西。它会在以后某个时刻,比如你从事自动化相关工作时,突然派上用场。