VIと一般的なVIオブジェクトの構造
- 更新日2025-08-27
- 12分で読める
VIスクリプトを使用してVIを作成または編集するには、VIを構成するオブジェクトとVIサーバクラス階層および周辺のオブジェクトとの関連性を理解する必要があります。このトピックでは、多様な使用方法を促進するため、いくかの一般的なVIオブジェクトに関して、次の3つの重要情報について説明します。
- VIと一般的なVIオブジェクトの構造 このトピックの画像には、VIスクリプトで操作できるさまざまなタイプのオブジェクト、そしてその部品および相互関係を示されています。たとえば、Forループは、多くの部品から構成される一般的なVIオブジェクトです。Forループに入る新規ワイヤを作成するには、ループ、ループトンネル、およびループトンネルの内部 / 外部端子などの部品を操作する必要があります。Forループや他の一般的なVIオブジェクトを詳しく見てみると、特定のスクリプト操作が扱うすべてのオブジェクト要素を識別できます。
- 一般的なVIオブジェクトのVIサーバクラス スクリプト関数の中には、対話するオブジェクトのクラスを指定しなければならないものもあります。関連ダイアグラム内のオブジェクトのクラス情報は、このトピックの各構造表のクラス階層の列にあります。クラス指定子定数を使用して、この情報を関数またはVIに渡します。クラス階層の列の情報は、次のタスクにおいてクラスを指定する際に使用します。
- 「新規VIオブジェクト」関数を使用して新規オブジェクトを作成する
- 「VIオブジェクトリファレンスを開く」関数を使用して既存オブジェクトのリファレンスを取得する
- 「Gオブジェクトを走査」VIを使用してオブジェクトの特定クラスのインスタンスを検索する
- 「より特定のクラスに変換」関数を使用してリファレンスをダウンキャストする
- 特定のオブジェクトに使用可能なVIサーバクラス階層のプロパティとメソッドを特定する
- 一般的なVIオブジェクトの特定のインスタンスのリファレンスを返すプロパティ スクリプト作業を行う際、1つのオブジェクトのリファレンスを使用して他のオブジェクトのリファレンスを取得しなければならない場合があります。この場合、元のオブジェクトのどのプロパティが目的のリファレンスを返すかを知っておく必要があります。このプロパティ情報は、「オブジェクトタイプ:プロパティ」という形式で、各構造表のオブジェクトリファレンスを返すプロパティ/メソッドの列に記載されています。たとえば、「Forループ:ループカウント」は、Forループオブジェクトのリファレンスを使用してループカウントプロパティを呼び出すこと意味します。これを実行するには、最初にForループのリファレンスを取得する必要があります。この後、Forループリファレンスをプロパティノードに配線し、そのプロパティノードのループカウントプロパティを選択します。オブジェクトリファレンスを返すプロパティ / メソッドの列の情報は、次のタスクにおいて必要なリファレンスを取得する場合に使用します。
- VIを参照する
- VIを編集する
- 新規VIオブジェクト間に接続を作成する
ブロックダイアグラムの構造
次の画像には、VIスクリプトを使用して作成または編集できる一般的なブロックダイアグラムオブジェクトが示されています。
| | ||
| 1 制御器/表示器端子 | 4線式 | 7 サブVI |
| 2 数値定数 | 5 インクリメント関数 | 8 トップレベルダイアグラム |
| 3 ローカル変数 | 6 「複合演算」関数 | 9 ブロックダイアグラムコメント |
次の表には、前の画像のオブジェクトのリファレンスを取得するために使用できるクラスとプロパティが記載されています。
| クラス階層 | オブジェクトリファレンスを返すプロパティ/メソッド | |
| 1 | Gオブジェクト»端子»制御器の端子 | 制御器:端子、ダイアグラム:すべてのオブジェクト[] |
| 2 | Gオブジェクト»定数»数値定数 | ダイアグラム:すべてのオブジェクト[] |
| 3 | Gオブジェクト»ノード»ローカル | 制御器:ローカル変数[] |
| 4 | Gオブジェクト»ワイヤ | 端子:接続されているワイヤ、ダイアグラム:ワイヤ[] |
| 5 | Gオブジェクト»ノード»関数 | ダイアグラム:ノード[]、ダイアグラム:すべてのオブジェクト[] |
| 6 | Gオブジェクト»ノード»拡張可能な関数»複合演算 | ダイアグラム:ノード[]、ダイアグラム:すべてのオブジェクト[] |
| 7 | Gオブジェクト»ノード»サブVI | ダイアグラム:サブVI[]、ダイアグラム:ノード[]、ダイアグラム:すべてのオブジェクト[] |
| 8 | Gオブジェクト»抽象ダイアグラム»ダイアグラム»トップレベルダイアグラム | VI:ブロックダイアグラム |
| 9 | Gオブジェクト»装飾体»テキスト | ダイアグラム:装飾体[]、ダイアグラム:すべてのオブジェクト[] |
フロントパネルの構造
次の図には、一般的なフロントパネルオブジェクトが示されています。
| | |
| 1. 制御器/表示器 | 2 フロントパネル |
次の表には、前の画像のオブジェクトのリファレンスを取得するために使用できるクラスとプロパティが記載されています。
| クラス階層 | オブジェクトリファレンスを返すプロパティ/メソッド | |
| 1 | Gオブジェクト»制御器»数値 | パネル:制御器[]、制御器の端子:制御器 |
| 2 | Gオブジェクト»パネル | VI:フロントパネル |
ケースストラクチャの構造
次の図には、ケースストラクチャを構成するさまざまなオブジェクトが示されています。
| | ||
| 1 端子 | 4 セレクタトンネル | 7 ケースストラクチャ |
| 2 トンネル | 5 セレクタラベル | |
| 3 内部端子 | 6 ダイアグラム |
次の表には、前の画像のオブジェクトのリファレンスを取得するために使用できるクラスとプロパティが記載されています。
| クラス階層 | オブジェクトリファレンスを返すプロパティ/メソッド | |
| 1 | Gオブジェクト»端子»外部端子 | トンネル:外部端子 |
| 2 | Gオブジェクト»トンネル | ストラクチャ:トンネル[] |
| 3 | Gオブジェクト»端子»内部端子 | トンネル:内部端子[] |
| 4 | Gオブジェクト»トンネル»条件トンネル»セレクタトンネル | ストラクチャ:トンネル[]、ケースストラクチャ:セレクタ |
| 5 | なし | ケースストラクチャ:フレーム名* |
| 6 | Gオブジェクト»抽象ダイアグラム»ダイアグラム | ストラクチャ:ダイアグラム[]、マルチフレームストラクチャ:フレーム[] |
| 7 | Gオブジェクト»ノード»ストラクチャ»マルチフレームストラクチャ | ダイアグラム:すべてのオブジェクト[]、ダイアグラム:ノード[] |
* LabVIEWでは、ケースストラクチャ内のセレクタボックスのリファレンスは提供されません。ケースストラクチャ:フレーム名プロパティは、別のケースに関連付けられたダイアグラムのリファレンスの配列ではなく、文字列の配列を返します。これらの名前文字列をケースストラクチャ:フレーム指標を取得メソッドで使用して、マルチフレームストラクチャ:フレーム[]プロパティにより返された配列内の特定のダイアグラムの指標を取得できます。
Structures - Case Structure VIは、VIスクリプトを使用してケースストラクチャの内部にアクセスする方法の例を示しています。
Forループの構造
次の図には、Forループを構成するさまざまなオブジェクトが示されています。
| | ||
| 1 Forループ | 5 外部端子 | 9 左シフトレジスタ |
| 2 カウント端子(N) | 6 内部端子 | 10 右シフトレジスタ |
| 3 端子(i) | 7 ループトンネル | 11 ダイアグラム |
| 4 条件端子 | 8 自動指標付けループトンネル |
次の表には、前の画像のオブジェクトのリファレンスを取得するために使用できるクラスとプロパティが記載されています。
| クラス階層 | オブジェクトリファレンスを返すプロパティ/メソッド | |
| 1 | Gオブジェクト»ノード»ストラクチャ»ループ»Forループ | ダイアグラム:すべてのオブジェクト[]、ダイアグラム:ノード[] |
| 2 | Gオブジェクト»トンネル | Forループ:ループカウント |
| 3 | Gオブジェクト»端子 | ループ:ループカウンタ |
| 4 | Gオブジェクト»端子 | Forループ:ループ終了Ref |
| 5 | Gオブジェクト»端子»外部端子 | トンネル:外部端子 |
| 6 | Gオブジェクト»端子»内部端子 | トンネル:内部端子[] |
| 7 | Gオブジェクト»トンネル»ループトンネル | ストラクチャ:トンネル[] |
| 8 | Gオブジェクト»トンネル»ループトンネル | ストラクチャ:トンネル[]、ループトンネル:指標モード = 1 (自動指標付け) |
| 9 | Gオブジェクト»トンネル»左シフトレジスタ | 右シフトレジスタ:左シフトレジスタ[] |
| 10 | Gオブジェクト»トンネル»右シフトレジスタ | ループ:シフトレジスタ[]、左シフトレジスタ:右シフトレジスタ |
| 11 | Gオブジェクト»抽象ダイアグラム»ダイアグラム | ループ:ダイアグラム、ストラクチャ:ダイアグラム[] |
Structures - For Loop VIは、VIスクリプトを使用してForループの構造の部分にアクセスする方法の例を示しています。
フラットシーケンスストラクチャの構造
次の図には、フラットシーケンスストラクチャを構成するさまざまなオブジェクトが示されています。
| | ||
| 1 フラットシーケンス | 4 フラットシーケンス外部トンネル | 7 フラットシーケンス内部トンネル |
| 2 フラットシーケンスフレーム | 5 フラットシーケンス (外部トンネル) 外部端子 | 8 フラットシーケンス (内部トンネル) 左端子 |
| 3 ダイアグラム | 6 フラットシーケンス (外部トンネル) 内部端子 | 9 フラットシーケンス (内部トンネル) 右端子 |
次の表には、前の画像のオブジェクトのリファレンスを取得するために使用できるクラスとプロパティが記載されています。
| クラス階層 | オブジェクトリファレンスを返すプロパティ/メソッド | |
| 1 | Gオブジェクト»フラットシーケンス | ダイアグラム:すべてのオブジェクト[] |
| 2 | 一般»フラットシーケンスフレーム | フラットシーケンス:フレーム[]、ダイアグラム:発信順序[], フラットシーケンス外部トンネル:フレーム、フラットシーケンス内部トンネル:左フレーム、フラットシーケンス内部トンネル:右フレーム |
| 3 | Gオブジェクト»抽象ダイアグラム»ダイアグラム | フラットシーケンスフレーム:ダイアグラム |
| 4 | Gオブジェクト»フラットシーケンス外部トンネル | フラットシーケンスフレーム:外部トンネル[] |
| 5 | Gオブジェクト»端子 | フラットシーケンス:端子[]、フラットシーケンス外部トンネル:外部端子 |
| 6 | Gオブジェクト»端子 | フラットシーケンス外部トンネル:内部端子 |
| 7 | Gオブジェクト»フラットシーケンス内部トンネル | フラットシーケンスフレーム:左側内部トンネル[]、フラットシーケンスフレーム:右側内部トンネル[] |
| 8 | Gオブジェクト»端子 | フラットシーケンス内部トンネル:左端子 |
| 9 | Gオブジェクト»端子 | フラットシーケンス内部トンネル:右端子 |
Structures - Flat Sequence Structure VIは、VIスクリプトを使用してフラットシーケンスストラクチャの構造の部分にアクセスする方法の例を示しています。
追加情報
このトピックでは、最も一般的なVIオブジェクトの例を説明しています。ここで説明されていないオブジェクトの情報については、次のリソースを参照してください。
- 一般:クラス名―このプロパティを使用してVIオブジェクトのクラス名を検出します。その後、そのクラス名をVIサーバクラス階層内で検出し、オブジェクトのクラス階層全体を特定します。
- VIサーバクラス階層―特定のオブジェクトのクラスが分かっている場合、VIサーバクラス階層により、そのオブジェクトの他の部分のリファレンスを提供するプロパティまたはメソッドが分かります。