【LabVIEW学习篇 - 4】:程序结构——条件结构、事件结构、禁用结构

文章目录

  • 条件结构
    • 案例一(布尔输入)
    • 案例二(整数输入)
    • 案例三(字符串输入)
  • 事件结构
    • 案例一
    • 案例二
  • 禁用结构

条件结构

条件结构的组成部分:
在这里插入图片描述

  1. 选择器标签(带方框的“?”):显示相关分支执行的值。可指定单个值或一个值范围。通过选择器标签指定默认分支。
  2. 子程序框图(分支):包含连线至条件选择器接线端的值与条件选择器标签中的值相匹配时,执行的代码。右键条件结构边框并选择相应选项,可修改子程序框图的数量或顺序。
  3. 条件选择器(条件结构顶部):根据输入数据的值,选择要执行的分支。输入数据可以是布尔、字符串、整数、枚举类型或错误簇。连线至条件选择器的数据类型决定了可输入条件选择器标签的分支。

案例一(布尔输入)

案例一:在条件结构中设置一个开关按钮,当开关按钮的布尔值为真时,显示字符串“我是真”,为假时,显示字符串“我是假”。

  1. 在前面板中,鼠标右键,在布尔模块选择开关按钮,然后在程序框图中鼠标右键,在结构模块中选择条件结构,并将开关按钮与选择器连接起来。
    在这里插入图片描述
  2. 在前面板中鼠标右键,在字符串与路径模块中选择字符串显示控件,并将其放入条件结构中,创建常量,输入“我是真”,然后在鼠标移动到字符串显示控件上,鼠标右键,选择创建-属性节点-值,并将其改为全部写入。
    接着将条件结构切换到“假”分支,将该值放入假分支中,创建常量,输入“我是假”,最后在最外围,放上一个while循环
    在这里插入图片描述
    在这里插入图片描述
  3. 运行结果如下:
    在这里插入图片描述

案例二(整数输入)

案例二:放置一个数值输入控件,并将其变为整型(其他数字类型不支持输入)与条件结构的选择器连接,并添加4个条件分支,分别为22、45、60、78,每个条件分支皆有对应的字符串表达。

  1. 在前面板中放置数值输入控件,在程序框图中放置条件结构,并将其连接起来,然后鼠标移动到数值输入控件的位置,鼠标右键,在表示法中选择长整型(其他整型皆可)。
    如下图所示,选择长整型后控件颜色改变,并且条件选择器的真变为1,假变为“0,默认”。
    在这里插入图片描述
    在这里插入图片描述
  2. 鼠标移动到条件选择器的位置,鼠标右键,选择在后面添加分支,重复四次,并修改对应条件选择器的值为22、45、60、78。
    在这里插入图片描述
  3. 在前面板中放置字符串显示控件,并将其拖动到1分支,在其属性节点中创建值,并复制4份,分别放入新创建和0的分支中,分别设置其对应的字符串表达。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  4. 使用while循环将整个程序包住。
    在这里插入图片描述
  5. 运行结果如下,前面板中,当输入值为5时,字符串显示我是其他的值,当输入数值为45时,显示我是45
    在这里插入图片描述
    在这里插入图片描述

案例二小节:为什么输入5时,字符串会显示我是其他的值呢?因为LabVIEW中的条件结构相当于文本语言中的if……else……switch语句,当输入的值不为1、22、45、60、78时,则会跳转到0,默认这一分支中。

Tips:若误将默认分支删除,可在某一分支或创建新的分支,鼠标右键,选择本分支设置为默认分支即可。
在这里插入图片描述
在这里插入图片描述

Tips:快捷键小知识,ctrl+R运行程序,ctrl+.结束程序。

案例三(字符串输入)

字符串输入与整型输入的方法和思路相同。

