VIを動的にロードして呼び出す
- 更新日2025-04-04
- 3分で読める
静的にリンクされたサブVIを使用せずに、動的にVIを呼び出すことができます。静的にリンクされたサブVIは発呼者VIのブロックダイアグラム上に直接配置するものです。このサブVIは発呼者VIと同時にロードされます。
静的にリンクされたサブVIとは異なり、動的にロードされたVIは、発呼者VIが「VIリファレンスを開く」でVIをロードするまで、ロードされません。VIは発呼者VIで必要になるまでロードされないので、発呼者VIが大きい場合、VIを動的にロードすることによってロード時の時間とメモリを節約でき、さらに操作が終了するとVIをメモリから解放できます。また、VI呼び出し構成ダイアログボックスを使用して、サブVIをいつロードするか構成することもできます。
リファレンス呼び出しノードとタイプ指定VI Refnum
リファレンス呼び出しノードまたは非同期呼び出しを開始ノードを使用してVIを動的に呼び出します。どちらのノードも、リファレンス入力が指定したサブVIの呼び出しを開始します。しかし、非同期呼び出しを開始ノードは、呼び出しVI内でデータフローが継続する間も、非同期でサブVIを呼び出します。
リファレンス呼び出しノードにはタイプ指定VI Refnumが必要です。タイプ指定されたVIリファレンスは、呼び出し中のVIとそのコネクタペーンの両方を識別します。タイプ指定VI Refnumは、VIへの永久的な関連を確立したり、VIの名前や位置などの他のVI情報を含むわけではありません。リファレンス呼び出しノードの入力と出力は、他のVIに配線する場合と同じように配線できます。
以下のブロックダイアグラムは、リファレンス呼び出しノードを使用して「周波数応答」VIを動的に呼び出す方法を示しています。リファレンス呼び出しノードには「VIリファレンスを開く」関数と「リファレンスを閉じる」関数を使用する必要があります。これは、プロパティノードやインボークノードを使用する場合と似ています。
タイプ指定Refnumとして指定されたVIは、コネクタペーン情報のみを提供します。したがって、RefnumとVIの間には固定的な関連付けが確立されません。特に、VIコネクタペーンの選択と、選択したVIに対するRefnumの取得を混同しないようにしてください。「VIリファレンスを開く」関数のVIパス入力を使用して、特定のVIを指定します。