LabVIEWクラスおよびインタフェースをアプリケーションとインタフェースで使用する
- 更新日2025-08-27
- 6分で読める
LabVIEWクラスおよびインタフェースは、ユーザ定義データタイプです。LabVIEWクラスおよびインタフェース開発者はこれらのデータタイプを作成して配布します。LabVIEWクラスまたはインタフェースのユーザは、LabVIEWの作成方法についての知識を必要としませんが、クラスまたはインタフェースによって定義されるデータタイプをアプリケーションで使用する方法、LabVIEWクラスまたはインタフェースが使われているコードのデバッグに利用できる情報、LabVIEWクラスまたはインタフェースの更新によって作成済みのアプリケーションが受ける影響などを把握している必要があります。
クラスまたはインタフェースのインスタンスを作成する
LabVIEWクラスまたはインタフェースは、プロジェクト内に配置する必要はありません。LabVIEWクラスまたはインタフェースをパレットに追加して、クラスまたはインタフェースを簡単に検索してブロックダイアグラムやフロントパネルにドラッグして配置できるようにすることができます。他の開発者から配布されたLabVIEWクラスまたはインタフェース、または自ら作成したLabVIEWクラスのインスタンスを作成するには、クラスファイブラリファイル (.lvclass) を制御器または定数としてフロントパネルやブロックダイアグラムに配置します。他のLabVIEWデータタイプに類似したLabVIEWユーザ定義データタイプを使用できます。
クラスブラウザウィンドウを使用して、ブロックダイアグラムにLabVIEWクラスまたはインタフェースのメンバーVIを配置することができます。
LabVIEWクラスおよびインタフェースを強制する
LabVIEWは、クラスおよびインタフェースを以下の規則に従って最も近い共通の親クラスまたはインタフェースに強制します。
- 入力クラスとインタフェースが無関係である場合、LabVIEWは入力をLabVIEWオブジェクトに強制します。
- 入力クラスとインタフェースに共通の親が1つしかない場合、それがクラスでもインタフェースでも、LabVIEWは入力を共通の親に強制します。
- 入力クラスとインタフェースに共通の親が複数あり、そのうちの1つがクラスである場合、LabVIEWは入力を共通の親クラスに強制します。LabVIEWが入力を共通の親インタフェースに強制するようにするには、より一般的なクラスに変換関数で入力の1つを希望の親タイプにキャストします。
- 入力クラスとインタフェースに共通の親が複数あり、それがすべてインタフェースである場合、VIは壊れます。LabVIEWが入力を共通の親インタフェースに強制するようにするには、より一般的なクラスに変換関数で入力の1つを希望の親タイプにキャストします。
ロックされたLabVIEWクラスまたはインタフェースで詳細ヘルプとプローブを使用する
LabVIEWクラスまたはインタフェース開発者は、クラスまたはインタフェースを配布するときにLabVIEWクラスまたはインタフェースをロックすることができます。LabVIEWクラスまたはインタフェース開発者がLabVIEWクラスまたはインタフェースをロックすると、詳細ヘルプウィンドウにはクラスまたはインタフェースのデータタイプとクラスの説明 (開発者が提供している場合) だけが表示されます。また、ロックされたクラスまたはインタフェースの一般プローブにもクラスまたはインタフェースのデータタイプだけが表示されます。LabVIEWクラスまたはインタフェースに対してメンバーではないカスタムプローブを作成できますが、このカスタムプローブにはクラスまたはインタフェースのパブリックインタフェースのみが表示されます。またLabVIEWクラスまたはインタフェース開発者は、クラスまたはインタフェースにカスタムデフォルトプローブを設定して、デバッグに必要なクラスまたはインタフェース情報を提示することができます。LabVIEWクラスまたはインタフェースを使用するために必要な説明やプローブ情報の程度については、LabVIEWクラスまたはインタフェース開発者と相談して決定します。
ダイナミックディスパッチVI
LabVIEWクラスまたはインタフェースのメンバーVIには、ダイナミックディスパッチが可能なものがあります。ダイナミックディスパッチメソッドは、多態性VIに類似しています。多態性VIが配線されたデータタイプに応じて呼び出すVIを決定するのに対し、ダイナミックディスパッチメソッドは、実行時に入力に入力されるデータに応じてクラス階層内の呼び出すメンバーVIを決定します。LabVIEWクラスまたはインタフェースのワイヤは、そのLabVIEWクラスのタイプまたは子のタイプのデータを送るため、実行するクラス階層内のメンバーVIがLabVIEWによって決定されます。ブロックダイアグラムでダイナミックディスパッチメンバーVIをダブルクリックすると、その特定のVIを表示できます。クラス階層内の別のダイナミックディスパッチメンバーVIを表示するには、それぞれのVIをクラス階層で表示する必要があります。
データを変異させる
LabVIEWクラスまたはインタフェースを利用してアプリケーションを開発するLabVIEWクラスのユーザは、LabVIEWクラスまたはインタフェースのバージョン番号を追跡記録すると有益な効果を得られます。たとえば、クラスのプライベートデータ制御器で符号なしの32ビット整数を使用するアプリケーションにLabVIEWクラスがあります。LabVIEWクラスの開発者は、プライベートデータ制御器の数値制御器を倍精度浮動小数点数に変換するLabVIEWクラスのバージョンをLabVIEWクラスユーザに送信することができます。LabVIEWではバージョンの変更履歴が記録され、すべてのLabVIEWのデータの平坦化または非平坦化が認識されているため、古いバージョンのLabVIEWクラスは新しいバージョンで置換し、変更なしにプログラムを実行することができます。