以编程方式检查Labview模块是否在系统上

时间:2016-10-27 08:05:16

标签: labview vision

我有两个版本的相同Labview程序 - 一个带摄像头控制,一个没有。这是因为我没有足够的NI Vision许可证用于我的所有系统(其中一些有摄像头),而具有视觉子程序的程序不能在非NI Vision系统上运行。

我想将这些版本合并到包含相机控件的一个版本中,但如果它所在的系统没有相机,则忽略它们。有没有办法以编程方式检查系统是否在运行时具有NI-Vision模块?目前,如果由于错误而未包含NI Vision,则甚至无法启动主vi。

1 个答案:

答案 0 :(得分:5)

检测已安装的NI软件

您可以使用系统配置API Get Installed Software.vi在运行时检测已安装的NI软件。

enter image description here

可选择使用LabVIEW API

使您的应用程序支持可选存在LabVIEW模块的下一步是让您的应用程序可选依赖它。

在运行时,这由dynamically calling VIs完成。 在构建时,这是通过使用conditional disable structure从编译中删除程序框图的区域来完成的。

动态调用VI

当您在程序框图上放置VI时,您将该VI静态链接到您的应用程序。由于它是静态链接的,因此应用程序必须能够找到加载时使用的函数和API。

当您动态链接VI时,应用程序不知道它将调用哪个VI,直到您的代码告诉它在运行时调用什么。通过指定要使用的VI的路径和连接器窗格,您可以按需引用和调用它们,而不是按负载调用它们。 NI有一个guided tutorial,可以介绍这种设计模式的设置和使用。