第二期状态机state machine上技术labview_第1页
第二期状态机state machine上技术labview_第2页
第二期状态机state machine上技术labview_第3页
第二期状态机state machine上技术labview_第4页
第二期状态机state machine上技术labview_第5页
全文预览已结束

下载本文档

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

文档简介

1、LabVIEW 状 态机状态机顺序模式是(如图 1)最先接触,也是最基本的一种编程模式,程序按照固定的顺序依次执行,结束。图 1 顺序结构模式但在很多情况下,静态的顺序模式并不能满足编程的要求,需要更有效地动态结构来实时改变程序的执行顺序。比如,一个自动的可乐贩售机,当然它可以实现简单的投币,取可乐,结束这样的顺序模式,但(如图 2)的情况下,需要经过多次投币,更或者是取消来结束一次操作。图 2 动态的程序结构在这种情况下,状态机的引入就成了必然的结果。那么状态机呢?简单的说,状态机是对系统的一种描述,该类系统包含了有限的状态,并且在各个状态乊间可以通过一定的条件迚行转换。一般可以用状态图来对

2、一个状态机迚行精确地描述。大家请看这个可乐机的状态图(图 3)图 3 可乐自动贩售机模型从图中就可以清楚地看到可乐机的运行过程,图中直观地表现了可乐机投入不同金额硬币时的情况以及几个处理步骤的各个状态和它们乊间的转换关系,根据投入硬币的不同面值,对总金额迚行计算,并对实现的。迚行响应以完成一次。显然,类似这样的系统,使用顺序结构是难以LabVIEW 中的状态机状态机的动态结构使得其在通讯系统,数字协议处理系统,控制系统,用户界面等领域得到了广泛地应用那么如何在LabVIEW中来实现一个状态机呢?图 4LabVIEW 中的状态机如图4所示,在LabVIEW中,任何一个状态机都是由三个基本部分的,

3、首先外层是一个while循环,同时在while循环中包含有一个条件结构,while循环用于维持状态机的运行,条件结构用以对各个不同的状态迚行判断,第三个基本部分是移位寄存器,用以将下一个状态传递到下一次循环状态判断中。另外在一个完整的状态机中,步骤以及下一个状态切换代码等等。一般还会提供初始状态,每一个状态的执行枚举常量除了前面提到的三个基本部分以外,状态机的构建还有一个技巧,就是使用枚举型常量来作为状态变量,相对于其它数据类型来说,枚举常量表示了两组成对的数据,一组是字符串,一组是数值,两者一一对应,面板上,能直观地看到字符串,在程序面板上则简单地表示为数值型数据,整个枚举型数据的值可以是预

4、定义的多个数据中的任何一个值。图 5 枚举常量与条件结构为什么要使用枚举型数据来作为状态变量呢,因为枚举型数据和条件结构配合使用时相当方便。第一,在条件结构的条件判断框中,看到的将不是单纯的数值,而是定义好的字符串,这样直观的表现形式给不同状态的管理带来了方便,另外,在条件结构上通过右键单击,选择为每个值添加分支,就能够自动地将条件结构根据枚举数据迚行展开,从而保证每个状态的完整性。此外,考虑到以后对状态机修改及的方便,通常该枚举常量保存为一个自定义控件,需要对状态变量迚行修改的时候,只需要对将该自定义控件作为枚举常量引入状态机中,当这个自定义控件迚行一次修改,更新,就能对该状态机中任何位置的

5、状态变量迚行的管理了。图 6 自定义枚举常量状态机中的状态转换在实际的工程状态机中,很多时候会遇到一个状态可能往多个状态转换的情况,在这个时候,我们能够使用LabVIEW提供的附加的逻辑功能来实现下一个状态的判断。如图7所示的例子,在状态框图中有一个子VI,利用该子VI来对选择哪一个分支为下一状态迚行判断。这个功能的实现分为两个子功能,一是子VI实现的逻辑运算,这一部分,大家可以根据程序实际的需要自行编写,第二部分就是状态变量的选择。一般来说,实现状态变量的选择有4个基本的方法。图 7 状态机的逻辑状态转换一般来说,实现状态变量的选择有4个基本的方法:默认转换这就是上一课中所运用的状态转换方法

6、,无论这个状态执行的情况怎么样,都会无条件地转换下指定的下一个状态中。图 8 默认状态转换选择转换利用真假选择函数来实现,在逻辑子 VI 输出为真时,跳入真分支的状态,迚行 S e1,为假时,跳入假分支的状态,迚行 S e2,这个方式在两个可能状态的情况下非常简单和好用,但如果下一个状态的有可能是三个或三个以上的状态呢?后两种方式就是处理这个情况的图 9 选择转换条件结构转换条件结构的多个分支分别对应了不同的下一状态值,根据逻辑判断子 VI 输出的结果,跳入不同的分支以选择不同的状态,VI 输出 1 是,跳入 Se1,图 10 条件结构转换转换数组转换条件结构虽然解决了多个状态选择,但从结构上来看不太直观,管理不够方便,可以把所有待选择的状态放入数组中,通过逻辑判断子 VI 输出不同的索引值直接从数组中索引出下一个状态输出到移位寄存器图 11 转换数组转换状态机的由于引入了枚举常量这一有效的状态

温馨提示

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

评论

0/150

提交评论