SlideShare a Scribd company logo
1 of 13
Download to read offline
LabVIEW NXG Training Course
Session7 - データ共有の手法
Yusuke Tochigi
NXG 5.0 Version
LabVIEW NXG Training Course 2
複数ループを停止する
LabVIEW NXG で制御器 / 表示器を作成した場合、ダイアグラムに作成される端子
は 1 つです。例えば下図のように、 1 つの停止制御器で 2 つのループを停止するにはど
うすればよいでしょう。
LabVIEW NXG Training Course 3
停止の失敗例
以下はよくある失敗例です。左図は上ループから下ループへトンネルを介してデータが渡
されています。上ループが停止しないとデータは外部に出力されないため、上ループが停
止してから、下ループが実行され、そして停止します。
右図はループの外側に制御器があります。 VI を実行すると一度だけ制御器の値が読
まれますが、それ以降は読み取られません。トンネルからは常に False が出力され、無
限ループに陥り停止するすべがありません。
LabVIEW NXG Training Course 4
複製端子の使用
VI 内の端子に複数個所からアクセスしたい場合、複製端子を使用します。
複製端子は端子を右クリックし、複製端子を作成から作成できます。
ラッチ型ブール制御器は複製端子を作成できません。
この場合、スイッチ型に変更します。
LabVIEW NXG Training Course 5
複製端子の読み書き
複製端子では、構成ペーンの動作表示で読み取りまたは書き込みを選択します。複製
端子は元のソースが制御器 / 表示器にかかわらず、読み書きができます。
以下の例では、停止ボタンの機械的動作はスイッチです。停止ボタンを押して VI が終
了しても、制御器は押されたままです。複製端子を使用して、両ループの停止後に制
御器を初期状態に戻します。シーケンスストラクチャを利用して、書き込みタイミングを明
示的に定義しています。
LabVIEW NXG Training Course 6
データの競合を避ける
Input 制御器の初期値が 0 であった場合、 result の値はどうなるでしょう。
もちろん、和と積の関数は並列で実行されるため、結果はわかりません。和が先に完了
して Input 制御器へ値を渡せば「 50 」になりますし、積が先であれば「 5 」になります。
複製端子は便利ではありますが、多用すると実行の度に演算結果が異なるバグを生じ
る原因となります。複製端子はどうしても配線ができないような場合でのみ使用するよ
うに留意します。また、読み取りは複数個所でも書き込みを一か所に限定することで、
競合を避けることができます。
LabVIEW NXG Training Course 7
異なる VI 間で共有する
ではこの例を異なる VI 間での話に拡大してみましょう。 A.gvi と B.gvi それぞれに
While ループが置かれています。 A.gvi に置かれた停止制御器で、両方のループを停
止することを考えます。どうやら A.gvi の複製端子を B.gvi へ移動またはコピーすること
はできないので、複製端子は使用できないようです。
LabVIEW NXG Training Course 8
タグの使用
このように異なる VI 間でデータを共有する方法として、タグを使います。タグは複数 VI
間で最新値データを共有します。
LabVIEW NXG Training Course 9
タグの作成
タグを作成するには、ナビゲーションペーンからプロジェクト上で右クリッ
クし、新規 》リソースコレクションを選択します。新規作成を選択するこ
とで、任意のデータタイプを持つタグを作成することができます。
LabVIEW NXG Training Course 10
タグの読み書き
タグを書き込むまたはタグを読み込む関数を使用して、作成したタグに対する読み書き
を行います。複製端子と同じように、可能な限り読み取りは複数個所でも書き込みを
一か所に限定することに留意します。
タグを使用すると、停止制御器はラッチ動作のまま、データを共有することができます。
LabVIEW NXG Training Course 11
動的なタグの作成
構成して生成関数と破棄関数を使用して、タグを動的に作成することができます。複製
端子の代わりにタグを使用することで、端子増加によるコードの複雑化を避け、読み書
きのタイミング制御を行うこともできます。
LabVIEW NXG Training Course 12
タグのタイムスタンプ
タグの作成時にタイムスタンプを有効にすることができます。例えば現在時間をデータと併
せて書き込むことで、読み取った際にいつ書き込まれたデータか確認ができます。
例えば以下のように、以前のタイムスタンプと比較することで、値の更新タイミングを監視
することもできます。
LabVIEW NXG Training Course 13
その他のデータ共有
LabVIEW NXG では複製端子、タグのほかに以下のようなデータ共有の方法を提供
します。これらは別のセッションにおいて紹介します。
●
キュー
●
ノーティファイア
●
UDP/TCP
●
ネットワークストリーム

