如何将同一个VI加载到同一个前面板的多个子面板中?

更新 Nov 8, 2023

适用于

软件

  • LabVIEW Full

问题详述

 

  • 我想将同一个VI加载到同一个前面板的两个或多个子面板中,但是我得到了以下的错误讯息:
    错误1145发生于 Main VI.vi 中的调用节点

    可能原因:
    LabVIEW: (Hex 0x479)
    由于VI已经在子面板控件中,所以无法打开该VI。
    方法名称:插入VI

    error 1145.PNG

  • 在LabVIEW中有什么方法可以同时在两个或多个子面板打开同一个VI?我不希望每次需要将VI加载到多个子面板中时都复制一份VI。

解决方案

要解决此问题,您需要将该VI保存为VI模板(.vit),这样您就可以将该VI加载到多个子面板中。根据可重入VI,VI模板和动态VI之间的差异所述,VI模板其实是一个具有自己内存空间的VI。它们在创建时具有不同的储存位置,一般会用于开发其他VI的开始。打开VI模板时,VI模板本身不会打开,而是会创建一个新的独立VI并将其加载到内存中。在这种情况下,VI模板的运行原理很有用,因为当每个插入VI方法节点被赋予对同一VI模板的单独引用时,每个节点将在其各自的子面板中加载V一个新的独立VI。

为了避免错误1145 ,请使用两个Open VI Reference函数以创建两个单独的动态VI参考。这将防止 LabVIEW 将 VI 视为同一个 VI,因为它们两个具有相同的 VI 服务器引用句柄。

有关范例,请参见NI论坛示例,标题为 Load Two Subpanels with Same VI Using VI Template (*.VIT) - NI Community Example