案例三:创建一个字符串输入控件并将其与条件结构连接,创建两个分支,分别为街三仔、加油,然后在真分支中放置字符串显示控件,并在其属性节点中创建值,在其他分支中设置不同字符串的值。

  1. 在前面板中,鼠标右键,在字符串与路径模块中选择字符串输入控件字符串显示控件,在程序框图中,将字符串输入控件与条件结构连接,并将字符串显示控件放入“真”分支中。
    如下图所示,当字符串输入控件与条件结构连接时,条件选择器的值发生改变,分支变为"真"、“假”, 默认,带有""即表示字符串。
    在这里插入图片描述

  2. 分别创建街三仔、加油这两个分支,并在字符串显示控件中的属性节点创建值,并复制三份,分别放入"假", 默认、“街三仔”、"加油"中,并设置不同的字符串表达。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 在最外围放置while循环。
    在这里插入图片描述

  4. 运行结果如下。当输入Hello时字符串显示控件显示我是其他,当输入街三仔时,字符串显示控件显示街三仔。
    在这里插入图片描述
    在这里插入图片描述

事件结构

事件结构用于在程序运行时响应用户交互或系统事件,类似于传统编程中的事件处理机制。通过事件结构,可以实现对各种事件(如按键按下、鼠标点击、数值变化等)的监测和处理。以下是关于LabVIEW中事件结构的一些特点和用法:

  1. 事件绑定
    事件结构可以与控件、对象或数据通道等元素进行绑定,以监测这些元素的特定事件。例如,可以将事件结构与按钮控件绑定,以响应用户的点击事件。

  2. 事件类型
    LabVIEW支持多种事件类型,如按键事件、鼠标事件、定时器事件、数值变化事件等。

  3. 事件处理
    在事件结构中,可以为每种事件类型指定相应的处理代码,以定义事件发生时应该执行的操作。

事件结构编程的3条黄金法则

  • 不要将事件结构放置在while循环之外,而应该放置在while循环的内部;
  • 不要在事件结构的内部使用循环处理事件,可选择采用生产者消费者结构,在生产者循环中放置事件结构,在消费者循环中处理事件;
  • 记得为事件结构添加一个单独处理停止按钮的分支。

案例一

案例一:利用事件结构,使用两个确定按钮控件圆形指示灯的亮灭。

  1. 在前面板中,鼠标右键,在布尔模块中选择确定按钮,设置连个确定按钮,然后设置圆形指示灯。接着在程序框图中,鼠标右键,在结构模块中选择事件结构
    在这里插入图片描述
  2. 选中事件结构,鼠标右键,点击添加事件分支,然后在事件源中选择打开按钮控件,事件选择值改变,点击确定,即可绑定打开按钮控件的事件为值改变。
    同理,将关闭按钮控件绑定事件设置为值改变。
    设置好后发现事件选择器中增加了打开和关闭的事件分支,并分别将打开和关闭按钮放入对应的事件分支中。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 将圆形指示灯放入打开事件分支中,创建常量,设置为T,即灯亮,并在属性节点中创建值,将其值放入关闭事件中,创建常量,设置为F即灯灭。
    在这里插入图片描述
    在这里插入图片描述
  4. 运行结果如下,从以下第一张图可看到,当没有事件到来时程序一直在执行。第二张图可看到,当点击打开按钮时,灯亮,程序运行结束。
    在这里插入图片描述
    在这里插入图片描述

案例二

案例一中可基本了解事件结构的用法,但是为什么当没有事件到来时,程序一直在运行呢?

如下图所示,将鼠标移动到事件结构的左上角,点击右键,点击创建常量,发现其值为-1-1表示无穷等待,即一直等待事件到来,该值也是事件结构的默认值。
在这里插入图片描述
案例二:基于案例一,让事件结构在3s内,没有事件的到来,则自动将灯点亮。

  1. 设置事件结构的等待事件为3s,在圆形指示灯的属性节点中创建值,并将该值放入,[0] 超时的事件分支中,创建常量,设置为T
    注意:[0] 超时事件分支表示运行程序时,时间结构等待的时间超过用户设置的等待时间,则自动进入该分支中。
    在这里插入图片描述
  2. 运行结果如下,第一张图为程序刚运行等待事件没有超过3s时,灯是灭的。第二张图为等待事件超过3s,灯亮。
    在这里插入图片描述
    在这里插入图片描述

