以下に示された製品を含め、NIのソフトウェアをダウンロードするには、ni.com/downloadsをご覧ください。
概要
複数の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
RT側VI
EXE実行時のイメージ
※注意点
ホスト側でシェア変数を選択する際、
参照 >> ni.var.psp:
を選択して、シェア変数を選んでください。下記のようにグレーアウトしているものもありますが、問題はありません。
Description-Separate-2
NIコミュニティのサンプルコード交換のサンプルコードは、MIT Licenseによりライセンス供与されています。