《Arduino开发实战指南:LabVIEW卷》——3.4 LabVIEW的数据类型及运算

简介:

本节书摘来自华章计算机《Arduino开发实战指南:LabVIEW卷》一书中的第3章,第3.4节,作者:余崇梓著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.4 LabVIEW的数据类型及运算

3.4.1 数据类型
LabVIEW的控件按其传递的数据类型可分为字符串型、数值型、布尔型、数组、簇、枚举等;按作用范围又可分为局部变量和全局变量。
1.字符串型
字符串控件是字符串数据的容器,字符串控件的值属性是字符串。如同其他类型控件一样,LabVIEW的字符串控件也分为输入控件和显示控件。输入控件的值可以由用户通过鼠标或者键盘来改变,而显示控件则不允许用户直接输入,只能通过数据流的方式,显示字符串信息。字符串及路径(String & Path)控件选板如图3-16所示。

image


一些常用的字符串应用包括:
1)创建简单的文本信息。
2)发送文本命令至仪器,以ASCII码或二进制字符串的形式返回数据,然后转换为数值,从而实现仪器控制。
3)将数值数据存盘。要将数值数据存入ASCII码文件,必须在将数据写入磁盘文件之前将这些数值数据转换成字符串。
4)以对话框指示或提示用户。
在前面板上,字符串以表格(table)、文本输入框(text entry box)和标签(label)的形式出现。LabVIEW包含内置VI和函数,可用来操作字符串,如将字符串格式化、解析字符串及其他编辑操作。字符串函数选板如图3-17所示。LabVIEW中的字符串以粉色表示。
2.数值型
LabVIEW以浮点数、定点数、整数、无符号整数以及复数表示数值数据。双精度和单精度以及复数数值数据在LabVIEW中以橙色表示。蓝色则代表所有整数的数值数据。数值数据类型控件选板如图3-18所示,数值函数选板如图3-19所示。

image

image

某些数据类型也提供扩展的配置选项。例如,可为浮点数据包括复数使用物理测量单位,还可为定点数据配置编码和范围。
一般来说,数值存储所占位数(字节)越长,表示的数值范围就越大,精度也越高,但计算速度越慢,占用存储空间越大,因此要根据程序的需要合理地选择合适的数据类型。
3.布尔型
LabVIEW中布尔值可以代表0或1、TRUE或FALSE。布尔数据常见的应用有:表示布尔值数据、作为前面板控制开关、控制执行结构,如条件结构。布尔控件通常用于退出while循环。在LabVIEW中,用绿色代表布尔型数据。布尔控件选板如图3-20所示。布尔函数选板如图3-21所示。
4.数组
在LabVIEW中使用数组和簇将相关数据归为一组。数组将相同类型的数据组合成一个数据结构,簇将多个数据类型的数据组合成一个数据结构。

image

image
image

数组由元素和维度组成。元素是组成数组的数据。而维度是数组的长度、高度或深度。 数组可以是一维或多维的。可以创建数值、布尔型、路径、字符串、波形和簇等数据类型的数组。在对一组类似数据进行操作并重复计算时,可以考虑使用数组。数组对于用来存储从波形中收集的或在循环中生成的数据(每次循环生成数组中的一个元素)是比较理想的。
数组控件选板如图3-22所示,数组函数选板如图3-23所示。

image

image

