labview实例_手把手以实例教你学LabVIEW编程,条件结构编程方法

LabVIEW又称为G语言,简单易学、形象直观,采用图形化的编程方式,是专为测试、测量和控制应用而设计的系统工程软件。

在上篇文章(请参考:顺序结构编程)中已经讲了顺序结构的编程方法,下面通过具体例子演示条件结构的编程使用方法。

条件结构框架特点

条件结构也可称作选择结构、分支结构等,其目的是根据不同的输入条件,程序执行不同的分支,用来改变程序的执行流程。在LabVIEW中条件结构框架样式如下图所示:

11650d6535f555a79fe9698a782df7f9.png

由上图可看出,条件结构由选择框架、选择端口、选择标签,以及递增/递减按钮等组成。其特点是:

1. 选择端口上可连接多种数据类型的输入,如布尔型、数值型、枚举型、字符串型等;

2. 必需有一个默认处理条件(default case),用来处理超出条件选项范围的情况;

3. 输入数据时,每个子条件框可连也可不连数据通道;

4. 输出数据时,每个子条件框必须为数据通道连接数据。否则程序不能运行,这时通道的图标是空心的,只有为每个子条件框的数据端口都连接数据后,图标才变成实心。为简单起见,也可在数据通道端口的右键菜单中选择“未连线时使用默认”,可使程序中没有连线的子条件框输出该数据类型对应的默认值。

下面根据不同的数据类型的条件输入,列举几个常用类型的编程例子。

示例1:布尔型的条件输入

LabVIEW中默认创建的条件结构就是布尔型输入的情况,这种结构类似于C语言中的“if...else...”结构,只存在真和假两个分支。一个简单的示例程序框图代码如下图所示:

2b3e58c1c3827103edf3e281e72d7566.png

在上图中对于输入的数值x,根据其值与0进行比较的结果作为条件结构的输入,如果其值大于等于0,则输出y值为1,否则输出y值为-1。

注意,此种情况也可以直接输入一个错误簇(LabVIEW内置的数据类型,本质上为一种结构体类型),其会自动分为错误和无错误两个分支,然后在两个分支中分别写入对应的处理代码即可。

示例2:数值型的条件输入

对于数值型的条件输入,由于计算机在作数值比较时存在着精度原因,其只允许输入整数数值,包括有符号和无符号整型数值,若输入单/双精度类型时将会自动转换为有符号整数。此时可以输入单个数字,也可以输入一段区间的数值。示例程序框图代码如下图所示:

e17be0e46b7aa171559ec8002131e024.png

上图中对于输入的分数值,根据其所在的区间段或值得出最终的结论信息,涉及到了单个数值、区间段及默认情况的处理。

注意,对于整数数值输入,在分支中符号“..”表示选择一段区间,如“60..69”表示的是所有大于等于60且小于等于69之间的整数,“..60”表示的是所有小于等于60的整数;符号“,”表示多个数值的选择,如“2,5,8”表示当条件等于2、5、8时选择这个分支。

示例3:字符串型的条件输入

这种分支比较简单,示例程序框图代码如下图所示:

0428abfe1e774c4443bba20c5d26a615.png

程序中模拟显示了程序的执行过程,输入“执行步骤”信息,其值当输入“步骤1”、“步骤2”和“步骤3”时,“执行信息”控件中会显示当前程序运行信息。

当输入其它信息时,程序会执行默认分支,在该分支中,由于在“执行信息”数据通道的右键菜单中选择了“未连线时使用默认值”,因此“执行信息”的值将输出为空白字符。

示例4:枚举型的条件输入

这种枚举型的条件输入,在LabVIEW中应该是最正宗的条件结构了,类似于C语言的“switch...case...”结构,并且在创建分支时,可在右键菜单中选择“为每个值添加分支”,此时程序会自动为枚举类型输入变量中的每个值创建一个分支框,省去了手动添加每个分支的过程,添加分支后,再将其中的一个分支设置为默认分支即可。一个简单的示例程序框图代码如下图所示:

