当前位置:首页 > 测试测量 > 测试测量
[导读]先了解控件和数据类型的关系。LV控件面板上的图标都是典型的控件,说通俗一些,控件就是一个包含很多属性的容器,值是控件的一个属性,如下图所示的数字输入控件,值的数据类型就是控件所代表的数据类型,描述一个控

先了解控件和数据类型的关系。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语法,可以使用相对路径和绝对路径。存储为路径类型、路径成员数和路径成员。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

NI提供的软件包经济省时,不仅帮助开发人员节省时间,还为创客提供了新的机遇

关键字: LabVIEW 自动化测试系统

强大的图形化编程工具使整个测试和测量过程的各个方面实现可视化

关键字: LabVIEW 图形化编程工具

摘要:对于每一型新机试飞,或者是重大的研究性试飞和验证试飞,都必须实施遥测监控。现基于TTS(TextToSpeech)语音合成技术,结合飞行试验遥测监控系统的不足,利用TTS引擎在LabVIEW开发环境下设计并实现了遥...

关键字: 飞行试验遥测监控系统 TTS LabVIEW

在科研以及应用软件领域,LabVIEW和MATLAB作为比较常用的2款工具,相信很多人都用过吧。简单的概括一下,LabVIEW侧重测试测量和数据采集,MATLAB侧重科学计算和数据分析。

关键字: LabVIEW matlab 混合编程

摘要:利用单片机和虚拟仪器LabVIEW在PC端设计了温湿度测量及控制系统,用于温湿度数据监测。该系统上位机为PC端监控界面,下位机为单片机,单片机采集温湿度数据,并将采集到的数据通过串口发送给监控界面进行监测和管理。该...

关键字: DHT11 LabVIEW 单片机

摘要:当前闭环步进电机在自动化设备中的应用越来越广泛,故为了进一步满足闭环步进电机的应用需求,采用LabVIEW上位机+运动控制卡+驱动器模块的控制方案进行了多轴运动系统的设计,通过设计的上位机软件实现闭环步进电机的实时...

关键字: 闭环步进电机 精度测试 LabVIEW

单片机内部有很多的特殊功能寄存器,每个寄存器在单片机内部都分配有唯一的地址,一般我们会根据寄存器功能的不同给寄存器赋予各自的名称,当我们需要在程序中操作这些特殊功能寄存器时,必须要在程序的最前面将这些名称加以声明,声明的...

关键字: C51 数据类型 扩充定义

数据元(Data Element),也称为数据元素,是用一组属性描述其定义、标识、表示和允许值的数据单元,在一定语境下,通常用于构建一个语义正确、独立且无歧义的特定概念语义的信息单元。数据元可以理解为数据的基本单元,将若...

关键字: C51 数据类型

摘要:为满足某扭矩检测试验标准要求,基于LabView设计开发了一款扭矩检测装置,该装置能检测某类零部件的断裂力矩,满足试验标准要求,其他零部件的扭矩也可在该装置上检测。类似的扭矩装置可参考该装置进行设计。

关键字: 伺服电机 LabVIEW PLC

在下述的内容中,小编将会对LabVIEW的相关消息予以报道,如果LabVIEW是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: LabVIEW 测试测量 NI
关闭
关闭