以前、小ネタということで二つ記事を上げていました。
この記事では、まだまだあった、他の記事で一つずつ取り上げるほどではないものの、もしかすると知られていないかもしれないなというLabVIEWを使用する上でのいくつかの小ネタを独断と偏見で5つ選んだので紹介しています。
制御器や表示器に対するプロパティノードやインボークノードを調べる
ある程度の規模のプログラムになると、制御器や表示器に対してプロパティノードおよびインボークノードを使用することがよくあります。
そしてプログラム作成中に、「この制御器に対して作ったXXプロパティにはどんな入力をいれていたっけ?」といったように個々の制御器や表示器に対する設定を見直したいと思う場面が出てきます。
そんなとき、役に立つのが検索機能です。
方法はいたって簡単で、その対象とする制御器や表示器に対して右クリックし、「検索」から検索対象を選ぶだけです。
例えば、以下のようなプログラムを対象に考えます。

この数値制御器に対して右クリックで検索すると、プロパティノードやインボークノードに飛べます。

逆に、プロパティノードやインボークノードから元の制御器/表示器に飛ぶこともできます。

プログラム実行中にサブVIの入出力を強制的に指定する
LabVIEWのプログラムの中でサブVIを関数のように使用している場合、メインのVIから渡された値をサブVIが受け取り、そのサブVIの中で処理された結果をメインVIに返す、という動作が行われます。
通常、この「関数状のサブVI」(フロントパネルを表示しないサブVI)への入出力はメインVIから渡したり渡されたりが「プログラム的に」行われるので、ユーザーが入力することができません。
しかし、デバッグ目的でこのサブVIに介入し、任意の値を入力させたり出力させることができます。
この機能は、サブVIを右クリックして「サブVIノード設定」を選択し、表示される画面にて「呼び出されたら中断」とします。
その名の通り、実はこれは「中断」操作でありプログラム実行中に標準で操作できる内容の一つなのですが、これをサブVIそのものに対して設定することができます。
簡単な例を考えるために、メインVIの中に単に足し算をするだけのサブVIがある状態を考えます。

このサブVIに対して「呼び出されたら中断」の設定を行います。

あとはメインVIを実行するだけです。すると、この設定を行ったサブVIの実行になった段階でサブVIのフロントパネルが開きます。
サブVIにはメインVIから渡された入力値が表示されていますが、この値を変更してサブVIのみを実行することができます。

そして実行した結果(メインVIから渡された入力値とは関係なく出た出力値)をメインVIに渡すことができます。
あるいは、サブVIのコードすら関係なく、表示器の中身を手入力で書き換え、その値をメインVIに渡すこともできます。

VIファイルが置いてある場所に素早く飛ぶ
LabVIEWプログラムでサブVIの場所を探す場合、関連するVIをまとめたフォルダなどに適切にまとめているのであれば探す手間は省けますが、そうでない場合にそのファイルがPCのどこにあるかを探すのは難しかったりします。
そんなときには、VIを右クリックして「エクスプローラ」を選択すると、選択したVIがあるフォルダなりディレクトリを表示したファイルエクスプローラが開きます。

なお、実体ファイルのパスはもしそのプロジェクトファイルがプロジェクトエクスプローラにあればそこから確認することもできます。

サブVIの仮アイコンを素早く作る
LabVIEWプログラムはグラフィカルに記述するのが最大の特徴ですが、その特徴を最大限活かすためには、各関数やアイコンが見分けられる必要があります。
通常関数パレットに表示されるものについてはそれぞれアイコンが異なる(一部よく似たもの同士があったりはしますが)のでいいのですが、自分で作ったものであるサブVIは、デフォルトのアイコンだと区別がつきにくくなります。

かといって、何か簡単なテストを行うときにいちいちアイコンの編集なんてやってられないよ、というときには、素早くVI名をそのままアイコンにする操作が便利です。

もちろん、サブVI名がそもそも区別できるような名前である必要がありますし、長すぎると途中で表示が切れてしまいます。
なので最終的なプログラムでは作り込んだアイコン(文字だけでなく視覚的にわかりやすいアイコン)にするのに越したことはないのですが、仮機能として作ったサブVIに対しては簡易的にでもこのようにしておくと区別はつきやすくなります。
フロントパネル上の文字表示をまとめて編集(ローカライズ)
フロントパネルはユーザーが直接触る部分なので、わかりやすいに越したことはありません。
例えば、プログラム作成中はとりあえずデフォルト名で制御器や表示器のラベルを設定している場合、あとからそれらをいちいちクリックして編集するのは、フロントパネルのあちこちにある制御器や表示器を探す必要があり面倒だったりします。
また、場合によっては言語を変える(ローカライズ)必要があることもあり得ると思います。
LabVIEWでは、こうした制御器や表示器に対する表示文字を全てテキストとして出力(エクスポート)、あるいは読み取る(インポート)機能が備わっています。

エクスポートする場合には、テキストファイルとして出力するのでこれを保存する場所を指定するダイアログが表示されます。
エクスポートされたファイルの中身に各制御器や表示器が書いてあるのですが、ここで注意する必要があるのは、編集を加えるのが「キャプション」の部分であることです。

編集したファイルの内容を反映させるためにはインポートします。単に編集後のファイルを選択するだけでなく、ファイルの内容を反映させる際に何かエラーが起きた場合の記録を残すためのログファイル保存先も聞かれます。
これでテキストファイル上でキャプションの一括変換が行えます。

なお、通常制御器や表示器をフロントパネルに置いたときに表示される「数値」などの表示は「キャプション」ではなく「ラベル」になっています。ブロックダイアグラム上の表示も「ラベル」です(ブロックダイアグラム上では「キャプション」表示がそもそもありません)。
そのため、見た目が変わったと言えど、フロントパネルで「ラベル」を表示するようにすると元々の名前が見えたりします。

本記事では、LabVIEWの小ネタを5つ紹介しました。これまでに紹介した小ネタもそうですが、知らなければプログラムが書けない、ということはないものの、知っていて損はないといったネタを集めています。ピンポイントで役に立つ知識はあると思うので参考になればうれしいです。
ここまで読んでいただきありがとうございました。
コメント