この記事では、他の記事で一つずつ取り上げるほどではないものの、もしかすると知られていないかもしれないなというLabVIEWを使用する上でのいくつかの小ネタを独断と偏見で6つ選んだので紹介しています。
過去の小ネタは以下の記事に載せています。
数値制御器の増減分量をカーソル位置で調整
プログラムに数値を入力するために使用する数値制御器。
キーボードで値を打ち込めばもちろんどんな数値もすぐに入力することができますが、値を少しずつ変えたい、という場合には他の方法をとることができます。
ひとつは、増減分のボタン。このボタンを押すことでどれくらい値が変わるかはプロパティで設定することができます。
なお、この設定自体はプログラム的に行うこともできます。
プロパティノードの「データエントリ制限」にある「増分」プロパティがこれにあたります。
もう一つは、カーソルの位置。実はカーソルがある位置によって、キーボードの上あるいは下ボタンを押したときに変化する「位」が変わります。
このキーボードの上下ボタンによる増減は、プロパティの増分の値の影響を受けません。
数値を変更する速さを上げる
数値制御器についてもう一つ。こちらもまた増減分ボタンについてですが、このボタン、Shiftキーを押しながら押すことで、増減の速度を早くすることができます。
連続して値を入力する際に、勢いよく増える数を入力する場合などに重宝するかもしれませんが、使い方は限定的だと思います。
この増減分のボタン、1ずつしか値を変えられないわけではなく、10ずつ、100ずつと値を変えることができます。
スタックシフトレジスタをフィードバックノードで実現する
ループの中で使用できるシフトレジスタは、フィードバックノードで置換することができます。
フィードバックノードを使用することで、本来はワイヤ配線しなければいけないシフトレジスタを使った実装が簡略化されプログラムが見やすくなるという利点がある一方で、通常はスタックシフトレジスタに対しては置換することができません。
しかし、フィードバックノード自体が持つ「遅延」設定で似た操作が実現できます。
遅延を2以上にすると、フィードバックノードにその遅延数が表示されるようになります。
例えば、フィボナッチ数列(2つ前の値と1つ前の値とを足し合わせた値を現在の値とするような数の集まりで、1、1、2、3、5、8、13、21、34、…と続く)の数を定義に基づいて算出する場合にスタックシフトレジスタとフィードバックノードではそれぞれ以下のように書けます。
実行しないForループでもエラーを正しく伝える
LabVIEWプログラムにおけるForループは便利で、カウント端子にループを回す回数を明示しなくても、配列を配線していれば、その配列の要素の数だけループが回るようになります(自動指標付け有効の場合)。
ただ、この組み方には落とし穴があり、何らかの理由で配列に値がない(初期化されていない)状態でForループが実行されると、ループは1度も回らず、その後に出力される値は「デフォルト値」となります。
例えば、以下のようなファイルIOのプログラムを考えます。
ここで、指定しているファイルパスは「でたらめ」だとします。
プログラムを実行すると、エラーが出ます。
が、このエラーは「本来のエラー」ではありません。
最初の、ファイルを開く関数の時点でファイルパスの指定に関するエラーが出ているのに、異なるエラーが出てきてしまっている状態となります。
これは、Forループが回らないでいたことで、Forループの出力トンネルからデフォルト値(エラークラスタで言えば、エラーがない状態)が渡されたことで起こります。
(さらにファイルのrefnumの情報もデフォルト値がファイルを閉じる関数に渡されることからエラー1が発生します)
そのため、Forループが回らない場合を想定して配列のサイズをチェックし0かそれ以外かでケースストラクチャで場合分けをして正しくエラー情報を伝えるようにする・・・こともできますが、この問題はエラーワイヤをシフトレジスタにすることで解決できます。
シフトレジスタは、Forループが一度も回っていなくても、入力されたエラーをそのまま出力してくれるためです。
デジタル表示のカスタマイズ
数値データを表すときに使用する数値制御器や数値表示器、これらをカスタマイズする際に、デジタル表示の部分も項目としては出るのですが、そのままだとこの表示部分はカスタマイズの対象にはなりません。
このデジタル表示もまたカスタマイズしたい場合には、メニューバー「編集」から制御器をカスタマイズを選ぶことでカスタマイズできるようになります。
本記事ではLabVIEWの小ネタを紹介しました。
普段LabVIEWを使用する中で役に立つものはともかく、あまり役に立たないけれど知っておいてまぁ損はないというようなネタもあるかと思いますが、いつこういった知識が役に立つかもわからないので、何となくでも頭の片隅にいれておいてもらえればと思います。
ここまで読んでいただきありがとうございました。
コメント