教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

基于LabVIEW的自动售货机设计

来源:网络收集 时间:2026-08-24
导读: 课程设计报告 (LabVIEW 2010基础教程) 学院:电气工程与自动化学院 题目:基于LabVIEW的自动售货机设计专业班级:自动化131班 学号:2420132905 学生姓名:吴亚敏 指导老师:张振利 时间:2016年5月16 日 摘要 基于LabVIEW 2010的自动售货机设计,采用以自

课程设计报告

(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

江西理工大 …… 此处隐藏:2312字,全部文档内容请下载后查看。喜欢就下载吧 ……

基于LabVIEW的自动售货机设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1414893.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)