6543df1ca78e0fef51a9cc7d32e359c6.png

在上图中“季节”是一个枚举型的输入控件,根据其值自动输出当前的季节信息。

总结

本文针对LabVIEW中条件结构,给出了当输入不同数据类型的条件时,其典型的编程方法。从这些例子中可看出,LabVIEW中提供的这种条件结构,功能非常强大,完全可以实现C语言中的“if...else...”、“switch...case...”等结构类型的功能,而且编程方法也是非常简洁方便的。

本文由编码那些事原创,请关注+转发+收藏+点赞,带你一起长知识!

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

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

相关文章

用递归与分治策略求解网球循环赛日程表_算法设计:分治法(比赛日程安排)...

一、算法思路1、思路分治算法的思想是:对于一个规模位N的问题,若该问题可以容易解决(比如规模N较小),则直接解决,否则将其分解为M个规模较小的子问题,这些子问题互相独立,并且与原问题形式相同,…

聚类算法 距离矩阵_谱聚类

比起传统的K-means算法,谱聚类对数据分布的适应性更强,计算量也要小很多。1. 谱聚类概述谱聚类是从图论中演化出来,主要思想是吧所有的数据看作空间中的点,这些点之间可以用边连接起来。距离较远的两个点之间的边权重值较低&#…

vlan划分不能上网_VLAN工作原理

什么是VLANVLAN(Virtual LAN),翻译成中文是“虚拟局域网”。可以看做是在一个物理局域网络上搭建出几个逻辑上分离的几个局域网。举个例子来说,如果一个交换机划分为两个VLAN,则相当于这台交换机逻辑上划分为两个交换机。VLAN的一个简单直观说…

控制for each循环次数_CCF CSP编程题解201312-1:出现次数最多的数

试题编号:201312-1试题名称:出现次数最多的数时间限制:1.0s内存限制:256.0MB问题描述:给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。输入格式:输入的第一行只有一…

旋流式沉砂池计算_旋流沉砂池设计方法

旋流沉砂池设计接口条件和主要参数设计旋流沉砂池前要确认的接口条件和信息包括:地质、气候等基本设计条件;可用地尺寸及在总图的位置坐标;地坪标高,上下游水位或范围,冻土层高度,管道覆土小深度要求&#…

parallelstream启动的线程数_高并发与多线程网络学习笔记(三)线程组和线程池

线程组线程组的作用是:可以批量管理线程或线程组对象,有效地对线程或线程组对象进行组织。构造函数ThreadGroup(String name)//默认parent为当前线程组 ThreadGroup(ThreadGroup parent, String name)具体方法//评估当前活跃的线程数,包括当前group和子g…

pytorch l2正则化_吴恩达深度学习 编程作业六 正则化(2)

推荐守门员应该将球踢到哪个位置,才能让自己的队员用头击中。1.无正则化模型判别是否有正则化与调用其他计算函数。准确率:0.948/0.915明显过拟合overfiting了。2.L2正则化公式如下,在原有cost函数基础上增加L2项,L2为参数w的均方…

vs中工具箱代表的意思_“日”除了代表太阳,其实还有这种意思,特别是出现在这些词语中的“日”...

对于“日”来说,大家都并不陌生,对于日的成语更是多得数不胜数,今天小编将日字成语进行了一个总结,需要用到的朋友们可以收藏!一:以“日”开头的成语,大多数形容的是时间。日积月累、日久天长、…

mysql or走索引吗_加了索引,mysql查询就一定会用吗?

小白白跑去鹅厂面试,面试官提出了一个很实际的问题: mysql增加索引,那些情况会失效呢?谈一下实际工作中遇到的情况。我们的小白白又抛出了白氏秘籍:用不用索引,找DBA小姐姐!啊?这是你…

