基于LabVIEW的自动售货机设计
课程设计报告
(LabVIEW 2010基础教程)
学院:电气工程与自动化学院
题目:基于LabVIEW的自动售货机设计专业班级:自动化131班
学号:2420132905 学生姓名:吴亚敏
指导老师:张振利
时间:2016年5月16 日
摘要
基于LabVIEW 2010的自动售货机设计,采用以自定义控件、移位寄存器、While循环和条件结构组成的状态机作为主要设计思路,辅以属性节点和利用For循环对数组的自动索引功能建立的子VI以及自定义枚举型控件组成的数组等控件,完成自动售货机的功能设计。最后,对前面板的输入控件和显示控件进行布局,调色等操作,完成视觉设计和交互设计。
关键词:LabVIEW;状态机;设计
目录
摘要 (2)
第一章 LabVIEW状态机 (1)
1.1 状态机的概念 (1)
1.2 状态机的组成 (2)
1.3 状态机的状态转换 (4)
第二章自动售货机的设计过程 (7)
2.1 自定义枚举型控件的制作 (7)
2.2 下一状态子VI的设计 (7)
2.3 自动售货机程序框图的编写 (8)
2.4 自动售货机前面板的设计 (9)
第三章心得体会 (10)
致谢 (11)
参考文献 (12)
江西理工大学2013级自动化专业项目驱动设计报告
第一章 LabVIEW状态机
1.1 状态机的概念
顺序模式是我们最先接触,也是最基本的一种编程模式,程序按照固定的顺序依次执行,结束。
图1 顺序结构模式
但在很多情况下,静态的顺序模式并不能满足我们编程的要求,我们需要更有效地动态结构来实时改变程序的执行顺序。比如,一个自动的可乐贩售机,当然它可以实现简单的投币,取可乐,结束这样的顺序模式,但更多的情况下,需要经过多次投币,或者是取消购买来结束一次操作。
图2 动态的程序结构
在这种情况下,状态机的引入就成了必然的结果。那么什么是状态机呢?简单的说,状态机是对系统的一种描述,该类系统包含了有限的状态,并且在各个状态之间可以通过一定的条件执行转换。一般可以用状态图来对一个状态机执行精确地描述。
1
江西理工大学2013级自动化专业项目驱动设计报告
2
>=3元
图3 可乐自动贩售机模型
从图中就可以清楚地看到可乐机的运行过程,图中直观地表现了可乐机投入不同金额硬币时的情况以及几个处理步骤的各个状态和它们之间的转换关系,根据投入硬币的不同面值,对总金额执行计算,并对各种操作执行响应以完成一次购买。显然,类似这样的系统,使用顺序结构是难以实现的。
1.2 状态机的组成
在LabVIEW 中,任何一个状态机都是由三个基本部分构成的,首先外层是一个while 循环,同时在while 循环中包含有一个条件结构,while 循环用于维持状态机的运行,条件结构用以对各个不同的状态执行判断,第三个基本部分是移位寄存器,用以将下一个状态传递到下一次循环状态判断中。另外在一个完整的状态机中,我们一般还会提供初始状态,每一个状态的执行步骤以及下一个状态切换代码等等。
江西理工大学2013级自动化专业项目驱动设计报告
3
图4 LabVIEW 中的状态机
除了前面提到的三个基本部分以外,状态机的构建还有一个技巧,就是使用枚举型常量作为状态变量,相对于其它数据类型来说,枚举常量表示了两组成对的数据,一组是字符串,一组是数值,两者一一对应,在前面板上,能直观地看到字符串,在程序面板上则简单地表示为数值型数据,整个枚举型数据的值可以是预定义的多个数据中的任何一个值。
图5 枚举常量与条件结构
为什么要使用枚举型数据来作为状态变量呢?
因为枚举型数据和条件结构配合使用时相当方便。第一,在条件结构的条件判断框中,我们看到的将不是单纯的数值,而是我们定义好的字符串,这样直观的表现形式给不同状态的管理带来了方便,另外,
我们在条件结构上通过右键单
江西理工大学2013级自动化专业项目驱动设计报告
击,选择为每个值添加分支,就能够自动地将条件结构根据枚举数据执行展开,从而保证每个状态的完整性。
此外,考虑到以后对状态机修改及维护的方便,通常,我们将该枚举常量保存为一个自定义控件,将该自定义控件作为枚举常量引入状态机中,当我们需要对状态变量执行修改的时候,只需要对这个自定义控件执行一次修改,更新,就能对该状态机中任何位置的状态变量执行统一的管理了。
图6 自定义枚举常量
1.3 状态机的状态转换
在实际的工程状态机中,很多时候会遇到一个状态可能往多个状态转换的情况,在这个时候,我们能够使用LabVIEW提供的附加的逻辑功能来实现下一个状态的判断。
在状态框图中有一个子VI,利用该子VI来对选择哪一个分支为下一状态执行判断。这个功能的实现分为两个子功能,一是子VI实现的逻辑运算,这一部分,大家可以根据程序实际的需要自行编写,第二部分就是状态变量的选择。一般来说,实现状态变量的选择有4个基本的方法。
图7 状态机的逻辑状态转换
4
江西理工大学2013级自动化专业项目驱动设计报告
一般来说,实现状态变量的选择有4个基本的方法:
(1)默认转换。无论这个状态执行的情况怎么样,都会无条件地转换下指定的下一个状态中。
图8 默认状态转换
(2)选择转换利用真假选择函数来实现。在逻辑子 VI 输出为真时,跳入真分支的状态,运行 State1;为假时,跳入假分支的状态,运行 State2。这个方式在两个可能状态的情况下非常简单和好用,但如果下一个状态的有可能是三个或三个以上的状态呢?后两种方式就是处理这个情况的
图9 选择转换
(3)条件结构转换。条件结构的多个分支分别对应了不同的下一状态值,根据逻辑判断子 VI 输出的结果,跳入不同的分支以选择不同的状态。
5
江西理工大学2013级自动化专业项目驱动设计报告
图10 条件结构转换
(4)转换数组转换。条件结构虽然解决了多个状态选择的问题,但从结构上来看不太直观,管理不够方便,我们可以把所有待选择的状态放入数组中,通过逻辑判断子VI 输出不同的索引值直接从数组中索引出下一个状态输出到移位寄存器。
图11 转换数组转换
6
江西理工大学2013级自动化专业项目驱动设计报告
第二章自动售货机的设计过程
2.1 自定义枚举型控件的制作
在路径“函数选板—>编程—>数值”下找到“枚举常量”,将其拖拽到程序框图中,然后鼠标右键单击选择“制作自定义类型”,接着再次右键单击选择“打开自定义类型”,就可以对其属性进行编辑。
图12 自定义枚举型控件的编辑
2.2 下一状态子VI的设计
为了解决多状态选择的难题,可以利用For循环对数组的自动索引功能来建立子VI。
7
江西理工大学2013级自动化专业项目驱动设计报告
8
图13 下一状态子VI 的前面板和程序框图
2.3 自动售货机程序框图的编写
图14 自动售货机的初始化
江西理工大学2013级自动化专业项目驱动设计报告
图15 自动售货机的空闲状态
2.4 自动售货机前面板的设计
图16 自动售货机的前面板
9
相关推荐:
- [法律文档]苏教版七年级语文下册第五单元教学设计
- [法律文档]向市委巡视组进点汇报材料
- [法律文档]绵阳市2018年高三物理上学期第二次月考
- [法律文档]浅析如何解决当代中国“新三座大山”的
- [法律文档]延安北过境线大桥工程防洪评价报告 -
- [法律文档]激活生成元素让数学课堂充满生机
- [法律文档]2014年春学期九年级5月教学质量检测语
- [法律文档]放射科标准及各项计1
- [法律文档]2012年广州化学中考试题和答案(原版)
- [法律文档]地球物理勘查规范
- [法律文档]《12系列建筑标准设计图集》目录
- [法律文档]2018年宁波市专技人员继续教育公需课-
- [法律文档]工会委员会工作职责
- [法律文档]2014新版外研社九年级英语上册课文(完
- [法律文档]《阅微草堂笔记》部分篇目赏析
- [法律文档]尔雅军事理论2018课后答案(南开版)
- [法律文档]储竣-13827 黑娃山沟大开挖穿越说明书
- [法律文档]《产品设计》教学大纲及课程简介
- [法律文档]电动吊篮专项施工方案 - 图文
- [法律文档]实木地板和复合地板的比较
- 探析如何提高电力系统中PLC的可靠性
- 用Excel函数快速实现体能测试成绩统计
- 教师招聘考试重点分析:班主任工作常识
- 高三历史选修一《历史上重大改革回眸》
- 2013年中山市部分职位(工种)人力资源视
- 2015年中国水溶性蛋白市场年度调研报告
- 原地踏步走与立定教学设计
- 何家弘法律英语课件_第十二课
- 海信冰箱经销商大会——齐俊强副总经理
- 犯罪心理学讲座
- 初中英语作文病句和错句修改范例
- 虚拟化群集部署计划及操作流程
- 焊接板式塔顶冷凝器设计
- 浅析语文教学中
- 结构力学——6位移法
- 天正建筑CAD制图技巧
- 中华人民共和国财政部令第57号——注册
- 赢在企业文化展厅设计的起跑线上
- 2013版物理一轮精品复习学案:实验6
- 直隶总督署简介




