labview编程笔记之条件结构

简介: labview编程笔记之条件结构

学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢?

博客写作背景----项目中解决的问题

最近遇到一个使用stm32单片机多路采集信号的项目,还需要在上位机进行波形的查看,信号算法的处理,初步定为使用labview编写上位机程序进行处理。为啥用labview呢,因为LabVIEW是美国国家仪器公司(NI)的创新软件产品,其全称是实验室虚拟仪器工程平台(Laboratory Virtual Instrument Engineering Workbench),是一种基于G语言(Graphics Language,图形化编程语言)的测试系统软件开发平台。LabVIEW并不局限于虚拟仪器的开发,它的作用是为大型复杂测试系统提供通用的软件开发平台。目前,LabVIEW已经成为测试领域应用最广泛和最有前途的软件开发平台之一。

下面是我最近写程序的一些知识,进行了部分的整理,发出来和大家一起分享,也方便我以后查找自己的编程过程。

编程知识点–labview编程笔记之条件结构

条件结构,也称分支结构或选择结构。在C语言中,选择结构有两种语句可以实现,分别是if语句和switch语句[7]。if语句只有两个分支可以选择,而switch语句则是多分支选择语句。当然,利用if语句的嵌套,也可以实现多分支结构,但相比switch语句会显得烦琐。LabVIEW中条件结构的功能与C语言中if、switch语句的功能相类似。


在LabVIEW中,如何创建一个条件结构呢?具体方法是:在“函数”选板→“编程”→“结构”子选板上,选中一个条件结构,将其拖曳到程序框图面板上,创建好的条件结构如图所示。

2576690442ab42e0b946c7c94e42e0a5.png


其中,“条件选择器”的输入数据,可以是布尔、整数、字符串、枚举类型或错误簇;而“选择器标签”则用于决定下方显示哪个条件分支下的框图,具体地,可以通过“选择器标签”上的按钮来选择当前显示哪个分支。


条件选择器为布尔型

当条件选择器上接入的是布尔量时,条件结构的功能相当于C语言中的if语句,即只有两个分支(真或假),这也是条件结构的默认情况。图显示的是当条件选择器接入布尔量时的情况,且显示的是真分支下的框图。


件选择器为非布尔型

当条件选择器接入的是非布尔量(整型数值、字符串或枚举型)时,条件结构的功能就相当于C语言中的switch语句,即可以有多个分支。


d17397cbdefb4711af4322729ddd370b.png

图所示的条件结构,它的条件选择器接入的是整型数值,且共有4个分支,第一个分支是小于或等于-1的数;第二个分支是等于1、3和4;第三个分支是等于6以及默认的情况;第四个分支是大于或等于7的数。


当条件选择器接入的是非布尔量,使用条件结构时需要注意:要么在条件选择器标签中列出所有可能的情况;要么必须给出一种缺省(默认)的情况。如上图所示,就存在一个默认分支,这是因为4个分支并未将所有可能的数据都覆盖掉。


那么,如何为条件结构添加新的分支呢?具体操作如下:将鼠标放在条件结构边框上,右击,弹出其快捷菜单,选择“在后面添加分支”或“在前面添加分支”,即可完成新分支的添加。常见问题4:设置条件结构选择器接入数据的注意事项。


条件结构选择器默认接入的数据为布尔型的,如图1所示,所以其上端的选择器标签默认的是真或假。当在条件选择器接入一个数值型数据时,选择器标签会自动变成数值型,此条件下,可以根据实际需求设置不同的分支。初学者容易犯的一个错误是,在还没有为条件选择器接入具体输入的条件下,就直接去修改上端选择器标签的数据类型,如此操作会导致LabVIEW报错。


在LabVIEW中,条件结构内外之间的数据交换是通过隧道完成的。向条件结构内引入连线或从其内部向外引出连线,均会在其边框上生成隧道;其中,左边边框上的是输入隧道,右边边框上的是输出隧道。输入隧道在每一个分支中都可以使用;而输出隧道必须从每一个分支都得到明确的输入值,否则VI无法运行。如图下所示,输出隧道呈空心状态,这表明,这个条件结构中有的分支没有为输出隧道赋值,此条件下,LabVIEW就会报错,具体表现为运行按钮将呈断裂状态。


9566d2c77d4c4ceb810a03440e61a7dd.png

如图所示,输出隧道呈实心状态,则表明所有的分支都已为输出隧道赋了值。

7d65ad15810542e39511faab1eaf3462.png


目录
相关文章
2017计科01-08编译原理练习题一运行时空间组织管理&优化&目标代码生成
2017计科01-08编译原理练习题一运行时空间组织管理&优化&目标代码生成
2017计科01-08编译原理练习题一运行时空间组织管理&优化&目标代码生成
|
4月前
|
异构计算
FPGA新起点V1开发板(七-语法篇)——程序框架+高级语法(选择性做笔记)
FPGA新起点V1开发板(七-语法篇)——程序框架+高级语法(选择性做笔记)
|
5月前
|
C语言
【学习笔记】Verilog之四:结构建模方法
Verilog 提供两种建模方法:行为建模和结构建模。行为建模专注于电路功能描述,类似高级编程语言,不涉及底层实现。数据流建模使用 `assign` 进行连续赋值,适合描述组合逻辑。线网可以在声明时直接赋值。顺序行为建模通过 `initial` 和 `always` 语句实现,`initial` 用于一次性初始化,`always` 则用于响应特定事件的重复执行。时序控制包括时延和事件控制,用于精确控制电路行为。阻塞和非阻塞赋值决定了语句执行的顺序和并发性。过程性连续赋值如 `assign-deassign` 和 `force-release` 提供了更多灵活性。
|
芯片 异构计算
第三章 硬件描述语言verilog(三)功能描述-时序逻辑
第三章 硬件描述语言verilog(三)功能描述-时序逻辑
268 0
第三章 硬件描述语言verilog(三)功能描述-时序逻辑
|
6月前
|
Unix 编译器 数据库
【进阶】C 语言表驱动法编程原理与实践
【进阶】C 语言表驱动法编程原理与实践
219 0
|
编译器 C语言
编译原理(三)目标代码的生成与优化基本概念
编译原理(三)目标代码的生成与优化基本概念
161 0
|
前端开发 JavaScript
来认识一下 styleSheets,好像有点高级的样子
使用 js 操作样式我们通常操作的是 dom 的 style 属性,也就是我们所说的行内样式,那么有没有一种方法可以操作 css 文件中的样式呢?答案是肯定的,我们可以使用 cssom 来操作 css
155 0
|
算法 图形学
labview编程笔记之事件结构
labview编程笔记之事件结构
159 0
|
编译器 数据安全/隐私保护 Python
Python编程基础:实验1——程序的控制结构
Python编程基础实验1——程序的控制结构
426 0
Python编程基础:实验1——程序的控制结构
|
芯片 异构计算
case语句还能这么用,它的综合结果你会了吗?【Verilog高级教程】
case语句还能这么用,它的综合结果你会了吗?【Verilog高级教程】
case语句还能这么用,它的综合结果你会了吗?【Verilog高级教程】