您的位置 首页 技术

LabVIEW规划模型——状态机

状态机是在工程应用中使用最多的设计模型。使用状态机,我们可以很容易的实现程序流程图中的判断、分支。状态机是由一系列的状态

状况机是在工程运用中运用最多的规划模型。运用状况机,咱们能够很简单的完结程序流程图中的判别、分支。

状况机是由一系列的状况构成的,其间包含一个“初始化”状况,和一个“中止”状况。程序油“初始化”状况开端,由“中止”状况完毕。一般来说,在“初始化”状况中进行控件与变量的初始化、翻开文件以及创立引证等操作,而在“中止”状况中进行铲除暂时数据、封闭文件和完毕引证等操作。在状况机中,每一个状况都或许导致一个或多个状况的产生,其下一状况是由用户的输入信息和当时状况所决议的。
在决议运用状况机作为咱们的规划模型后,咱们首要要画出一个状况转化图。在图中要列出体系中的一切状况,以及各个状况之间的转化联系。而且要标明转化所需求的条件。
举个比如,要编程完结以下功用:随机生成100个[0,100]内的自然数,并判别生成的自然数是否在[30,60]的区间内。假如不在该区间内给出报警信息,假如在区间内则将该数累加。
实际上假如咱们把生成的随机数看作体系收集到的数据的话,这到题便是模拟了一个收集数据而且在数据不符合要求时报警,并将复合要求的数据进行进一步剖析的体系。
要完结这道标题,需求要先画出它的状况转化图:
有了这个状况转化图,咱们就能够明晰的看到程序要完结的一切状况以及状况之间的联系。
画好状况转化图,咱们就能够明晰的看到程序要完结的一切状况以及状况之间的联系。下面的作业便是用LabVIEW来完结这个状况机。
状况机是由一个While循环、一个条件结构和一个移位寄存器组成的。其间While循环用来确保程序能够接连的运转;条件结构的各种分支中的代码用来描绘状况机的各种状况,以及下一状况的挑选;移位寄存器用来将之前状况所作出的挑选传递到下一次循环的挑选端子。
下面咱们就一步一步的完结这个状况机。
首要,新建一个工程,而且在工程中树立“控件”和“子VI”两个虚拟文件夹来放置自定义控件和子VI。在“控件”文件夹中新建一个控件。
在控件的修正面板上放置一个枚举类型的控件,而且修正枚举类型控件的项目,输入一切状况装换图中的状况的称号。如下图所示。
能够看到,上图中的项目比状况转化图中多了一个“空白”状况。这只是为了修正程序便利才增加的,具体情况会在下文中说到。
修正完结之后,将控件的类型更改为严厉自定义类型(Strict Type Define),然后保存。树立这样一个严厉自定义类型控件用来操控状况的转化有很大的优点,便是在咱们万一要增加新的状况或许要删去一些无用的状况时,只需修正咱们树立的控件就能够了,不用在程序中一处一处的寻觅、修正,能够节约许多时刻,且不易犯错。
做好以上控件后,就要在工程中新建一个状况机VI。咱们能够先新建一个空白VI,然后在里面增加状况机所需求的While循环、条件结构和移位寄存器。而更便利的办法是,点击“文件–>新建”,然后在弹出的“新建”对话框中挑选“规范状况机”(Standard State Machine),来树立一个状况机VI。如下图所示。
在使用模版树立了状况机VI后,咱们要删去其间的介绍性文字,由于这些文字是用来介绍模版功用和提示编程者某些注意事项的。在终究程序中保存这些文字是十分不专业的。
接下来便是把咱们事前树立好的严厉自定义类型的枚举控件拖入程序框图中,来取得它所对应的常量,用来替换原模版中的枚举类型常量。然后,在条件结构中参加满足的分支来放置不同状况下的代码;增加满足的移位寄存器来在各个状况之间传递参数;在各个状况(分支)下增加代码,包含完结状况功用的功用代码以及确认下一个状况的流程代码。如下图所示。
我们能够看到,程序在执行时是不会进入最终一个“空白”状况的,增加这个状况的意图便是为了在增加新的状况时,能够经过仿制空白状况来得到,能够大大提高编程功率。
以上所说的状况机叫做规范状况机,是最常用也是最基本的状况机。其实状况机还有一些变种的方式,今后再介绍吧。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/jishu/221670.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部