基本农田卫星地图查询_如何基于西安80坐标查询定位

1. 概述水经注软件除了可以轻松下载无水印Google Earth卫星影像、有明确拍摄日期的历史影像、地方高清天地图、百度高德大字体打印地图,且可按1万/5千等国家标准图幅下载,下载含高度的全国矢量建筑、全国乡镇及街区行政区划、地名点、高速铁路网、公交路…

tcp的无延时发送_高并发架构的TCP知识介绍

这是关于高并发架构网络协议基础知识的第二篇,编程路上的基础心法!做为一个有追求的程序员,不能只满足增删改查,我们要对系统全方面无死角掌控。掌握了这些基本的网络知识后,相信一方面日常排错中会事半功倍&#xff0…

如何对一个变量数据进行正则判定_生存分析数据中的BuckleyJamesMultipleRegression Model...

一、模型简介目前,生存分析领域,最常用的是Cox比例风险回归模型,该模型具有良好的特性,不仅可以分析各种自变量对生存时间的影响,而且对基准风险分布不作任何要求(半参数模型)。Cox模型使用时要满足一定的条件&#xf…

格兰杰因果关系检验r语言_R语言系列第四期:R语言单样本双样本差异性检验

之前详细介绍了利用R语言进行统计描述,详情点击:R语言系列第三期:①R语言单组汇总及图形展示、R语言系列第三期:②R语言多组汇总及图形展示、R语言系列第三期:③R语言表格及其图形展示从这个部分我们就开始为大家介绍统…

java 配置jmstemplate_SpringBoot集成JmsTemplate(队列模式和主题模式)及xml和JavaConfig配置详解...

1.导入jar包:org.springframework.bootspring-boot-starter-activemqorg.apache.activemqactivemq-pool2.填写配置文件(application.properties)#设置JMS(AMQ)spring.activemq.broker-urltcp://localhost:61616spring.activemq.useradminspring.activemq.passwordad…

切面是异步还是同步操作‘_分布式中采用Logback的MDC机制与AOP切面结合串联日志...

导读:在实际开发中,打印日志是十分重要的。在生产环境中,如果日志打得好可以快速地排查问题,而在分布式的场景下,一个请求会跨越多个节点,既一个业务可能需要多个节点协调配合处理。那么日志将会分散&#…

java 图类_Java集合类,一张图说清楚!

作者:skywang12345https://www.cnblogs.com/skywa...2019-03-23 10:32:24Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*,Java集合主要可以划分为4个部分…

python 取整_马克的Python学习笔记#数字,日期和时间

对数值进行调整在Python中对整数和浮点数进行数字计算是很容易的。但是,如果你需要对分数,数组或者日期和时间进行计算,这就会稍微复杂点。对于简单的取整操作,我们可以使用内建的round(value, ndigits)函数就可,举个例…

各路由协议的协议号_厂房转让协议

厂房转让协议转让方(甲方):________________受让方(乙方):________________甲乙双方本着平等互利的原则,经协商一致就甲方将其权属的工业用地、厂房等转让与乙方及有关事项达成如下协议:一、工业用地及厂房产权基本情况本协议转让的工业用地位…

java web开发常见问题_JavaWeb学习笔记(五)--Web开发其他常见问题

一、把web应用打成war包使用JDK自带jar命令,进入到web应用里面,执行命令:jar -cvf 包名.war . # .表示当前目录所有的文件 直接用jar可查看帮助执行完成后生成一个demo.war文件,把这个文件拷贝到Tomcat的webapps下,Tom…

uwsgi怎么通过浏览器访问某个脚本_4个Shell小技巧帮你提高机器学习效率:写好脚本,事半功倍...

晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI在机器学习的实践过程中,用好Shell能帮你很多节省时间。最近,有位来自ETHZ的学生分享了一些Shell小技巧。对程序员来说,这些技巧更重要的是让你的思维从琐碎小事中解脱出来,大大提高…