基于PLC和组态王软件的自动售货机系统设计论文.docx

上传人:b****5 文档编号:6926255 上传时间:2023-01-12 格式:DOCX 页数:31 大小:890.51KB
下载 相关 举报
基于PLC和组态王软件的自动售货机系统设计论文.docx_第1页
第1页 / 共31页
基于PLC和组态王软件的自动售货机系统设计论文.docx_第2页
第2页 / 共31页
基于PLC和组态王软件的自动售货机系统设计论文.docx_第3页
第3页 / 共31页
基于PLC和组态王软件的自动售货机系统设计论文.docx_第4页
第4页 / 共31页
基于PLC和组态王软件的自动售货机系统设计论文.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

基于PLC和组态王软件的自动售货机系统设计论文.docx

《基于PLC和组态王软件的自动售货机系统设计论文.docx》由会员分享,可在线阅读,更多相关《基于PLC和组态王软件的自动售货机系统设计论文.docx(31页珍藏版)》请在冰豆网上搜索。

基于PLC和组态王软件的自动售货机系统设计论文.docx

基于PLC和组态王软件的自动售货机系统设计论文

综合性设计性实验报告

院/系别:

昆仑学院班级:

自动化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(menuindex==2)

ShowPicture("报警");

7运行结果如下

7.1自动售货机主画面的结果

7.2实时销货报表结果

7.3历史销货报表结果

7.4报警窗口结果

实验总结:

初步实现了基于PLC可编程序控制器的自动售货机的控制系统。

但是自动售货机作为一类可靠性要求比较高的电子设备,本课题所设计的控制器还存在一些欠缺的地方,并且随着社会的不断向前发展,客户对产品的要求将更高,因此本课题还需要进一步的完善,获得更好的应用效果,在今后的工作中,对以下几个方面作进一步的工作:

1.针对实验设计的控制器只适用于饮料机(无冷藏箱)的欠缺,需要继续完善程序,使其可以通过手动设置从而任意更换机器类型;

2.将会增加其他的一些日常用品如香烟、打火机等使系统更加的完善,在市场中的竞争力更强。

3.为了更加方便运营商管理大量的售货机,自动售货机控制器需要提供支持Internet网络、GPRS无线网络、甚至3G网络的接口来管理与监控售货机的运行与运营情况。

学生签名:

年月日

评语与成绩:

 

教师签名:

年月日

填写说明:

1.实验类型:

验证性、设计性或综合性。

2.表格不够填写,可抬高,增加页数。

3.签名、日期必须手写。

毕业论文(设计)原创性声明

本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。

据我所知,除文中已经注明引用的容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。

对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示意。

作者签名:

日期:

毕业论文(设计)授权使用说明

 

本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。

有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。

学校可以公布论文(设计)的全部或部分容。

的论文(设计)在解密后适用本规定。

 

作者签名:

指导教师签名:

日期:

日期:

 

注意事项

1.设计(论文)的容包括:

1)封面(按教务处制定的标准封面格式制作)

2)原创性声明

3)中文摘要(300字左右)、关键词

4)外文摘要、关键词

5)目次页(附件不统一编入)

6)论文主体部分:

引言(或绪论)、正文、结论

7)参考文献

8)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1