5.4LabVIEW设计模式——标准状态机.pdf
文本预览下载声明
当前正在审批
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 循环结构在执行时,只要不强制停止可以执行任意次循环。
这些基本概念对我们来讲再熟悉不过了。 但是,最直观的状态变迁还应当属图形化代码中的顺序结构。
顺序结构有序(定序)的控制了程序的执行流程。参见下图。
图 5.4.1.1-1 顺序结构状态的变迁
顺序结构可以确定性的控制程序状态的变迁,或者说是:顺序结构定序的控制了程序段的运行流程。
比如上图中:从 status_1 到 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 ;它是指用一组图形来描绘一个系统或组件可能假设的状态, 并且显示
引起或导致一个状态切换到另一个状态的事件或环境。
状态图是描述一个实体基于事件反应的动态行为, 显示了该实体如何根据当前所处的状态对不同的时
间做出反应的。
状态图用于显示
显示全部