推广 热搜:
 |  行业设备  |  机械制造  |  机器视觉  |  机械自动化  |  仪器仪表  |  工业机器人  |  编程开发  |  嵌入式  |  电子技术  |  工控自动化  |  电工电气 频道

LabVIEW编程基础:以实例学编程之条件结构精讲

   日期:2019-08-14     浏览:9    评论:0    
核心提示:LabVIEW又称为G语言,简单易学、形象直观,采用图形化的编程方式,是专为测试、测量和控制应用而设计的系统工程软件。在上篇文章
 LabVIEW又称为G语言,简单易学、形象直观,采用图形化的编程方式,是专为测试、测量和控制应用而设计的系统工程软件。

 

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

条件结构框架特点

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

 

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

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

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

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

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

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

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

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

 

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

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

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

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

 

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

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

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

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

 

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

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

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

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

 

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

总结

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

 
打赏
 
更多>同类编程
0相关评论

推荐图文
推荐编程
点击排行

网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报