subpanel 和 子VI 的疑問

請問使用subpanel 將子VI畫面載入 , 再呼叫此子VI時,是否可以將資料輸入至此子VI( 因為此子VI 有輸入及輸出節點)

請問這可以做到嗎?

備註: 會使用subpannel 是因為 呼叫此子VI 載入時間較長


另問請問一下: 如何設定 對話式子VI 被呼叫時, 顯示於第一個畫面  不會讓其他程式蓋住??

bacteria40486.5266435185

"顯示於第一個畫面  不會讓其他程式蓋住"的方式如下(圖123):

對話式子VI 被呼叫時一定要子vi自己將程式關閉才是完成,若是用滑鼠將子vi關閉,只是關閉畫面,子vi程式還在執行,會當機.要注意.

關於subpanel必須要在程式RUN之前改變控制元,執行中不可改變控制元,只可讀顯示元.除非用Notifier或Queue或Global等方式.

![](upload://oMImVRVmUL5aOV7RVSuUqCAamYH.jpeg)

![](upload://wk8a42klw6fZvNZrncLtybgiI28.jpeg)

![](upload://x7ScTVe3KTXL5LcSXiQlRBvhNI8.jpeg)

![](upload://582oyqy1sjGWdCCBX7mOj1KNCAY.jpeg)

![](upload://qSE6H30X5epmTV4VL08xlKrggxR.jpeg)

FYI.

subpanel Example.zip

![](upload://gUQs6QO8fmMTEW5PNLi9ZEBwz6m.jpeg)

請問DonWang 您說" subpanel必須要在程式RUN之前改變控制元 " 那要如何將改變的data輸入至 子VI ???

輸入資料分兩部分

一為執行此程式前要把"外部資料"輸入至子VI !   二為run子VI面板, 將子VI上顯示的資料輸入  經過子VI運算後輸出結果

請問輸入外部資料   是用您說的 Notifier或Queue或Global 的方式嗎?  

一般在自己VI內大多數用Local來做分身或在程式中將輸出變輸入,將輸入變輸出.Notifier或Queue或Global可於各子VI間傳遞資料,它們的用法,你可能要再多爬文.

subpanel我原本試的結果在RUN時無法改變輸入值,但是用JD大的程式又可以改變,你可以參考JD大程式.那是用Invoke Node,在Invoke Node右上角的連接OK後,再用手指投選擇Control Value中的Get(取指定的輸出),Get All(取全部的輸出),Set(改變指定的輸入).指定的名稱就是該元件的Lable名稱.

![](upload://cE9rX2utmKPOqurSCs2sWGmwcj8.jpeg)

![](upload://8HmycCs3VVUTODdSPZZ7E07pdmr.jpeg)

![](upload://s8hXKZfSjerEKCil2DmbBkNDsUI.jpeg)

![](upload://iQmJXmKwtMso9tkRwv2NpKfsjxu.jpeg)