5.4labview设计模式——标准状态机.docx

当前正在审批 5.4 LabVIEW 设计模式 —— 标准状态机( LabVIEW design patterns - standard state machine ) 版本 7 创建于 : 2011-2-3 下午 8:07 作者 jwdz - 最后修改 : 2011-2-8 下午 9:06 作者 jwdz 我们进行计算机程序设计的真正目的就是命令计算机按照我们的目的和要求来为我们工作。我们可以 通过对工作任务的高度抽象处理来将任务划分为不同的工作状态, 并且对每种状 态采用相对应、 合适的的 处理方法来解决不同的问题。对于计算机程序设计来讲也是如此,工程师和科学家将待解问题抽象为不同 的工作状态, 并对每个工作状态编写相适应的计算机 处理程序, 这样我们就能够游刃有余的指挥计算机按 我们的要求完成工作。 本节中所要介绍的状态机架构就可以使我们轻松的完成计算机程序的设计任务,并可以根据任务的变 化实现很方便的改动。 为了更好的理解状态机架构,首先介绍一些与状态机相关的基础知识。 5.4.1 状态机架构基础知识 5.4.1.1 状态和状态机 状态 人或事物表现出来的形态。 对于状态我们可以这样来理解:在竞技领域,相对于高水平的运动员而言,其某一场比赛的失利被称 之为状态不好。在技术领域,它又被指物质系统所处的状况(状态由某些物理量 来表征)。其实,无论对 人还是对事物而言,时间是表征状态的最基本物理量。 在 LabVIEW 图形化编程语言中,数据流的运行机制最有效的诠释了数据与节点间状态的变迁。 对于同一时刻所发生的事情被称之为:同步。 对于同一时刻所需要处理的事情被称之为:实时处理。 对于同一时段所需要处理的不同事情被称之为:多线程(或多核)。 Case 结构在执行时, 根据输入端条件只能执行所限定 Case 中的程序代码。 For 循环结构在执行时,根据输入端配置( N 、数组的大小、强制停止等)只能执行有限次循环。 While 循环结构在执行时,只要不强制停止可以执行任意次循环。 顺序结构有序(定序)的控制了程序的执行流程。参见下图 | status l|□□□□□□□□□□□□□□□□□□□□□□ | status l| □□□□□□□□□□□□□□□□□□□□□□口 口□口□口□口□口口口□口□口□口□口□口□口口 图541.1-1顺序结构状态的变迁 顺序结构可以确定性的控制程序状态的变迁,或者说是:顺序结构定序的控制了程序段的运行流程。 比如上图中:从status_1至U status_2在到status_3直至status_4。这种按部就班的、一件一件的处理事 情的方式通常是被用来处理常规状态下发生的事情。 存在的问题:对于一些依据某些条件控制状态改变的状况,因为存在着不确定性,定序控制方式就无法使 用了。 比如上图中:正常的情况下程序执行是从 status_1到status_2再到status_3直至status_4,但是, 有时因某些条件发生了变化,需要从 stat us_1到status_4再到status_3直至status_2的执行顺序。定序 结构就不行了,因为它无法自行变更程序的执行顺序。 状态机的岀现为解决这类问题提供了灵活的、有效的控制方式。 状态机 状态机是一种具有指定数目的状态的概念机(有限状态机),它在某个指定时刻仅处于一个状态。状 态转变是由输入事件引起的状态变化。 作为对输入事件的响应, 系统可能转变到 相同或不同的状态, 而输 岀的的事件可能是任意产生的。口 此时,状态间的描绘或表述最好使用状态图来进行。 状态图 状态图的英文是state diagram ;它是指用一组图形来描绘一个系统或组件可能假设的状态, 并且显示 引起或导致一个状态切换到另一个状态的事件或环境。 状态图是描述一个实体基于事件反应的动态行为, 显示了该实体如何根据当前所处的状态对不同的时 间做岀反应的。 状态图用于显示状态机(它指定对象所在的状态序列)、使对象达到这些状态的事件和条件、以及达 到这些状态时所发生的操作。 对应于前面所提出的问题,使用状态图的表示方法参见下图 ——状态图—statu s_3 ■ ——状态图 —statu s_3 ■ 那么如何使用图形化的代码来表现复杂的状态机呢? 541.2状态机的图形化代码基本知识 在LabVIEW中图形化的状态机被用基本结构等来这样表示: 状态机,程序运行的运行的一种方式。在这种方式中每项任务都作为独立分支嵌入在带有移位寄存器 的While循环所包围的Case结构中。程序的执行顺序由分支字符串数组 指定。[LV大学实用教程] 其实,这里我们是借用LabVIEW所提供的设计模式之一队列消息处理器 (Queued Massage Handler ) 来做进一步的说明。参见

文档评论(0)

1亿VIP精品文档

相关文档