完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
slabview的数据类型 大家都知道,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,则为FALSE,该字节非0,则为TRUE. 在看看标量数值类型 U8: 0X0008 0X4005 0X0255 0X3800 8*2B CODE=05 2 CAHR 55->U 38->8 U16:0X0008 0X4006 0X355 0X3136 8*2B CODE=06 3 CAHR 55->U 31->1 36->6 DBL: 0X0008 0X400A 0X0344 0X424C 8*2B CODE=0A 3 CAHR 44->D 42->B 4C->L 其他数值标量也完全相似.它的存储结构包括类型描述符(长度和类型码),名称长度和名称的ASCII串. ENUM和RING本质上也是数值数据类型,不过它包含了复杂的名称,先看看ENUM. 可以看到,数据总长度是0x16,类型码是0x16,0x04表示ENUM共包括四个元素,0x0241中0X02表示第一个元素名称长度是2个字符,分别是0X41,0X41 (AA),依次,第二个元素是0X42 0X42(BB),第三个元素是0X43 0X43(CC),第四个元素是0X44,0X44(DD),最后0X0341中的高字节0X03表示枚举的名称字符传长度是3个字节(字符),分别是0X41,0X42,0X43,就是ABC. 下面给出完整的类型描述符表: Data Types The following tables list numeric and nonnumeric data types, type codes, and type descriptors. Data Type Type Code (numbers in hexadecimal) Type Descriptor (numbers in hexadecimal 8-bit Integer 01 0004 xx01 16-bit Integer 02 0004 xx02 32-bit Integer 03 0004 xx03 64-bit Integer 04 0004 xx04 Unsigned 8-bit Integer 05 0004 xx05 Unsigned 16-bit Integer 06 0004 xx06 Unsigned 32-bit Integer 07 0004 xx07 Unsigned 64-bit Integer 08 0004 xx08 Single-Precision Floating-Point Number 09 0004 xx09 Double-Precision Floating-Point Number 0A 0004 xx0A Extended-Precision Floating-Point Number 0B 0004 xx0B Single-Precision Complex Floating-Point Number 0C 0004 xx0C Double-Precision Complex Floating-Point Number 0D 0004 xx0D Extended-Precision Complex Floating-Point Number 0E 0004 xx0E Enumerated 8-bit Integer 15 Enumerated 16-bit Integer 16 Enumerated 32-bit Integer 17 Single-Precision Physical Quantity 19 Double-Precision Physical Quantity 1A Extended-Precision Physical Quantity 1B Single-Precision Complex Physical Quantity 1C Double-Precision Complex Physical Quantity 1D Extended-Precision Complex Physical Quantity 1E n=length; x=reserved; k=number; k pstrs=number of Pascal strings; k base-exp=number of base-exponent pairs. Data Type Type Code (numbers in hexadecimal) Type Descriptor (numbers in hexadecimal) Boolean 21 0004 xx21 String 30 0008 xx30 Path 32 0008 xx32 Picture 33 0008 xx33 Array 40 Cluster 50 Waveform 54 Refnum 70 Variant 53 n=length; x=reserved; k=number; k pstrs=number of Pascal strings; k base-exp=number of base-exponent pairs. A dim is a 32-bit integer. The following sections provide examples of data and type descriptors. OPENG中提供了大量的利用类型描述符的功能节点,并且源代码是完全开放的,仔细跟踪它的程序设计方法对我们更好地理解LABVIEW非常有帮助. |
|
相关推荐
|
|
不错,但是有点看不懂 |
|
|
|
|
|
|
|
|
|
|
|
用udl里的字符串信息在局域网内其他电脑连接sql数据库为什么为出现连接失败拒绝访问?
1744 浏览 2 评论
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
1347 浏览 0 评论
1557 浏览 0 评论
关于labview2024版本的lvanlys.dll出错的问题
3189 浏览 3 评论
1480 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 21:43 , Processed in 0.544827 second(s), Total 74, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号