More Related Content

More from Yusuke Tochigi

Session6 - LabVIEW NXG Training Course
Session6 - LabVIEW NXG Training CourseSession6 - LabVIEW NXG Training Course
Session6 - LabVIEW NXG Training CourseYusuke Tochigi
 
Session5 - LabVIEW NXG Training Course
Session5 - LabVIEW NXG Training CourseSession5 - LabVIEW NXG Training Course
Session5 - LabVIEW NXG Training CourseYusuke Tochigi
 
Session4 - LabVIEW NXG Training Cours
Session4 - LabVIEW NXG Training CoursSession4 - LabVIEW NXG Training Cours
Session4 - LabVIEW NXG Training CoursYusuke Tochigi
 
Session3 - LabVIEW NXG Training Course
Session3 - LabVIEW NXG Training CourseSession3 - LabVIEW NXG Training Course
Session3 - LabVIEW NXG Training CourseYusuke Tochigi
 
Session2 - LabVIEW NXG Training Course
Session2 - LabVIEW NXG Training CourseSession2 - LabVIEW NXG Training Course
Session2 - LabVIEW NXG Training CourseYusuke Tochigi
 
Session1 - LabVIEW NXG Training Course
Session1 - LabVIEW NXG Training CourseSession1 - LabVIEW NXG Training Course
Session1 - LabVIEW NXG Training CourseYusuke Tochigi
 
Intro - LabVIEW NXG Training Course
Intro - LabVIEW NXG Training CourseIntro - LabVIEW NXG Training Course
Intro - LabVIEW NXG Training CourseYusuke Tochigi
 
Automotive QMS IATF16949
Automotive QMS IATF16949Automotive QMS IATF16949
Automotive QMS IATF16949Yusuke Tochigi
 

More from Yusuke Tochigi (8)

Session6 - LabVIEW NXG Training Course
Session6 - LabVIEW NXG Training CourseSession6 - LabVIEW NXG Training Course
Session6 - LabVIEW NXG Training Course
 
Session5 - LabVIEW NXG Training Course
Session5 - LabVIEW NXG Training CourseSession5 - LabVIEW NXG Training Course
Session5 - LabVIEW NXG Training Course
 
Session4 - LabVIEW NXG Training Cours
Session4 - LabVIEW NXG Training CoursSession4 - LabVIEW NXG Training Cours
Session4 - LabVIEW NXG Training Cours
 
Session3 - LabVIEW NXG Training Course
Session3 - LabVIEW NXG Training CourseSession3 - LabVIEW NXG Training Course
Session3 - LabVIEW NXG Training Course
 
Session2 - LabVIEW NXG Training Course
Session2 - LabVIEW NXG Training CourseSession2 - LabVIEW NXG Training Course
Session2 - LabVIEW NXG Training Course
 
Session1 - LabVIEW NXG Training Course
Session1 - LabVIEW NXG Training CourseSession1 - LabVIEW NXG Training Course
Session1 - LabVIEW NXG Training Course
 
Intro - LabVIEW NXG Training Course
Intro - LabVIEW NXG Training CourseIntro - LabVIEW NXG Training Course
Intro - LabVIEW NXG Training Course
 
Automotive QMS IATF16949
Automotive QMS IATF16949Automotive QMS IATF16949
Automotive QMS IATF16949
 

