シェア変数を使ったVIを実行ファイルとして配布する方法



使用ソフトウェア:
使用ソフトウェア・バージョン: 8.0
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: LabVIEW Development Systems>>LabVIEW Full Development System

問題:
シェア変数を使ったVIを作成し、配布しようと思います。
ビルドした実行ファイル(.EXEファイル)を開発環境で動かした場合は正常に動作しますが、他のPCにコピーしたり、インストーラを作ってインストールしたりて実行しても、エラー -1950679022 や エラー -1950679035の ”シェア変数がみつかりません”というエラーが出て、シェア変数が正しく使えません。開発環境を接続して、プログラムを動作させた後だと、動作したりします。変数マネージャで見ると、開発環境のシェア変数にアクセスしているようです。どのようにしたら、シェア変数を使ったVIの実行ファイルをスタンドアローンで正しく動作させることができますか?

解決策:
シェア変数を使ったVIを実行ファイルにして配布する場合、以下の注意点があります。


上記の点を考慮し、実行ファイルのビルドと配布を行う必要があります。
以下にその手順を示します。 添付のサンプルは上記手順で作成したサンプルプロジェクトです。(LabVIEW 8.2で作成しました)
Write.exeが、実行環境で自分自身のシェア変数エンジンに対して、自分の存在するフォルダにあるdataフォルダの中の SharedVariable.lvlibのシェア変数を配置します。配置されたVariable1というシェア変数に、乱数を書き込みます。
Read.exeは、Write.exeが書き込んだVariable1というシェア変数からデータを読み取りチャートに表示します。
エイリアスファイルに関してですが、デフォルトでは、上述したように開発環境を参照してしまうエイリアスファイルが 作成されてしまうので、デフォルトで作成されたWrite.aliases、および、Read.aliasesを自分自身を参照するように修 正して、プロジェクトに登録しています。インストーラのビルド仕様で、インストーラを作成する際に、この二つのファイルをインストーラに含むようにして、インストーラから自分自身を参照するように修正したエイリアスファイルをインストールするようにしています。

リアルタイムOS(RT-OS)を利用する場合や、ネットワークを使って、複数のPCでシェア変数エンジンを使う場合も手順は同様になりますが、どこでシェア変数を動作させるのか、その際に、実行ファイルのシェア変数ノードがどこのシェア変数エンジンを参照しにいくのかを十分考慮するようにしてください。

関連リンク:
技術サポートデータベース 43T1S7BE: Error -1950679022 Occurs When Attempting to use Shared Variables
技術サポートデータベース 3UCBHM8T: How Do I Deploy Network Shared Variables From a Compiled Executable?
技術サポートデータベース 48N2RE8V: エイリアスファイル(.aliases)について
NI-PSP Networking Technology

添付:
ShareVariables.zip





報告日時: 04/25/2007
最終更新日: 11/25/2009
ドキュメントID: 48O0KF8V