LabVIEW的数据类型、存储格式

2015-10-19 10:08:34来源: eefocus
先了解控件和数据类型的关系。LV控件面板上的图标都是典型的控件,说通俗一些,控件就是一个包含很多属性的容器,值是控件的一个属性,如下图所示的数字输入控件,值的数据类型就是控件所代表的数据类型,描述一个控件是通过类型描述符实现的,包括控件的名称、控件类型及控件所代表的数据类型等等。了解LV的数据类型是非常有必要的。特别是使用DLLs(shared libraries)、CINs(code interface nodes)或需要利用文件I/O往文件写入/读取二进制数(binary data)的用户,更有必须了解数据结构类型及在内存中存储格式

 

数据类型之一——数字(Numeric)

包括:byte、word、long、SGL、DBL等

 

 

 

数据类型之二—— 数值型数组(Array)

存储为一个句柄(handle,指针的指针),指向的结构包括一个数值(I32)和一个数组,数值表达数组的大小,数组的元素表达每一个数字,这些数字在内存中连续存储。

提示:为了正确对齐数字,在第一个数字前可能需要附加一些字节数。当句柄为0,则是空数组。下列两图分别描述一维单精度(SGL)浮点数组、四维字整数(I16)数组,左边的数字代表偏移(offset)数组在内存起始存储位置的字节数。

 

其他数据类型

布尔、字符串、字符串数组、簇、路径

布尔(Boolean)型数据是字节型数据,存储为8位数值(一个字节),数值0表示False,其余数值代表True。布尔数组的存储格式如下图所示:

字符串(string)是一个字符型数组,存储为一个句柄(handle),指向的结构包括一个数值和一个数组(与数值型数组相同)。数组每个成员表达一个字符,数值表达数组长度。

 

  字符串数组(Array of Strings)是非常特殊的数据类型,这也是CLF和CIN的难点。字符串在内存中是连续存储的,但是,字符串数组却与一般连续存放的二维数组不同,其元素(字符串)是以长度开头连续存储的,而字符串数组本身是存储在内存中另外位置的。(通过句柄与字符串建立联系)

提示:

1:和其他类型的数组一样,字符串数组也是以I32长度开头的,接下是每个字符串的首地址指针(句柄)——U32数值,表示字符串在内存中的地址(第一个字符)。由于字符串数组需要从内存的不同区域访问字符串(连续存储),会耗费更多的时间,因此,用一个长的字符串代替字符串数组,程序会更加高效。

2:LV是以句柄(Handle)描述数组和字符串,Handle本身是U32,占四个字节,它包含的内容是指向一个数据结构的指针,因为数据结构在内存中是可以重新分配的,所以它的地址会经常发生变化,而Handle的地址是不会变化的,通过Handle就可以跟踪数据结构。另外,对于每个数组和字符串,在长度信息之前还有一个16个字节的头部信息,(LV内部使用,类型描述符),因此一个最简单的数组至少占24个字节:HANDLE(U32)+HEADER(16Byte)+SIZE(I32)=24 BYTE。

簇是一种数据类型,一个簇是一个由若干数据类型的成员组成的集合体,类似于C语言中的结构体和Pascal语言中的记录。簇的成员有一种逻辑上的顺序,这是由它们放进去的先后顺序决定的,与它们在簇中摆放的位置无关。前面的成员被删除时,后面的成员会递补。改变簇成员逻辑顺序的方法是在簇上弹出快捷菜单,选Reorder Controls In Cluster…弹出一个对话框,为簇成员设置新的逻辑顺序。

在内存中,簇直接存放标量数据(numeric)。对于数组、字符串或路径,簇只是存储这些数据类型的的首地址指针。不同操作平台(OS)在数据对齐有所差异,为确保存储数据的第一个元素对齐,可能需要往这个元素前添加一些字节数。下列图形显示一个簇(元素包括单精度浮点数、扩展精度浮点数和一个指向一维无符号字整型数组的首地址指针)在不同操作系统下的存储格式。

提示:簇可以直接嵌套簇,簇间接存储的数据(指针)只有数组、字符串或路径这三种数据类型。下图显示簇(元素两个标量数字加一个数组)和簇(元素为一个带两个标量数字的簇和一个数组)具有相同的存储方式。

路径

路径:使用标准的Windows语法,可以使用相对路径和绝对路径。存储为路径类型、路径成员数和路径成员。

关键字:LabVIEW  数据类型  存储格式

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2015/1019/article_13569.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
LabVIEW
数据类型
存储格式

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved