この記事は、初心者向けのまずこれシリーズ第17回の補足記事です。サブVIを作成することに関連した多態性VIの話を知りたい、という方向けにもう少し内容を補足しています。
多態性VIとは
LabVIEWの関数の中には、多態性VIとして実装されているものをいくつか見かけることがあります。
例えば、「区切られたスプレッドシートに書き込む」の関数があります。これは、保存するデータが数値か文字列かで入力のデータタイプが変わり、多態性セレクタでどちらかを明示的に指定するかあるいは自動としておいてデータを配線してLabVIEWに判断させることができます。
このような、入力したデータタイプに応じて、や、あるいは選択した多態性ラベルの種類に応じて処理を変えられるけれども、似たような機能なので一つの関数(サブVI)としたい場合に多態性VIが役に立ちます。
多態性VIは専用のダイアログから作ることができます。以下に簡単な流れを紹介します。
多態性VIの作り方
この記事では、「足し合わせる」という処理(他のプログラミング言語でconcatenateと呼ばれるようなもの)を行わせる関数を例にとります。
LabVIEWは文字列や数値に対して「足し合わせる」時に別々の関数を用います。文字であれば文字列連結ですし、数値であれば和の関数といった具合ですね。
これを、一つの多態性VIを使用することでいちいち別の関数をパレットから引っ張り出してこなくてもいいようにします。
多態性VIに含めたいVIの用意
まずは多態性VIに含めたい、大元のVIを用意します。
今回は、数値、文字列、そしてブールデータタイプに対して似たような処理を行います。具体的には
- 数値:二つの入力の和を計算する
- 文字列:二つの入力を連結する
- ブール:二つの入力の論理和(OR)を計算する(入力がどちらもFALSEの場合にはFALSEそれ以外はTRUEを出力する、論理和)
といった具合です。それぞれのVIは簡単なものですが一応以下に示します。
これらの大元のプログラムはそれぞれコネクタペーンを設定する必要があります。多態性VIにまとめた後も、それぞれで設定したコネクタペーンの配置が反映されます。
多態性VIを設定する
VIの用意ができたら多態性VIにこれらを含めます。ファイルメニューから新規を選択して多態性VIを選択します。
表示されるダイアログボックスにて、この多態性VIに含めたいVIをどんどん追加していきます。
追加が終わったら必要に応じてアイコンを編集し保存します。
この多態性VIを他の新規VIのブロックダイアグラムにドラッグアンドドロップして使用してみます。
多態性セレクタを表示して自分でデータタイプを決めてもいいのですが、自動としておくと入力したデータタイプに応じて出力なども切り替わります。
含めたVIの編集
多態性VIを作成した後に、含めたVIの一部を編集したとします。例えば、文字列の連結時に、二つの入力の間に任意の量のスペースを入れられるように調整したとします。
この場合であっても多態性VIはこの編集を反映してくれます。
多態性VIを用意することで、似たような処理を一つにまとめることができます。大元になるプログラムをそれぞれ用意する必要があるため、ある程度の大きさのプログラムで、特定の似たような処理を何度も行うといった場合でないと用意するメリットはあまりないかもしれませんが、知っておくと便利な機能なので覚えておいて損はないと思います。
ここまで読んでいただきありがとうございました。
コメント