多態性VI
- 更新日2025-08-27
- 6分で読める
多態性VIは、異なるデータタイプに適応します。多態性VIは、同じコネクタペーンパターンのあるVIの集合体です。集合体の各VIは、多態性VIのインスタンスです。各インスタンスには、他のインスタンスとは異なるデータタイプを受け入れる入力または出力端子が1つ以上あります。
たとえば、「キーを読み取る」VIは多態性VIです。そのデフォルト値の端子はブール値、倍精度浮動小数点の数値、符号付き32ビット整数の数値、パス、文字列、または符号なし32ビット整数の数値のデータを受け入れます。
多くの多態性VIでは、多態性VIの入力に配線したデータタイプによって使用されるインスタンスが決定されます。そのデータタイプと互換性のあるインスタンスが多態性VIに含まれていない場合、不良ワイヤが表示されます。多態性VI入力に配線するデータタイプが使用するインスタンスを決定しない場合、インスタンスは手動で選択する必要があります。多態性VIのインスタンスを手動で選択した場合、このVIは選択するインスタンスのデータタイプのみを受け入れて返すため、多態性VIとして動作しなくなります。
手動でインスタンスを選択するには、多態性VIを右クリックし、ショートカットメニューからタイプを選択して、使用するインスタンスを選択します。操作ツールを使用して、以下に示すような多態性VIセレクタをクリックし、ショートカットメニューからインスタンスを選択します。
ブロックダイアグラムの多態性VIを右クリックし、ショートカットメニューから表示項目»多態性VIセレクタを選択して、使用するインスタンスを選択します。処理されたすべてのデータタイプをもう一度取り入れるために多態性VIを変更するには、ショートカットメニューからタイプを選択»自動を選択して、操作ツールで多態性VIセレクタをクリックし、ショートカットメニューから自動を選択します。
多態性VIは、同じ操作を、異なる複数のデータタイプに対し、各データタイプにつき異なる実装方法で実行する場合に作成します。異なるデータタイプに対して類似した方法で操作を実装でき、大幅なカスタマイズが必要ない場合は、代わりに順応性VIを作成します。
たとえば、単精度浮動小数、数値の配列、または波形で同じ数値演算を実行する場合は、数値演算、配列演算、および波形演算の3つの独立したVIを作成できます。演算を実行する必要がある場合は、入力として使用するデータタイプに応じて、これらのVIのいずれかをブロックダイアグラムに配置します。
あるバージョンのVIをブロックダイアグラム上に手動で配置する代わりに、1つの多態性VIを作成して使用できます。
以下の図のように、多態性の演算VIにはVIの3つのインスタンスが含まれています。
| 1 | 演算 |
| 2 | 数値演算 |
| 3 | 配列演算 |
| 4 | 波形演算 |
演算VIは、以下の図のように、ブロックダイアグラム上で演算サブVIに配線したデータタイプに基づいて、VIの正しいインスタンスを静的にリンクします。
| 1 | 演算 |
| 2 | 数値演算 |
| 3 | 配列演算 |
| 4 | 波形演算 |
多態性VIは他のほとんどのVIと異なり、ブロックダイアグラムやフロントパネルがありません。
多態性VIを作成する場合は以下の問題を考慮に入れてください。
- 多態性VIのコネクタペーンとその多態性VIの作成に使用するVIのコネクタペーンは一致している必要があるため、多態性VIに含めるすべてのVIは、同じコネクタペーンパターンを持つ必要があります。
- VIのコネクタペーンには、対応する入力端子と出力端子がなければなりません。たとえば、1つのVIのコネクタペーンの1つの端子が入力である場合は、他のVIのコネクタペーンの対応する端子も入力であるか、未使用でなければなりません。
- VIの各コネクタペーンの端子接続の数は異なっても構いません。
- 多態性VIに含めるVIは、同じサブVIおよび関数で構成されている必要はありません。
- 多態性VIを他の多態性VIの中で使用することはできません。
- 多態性VIに順応性VI (.vim) を含めることはできません。
ユーザが多態性VIの入力に配線するデータタイプに応じて使用するインスタンスが決定され、またそのVIが多態性であることをユーザから判断できないようにするには、以下のガイドラインに基づいて多態性VIを作成してください。
- 多態性VIセレクタは、ユーザがインスタンスを手動で選択する必要がないため非表示にします。
- 多態性VIのアイコンを作成して、ユーザがカーソルを多態性VIの上に移動したときに各インスタンスのアイコンが詳細ヘルプウィンドウに表示されないようにします。
- 多態性VIの説明は、ユーザがカーソルを多態性VIの上に移動したときに各インスタンスの説明が詳細ヘルプウィンドウに表示されないように作成します。使用するインスタンスに関係しない多態性VIの説明を記述してください。
ブロックダイアグラムに多態性VIを配置すると、LabVIEWはメモリにその多態性VIをロードします。多態性VIウィンドウで多態性VIへ変更して、変更を保存せずにウィンドウを閉じる場合、この変更はメモリに残ります。VIを閉じてから再度このVIと開くと、多態性VIへの変更は表示されなくなります。
多態性のサブVIを含むVIの完全なドキュメントを作成すると、多態性VIとそのインスタンスがドキュメントのサブVIリストのセクションに表示されます。