【LabVIEW】VI前面板

一、子VI前面板

对于子VI,有三种选择来控制前面板的状态

1、在调用时显示前面板
当子VI执行时打开前面板。

2、如果之前是关闭的,那么在调用后关闭
当子VI结束执行后,关闭前面板。

3、加载时显示前面板
当子VI被载入内存时,打开前面板。


如果你想要根据每一次的具体情况来决定是否弹出子VI的前面板,那么应该在调用它的顶层VI中进行设置。
如果你在顶层VI中多次调用此子VI,通过这样的设置,你可以选择在其中的某几次打开前面板。具体步骤如下:

在顶层VI的程序框图中,右键点击子VI——选择子VI节点设置


有四种选择来控制子VI前面板的行为

1、加载时打开前面板
当子VI被载入内存时打开其前面板。

2、调用时打开前面板
当子VI执行时打开前面板。

3、如果之前是关闭的,那么在调用后关闭
当子VI结束执行后,关闭前面板。

4、调用时挂起
停止执行主VI,并允许用户任意次运行子VI。

二、是否显示前面板

(1)显示

子VI设置成对话框型,或者是选择调用时显示前面板的选项,则调用子VI时会显示它的前面板,这时只有关闭对话框(也就是子VI的前面板)才能操作主VI。

在主VI里右击子 VI图标——设置子VI节点——勾选 调用时显示前面板


(2)不需要显示
如果不需要显示子VI前面板,只要在VI属性中把window appearance设置成default,子VI前面板就不会打开。

三、调用子VI造成主界面卡死的问题

几点建议:
建议1: 一定不要忘记在所有while循环中加入延时措施。

因为对于labview,它的while循环全速执行起来会让你的CPU的一个内核全速运行,对于labview自动多线程的特点。

比如CPU有4个内核,你放四个没有延时的while循环,4个内核就满了。

可以打开任务管理器的性能页,对比程序运行前后CPU使用率。


建议2: 不要在事件结构中处理耗时过程。

事件结构主要是用来响应用户操作的,应该尽快响应用户操作,把耗时过程单独放在while事件结构之外。

这样即使要连续执行不同的耗时任务也能顺利执行。也许小规模时候觉得没有必要,但规模稍大时候就会显现出来。

四、在程序框图中改变前面板状态

操作流程:

(1)改变前面板状态 FP.State

添加属性节点:应用程序控制——属性节点
调出本VI:应用程序控制——VI服务器引用
将本VI与属性节点相连,点击属性节点——前面板窗口——状态 FP.State
在该属性节点上右键——全部转换为写入
在该属性节点上右键——创建——常量
在生成的下拉框里选择要设置的前面板状态。


【FP.State属性】
LabVIEW前面板窗口的当前状态。有效值为:
0(Invalid)
1(Standard)
2(Closed)
3(Hidden)
4(Minimized)
5(Maximized)

 
在Standard或Maximized状态下,前面板窗口处于用户可见状态。
如试图对未打开的前面板窗口设置该属性,可返回错误。

(2)打开/关闭前面板

FP.Close和FP.Open不是LabVIEW自带的,是早期版本带有的。
如果在属性节点前面板窗口没有,就在调用节点里。


程序框图菜单栏工具——选项——VI服务器——勾选 显示VI脚本函数、属性和方法
VI服务器勾选后,放置一个调用节点在程序框图面板
右键该调用节点——选择类——VI服务器——VI——VI
点击该调用节点——前面板——OPEN/Close

/*******相与枕藉乎舟中,不知东方之既白*******/
原文地址:https://www.cnblogs.com/Mars-0603/p/15088784.html