シェア変数 (ノード)



LabVIEW 2018ヘルプ


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

ダウンロード (Windowsのみ)


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

1つ上のパレット: シェア変数ノード、VI、および関数

インストールパッケージ: ベース開発システム (Real-Time, Windows)

シェア変数をブロックダイアグラムに表示します。 シェア変数ノードをアクティブプロジェクトからシェア変数にバインドするには、ブロックダイアグラム上にシェア変数ノードを追加し、そのシェア変数ノードをダブルクリックまたは右クリックして、ショートカットメニューから変数を選択→参照を選択し、参照ボタンをクリックして変数を参照ダイアログボックスを表示します。 プロジェクトエクスプローラウィンドウからシェア変数を、同じプロジェクト内のVIのブロックダイアグラムへドラッグして、シェア変数ノードを作成することもできます。

メモ  シェア変数ノードがI/Oチャンネルにバインドされている場合、シェア変数ノードの動作は異なります。 I/O変数の詳細は、「I/O変数を使用する」トピックを参照してください。

詳細  

変数はシェア変数ノードに書き込む値を指定します。 シェア変数ノードがデータを書き込むように構成されている場合は、値をこの入力に書き込む必要があります。この書き込みが行われないと、VIが壊れてしまいます。 この入力は、シェア変数ノードがデータを書き込むように構成されている場合にのみ、使用可能です。
ミリ秒タイムアウトは、データを読み取るシェア変数ノードのタイムアウトの時間をミリ秒単位で指定します。 シェア変数は更新されたデータを指定した時間だけ待機し、タイムアウト?表示器は、シェア変数が指定された時間周期で更新されたデータを受信したか、またはタイムアウトしたかを返します。 更新されたデータは、アクティブプロジェクトで単にシェア変数との有効な接続を確認する新規の値または既存の値を表示できます。 シェア変数ノードにミリ秒タイムアウト入力を追加するには、シェア変数ノードを右クリックして、ショートカットメニューからタイムスタンプを表示を選択します。 データ読み取り用に構成されたシェア変数ノードのタイムアウト期間だけを有効にできます。 ローカルでI/O変数にアクセスするノードのタイムアウト期間は有効にできません。
エラー入力は、このノードを実行する前に発生したエラーの状態を示します。 この入力は、標準エラー入力として機能します。
変数は、シェア変数ノードが表すシェア変数の現在の値を指定します。 この出力は、シェア変数ノードがデータを読み取るように構成されている場合にのみ、使用可能です。 シェア変数ノードがタイムアウトする場合、変数はノードで最後に読み取られた値を返します。 ノードがデータを読み取る前にタイムアウトする、またはデータタイプに互換性がない場合は、データは0、空、または同等の値を返します。
タイムアウト?は、シェア変数ノードが指定されたタイムアウト期間内に新しいデータを読み取ったか、タイムアウトになったかを示します。 シェア変数ノードにタイムアウト?出力を追加するには、シェア変数ノードを右クリックして、ショートカットメニューからタイムスタンプを表示を選択します。 データ読み取り用に構成されたシェア変数ノードのタイムアウト期間だけを有効にできます。 ローカルでI/O変数にアクセスするノードのタイムアウト期間は有効にできません。 タイムアウトになると、シェア変数ノードは最後に変数に書き込まれた値を返し、エラーは返しません。
タイムスタンプは、シェア変数のタイムスタンプデータを表示します。 シェア変数ノードの単一プロセスのシェア変数またはI/O変数にタイムスタンプ出力を追加するには、まずシェア変数プロパティダイアログボックスの変数ページにあるタイムスタンプ有効チェックボックスをオンにし、次にシェア変数ノードを右クリックしてショートカットメニューからタイムスタンプを表示を選択します。 データを読み取るように構成されたシェア変数ノードでのみ、この出力を使用できます。
エラー出力には、エラー情報が含まれます。 この出力は、標準エラー出力として機能します。

シェア変数の詳細

プロジェクトエクスプローラからシェア変数をブロックダイアグラムにドラッグするか、またはシェア変数ノードをブロックダイアグラムに配置する場合は、LabVIEWはデータを読み取るようにシェア変数ノードを構成します。 データを書き込むようにシェア変数ノードを構成するには、シェア変数ノードを右クリックしてショートカットメニューから書き込みに変更を選択します。

メモ  シェア変数は、Windows、RTターゲット、および特定のPDAターゲットのみで作成、構成、ホストできます。 DataSocket VIおよび関数を使用すると、他のプラットフォームからシェア変数の読み書きを行えます。

シェア変数ノードがどのようにシェア変数に接続されるかを指定するには、ノードを絶対またはターゲット相対に設定します。 絶対シェア変数ノードは常にシェア変数を作成したターゲットにあるシェア変数に接続されます。 ターゲット相対シェア変数ノードは常にシェア変数ノードを含むVIを実行するターゲット上のシェア変数に接続されます。 シェア変数ノードを絶対的な状態からターゲットに対して相対的になるように変更するには、シェア変数ノードを右クリックし、ショートカットメニューからリファレンスモード→ターゲット相対に変更を選択します。 ターゲット相対シェア変数ノードを絶対に変更するには、シェア変数ノードを右クリックし、ショートカットメニューからリファレンスモード→絶対を選択します。

メモ  シェア変数ノードを含むVIをプロジェクト内で開いた時、関連付けられたシェア変数がプロジェクトエクスプローラウィンドウ内で見つからないと、そのシェア変数ノードは破損します。 見つからないシェア変数に関連付けられているフロントパネル制御器もすべて破損します。

(Windows) この動作はWindows特有の現象で、プロジェクト内のVIを開いた場合にのみ発生します。 VIをメインアプリケーションインスタンスで開いた場合は、シェア変数が見つからないというメッセージが表示されません。

VIのネットワークで共有されたシェア変数ノードは、.aliasesファイルを使用して、シェア変数がデプロイされるプロジェクトの演算デバイスのIPアドレスを決定します。 LabVIEWプロジェクト内のVIを実行すると、そのVIはプロジェクトの.aliasesファイルを検索してエイリアスを解決するために使用します。 プロジェクトは、各演算デバイスのエントリを.aliasesファイルに保存し、それらのデバイスのIPアドレスが変更されるたびにファイルのエントリを更新します。 VIがメインアプリケーションインスタンスで実行される場合は、LabVIEW.exeと同じディレクトリにあるLabVIEW.aliasesファイルを使用してエイリアスを検索します。 このファイルは、プロジェクトの.aliasesファイルと異なり、自動的に更新されません。 シェア変数を使用するアプリケーションを構築する際は、ビルド仕様に.aliasesファイルが追加されていることを確認してください。

したがって、手動でIPアドレスを.aliasesファイルに追加する必要があります。 エイリアスが見つからない場合、シェア変数ノードは最新の既知のIPアドレスを使用します。 シェア変数が最新の既知のIPアドレスにデプロイされなくなった場合は、シェア変数ノードによってエラーが返されます。

8キロバイト未満のデータを含むシェア変数をパブリッシュする場合、LabVIEWがネットワークでデータを送信するのに最大10ミリ秒かかる場合があります。 「シェア変数データを排出」VIを使用すると、バッファを即座にフラッシュし、この遅延を解消できます。

メモ  シェア変数ノードを右クリックし、ショートカットメニューからプログラム的アクセスに置換を選択してプログラム的アクセスに変換できます。 プログラム的シェア変数アクセスを使用することで、簡潔で拡張性のあるブロックダイアグラムを作成できます。


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

役に立たなかった