LV8.6 において、Windows上の EXE と Real Time OS上の RT EXE 同士でどのようにしてシェア変数で通信を行えばよいのでしょう



使用ソフトウェア:
使用ソフトウェア・バージョン: 1.0
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: LabVIEW Modules>>LabVIEW Real-Time Module

問題:
LV8.6 で開発した、Windows 上で実装する EXE と、RT OS 上でスタンドアロンで実装する RT EXE 間の通信をシェア変数を用いて行います。
どのように構成を行えばよいのでしょう。

解決策:
まず、LabVIEW8.6.1 をご利用の方は以下のリンクよりシェア変数の不具合を修正します。

LabVIEW8.6.1を使用すると、複数PC間でデータ通信するためのシェア変数による通信が行えない


手順1:
プロジェクト上でシェア変数を構成します。
この際、RT OS は半角英数のみサポートしています。
シェア変数名およびライブラリ名を半角英数で保存します。
シェア変数をデプロイする際にライブラリ名などがパスに含まれるため、全角表記の場合文字化けが発生し通信を行うことができません。

 

手順2:
Windows Host VI を作成します。

手順3:
RT Target VI を作成します。
RT EXE はヘッドレスで動作をさせるため、不必要なユーザインターフェイスが存在しないようリファクタを行いましょう。
また、LabVIEW がインストールされている開発環境での VI 間通信の際はシェア変数のデプロイをLabVIEW が行いますが、EXE の場合プログラム的にデプロイを行う必要があります。
VI サーバリファレンスとインボークノードを使用しシェア変数が含まれるライブラリをデプロイします。

インボークノードで指定するライブラリのパスは、以下のように指定します。

c:\ni-rt\startup\data\<ライブラリ名>

手順4:
Windows 上で実装する VI をビルド仕様よりアプリケーション(EXE)をビルドします。

手順5:
Real Time OS 上で実装するVIをビルドします。
ビルド仕様より Real Time Apprication を作成します。
カテゴリの Source Files より、ライブラリを"常に含む"に選択します。

カテゴリの Destinations より、出力先のサポートディレクトリが c:\ni-rt\startup\data になっていることを確認します。

 

カテゴリのSource File Settings より、ライブラリの出力先をプルダウンより"サポートディレクトリ"を選択します。

 

ビルド後、プロジェクトより"Run as startup"を選択します。再起動を要求されるので、Yes を選択します。


ftp より、ftp://<IPアドレス>/ni-rt/startup/  に rtexe および data フォルダが作成されていることを確認します。
合わせて、data フォルダ内にライブラリが配置されていることを確認します。

手順6:
RT を再起動後、Windows 上でアプリケーション(EXE)を実行します。



関連リンク:

KnowledgeBase 4VPMGCFF: LabVIEW8.6.1を使用すると、複数PC間でデータ通信するためのシェア変数による通信が行えない
KnowledgeBase 48O0KF8V: シェア変数を使ったVIを実行ファイルとして配布する方法

 



添付:
File.zip




報告日時: 07/24/2009
最終更新日: 10/07/2009
ドキュメントID: 4ZN05KIS