同時呼叫同一個子VI的多個副本

更新 Jan 7, 2025

產品資訊

軟體

  • LabVIEW

問題敘述

我有同一個子VI的多個副本,我需要同時呼叫它們。我該怎樣才能做到這一點?

解決方案

當試著同時呼叫兩個子VI時,需要考慮兩個方面: reentrancy 以及 synchronization

預設情況下,電腦記憶體中任何時間僅會開啟子VI的一份副本。 LabVIEW 有兩種可供選擇的re-entrancy 選項: Shared Reentrancy ,一開始在記憶體中每個子 VI 僅有一個副本,但可在需要時添加額外的副本; Pre-allocated Reentrancy ,在啟動之前檢查程式碼中每個子VI的最大數量,並提前將這麼多的instances分配到記憶體。為了幫助您去確定哪個選項是最適合的應用程序,請查找Reentrancy help page中包含的對照表。 VI的 Reetrancy 設定可以在 Execution page of the VI Properties menu 中變更。


同步兩個(或更多)子VI的執行時,可以透過在Flat Sequence Structure 中放置所需數量的子VI副本並將其輸入以平行方式彼此連接來完成,如下所示:


使用任一可 reentrancy 執行的方法,此程式碼將同時執行VI 的兩個副本。透過在Flat Sequence Structure中平行連接每個子VI,並合併錯誤連線,可以根據需要去擴展同一子VI 的任意多個副本。所有這些都是透過擴展“Merge Errors”功能來實現的。