1)字符串型
字符串是一串可显示或不可显示的ASCII字符,它提供了一种不依赖于平台的消息和数据格式,主要应用包括:
●创建简单的文本消息。
●通过发送文本命令控制仪器,并以ASCII或者二进制字符串的格式返回数据值,这些值可以被转换为数值型数据。
●将数值数据存储在硬盘上。如要在ASCII文件中存储数值型数据,就必须在数据存储至硬盘前将数值型数据转换为字符串型数据。
●通过对话框引导用户。
在前面板上,字符串可以通过表格、标签、文本输入框来表示。Lab VIEW内置的VI和函数,可以对字符串进行各种操作,如格式化字符串、解析字符串及其他编辑等。使用时,采用粉色来表示字符串数据。
2)数值型
Lab VIEW中数值型数据包括浮点数、定点数、整数、无符号数以及复数。其中,双精度数和单精度数以及复数在Lab VIEW中都以橙色表示,所有整数则以蓝色表示。
注意:各种数值型数据的不同之处在于存储和表示数据时所使用的位数。
3)布尔型
Lab VIEW使用8个数据位来存储布尔型数据。在Lab VIEW中可使用布尔型来表示0和1、真和假。若8位都是0,则布尔值为假;只要有任一位非0,则布尔值为真。布尔型数据常用来表示数字数据,例如用于前面板输入控件中,使其成为带有一定机械动作的开关,从而控制条件结构等执行结构。同时,布尔控件还常用作退出While循环结构的条件。在Lab VIEW中,采用绿色代表布尔型数据。
4)动态数据类型
大多数的Express VI均可接受和/或返回动态数据类型,以深蓝色来表示。
使用“转换至动态数据”和“从动态数据转换”VI,可以转换下列数据类型的浮点数值或布尔数据:
●一维波形数组
●一维标量
●一维标量数组-最新值
●一维标量-单通道
●二维标量数组-列为通道
●二维标量-行为通道
●单一标量
●单一波形
动态数据类型可连接至较为合适的表示数据的显示控件,如图形、图表、数值、布尔显示控件等。然而,由于动态数据必须自动转换以匹配所连接的显示控件,故Express VI常常会导致程序框图的执行速度变慢。
5)数组型
在某些特定应用中,将相互关联的数据归为一组,更方便处理。在Lab VIEW中,可以使用数组和簇将相互关联的数据集合在一起。数组将相同类型的数据集合在一个数据结构中,而簇则将多种类型的数据集合在一个数据结构中。
数组由元素和维度组成。元素是数组中的数据。维度是数组的长度、高度或深度。一个数组可以是一维或多维的,而且每一维在内存允许的情况下可以有多达(231-1)个元素。可以创建布尔值、数值、路径、字符串、波形以及簇的数组。对一组相似的数据进行操作或进行重复计算时,可考虑使用数组。在存储波形或循环结构所产生的数据,即每个周期产生一个元素时,数组是理想的选择。
注意:Lab VIEW中的数组索引都以0为起始。无论数组的维度如何,第一个元素的索引均为0。
数组中的元素是有序的,因此可通过索引访问数组中任意元素。索引从0开始,即索引的范围是0到n~1,其中n是数组中元素的个数。例如,设数组元素为一年的12个月,n=12,因此索引范围为0~11。其中“三月”是第三个月,其索引值为2。
图3-15 数值数组控件
①索引框;②元素框
图3-15所示为一个数值数组的范例。数组中的第一个元素(3.00)的索引为1,第二个元素(1.00)的索引为2。图中未显示索引为0的元素,因为索引显示控件选择了元素1。在索引框中所显示的值,是指最左上角的元素的索引值。
(1)创建数组输入控件和显示控件
如图3-16所示,在前面板上添加一个数组框,然后将数据对象或元素(如数值或字符串控件)拖入其中,即可添加输入控件或显示控件的数组。
如将一个无效的输入或显示控件拖入数组框中,则无法实现该操作。
在程序框图中使用数组前,必须在数组框中插入对象,否则数组的接线端为空,不会产生任何相关的数据类型。
图3-16 将数值控件拖入数组框内
图3-17 二维数组
(2)二维数组
前面的例子都是一维数组。而二维数组则是以网格的方式存储数据。它需要一个列索引和一个行索引来定位一个元素,且二者都是以0作为起始索引。图3-17给出了一个8列8行的二维数组,其中包含8×8=64个元素。
如要在前面板上添加一个多维数组,右键点击索引显示框,并选择快捷菜单中的“添加维度”。此外,也可以改变索引框的大小,直至出现所需维数。
(3)初始化数组
初始化数组即定义各个维度中元素的个数与内容。数组可以进行初始化,也可以不进行初始化。一个未初始化的数组包含固定的维数,但不包含任何元素。如图3-18所示为一个未经初始化的二维数组控件。请注意其元素均无法选择,表明此数组是未经初始化的。
图3-18 未经初始化的二维数组
图3-19 带有9个初始化元素的二维数组
在一个二维数组中,若初始化某一列中的元素之后,该列及其前面的未初始化的列都将自动初始化,并被赋予相应数据类型的默认值。如图3-19所示,在以0为起始的第2列中输入4,则第0,1,2列将自动被初始化为0,即数值数据类型的默认值。
(4)创建数组常量
若要在程序框图上创建一个数组常量,可在函数选板上选择“数组常量”,并将数组框放置到程序框图中,然后在数组框内放置字符串常量、数值常量、布尔常量以及簇常量。数组常量用于存储常量数据或同另一个数组进行比较。
(5)自动索引数组输入
将数组连线到For循环或者While循环时,通过自动索引功能可将每次迭代与数组中的一个元素相连。此时,循环的隧道从实心方块变成空心,表明已启用自动索引功能。右键单击隧道,从快捷菜单中选择“启用索引”或“禁用索引”,可以切换隧道的状态。
(6)数组输入
若对连接至For循环输入接线端的数组启用了自动索引动能,Lab VIEW会将循环的次数自动设定为数组的大小,因此无须连接循环计数的接线端。由于For循环每次可处理数组中的一个元素,因此只要是连接至For循环的数组,Lab VIEW就会默认启用自动索引功能。如不需要一次处理数组中的一个元素,可以禁用自动索引功能。
如图3-20所示,For循环执行的次数等同于数组中的元素数量,其运行箭头是完整的。通常情况下,如果For循环的计数接线端没有连线,运行箭头就是断开的。
图3-20 使用数组决定For循环的次数
如果有多个隧道启用自动索引,或者连接了循环计数端,则循环的实际执行次数将取其中的最小值。举例来说,如有两个数组进入For循环(分别有10个、20个元素),同时将数值15连接至循环计数端,则循环的实际执行次数为10次。此时虽然可以索引第一个数组的所有元素,但是仅能索引第二个数组的前10个元素。
(7)数组输出
当自动索引一个数组的输出隧道时,每一次循环输出一个新元素到数组。因此,自动索引输出数组的大小等于循环的次数。此时,连接输出隧道和数组显示控件的连线将变粗,表明它将输出一个数组,且输出隧道中将包含一个方框。(www.xing528.com)
在循环隧道上点击右键,并在快捷菜单中选择“启用索引”或“禁用索引”,即可启用或关闭自动索引功能。While循环的自动索引功能是默认关闭的。
举例来说,若要隧道仅输出最后一次循环的值,则需要停用自动索引。
图3-21 自动索引输出
图3-22 创建一个二维数组
(8)创建二维数组
将一个For循环嵌入另一个For循环中,即可创建二维数组。如图3-22所示,外层的For循环可以创建行元素,内层的For循环可以创建列元素。
6)簇
簇可以将混合类型的数据集合在一起。Lab VIEW错误簇就是常见簇之一,它包含一个布尔值、一个数值以及一个字符串。簇类似于文本编程语言中的记录或者结构体。
将多个数据元素捆绑在一起,可以使程序框图上的连线更加简洁,减少子VI的接线端的数量。接线板最多可以有28个接线端,如果一个VI的前面板上有超过28个控件需要将值传递至另一个VI,则可以将其中的一部分集合到一个簇中,并为其分配一个接线端即可。
程序框图上的大多数簇的连线和数据类型接线端都是粉色的。错误簇的连线与数据类型接线端则是暗黄色。数值类型的簇(有时视为点)则使用棕色的连线与数据类型接线端。将棕色的数值簇连接至数值运算函数(如加运算或求方根),即可以对簇中的所有元素同时进行运算。
(1)簇中元素的顺序
虽然簇与数组中的元素均有顺序,但是使用解除捆绑函数就可将簇内的所有元素拆开。例如,可以使用“按名称解除捆绑”函数将簇内的元素按名称解除捆绑,但簇中的每一个元素必须要有标签。与数组不同,簇的大小是固定的,但与数组相同的是,一个簇里面要么全是输入控件,要么全是显示控件。簇中不能同时含有输入控件和显示控件。
(2)创建簇控件
如图3-23所示,将簇框添加到前面板上,再将数据对象或元素(可以是布尔、枚举、数组、数值、字符串、路径以及簇控件)拖拽至框内,即可在前面板上创建簇输入控件或显示控件。另外,通过拖拽鼠标游标,可以改变簇框的尺寸。
图3-24所示是一个含有3个输入控件的簇:一个字符串、一个布尔开关和一个数值控件。
(3)创建簇常量
若要在程序框图中创建簇常量,可在函数选板上选择“簇常量”,并将簇外框放置到程序框图上,然后在框内放置一个字符串常量、数值常量、布尔常量或者簇常量。簇常量用于存储常量数据或与另一个簇进行比较。
图3-23 创建簇输入控件
图3-24 簇输入控件示例
若前面板窗口中已有一个簇控件或者显示控件,同时又想在程序框图中创建一个包含同样元素的簇常量,可以将该簇从前面板窗口拖曳到程序框图中,或者在前面板窗口中右键单击该簇,从快捷菜单中选择“创建”→“常量”即可。
(4)使用簇函数
簇函数用于创建并操作簇。一般地,可执行下列操作:
●从簇中提取一个数据元素。
●向簇中添加一个数据元素。
●将簇分解为单独的数据元素。
另外,也可以使用“捆绑”函数来组装一个簇。“捆绑”与“按名称捆绑”函数可以修改簇;而“解除捆绑”与“按名称解除捆绑”则可以将簇解绑。
在程序框图上右键单击“簇接线端”,从快捷菜单中选择“簇、类与变体”选项,可在程序框图上放置“捆绑”“按名称捆绑”“解除捆绑”和“按名称解除捆绑”函数。“捆绑”或“解除捆绑函数”自动产生正确的接线端数量。“按名称捆绑”与“按名称解除捆绑”函数只显示簇中的第一个元素,但此时可通过位置调整工具来改变“按名称捆绑”和“按名称解除捆绑”函数的大小,以显示簇内的其他元素。
(5)组装簇
“捆绑”函数可以将独立的元素组装成簇,或者改变现有簇中的个别元素值,而无须更新所有元素的值。使用位置调整工具可重新设定捆绑函数的大小,或者可在元素输入端上点击右键后选择快捷菜单中的“添加输入”,如图3-25所示。
图3-25 在程序框图中组装一个簇
图3-26 使用“捆绑”函数修改一个簇
(6)修改簇
若要连接簇的输入,则只需连接需要修改的元素。如图3-26所示,其中有三个控件,如果已知簇中元素的顺序,可以使用“捆绑”函数来连线,从而更改“Command”元素的值。
也可以使用“按名称捆绑”函数,以改变或获取现有簇中的带标签元素。“按名称捆绑”函数的功能接近于“捆绑”函数,但不是按照簇中的顺序来引用元素,而是按其标签来引用元素。只能按标签访问元素。输入的数量不需要与输出簇的元素数量匹配。使用操作工具点击输入接线端,并在下拉菜单中选择一个元素。也可右键点击输入接线端,通过下拉菜单中的选项来选择元素。
如图3-27所示,可以通过“按名称捆绑”函数来修改“Command”与“Function”的值。
对于开发过程中可能发生改变的数据结构,建议使用“按名称捆绑”函数。为簇添加一个新元素或者改变元素的顺序时无须对“按名称捆绑”函数重新连线,因为这些名称仍然有效。
(7)解簇
“解除捆绑”函数用于将簇分割为独立的元素。
“按名称解除捆绑”函数用于根据用户所指定的名称,返回簇内元素。输出接线端的数量与输入簇中元素的数量不必相同。
使用操作工具点击输出接线端,在下拉菜单中选择一个元素。也可右键点击输出接线端,通过下拉菜单中的选项来选择元素。
以图3-28为例,如对簇使用“解除捆绑”函数,则该簇具有的4个输出端点与簇中的4个控件相对应。本例中,用户必须知道簇内元素的顺序,才能将簇分解后的布尔控件与簇内的开关控件对应起来。元素从0开始,顺序为从上到下。若使用“按名称解除捆绑”函数,则输出接线端的数量可以任意指定,并可根据元素的名称存取独立的元素,而无须依照其顺序。
图3-27 使用“按名称捆绑”函数修改簇
图3-28 解除捆绑和按名称解除捆绑
7)枚举
枚举包含输入控件、常量与显示控件,是多种数据类型的集合。枚举代表成对的值,是一个字符串和一个数值。枚举中可以包含一组或多组的值。举例来说,若创建一个枚举类型称为“Month”,则“Month”变量的值对可能为January-0、February-1,直到December-11。图3-29显示了枚举输入控件的属性对话框中的值对。只要在枚举控件处点击右键,选择编辑项即可直接使用此功能。
图3-29 Month枚举控件属性对话框
图3-30 Month枚举控件
①前面板控件;②选择一个项;③程序框图对象
与字符串相比,由于枚举便于在程序框图上操作数字,所以用途比较广泛。图3-30显示了上述Month枚举控件、所选的值对以及相应的程序框图接线端。
8)探针工具
使用探针工具,可在VI运行时检查连线实时传递的值。
如程序框图比较复杂,操作繁多,且每一步都可能返回错误的值,此时可以使用探针工具。探针工具结合执行过程高亮显示、单步执行以及断点,可用于确定是否产生了数据错误以及错误发生在哪里。高亮显示执行过程、单步调试或在断点处暂停时如有数据产生,探针会立即更新并在探针监视窗口中显示数据。执行过程由于单步执行或断点而在某一节点处暂停时,可用探针探测刚刚执行的连线,查看流经该连线的数值。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。