在主VI中包含大量的子VI

时间:2019-05-11 15:42:04

标签: labview

我有大量的SubVI(大约50个),包括一些特定于用法的代码,还有少量的GUI元素(大多数约为2:输入和输出)。

我的目标是重用这些VI,而不会在新的(“主”)VI中造成严重混乱,并在用户最终将要与之交互的GUI公用窗格上收集所有GUI元素。

我尝试像示例中一样使用Open VI Function,'VI Reference'和'Run SubVi'创建子面板的引用,但是子面板ui仅在程序运行时显示,其他数量块通常比各自的SubVI中的代码大。 子VI只能加载一次以构建主用户界面。

另外:在this教程中,他们创建一个子VI并重新创建该子VI中已定义的GUI元素。 我认为这就像传递参数一样,就像在基于文本的编程语言(如代码片段)中一样:

def main_vi(x, y, z): # inputs x, y, z
    s = sub_vi(x, y, z) 
    return s # output s

这是必需的,还是subvi的GUI控件可以直接从外部重用

是否可以在包含所有内容的“主” VI中使用子VI,并使用选项卡将所有内容映射到通用UI?

还是将所有内容复制到主VI更好,即根本没有代码重用?

谢谢!

2 个答案:

答案 0 :(得分:0)

取决于您要使用的功能,您可能希望查看XControls。这将使您可以将功能封装到可重用的控件中,该控件可在主面板上使用,而不会使主面板变得很混乱。

答案 1 :(得分:0)

大型UI可能会让人很痛苦(无意中使用了窗格),尤其是在有很多控件和指示符的情况下。有一些有用的方法可以将UI分解为模块化组件。 XControls就是其中之一,但由于其不可预测的行为,我不推荐它们。而是考虑使用子面板。一家名为Moore Good Ideas(或MGI)的公司提供了一个很好的工具包。 More info can be found on their website here.

XControls还有一个更好的替代方法,称为QControls。 More info on them can be found here.

但是,一般而言,您可能希望研究一个更具模块化的框架。 More info on Frameworks can be found here.