组态王监控简易自动售货机控制系统的设计_毕业论文.doc_第1页
组态王监控简易自动售货机控制系统的设计_毕业论文.doc_第2页
组态王监控简易自动售货机控制系统的设计_毕业论文.doc_第3页
组态王监控简易自动售货机控制系统的设计_毕业论文.doc_第4页
组态王监控简易自动售货机控制系统的设计_毕业论文.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广西职业技术学院毕业论文(设计)摘 要随着社会的发展,越来越多便利人们的东西出现在了这个世界上,自动售货机就是其中之一。自动售货机的新奇、高档、文明、灵活方便等深受广大人们青睐。为此,本文设计了一个基于组态王6.53作为上位机监控画面,plc作为下位机控制简易自动售货机的控制系统。简易自动售货机能出售12元/瓶的咖啡和15元/瓶的可乐两种饮料;机器有一个投币孔,能识别1 元、5元、10元三种硬币;当投入的钱足够购买饮料后,顾客才可以选择要购买的饮料,售货机也才会自动售出饮料等等。简言之,简易自动售货机能计算投币总额并显示出来,自动判断是否超过、正好或者少于饮料的价格,并发出可购买饮料、找零等信号,同时具有销售数量和销金额的累加功能。组态王画面能实时监控售货机的销售情况,画面与实际控制同步,美观形象,功能齐全,画面间易于切换,同时有各种变量的查询与记录(如实时报表,历史报表和报警记录等)。关键词 自动 售货机 监控 销售 1 前言1.1 自动售货机的背景与实际意义从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。在中国,自动售货机1999年开始进入中国市场如今,在机场、地铁、商场、公园等客流较大的场所,已不难发现自动售货机的身影。从广义来讲,自动售货机是投入硬币、纸币、信用卡等后便可以销售商品的机械;从狭义来讲,自动售货机就是自动销售商品的机械。从供给的条件看,自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要的资本少、面积小,可以很好地解决人工费用上升的问题等各项优点。现在,自动售货机产业正在走向信息化并进一步实现合理化。例如实行联机方式,通过电话线路将自动售货机内的库存信息及时地传送各营业点的电脑中,从而确保了商品的发送、补充以及商品选定的顺利进行。并且,自动售货机也将进一步向节省资源和能源以及高功能化的方向发展。1.2 本论文的设计目的为了提高个人对所学知识(组态王软件使用与plc应用)的综合运用能力,独立工作能力,以及分析和解决问题能力,而选择写此论文。这有利于我对所学知识的复习和巩固。1.3 简易自动售货机监控系统设计要求售货机能销售12元/瓶的咖啡和15元/瓶的可乐两种饮料,具有硬币识别、币值显示、币值累加、自动售货、自动找钱等功能,可接受1 元、5元、10元三种硬币。具体要求如下:(1)如果投入的硬币总值等于或超过12元,咖啡指示灯亮,如果投入的硬币总值等于或超过15元,则咖啡和可乐的指示灯都亮。数码管同时显示所投入的总钱数。(2)咖啡指示灯亮时,若按下“咖啡”按钮,则咖啡从售货口自动售出。咖啡指示灯闪烁(闪烁频率为1sno,1soff),6s后自动停止。(3)可乐指示灯亮时,若按下“可乐”按钮,则可乐从售货口自动售出。可乐指示灯闪烁(闪烁频率为1sno,1soff),6s后自动停止。(4)当按下咖啡按钮或可乐按钮后,如果投入的硬币总值超过所需钱数时,找钱指示灯亮,售货机以1元硬币的形式自动退出多余的钱,数码管显示清0。(5)如果售货口发生故障,或顾客投入硬币后又不想买了(未按咖啡按钮或可乐按钮),可按复位按钮,售货机以1元硬币的形式如数退出顾客已投入的硬币,数码管显示清0。(6)具有销售数量和销金额的累加功能。(7)利用组态王6.53建立对简易售货机的监控画面,能实时监控简易自动售货机的销售情况。1.4 简易自动售货机监控系统设计的基本思路上位机组态王监控画面和下位机plc程序不必一口气完成,可以分步进行设计。plc程序设计思路如下:编写硬币识别程序,识别投入硬币面值并保存,编写数码管显示程序,能显示投入的钱数,编写指示灯程序,自动判断投入钱数点亮相应指示灯,编写售货程序,当投入钱数足够购买货物时,可选择购物,编写计时程序,作指示灯亮灭的计时,编写记录程序,能记录销售信息。各步程序的编写都是基于上一步完成的程序上,最后修善可得完整的控制程序。组态王监控画面设计思路如下:建立监控主画面,设置相应变量及动画效果,建立报表、报警等画面,并完成相关设置。组态王各画面要美观形象、易于切换。2 简易自动售货机监控系统2.1 下位机plc程序2.1.1 plc的i/o点定义plc的i/o点定义如表2.1.1。表2.1.1 plc的i/o点分配定义点功能输入x0启动x1投币1元x2投币5元x3投币10元x4选择咖啡x5选择可乐x6复位输出y1咖啡指示灯y2可乐指示灯y3找钱指示灯y10y177段数码管(1)abcdefgy20y277段数码管(2)abcdefg 2.1.2 plc梯形图程序设计梯形图是用的最多的plc图形编程语言。梯形图语言是在传统电器控制系统中常用的接触器、继电器等图形表达符号的基础上演变而来的。它与电器控制线路图相似。继承了传统电器控制逻辑中使用的框架结构、逻辑运算方式和输入输出形式,具有形象、直观、实用的特点。因此,这种编程语言为广大电气技术人员所熟知,是应用最广泛的plc的编程语言,是plc的第一编程语言。本论文选用三棱可编程控制器(plc)fx系列,可用plc程序设计软件gx developer version编辑plc梯形图程序如图2.1.2(有“*” 之后的文字为注释语言):* 当d10 15,m3=1;当d10=15,m4=1;当d1012,m0=1;当d10=12,m1=1;当d101,m0=1;当d0=1,m1=1;当d0=12) if(本站点定时6秒2=0) 本站点选择咖啡=1; 本站点咖啡指标灯=1; 本站点定时6秒1=1; 可乐: if(本站点启动系统=1) if(本站点实时钱数2=15) if(本站点定时6秒1=0) 本站点选择可乐=1; 本站点可乐指标灯=1; 本站点定时6秒2=1; 复位:if(本站点启动系统=1) 本站点复位=1; 启动:本站点启动系统=1;(4)显示:双击“¥”右边的“#”, 在弹出的“动画连接”对话框钩选“模拟值输出”选项,在弹出的“模拟值输出连接”的“表达式”栏中输入:本站点实时钱数2(5)投币口:分别双击三个长方图形(在分解图中标有编号1、2、3的三个长方图形),在弹出的“动画连接”对话框钩选“闪烁”和“隐含”选项,在弹出的“闪烁连接”对话框设置分别为1:闪烁条件:本站点投币1元=1闪烁速度:100毫秒/隔2:闪烁条件:本站点投币5元=1闪烁速度:100毫秒/隔3:闪烁条件:本站点投币10元=1闪烁速度:100毫秒/隔在弹出的“隐含连接”对话框设置分别为1:条件表达式:本站点投币1元=1表达式为真时:显示2:条件表达式:本站点投币5元=1表达式为真时:显示3:条件表达式:本站点投币10元=1表达式为真时:显示(6)退币口:退币口中“1元”硬币由三个部分组成(文字“1元”、一个椭圆和一个椭圆按钮),分别双击这三个部分,在弹出的“动画连接”对话框钩选“闪烁”和“隐含”选项,在弹出的“闪烁连接”对话框设置都为闪烁条件:本站点找钱指标灯=1闪烁速度:100毫秒/隔在弹出的“隐含连接”对话框设置都为条件表达式:本站点找钱指标灯=1表达式为真时:显示(7)售货口:一个咖啡瓶和一个可乐瓶图片,分别双击这两张图片,在弹出的“动画连接”对话框钩选“隐含”选项,在弹出的“隐含连接”对话框设置分别为:咖啡:条件表达式:本站点计数11表达式为真时:显示可乐:条件表达式:本站点计数21表达式为真时:显示(8)挡片1和挡片2是分别用来遮挡一瓶咖啡和一瓶可乐的,分别双击这两个挡片,在弹出的“动画连接”对话框钩选“闪烁”和“隐含”选项,在弹出的“闪烁连接”对话框设置分别为:挡片1:闪烁条件:本站点定时6秒1=1闪烁速度:800毫秒/隔挡片2:闪烁条件:本站点定时6秒2=1闪烁速度:800毫秒/隔在弹出的“隐含连接”对话框设置分别为:挡片1:条件表达式:本站点定时6秒1=1表达式为真时:显示挡片2:条件表达式:本站点定时6秒2=1表达式为真时:显示(9)分别双击售货机主画面左边的“#”或“#”, 在弹出的“动画连接”对话框钩选“模拟值输出”选项,在弹出的“模拟值输出连接”的“表达式”栏中输入的内容与其左边文字有对应关系,具体如表2.2.5(9):表2.2.5(9)实时币数实时售出历史币数历史售出1元本站点投入1元币数本站点投入1元总币数5元本站点投入5元币数本站点投入5元总币数10元本站点投入10元币数本站点投入10元总币数咖啡本站点单次咖啡销量本站点咖啡总销量2可乐本站点单次可乐销量本站点可乐总销量2历史投钱总数本站点历史投钱总数实时退币数本站点单次应退币数历史退币数本站点历史退币总数营业额实时本站点单次营业额历史本站点营业总额2(10)画面属性命令语言在售货机主画面随意一处单击右键,在弹出选项中选择“画面属性”,则弹出“画面属性”对话框,单击“命令语言”,在弹出的“画面命令语言”对话框,将右上角“每3000毫秒”改为“每1000毫秒”,在“存在时”输入框中输入下面命令语言:if(本站点定时6秒1=1) 本站点计数1=本站点计数1+1; if(本站点计数1=1) 本站点咖啡指标灯=0;本站点找钱指标灯=1;本站点实时钱数2=本站点实时钱数2-1; if(本站点计数1=2) 本站点咖啡指标灯=1;本站点实时钱数2=本站点实时钱数2-1; if(本站点计数1=3) 本站点咖啡指标灯=0;本站点实时钱数2=本站点实时钱数2-1; if(本站点计数1=4) 本站点咖啡指标灯=1; 本站点实时钱数2=本站点实时钱数2-1; if(本站点计数1=5) 本站点咖啡指标灯=0;本站点实时钱数2=本站点实时钱数2-1; if(本站点计数1=6) 本站点咖啡指标灯=1;本站点实时钱数2=本站点实时钱数2-1; if(本站点计数1=7) 本站点找钱指标灯=0; 本站点计数1=0; 本站点定时6秒1=0; 本站点投入1元币数=0; 本站点投入5元币数=0; 本站点投入10元币数=0; 本站点单次咖啡销量=0; 本站点单次可乐销量=0; 本站点单次营业额=0; 本站点实时钱数2=0; if(本站点定时6秒2=1) 本站点计数2=本站点计数2+1; if(本站点计数2=1) 本站点可乐指标灯=0;本站点找钱指标灯=1;本站点实时钱数2=本站点实时钱数2-1; if(本站点计数2=2) 本站点可乐指标灯=1;本站点实时钱数2=本站点实时钱数2-1; if(本站点计数2=3) 本站点可乐指标灯=0;本站点实时钱数2=本站点实时钱数2-1; if(本站点计数2=4) 本站点可乐指标灯=1;本站点实时钱数2=本站点实时钱数2-1; if(本站点计数2=5) 本站点可乐指标灯=0;本站点实时钱数2=本站点实时钱数2-1; if(本站点计数2=6) 本站点可乐指标灯=1;本站点实时钱数2=本站点实时钱数2-1; if(本站点计数2=7) 本站点找钱指标灯=0; 本站点计数2=0; 本站点定时6秒2=0; 本站点投入1元币数=0; 本站点投入5元币数=0; 本站点投入10元币数=0; 本站点单次咖啡销量=0; 本站点单次可乐销量=0; 本站点单次营业额=0; 本站点实时钱数2=0; if(本站点复位=1) if(本站点实时钱数20) 本站点找钱指标灯=1; if(本站点计数3=0) 本站点单次应退币数=本站点实时钱数2; 本站点历史退币总数=本站点历史退币总数+本站点单次应退币数; 本站点计数3=本站点计数3+1; 本站点投入1元币数=0; 本站点投入5元币数=0; 本站点投入10元币数=0; 本站点单次咖啡销量=0; 本站点单次可乐销量=0; 本站点单次营业额=0; if(本站点计数3=1) 本站点实时钱数2=本站点实时钱数2-1; if(本站点计数3=2) 本站点实时钱数2=本站点实时钱数2-1; if(本站点计数3=3) 本站点实时钱数2=本站点实时钱数2-1; if(本站点计数3=4) 本站点实时钱数2=本站点实时钱数2-1; if(本站点计数3=5) 本站点实时钱数2=本站点实时钱数2-1; if(本站点计数3=6) 本站点实时钱数2=本站点实时钱数2-1; if(本站点计数3=7) 本站点计数3=0; 本站点找钱指标灯=0; 本站点复位=0; 本站点实时钱数2=0; (11)应用程序命令语言打开“工程浏览器简易售货机”“命令语言”,双击“应用程序命令语言”,则弹出“应用程序命令语言”对话框,将右上角“每3000毫秒”改为“每55毫秒”,在“运行时”输入框中输入下面命令语言:if(本站点启动系统=1) if(本站点投币1元=1) 本站点投入1元币数=本站点投入1元币数+1; 本站点投入1元总币数=本站点投入1元总币数+1; 本站点实时钱数2=本站点实时钱数2+1; 本站点投币1元=0; if(本站点投币5元=1) 本站点投入5元币数=本站点投入5元币数+1; 本站点投入5元总币数=本站点投入5元总币数+1; 本站点实时钱数2=本站点实时钱数2+5; 本站点投币5元=0; if(本站点投币10元=1) 本站点投入10元币数=本站点投入10元币数+1; 本站点投入10元总币数=本站点投入10元总币数+1; 本站点实时钱数2=本站点实时钱数2+10; 本站点投币10元=0; if(本站点实时钱数2=12) 本站点咖啡指标灯=1; if(本站点选择咖啡=1) 本站点实时钱数2=本站点实时钱数2-12; 本站点单次咖啡销量=本站点单次咖啡销量+1; 本站点咖啡总销量2=本站点咖啡总销量2+1; else 本站点咖啡指标灯=0; if(本站点实时钱数2=15) 本站点可乐指标灯=1; if(本站点选择可乐=1) 本站点实时钱数2=本站点实时钱数2-15; 本站点单次可乐销量=本站点单次可乐销量+1; 本站点可乐总销量2=本站点可乐总销量2+1; else 本站点可乐指标灯=0;/ 本站点单次营业额=本站点单次咖啡销量*12+本站点单次可乐销量*15; 本站点营业总额2=本站点咖啡总销量2*12+本站点可乐总销量2*15; 本站点历史投钱总数=本站点投入1元总币数*1+本站点投入5元总币数*5+本站点投入10元总币数*10;/ if(本站点实时钱数2=0) if(本站点选择咖啡=1&本站点定时6秒2=0) 本站点选择咖啡=0;本站点单次应退币数=本站点实时钱数2; 本站点历史退币总数=本站点历史投钱总数-本站点营业总额2; if(本站点选择可乐=1&本站点定时6秒1=0) 本站点选择可乐=0;本站点单次应退币数=本站点实时钱数2; 本站点历史退币总数=本站点历史投钱总数-本站点营业总额2; 2.2.6 实时售货报表新建画面,画面名称为“实时售货报表”,在画面里插入报表窗口report0,并设置成如图2.2.6(1)。图2.2.6(1) 实时售货报表(1)点击报表工具箱上保存按钮,将此报表存于电脑本工程文件夹下,名为“实时售货报表模板.rtl”。在报表窗口report0中连接实时变量,如图2.2.6(2)。图2.2.6(2)实时售货报表(2)在电脑本工程文件夹下新建一个文件夹“实时售货报表储存”(本论文路径为“f:2010毕业设计完成它就毕业组态简易售货机简易售货机实时售货报表储存”)在画面属性命令对话框中的“存在时”输入以下命令:string filename;if(本站点计数1=4)|(本站点计数2=4)filename=f:2010毕业设计完成它就毕业组态简易售货机简易售货机实时售货报表储存+strfromreal( 本站点$年, 0, f )+strfromreal( 本站点$月, 0, f )+strfromreal( 本站点$日, 0, f )+strfromreal( 本站点$时, 0, f )+strfromreal( 本站点$分, 0, f )+strfromreal( 本站点$秒, 0, f )+.rtl;reportsaveas(report0,filename);在画面里再插入报表窗口report1,点击报表工具箱上打开按钮,打开“实时售货报表模板.rtl”。在画面里插入下拉式组合框控件ctrl0和两个按钮(“报表查询”和“打印报表”)。分别双击这两个按钮,报表查询“动画连接”“弹起时”“命令语言”中输入:string filename;filename=f:2010毕业设计完成它就毕业组态简易售货机简易售货机实时售货报表储存+本站点报表查询变量;reportload(report1,filename);listclear(ctrl0);listloadfilename( ctrl0, f:2010毕业设计完成它就毕业组态简易售货机简易售货机实时售货报表储存*.rtl );打印报表“动画连接”“弹起时”“命令语言”中输入:reportprint2(report1);2.2.7 历史售货报表新建画面,画面名称为“历史售货报表”,在画面里插入报表窗口report2,并设置成如图2.2.7(1)。图2.2.7(1) 历史售货报表点击报表工具箱上保存按钮,将此报表存于电脑本工程文件夹下,名为“历史售货报表模板.rtl”。在电脑本工程文件夹下新建一个文件夹“历史售货报表储存”(本论文路径为“f:2010毕业设计完成它就毕业组态简易售货机简易售货机实时售货报表储存”)在“工程浏览器的”“文件”“命令语言”“事件命令语言” ,事件描述“选择咖啡=1|选择可乐=1”,在 “消失时”输入以下命令:long row,row=row+2;reportsetcellstring(report2, row, 1, 本站点$日期);reportsetcellstring(report2, row, 2, 本站点$时间);reportsetcellvalue(report2, row, 3,本站点投入1元总币数);reportsetcellvalue(report2, row, 4, 本站点投入5元总币数);reportsetcellvalue(report2, row, 5, 本站点投入10元总币数);reportsetcellvalue(report2, row, 6, 本站点咖啡总销量2);reportsetcellvalue(report2, row, 7,本站点可乐总销量2);reportsetcellvalue(report2, row, 8, 本站点营业总额2);reportsetcellvalue(report2, row, 9,本站点历史投钱总数);if(row=102)string filename;filename=f:2010毕业设计完成它就毕业组态简易售货机简易售货机历史售货报表储存+strfromreal( 本站点$年, 0, f )+strfromreal( 本站点$月, 0, f )+strfromreal( 本站点$日, 0, f )+strfromreal( 本站点$时, 0, f )+strfromreal( 本站点$分, 0, f )+strfromreal( 本站点$秒, 0, f )+.rtl;reportsaveas(report2,filename);reportsetcellstring2(report2, 2, 1, 102, 10, );在画面里再插入报表窗口report3,点击报表工具箱上打开按钮,打开“历史售货报表模板.rtl”。在画面里插入下拉式组合框控件ctrl1和两个按钮(“报表查询”和“打印报表”)。分别双击这两个按钮,报表查询“动画连接”“弹起时”“命令语言”中输入:string filename;filename=f:2010毕业设计完成它就毕业组态简易售货机简易售货机历史售货报表储存+本站点报表查询变量;reportload(report3,filename);listclear(ctrl1);listloadfilename( ctrl1, f:2010毕业设计完成它就毕业组态简易售货机简易售货机历史售货报表储存*.rtl );打印报表“动画连接”“弹起时”“命令语言”中输入:reportprint2(report3);2.2.8 报警记录新建画面,画面名称为“报警记录”,在画面里插入两个报警窗口,一个设置成实时报警窗,一个设置成历史报警窗。在“工程浏览器的”“系统配置”“报警配置”,打开“报警配置属性页”对话窗口,将“文件配置”下的“记录报警事件到文件”、 “记录操作事件到文件”、 “记录登陆事件到文件”和“记录工作站事件到文件”打上钩。在“工程浏览器的”“数据库”“报警组”,在“报警组定义”对话窗中设置如图2.2.8(1)。 2.2.8(1) 报警组定义 2.2.8(2)报警定义双击“数据词典”中需要进行报警定义的变量,在“定义变量对话框”“报警定义”中完成报警记录设置。根据不同的需要可对不同变量进行不同定义。如图2.2.8(2)。2.2.9 画面切换在每本工程中的每一个画面中都插入“菜单”,双击菜单,在“菜单定义”“菜单项”中用除了本画面外的每一个画面名称作为菜单项,如图2.2.9,是售货机主画面菜单项,在“菜单定义”“命令语言”,弹出“命令语言”对话框中输入:if(menuindex=0)showpicture( 报警记录);if(menuindex=1)showpicture( 实时售货报表);if(menuindex=2)showpicture( 历史售货报表);图2.2.9 菜单定义3 结果分析简易自动售货机的控制系统基本实现其预想功能。3.1 下位机plc程序运行结果按下启动按钮后(1)如果投入的硬币总值等于或超过12元(d10=12),咖啡指示灯亮(y1=1),如果投入的硬币总值等于或超过15元(d10=15),则咖啡和可乐的指示灯都亮(y1=1,y2=1)。数码管同时显示所投入的总钱数。(2)咖啡指示灯亮时(y1=1),若按下“咖啡”按钮(x4=1),则咖啡从售货口自动售出。咖啡指示灯闪烁(闪烁频率为1sno,1soff),6s后自动停止。(3)可乐指示灯亮时(y2=1),若选择“可乐”按钮,则可乐从售货口自动售出。可乐指示灯闪烁(闪烁频率为1sno,1soff),6s后自动停止。(4)当按下咖啡按钮或可乐按钮后,如果投入的硬币总值超过所需钱数时,找钱指示灯亮(y3=1),售货机以1元硬币的形式自动退出多余的钱(每1秒钟退1个币),数码管显示清0。(5)如果售货口发生故障,或顾客投入硬币后又不想买了(未按咖啡按钮或可乐按钮),可按复位按钮(x6=1),售货机以1元硬币的形式如数退出顾客已投入的硬币,数码管显示清0。(6)具有销售数量和销金额的累加功能(d50记录了咖啡总销量,d51记录了可乐总销量,d52记录了营业总额)。3.2 上位机组态王画面仿真结果3.2.1 售货机主画面如图3.2.1售货机主画面,按下启动按钮后(1)单击硬币按钮(投币时投币口会闪动表示投币),如果投入的硬币总值等于或超过12元,咖啡指示灯亮,如果投入的硬币总值等于或超过15元,则咖啡和可乐的指示灯都亮。数码管同时显示所投入的总钱数。(2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论