インボーグノードによるVIを呼び出しとリファレンス呼び出しノードによるVI呼び出しの違い

更新しました Aug 28, 2023

使用製品

ソフトウェア

  • LabVIEW Full
  • LabVIEW Base
  • LabVIEW Professional

問題

インボーグノードによるVIを呼び出しとリファレンス呼び出しノードによるVI呼び出しの違いは何ですか?

解決策

インボーグノードによるVIを呼び出しとリファレンス呼び出しノードによるVI呼び出しの主な違いは、プログラミングの容易さとアーキテクチャの柔軟性です。リファレンス呼び出しノードによるVI呼び出しを使用する場合は、厳密にタイプ定義されたVIリファレンスを配線する必要があります。厳密にタイプ定義されたVIリファレンスには、VIへの参照と同様にデータタイプ情報を持つコネクタペインが含まれます。リファレンス呼び出しノードを使用する場合、LabVIEWはノードの下にコネクタペインを作成します。リファレンス呼び出しノードを使用すると、簡単な配線の利便性を保ちながらVIを動的に読み取ることができます。
 


インボーグノードを使用する場合、厳密にタイプ指定されたリファレンスを使用する必要はありません。そのため、任意のVIをインボーグノードに渡して実行することができます。インボークノードを使用すると、同じコネクタペインを持たないVIを呼び出すことができるため、柔軟性が向上します。これは、フロントパネルを開いてVIを実行するだけの簡単な方法です。ただし、値を渡す場合は、制御器とそのデータタイプ名を知る必要があり、追加のプログラミングが必要です。インボーグノードの手法は、任意のVIパスをこの設定に渡すことができ、そのVIを開いてロードすることができるので、より柔軟になります。
 


インボーグノードを使用してVIをリファレンスで呼び出すもう1つの利点は、VIと対話できることです。 インボーグノードの手法を使用すると、VIを制御する必要がある場合、または出力を複数回読み取る必要がある場合にVIと対話できます。リファレンス呼び出しノードを使用すると、VIが実行を終了したときにコネクタペインに値が出力されますが、実行中のVIと対話する機能は提供されません。
 

追加情報

ターゲットVIを非同期で呼び出す場合は、[参照で呼び出す]ノードの代わりに[非同期呼び出しの開始]ノードを使用します。これにより、ターゲットVIを別のスレッドで実行することができます。

呼び出しノードメソッドを使用すると、ターゲットVIがUIスレッド内で実行される可能性があります。呼び出したVIが実行されている間に呼び出しVIが適切に実行されるようにするには、いくつかの問題が発生する可能性があります。これは、Wait Until Done端末にFalse定数が配線されている場合でも発生します。別のスレッドで完全な非同期呼び出しを行うには、 [ファイル]»[VIプロパティ ]を選択し、ダイアログボックスで[ 実行 ]を選択し、 ユーザインタフェースと異なる実行システムまたは呼び出し元と同じ実行システムを選択して、ターゲットVIの変更を使用する必要があります