Tips:可在事件结构外放置while循环,这样当事件到来时,程序不会直接结束,但需要注意的是,不要再事件结构中放置while循环,一旦进入放置while循环的事件分支中,则跳不出来。

禁用结构

禁用结构(Disable Structure)是一种特殊的控制结构,用于临时禁用或启用其中包含的程序代码段。

禁用结构也相当于文本语言中的注释。

案例:基于事件结构的案例二,设置事件结构为无穷等待,并在事件结构外部使用while循环,将关闭事件分支的程序使用禁用结构禁用起来。

  1. 在程序框图中,将事件结构设置为无穷等待,使用while循环将事件结构包住,鼠标右键,在结构模块中选择程序框图禁用结构,将关闭事件分支中的程序禁用。
    注意:删除事件结构左上角的等待事件,即表示设置事件结构的等待时间为其默认值。
    在这里插入图片描述
    在这里插入图片描述

  2. 运行程序,发现点击关闭按钮,灯不灭。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/781609.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PCIe驱动开发(2)— 第一个简单驱动编写和测试

PCIe驱动开发(2)— 第一个简单驱动编写和测试 一、前言 教程参考:02_实战部分_PCIE设备测试 教程参考:03_PCIe设备驱动源码解析 二、驱动编写 新建hello_pcie.c文件 touch hello_pcie.c然后编写内容如下所示: #i…

基于java+springboot+vue实现的校园外卖服务系统(文末源码+Lw)292

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,外卖信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广…

目标检测2--yolov1中相关基础知识(边框回归、交并比、nms)介绍

文章目录 前言回归介绍基本概念线性回归非线性回归边框回归 交并比介绍定义程序实现 NMS介绍定义与原理工作原理代码实现 前言 在上篇博客目标检测1–Pytorch目标检测之yolov1中介绍了yolov1的原理,里面提到几个知识点现在详细介绍一下。 回归介绍 在上篇博客中提…

51单片机STC89C52RC——16.1 五项四线步进电机

目的/效果 让步进电机 正向转90度,逆向转90度 一,STC单片机模块 二,步进电机 2.2 什么是步进电机? 步进电机可以理解为:是一个按照固定步幅运动的“小型机器”。它与普通电机不同点在于,普通电机可以持…

【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(十二)-管道、环境变量、常用命令

大致介绍了一下管道、环境变量、一些常用的基本命令,可以当作学习笔记收藏学习一下!!! 文章目录 前言 一、管道 二、环境变量 1.概念 2.查看 3.修改 4.常用环境变量 三、系统状况 总结 前言 大致介绍了一下管道、环境变量、一些常…

基于Java的水果商品销售网站

1 水果商品销售网站概述 1.1 课题简介 随着电子商务在当今社会的迅猛发展,水果在线销售已逐渐演变为一种极为便捷的购物方式,日益受到人们的青睐。本系统的设计初衷便是构建一个功能完备、用户体验友好的水果销售平台,致力于为用户提供优质、…

昇思25天学习打卡营第14天|基于MindNLP的文本解码原理

基于MindNLP的文本解码原理 文本解码 文本解码是自然语言处理中的一个关键步骤,特别是在任务如机器翻译、文本摘要、自动回复生成等领域。解码过程涉及将编码器(如语言模型、翻译模型等)的输出转换为可读的文本序列。以下是一些常见的文本解码方法和原理: 1. 自回归解码:…

常用的MRI分析软件

MRI(磁共振成像)分析软件种类繁多,涵盖了从基础图像处理到高级数据分析的各个方面。这些软件广泛应用于临床诊断、研究和教育等领域。以下是一些常用的MRI分析软件: 开源软件 商用软件 特殊用途软件 在线工具和云平台 这些软件各…

孟德尔随机化与痛风3

