第3章LabVIEW的数据类型.
- 格式:ppt
- 大小:2.96 MB
- 文档页数:99
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中,数据以数据流的形式从一个节点传输到另一个节点,通过控制数据流的传输顺序和方式,可以实现数据的同步和异步传输。
第三章数据类型:数组、簇和波形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 完全自学手册加入书架
登录
•书名页
•版权信息
•前言
•第1部分入门篇
•第1章初识LabVIEW
•第2章 LabVIEW 基本操作
•第3章 LabVIEW 基本数据类型及其相互转换
•第4章 LabVIEW 程序结构
•第5章 LabVIEW 数据运算函数
•第6章 LabVIEW 控件及其使用方法
•第7章 LabVIEW 数据表达与显示
•第2部分提高篇
•第8章 LabVIEW 文件I/O
•第9章 LabVIEW 中的字符串操作
•第10章 LabVIEW 数学分析
•第11章 LabVIEW 信号处理
•第12章 LabVIEW 与其他软件通信
•第13章 LabVIEW 时间相关操作
•第14章 LabVIEW 应用程序控制
•第15章 LabVIEW 网络编程技术
•第16章 LabVIEW 总线技术与仪器控制
•第17章 LabVIEW 数据库的访问
•第18章 LabVIEW 程序发布
•第3部分应用篇
•第19章多通道温度检测记录系统
•第20章温湿度检测管理系统
•参考文献
是否关闭自动购买?
关闭后需要看完本书未购买的章节手动确认购买。
labview的数据类型----通过类型描述符提取控件名称
(LABEL)
通过分析类型描述符结构,我们已经得到的类型描述符的头部信息,我们知道,LV 的存储结构中同时包括了控件的标签信息,看看如何能通过描述符得到控件的标签.OPENG 中提供了这个功能,我们跟踪一下看看它实现的方法:
首先根据类型描述符头部信息中的类型码对LV 的数据类型进行分类,每个CASE 中的数据存储结构都是类似的.
先看看第一个CASE: 条件是:”I8”..”CXT”,“Boolean”,“Variant” ,这说明从I8-- ->“CXT”,包括BOOLEAN VARIANT 类型描述符的结构都是类似的.看看I8 和BOOLEAN 的类型描述符的内容,我们分析一下.
I8 和BOOLEAN 除了类型码不同(0X01,0X21),其它结构完全相同.第一个字(两个字节)表示存储结构的长度,*2 表示字节数.
0X40 是LABVIEW 保留的.第三个字的高位字节0X02 表示名称包括两个字节(字符,ASCII).可以看出它的标签是aa.
前4 个字节(两个字I16)是类型描述符的头部信息,第5 个字节0X02 表示名称的长度是2 个字符,这样,通过把类型描述符的结构转换成U8 数组或者16 进制字符串,就可以拆分出它的标签信息.
左边的图通过铸模函数,把I16 数组转换成16 进制字符串,通过一个Get PString(有点类似C 指针),提取出标签.
右边的图是Get PString 的程序框图,因为以后要经常用到,重点解释一下.
我们前文谈到过,字符串和U8 数组在内存中的存储形式是完全相同的,所以操作字符串和操作U8 数组是等价的.
表示名称长度信息在第5个字节中,所以首先用索引数组取出第5个字节。
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,则为。