シェア変数を使用して2台のコンピュータ間で通信するには?

更新しました May 20, 2024

環境

ハードウェア

  • CompactRIO Controller

ソフトウェア

  • LabVIEW

シェア変数を使用して、ネットワークに接続された2台のWindowsコンピュータ間でデータをやりとりしたいです これを行うには、どうすればよいですか?

1台のコンピュータを選択してサーバとして動作させ、変数をホストする必要がありますが、もう一方のコンピュータはクライアントになる必要があります。 次に下記の手順を行い、サーバとクライアントのコンピュータ(マシン)をセットアップします。

 

サーバマシン:

  1. LabVIEWプロジェクトを作成してマイコンピュータを右クリックし、新規>>変数を選択して変数を追加します。変数タイプがネットワークを共有に設定されていることを確認します。


 
  1. 新しいLabVIEW VIを作成し、LabVIEWシェア変数を使用するで説明されているように、ネットワーク共有シェア変数を使用して、書き込みまたは読み取ります。
     
サーバ側のコードは、下記のようになります。


 

クライアントマシン:

新しいLabVIEWプロジェクトを作成し、新しいVIを追加し、シェア変数APIの関数を使用して、リモートサーバでホストされているシェア変数と通信します。シェア変数APIは、データ通信の関数パレットにあります。
 
  1. 文字列変数またはシェア変数Refnum定数または制御器で変数を開く関数を使用して、ネットワーク共有シェア変数URLをni.var.psp://<マシン名またはIPアドレス>/<library>/<variable>として指定します。シェア変数Refnum定数または制御器は、シェア変数API関数のシェア変数Refnum入力を右クリックして、作成>>定数または制御器を選択することで作成できます。
  2. 変数を書き込みまたは変数を読み取りを使用して、必要に応じて変数の書き込みや読み取りを行います。
  3. ネットワーク共有シェア変数への参照を閉じるには、変数を閉じる関数を使用します。

クライアント側のコードは下記のようになります。

Additional Information

LabVIEW 2009以降で使用可能なシェア変数APIは、Windowsシステム間の通信に推奨される方法です。ただし、ネットワーク共有シェア変数をフロントパネルオブジェクトにバインドする代わりの方法があり、バインドされた変数に変更があった場合に制御器や表示器が自動的に更新されます。フロントパネルオブジェクトの機能が不明瞭になるため、データバインド方法は推奨されません。制御器や表示器がワイヤから値を取得していないため、コードの可読性が低下します。

追加情報については、関連リンクおよびサンプルプログラム(Shared Variable.lvproj)を参照してください。このサンプルを見つけるには、LabVIEWを起動して、ヘルプ>>サンプルを検索...をクリックしてサンプルファインダを開き、ロードしたら参照タブを選択してネットワーク>>シェア変数を展開します。