別のVIを動的にロードしてメインVIと並列に実行する

更新しました Nov 6, 2023

使用製品

ソフトウェア

  • LabVIEW Base
  • LabVIEW Full
  • LabVIEW Professional

問題

リファレンス呼び出しノードを使用して、メインVIからポップアップVIを動的にロードして実行しています。ポップアップVIが実行されている間、メインVIは並行して実行されず、リファレンス呼び出しノードに依存しているように見えます。実行をブロックすることなく、他のVIをメインVIと並列に動的にロードして実行するにはどうすればよいですか?

解決策

リファレンス呼び出しノードを使用してVIを実行すると、そのVIは独自の実行では実行されません。 メインVIはリファレンス呼び出しノードに依存し、並行して実行されません。

 

LabVIEW 2011以降:

LabVIEW 2011以降では、非同期呼び出しを開始ノードと非同期呼び出しを待機ノードを使用して、メインVIと並行してサブVIを簡単に実行できます。その他の詳細と例については、VIを非同期で呼び出すを参照してください。


 

LabVIEW 2010以前:

LabVIEW 2010以前では、2つ目のVIをメインVIと並行して動的にロードして実行するには、Runインボークノードを使用してVIを呼び出す必要があります。以下にリンクされているコミュニティのサンプルに示すように、このVIのデータ依存性を排除するには、Wait until doneオプションをFALSEに設定する必要があります。呼び出されたVIのフロントパネルを表示する場合は、Front Panel Openプロパティノードを使用します。これにより、ポップアップVIが実行された後でもメインVIが並列実行され続けます。

制御値を設定および制御値を取得メソッドを使用して、メインVIとポップアップVI間でデータを前後に渡すこともできます。

関連リンクにあるコミュニティのサンプルでは、インボーグノード、メソッド、およびプロパティノードを使用して、並列にサブVIを呼び出して実行する方法を示しています。