この記事では、配列とクラスタのデータタイプを調べ、配列とクラスタの作成および操作の概要を説明します。
配列は要素と次元で構成され、制御器か表示器のいずれかです。両方を混ぜて入れることはできません。要素は、配列に含まれるデータまたは値です。次元は配列の長さ、高さ、もしくは奥行きです。配列は、類似データのコレクションを使用して反復計算の履歴を保存する場合に非常に役立ちます。
配列の要素には順番が付けられています。配列の各要素にはそれぞれ対応する指標値があり、配列指標を使用してその配列の特定の要素にアクセスできます。NI LabVIEWソフトウェアでは、配列の指標はゼロベースです。つまり、1次元(1D)配列にn個の要素が含まれている場合、指標の範囲は0〜n – 1で、指標0は配列の1番目の要素を指し、指標n – 1は配列の最後の要素を指します。
クラスタは、タイプの異なるデータ要素をグループ化します。クラスタのサンプルは、ブール値、数値、および文字列を組み合わせたLabVIEWエラークラスタです。クラスタは、テキストベースのプログラミング言語におけるレコードまたは構造体に似ています。
配列と同様に、クラスタは制御器か表示器のいずれかで、両方を混ぜて入れることはできません。クラスタと配列の違いは、特定のクラスタは固定サイズがあり、特定の配列はサイズが異なる可能性があることです。また、クラスタには混合データタイプを含めることができますが、配列に含めることができるデータタイプは1つだけです。
LabVIEWで配列を作成するには、配列シェルをフロントパネルに配置してから、数値、ブール、波形制御や表示器などの要素を配列シェル内に配置する必要があります。
前の手順では、1D配列の作成について説明しました。2D配列は要素をグリッドに保存します。2D配列の各要素には、行指標と列指標の2つの対応指標値があります。この場合も、1D配列と同様、2D配列の行と列の指標はゼロベースです。
2D配列を作成するには、最初に1D配列を作成してから、それに次元を追加する必要があります。前に作成した1D配列に戻ります。
この時点まで、作成した配列の数値要素はゼロで淡色表示されています。淡色表示の配列要素は、要素が初期化されていないことを示します。要素を初期化するには、要素の内側をクリックして、淡色表示の0を任意の数値に置き換えます。
要素は任意の数値に初期化できます。これらは、上記の値と同じである必要はありません。
配列定数を使用すると、定数データを保存するか、または他の配列と比較する基準として保存できます。
Forループへの入力として配列を配線する場合、LabVIEWは自動指標付け機能を使用してForループのカウント端子を配列のサイズに自動設定するオプションを提供します。アレイに配線されたループトンネルを右クリックし、指標付け使用(不使用)を選択することで自動指標付けオプションを有効または無効にすることが可能です。
自動指標付けを有効にすると、Forループの各反復に、配列の対応要素が渡されます。
Forループの出力として値を配線する場合、自動指標付けを有効にすると配列が出力されます。配列のサイズは、Forループによって実行される反復の数値と等しく、Forループの出力値を含みます。
ブロックダイアグラム
フロントパネル
1つ以上のループトンネルで自動指標付けを有効にし、Forループカウント端子を配線する場合、反復回数は選択肢の小さい方に等しいことに注意してください。たとえば、下の図では、Forループカウント端子が15回の反復を実行するように設定されており、配列1には10個の要素が含まれ、配列2には20個の要素が含まれています。下の図のVIを実行すると、Forループが10回実行され、配列結果には10個の要素が含まれます。これを試して、自分の目で確かめてください。
以下のように、ネストされたForループと自動指標付けを使用して2D配列を作成できます。外側のForループが行要素となり、内側のForループが列要素となります。
これで、ブロックダイアグラム全体で、3つの別々の配線ではなく1つの配線で数値、文字列、ブール制御を配線できます。
クラスタ定数と同様に、クラスと定数から保存定数、または他のクラスタとの比較基準として使えます。前述の手順で配列定数を作成したときと同じ方法で、クラスタ定数を作成します。
クラスタ制御器または表示器が既にあり、同じデータタイプを含むクラスタ定数を作成する場合は、ブロックダイアグラムでクラスタ制御器または表示器のコピーを作成し、コピーを右クリックして、ショートカットメニューから定数に変更を選択します。
このチュートリアルでは、クラスタ操作によく使用される4つの主要なクラスタ関数を調べます。これらはバンドル、バンドル解除、名前でバンドル、名前でバンドル解除の関数です。
バンドル関数を使用して、個々の要素からクラスタを組み立てます。要素をバンドル関数に配線するには、マウスを使用して関数のサイズを変更するか、関数を右クリックしてショートカットメニューから入力を追加を選択します。
名前でバンドルまたはバンドル関数を使用して、既存のクラスタを変更します。名前でバンドル関数は、バンドル関数と同じ方法でサイズを変更できます。
名前でバンドル関数は、変更するクラスタ要素を正確に把握できるため、既存のクラスタを変更するときに非常に役立ちます。たとえば、「文字列1」と「文字列2」というラベルの付いた2つの文字列要素を含むクラスタを考慮します。バンドル関数を使用してクラスタを変更すると、関数の端子はピンク色のabcの形で表示されます。どの端子が「文字列1」を変更し、「文字列2」を変更するかはわかりません。
ただし、名前でバンドル関数を使用してクラスタを変更する場合、関数端子は要素ラベルを表示するため、どの端子が「文字列1」を変更し、「文字列2」を変更するかがわかります。
バンドル解除関数を使用し、クラスタを個々の要素に分解します。名前でバンドル解除 関数を使用し、名前で指定したクラスタ要素を分解します。また、バンドルおよび名前でバンドル関数と同じ方法で、複数の要素に対してこれらの関数のサイズを変更できます。
クラスタ要素にはシェル内の位置に関係のない論理上の順位が割り当てられます。クラスタに最初に配置されたオブジェクトが要素0、2番目には要素1などのようになります。要素を削除すると、順序は自動的に調整されます。クラスタ順位はブロックダイアグラム内のバンドル関数およびバンドル解除関数上に端子として表示される要素の順位を決定します。クラスタ順序を表示したり、修正したりするには、クラスタの枠線を右クリックしてショートカットメニューからクラスタ内の制御器の並び替えを選択します。
各要素の白いボックスは、クラスタ順序の現在の位置を示しています。黒いボックスは、順序の要素の新しい位置を示しています。クラスタ要素の順序を設定するには、クリックして設定テキストボックスに新しい順序番号を入力し、要素をクリックします。要素のクラスタ順序が変更されると、他の要素のクラスタ順序が自動的に調整されます。ツールバーの確認ボタンをクリックして変更を保存します。キャンセルボタンをクリックし、前の状態に戻します。