サンプルコードとドキュメント

同一VIの非同期複数呼び出し

製品と環境

このセクションは、サンプルの作成に使用された製品およびOSを反映します。

以下に示された製品を含め、NIのソフトウェアをダウンロードするには、ni.com/downloadsをご覧ください。

    ソフトウェア

  • LabVIEW

コードとドキュメント

添付

すべてをダウンロード

Description

概要

単一VIを非同期で複数呼び出します。

 

詳細

単一VIを複数、非同期で呼び出す必要がある場合もあります。

このとき呼び出されるVIはもちろん再入実行可能になっている必要があります。

呼び出す側のVIは呼び出しのために"VIリファレンスを開く"関数を使用しますが、 オプションとして"x100"と"x40"を使用することで、

再入可能VIの同時呼び出しを有効とし、且つ"非同期呼び出しを待機"関数で呼び出されたVIが終了されるまで待機させることができます。

どのような作りとなるか見てみましょう。

 

Async.png

 

まず"VIリファレンスを開く"関数で、"x40"と"x100"のオプションを使用して、VIへのリファレンスを開いています。

"New Button"が押されると"非同期呼び出しを開始"関数が呼び出され、呼び出すVIを開いて実行します。

Forループの中では、各インスタンスが終了されるまでメインVIの実行を待機するような作りをしています。

ではこのVIを実行して、"New Button"を押してみます。

 

Result.PNG

 

上記のように、一つのVIが複数呼び出され、それぞれ個別に実行されていることがわかります。

 

本サンプルについては下記LabVIEWヘルプにも記載がありますのでご覧ください。

複数のVIインスタンスを非同期で呼び出して並列実行する - LabVIEW ヘルプ - National Instruments

 

 

実装・実行方法

1. 2つのVIをダウンロードし、Main_Call_VIs.viを開きます。

2. ファイルパスにCalled.viを指定します。

3. VIを実行し、ボタンを押すとCalled.viが呼び出されます。

 

必要なもの

ソフトウェア

LabVIEW 2014以降

NIコミュニティのサンプルコード交換のサンプルコードは、MIT Licenseによりライセンス供与されています。