一、子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