LabVIEW中的数组索引以零为起点。无论是具有几个维度的数组,其索引的第一个元素均为零。数组元素是有序的。数组使用索引,便于方便地访问数组中任一个特定的元素。索引是基于零开始的,也就是说索引的范围是0~n-1,其中n是数组中元素的个数。比如,对于一年中的12个月,n = 12,因此索引的范围是0~11,三月份的索引就为2。
如试图在数组外框中放入一个无效的输入控件或显示控件,该操作将无法实现。在使用程序框图中的数组之前,必须先在数组外框中插入一个对象。否则,数组接线端会显示为一个黑的空括号,数组中没有和它相关联的数据类型。
(1)二维数组
如需在前面板上添加一个多维数组控件,可右键单击索引框,并从快捷菜单中选择添加维度。 也可以改变索引显示框的大小,直至出现所需维数。
(2)初始化数组
数组可以进行初始化,或者不初始化。数组初始化时,需要定义每个维度的元素个数和每个元素的内容。一个未初始化的数组包含固定的维数,但不包含任何元素。
在一个二维数组中,在一列中的某个元素初始化后,那一列中的其余元素都将自动初始化,并被赋予相应数据类型的默认值。
(3)创建数组常量
如需在程序框图中创建数组常量,可先从函数选板上选择数组常量,将数组外框放置于程序框图上,然后将字符串常量、数值常量、布尔常量或簇常量放入数组外框。数组常量用于存储常量数据或用于同另一个数组进行比较。
(4)自动索引数组输出
将数组连线到for循环或者while循环时,通过自动索引可将每次迭代与数组中的一个元素相连。隧道图标从方形变为该图像,这表示已使用自动索引。右键单击隧道,从快捷菜单中选择启用索引或禁用索引,可以切换隧道的状态。
(5)数组输入
如果使连接到for循环输入接线端的数组自动索引有效,LabVIEW会将计数接线端设置为数组大小。这样,用户就可以不必进行计数接线端连线了,因为for循环一次可以处理数组中的一个元素,所以,在默认情况下,LabVIEW对连接到for循环的每个数组均启用自动索引。如不需要一次处理数组中的一个元素,可以禁用自动索引。
如果有多个隧道启用自动索引,或对计数接线端进行连线,实际的循环次数将取其中较小的值。例如,如果两个启用自动索引的数组进入循环,分别含有10个和20个元素,同时将值15连接到总数接线端,这时该循环仍将只执行10次,并且对第一个数组的所有元素建立索引,对第二个数组中的前10个元素建立索引。
(6)数组输出
当自动索引数组输出隧道时,数组将在循环的每一次重复中接收一个新元素。因此,自动索引输出数组的大小等于循环的次数。
从输出隧道到数组显示控件的连线将随着连到循环边框的数组而变粗,同时,输出隧道内包含的方括号代表数组。
用鼠标右键点击循环边框上的隧道,并从快捷菜单中选择启用自动索引或禁用自动索引,可以使自动索引有效或无效。while循环默认为禁用自动索引。
例如,如果只需隧道输出最后一个值,可禁用自动索引。
(7)创建二维数组
使用两个for循环,一个嵌套在另一个内部,可创建一个二维数组。外部的for循环创建了行元素,内部的for循环创建了列元素。
5.簇
簇将不同类型的数据元素分组。LabVIEW错误簇是簇的一个例子,它包含一个布尔值、一个数值和一个字符串。簇类似于文本编程语言中的记录或结构体。
簇控件选板如图3-24所示,簇函数选板如图3-25所示。

image

将几个数据元素捆绑成簇可以消除程序框图上连线的混乱,减少子VI所需连接器接线端的数目。连接器最多可以有28个接线端。如果前面板上要传送给另一个VI的输入控件和显示控件多于28个,应将其中的一些对象分组成为一个簇,然后将该簇分配到连接器上 的一个接线端。
程序框图上的绝大多数簇都含有一个粉红色的接线模型和数据类型接线端。错误簇的连线模型和数据类型接线端显示为深黄色;数值簇,有时也称为点,就含有一个褐色的接线模型和数据类型接线端。褐色的数值簇可以连接到数值函数,例如,“加”或“平方根”函数可用于对簇中所有元素同时进行相同的运算。
(1)簇元素顺序
簇和数组元素都是有序的,必须使用解除捆绑函数一次取消捆绑的所有元素。也可使用按名称解除捆绑函数,按名称解除捆绑簇元素。如使用按名称解除捆绑函数,则每个簇元素都必须带有标签。簇不同于数组的地方还包括簇的大小是固定的。与数组一样,一个簇里面要么全是输入控件要么全是显示控件。簇不能同时含有输入控件和显示控件。
(2)创建簇控件
可以通过以下方式在前面板上创建一个簇输入控件或簇显示控件:在前面板上添加一个簇外框,再将一个数据对象或元素拖曳到簇外框中,数据对象或元素可以是数值型、布尔型、字符串、路径、引用句柄、簇输入控件或簇显示控件。
放置簇外框时,通过拖曳光标可以改变簇的大小。
(3)创建簇常量
如需在程序框图中创建一个簇常量,可从函数选板中选择一个簇常量,将簇外框放置于程序框图上,再将字符串常量、数值常量、布尔常量或簇常量放置到该簇外框中。簇常量用于存储常量数据或用于同另一个簇进行比较。
如果需要在前面板窗口中放置一个簇输入控件或者簇显示控件,并且在程序框图中创建一个包含同样元素的簇常量,用户可以从前面板窗口中将该簇拖曳到程序框图中,或者在前面板窗口中右键单击该簇,从快捷菜单中选择Create→Constant。
(4)使用簇函数
使用簇函数创建簇并对其进行操作。比如,可以执行以下操作:
从簇中提取单个数据元素。
向簇添加单个数据元素。
将簇分裂成单个数据元素。
“捆绑”函数用于集合一个簇;“捆绑”和“按名称捆绑”函数用于修改一个簇;而“解除捆绑”和“按名称解除捆绑”函数用于分解一个簇。
在程序框图中右键单击簇接线端,从快捷菜单中选择簇、类和变体选板,可以在程序框图上放置“捆绑”、“按名称捆绑”、“解除捆绑”和“按名称解除捆绑”函数。“捆绑”和“解除捆绑”函数自动包含正确的接线端数字。“按名称捆绑”和“按名称解除捆绑”函数随簇中的第一个元素同时出现。使用定位工具可以调整“按名称捆绑”和“按名称解除捆绑”函数的大小,显示簇中的其他元素。
(5)集合簇
“捆绑”函数用于将单个元素集合成簇,或者在不必为所有元素指定新值的情况下,改变现有簇中单个元素的值。使用定位工具或者右键单击一个元素输入,从快捷菜单中选择添加输入,可调整函数的尺寸大小。
(6)修改簇
如果要对簇输入进行连线,用户只须对需要改变的元素进行连线。
“按名称捆绑”函数也可替换或者访问现有簇中带标签的元素。“按名称捆绑”函数的工作方式同“捆绑”函数类似,但是它以自身标签为引用,而不是其在簇中的顺序。只能根据自身标签对元素进行访问。输入的个数不需要与输出簇中元素的个数相匹配。
使用操作工具单击一个输入接线端并在下拉菜单中选择一个元素。也可以右键单击输入端,从选择项快捷菜单中选择元素。
“按名称捆绑”函数用于在开发过程中可能会出现的需要改变数据结构的情况。如果为簇添加一个新元素或者改变元素的顺序,无须对“按名称捆绑”函数重新连线,因为这些名称仍然有效。
(7)分解簇
“解除捆绑”函数用于将簇分解为单个元素。
“按名称解除捆绑”函数用于根据指定的元素名称返回单个簇元素。输出接线端的个数不依赖于输入簇中的元素个数。
使用操作工具单击一个输入接线端,从下拉菜单中选择一个元素。也可以右键单击输出接线端,从选择项快捷菜单中选择元素。
6.枚举
LabVIEW中的枚举类型和C语言中的枚举类型定义相同。它提供了一个选项列表,其中每一项都包含一个字符串标识和数字标识,数字标识与每一选项在列表中的顺序一一对应,枚举类型控件选板如图3-26所示,枚举类型编辑界面如图3-27所示。

