当前位置: 首页 > news >正文

【LabVIEW学习篇 - 23】:简单状态机

文章目录

  • 简单状态机
    • 状态机的创建和了解
    • 状态机实现红绿灯

简单状态机

一个优秀的应用程序离不开好的程序框架,不仅要很好满足用户的功能需求,还要考虑到系统的稳定性、实时性、可扩展性、可维护性,执行效率等方面。借用一些成熟的设计框架,可以帮助开发人员很容易地完成一些复杂系统的设计和开发,并且在满足需求的同时还保证程序的性能。

有限状态机(FSM-Finite State Machine),即用有限确定数量的状态来描述一个系统的运行,统称称此为状态机。状态机的概念很早就有了,它不是LabVIEW特有的概念,而是LabVIEW比较适合设计框架之一。

状态机包括三个基本要件:状态、事件(转换条件)、动作。

状态机简单灵活,状态机设计的好坏取决于设计者的编程水平和逻辑思维。太少,会使得每个状态中要处理的任务太多;太多,又会使得状态机太复杂,不便于维护。

状态机的创建和了解

  1. 创建项目-简单状态机Main.vi中就是简单状态机的模板。
    在这里插入图片描述
    在这里插入图片描述
  2. 简单状态机。
    在这里插入图片描述
    在这里插入图片描述
  3. 状态机的执行过程:
    程序框图中最外层是一个while循环,内层是一个条件结构。条件结构主要根据移位寄存器也就是状态寄存器,用来保存当前系统的一个状态,从而在下次循环的时候将系统跳转到对应的状态去执行。
    Step1:首先,系统最初始的状态就是Initialize,进入循环后其状态存入移位寄存器中,然后进入条件分支结构,执行对应的操作,操作执行完之后就会跳转到下一个状态Wait for EventWait for Event就会赋值给移位寄存器。
    在这里插入图片描述
    Step2:当进入下一次循环,就会从移位寄存器中拿到Wait for Event的状态,Wait for Event中有一个事件结构,分别有三个事件分支,其中有两个事件分支有按钮,按下对应的按钮可触发该事件。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    Step3:当在Wait for Event分支中触发事件,将User State 1存入移位寄存器中,在下一次循环时切换到移位寄存器中,将字符串以对话框的形式显示,然后又切换到Wait for Event分支中。同理,其余的状态切换也相同。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  4. 运行结果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

状态机实现红绿灯

  1. 在前面板中分别创建三个圆形指示灯,三个数值输入控件,数值输入控件用来设置红、绿、黄灯亮的时间。然后在自定义枚举框中添加RedYellowGreen
    在这里插入图片描述
  2. 设置好的各分支如下图所示:
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3. 修改自定的簇,先给各圆形指示灯创建其引用,然后选其引用,创建常量。将其引用常量复制粘贴到自定义簇中。
在这里插入图片描述
在这里插入图片描述
4. 创建一个颜色簇
在这里插入图片描述
5. 在Initialize中对三个圆型指示灯导入簇中并进行初始化操作。
在这里插入图片描述
6. Red分支:在该分支中点亮红灯,熄灭黄灯,因为最后点亮的灯为黄灯,在Yellow分支中切到Red分支,需要熄灭黄灯,保证只有一盏灯亮。最后加上延时即可。
在这里插入图片描述
7. Green分支的设置同理。
在这里插入图片描述

  1. Yellow分支中设置黄灯闪烁,闪烁的间隔为1s。
    在这里插入图片描述
  2. 运行结果:
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

相关文章:

【LabVIEW学习篇 - 23】:简单状态机

文章目录 简单状态机状态机的创建和了解状态机实现红绿灯 简单状态机 一个优秀的应用程序离不开好的程序框架,不仅要很好满足用户的功能需求,还要考虑到系统的稳定性、实时性、可扩展性、可维护性,执行效率等方面。借用一些成熟的设计框架&a…...

【CSS】 Grid布局:现代网页设计的基石

引言 最近接到一个网页布局比较复杂的页面,看了半天还是决定用grid布局来写,记录一下 布局是构建用户界面的关键部分。CSS Grid布局提供了一种简单而强大的方式来创建复杂的网格布局,它让设计师和开发者能够更直观、更灵活地控制网页的结构。…...

jQuery UI API 文档

关于《jQuery UI API 文档》,我找到了一些有用的信息。jQuery UI 是建立在 jQuery JavaScript 库上的一组用户界面交互、特效、小部件及主题。如果您是 jQuery 新手,建议您先查看 jQuery 教程。目前,我找到的资料主要是关于 jQuery UI 1.10 版…...

盘点2024年大家都在用的录屏工具

现在录屏工具的使用范围越来越广了。我的深切体验是有很多人愿意为知识付费了,但是到线下培训的话很多人时间不一定能协调的来,这就导致涌现了不少的录屏课程。这次我们来探讨下要怎么录屏才能呈现更好的效果。 1.福昕录屏大师 链接达达:ww…...

【大数据】探索怎么从一段话中解析关键信息(寄件人相关信息)

