デプロイされたシェア変数のリファレンスを自動取得し、バインド先を動的に変更する方法



使用ソフトウェア:
使用ソフトウェア・バージョン: 1.0
使用ソフトウェア・バージョンに特化:
二次のソフトウェア: LabVIEW Modules>>LabVIEW DSC Module

問題: デプロイされたシェア変数が複数ある場合、それらのリファレンスを自動的に取得し、さらにバインド先を動的に変更することはできますか。

解決策:

このような処理を行う場合、LabVIEWデータロギング/監視制御モジュール(LabVIEW Datalogging and Supervisory Control(DSC))が必要になります。
当該アドオンモジュールを用いた処理の手順は、下記のようになります。

1. プロパティノードをブロックダイアグラム上に置きます。
(プログラミング >> アプリケーション制御 >> プロパティノード)

2. プロパティノードを右クリックして、"クラスを選択" >> "SharedVariable" >> "SharedVariableIO"のようにプロパティノードのクラスを変更します。

3. デフォルトのプロパティを"Network" >> "URL"と変更します。

4. バインド先となるURLを文字列定数で入力し、プロパティノードに入力します。
URLのフォーマットは、"\\コンピュータ名(またはIPアドレス)\シェア変数ライブラリ\シェア変数名"となります。

5. プロパティノードに入力を一つ追加して、"Network" >> "Use Binding"を選択します。

6. "Use Binding"の入力に、True定数を接続します。

7. プロパティノードのリファレンス入力に、シェア変数定数を接続します。
接続方法は、
a. プロパティノードのリファレンス入力上で右クリック、"作成" >> "定数"とする。
b. 関数パレットの"DSC Module" >> "Engine Control" >> "IO Primitive"から"Shared Variable Constant"を選択する。
の2通りがあります。

8. シェア変数定数をクリックして、バインド先を変更したいシェア変数のリストから選択します。

9. ライブラリの中に複数のシェア変数がある場合、複数のシェア変数のリファレンスを取得することもできます。
その際に使用する関数は、"Get Shared Variable List VI"であり、"DSC Module" >> "Engine Control" >> "Get Shared Variable List"にあります。この関数の出力として、現在作業中のPCにデプロイされたシェア変数のリファレンスの配列が得られるため、自動指標付けが有効になったforループ内で、各々のシェア変数に対してプロパティが変更可能になります。


なお、本ページ末尾に、当該アドオンモジュールを使用したサンプルプログラムを添付しました。
プログラムの詳細は、ブロックダイアグラムのコメントをご参照ください。なお、本サンプルはLabVIEW8.6で作成しております。

 



関連リンク:

LabVIEW Datalogging and Supervisory Control Module 8.6 - Windows 2000/Vista x64/Vista x86/XP/XP x64

NI LabVIEWデータロギング/監視制御モジュール

KnowledgeBase 3V9HMG7U: How do I Programmatically Change the Data Binding Source for Shared Variables?



添付:

ShareVariable(Read).zip

ShareVariable(Write).zip






報告日時: 12/18/2008
最終更新日: 03/29/2009
ドキュメントID: 4SH2RU4Q