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

複数ターゲットからのシェア変数をマルチEXEで受け取る

製品と環境

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

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

    ソフトウェア

  • LabVIEW

コードとドキュメント

添付

すべてをダウンロード

Description

概要

複数のRTターゲットから送信されるシェア変数を、一つのVIからマルチEXEを立ち上げ、

個々のEXEで受け取ります。

 

詳細

複数のRTターゲットがあり、すべてのターゲット上で同じrtexeが実行されているとします。

データの送信には、ネットワーク共有型のシェア変数を使用します。

このデータを、ホスト側で1つVIを作成し、ビルドしたEXEで受け取ります。

EXEは複数インスタンスを作成し、複数起動することが可能のため、同じEXEを同時に複数起動します。

 

この機能をホスト側で「変数接続を開く」などの関数を用いることで実装します。

つまり、ホスト側で作成する要素としては、ホストVIを1つ、RT側では1つのRT VIを作成すればよいことになり、

個々のターゲットに対してそれぞれVIを準備する必要はなくなります。

 

実装・実行方法

1. プロジェクトを開き、cRIOターゲットを構成します。

2. RTexeをビルドし、スタートアップとして実行します。

3. cRIOターゲットを変更し、RTexeをビルドして実行します。

4. ホストVIをビルドし、EXEを作成します。

5. EXEを一度実行し、問題なく動作することを確認します。

6. EXEのiniファイルをこちらを参考に編集し、マルチインスタンスを可能にします。

7. EXEを実行されているRTターゲット分、開いて実行します。

 

必要なもの

ソフトウェア

・LabVIEW 2012以降

・LabVIEW Real-Time Module

・Applicatoin Builder

 

ハードウェア

・cRIO-9004などのRTターゲット

 

 

ホスト側VI

HOST.png

 

RT側VI

RT.png

 

EXE実行時のイメージ

EXE.png

 

※注意点

ホスト側でシェア変数を選択する際、

参照 >> ni.var.psp:

を選択して、シェア変数を選んでください。下記のようにグレーアウトしているものもありますが、問題はありません。

 

EXE.png

 

 

 

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