本文由ChatGPT生成,主要用于学习,大家有疑问请及时提出。 使用NLP实现文本信息解析功能:以提取姓名、地址和电话号码为例 在这个博客中,我们将通过自然语言处理(NLP)技术来实现一个简单的文本信息解析功能…...

初学者指南:MyBatis 入门教程

主要介绍了Mybatis的基本使用、JDBC、数据库连接池、lombok注解! 文章目录 前言 什么是Mybatis? 快速入门 使用Mybatis查询所有的用户信息 配置SQL提示 JDBC介绍 Mybatis 数据库连接池 lombok 总结 前言 主要介绍了Mybatis的基本使用、JDBC、数据库连接…...

reader-lm:小模型 html转markdown

参考: https://huggingface.co/jinaai/reader-lm-0.5b 在线demo: https://colab.research.google.com/drive/1wXWyj5hOxEHY6WeHbOwEzYAC0WB1I5uA#scrollTo0mG9ISzHOuKK 输入网址:https://www.galaxy-geely.com/E5 结果: 代码…...

进击J6:ResNeXt-50实战

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、实验目的: 阅读ResNeXt论文,了解作者的构建思路对比之前介绍的ResNet50V2、DenseNet算法使用ResNeXt-50算法完成猴痘病识别 二、实…...

新代机床采集数据

新代集團1995年成立於台灣新竹,事業版圖遍布全球,以台灣為中心向外發展,據點橫跨歐洲、美洲、亞洲三大洲。新代長期深耕於機床控制器的軟體及硬體技術研發,專注於運動控制領域,目前已成為亞太市場中深具影響力的控制器領導品牌之一。主營產品包括:機床數控系統、伺服驅動…...

景联文科技:专业数据标注公司,推动AI技术革新

数据标注作为AI技术发展的重要支撑,对于训练高质量的机器学习模型以及推动应用领域的创新具有不可替代的作用。 景联文科技作为专业的数据标注公司,致力于提供专业的数据标注服务,帮助客户解决AI链条中的数据处理难题,共同推动人工…...

k8s以及prometheus

#生成控制器文件并建立控制器 [rootk8s-master ~]# kubectl create deployment bwmis --image timinglee/myapp:v1 --replicas 2 --dry-runclient -o yaml > bwmis.yaml [rootk8s-master ~]# kubectl expose deployment bwmis --port 80 --target-port 80 --dry-runclient…...

android 权限说明

1. 权限的定义语法 注&#xff1a; 任何应用都可以定义权限 <permission 标签是定义权限 <uses-permission 标签是使用权限。 <permission android:description"string resource"android:icon"drawable resource"android:label"string res…...

<winsock>重叠IO模型

基于事件判断io完成 send程序 #include <stdio.h> #include <winsock2.h>#pragma comment(lib, "Ws2_32.lib") #pragma warning(disable : 4996)int main() {WSADATA wsaData;if (WSAStartup(MAKEWORD(2, 2), &wsaData) ! 0){printf("WSAStart…...

Android Tools | 如何使用Draw.io助力Android开发:从UI设计到流程优化

Android Tools | 如何使用Draw.io助力Android开发&#xff1a;从UI设计到流程优化 1. 引言 在Android开发中&#xff0c;视觉化设计与流程管理至关重要。虽然开发工具如Android Studio强大&#xff0c;但它并不适用于所有设计场景。Draw.io是一款免费的在线绘图工具&#xff…...

Java 每日一刊(第5期):变量守护者

前言 这里是分享 Java 相关内容的专刊&#xff0c;每日一更。 本期将为大家带来以下内容&#xff1a; 量子数据宇宙的变量守护者第一章&#xff1a;能源错配与基本数据类型第二章&#xff1a;引用类型与通讯网络的崩溃第三章&#xff1a;作用域冲突与系统崩溃终章&#xff1…...

【C++二分查找】2517. 礼盒的最大甜蜜度

本文涉及的基础知识点 C二分查找 贪心&#xff08;决策包容性) LeetCode 2517. 礼盒的最大甜蜜度 给你一个正整数数组 price &#xff0c;其中 price[i] 表示第 i 类糖果的价格&#xff0c;另给你一个正整数 k 。 商店组合 k 类 不同 糖果打包成礼盒出售。礼盒的 甜蜜度 是礼…...

【详解】数据库E-R图——医院计算机管理系统

题目 某医院病房计算机管理中需要如下信息&#xff1a; 科室&#xff1a;科室名&#xff0c;科室地址&#xff0c;科室电话&#xff0c;医生姓名 病房&#xff1a;病房号&#xff0c;床位号&#xff0c;所属科室名 医生&#xff1a;工作证号&#xff0c;姓名&#xff0c;性别&a…...

分类预测|基于改进的灰狼IGWO优化支持向量机SVM的数据分类预测matlab程序 改进策略:Cat混沌与高斯变异

