シェア変数ノードを使用してシェア変数を読み書きする



LabVIEW 2018ヘルプ


発行年月: 2018年3月
製品番号: 371361R-0112
製品情報を参照

ダウンロード (Windowsのみ)


LabVIEW 2016ヘルプ
LabVIEW 2017ヘルプ
LabVIEW 2018ヘルプ
LabVIEW 2019ヘルプ
LabVIEW 2020ヘルプ

(Real-Time、Windows)シェア変数ノードは、対応するシェア変数を参照するブロックダイアグラムのオブジェクトです。シェア変数ノードを使用して、シェア変数の値の読み書きを行います。

メモ  
  • アプリケーションが多数のシェア変数にアクセスする場合は、シェア変数にプログラム的にアクセスすることにより、より簡潔で拡張性のあるブロックダイアグラムを作成します。
  • (Real-Time、Windows)シェア変数ノードを含むVIをプロジェクト内で開いた時に、そのノードに対応するシェア変数がプロジェクトエクスプローラウィンドウにないと、シェア変数ノードは破損します。見つからないシェア変数に関連付けられているフロントパネル制御器もすべて破損します。これはWindows特有の現象で、VIをプロジェクト内で開いた場合にのみ発生します。VIをメインアプリケーションインスタンスで開いた場合は、シェア変数が見つからないというメッセージはLabVIEWに表示されません。

ブロックダイアグラムにシェア変数ノードを追加する

シェア変数ノードは、次の方法でブロックダイアグラムに追加できます。

  • シェア変数をプロジェクトエクスプローラウィンドウから同じプロジェクト内のVIのブロックダイアグラムへドラッグします。
  • シェア変数パレットから、シェア変数ノードをブロックダイアグラムに追加します。続いて次の手順を実行して、プロジェクトエクスプローラ内にある対応するシェア変数にシェア変数ノードを参照します。
    1. シェア変数ノードをダブルクリックして、変数を参照ダイアログボックスを表示します。
    2. プロジェクト / ネットワークツリーリストにあるシェア変数を参照します。
    3. OKボタンをクリックします。
  • (Real-Time、FPGA、およびDSCモジュール)制御器、表示器、あるいは定数を右クリックし、ショートカットメニューからシェア変数ノードに変更を選択します。また、出力端子を右クリックする際、ショートカットメニューから作成→シェア変数ノードを選択することもできます。

シェア変数ノードをデータの読み取り / 書き込みに指定する

次の手順を実行して、プロジェクトエクスプローラウィンドウ内にある対応するシェア変数に対して、シェア変数ノードが読み取りまたは書き込みを実行するのかを指定します。

  1. シェア変数ノードを右クリックします。
  2. ショートカットメニューから次のオプションのいずれかを選択します。
    • シェア変数ノードを使用してシェア変数からデータを読み取るには、アクセスモード→読み取りを選択します。このオプションを選択すると、次の図のようにシェア変数ノードの右側に出力が表示されます。

    • シェア変数ノードを使用してシェア変数にデータを書き込むには、アクセスモード→書き込みを選択します。このオプションを選択すると、次の図のようにシェア変数ノードの左側に入力が表示されます。

      メモ  8キロバイト未満のデータのシェア変数に書き込む場合、LabVIEWによるネットワークでのデータ送信時間が最長10ミリ秒かかることがあります。この遅延を解消するには、「シェア変数データを排出」VIを使用して、シェア変数データを即時に送信します。

最後の読み込み以降にシェア変数の値が更新されたかを確認する

次の手順を実行し、シェア変数ノードのタイムスタンプ表示器を使用して最後の読み込み以降にシェア変数の値が更新されたかどうかを確認します。

メモ  
  • LabVIEWでは、デフォルトでネットワーク共有シェア変数に対してタイムスタンプが構成されます。単一プロセスのシェア変数のタイムスタンプ値を記録するには、まず最初にシェア変数プロパティダイアログボックスの変数ページにあるタイムスタンプを有効チェックボックスにチェックマークを付けます。
  • タイムスタンプに要する追加のメモリとCPUオーバーヘッドがアプリケーションの確定性に影響する可能性があるため、I/O変数ノードのタイムスタンプはデフォルトで無効になっています。I/O変数ノードのタイムスタンプは、必要な場合にのみ有効にしてください。
  1. シェア変数ノードを右クリックし、ショートカットメニューからタイムスタンプ→表示を選択します。シェア変数ノードの右側に、次の図のように赤い砂時計の形をしたタイムスタンプ出力が表示されます。

  2. タイムスタンプ出力を右クリックし、ショートカットメニューから作成→表示器を選択し、タイムスタンプデータを表示するフロントパネル表示器を作成します。

シェア変数ノードがタイムアウトしたかを確認する

次の手順を実行し、シェア変数ノードのタイムアウト時間を指定してシェア変数ノードがタイムアウトしたかどうかを確認します。

メモ  データを読み取るように構成されたシェア変数ノードにのみ、タイムアウト制御器を使用できます。
  1. シェア変数ノードを右クリックし、ショートカットメニューからタイムアウト→表示を選択します。
  2. 次の図の左側に青い時計として表されているミリ秒タイムアウト制御器を使用して、タイムアウトをミリ秒単位で指定します。次の図の右側に赤い時計として表されているタイムアウト?表示器を使用し、シェア変数ノードが指定された時間内に新しいデータを読み取ったか、タイムアウトしたかを確認します。

他のターゲットに移動した場合にシェア変数ノードが壊れるかどうかを指定する

(Real-Time、Windows)シェア変数ノードがどのようにシェア変数に接続されるかを指定するには、ノードを絶対またはターゲット相対に設定します。

絶対シェア変数ノードは常にシェア変数を作成したターゲットにあるシェア変数に接続されます。シェア変数ノードはデフォルトで絶対シェア変数ノードです。絶対シェア変数ノードを含むVIを新規ターゲットで開いた場合、ノードがシェア変数が作成されたターゲット上のシェア変数に接続しようとするため、VIは壊れます。絶対シェア変数ノードは、VIおよび変数を他のターゲットに移動する予定がない場合に使用します。

ターゲット相対シェア変数ノードは、そのシェア変数ノードを含むVIを実行するターゲット上のシェア変数に常に接続されます。ターゲット相対シェア変数ノードはローカルホスト上のシェア変数のみに接続できるため、ターゲット相対シェア変数ノードを含むVIを新規ターゲットに移動した場合は、シェア変数も必ず新規ターゲットに移動する必要があります。ターゲット相対シェア変数ノードは、ローカルホスト上のシェア変数にアクセスしており、VIおよび変数を他のターゲットに移動する予定がある場合に使用します。

メモ  (Real-Timeモジュール) ターゲット相対シェア変数ノードを使用して時間トリガシェア変数にアクセスすることはできません。

絶対シェア変数ノードをターゲット相対に変更するには、ブロックダイアグラムでシェア変数ノードを右クリックし、ショートカットメニューからリファレンスモード→ターゲット相対を選択します。ターゲット相対シェア変数ノードは、ノード上で.\グリフと表示されます。以下の画像はターゲット相対シェア変数ノードを示します。

ターゲット相対シェア変数ノードを絶対に変更するには、シェア変数ノードを右クリックし、ショートカットメニューからリファレンスモード→絶対を選択します。以下の画像は絶対シェア変数ノードを示します。

「データ通信方法」ホーム



この記事は役に立ちましたか。

役に立たなかった