1、自动售货机的系统设计摘要本文介绍了自动售货机的基本原理以及工作流程,然后以一次交易过程为例,把交易过程分为几个程序块,然后分别对程序块进行编程。具体说明了可编程序控制器在自动售货机中的作用。程序涉及到了自动售货机工作的绝大部分过程。利用PLC控制的自动售货机提高了系统的稳定性,保证自动售货机能够长期稳定运行。自动售货机;可编程序控制器;目录绪论11自动售货机的介绍411自动售货机功能分析4111自动售货机的基本功能512PLC的基本结构及原理513PLC的选型原则52PLC系统设计721可编程序控制系统设计的基本原则7211控制系统设计原则7212控制系统设计的基本内容7213控制系统设计的一
2、般步骤8214程序设计的步骤83自动售货机PLC程序设计1031仿真实验中售货机的分析1032设计任务的确定1033程序设计部分11331程序设计说明11332PLC程序设计1134仿真界面与PLC2035数据连接24351定义I/O设备24352设计26353运行294结束语29参考文献30绪论从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种
3、必须的机器便应运而生了。从广义来讲投入硬币、纸币、信用卡等后便可以销售商品的机械,从狭义来讲就是自动销售商品的机械。从供给的条件看,自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要的资本少、面积小,有吸引人们购买好奇心的自身性能,可以很好地解决人工费用上升的问题等各项优点。现在,自动售货机产业正在走向信息化并进一步实现合理化。例如实行联机方式,通过电话线路将自动售货机内的库存信息及时地传送各营业点的电脑中,从而确保了商品的发送、补充以及商品选定的顺利进行。并且,为防止地球暖化,自动售货机的开发致力于能源的节省,节能型清凉饮料自动售
4、货机成为该行业的主流。在夏季电力消费高峰时,这种机型的自动售货机即使在关掉冷却器的状况下也能保持低温,与以往的自动售货机相比,它能够节约1015的电力。进入21世纪时,自动售货机也将进一步向节省资源和能源以及高功能化的方向发展。因经济复苏缓慢,社会对扩大就业与工作场所提供茶点饮料的福利事业更为关注。自动售货机不仅保障了惬意的工休时间,也是最廉价、提高职工工作效率最有效的手段。特别是在24小时无休工作状态中的办公场所,使用独具魅力的迷你型饮料冲饮机,解决了不间断提供咖啡饮品服务的问题,这种服务加速了自动售货机与咖啡饮品服务的融合。1999年的全美自动售货机协会和全美咖啡服务协会的合并使人们更直观
5、地看到了这种融合现象。图1自动售货机工作流程图须经过反复调试、修改,直到满足要求为止。(5)必要时还需设计控制台(6)编制控制系统的技术文件。213控制系统设计的一般步骤(1)根据生产的工艺过程分析控制要求。(2)根据控制要求确定所需的用户输入、输出设备,据此确定PLC的I/O点数。(3)选择PLC系统。(4)分配PLC饿I/O点,设计I/O连接图。(5)进行PLC程序设计,同时可进行控制太的设计和现场施工。214程序设计的步骤(1)对于较复杂的控制系统,需绘制系统控制流程土,用以清楚地表明动作的顺序和条件。(2)设计梯形图。这程序设计的关键一步,也是比较困难的一步。(3)根据梯形图编制程序清
6、单。(4)用编程器将程序输入到PLC的用户存储器中,并检查输入的程序是否正确。(5)对程序进行调试和修改,直到满足要求为止。(6)待控制台及现场施工完成后,就可以进行联机调试。若未满足要求,再从新修改程序或检查接线,直到满足为止。(7)编写技术文件。(8)交付使用。控制系统设计步骤流程图如图4所示。图4PLC控制系统设计步骤3自动售货机PLC程序设计31仿真实验系统中售货机的分析由于售货机的全部功能时在上位机上模拟的,所以售货机的部分硬件是由计算机软件来模拟替代的。如钱币识别系统可以用按压某个“仿真对象”输出一个脉冲直接给PLC发布命令,而传动系统也是由计算机来直接模拟的,这些并不会影响实际程
7、序的操作,完全能模拟现实中自动售货机的运行。(1)试验状态假设由于是在计算机上模拟运行,试验中有一些区别于实际情况的假设,本试验中假设自动售货机只售8种商品。自动售货机可识别10元、5元、1元、5角、1角硬币。自动售货机可退币10元、5元、1元、5角、1角硬币。自动售货机有液晶显示功能。实验中售货机忽略了各种故障以及缺货等因素。(2)一次交易过程分析为了方便分析,我们以一次交易过程为例。初始状态。由电子标签显示各商品价格,显示屏显示友好界面,此时不能购买任何商品。投币状态。按下投币按钮,显示投币框,按下所投币值显示屏显示投入、消费、余额数值,当所投币值超过商品价格时,相应价格选择按钮发生变化,
8、提示可以购买。购买状态。按下可以购买的选择按钮,所选的商品出现在出货框中,同时显示屏上的金额数字根据消费情况相应变化。取走商品后出货框消失。退币按钮。按下退币按钮,显示退币框,同时显示出应退币值及数量。按下确认钮,则恢复初始状态。到此为止,自动售货机的一个完整工作过程结束。32设计任务的确定在清楚自动售货机运行工作过程的基础上,制定出设计方案,确定任务的目标,以设计出合理的仿真系统。首先,应该做上位机与下位机的任务分工上位机主要用来完成仿真界面的制作过程,而下位机则主要用来完成PLC程序的编写。其次,要分别对上位机和下位机进行资料的查找与收集。例如在进行仿真界面的设计时可以去观看一下真正售货机
9、的外观,必要时可以借助一些宣传图片来设计自动售货机的外型;在进行PLC程序的编写时需要先分配PLC的I/O点,确定上、下位机的接口。然后,分别对上、下位机分别进行设计工作。最后,进行上位机设计结果与下位机设计结果的配合工作,经调试后完成整个系统的设计另外,上位机与下位机的设计工作是密切配合的。它们无论在通信中使用的变量,还是在仿真中控制的对象都应该是一致的。总体上讲,仿真界面是被控对象,利用PLC来控制这个仿真的自动售货机,仿真的自动售货机接受PLC的控制指令并完成相应的动作;另一方面,仿真界面中的仿真自动售货机的运行,都是由组态界面所提供的命令语言来完成的。这是整个仿真系统内部各大部件之间的
10、内在关系。我主要是对自动售货机中的下位机,也就是主要是对PLC在其中的程序进行设计。仿真程序只做了解,虽然只做了解,但是也将在下面有所介绍。清楚了仿真实验的整体设计思路,下面就可以开始着手设计了。33程序设计部分这部分内容是整个系统设计的主体部分。所要完成的任务是仿真系统的上位机与下位机的程序设计,即在上述功能分析的基础上,有针对性地进行设计。331程序设计说明下位机程序的编制则是利用松下PLC专用编程软件FPWINGR完成的。在设计的过程中,就像上面所叙述的那样,并非孤立地分别进行上位机和下位机的设计工作,而是互相配合的。因此在以下的详细设计过程中,并没有将上位机的设计与下位机的设计整体分开
11、来写,而是相互交替,同时尽量清晰地叙述,在相应的设计部分中注明是上位机的设计还是下位机的设计。332PLC程序设计可以把一次交易过程分为几个程序块运行初期电子标签价格的内部传递;投币过程;价格比较过程;选择商品过程;退币过程。(1)运行初期电子标签价格的内部传递程序的设计仿真系统运行初期,要由PLC向仿真画面相应对象传递已经存储好的价格,还要给投入显示、消费显示及余额显示存储器清零,同时也要给存储退币币值的存储器清零。程序编制过程中,要用到运行初期闭合继电器R9013、16位数据传送指令FO,同时在上位机FORCECONTROL中,必须定义相应的变量,来实现与PLC程序的对接。所定义的变量如表
12、1所示。表1初始状态变量表根据表1编制PLC程序如图5所示。图5运行初期电子标签价格的内部传递程序在梯形图程序图5中,系统初始化时,通过运行初期闭合继电器R9013在第一次扫描时将数值传递给上位机。给WR1WR11及SV0SV4赋初值,赋值功能通过高级指令FO实现。至于为什么要加入WR13、WR15、WR17、WR19及WR20,在以后的程序中将介绍它们的作用。(2)投币过程在投币的过程中,每投下一枚硬币,投入显示将增加相应的币值,余额也增加同样币制。先建立变量表,在编写程序。变量表如表2所示。对应的梯形图程序如图7所示。F60CMP,WR3,WR9R900AY5R900B图8价格比较过程梯形
13、图(4)选择商品过程当投入的币值可以购买某种商品时,按下相应的“选择”按纽即可在出货框中出现该种商品,同时消费显示栏中显示出已经消费掉的金额,余额也将扣除已消费的币值,接着余额继续与价格相比较,判断是否能继续购买。出现在出货口的商品在没有取走前,一直保持显示状态,用鼠标点击该商品代表已经取走,出货口中的商品隐藏。建立的变量表如表4所示。对应的梯形图程序如图9所示。表4选择商品过程变量表在梯形图9中,一是要使商品出现在出货框中,二是要实现内部货币的运算。以第一步为例,按下选择01商品键,相当于给R205加一个信号(只接受一次脉冲,所以用DF微分指令),当YO接通01商品灯亮时,则系统显示可以购买
14、01商品。由于取01商品R230是常闭触点,故Y8输出,代表在出货框中出现01商品,购买成功。当按下取01商品按钮时,R230断开,不能输出Y8,代表01商品被取走。内部币值的计算和是否取走商品无关,只要按下选择按钮,并且可以购买此商品就要从余额中扣除相应的金额,显示消费的币值。加法由F20指令实现,减法由F25实现。R205Y0R230Y8DFY8R205Y0DF11F25,WR4,WR3F20,WR4,WR2R206Y1R231Y9DFY9R206Y1DF11F25,WR5,WR3F20,WR5,WR2R207Y2R232YADFYAR207Y2DF11F25,WR6,WR3F20,WR6
15、,WR2R208Y3R233YBDFYBR208Y3DF11F25,WR7,WR3F20,WR7,WR2R209Y4R234YCDFYCR209Y4DF11F25,WR8,WR3F20,WR8,WR2R20AY5R235YDDFYDR20AY5DF11F25,WR9,WR3F20,WR9,WR2R20BY6R236YEDFYER20BY6DF11F25,WR10,WR3F20,WR10,WR2R20CY7R237YFDFYFR20CY7DF11F25,WR11,WR3F20,WR11,WR2图9选择商品梯形图5退币过程在退币过程中,最主要的是完成退币的运算过程,根据结果输出相应的钱币,退币结束
16、时还要使用到的某些寄存器重新赋零。所建立的变量如表5所示。对应的梯形图程序如图10所示。表5退币过程变量表整个退币过程在按下按钮(即R20F接通时)时执行,同样也用到一个微分指令,在接收到信号时产生一次开关脉冲,进而执行一次其下面的指令。F32是除法指令,第一次将余额的币值除以1000,商存储于SV0中,作为退币10元的输出值。余数则存储于特殊数据寄存器DT9015中,下次将不能被1000(10元)整除的余数除以100(5元),商且存储于SV1中,余数继续下传,直至被1角除过,由于所投币值最小是1角,并且商品价格也确定在整角,所以最终能被1角整除。在程序的初始化时曾给WR13、WR15、WR1
17、7、WR19和WR20赋零,WR13、WR15、WR17、WR19和WR20是程序的中间量,为的只是程序在使用过程中能稳定执行,避免出现退币错误。为什么要除以1000呢这主要是考虑到PLC的主要特点是执行过程稳定可靠,但执行速度较慢。在计算时尽量将数值作为整数计算,因为是在计算机上模拟,可以把一部分功能交由计算机来实现,这里把1角当作10、5角当作50、1元当作100、5元当作500、10元当作1000,可以避免把这些数据当作有小数点的实数计算,这同前面的加1角等于10(K10)是相同的道理。至于交由计算机的任务将在以后叙述。退币过程结束后,PLC要将寄存器中的数值置回原定的初值0,完成一次交
18、易,防止下一次交易时出错。梯形图36用来完成对数据的初始化。程序中分别将投入显示、消费显示、余额显示、10元存储、5元存储、1元存储、5角存储和1角存储清零,还将中间量WR13、WR15、WR17、WR19和WR20清零。完成了以上5个过程,自动售货机的PLC控制程序基本完成,程序可以控制售货机实现各种要求的功能。图10退币过程梯形图34仿真界面与PLC的配合定义在这一段中,将仔细分析仿真界面各部分是如何与PLC连接的。分析过程是按照一次交易的实际情况来进行的,即由初始状态、投币状态、购买状态、退币状态到交易结束。(1)初始状态通过分析得知,当电子标签显示各商品的价格、显示屏显示友好界面时,不
19、能购买任何商品。因此先让变量POIWINDOWS0系统默认。电子标签中的字符J01以01商品为例对应的变量JG01PV与PLC程序中的地址WR4相匹配,WR4中存储的数据为250,即让字符显示250元。对应的梯形图如图11所示(2)投币状态当投币时,按下“投币”提示字,出现投币框。如何定义“投币”呢双击汉字“投币”,来到“动画连接”画面,选择“触敏动作”,在“动作描述”框中做如下定义按下鼠标时,POIWINJB1,POIWINJB这个变量是控制投币框的,当POIWINJB1时,出现钱币和提示框;POIWINJB0R0F0MV,K0,WR1F0MV,K0,WR2F0MV,K0,WR3F0MV,K
20、0,WR13F0MV,K0,WR15F0MV,K0,WR17F0MV,K0,WR19F0MV,K0,WR20F0MV,K0,SV0F0MV,K0,SV1F0MV,K0,SV2F0MV,K0,SV3F0MV,K0,SV4图11数据初始化梯形图时,钱币和提示框隐藏。下面分别定义提示框和钱币以及“确认”按钮,双击提示框,来到“动画连接”画面,定义POIWINJB1时显示,各硬币也用同样的方法定义,“确认”按钮也同样定义,这样就使在按下汉字“投币”时,变量POIWINJB1,从而出现投币框,以及硬币等。我们只是定义了投币框的显示状态,用鼠标点击代替了实际过程中的饿钱币投入动作,最重要的任务是投币运算,
21、下面介绍钱币的定义351定义I/O设备数据库是从I/O驱动程序中获取过程数据的,而数据库同时可以与多个I/O驱动程序进行通信,一个I/O驱动程序也可以连接一个或多个设备。下面创建I/O设备。(1)在DRAW导航器中双击“实时数据库”项使其展开,在展开项目中选择“PLC”项双击使其展开后,选择项目双击并定义。(2)单击“完成”按钮返回,在“松下电工”项目下增加一项“PLC001”,如果要对I/O设备“PLC001”的配置进行修改,双击项目“PLC001”,会再次出现PLC001的“I/O设备定义”对话框。若要删除I/O设备“PLC001”,用鼠标右键单击项目“PLC001”,在弹出的右键菜单中选
22、择“删除”。数据连接刚刚创建了一个名为“PLC001”的I/O设备,而且它连接的正是假想的PLC设备。现在的问题是如何将已经创建的多个数据库点与PLC联系起来,以使这些点的PV参数值能与I/O设备PLC进行实时数据交换,这个过程就是建立数据连接的过程。由于数据库可以与多个I/O设备进行数据交换,所以必须指定哪些点与哪些个I/O设备建立数据连接。为方便其见,我们将数据列整理成如表6、表7所示。表6数字I/ONAMEDESCIOLINK点名说明I/O连接1CX0101商品出现PVPLC001序号,寄存器,地址,偏移200000820082CX0202商品出现PVPLC001序号,寄存器,地址,偏移
23、200000920093CX0303商品出现PVPLC001序号,寄存器,地址,偏移20000010200104CX0404商品出现PVPLC001序号,寄存器,地址,偏移20000011200115CX0505商品出现PVPLC001序号,寄存器,地址,偏移20000012200126CX0606商品出现PVPLC001序号,寄存器,地址,偏移20000013200137CX0707商品出现PVPLC001序号,寄存器,地址,偏移20000014200148CX0808商品出现PVPLC001序号,寄存器,地址,偏移20000015200159D0101商品灯亮PVPLC001序号,寄存器,
24、地址,偏移2000000200010D0202商品灯亮PVPLC001序号,寄存器,地址,偏移2000001200111D0303商品灯亮PVPLC001序号,寄存器,地址,偏移2000002200212D0404商品灯亮PVPLC001序号,寄存器,地址,偏移2000003200313D0505商品灯亮PVPLC001序号,寄存器,地址,偏移2000004200414D0606商品灯亮PVPLC001序号,寄存器,地址,偏移2000005200515D0707商品灯亮PVPLC001序号,寄存器,地址,偏移2000006200616D0808商品灯PVPLC001序号,寄存器,地址,偏移20
25、00007200717Q01取01商品PVPLC001序号,寄存器,地址,偏移30023003023018Q02取02商品PVPLC001序号,寄存器,地址,偏移30023013023119Q03取03商品PVPLC001序号,寄存器,地址,偏移30023023023220Q04取04商品PVPLC001序号,寄存器,地址,偏移30023033023321Q05取05商品PVPLC001序号,寄存器,地址,偏移30023043023422Q06取06商品PVPLC001序号,寄存器,地址,偏移30023053023523Q07取07商品PVPLC001序号,寄存器,地址,偏移300230630
26、23624Q08取08商品PVPLC001序号,寄存器,地址,偏移30023073023725TENTER退币处理PVPLC001序号,寄存器,地址,偏移300201530201526TR1投入1角PVPLC001序号,寄存器,地址,偏移30020003020027TR10投入10角PVPLC001序号,寄存器,地址,偏移30020023020228TR100投入100角PVPLC001序号,寄存器,地址,偏移30020043020429TR5投入5角PVPLC001序号,寄存器,地址,偏移30020013020130TR50投入50角PVPLC001序号,寄存器,地址,偏移300000330
27、20331TUIBIOK退币OKPVPLC001序号,寄存器,地址,偏移30000003020032XZ01选择01商品PVPLC001序号,寄存器,地址,偏移30020053020533XZ02选择02商品PVPLC001序号,寄存器,地址,偏移300200630206续表634XZ03选择03商品PVPLC001序号,寄存器,地址,偏移30020073020735XZ04选择04商品PVPLC001序号,寄存器,地址,偏移30020083020836XZ05选择05商品PVPLC001序号,寄存器,地址,偏移30020093020937XZ06选择06商品PVPLC001序号,寄存器,地址
28、,偏移3002001030201038XZ07选择07商品PVPLC001序号,寄存器,地址,偏移3002001130201139XZ08选择08商品PVPLC001序号,寄存器,地址,偏移3002001230201240KUANG购物框PVPLC001序号,寄存器,地址,偏移300210030210表7模拟I/O表352设计1自动售货机控制要求(1)该自动售货机可以同时投入5角、1元、或5元硬币,自动销售汽水、果汁和咖啡(2)当投入的硬币总值等于或超过15元时,汽水按钮指示灯亮当投入的硬币总值等于或超过3元时,汽水按钮和果汁按钮同时亮当投入的硬币总值等于或超过5元时,汽水按钮、果汁按钮和咖啡
29、按钮同时亮(3)当汽水按钮灯亮时,按汽水按钮,则汽水排出10S后自动停止,同时汽水按钮指示灯闪烁10S(4)当果汁按钮灯亮时,按果汁按钮,则果汁排出10S后自动停止,同时果汁按钮指示灯闪烁10S(5)当咖啡按钮灯亮时,按咖啡按钮,则咖啡排出10S后自动停止,同时咖啡按钮指示灯闪烁10S(6)若投入的硬币总值超过所购商品的价格汽水15元,果汁3元,咖啡5元,则找钱指示灯亮,同时进行找钱动作图13自动售货机示意图2I/O地址定义表此控制系统可采用自动工作方式,输入信号为汽水、果汁、咖啡按钮、5角、1元、5元硬币投入识别口记数手动复位按钮;输出信号为汽水、果汁、咖啡排出电磁阀、找钱电磁阀及相应指示灯,共7个输入点,8个输出点,均为开关量。I/O地址定义如表8所示。3程序设计图14自动售货机梯形图353运行保存所有组态内容,然后关闭所有力控程序。将自动售货机的PLC程序下传到PLC装置中,再切换到离线状态,然后再次启动力控工程管理器,选择本工程,并单击“进入运行”按钮启动整个运行系统。