分类预测|基于改进的灰狼IGWO优化支持向量机SVM的数据分类预测matlab程序 改进策略&#xff1a;Cat混沌与高斯变异 文章目录 一、基本原理原理流程1. **定义目标函数**2. **初始化GWO**3. **评估适应度**4. **更新狼的位置**5. **更新狼的等级**6. **重复迭代**7. **选择最佳解…...

圆锥曲线练习

设 A ( x 1 , y 1 ) , B ( x 2 , y 2 ) A\left( x_{1}, y_{1} \right), B\left( x_{2}, y_{2} \right) A(x1​,y1​),B(x2​,y2​) l : y k ( x 2 ) l: y k\left( x2 \right) l:yk(x2) 显然 y 0 y0 y0符合题意 当 k ≠ 0 k\neq 0 k0 联立 l l l和 C C C ( k 2 1 2 ) x…...

STM32时钟树

1 什么是时钟 2 时钟数简图...

保姆级教程:用mintar版imu_utils搞定ZED2/Realsense相机内置IMU标定(避坑kalibr_allan)

保姆级教程&#xff1a;用mintar版imu_utils完成ZED2/Realsense相机IMU标定实战指南 当你在视觉惯性里程计&#xff08;VIO&#xff09;项目中遇到定位漂移问题时&#xff0c;很可能是因为IMU参数配置不当。与网上普遍推荐的kalibr_allan方法不同&#xff0c;本文将带你体验min…...

如何通过技术优化提升Element Plus开发效率

如何通过技术优化提升Element Plus开发效率 【免费下载链接】element-plus &#x1f389; A Vue.js 3 UI Library made by Element team 项目地址: https://gitcode.com/GitHub_Trending/el/element-plus 在前端开发过程中&#xff0c;Element Plus作为一款基于Vue.js 3…...

相场法模拟二元合金中考虑溶质偏析的comsol枝晶生长研究

comsol枝晶生长相场法模拟 二元合金 考虑溶质偏析枝晶生长这玩意儿在材料模拟里算是经典难题了。咱们用相场法搞COMSOL模拟的时候&#xff0c;最刺激的就是看那些枝晶分叉怎么从混乱中长出来。这次搞的是二元合金体系&#xff0c;重点得盯着溶质偏析这个捣蛋鬼——它能让晶体长…...

新手福音:通过快马平台生成带详解代码,轻松完成openclaw首次本地部署

今天想和大家分享一个特别适合新手的实践项目——在本地部署openclaw。作为一个刚接触AI部署的小白&#xff0c;我最初看到各种复杂的配置步骤就头大&#xff0c;直到发现了InsCode(快马)平台&#xff0c;整个过程变得简单多了。下面就把我的经验整理成笔记&#xff0c;希望能帮…...

如何突破思维导图协作瓶颈?云端协同与知识管理新方案

如何突破思维导图协作瓶颈&#xff1f;云端协同与知识管理新方案 【免费下载链接】kityminder 百度脑图 项目地址: https://gitcode.com/gh_mirrors/ki/kityminder 在数字化办公环境中&#xff0c;思维导图作为梳理思路、规划项目的重要工具&#xff0c;其价值已得到广泛…...

为什么MedNeXt能超越Transformer?揭秘大卷积核在医学图像分割中的独特优势

MedNeXt如何用大卷积核重塑医学图像分割&#xff1f;技术优势全解析 当你在深夜的医院影像科&#xff0c;看着屏幕上模糊的CT扫描图&#xff0c;试图从那些灰度渐变中分辨出肿瘤边界时&#xff0c;是否会想过AI模型眼中的世界&#xff1f;医学图像分割——这个决定患者治疗方案…...

AI专著写作快车道:特色工具大集合,助力科研成果出版

学术专著写作困境与AI工具助力 学术专著的写作并不只是简单的“写出来”&#xff0c;更在于能否顺利“出版、得到认可”。在当前的出版市场&#xff0c;学术专著的受众本就相对有限&#xff0c;因此出版社对学术价值和作者的影响力要求非常高。许多作者虽然完成了初稿&#xf…...

初识Git,带你深入学习Git相关的知识

在之前的博客中&#xff0c;我都会在博客的开头放一个gitee的链接。Gitee是什么呢&#xff1f;它是一个远程的代码托管库。在我们学习和项目管理的时候起着非常重要的作用。 本期我就带领着大家一起学习Git相关的知识内容。学习它的操作&#xff0c;了解其在企业级开发中的作用…...

Qwen3-TTS作品分享:听AI朗读你的日记、诗歌和故事

Qwen3-TTS作品分享&#xff1a;听AI朗读你的日记、诗歌和故事 1. 为什么你需要一个会"读心"的语音合成工具 想象一下这样的场景&#xff1a;深夜写完日记&#xff0c;点击播放键&#xff0c;听到一个温暖的声音将你的文字娓娓道来&#xff1b;创作完一首诗&#xf…...

终极音乐解锁方案:在浏览器中实现加密音乐文件高效转换完整指南

终极音乐解锁方案&#xff1a;在浏览器中实现加密音乐文件高效转换完整指南 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地…...