LabVIEW 标准状态机设计模式

LabVIEW 标准状态机设计模式

LabVIEW 软件框架介绍

源于虚拟仪器技术的LabVIEW程序设计语言,从被创建开始就是面向测量和应用的,并且绝大多数采用LabVIEW开发的应用程序都同测控仪器等硬件设备紧密结合。虽然这些设备的类型和规模各不相同,应用领域的差异也很大,但从测量和控制过程的基本步骤来看,绝大多数的LabVIEWV程序的基本框架是有章可循的,具有一定的模式特征。

多数的测量系统的应用程序框架可以分为8部分,包括初始化、打开会话、获取数据、分析数据、显示/存储数据等,如右图所示:

LabVIEW编程模式及其应用分析

LabVIEW是采用了独特的图形化数据流的编程模式,这种编程模式类似于传统的面向过程编程模式,。同样通过程序执行控制结构和子程序等组件来构成整个程序的框架。而这种图形化数据流的编程模式又与传统的文本的顺序执行有所不同,LabVIEW程序框图中节点间的数据流确定了代码的执行次序,这使得互不关联的代码可以简章地建立并行性程序。

基于这种图形化数据流的编程模式,在大量开发实践的基础上,为满足各种不同的应用需求,总结出了不同的程序代码框架,也就是LabVIEWV程序设计模式。

根据针对问题的不同,可以分为通用型和专用型。通用型的LabVIEW程序设计模式是针对一般性测量控制应用程序提出的,而专用型的LabVIEW程序设计模式是针对某些特殊的应用或应用中某些特殊功能提出的解决方案。

状态机模式的类型分析

按照两种类型分类,各种类型又分别包含以下几种设计模式:
通用型:主要包括状态机模式、消息队列模式和用户界面事件模式。
专用型:主要包括主从线程模式、生产消费模式、后台服务模式、异常处理模式和代理模式。

绝大多数的测试测量系统在运行时需要从一个状态转换到另一个状态,或者在不同的状态之间互相切换,直至结来。因此状态机模式作为一种典型的类顺序结构方式,被广泛应用于各种自动化测试系统申。状态机具有3个基本的要求:状态、事件和动作。任何一个状态机的执行都离不开这三个要素。

状态的选择是保证其他步骤有条不紊进行的前提,通常把程序需要经历的状态称做一个"状态序列",它描述了程序当前的运行情况。在设计可交互式状态序列时,"等待是一个必不可少的状态,因为常有一个状态需要等待用户"确认",这个状态决定了下一个状态,这取决于与外部对象的交互。

状态机在控制状态的同时,与各个状态对应的事件也会随之触发。

动作是事件的响应,当一个事件发生时,状态机会决定应该执行什么样的动作,这主要取决于目前所处的状态和发生的事件。

顺序型状态机是最简单的一种状态机结构,它和顺序结构等价。在状态机的基本架上,将循环索引端连接到Case结构的选择端口上,并在最后一个Case子框图中控制循环结束。

标准状态机设计模式及状态机应用学习

顺序型状态机是最简单的一种状态机结构,它和顺序结构等价。在状态机的基本构架上,将循环索引端连接到Case结构的选择端口上,并在最后一个Case子框图中控制循环结束。

顺序结构它的一个缺点是什么?

就是说当它每一个分支执行的条件是前一个分支必须执行完。如果说前一个分支没有执行完,那么后面的分支将永远不会被执行,直到前面一个分支执行完。这样就不便于我们程序的一个状态的一个跳转。如果在一个环节产生问题,那么程序可能会卡死在这个顺序结构里面。

我们使用顺序型状态机模式的话,就不会出现顺序结构的一种缺点。

注意:最下一条线是通过移位寄存器传递的时间,得出时间差。最上一条线是程序的转移过程,但是图的枚举转移中是否有误?

状态机结构

进行第一次运行。首先因为有条件分支,那么它第一次会跳到初始化的条件分支里面来。初始化条件分支你们的代码执行完毕之后,它就会跳到下一个分支。

跳到等待事件这个分支里面来。

等待事件有多条分支如下图所示:

通过事件的内容赋值给移位寄存器, 当while循环下一次执行的时候, 这边出来的就是"State 1"。

State 1",正在运行的文本,然后弹出一个提示对话框。当它执行完毕之后,他又会跳回到执行事件等待事件分支。

如果事件分支里 跳到"State 2"。

State 2",弹出一个提示对话框。然后选择跳转那个事件分支里


以上状态机结束了

相关推荐
智者知已应修善业6 小时前
【4060BD_5V应用电路图】2022-12-24
驱动开发·经验分享·笔记·硬件架构·硬件工程
小弥儿6 小时前
GitHub今日热榜 | 2026-09-18:腾讯双项目上榜
学习·开源
知识分享小能手8 小时前
深度学习学习教程,从入门到精通,深度生成模型 —— 知识点详解与代码实现(20)
人工智能·深度学习·学习
m4Rk_9 小时前
【论文阅读】Agent 记忆机制(74):CompassMem——从相似度检索走向事件图上的记忆导航
论文阅读·人工智能·学习·开源·github
小李不想当小白9 小时前
DMA直接存储器存取(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·分享
2601_9499506311 小时前
练题簿在线练题全流程:从资料导入到模拟考试与错题复盘
学习·考研·小程序·刷题·小程序推荐
2601_9653842611 小时前
口腔黏膜清洁的工程化路径:从表面形貌表征到清洁策略匹配
经验分享·笔记
泡泡鱼(敲代码中)11 小时前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm
别动我齐刘海11 小时前
ROS2 Jazzy + C++ 实战路线——基础学习2
c++·人工智能·vscode·python·学习·机器学习·机器人
Hotchip_MEMS12 小时前
传统咪头与MEMS硅麦:雾化器气流传感方案对比
人工智能·笔记·物联网·电脑·制造