【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.mzph.cn/news/867767.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机械硬盘坏了怎么导出数据?5中高效恢复数据的方法

面对机械硬盘损坏的紧急情况,如何有效地导出数据成为了许多用户关注的焦点。以下是对上述方法的深入分析与润色,旨在为用户提供更加全面、清晰的指导。 机械硬盘损坏后的数据导出策略 1. 利用数据恢复软件: 当机械硬盘出现逻辑故障或轻微物…

中标麒麟 RAC 19c 部署(Openssh免密BUG解决方案)

部署环境: 主机一主机二host ip192.168.80.46192.168.80.47vip 192.168.80.48192.168.80.49private ip192.168.10.10192.168.10.11storage ip192.168.20.33192.168.20.34主机名rac19c1rac19c2 需要上传的软件包: 一.虚拟机配置 选择中标麒麟IOS文件&am…

如何在忘记密码的情况下解锁Android手机?

您的 Android 设备密码有助于保护您的数据并防止您的个人信息被滥用。但是,如果您被锁定在Android设备之外怎么办?我们知道忘记您的 Android 手机密码是多么令人沮丧,因为它会导致您的设备和数据无法访问。在本技术指南中,我们将向…

java 闭锁(CountDownLatch)

闭锁(CountDownLatch)是Java中的一个同步辅助类,用于协调多个线程之间的协作。它允许一个或多个线程等待,直到在其他线程中执行的一组操作完成。闭锁非常适用于需要等待一组事件发生之后再执行某些操作的场景。 import java.uti…

JVM相关知识点汇总

JDK,JRE以及JVM的关系 我们的编译器到底干了什么事? 仅仅是将我们的 .java 文件转换成了 .class 文件,实际上就是文件格式的转换,对等信息转换。 类加载机制是什么? > **所谓类加载机制就是** > ``` > 虚拟机把Class文件加载到内存 > 并对数据进行校验,转换…

LeetCode 744, 49, 207

目录 744. 寻找比目标字母大的最小字母题目链接标签思路代码 49. 字母异位词分组题目链接标签思路代码 207. 课程表题目链接标签思路代码 744. 寻找比目标字母大的最小字母 题目链接 744. 寻找比目标字母大的最小字母 标签 数组 二分查找 思路 本题比 基础二分查找 难的一…

WordPress网站添加插件和主题时潜在危险分析

WordPress 最初只是一个简单的博客软件,现在据估计为全球前 1000 万个网站中的 30% 提供支持。WordPress受欢迎的因素之一是可以轻松创建插件和主题来扩展它并提供比默认设置更多的功能。 目前,WordPress 网站列出了 56,000 多个插件以及数千个主题。插件…

《梦醒蝶飞:释放Excel函数与公式的力量》9.3.1PV 函数

9.3.1 函数简介 PV函数用于计算一系列未来付款的现值,考虑了一定的利率。现值是未来金额的贴现值,表示在当前时刻相当于未来某一时间点的总价值。 9.3.2 语法 PV函数的语法如下: PV(rate, nper, pmt, [fv], [type]) rate:每期…

数字化精益生产系统--QMS质量管理系统

QMS质量管理系统(Quality Management System)是现代企业管理的关键组成部分,旨在确保产品和服务的质量达到或超过客户需求和期望。 以下是对QMS质量管理系统的功能设计:

ReAct Agent 分享回顾

在人工智能的迅速发展中,ReAct Agent作为一项前沿技术,受到越来越多的关注。本文结合ReAct Agent 提出者的访谈内容,探讨ReAct Agent的研究背景、技术挑战、未来展望,以及它与大模型的紧密联系,分析其科研成果与商业化…

树莓派5安装冬瓜HAOS教程

原文来自瀚思彼岸和hasshome 一、安装前准备 (1)软件 1、树莓派烧录软件Imager 2、冬瓜HAOS镜像 (2)硬件 1、树莓派5 2、TF卡(SanDisk Extreme PRO 64GB U3 A2 V30 4k) 3、读卡器 4、键盘和鼠标 5、显…

Vue3+.NET6前后端分离式管理后台实战(二十九)

1,Vue3.NET6前后端分离式管理后台实战(二十九)

2.5 C#视觉程序开发实例1----IO_Manager实现脉冲输出控制

2.5 C#视觉程序开发实例1----IO_Manager实现脉冲输出控制 1 目标效果视频 目标效果展示 IO_Manager 2 信号输出流程说明 为了防止线程不同步导致输出信号没有被输出, 尽量使用一个输出队列来进行输出的管理 3 IO_Manager中添加内容 3.0 添加两个类 1 Out_Sta…

VSCode推荐插件:Copy Class Name快速复制html中的类名

插件地址&#xff1a;https://marketplace.visualstudio.com/items?itemNamemouday.copy-class-name 复制Vue和React中HTML代码的类名&#xff0c;实现快速复制 使用方式&#xff1a; 选中代码&#xff0c;右键复制类名&#xff0c;再粘贴到文件中即可 示例 <div clas…

Flink SQL kafka连接器

版本说明 Flink和kafka的版本号有一定的匹配关系&#xff0c;操作成功的版本&#xff1a; Flink1.17.1kafka_2.12-3.3.1 添加kafka连接器依赖 将flink-sql-connector-kafka-1.17.1.jar上传到flink的lib目录下 下载flink-sql-connector-kafka连接器jar包 https://mvnreposi…

最新整理的机器人相关数据合集(1993-2022年不等 具体看数据类型)

机器人安装数据是指记录全球或特定区域内工业机器人新安装数量的信息&#xff0c;这一数据由国际机器人联合会(IFR)等权威机构定期发布。这些数据不仅揭示了机器人技术的市场需求趋势&#xff0c;还反映了各国和地区自动化水平及产业升级的步伐。例如&#xff0c;数据显示中国在…

数据库测试|Elasticsearch和ClickHouse的对决

前言 数据库作为产品架构的重要组成部分&#xff0c;一直是技术人员做产品选型的考虑因素之一。 ClkLog会经常遇到小伙伴问支持兼容哪几种数据库&#xff1f;为什么是选择ClickHouse而不是这个或那个。 由于目前市场上主流的数据库有许多&#xff0c;这次我们选择其中一个比较典…

深度学习3 基于规则的决策树模型

1.决策树是一种归纳学习算法&#xff0c;从一些没有规则、没有顺序、杂乱无章的数据中&#xff0c;推理出决 策模型。不管是什么算法的决策树&#xff0c;都是一种对实例进行分类的树形结构。决策树有三个要素&#xff1a;节点(Node)、分支(Branches)和结果(Leaf)。 训练决策树…

算法010:无重复字符的最长子串

无重复字符的最长子串. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/longest-substring-without-repeating-characters/ 使用的算法&#xff1a;滑动窗口 在这个…

干货 | 2024大模型增强下的图智能在金融场景的应用(免费下载)

如需下载本方案PPT/WORD原格式&#xff0c;诚挚邀请您微信扫描以下二维码加入方案驿站知识星球&#xff0c;获取上万份PPT/WORD解决方案&#xff01;&#xff01;&#xff01;感谢支持&#xff01;&#xff01;&#xff01;