第3章LabVIEW中的数据类型
- 格式:ppt
- 大小:1.31 MB
- 文档页数:65
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中,数据类型和变量管理是非常重要的概念。
通过正确地理解和使用数据类型和变量,我们可以更好地组织和管理数据,提高程序的可读性和可维护性。
本文将介绍LabVIEW中常用的数据类型,并探讨变量的管理方法。
一、数据类型在LabVIEW中,数据类型用于定义变量或数据的格式和属性。
常见的LabVIEW数据类型包括整数(Integer)、浮点数(Floating-Point)、布尔值(Boolean)、字符串(String)等。
不同的数据类型在内存占用、数据范围、精度等方面有所差异,选择合适的数据类型可以提高程序的效率和准确性。
例如,对于表示温度的变量,我们可以选择浮点型数据类型,以保留小数位数并能表示负数。
而对于只有两个状态的变量(如开关状态),布尔值可以更好地满足需求。
除了基本的数据类型,LabVIEW还提供了聚集数据类型,如数组(Array)和矩阵(Matrix)。
数组可以方便地存储和处理多个相同类型的数据,而矩阵则更适用于数学计算和图像处理等领域。
二、变量管理变量是在LabVIEW中存储和处理数据的基本单元。
良好的变量管理可以提高程序的可读性和可维护性。
1. 命名规范在LabVIEW中,变量的命名应遵循一定的规范,以提高程序的可读性。
以下是一些常见的命名规范:- 使用有意义的变量名,能准确描述变量的用途。
- 变量名应使用英文单词或单词缩写,避免使用拼音或中文等。
- 避免使用与LabVIEW内置函数或关键字相同的名称。
例如,对于表示温度的变量,我们可以使用“temperature”或“temp”等命名,而不要使用“t”或“temp1”等命名,以提高变量的可读性。
2. 变量作用域变量的作用域决定了变量的可见性和生存周期。
在LabVIEW中,可以通过将变量定义在合适的作用域内来控制其访问权限。
- 局部变量(Local Variable):定义在VI或子VI中,只在当前VI 中可见,适用于内部数据传递。
数据类型:数组、簇和波形.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数组控制对象、常数对象和显示对象通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建任何一种控制对象、常数对象和显示对象。
第三章数据类型:数组、簇和波形3.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 中的数字型数据3 - 数值的单位三、数值的单位1. 数值控件上的单位数值型控件和常量是可以带单位的。
在数值型控件的快捷菜单上选择“Visible Items -> Unit Label”,就可输入数值的单位。
如果你对某个单位的正确拼写没有把握,可以先任意输入一个字符,然后用鼠标右键点击单位标签,选择“Build Unit String…”。
这时,LabVIEW会弹出一个对话框,LabVIEW所支持的单位都在这里分类排出。
图1~3:使用数字控件的单位例如要计算2年有多少天,可以有如下的程序:图4,5:同类型单位的空间可以由数据传递2. 单位使数据类型检查更严格把一个I32 型的数据赋值给string 型的控件肯定是一种错误行为,程序员总是希望编译器在编译时就把这种错误报告出来。
虽然现在大多数编程语言都可以在编译时报告此类错误,但LabVIEW 数值类型的单位可以让这种检查更严格:实数与字符串之间不可以互相赋值;同样是实数型的俩个数据,一个表示时间,一个表示长度,他们之间也不应当相互赋值。
在编写LabVIEW 程序的时候,应当尽量使用带单位的数值控件。
因为,如果你给一个数据设置了单位,LabVIEW就会自动帮助你进行单位的一致性检查。
比如图6 所示,当你试图把表示时间的数据和表示长度的数据相加时,LabVIEW会禁止你连线。
着帮助你防止了编程时出现的不一致性错误。
图6:不同类型的数据不能进行计算但是,这种严格的一致性检查也可能会带来麻烦。
例如,我们编写了一个子VI,用于计算两个时间单位的和。
下次当我们需要一个计算长度单位的和的子VI时,却不能够直接使用已有的计算时间单位的子VI,因为它们的单位是不同的。
为了解决这个问题,LabVIEW 提供了单位统配符。
在编写需要用于不同单位的子VI时,可以使用单位通配符。
单位的通配符用$n 表示,其中n 是1 到9 之间任意一个数字。
例如我们以上提到的加法,可以在子VI 中使用通配符$1,如果还需要另外一个执行其他运算的子VI 中,其单位可以用$2 表示。
LabVIEW 中的数字型数据3 - 数值的单位三、数值的单位1. 数值控件上的单位数值型控件和常量是可以带单位的。
在数值型控件的快捷菜单上选择“Visible Items -> Unit Label”,就可输入数值的单位。
如果你对某个单位的正确拼写没有把握,可以先任意输入一个字符,然后用鼠标右键点击单位标签,选择“Build Unit String…”。
这时,LabVIEW会弹出一个对话框,LabVIEW所支持的单位都在这里分类排出。
图1~3:使用数字控件的单位例如要计算2年有多少天,可以有如下的程序:图4,5:同类型单位的空间可以由数据传递2. 单位使数据类型检查更严格把一个I32 型的数据赋值给string 型的控件肯定是一种错误行为,程序员总是希望编译器在编译时就把这种错误报告出来。
虽然现在大多数编程语言都可以在编译时报告此类错误,但LabVIEW 数值类型的单位可以让这种检查更严格:实数与字符串之间不可以互相赋值;同样是实数型的俩个数据,一个表示时间,一个表示长度,他们之间也不应当相互赋值。
在编写LabVIEW 程序的时候,应当尽量使用带单位的数值控件。
因为,如果你给一个数据设置了单位,LabVIEW就会自动帮助你进行单位的一致性检查。
比如图6 所示,当你试图把表示时间的数据和表示长度的数据相加时,LabVIEW会禁止你连线。
这帮助你防止了编程时出现的不一致性错误。
图6:不同类型的数据不能进行计算但是,这种严格的一致性检查也可能会带来麻烦。
例如,我们编写了一个子VI,用于计算两个时间单位的和。
下次当我们需要一个计算长度单位的和的子VI时,却不能够直接使用已有的计算时间单位的子VI,因为它们的单位是不同的。
为了解决这个问题,LabVIEW 提供了单位统配符。
在编写需要用于不同单位的子VI时,可以使用单位通配符。
单位的通配符用$n 表示,其中n 是 1 到9 之间任意一个数字。
例如我们以上提到的加法,可以在子VI 中使用通配符$1,如果还需要另外一个执行其他运算的子VI 中,其单位可以用$2 表示。
labview 的数据类型----无所不在的类型描述符TYPE
DESCRIPTOR
大家都知道,LV 是基于数据流的图形编程语言.我们在单步监视LV 的运行时,在连线的任何一处查看的它的数据都是相同的,确实有点数据流动的意思. LABVIEW 的连线颜色,线条粗细代表不同的数据,差别很大的两种类型是无法连接到一起的,可见,LV 在任何时刻都知道正在流动的数据类型,它是通过什么实现的那?
答案是:类型描述符.TYPE DESCRIPTOR
类型描述符包括那些内容那,我们从最简单地BOOLEAN看一下LABIEW 随时维护一个存储结构,其中包括类型描述符,可以看出,BOOLEAN 的存储结构是一个I16 数组,目前共有四个元素,
0x08 0x4021 0x0343 0x4243
第一个I16 是长度字节:4*2BYTE=8 BYTE
第二个I16 是分成高位字节和低位字节两部分:40 和21(HEX),其中40 是LV 保留部分,21 是BOOLEAN 的类型码,类型码是一一对应的(TYPE CODE)
第三个元素高位字节表示控件名字的长度,低位字节是名字第一个字母的ASCII,接下来是第二个字母和第三个字母.
这里把长度和类型码合在一起称做类型描述符(TYPE DESCRIPTOR) TYPE DESCRIPTOR:
所以类型描述符中包括了控件数据的类型和这个存储结构总长度,可以看出,我们例子中的BOOLEAN名称是ABC,对应的ASCII分别是
41,42,43.我们知道,BOOLEAN在内存中占一个字节,类型描述符中没有它的值,它的值体现在它所占的内存字节中,该字节为0,则为。