注册登陆后可查看附件和大图,以及购买相关内容
您需要 登录 才可以下载或查看,没有账号?注册会员
x
LabVIE2017新功能-自适应VI LabVIEW 2017包含内嵌至其调用方VI的自适应VI (.vim),该VI可将每个接线端调整为相应的输入数据类型。通过自适应VI,您可创建VI,对任意可接收的数据类型执行相同的操作,而无需为每种数据类型保存单独的VI副本。 自适应VI类似于多态VI,但在确定可接收的数据类型时,自适应VI更加灵活。多态VI使用一系列预定义的可接收数据类型。自适应VI计算实现是否接收某种数据类型。 自适应VI使用.vim文件扩展名。如需创建自适应VI,可选择文件»新建,并在新建对话框中选择自适应VI。如需将现有VI转换为自适应VI,可将文件扩展名设置为.vim并保存。 注: 仅可将标准VI转换为自适应VI。无法将多态VI、全局VI或XControl功能转换为自适应VI。 内置的自适应VI LabVIEW提供以下自适应VI,供用户在应用程序中使用。内置自适应VI的图标使用橘色背景。 数组选板 数组元素减1—将一维数组的指定元素减1。如数组为时间标识数组,该VI将元素减1秒。 数组元素加1—将一维数组的指定元素加1。如数组为时间标识数组,该VI将元素加1秒。 重排一维数组—以伪随机顺序重新排列一维数组元素。 重排二维数组—以伪随机顺序重新排列二维数组元素。 排序二维数组—升序排列指定列或行中的元素,重新排列二维数组的行或列。 比较选板 值改变—如首次调用VI,或输入值与上一次调用VI时发生改变,返回TRUE。 转换选板 数值至枚举—查找匹配指定数值的枚举值,并返回对应的枚举项。 定时选板 暂停数据流—将连线的数据流延迟指定的时间长度。 这个自适应VI功能,在某些情况下,还是非常有作用的。至少不需要去做各种数据类型的多态VI。只需要写一个VI即可,可以节省不少时间。例如NI LabVIEW中自己提供的自适应VI,数组元素+1,重排数组等。 为什么需要自适应的VI?在某些情况下,可能会有多种类型的数据输入输出。例如加法,可能是U8数相加,也可以是U16、I16、I32、DBL等数相加。如果输入的数值超过数据类型本身的所能表示的最大值或小数变整数时,则会溢出,从而造成值不正确。如下图所示,一个简单的加法演示:
自适应函数演示
自适应函数演示
自适应函数对比-左为自适应VI,右为标准VI
自适应函数对比-左为自适应VI,右为标准VI 从上面的例子中可以看到,如果是标准VI,如果接受的数据不匹配,则会强制转换为可接受的数据类型(接线端的红色箭头为强制数据转换),如U8的加法,输入的是DBL或I32等,则会强制转换为U8后再执行加法。这样计算结果后,如果结果小于U8的最大255,则会正常(两个输入端都小于255);而如果结果大于U8的最大255时,则会溢出出错。但是如果是自适应VI的话,则自动适应不同的数据类型。则不会出现这样的错误。 我们可以看其它的一些VI,如OPENG中的数组相关的操作,例如下面的判断数组是否为空的功能多态VI,内部集成了N个函数类型。如果使用自适应VI的话,则简单许多了。很多数据都是可以使用一个适应函数即可。
OPENG中的多态VI Empty Array.vi
OPENG中的多态VI Empty Array.vi
|