labview数组、簇和图形的区别
- 格式:doc
- 大小:463.51 KB
- 文档页数:14
LabVIEW中的数据类型和数据流在计算机科学和工程领域,数据类型和数据流是编程语言中非常重要的概念。
而在使用LabVIEW这种基于图形化编程的开发环境时,了解和掌握LabVIEW中的数据类型和数据流对于开发和编程工作至关重要。
一、LabVIEW中的数据类型在LabVIEW中,数据类型决定了变量或对象可以存储的数据种类和数值范围。
以下是LabVIEW中常见的数据类型:1. 数字类型:包括整数类型和浮点数类型。
整数类型包括8位、16位、32位和64位整数,分别用I8、I16、I32和I64来表示。
浮点数类型有单精度(SGL)和双精度(DBL)。
2. 字符串类型:用于表示文本或字符序列。
字符串在LabVIEW中用文本项表示,可以进行各种文本操作和处理。
3. 数组类型:用于存储多个相同类型的数据元素。
数组可以是一维、二维或多维的,元素类型可以是任意LabVIEW支持的数据类型。
4. 簇(Cluster)类型:用于将不同类型的数据组合在一起形成复合类型。
簇可以包含数字、字符串、数组等各种数据类型,方便在程序中处理复杂的数据结构。
5. 枚举(Enum)类型:用于定义一组有限的可能值。
枚举类型在LabVIEW中用于定义状态、类型等具有离散取值的变量。
二、LabVIEW中的数据流在LabVIEW中,数据流是指程序中数据变量的传输和处理过程。
LabVIEW使用数据流来描述程序中不同任务和模块之间的数据传输关系,从而构成一个基于数据流的图形化程序。
1. 数据流图(Dataflow Diagram):LabVIEW的程序主要以数据流图的形式展示,数据流图由各种节点和线组成。
每个节点代表一个任务或功能模块,而线表示数据的传输路径。
2. 数据流控制:数据流控制是指确定数据在节点之间的传输顺序和方式。
在LabVIEW中,数据以数据流的形式从一个节点传输到另一个节点,通过控制数据流的传输顺序和方式,可以实现数据的同步和异步传输。
LabVIEW的基本控件与基本函数LabVIEW基本控件:数值、布尔、字符串与路径、数组与簇、图形、枚举1、数值:数值输入控件与数值显示控件(数值输入控件有增量/减量按钮;输入为白色背景,输出为灰色背景)默认数据类型为:双精度,橙色。
2、布尔:值默认为False,图标为绿色。
布尔控件的机械动作属性单击时转换:按下按钮时改变状态,再次单击后恢复原状态。
与VI是否读取控件无关。
(可赋值恢复)类似开关按钮释放时转换:按下按钮时保持当前状态,直到释放按钮,再次单击后恢复原状态。
与VI是否读取控件无关。
(可赋值恢复)类似开关按钮保持转换直到释放:按下按钮时改变状态,直到释放按钮,,再次单击后恢复原状态。
与VI 是否读取控件无关。
(可赋值恢复)。
类似开关按钮单击时触发:按下按钮时改变状态,LabVIEW再次读取控件值后返回原状态。
释放时触发::按下按钮时保持当前状态,释放时改变状态,LabVIEW再次读取控件值后返回原状态。
保持触发直到释放:按下按钮时改变状态,直到释放按钮,LabVIEW再次读取控件值后返回原状态。
3、字符串与路径:(字符串输入控件与字符串显示控件),粉色。
4种显示方式(正常显示、’\’代码显示、密码显示、十六进制显示)4、数组:依据加入的控件类型同样分为输入控件与显示控件LabVIEW的数组以索引号0表示数组的首个数据。
增加数组维度的方法:(1)索引框的快捷菜单中->增加维度(2)直接向下拖动索引框(3)属性对话框->外观选项卡->维数组中的元素为同类型的控件,可以是各种类型的控件,但不能是数组的数组。
数组的多态性:5、簇:依据加入的控件类型同样分为输入控件与显示控件簇本身的属性:重新排序簇中控件、自动调整大小(无、调整为匹配大小、水平排列、垂直排列)使用簇结构时,尽可能的使用:严格自定义类型。
错误簇:状态(布尔)、代码(数值输入)、源(字符串输入)6、波形图表(Chart)与波形图(Graph):波形图表有一个“先入先出的缓冲区(默认为1024个数据)”,所以特别适合实时显示数据。
labview数组、簇和图形的区别数组是同类型元素的集合。
一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素。
可以通过数组索引访问其中的每个元素。
索引的范围是0到n – 1,其中n是数组中元素的个数。
图3-1所显示的是由数值构成的一维数组。
注意第一个元素的索引号为0,第二个是1,依此类推。
数组的元素可以是数据、字符串等,但所有元素的数据类型必须一致。
图3-1数组示意图簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。
它类似于C语言中的stuct。
使用簇可以把分布在流程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度。
减少子VI的连接端子的数量。
波形(Waveform)可以理解为一种簇的变形,它不能算是一种有普遍意义的数据类型,但非常实用。
3.2数组的创建及自动索引3.2.1创建数组一般说来,创建一个数组有两件事要做,首先要建一个数组的“壳”(shell),然后在这个壳中置入数组元素(数或字符串等)。
如果需要用一个数组作为程序的数据源,可以选择Functions?Array?Array Constant,将它放置在流程图中。
然后再在数组框中放置数值常量、布尔数还是字符串常量。
下图显示了在数组框放入字符串常量数组的例子。
左边是一个数组壳,中间的图上已经置入了字符串元素,右边的图反映了数组的第0个元素为:”ABC”,后两个元素均为空。
图3-1数组的创建在前面板中创建数组的方法是,从Controls模板中选择Array & Cluster,把数组放置在前面板中,然后选择一个对象(例如数值常量)插入到数组框中。
这样就创建了一个数值数组。
也可以直接在前面板中创建数组和相应的控制对象,然后将它们复制或者拖曳到流程图中,创建对应的常数。
还有很多在流程图中创建和初始化数组的方法,有些功能函数也可以生成数组。
3.2.2数组控制对象、常数对象和显示对象通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建任何一种控制对象、常数对象和显示对象。
数据类型:数组、簇和波形.1概述数组是同类型元素的集合。
一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素。
可以通过数组索引访问其中的每个元素。
索引的范围是0到n – 1,其中n是数组中元素的个数。
图3-1所显示的是由数值构成的一维数组。
注意第一个元素的索引号为0,第二个是1,依此类推。
数组的元素可以是数据、字符串等,但所有元素的数据类型必须一致。
图3-1数组示意图簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。
它类似于C语言中的stuct。
使用簇可以把分布在流程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度。
减少子VI的连接端子的数量。
波形(Waveform)可以理解为一种簇的变形,它不能算是一种有普遍意义的数据类型,但非常实用。
3.2数组的创建及自动索引3.2.1创建数组一般说来,创建一个数组有两件事要做,首先要建一个数组的“壳”(shell),然后在这个壳中置入数组元素(如果需要用一个数组作为程序的数据源,可以选择Functions»Array»Array Constant,将它放置在流程图中。
然后再在数组框中放置数值常量、布尔数还是字符串常量。
下图显示了在数组框放入字符串常量数组的例子。
左边是一个数组壳,中间的图上已经置入了字符串元素,右边的图反映了数组的第0个元素为:”ABC”,后两个元素均为空。
图3-1数组的创建在前面板中创建数组的方法是,从Controls模板中选择Array & Cluster,把数组放置在前面板中,然后选择一个对象(例如数值常量)插入到数组框中。
这样就创建了一个数值数组。
也可以直接在前面板中创建数组和相应的控制对象,然它们复制或者拖曳到流程图中,创建对应的常数。
还有很多在流程图中创建和初始化数组的方法,有些功能函数也可以生成数组。
3.2.2数组控制对象、常数对象和显示对象通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建任何一种控制对象、常数对象和显示对象。
LabVIEW(⼗):数组和簇★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★⼀、数组1、创建数组(1)、前⾯板右键>“数组、矩阵与簇”>数组。
(2)、前⾯板右键>(选择要添加的数组数据类型,⽐如创建数值数组)数值>将“数值输⼊控件”拖⼊数组中。
(3)、选中数组右键>表⽰法>”DBL(双精度)”或“I32(长整型)”等,根据需要修改。
2、查看数组⼤⼩:(前⽂已有赘述)选中索引框右键>⾼级>显⽰最后元素3、改变数组的维度选中索引框>“添加维度”或“删除维度”4、数组的初始化将数组的“数值输⼊控件”往下拖拉以显⽰更多元素,在输⼊控件中填⼊数值。
初始化完毕。
5、“数组⼤⼩”函数:返回数组每个维度中元素的个数程序框图右键>数组>数组⼤⼩>为“数组⼤⼩”创建显⽰控件>连接需要获得数组⼤⼩的数组。
6、“创建数组”函数:连接多个数组或向N维数组添加元素。
(1)、程序框图右键>数组>创建数组(2)、将“创建数组”向上/下拖动可显⽰更多输⼊端。
也即:选中“创建数组”右键>”添加输⼊”或”删除输⼊”。
(3)、可输⼊单个“数值输⼊控件”(在前⾯板中添加),也可以输⼊数组。
7、添加的数组:“创建数组”创建的显⽰控件。
(1)、选中“创建数组”右键>(勾选)连接输⼊:两个N维的数组连接之后仍是N维数组。
(2)、选中“创建数组”右键>(未勾选)连接输⼊:两个N维的数组连接之后是2N维数组。
8、“数组插⼊”函数:在n维数组中索引指定的位置插⼊元素或⼦数组。
(1)、程序框图右键>数组>数组插⼊。
(2)、将“数组插⼊”向上/下拖动可显⽰更多输⼊端。
但不像创建数组那样有快捷菜单。
(3)、要添加索引的位置:“数组插⼊”右键>创建>常量。
可省略此项,省略该项则添加到数组末尾。
数组是同类型元素的集合。
一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素。
可以通过数组索引访问其中的每个元素。
索引的范围是0到n – 1,其中n是数组中元素的个数。
图3-1所显示的是由数值构成的一维数组。
注意第一个元素的索引号为0,第二个是1,依此类推。
数组的元素可以是数据、字符串等,但所有元素的数据类型必须一致。
图3-1数组示意图簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。
它类似于C语言中的stuct。
使用簇可以把分布在流程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度。
减少子VI的连接端子的数量。
波形(Waveform)可以理解为一种簇的变形,它不能算是一种有普遍意义的数据类型,但非常实用。
3.2数组的创建及自动索引3.2.1创建数组一般说来,创建一个数组有两件事要做,首先要建一个数组的“壳”(shell),然后在这个壳中置入数组元素(数或字符串等)。
如果需要用一个数组作为程序的数据源,可以选择Functions»Array»Array Constant,将它放置在流程图中。
然后再在数组框中放置数值常量、布尔数还是字符串常量。
下图显示了在数组框放入字符串常量数组的例子。
左边是一个数组壳,中间的图上已经置入了字符串元素,右边的图反映了数组的第0个元素为:”ABC”,后两个元素均为空。
图3-1数组的创建在前面板中创建数组的方法是,从Controls模板中选择Array & Cluster,把数组放置在前面板中,然后选择一个对象(例如数值常量)插入到数组框中。
这样就创建了一个数值数组。
也可以直接在前面板中创建数组和相应的控制对象,然后将它们复制或者拖曳到流程图中,创建对应的常数。
还有很多在流程图中创建和初始化数组的方法,有些功能函数也可以生成数组。
3.2.2数组控制对象、常数对象和显示对象通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建任何一种控制对象、常数对象和显示对象。
数组元素不能是数组、图表或者图形。
如果您想查看一些数组的例子,请查看Examples\General\arrays.llb中的例子。
3.2.3自动索引For循环和While循环可以自动地在数组的上下限范围内编索引和进行累计。
这些功能称为自动索引。
在启动自动索引功能以后,当把某个外部节点的任何一维元素连接到循环边框的某个输入通道时,该数组的各个元素就将按顺序一个一个地输入到循环中。
循环会对一维数组中的标量元素,或者二维数组中的一维数组等编制索引。
在输出通道也要执行同样的工作――数组元素按顺序进入一维数组,一维数组进入二维数组,依此类推。
在默认情况下,对于每个连接到For循环的数组都会执行自动索引功能。
可以禁止这个功能的执行,方法是用鼠标右键单击通道(输入数组进入循环的位置),在快捷菜单中选择DisableIndexing。
练习3-1创建一个自动索引的数组目的:使用 For 循环的自动索引功能创建数组,并用一个图形(Graph)显示该数组。
前面板图3-2练习3-1的面板1.打开一个新的前面板。
2.选择Controls»Array & Cluster,在前面板中放置一个数组。
设置它的标签为Waveform Array。
3.选择Controls»Numeric,在数组框中插入一个数字式显示对象。
如右图所示。
它用于显示数组的内容。
4.选择Controls»Graph,在前面板中放置一个波形图。
设置它的标签为Waveform Graph。
5.隐藏图例和模板。
6.用鼠标右键单击图形,并在快捷菜单中取消选中YScale»Autoscale Y,禁止自动坐标功能。
7.使用文本工具,把Y轴的范围改为-0.5到1.5。
流程图8.按照下图创建流程图。
图3-2练习3-1的流程图●由Functions»Select a VI…寻找LabVIEW\activity目录下的Generate WaveformVI,它的作用是返回波形中的某一点。
这个VI需要输入一个索引,我们将循环周期连接到这个输入。
●注意Generate Waveform VI连出来的连线在循环边界变成一个数组时会变粗,正是在这个边界处形成了一维数组。
●For循环会自动累计边界内的数组。
这种功能叫做自动索引。
在这个例子中,连接到循环计数输入的数值常数令For循环创建了一个由100个元素组成的数组。
●Bundle函数(Functions» Cluster)——将图块中的各个组件组合成一个簇,在正确连接以前需要改变该函数的图标的大小。
将移位工具放在图标的左下角。
变形工具会变成如左图所示,拖曳鼠标直到出现第三个输入端子。
●数值常数(Functions»Numeric)——三个数值常数用于设置For循环执行的周期数N=100,初始X=0和delta X=1。
9.从前面板执行该VI。
该VI将把自动索引后的波形图数组显示在波形图中。
10.把 X的delta值改为0.5,X的初始值改为20。
再次执行该VI。
注意,波形图现在同样显示100个点,而每个点的初始值为20,X的delta值为0.5(见X轴)。
11.只需在显示器中输入元素的索引号就可以查看波形数组中的任何元素。
如果输入的数比数组的元素个数大,那么显示器将变暗,表示您没有为该元素设置索引。
如果需要一次查看多个元素,可以通过改变数组显示对象的大小来实现。
把定位工具放置在数组框的右下角。
工具将变成右图所示的变形工具。
当工具变形时,用鼠标拖曳数组的右边或者下边。
数组现在就可以按照元素索引的上升顺序显示多个素,以某个与指定索引对应的元素开始,如下图所示。
图3-3练习3-1中多个数组元素的同时观察在前面的流程图中,您为波形图指定了初始的X值和deltaX值。
默认的X初始值是0,delta X 值是1。
这样,也可以把波形数组直接连接到波形图端子,而无需指定初始的X值和delta X值,如图3-4所示。
图3-4练习3-1使用默认X及Delta X时简化后的流程图12.按上图删除 Bundle功能函数和它所连接的常数对象。
方法是用移位工具选择该功能函数和连接的常数对象,按下<Delete>。
再选择Edit»Remove Bad Wire s。
按照上图完成流程图的连线。
13.执行该VI。
注意初始的X值是0,delta X值是1。
多图区图形可以创建含有多条曲线的图形,方法是创建一个数组,用它来汇集传给单图区图形的类型的数据元素。
图3-5 练习3-1多图区图形的流程图14. 按照上图创建流程图。
● 正弦函数(Functions»Numeric»Trigonometric )——在这里,它用于在For 循环中创建一个由数据点组成的数组,表示一个正弦波周期。
● Pi 常数(Functions»Numeric»AdditionalNumeric Constants )● Build Array (Functions»Arra y )——在这里,它用于创建合适的数据结构(一个二维数组),在波形图中绘制两条曲线。
用移位工具拖曳边角可以增大该函数的面积,创建两个输入端子。
15. 返回前面板,执行该 VI 。
注意同一个波形中的两个图区。
默认情况下,它们的X 初始值都是0,delta X 初始值都是1。
下图是该程序的运行结果(前面板未改动)。
16. 把该VI 保存为LabVIEW\Activity 目录中的GraphWaveform Arrays.vi 。
17. 可以修改图形中的某个图区的外观。
方法是,用鼠标右键单击这个图形,再从弹出菜单选择对应的图例。
Array图3-6 练习3-1多图区图形的面板显示练习 3-1 结束。
在上面这个例子中,由于计算端子连接了一个值为100的常数对象,所以 For 循环将执行100次。
下面这个例子显示了另外一种控制循环执行次数的方法。
更详细的例子建议调阅Examples 》Fundamentals 》Graphsand Charts 》Graph Examples 》Waveform Graph 例子。
练习 3-2 对输入数组使用自动索引功能目的:打开并执行一个VI ,它将在一个For 循环中使用自动索引功能处理一个数组。
1. 选择File»Open …,打开Examples\General\arrays.llb 中的Separate Array ValuesVI 。
2.打开流程图。
下面的示意图显示的是在TRUE和FALSE时的情况。
图3-7练习3-2的流程图注意,Input Array引出的连线与For循环外的粗线不同,表示这是一个数组,而循环内部的细线则表示这是一个数组元素。
数组元素在每个循环期间将自动编号。
用自动索引功能设置 For 循环的计数器注意,计数器端子还没有连线。
当您对某个进入For循环的数组使用自动索引功能时,循环就将根据数组的大小执行相应的次数,这样就无需连接某个值到计数器的端口。
如果对一个以上的数组使用自动索引功能,或者在使用自动索引功能之外还需要设置计数器时,实际的循环次数将是其中最小的数。
3.执行该VI。
在输入的八个数中,可以看到4个属于正数数组,另外4个属于负数数组。
4.从流程图中将一个值为5的常数对象连接到For 循环的计数器端子。
执行该 VI。
可以看到尽管输入数组仍然有八个元素,但是3个位于正数数组,另外2个位于负数数组。
这说明,如果设置了N并开启了自动索引功能,那么实际循环的次数将取较小的数。
5.关闭该VI,不要保存任何修改。
注:练习3-2的算法说明下面是一段伪代码,解释上面的算法,假定输入数组为A(已赋值),B(正数)、C(负数)。
Sbr 、Scr分别是与B数组、C数组对应的右寄存器数组,Sbl 、Scl分别是与B数组、C数组对应的左寄存器数组,size运算为测数组实际大小,ins运算为将一个数插入数组中最左边的空位。
练习3-2结束。
3.3数组功能函数LabVIEW提供了很多用于操作数组的功能函数,位于Functions»Array中。
其中包括Replace Array Element,、Search 1DArray、Sort 1D Array、Reverse 1D Array和Multiply ArrayElements等等。
创建数组——Build Array函数(Functions»Array),用于根据标量值或者其他的数组创建一个数组。
开始时,Build Array函数具有一个标量输入端子。