--大学--学院课程设计说明书(20--/20--学年第-学期)课程名称:可编程序控制器课程设计题目:立体仓储单元控制课程设计专业班级:学生姓名:学号:指导教师:设计周数:设计成绩:年月日2目录1、课程设计目的..........................................................................................................................32、课程设计正文..........................................................................................................................32.1、功能介绍..............................................................................................................................32.2、硬件接口电路与原理.........................................................................................................32.2.1、I/O接口分配表.................................................................................................................32.2.2、接口说明..........................................................................................................................42.3、系统流程图..........................................................................................................................42.4、PLC程序梯形图...................................................................................................................52.4.1、程序分析.......................................................................................................................183、课程设计结论.......................................................................................................................194、参考文献................................................................................................................................2031.课程设计目的通过对实验室流水线上具体的从站及其接线方式的认真观察,了解其各部分功能,对PLC主机进行编程来控制相关元件动作,来加深对PLC原理与实践应用。主要是梯形图的掌握,这一点是本次课程设计的最关键因素,直接关系着最终设计的成败与否。对此要发挥团队合作精神,一起探讨,集思广益,积极动手动脑,勤于程序调试,不断发现并解决问题,不怕失败,勇于挑战困难,逐渐趋于完美并达到任务要求。本实验选用从站八,即立体仓储控制单元,对三台不同方向运转的电机进行正反转控制来实现,需要认真周到地编写程序并能大概预见其执行效果,在具体调试中不断完善程序。另外在测试阶段一定要注意设备安全,避免电机的堵转,更要注意人身安全,防止机械划伤碰伤。2.课程设计正文2.1功能介绍在设计目的中已说过,本实验选用从站八,即立体仓储控制单元,通过对三台不同方向运转的电机进行正反转控制来实现铲车上下前后运动以及铲车手臂的左右运动。控制台上有个按钮,分别是启停、复位、单步、手动自动。由于本次实验要求没有设计自动控制,所以手动自动按钮没有进入编程的考虑范围内。使用说明:1.上电复位,接通PLC电源后相关计数器清零,并自动进入复位运动状态,如果已经复位则等待;2.按下启停,系统进入准备状态;3.按一下单步,系统进入第一次取货运动;4.再按一下单步,系统进入第一次送货运动;5.每完成一个运动按一次单步,则系统重复3、4步骤,直到取送完所有货物。6.按复位按钮则执行复位动作,铲车回到起始位。2.2硬件接口电路与原理2.2.1CPU224CNI/O接口分配表名称I/O口属性名称I/O口属性启动/停止I0.0自保持列定位常开上升沿有效I1.2复位I0.1常开层定位常开上升沿有效I1.3单步I0.2常开M0前行输出线圈Q0.0手动/自动I0.3自保持M0后行输出线圈Q0.1M0后限位I0.4常开开关M1下行输出线圈Q0.2M0前限位I0.5常开开关M1上行输出线圈Q0.3M1下限位I0.6常开开关M2左行输出线圈Q0.4M1上限位I0.7常开开关M2右行输出线圈Q0.5M2右限位I1.0常开开关M2左限位I1.1常开开关42.2.2接口说明:启停、复位、单步、这三个按钮为控制台上可以直接操作的按钮,可以用它们来控制系统的运行。但限位开关是安装在运动导轨上的位置开关,在系统运动时触碰到它们时起作用成为输入信号并传入CPU的I0.4到I1.1接口。层、列定位分别由坚直导轨上的六个小金属片和水平导轨上的三个小金属片作为输入信号,通过光电传感器转换成电信号传递给层定位I1.2和列定位I1.3,输出线圈直接由CPU的Q0.0到Q0.5分别两两传给三个不同电机,从而分别控制其正反转。经过这样的I/O口分配以后,剩下的就由软件编程来处理其具体控制任务了。2.3系统流程图上电单步进入复位子程序到第一层第二列取货将货送回第一层第二列到第一层第三列取货将货送回第一层第三列到第二层第二列取货将货送回第二层第二列将货送回第二层第三列到第二层第三列取货到第三层第二列取货将货送回第三层第二列到第三层第三列取货将货送回第三层第三列单步11次单步2次单步12次单步3次单步4次单步10次单步9次单步5次单步6次单步7次单步8次单步1次52.4PLC程序梯形图主程序6复位子程序定位子程序789运行子程序1011121314151617182.4.1程序分析:本课题所选设备为实验室从站八,即立体仓储控制单元系统。I/O接口方式按“I/O接口分配表”接线,接好线后先检查一下,在确认无错后再编程实验。编程之前先了解各个元件的特点以及功能,比如控制按钮的开关特点、限位开关的原理与用法、定位传感器的原理与用法,更为主要的是要从大脑里想象出铲车运行的各个步骤与细节是如何协调工作的。在调试之前切记先把铲子扳到右边,以防止在铲车手臂在错误运动时卡在仓库里使电机堵转而烧坏。本程序大量使用了CPU内部的“RS”复位-置位逻辑单元,目的是使三个电机的正反转不会发生冲突,比如当电机前进时,保证没有使电机停止的程序同时起作用,以此类推。同时利用限位开关的上升沿19或下降沿解决了顺序控制才能解决的问题,比如取到货返回时,务必先右行使铲子撤出仓库才能下行和前行,这样右限位开关的上升沿就起到了这个顺序功能。具体实现方法在程序里面体现,在这里就不赘述了。另外用到三个计数器C0、C1、C2,分别记录列计数,层计数和单步次数。前两个为加减计数器,到达最前端或最下端复位,可以根据实际情况记录当前的层与列,用于定位,使铲车确定所要取货的仓库号;第三个计数器为加计数,按复位键时复位,作用是记录该执行哪次单步动作,如果取货和送货是两个单步的话,那么要完成6个货物的搬运总共需要12次单步计数。在程序具体执行时表现为C2为奇数时取货,C2为偶数时送货,因此程序里面大量出现了“C2=?”的判断指令。纵观整个程序,分为主程序,复位子程序,定位子程序,运行子程序。主程序里包括对计数器清零,上电复位子程序入口,定位子程序入口,运行子程序入口。复位子程序里只有使铲车回到原始位置的指令,及回来前限位,下限位和右限位位置。定位子程序包括两个计数器C0、C1,分别用于列与层的定位,还有列一、列二、列三,层一下,层一上,层二下,层二上,层三下,层三上的定义。运行子程序包括单步计数器C2,还有前行取送货,后行取送货,左行取送货,右行取送货,上行取送货,下行取送货等等。分别代表各种不同的状态对应的动作指令,从而告诉铲车每一步和每一个状态应该做什么。3.课程设计结论本课题所选设备为实验室从站八,即立体仓储控制单元系统。编程过程是最复杂与艰难的,是我们最大的挑战。在编程与调试期间出现了很多意想不到的事情,让我们哭笑不得,甚至有时失去了信心。不过后来,经过老师的指点与我们组员的共同探讨与努力,最终还是取得了成功。那一刻是成功的惊喜,是我们辛苦劳动的最好回报。编程确实不是一件容易的事,开始我们想当然地用三四个小时洋洋洒洒地编写出来一堆指令代码,当时以为我们的程序能给我们带来惊喜,或者哪怕一点点的成功,可是现实太残酷了,我们的程序竟然像个植物人似的,运行后一点都不对,让我们很郁闷,但看着那么大的程序,真不知道到底哪里出错了,顿时手足无措。后来老师建议我们一小块一小块地编写调试,不要眉毛胡子一把抓。后来我们一点一点地编写,让它执行每个小步骤,还尝试了顺序控制的指令,但最终因为繁琐而取消了,取而代之的是RS指令组合的步进控制方式。编程最重要的一点是思路清晰,其次是思维周到,要认真分析系统运动的每一个细节,确定先后顺序,还要考虑每一动作是否会跟其他输出指令形成冲突。在本程序中多个计数器分别控制层定位、列定位和单步计数,为的是使定位准确同时又不跟其他指令冲突,单步计数作为某一次取货或者送货的标志,为的是20不与其他单步次数混淆。考虑了这些以后,剩下的编程就有了一个基础框架,也就可以有目的有步骤有选择地进行了。不过在后来的调试之间我们还是发现了很多问题,还想到了一些改进方法,比如复位时我们让下行与前行同时进行,这样不仅节省了时间而且还是一种创新,我们很为之高兴。完善之后,我们的程序更加合理。编程确实是一件不容易的事,不止要考虑周到,而且更重要的是认真,每一个细节的过失都会使程序不能正常工作甚至造成堵转而烧毁电机。而且对于一些不正常的动作我们还要细心耐心从程序中发现问题,因为程序很庞大而且指令之前有联系,所以发现并解决每个问题都不是一件简单的事情。最后我们的程序完成了,也取得了成功,应该是一件值得庆贺的事。其时我们最大的收获不是顺利完成了铲车的动作任务,而是编程和处理问题的过程还有组员互相帮助,共同讨论,引发新思路并成功克服困难的过程。4.参考文献[1]常辉.西门子S7-200PLC入门与应用实例[M].北京:中国电力出版社,2010[2]杨后川.西门子S7-200PLC应用100例[M].北京:电子工业出版社,2009,4[3]汪小澄.可编程序控制器运动控制技术[M].北京:机械工业出版社,2006,1[4]殷洪义.可编程序控制器选择、设计与维护[M].北京:机械工业出版社,2002,11课程设计评语课程设计成绩指导教师(签字)年月日注:此表必须在同一页面。