image

image

枚举型数据非常有用,因为在程序框图上处理数字要比处理字符串简单得多。
3.4.2 数据运算
LabVIEW中有非常丰富的数据运算功能,如数值运算、关系运算、逻辑运算等,还有许多功能强大的函数可供使用。
1.数值运算
LabVIEW提供了非常多的数据运算函数,除了基本的数值运算外,还有类型转换、复数、定点数、数学和科学常数等,如图3-28所示。

image

2.关系运算
关系运算也称为比较运算,用来判断并进行数据比较,判断数据间的大小关系等。关系运算函数选板如图3-29所示。

image

3.逻辑运算
逻辑运算也称为布尔运算,用于进行数据间的逻辑运算,比如数据间的“与”、“或”、“非”、“同或”、“异或”等,LabVIEW中逻辑运算符的图标和数字电路中逻辑运算符的图标非常相似。逻辑运算函数选板如图3-30所示。

image

相关文章
|
6月前
|
安全 数据可视化 vr&ar
LabVIEW编程LabVIEW开发Memmert oven温箱例程与相关资料
LabVIEW编程LabVIEW开发Memmert oven温箱例程与相关资料
45 9
|
6月前
|
传感器 网络协议
LabVIEW编程LabVIEW开发Eurotherm 3508例程与相关资料
LabVIEW编程LabVIEW开发Eurotherm 3508例程与相关资料
40 2
|
6月前
|
开发工具 Windows
LabVIEW编程LabVIEW开发Andor CCD例程与相关资料
LabVIEW编程LabVIEW开发Andor CCD例程与相关资料
37 0
LabVIEW编程LabVIEW开发Andor CCD例程与相关资料
|
6月前
|
编解码
LabVIEW编程LabVIEW开发 PXI-4070数字万用表 例程与相关资料
LabVIEW编程LabVIEW开发 PXI-4070数字万用表 例程与相关资料
33 0
|
6月前
|
存储
LabVIEW编程LabVIEW开发IEEE754转换例程与相关资料
LabVIEW编程LabVIEW开发IEEE754转换例程与相关资料
178 0
|
6月前
|
数据采集 数据管理 数据库
LabVIEW编程LabVIEW开发TSI 8587A型气溶胶光度计例程与相关资料
LabVIEW编程LabVIEW开发TSI 8587A型气溶胶光度计例程与相关资料
26 0
|
6月前
LabVIEW编程LabVIEW开发Agilent 4294A 例程与相关资料
LabVIEW编程LabVIEW开发Agilent 4294A 例程与相关资料
51 0
|
6月前
|
存储
LabVIEW编程LabVIEW开发 Keithley 6157 例程与相关资料
LabVIEW编程LabVIEW开发 Keithley 6157 例程与相关资料
43 0
|
6月前
LabVIEW编程LabVIEW开发 固高运动控制器例程与相关资料
LabVIEW编程LabVIEW开发 固高运动控制器例程与相关资料
70 0
|
传感器 算法 IDE
LabVIEW和Arduino的巧妙结合(基础篇—1)
本专栏使用的单片机为:Arduino(本系列专栏使用Arduino UNO控制器),主要原因在于,Arduino简单易上手,老少皆宜,受众面广泛,使用Arduino作为下位机,LabVIEW作为上位机,独立开发者可以快捷开发出一套软硬件联控的演示系统。