毕业论文自动售货机PLC系统设计【完稿】.doc
自动售货机PLC系统设计摘要: 本文介绍了自动售货机的基本原理以及工作流程,然后以一次交易过程为例,把交易过程分为几个程序块,然后分别对程序块进行编程。具体说明了可编程序控制器在自动售货机中的作用。程序涉及到了自动售货机工作的绝大部分过程。利用PLC控制的自动售货机提高了系统的稳定性,保证自动售货机能够长期稳定运行。关键词 自动售货机;可编程序控制器;Abstract: This article introduced vending machine's basic principle as well as the work flow, then take a transaction process as examples, divides into several blocks the transaction process, then carries on the programming separately to the block. Explained the programmable controller's in vending machine function specifically. The procedure involved the vending machine work major part process. Enhanced system's stability using the PLC control's vending machine, the guarantee vending machine has been able the long-term stability movement.key word vending machine; Programmable controller; Trapezoidal chart目 录·绪论.1·1自动售货机的介绍.4·1.1自动售货机功能分析4·1.1.1自动售货机的基本功能.5 1.2 PLC的基本结构及原理 . . 5·1.3 PLC的选型原则5·2PLC系统设计. .7·2.1可编程序控制系统设计的基本原则7·2.1.1控制系统设计原则 7·2.1.2控制系统设计的基本内容. 7·2.1.3控制系统设计的一般步骤 .8·2.1.4程序设计的步骤. 8·3自动售货机PLC程序设计.10·3.1仿真实验中售货机的分析.10·3.2设计任务的确定.10·3.3程序设计部分.11·3.3.1程序设计说明.11·3.3.2PLC程序设计.11·3.4仿真界面与PLC20·3.5数据连接24·3.5.1定义I/O设备.24·3.5.2设计 26·3.5.3运行 30·4结束语.31·参考文献 .32·致谢.33绪 论从自动售货机发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。从广义来讲投入硬币、纸币、信用卡等后便可以销售商品的机械,从狭义来讲就是自动销售商品的机械。从供给的条件看,自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要的资本少、面积小,有吸引人们购买好奇心的自身性能,可以很好地解决人工费用上升的问题等各项优点。现在,自动售货机的产业正在走向信息化并进一步实现合理化。例如实行联机方式,通过电话线路将自动售货机内的库存信息及时地传送各营业点的电脑中,从而确保了商品的发送、补充以及商品选定的顺利进行。并且,为防止地球暖化,自动售货机的开发致力于能源的节省,节能型清凉饮料自动售货机成为该行业的主流。在夏季电力消费高峰时,这种机型的自动售货机即使在关掉冷却器的状况下也能保持低温,与以往的自动售货机相比,它能够节约1015的电力。进入21世纪时,自动售货机也将进一步向节省资源和能源以及高功能化的方向发展。因经济复苏缓慢,社会对扩大就业与工作场所提供茶点饮料的福利事业更为关注。自动售货机不仅保障了惬意的工休时间,也是最廉价、提高职工工作效率最有效的手段。特别是在24小时无休工作状态中的办公场所,使用独具魅力的迷你型饮料冲饮机,解决了不间断提供咖啡饮品服务的问题,这种服务加速了自动售货机与咖啡饮品服务的融合。1999年的全美自动售货机协会和全美咖啡服务协会的合并使人们更直观地看到了这种融合现象。 1 自动售货机介绍1.1 自动售货机功能分析 这部分阐述了自动售货机的各种动作功能和控制要求,给出了完整的自动售货机操作规程,并介绍了自动售货机运行系统种所包括的人工操作步骤。1.1.1自动售货机的基本功能在进行上、下位机程序编写之前,首先要做的工作是确定自动售货机本身所具备的功能及在进行某种操作后所具有的状态。在实际生活中,我们见到的售货机可以销售一些简单的日用品,如饮料、常用药品和小的生活保健用品等。售货机的基本功能就是对投入的货币进行运算,并根据货币数值判断是否能够购买某种商品,并作出相应的反应。举一个简单的例子来说明,例如:售货机中有8中商品,其中01号商品(代表第一种商品)价格为2.60元,02商品为3.50元,其余类推。现投入1个1元硬币,当投入的货币超过01商品价格时,01商品的选择按钮处应有变化,提示可以购买,其他商品同比。当按下选择01商品价格时,售货机进行减法运算,从投入的货币总值中减去01商品的价格同时启动相应的电机,提取01号商品到出货口。此时售货机继续进行等待外部命令,如继续交易,则同上,如果此时不再购买而按下退币按钮,售货机则要进行退币操作,退回相应的货币,并在程序中清零,完成此次交易。由此看来,售货机一次交易要涉及加法运算、减法运算以及在退币时的除法运算,这是它的内部功能。还要有货币识别系统和货币的传动来实现完整的售货、退币功能。自动售货机的工作流程图如图1所示。 图1 自动售货机工作流程图1.2 PLC的基本结构及原理1.2.1 PLC的系统结构目前PLC种类繁多,功能和指令系统也都各不相同,但都是以微处理器为核心用做工业控制的专用计算机,所以其结构和工作原理都大致相同,硬件结构与微机相似。主要包括中央处理单元CPU、存储器RAM和ROM、输入输出接口电路、电源、I/O扩展接口、外部设备接口等。其内部也是采用总线结构来进行数据和指令的传输。如图2所示,PLC控制系统由输入量PLC输出量组成,外部的各种开关信号、模拟信号、传感器检测的各种信号均作为PLC的输入量,它们经PLC外部输入端子,作为PLC的输出量对外围设备进行各种控制。由此可见,PLC的基本结构有控制部分输入和输出组成。1.3 PLC的选型原则当某一个控制任务决定由PLC来完成后,选择PLC就成为最重要的事情。一方面要选择多大容量的PLC ,另一方面是选择什么公司的PLC及外设。对第一个问题,首先要对控制任务进行详细的分析,把所有的I/O点找出来,包括开关量I/O和模拟量I/O以及输出是用继电器还是晶体管或是可控硅型。控制系统输出点的类型非常关键,如果他们之中既有交流220V的接触器、电磁阀,又有24V的指示灯,则最后选用的PLC的输出点数有可能大于实际电数。因为PLC的输出点一般是几个一组共用一个公共端,这一组输出只能有一种电源的种类和等级。所以一旦它们是交流220V的负载负载使用。则直流24V的负载只能使用其他的输出端了。这样有可能造成输出点浪费,增加成本。所以要尽可能选择相同等级和种类的负载,比如使用交流220V的指示灯等。对第二个问题,则有以下几个方面要考虑: (1)功能方面 所有PLC一般都具有常规的功能,但对某些特殊要求,就要知道所选用的PLC是否有能力控制任务。如对PLC与PLC、PLC与智能仪表及上位机之间有灵活方便的通信要求;或对PLC的计算速度、用户程序容量等有特殊要求;或对PLC的位置控制有特殊要求等。(2)价格方面 不同厂家的PLC产品价格相差很大,有些功能类似、质量相当、I/O点数相当的PLC的价格能相差40%以上。在使用PLC较多的情况下,这样的差价当然是必须考虑的因数。 PLC主机选定后,如果控制系统需要,则相应的配套模块也就选定了。2 PLC系统设计2.1 可编程序控制系统设计的基本原则2.1.1 控制系统设计原则 任何一种电气控制系统都是为了实现被控对象(生产设备或生产过程)的工艺要求,以提高生产效率和产品质量。因此,在设计PLC控制系统时,应遵循以下基本原则:(1) 最大限度地满足被控对象的控制对象。设计前,应深入现场进行调查研究,收集资料,并于机械部分的设计人员和实际操作人员密切配合,共同拟订电气控制方案,协同解决设计中出现的各种问题。(2) 在满足控制系统要求的前提下,力求使控制系统简单、经济,使用及维修方便。(3)保证控制系统的安全、可靠。(4)考虑到生产的发展和工艺和改进,在选择PLC容量时,应适当留有裕量。2.1.2 控制系统设计的基本内容PLC控制系统是由PLC与用户输入、输出设备连接而成的,因此,PLC控制系统设计的基本内容应包括:(1)用户输入设备(按钮、操作开关、限位开关、传感器等)、输出设备(继电器、接触器、信号灯等执行元件)以及由输出设备驱动的控制对象(电动机、电磁阀等)。这些设备属于一般的电气元件,其选择的方法在其他有关书籍中已有介绍。(2)PLC的选择。 PLC是PLC控制系统的核心部件,正确选择PLC对于保证整个控制系统的技术经济性能指标起到重要的作用。选择PLC,应包括机型选择、容量的选择、I/O模块的选择、电源模块的选择等。(3)分配I/O点,绘制I/O连接图。(4)设计控制程序。包括设计梯形图、语句表(即程序清单)和控制系统流程图。控制系统程序是控制整个系统工作的软件,是保证系统工作安全、可靠的关键。因此,控制程序饿设计必须经过反复调试、修改,直到满足要求为止。(5)必要时还需设计控制台(6)编制控制系统的技术文件。2.1.3 控制系统设计的一般步骤(1)根据生产的工艺过程分析控制要求。(2)根据控制要求确定所需的用户输入、输出设备,据此确定PLC的I/O点数。(3)选择PLC系统。(4)分配PLC饿I/O点,设计I/O连接图。(5)进行PLC程序设计,同时可进行控制太的设计和现场施工。2.1.4 程序设计的步骤(1)对于较复杂的控制系统,需绘制系统控制流程土,用以清楚地表明动作的顺序和条件。(2)设计梯形图。这程序设计的关键一步,也是比较困难的一步。(3)根据梯形图编制程序清单。(4)用编程器将程序输入到PLC的用户存储器中,并检查输入的程序是否正确。(5)对程序进行调试和修改,直到满足要求为止。(6)待控制台及现场施工完成后,就可以进行联机调试。若未满足要求,再从新修改程序或检查接线,直到满足为止。(7)编写技术文件。(8)交付使用。 控制系统设计步骤流程图如图4所示。图4 PLC控制系统设计步骤3 自动售货机PLC程序设计3.1 仿真实验系统中售货机的分析由于售货机的全部功能时在上位机上模拟的 ,所以售货机的部分硬件是由计算机软件来模拟替代的。如钱币识别系统可以用按压某个“仿真对象”输出一个脉冲直接给PLC发布命令,而传动系统也是由计算机来直接模拟的,这些并不会影响实际程序的操作,完全能模拟现实中自动售货机的运行。(1) 试验状态假设 由于是在计算机上模拟运行,试验中有一些区别于实际情况的假设,本试验中假设: 自动售货机只售8种商品。 自动售货机可识别10元、5元、1元、5角、1角硬币。 自动售货机可退币10元、5元、1元、5角、1角硬币。 自动售货机有液晶显示功能。 实验中售货机忽略了各种故障以及缺货等因素。(2) 一次交易过程分析 为了方便分析,我们以一次交易过程为例。 初始状态。由电子标签显示各商品价格,显示屏显示友好界面,此时不能购买任何商品。 投币状态。按下投币按钮,显示投币框,按下所投币值显示屏显示投入、消费、余额数值,当所投币值超过商品价格时,相应价格选择按钮发生变化,提示可以购买。 购买状态。按下可以购买的选择按钮,所选的商品出现在出货框中,同时显示屏上的金额数字根据消费情况相应变化。取走商品后出货框消失。 退币按钮。按下退币按钮,显示退币框,同时显示出应退币值及数量。按下确认钮,则恢复初始状态。到此为止,自动售货机的一个完整工作过程结束。3.2 设计任务的确定 在清楚自动售货机运行工作过程的基础上,制定出设计方案,确定任务的目标,以设计出合理的仿真系统。 首先,应该做上位机与下位机的任务分工:上位机主要用来完成仿真界面的制作过程,而下位机则主要用来完成PLC程序的编写。其次,要分别对上位机和下位机进行资料的查找与收集。例如在进行仿真界面的设计时可以去观看一下真正售货机的外观,必要时可以借助一些宣传图片来设计自动售货机的外型;在进行PLC程序的编写时需要先分配PLC的I/O点,确定上、下位机的接口。然后,分别对上、下位机分别进行设计工作。最后,进行上位机设计结果与下位机设计结果的配合工作,经调试后完成整个系统的设计另外,上位机与下位机的设计工作是密切配合的。它们无论在通信中使用的变量,还是在仿真中控制的对象都应该是一致的。总体上讲,仿真界面是被控对象,利用PLC来控制这个仿真的自动售货机,仿真的自动售货机接受PLC的控制指令并完成相应的动作;另一方面,仿真界面中的仿真自动售货机的运行,都是由组态界面所提供的命令语言来完成的。这是整个仿真系统内部各大部件之间的内在关系。3.3 程序设计部分 这部分内容是整个系统设计的主体部分。所要完成的任务是仿真系统的上位机与下位机的程序设计,即在上述功能分析的基础上,有针对性地进行设计。3.3.1 程序设计说明下位机程序的编制则是利用松下PLC专用编程软件FPWIN-GR完成的。在设计的过程中,就像上面所叙述的那样,并非孤立地分别进行上位机和下位机的设计工作,而是互相配合的。因此在以下的详细设计过程中,并没有将上位机的设计与下位机的设计整体分开来写,而是相互交替,同时尽量清晰地叙述,在相应的设计部分中注明是上位机的设计还是下位机的设计。3.3.2 PLC程序设计可以把一次交易过程分为几个程序块:运行初期电子标签价格的内部传递;投币过程;价格比较过程;选择商品过程;退币过程。(1) 运行初期电子标签价格的内部传递程序的设计仿真系统运行初期,要由PLC向仿真画面相应对象传递已经存储好的价格,还要给投入显示、消费显示及余额显示存储器清零,同时也要给存储退币币值的存储器清零。程序编制过程中,要用到运行初期闭合继电器R9013、16位数据传送指令FO,同时在上位机ForceControl中,必须定义相应的变量,来实现与PLC程序的对接。所定义的变量如表1所示。 表1 初始状态变量表 根据表1 编制PLC程序如图5所示。 图5 运行初期电子标签价格的内部传递程序 在梯形图程序图5中,系统初始化时,通过运行初期闭合继电器R9013在第一次扫描时将数值传递给上位机。给WR1-WR11及SV0-SV4赋初值,赋值功能通过高级指令FO实现。至于为什么要加入WR13、WR15、WR17、WR19及WR20,在以后的程序中将介绍它们的作用。 (2).投币过程在投币的过程中,每投下一枚硬币,投入显示将增加相应的币值,余额也增加同样币制。先建立变量表,在编写程序。变量表如表2所示。对应的梯形图程序如图7所示。 表2 投币过程变量表 在图中,当按下投入1角时,相当于让R200接通,之所以用一个微分指令,就是要只在接通时检测一次,不能永远加下去。投入1角要投入显示、余额显示都相应增加相同数值,加法是由16位加法指令E20来实现的。投入5角、1元、5元、10元,原理同上。(3)价格比较过程价格的比较要贯穿实验过程的始终,只要余额大于某种商品价格时,就需要输出一个信号, 图7 投币过程梯形图提示可以购买。这里只要选择灯来代表此信号。所建立的变量表如表3所示。 表 3 价格比较过程变量表 根据变量表和控制要求编写的程序如图8所示。 在梯形图8中,为了实现数据的实时比较,用了一个特殊内部继电器R9010,在程序执行过程中,R9010始终保持闭合,F60是16位数据比较指令,用它来比较余额和商品的价格,R900A是大于价格,R900B是等于标志。当余额大于等于某种商品价格时,程序使相应的指示灯闪烁表示可以购买该种商品。 R9010 F60 CMP , WR3 , WR4 R900A Y0R900B R9010 F60 CMP , WR3 , WR5R900A Y1 R900B R9010 F60 CMP , WR3 , WR6 R900A Y2 R900B R9010 F60 CMP , WR3 , WR7 R900A Y3 R900B R9010 F60 CMP , WR3 , WR8 R900A Y4R900B R9010 F60 CMP , WR3 , WR9R900A Y5 R900B . . . . . . 图8 价格比较过程梯形图(4)选择商品过程 当投入的币值可以购买某种商品时,按下相应的“选择”按纽即可在出货框中出现该种商品,同时消费显示栏中显示出已经消费掉的金额,余额也将扣除已消费的币值,接着余额继续与价格相比较,判断是否能继续购买。出现在出货口的商品在没有取走前,一直保持显示状态,用鼠标点击该商品代表已经取走,出货口中的商品隐藏。建立的变量表如表4所示。对应的梯形图程序如图9所示。 表4 选择商品过程变量表 在梯形图9中,一是要使商品出现在出货框中,二是要实现内部货币的运算。以第一步为例,按下选择01商品键,相当于给R205加一个信号(只接受一次脉冲,所以用DF微分指令),当YO接通(01商品灯亮)时,则系统显示可以购买01商品。由于取01商品R230是常闭触点,故Y8输出,代表在出货框中出现01商品,购买成功。当按下取01商品按钮时,R230断开,不能输出Y8,代表01商品被取走。内部币值的计算和是否取走商品无关,只要按下选择按钮,并且可以购买此商品就要从余额中扣除相应的金额,显示消费的币值。加法由F20指令实现,减法由F25实现。 R205 Y0 R230 Y8 DF Y8 R205 Y0 DF 1 1 F25- , WR 4 , WR 3 F20+ , WR 4 , WR 2 R206 Y1 R231 Y9 DF Y9 R206 Y1 DF 1 1 F25- , WR 5 , WR 3 F20+ , WR 5 , WR 2 R207 Y2 R232 YA DF YA R207 Y2 DF 1 1 F25- , WR 6 , WR 3 F20+ , WR 6 , WR 2 R208 Y3 R233 YB DF YB R208 Y3 DF 1 1 F25- , WR 7 , WR 3 F20+ , WR 7 , WR 2 R209 Y4 R234 YC DF YC R209 Y4 DF 1 1 F25- , WR 8 , WR 3 F20+ , WR 8 , WR 2 R20A Y5 R235 YD DF YD R20A Y5 DF 1 1 F25- , WR 9 , WR 3 F20+ , WR 9 , WR 2 R20B Y6 R236 YE DF YE R20B Y6 DF 1 1 F25- , WR 10 , WR 3 F20+ , WR 10 , WR 2 R20C Y7 R237 YF DF YF R20C Y7 DF 1 1 F25- , WR 11 , WR 3 F20+ , WR 11 , WR 2 图9 选择商品梯形图 (5)退币过程 在退币过程中,最主要的是完成退币的运算过程,根据结果输出相应的钱币,退币结束时还要使用到的某些寄存器重新赋零。所建立的变量如表5所示。对应的梯形图程序如图10所示。 表5 退币过程变量表 整个退币过程在按下按钮(即R20F接通时)时执行,同样也用到一个微分指令,在接收到信号时产生一次开关脉冲,进而执行一次其下面的指令。F32是除法指令,第一次将余额的币值除以1000,商存储于SV0中,作为退币10元的输出值。余数则存储于特殊数据寄存器DT9015中,下次将不能被1000(10元)整除的余数除以100(5元),商且存储于SV1中,余数继续下传,直至被1角除过,由于所投币值最小是1角,并且商品价格也确定在整角,所以最终能被1角整除。 在程序的初始化时曾给WR13、WR15、WR17、WR19和WR20赋零,WR13、WR15、WR17、WR19和WR20是程序的中间量,为的只是程序在使用过程中能稳定执行,避免出现退币错误。为什么要除以1000呢?这主要是考虑到PLC的主要特点是执行过程稳定可靠,但执行速度较慢。在计算时尽量将数值作为整数计算,因为是在计算机上模拟,可以把一部分功能交由计算机来实现,这里把1角当作10、5角当作50、1元当作100、5元当作500、10元当作1000,可以避免把这些数据当作有小数点的实数计算,这同前面的加1角等于10(K10)是相同的道理。至于交由计算机的任务将在以后叙述。退币过程结束后,PLC要将寄存器中的数值置回原定的初值0,完成一次交易,防止下一次交易时出错。梯形图3-6用来完成对数据的初始化。 程序中分别将投入显示、消费显示、余额显示、10元存储、5元存储、1元存储、5角存储和1角存储清零,还将中间量WR13、WR15、WR17、WR19和WR20清零。完成了以上5个过程,自动售货机的PLC控制程序基本完成,程序可以控制售货机实现各种要求的功能。 图 10 退币过程梯形图3.4 仿真界面与PLC的配合定义在这一段中,将仔细分析仿真界面各部分是如何与PLC连接的。分析过程是按照一次交易的实际情况来进行的,即由初始状态、投币状态、购买状态、退币状态到交易结束。(1)初始状态 通过分析得知,当电子标签显示各商品的价格、显示屏显示友好界面时,不能购买任何商品。因此先让变量poiwindows=0(系统默认)。电子标签中的字符J.01(以01商品为例)对应的变量JG01.PV与PLC程序中的地址WR4相匹配,WR4中存储的数据为250,即让字符显示2.50元。对应的梯形图如图11所示(2)投币状态 当投币时,按下“投币”提示字,出现投币框。如何定义“投币”呢?双击汉字“投币”,来到“动画连接”画面,选择“触敏动作”,在“动作描述”框中做如下定义:按下鼠标时,poiwinJB=1,poiwinJB这个变量是控制投币框的,当poiwinJB=1时,出现钱币和提示框;poiwinJB=0R0 F0 MV , K 0 , WR 1 F0 MV , K 0 , WR 2 F0 MV , K 0 , WR 3 F0 MV , K 0 , WR 13 F0 MV , K 0 , WR 15 F0 MV , K 0 , WR 17 F0 MV , K 0 , WR 19 F0 MV , K 0 , WR 20 F0 MV , K 0 , SV 0 F0 MV , K 0 , SV 1 F0 MV , K 0 , SV 2 F0 MV , K 0 , SV 3 F0 MV , K 0 , SV