写在前面 检索检索,刚好发现一篇分区还挺高,但结果内容看上去还挺熟悉的文章,特记录一下。 文章 Exploring the mechanism underlying hyperuricemia using comprehensive research on multi-omics Sci Rep IF:3.8中科院分区:2区 综合性期…

# [0705] Task06 DDPG 算法、PPO 算法、SAC 算法【理论 only】

easy-rl PDF版本 笔记整理 P5、P10 - P12 joyrl 比对 补充 P11 - P13 OpenAI 文档整理 ⭐ https://spinningup.openai.com/en/latest/index.html 最新版PDF下载 地址:https://github.com/datawhalechina/easy-rl/releases 国内地址(推荐国内读者使用): 链…

渐开线花键测量学习笔记分享

大家好,继续渐开线花键的相关内容,本期是渐开线花键测量相关的学习笔记分享: 花键检测项目有花键大径和小径检验;内花键齿槽宽和外花键齿厚,以及渐开线终止圆 和起始圆直径检测;齿距累计误差 、齿形误差 、…

Python网络爬虫:Scrapy框架的全面解析

Python网络爬虫:Scrapy框架的全面解析 一、引言 在当今互联网的时代,数据是最重要的资源之一。为了获取这些数据,我们经常需要编写网络爬虫来从各种网站上抓取信息。Python作为一种强大的编程语言,拥有许多用于网络爬虫的工具和库…

护网在即,知攻善防助力每一位安服仔~

前言 是不是已经有师傅进场了呢~ 是不是有安服🐒在值守呢~ 您是不是被网上眼花缭乱的常用应急响应工具而烦恼呢? 何以解忧?唯有知攻善防! 创作起源: 驻场、护网等,有的客户现场只允许用客户机器&…

一.7.(2)基本运算电路,包括比例运算电路、加减运算电路、积分运算电路、微分电路等常见电路的分析、计算及应用;(未完待续)

what id the 虚短虚断虚地? 虚短:运放的正相输入端和反相输入端貌似连在一起了,所以两端的电压相等,即UU- 虚断:输入端输入阻抗无穷大 虚地:运放正相输入端接地,导致U=U-=0。 虚…

采用Java语言+开发工具 Idea+ scode数字化产科管理平台源码,产科管理新模式

采用Java语言开发工具 Idea scode数字化产科管理平台源码,产科管理新模式 数字化产科管理系统是现代医疗信息化建设的重要组成部分,它利用现代信息技术手段,对孕产妇的孕期管理、分娩过程及产后康复等各个环节进行数字化、智能化管理&#xf…

lua中判断2个表是否相等

当我们获取 table 长度的时候无论是使用 # 还是 table.getn 其都会在索引中断的地方停止计数,而导致无法正确取得 table 的长度,而且还会出现奇怪的现象。例如:t里面有3个元素,但是因为最后一个下表是5和4,却表现出不一…

SpringBoot3+Vue3开发园区管理系统

介绍 在当今快速发展的城市化进程中,高效、智能的园区管理成为了提升居民生活品质、优化企业运营环境的关键。为此,我们精心打造了全方位、一体化的园区综合管理系统,该系统深度融合了园区管理、楼栋管理、楼层管理、房间管理以及车位管理等…

微信小程序消息通知(一次订阅)

在微信公众平台配置通知模版 通过wx.login获取code发送给后端 let that this // 登陆codewx.login({success: function (res) {if (res.code) {// 发送code到后端换取openid和session_keythat.setData({openCode: res.code})console.log(that.data.openCode, openCode);// 调…

【SpringBoot】SpringBoot内置Servlet容器源码分析-Tomcat

自动装配加载 ServletWebServerFactoryAutoConfiguration 在自动装配的时候,会加载spring.factories,并且添加到IOC容器中。这里包含web自动配置类ServletWebServerFactoryAutoConfiguration ,其中本类中注入三个bean,分别是Embed…

【数据结构与算法】插入排序

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《数据结构与算法》 期待您的关注 ​