[Variant]LabVIEW中变体使用的一些问题

原创 2015年07月11日 00:22:52
   问题描述:LabVIEW中有一种特殊的数据类型叫做变体。LabVIEW官方将变体成为可以容纳所有数据类型的一个容器,可以传入几乎所有的数据类型,比如可以将某个数值转换为变体,然后再通过相应的变体至数值转换即可得到原来的值了。变体有许多很好的用处,但是编程也容易出现问题的,下面就一点点实践上的问题做下记录。
   什么是变体:变体其实存储了两部分内容,第一部分是数据类型的描述,第二部分就是数值本身的存储了,因此在将数据类型的值转为变体时,不仅存储了该值,还有相应类型的描述。在从变体转为数据类型时,需要知道原来的数据类型,然后与之匹配转换出原值。这个功能看似将数据转来转去,多此一举,而且数据类型弄错就会导致错误的数据,但是变体是非常有用的,就像C语言中的万能指针一样,当不确定需要传入的数据为何种类型时,其使用价值就体现出来了。可能LabVIEW更多的像C语言一些,虽然现在也有面向对象部分的功能,但数据流的形式更加接近于过程控制。
   变体用在何处:上面的在传入数据类型不确定时使用变体很有用是一点,另外一点就是对ActiveX控件数据的传输,比如MSCOMM控件,还有数据库相关的DCT工具中数据的存取等,都用到的是变体。
   变体使用的最大问题:最大的问题应该就是数据类型的确定了,这也是变体的本身的属性决定的。许多时候比如在使用ActiveX控件的时候,并不知道变体是如何将数据转换成更加底层的数据的,也就是只要使用到变体至数值或者是数值至变体中的一个,变体是从ActiveX中传来的,这时就必须详细的了解该ActiveX变体所支持的数据类型了,否则编程中会出现非常奇怪的数据错误问题。比如该ActiveX控件的变体只支持字符串和一维字节数组的传入,但由于没有了解到这一点,在编程时给ActiveX控件变体传入了float型数值,程序上并没有错误,但是ActiveX控件得到的数据并非需要的,经过转换后得到的是错误的数值,结果就出现莫名其妙的问题了。
   变体的特点:因此变体使用灵活,但是在没有完全了解其数据类型转换的情况下使用也是容易出问题的。
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Labview之子面板的使用

本章将通过三个简单的例子讲述Labview子面板的使用。 例7.8.1 最简单的子面板 例7.8.2 打开子面板然后进行控制 例7.8.3 子面板切换-事件结构-调用节点 例7.8.1 最...

【LabVIEW花样翻新】使用子面板技术进行动态的界面加载

在进行公司LabVIEW项目的时候老大提的第一点要求便是要能够开发一个兼容的、方便升级和修改的上位机平台。这里面他主要要求一个界面可替换的特性,也就是说在程序完成发布以后想要修改程序的面板、功能或者添...

Labview使用Xcontrol实现多选下拉列表

本笔记记录Labview简单实现一个多选下拉列表的Xcontrol控件,如下图所示: 建立新工程,新建Xcontrol,可以参考另外一篇文章 http://blog.csdn.net/qingn...

在LabVIEW中高效使用内存

本文来自LabVIEW自带帮助文件中的节选。想细致研究的朋友,可以在LabVIEW的帮助文件的索引中输入关键字“内存使用”进行搜索,并找到本文的全部内容。 VI内存使用 LabVIEW可处...

Labview机器视觉(3)-Vision前面板控件

labview机器视觉包前面板中间主要包含五个部分 IMAQ Image.ctl,Image Display control ,Image Display control (classic),IMA...

LabVIEW如何实现界面跳转

和正常调用子VI一样,然后在被调用的VI上点右键,选择“subvi node setup”,在弹出对话框种选择“show front panel when called” 这样 在执行子程序的时候 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)