株式会社テクトス

値の変化を調べる [ Check Change ]

繰返しループの中で値が変化していないか調べる場合があります。

通常はシフトレジスタで前回の値を次の回に送り、比較をします。

しかし、数が増えるとシフトレジスタも増えてしまい場所を取ります。

たくさんの値の変化を調べるためのサブVIを作りました。

○使い方

1つのサブVIで4つまでの値を調べることが出来ます。

調べたい値を"Value 1"から"Value 4"までに接続します。

実行すると、"V1 Change?"から"V4 Change?"に、各値が変化したかの結果を出力します。

さらに多くの値を調べたい場合には、"ChangeList"を使用します。

複数のCheckChange.viを配置したら、一個目のVIの"ChangeListOut"から、二個目のVIの"ChangeListIn"にワイヤをつなぎます。

すると、前のVIでの結果を配列にして次に伝え、受け取った配列に新たな結果を追加して次に送ります。

そして、何個目の値に変化が有ったかを"Position"から数値で出力します。

変化が無かった時な"Position"の値は"-1"です。

サンプルプログラム VI"CheckChange.vi"(LabVIEW ver. 8.6版)ダウンロード

コネクタ画像

フロントパネル画像

○仕組み

値は全てバリアントで受け取り、機能的グローバル変数の仕組みでシフトレジスタに記憶します。

前回の値と比較して、値が変化したかを表示します。

VIが最初に呼び出された時は、判断をしません。

ブロックダイアグラム画像1

ブロックダイアグラム画像2

テストプログラム VI"CheckChangeTest.vi"(LabVIEW ver. 8.6版)ダウンロード

テスト用VIも作りましたのでご利用ください。