繰返しループの中で値が変化していないか調べる場合があります。
通常はシフトレジスタで前回の値を次の回に送り、比較をします。
しかし、数が増えるとシフトレジスタも増えてしまい場所を取ります。
たくさんの値の変化を調べるためのサブVIを作りました。
1つのサブVIで4つまでの値を調べることが出来ます。
調べたい値を"Value 1"から"Value 4"までに接続します。
実行すると、"V1 Change?"から"V4 Change?"に、各値が変化したかの結果を出力します。
さらに多くの値を調べたい場合には、"ChangeList"を使用します。
複数のCheckChange.viを配置したら、一個目のVIの"ChangeListOut"から、二個目のVIの"ChangeListIn"にワイヤをつなぎます。
すると、前のVIでの結果を配列にして次に伝え、受け取った配列に新たな結果を追加して次に送ります。
そして、何個目の値に変化が有ったかを"Position"から数値で出力します。
変化が無かった時な"Position"の値は"-1"です。
値は全てバリアントで受け取り、機能的グローバル変数の仕組みでシフトレジスタに記憶します。
前回の値と比較して、値が変化したかを表示します。
VIが最初に呼び出された時は、判断をしません。
テスト用VIも作りましたのでご利用ください。