Session7 - LabVIEW NXG Training Course

  • 1. LabVIEW NXG Training Course Session7 - データ共有の手法 Yusuke Tochigi NXG 5.0 Version
  • 2. LabVIEW NXG Training Course 2 複数ループを停止する LabVIEW NXG で制御器 / 表示器を作成した場合、ダイアグラムに作成される端子 は 1 つです。例えば下図のように、 1 つの停止制御器で 2 つのループを停止するにはど うすればよいでしょう。
  • 3. LabVIEW NXG Training Course 3 停止の失敗例 以下はよくある失敗例です。左図は上ループから下ループへトンネルを介してデータが渡 されています。上ループが停止しないとデータは外部に出力されないため、上ループが停 止してから、下ループが実行され、そして停止します。 右図はループの外側に制御器があります。 VI を実行すると一度だけ制御器の値が読 まれますが、それ以降は読み取られません。トンネルからは常に False が出力され、無 限ループに陥り停止するすべがありません。
  • 4. LabVIEW NXG Training Course 4 複製端子の使用 VI 内の端子に複数個所からアクセスしたい場合、複製端子を使用します。 複製端子は端子を右クリックし、複製端子を作成から作成できます。 ラッチ型ブール制御器は複製端子を作成できません。 この場合、スイッチ型に変更します。
  • 5. LabVIEW NXG Training Course 5 複製端子の読み書き 複製端子では、構成ペーンの動作表示で読み取りまたは書き込みを選択します。複製 端子は元のソースが制御器 / 表示器にかかわらず、読み書きができます。 以下の例では、停止ボタンの機械的動作はスイッチです。停止ボタンを押して VI が終 了しても、制御器は押されたままです。複製端子を使用して、両ループの停止後に制 御器を初期状態に戻します。シーケンスストラクチャを利用して、書き込みタイミングを明 示的に定義しています。
  • 6. LabVIEW NXG Training Course 6 データの競合を避ける Input 制御器の初期値が 0 であった場合、 result の値はどうなるでしょう。 もちろん、和と積の関数は並列で実行されるため、結果はわかりません。和が先に完了 して Input 制御器へ値を渡せば「 50 」になりますし、積が先であれば「 5 」になります。 複製端子は便利ではありますが、多用すると実行の度に演算結果が異なるバグを生じ る原因となります。複製端子はどうしても配線ができないような場合でのみ使用するよ うに留意します。また、読み取りは複数個所でも書き込みを一か所に限定することで、 競合を避けることができます。
  • 7. LabVIEW NXG Training Course 7 異なる VI 間で共有する ではこの例を異なる VI 間での話に拡大してみましょう。 A.gvi と B.gvi それぞれに While ループが置かれています。 A.gvi に置かれた停止制御器で、両方のループを停 止することを考えます。どうやら A.gvi の複製端子を B.gvi へ移動またはコピーすること はできないので、複製端子は使用できないようです。
  • 8. LabVIEW NXG Training Course 8 タグの使用 このように異なる VI 間でデータを共有する方法として、タグを使います。タグは複数 VI 間で最新値データを共有します。
  • 9. LabVIEW NXG Training Course 9 タグの作成 タグを作成するには、ナビゲーションペーンからプロジェクト上で右クリッ クし、新規 》リソースコレクションを選択します。新規作成を選択するこ とで、任意のデータタイプを持つタグを作成することができます。
  • 10. LabVIEW NXG Training Course 10 タグの読み書き タグを書き込むまたはタグを読み込む関数を使用して、作成したタグに対する読み書き を行います。複製端子と同じように、可能な限り読み取りは複数個所でも書き込みを 一か所に限定することに留意します。 タグを使用すると、停止制御器はラッチ動作のまま、データを共有することができます。
  • 11. LabVIEW NXG Training Course 11 動的なタグの作成 構成して生成関数と破棄関数を使用して、タグを動的に作成することができます。複製 端子の代わりにタグを使用することで、端子増加によるコードの複雑化を避け、読み書 きのタイミング制御を行うこともできます。
  • 12. LabVIEW NXG Training Course 12 タグのタイムスタンプ タグの作成時にタイムスタンプを有効にすることができます。例えば現在時間をデータと併 せて書き込むことで、読み取った際にいつ書き込まれたデータか確認ができます。 例えば以下のように、以前のタイムスタンプと比較することで、値の更新タイミングを監視 することもできます。
  • 13. LabVIEW NXG Training Course 13 その他のデータ共有 LabVIEW NXG では複製端子、タグのほかに以下のようなデータ共有の方法を提供 します。これらは別のセッションにおいて紹介します。 ● キュー ● ノーティファイア ● UDP/TCP ● ネットワークストリーム