从一个编译好的可执行文件中部署网络共享变量

更新 Jul 27, 2023

环境

软件

  • LabVIEW Real-Time Module
  • LabVIEW Datalogging and Supervisory Control Module
  • LabVIEW

我已经创建了一个包含网络共享变量的可执行文件,但是当我尝试运行该程序时,似乎变量不会自动部署。如何部署共享变量?

LabVIEW 2009及更高版本

在LabVIEW 2009中,运行时部署共享变量库的功能被引入到Application Builder。该选项在编译的可执行文件的编译规范(build specifications)中可用,并极大地简化和减少了将编译的可执行文件与共享变量一起使用所需的编码。更多信息: 共享变量部署页面(应用程序属性对话框)

要在LabVIEW 2009编译的可执行文件中部署共享变量库,请按照以下操作步骤(并参考下图):
  1. 在程序生成规范(Build Specifications)中,选择共享变量部署。
  2. 要在应用程序执行时部署库,请选中执行应用程序时部署共享变量库的复选框。
  3. 要在应用程序完成时取消部署库,请选中退出应用程序时取消部署共享变量的复选框。


注意:下面描述的基于2009之前的LabVIEW版本的方法仍然适用于LabVIEW 2009。此外,先前版本的代码使用下述方法升级并编译到LabVIEW 2009后无需更新即可使用上述方法。

LabVIEW 2009之前的版本

为了在LabVIEW 2009之前的版本中使用已编译的可执行文件中的网络共享变量,必须首先部署共享变量,然后才能在程序中使用。当您创建新应用程序(EXE)时,在程序生成规范»应用程序(exe)»源文件下,将您的上层VI添加为启动VI,然后将所有包含网络共享变量的库添加到Always Include(以前的支持文件)名单。此外,请确保在源文件设置类别中将库的目标设置为支持目录。


从Windows部署共享变量

这可以通过使用应用程序控制的部署库方法来完成。查找部署库的方法:
  1. 右键单击程序框图以显示编程选项板,然后找到到编程»应用程序控制,并将调用节点放在程序框图上
  2. 使用手形工具,单击“方法”,然后选择“库”»“部署库”
  3. 使用部署库调用节点的路径输入控件制定包含共享变量的库。如果库包含在可执行文件的支持目录中,如上所述,库将被复制到可执行文件的数据文件夹中。将路径输入指向这些库。

如果您使用的是LabVIEW数据记录和监控(DSC)模块,则应使用“部署库”功能部署共享变量。查找部署库VI的方法:
  1. 在程序框图中右键单击以显示功能选板,然后找到DSC模块»引擎控制»库和过程(DSC模块»LabVIEW 8.5之前的引擎控制),并将部署库功能放在程序框图上
  2. 使用部署库函数的路径输入指向包含共享变量的库


注意:如果生成的应用程序使用VI 服务器属性和方法或DSC VI来修改库中的库或共享变量,请在“应用程序属性”对话框的“高级”页面上的“启用增强型DSC运行支持”复选框中选中复选标记,如下所示。如果您计划将此应用程序发布到未安装LabVIEW DSC的计算机上,请务必确保在安装程序属性的“其他安装程序”部分中选择NI增强型DSC部署支持。
 

将共享变量部署到实时(RT)目标(所有LabVIEW版本)

如果要编译要在实时目标上运行的可执行文件,则可以从项目浏览器(Project Explorer)窗口手动部署共享变量,也可以使用应用程序调用节点以编程方式将共享变量从PC部署到实时目标。

在项目浏览器中,右键单击需要部署在实时目标上的每个库,然后选择部署全部(Deploy All)。部署到实时目标上的网络共享变量将持续存在,直到您手动取消部署它们为止。要取消部署网络共享变量:
  1. 在LabVIEW中,转到工具»共享变量»变量管理器
  2. 右键单击RT系统,添加要监控的RT系统
  3. 右键单击要取消部署的库,然后选择“ 删除库”


您还可以使用应用程序调用节点以编程方式将共享变量从主机PC部署到实时目标:
  1. 右键单击程序框图以显示编程选项板,然后转到编程»应用程序控制并将调用节点放在程序框图上
  2. 使用手形工具,单击“方法”,然后选择“库”»“部署库”。
  3. 使用部署库调用节点的路径输入指向包含共享变量的库,同时确保在目标IP地址控件中输入指定实时目标的IP地址。

Additional Information


对于此处讨论的所有情况,系统需要时间来部署库,这就是您必须在部署和第一次访问变量之间设置延迟的原因。