基于PLC和组态王软件的自动售货机系统设计论文.docx
- 文档编号:44190
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:60
- 大小:909.38KB
基于PLC和组态王软件的自动售货机系统设计论文.docx
《基于PLC和组态王软件的自动售货机系统设计论文.docx》由会员分享,可在线阅读,更多相关《基于PLC和组态王软件的自动售货机系统设计论文.docx(60页珍藏版)》请在冰点文库上搜索。
基于PLC和组态王软件的自动售货机系统设计论文
毕业论文声明
本人郑重声明:
1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。
除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。
对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。
本人完全意识到本声明的法律结果由本人承担。
2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。
本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。
3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。
4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。
论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。
学位论文作者(签名):
年月
关于毕业论文使用授权的声明
本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。
本人完全了解大学有关保存,使用毕业论文的规定。
同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。
本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。
本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。
本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:
按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入学校有关数据库和收录到《中国学位论文全文数据库》进行信息服务。
在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。
论文作者签名:
日期:
指导教师签名:
日期:
综合性设计性实验报告
院/系别:
昆仑学院班级:
自动化20112014—2015学年第一学期
学号
姓名
指导教师
课程名称
综合设计型实验
实验名称
基于PLC和组态王软件的自动售货机系统设计
实验类型
设计性
实验地点
化工学院智能系统与控制实验室
实验时间
实验内容:
本实验是基于PLC和组态王软件的自动售货机系统设计。
对于自动售货机的各种动作功能和控制要求,给出了完整的自动售货机的操作及功能的运算。
售货机中有4中食品,食品A价格4元,食品B价格1元,食品C价格2元,食品D价格3元。
现投入纸币,当投入的纸币超过食品B的价格时,食品B指示灯亮,提示可以购买,当犹如的纸币超过食品C的价格,食品C指示灯亮。
当按下食品C按钮时,售货机进行减法运算,从投入的纸币总值中减去食品B的价格同时启动相应的电机,提取食品B到出物口,食品B出货7秒,在此期间不能进行其他食品的操作,但可找钱。
买食品ACD操作同理。
操作完成后,如需继续交易,则同上,如果此时不再购买而按下退币按钮,售货机则要进行退币操作,返回相应的货币,并在程序中清零,完成此次交易。
由此看来,自动售货机进行一次交易要涉及加法运算、减法运算以及退币时的除法运算,这是它的内部功能。
还要有纸币识别系统和纸币的传动来实现完整的售货、退币功能。
可通过操作属性把自动售货机分为四个过程:
(1)投币过程
(2)价格比较过程
(3)选择商品过程
(4)退币过程
可把自动售货机工作过程分为四个状态:
(1)初始状态
(2)投币状态
(3)购买状态
(4)退币状态
实验目的与要求:
1、运用基本编程指令编辑自动售货机的PLC控制程序。
进一步熟悉西门子S7-200的结构及其运用,将程序输入到计算机,并下载到西门子S7-200中,是按照要求运行。
2、本实验旨在帮助学生学习并掌握组态软件的使用及应用方法,为今后的监控系统的设计打下初步基础。
本次上机使用的平台是组态王6.55及以上版本。
通过组态软件设计的监控系统可广泛应用于电力、通讯、制冷、化工、石油、钢铁、煤炭、水泥、纺织、机械制造、造纸、食品、水处理、建材、环保、智能楼宇、实验室、交通等多种工程领域,在本次实验中,我们将通过对软件的学习掌握监控系统的设计方法和应用技巧,为以后的工作、学习奠定坚实的基础。
设计思路:
1、PLC的硬件组成
PLC的硬件主要由中央处理器(CPU)、存储器、输入单元、通信接口、扩展接口、电源等几部分组成。
其中,CPU是PLC的核心;输入单元/输出单元是CPU与现场输入/输出设备之间的接口电路;通信接口用于连接编程器、上位计算器等外部设备,其硬件构成图如下图所示:
2、PLC控制流程图
绘出自动售货机PLC控制流程图,表达出各控制对象的工作顺序,相互间的制约关系,自动售货机PLC控制流程图,如下图所示:
关键技术分析:
(1)利用PLC(S7—200)及自动售货机模型组建自动售货机控制系统的硬件。
(2)利用STEP7编制自动售货机控制程序梯形图。
(3)利用组态王编制远程监控程序。
(4)设计图形界面(定义画面)
(5)定义设备;
(6)构造数据库(定义变量)
(7)建立动画连接;
(8)运行和调试
实验过程:
1、在西门子step7-200中的编程。
2组态王工程
2.1新建工程
打开组态王6.55,点击新建,将工程保存在我的电脑/E:
/临时文件/plc组态王中,工程名称为售货机,创建过程如下图:
2.2新建设备
点击工程浏览器中的设备选项,双击新建。
进入设备配置向导,选择PLC下的西门子S7-200(S7).如图所示:
2.3售货机主画面
1.自动售货机主画面
新建工程,工程名称为“售货机”。
新建画面,画面名称“自动售货机主画面”。
如下图所示,售货机表面由按钮、指示灯、文字、点位图等组成。
2.4数据词典
2.5分别双击售货机主画面中的“###”或“###”,在弹出的“动画连接”对话框钩选“模拟值输出”选项,在弹出的“模拟值输出连接”的“表达式”栏中输入的内容与文字有对应关系:
实时币数
历史币数
实时售出
历史售出
1元
\\本站点\投入1元币数
\\本站点\投入1元总币数
5元
\\本站点\投入5元币数
\\本站点\投入5元总币数
10元
\\本站点\投入10元币数
\\本站点\投入10元总币数
食品A
\\本站点\单次食品A销量
\\本站点\食品A总销量
食品B
\\本站点\单次食品B销量
\\本站点\食品B总销量
食品C
\\本站点\单次食品C销量
\\本站点\食品C总销量
食品D
\\本站点\单次食品D销量
\\本站点\食品D总销量
历史投币总数
\\本站点\历史投币总数
实时退币数
\\本站点\单次退币数
历史退币数
\\本站点\历史退币数
营业额
实时
\\本站点\单次营业额
历史
\\本站点\营业总额2
显示
\\本站点\实时币数2
2.6指示灯:
分别双击五个指示灯,在弹出的“指示灯向导”对话框中,“变量名(离散量):
”栏分别输入“\\本站点\食品A指示灯”,“\\本站点\食品B指示灯”,“\\本站点\食品C指示灯”,“\\本站点\食品D指示灯”,“\\本站点\找钱指示灯”。
2.7按钮:
分别双击十个按钮,在弹出的“动画连接”对话框钩选“按下时”选项,在弹出的“命令语言”框中分别输入以下命令语言:
食品A
食品B
if(\\本站点\启动系统==1)
{
if(\\本站点\实时币数2>=4)
{
if(\\本站点\定时7秒2==0)
\\本站点\选择食品A=1;
\\本站点\食品A指示灯=1;
\\本站点\定时7秒1=1;
}
}
if(\\本站点\启动系统==1)
{
if(\\本站点\实时币数2>=1)
{
if(\\本站点\定时7秒1==0)
\\本站点\选择食品B=1;
\\本站点\食品B指示灯=1;
\\本站点\定时7秒2=1;
}
}
食品C
食品D
if(\\本站点\启动系统==1)
{
if(\\本站点\实时币数2>=2)
{
if(\\本站点\定时7秒4==0)
\\本站点\选择食品C=1;
\\本站点\食品C指示灯=1;
\\本站点\定时7秒3=1;
}
}
if(\\本站点\启动系统==1)
{
if(\\本站点\实时币数2>=3)
{
if(\\本站点\定时7秒3==0)
\\本站点\选择食品D=1;
\\本站点\食品D指示灯=1;
\\本站点\定时7秒4=1;
}
}
投入1元
投入5元
if(\\本站点\启动系统==1)
{
if(\\本站点\定时7秒1==0&&\\本站点\定时7秒2==0)
\\本站点\投入1元=1;
}
if(\\本站点\启动系统==1)
{
if(\\本站点\定时7秒3==0&&\\本站点\定时7秒4==0)
\\本站点\投入5元=1;
}
投入10元
启动
if(\\本站点\启动系统==1)
{
if(\\本站点\定时7秒3==0&&\\本站点\定时7秒4==0)
\\本站点\投入10元=1;
}
\\本站点\启动系统=1;
退币
退出
if(\\本站点\启动系统==1)
{\\本站点\退币=1;
}
Exit(0);
2.8投币口:
分别双击三个字体,在弹出的“动画连接”对话框钩选“闪烁”和“隐含”,在弹出的“闪烁连接”对话框设置分别为:
闪烁
隐含
壹元
\\本站点\投入1元币数==1100毫秒/隔
\\本站点\投入1元币数==1显示
伍元
\\本站点\投入5元币数==1100毫秒/隔
\\本站点\投入5元币数==1显示
拾元
\\本站点\投入10元币数==1100毫秒/隔
\\本站点\投入10元币数==1显示
2.9退币口:
退币口中“1元”货币由两部分组成,分别双击这两个部分,在弹出的“动画连接”对话框钩选“闪烁”和“隐含”选项,在弹出的闪烁“闪烁连接”对话框设置都为:
闪烁
隐含
\\本站点\找钱指示灯==1100毫秒/隔
\\本站点\找钱指示灯==1显示
2.10在售货机主画面随意一处单击右键,在弹出选项中选择“画面属性”,则弹出“画面属性”对话框,单机“命令语言”,在弹出的“画面命令语言”对话框,将右上角“每3000毫秒”改为“每1000毫秒”,在“存在时”输入框中输入下面命令语言:
if(\\本站点\定时7秒1==1)
{
\\本站点\计数1=\\本站点\计数1+1;
if(\\本站点\计数1==1)
{\\本站点\食品A指示灯=0;\\本站点\找钱指示灯=1;}
if(\\本站点\计数1==2)
{\\本站点\食品A指示灯=1;}
if(\\本站点\计数1==3)
{\\本站点\食品A指示灯=0;}
if(\\本站点\计数1==4)
{\\本站点\食品A指示灯=1;}
if(\\本站点\计数1==5)
{\\本站点\食品A指示灯=0;}
if(\\本站点\计数1==6)
{\\本站点\食品A指示灯=1;}
if(\\本站点\计数1==7)
{\\本站点\计数1=0;
\\本站点\定时7秒1=0;
}
}
if(\\本站点\定时7秒2==1)
{
\\本站点\计数2=\\本站点\计数2+1;
if(\\本站点\计数2==1)
{\\本站点\食品B指示灯=0;\\本站点\找钱指示灯=1;}
if(\\本站点\计数2==2)
{\\本站点\食品B指示灯=1;}
if(\\本站点\计数2==3)
{\\本站点\食品B指示灯=0;}
if(\\本站点\计数2==4)
{\\本站点\食品B指示灯=1;}
if(\\本站点\计数2==5)
{\\本站点\食品B指示灯=0;}
if(\\本站点\计数2==6)
{\\本站点\食品B指示灯=1;}
if(\\本站点\计数2==7)
{\\本站点\计数2=0;
\\本站点\定时7秒2=0;
}
}
if(\\本站点\定时7秒3==1)
{
\\本站点\计数3=\\本站点\计数3+1;
if(\\本站点\计数3==1)
{\\本站点\食品C指示灯=0;\\本站点\找钱指示灯=1;}
if(\\本站点\计数3==2)
{\\本站点\食品C指示灯=1;}
if(\\本站点\计数3==3)
{\\本站点\食品C指示灯=0;}
if(\\本站点\计数3==4)
{\\本站点\食品C指示灯=1;}
if(\\本站点\计数3==5)
{\\本站点\食品C指示灯=0;}
if(\\本站点\计数3==6)
{\\本站点\食品C指示灯=1;}
if(\\本站点\计数3==7)
{\\本站点\计数3=0;
\\本站点\定时7秒3=0;
}
}
if(\\本站点\定时7秒4==1)
{
\\本站点\计数4=\\本站点\计数4+1;
if(\\本站点\计数4==1)
{\\本站点\食品D指示灯=0;\\本站点\找钱指示灯=1;}
if(\\本站点\计数4==2)
{\\本站点\食品D指示灯=1;}
if(\\本站点\计数4==3)
{\\本站点\食品D指示灯=0;}
if(\\本站点\计数4==4)
{\\本站点\食品D指示灯=1;}
if(\\本站点\计数4==5)
{\\本站点\食品D指示灯=0;}
if(\\本站点\计数4==6)
{\\本站点\食品D指示灯=1;}
if(\\本站点\计数4==7)
{\\本站点\计数4=0;
\\本站点\定时7秒4=0;
}
}
if(\\本站点\退币==1)
{
if(\\本站点\实时币数2>0)
\\本站点\找钱指示灯=1;
if(\\本站点\计数5==0)
{
\\本站点\单次退币数=\\本站点\实时币数2;
\\本站点\历史退币数=\\本站点\历史退币数+\\本站点\单次退币数;
}
\\本站点\计数5=\\本站点\计数5+1;
\\本站点\投入1元币数=0;
\\本站点\投入5元币数=0;
\\本站点\投入10元币数=0;
\\本站点\单次食品A销量=0;
\\本站点\单次食品B销量=0;
\\本站点\单次食品C销量=0;
\\本站点\单次食品D销量=0;
\\本站点\单次营业额=0;
if(\\本站点\计数5==1)
{\\本站点\实时币数2=\\本站点\实时币数2-1;\\本站点\找钱指示灯=0;}
if(\\本站点\计数5==2)
{\\本站点\实时币数2=\\本站点\实时币数2-1;\\本站点\找钱指示灯=1;}
if(\\本站点\计数5==3)
{\\本站点\实时币数2=\\本站点\实时币数2-1;\\本站点\找钱指示灯=0;}
if(\\本站点\计数5==4)
{\\本站点\实时币数2=\\本站点\实时币数2-1;\\本站点\找钱指示灯=1;}
if(\\本站点\计数5==5)
{\\本站点\实时币数2=\\本站点\实时币数2-1;\\本站点\找钱指示灯=0;}
if(\\本站点\计数5==6)
{\\本站点\实时币数2=\\本站点\实时币数2-1;\\本站点\找钱指示灯=1;}
if(\\本站点\计数5==7)
{
\\本站点\计数5=0;
\\本站点\找钱指示灯=0;
\\本站点\退币=0;
\\本站点\实时币数2=0;
}
}
2.11打开“程序浏览器-售货机”-“命令语言”,双击“应用程序命令语言”。
则弹出“应用程序命令语言”对话框,将右上角“每3000毫秒”改为“每55毫秒”,在“运行时”输入命令语言:
if(\\本站点\启动系统==1)
{
if(\\本站点\投入1元==1)
{
\\本站点\投入1元币数=\\本站点\投入1元币数+1;
\\本站点\投入1元总币数=\\本站点\投入1元总币数+1;
\\本站点\实时币数2=\\本站点\实时币数2+1;
\\本站点\投入1元=0;
\\本站点\找钱指示灯=1;
}
if(\\本站点\投入5元==1)
{
\\本站点\投入5元币数=\\本站点\投入5元币数+1;
\\本站点\投入5元总币数=\\本站点\投入5元总币数+1;
\\本站点\实时币数2=\\本站点\实时币数2+5;
\\本站点\投入5元=0;
\\本站点\找钱指示灯=1;
}
if(\\本站点\投入10元==1)
{
\\本站点\投入10元币数=\\本站点\投入10元币数+1;
\\本站点\投入10元总币数=\\本站点\投入10元总币数+1;
\\本站点\实时币数2=\\本站点\实时币数2+10;
\\本站点\投入10元=0;
\\本站点\找钱指示灯=1;
}
if(\\本站点\实时币数2>=4)
{
\\本站点\食品A指示灯=1;
if(\\本站点\选择食品A==1)
{
\\本站点\实时币数2=\\本站点\实时币数2-4;
\\本站点\单次食品A销量=\\本站点\单次食品A销量+1;
\\本站点\食品A总销量=\\本站点\食品A总销量+1;
}
}
else
{\\本站点\食品A指示灯=0;}
if(\\本站点\实时币数2>=1)
{
\\本站点\食品B指示灯=1;
if(\\本站点\选择食品B==1)
{
\\本站点\实时币数2=\\本站点\实时币数2-1;
\\本站点\单次食品B销量=\\本站点\单次食品B销量+1;
\\本站点\食品B总销量=\\本站点\食品B总销量+1;
}
}
else
{\\本站点\食品B指示灯=0;}
if(\\本站点\实时币数2>=2)
{
\\本站点\食品C指示灯=1;
if(\\本站点\选择食品C==1)
{
\\本站点\实时币数2=\\本站点\实时币数2-2;
\\本站点\单次食品C销量=\\本站点\单次食品C销量+1;
\\本站点\食品C总销量=\\本站点\食品C总销量+1;
}
}
else
{\\本站点\食品C指示灯=0;}
if(\\本站点\实时币数2>=3)
{
\\本站点\食品D指示灯=1;
if(\\本站点\选择食品D==1)
{
\\本站点\实时币数2=\\本站点\实时币数2-3;
\\本站点\单次食品D销量=\\本站点\单次食品D销量+1;
\\本站点\食品D总销量=\\本站点\食品D总销量+1;
}
}
else
{\\本站点\食品D指示灯=0;}
\\本站点\单次营业额=\\本站点\单次食品A销量*4+\\本站点\单次食品B销量*1+\\本站点\单次食品C销量*2+\\本站点\单次食品D销量*3;
\\本站点\营业总额2=\\本站点\食品A总销量*4+\\本站点\食品B总销量*1+\\本站点\食品C总销量*2+\\本站点\食品D总销量*3;
\\本站点\历史投币总数=\\本站点\投入1元总币数*1+\\本站点\投入5元总币数*5+\\本站点\投入10元总币数*10;
if(\\本站点\实时币数2>=0)
{
if(\\本站点\选择食品A==1&&\\本站点\定时7秒2==0)
{\\本站点\选择食品A=0;\\本站点\单次退币数=\\本站点\实时币数2;
\\本站点\历史退币数=\\本站点\历史投币总数-\\本站点\营业总额2;
}
if(\\本站点\选择食品B==1&&\\本站点\定时7秒1==0)
{\\本站点\选择食品B=0;\\本站点\单次退币数=\\本站点\实时币数2;
\\本站点\历史退币数=\\本站点\历史投币总数-\\本站点\营业总额2;
}
if(\\本站点\选择食品C==1&&\\本站点\定时7秒4==0)
{\\本站点\选择食品C=0;\\本站点\单次退币数=\\本站点\实时币数2;
\\本站点\历史退币数=\\本站点\历史投币总数-\\本站点\营业总额2;
}
if(\\本站点\选择食品D==1&&\\本站点\定时7秒3==0)
{\\本站点\选择食品D=0;\\本站点\单次退币数=\\本站点\实时币数2;
\\本站点\历史退币数=\\本站点\历史投币总数-\\本站点\营业总额2;
}
}
}
3实时售货报表
新建画面,画面名称为“实时售货报表”,在画面里插入报表窗口Report0,并设置成如图所示。
点击报表工具箱上保存按钮,将此报表存于电脑本工程文件夹下,名为“实时售货报表模板.rtl”。
在报表窗口Report0中连接实时变量,在电脑本工程文件夹下新建一个文件夹“实时售货报表存储”。
4历史报表画面
新建画面,画面名称为“历史售货报表”,在画面里插入报表窗口Repoet3,并设置成如图所示。
点击报表工具箱上保存按钮,将此报表存于电脑本工程文件夹下,名为“历史售货报表模板.rtl”,在电脑本工程文件夹下新建一个文件夹“历史售货报表存储”。
5报警画面
新建画面,画面名称为“报警记录”,在画面里插入两个报警窗口,一个设置成实时报警窗,一个设置成历史报警窗。
在“工程浏览器的”——“系统配置”——“报警配置”,打开“报警配置属性页”对话窗口,将“文件配置”下的“记录报警事件到文件”、“记录操作事件到文件”、“记录登陆事件到文件”和“记录工作站事件到文件”打上钩。
在“工程浏览器的”——“数据库”——“报警组”,在“报警组定义”对话窗中设置。
双击“数据词典”中需要进行报警定义的变量,在“定义变量对话框”——“报警定义”中完成报警定义设置。
根据不同的需要可对比不同变量进行不同定义。
6菜单的建立
在每个工程中的每一个画面中都插入“菜单”,双击菜单,在“菜单定义”——“菜单项”中用除了本画面的每一个画面名称作为菜单项,是售货机主画面菜单项,在“菜单定义”——“命令语言”,弹出“命令语言”对话框中输入:
if(menuindex==0)
ShowPicture("实时售货报表");
if(menuindex==1)
ShowPicture("历史售货报表");
if(menu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 PLC 组态 软件 自动 售货 系统 设计 论文
![提示](https://static.bingdoc.com/images/bang_tan.gif)