From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW配列クラスタ説明

概要

この記事では、配列とクラスタのデータタイプを調べ、配列とクラスタの作成および操作の概要を説明します。

配列は要素と次元で構成され、制御器か表示器のいずれかです。両方を混ぜて入れることはできません。要素は、配列に含まれるデータまたは値です。次元は配列の長さ、高さ、もしくは奥行きです。配列は、類似データのコレクションを使用して反復計算の履歴を保存する場合に非常に役立ちます。

配列の要素には順番が付けられています。配列の各要素にはそれぞれ対応する指標値があり、配列指標を使用してその配列の特定の要素にアクセスできます。NI LabVIEWソフトウェアでは、配列の指標はゼロベースです。つまり、1次元(1D)配列にn個の要素が含まれている場合、指標の範囲は0〜n – 1で、指標0は配列の1番目の要素を指し、指標n – 1は配列の最後の要素を指します。

クラスタは、タイプの異なるデータ要素をグループ化します。クラスタのサンプルは、ブール値、数値、および文字列を組み合わせたLabVIEWエラークラスタです。クラスタは、テキストベースのプログラミング言語におけるレコードまたは構造体に似ています。

配列と同様に、クラスタは制御器か表示器のいずれかで、両方を混ぜて入れることはできません。クラスタと配列の違いは、特定のクラスタは固定サイズがあり、特定の配列はサイズが異なる可能性があることです。また、クラスタには混合データタイプを含めることができますが、配列に含めることができるデータタイプは1つだけです。

配列制御および表示作成する

LabVIEWで配列を作成するには、配列シェルをフロントパネルに配置してから、数値、ブール、波形制御や表示器などの要素を配列シェル内に配置する必要があります。

  1. 新規VIを作成します。
  2. フロントパネルを任意の場所で右クリックして制御器パレットを表示します。
  3. コントロールパレットで、モダン»配列、行列、クラスタに移動し、配列シェルをフロントパネルにドラッグします。

  1. コントロールパレットで、モダン»数値に移動し、配列シェル内に数値表示器をドラッグアンドドロップします。

  1. マウスを配列の上に置き、配列の右側をドラッグして展開し、複数の要素を表示します。

前の手順では、1D配列の作成について説明しました。2D配列は要素をグリッドに保存します。2D配列の各要素には、行指標と列指標の2つの対応指標値があります。この場合も、1D配列と同様、2D配列の行と列の指標はゼロベースです。

 

2D配列を作成するには、最初に1D配列を作成してから、それに次元を追加する必要があります。前に作成した1D配列に戻ります。

  1.  フロントパネルで、指標表示を右クリックして、ショートカットメニューから次元を追加を選択します。

  1.  マウスを配列の上に置き、配列のコーナーをドラッグして展開し、複数の行や列を表示します。

この時点まで、作成した配列の数値要素はゼロで淡色表示されています。淡色表示の配列要素は、要素が初期化されていないことを示します。要素を初期化するには、要素の内側をクリックして、淡色表示の0を任意の数値に置き換えます。

要素は任意の数値に初期化できます。これらは、上記の値と同じである必要はありません。

配列定数作成する

配列定数を使用すると、定数データを保存するか、または他の配列と比較する基準として保存できます。

  1.  ブロックダイアグラムを右クリックして関数パレットを開きます。
  2. 関数パレットで、プログラミング»配列に移動し、配列定数をブロックダイアグラムにドラッグします。

  1.  関数パレットで、プログラミング»数値移動し、数値定数を配列定数シェル内にドラッグアンドドロップします。

  1. 配列定数のサイズを変更し、いくつかの要素を初期化します。


配列入力/出力

Forループへの入力として配列を配線する場合、LabVIEWは自動指標付け機能を使用してForループのカウント端子を配列のサイズに自動設定するオプションを提供します。アレイに配線されたループトンネルを右クリックし、指標付け使用(不使用)を選択することで自動指標付けオプションを有効または無効にすることが可能です。

自動指標付けを有効にすると、Forループの各反復に、配列の対応要素が渡されます。

Forループの出力として値を配線する場合、自動指標付けを有効にすると配列が出力されます。配列のサイズは、Forループによって実行される反復の数値と等しく、Forループの出力値を含みます。

  1. 新規VIを作成します。ファイル»新規VIに移動します。
  2. 以下の配列定数と同様のブロックダイアグラムで、6つの数値要素を含む2つの1D配列定数を作成して初期化します。

  1. フロントパネルに数値表示器の1D配列を作成します。数値タイプを32ビット整数に変更します。配列を右クリックして、表現»I32を選択します。

  1. ブロックダイアグラムにForループを作成し、Forループ内に加算関数を配置します。
  2. 配列定数の1つをForループに配線し、それを加算関数のx端子に接続します。

  1.  配列定数の1つをForループに配線し、それを加算関数のy端子に接続します。

  1. 追加関数の出力端子をForループの外側に配線し、数値表示器の配列の入力端子に接続します。

  1. 最終的なブロックダイアグラムとフロントパネルは、以下のようになります。

  

ブロックダイアグラム

フロントパネル

  1. フロントパネルに移動し、VIを実行します。数値表示器の配列の各要素は、2つの配列定数の対応要素の合計が入力されることを留意してください。

1つ以上のループトンネルで自動指標付けを有効にし、Forループカウント端子を配線する場合、反復回数は選択肢の小さい方に等しいことに注意してください。たとえば、下の図では、Forループカウント端子が15回の反復を実行するように設定されており、配列1には10個の要素が含まれ、配列2には20個の要素が含まれています。下の図のVIを実行すると、Forループが10回実行され、配列結果には10個の要素が含まれます。これを試して、自分の目で確かめてください。

以下のように、ネストされたForループと自動指標付けを使用して2D配列を作成できます。外側のForループが行要素となり、内側のForループが列要素となります。


クラスタ作成する

  1.  新規VIを作成します。
  2.  フロントパネルを任意の場所で右クリックして制御器パレットを表示します。
  3.  コントロールパレットで、モダン»配列、マトリックス、クラスタに移動し、クラスタシェルをフロントパネルにドラッグします。

 

  1. クラスタシェルのサイズを変更して、複数の要素を含めるのに十分な大きさにします。

 

  1.  コントロールパレットで、モダン»数値に移動し、クラスタシェル内に数値制御をドラッグアンドドロップします。

  1. コントロールパレットで、モダン»文字列&パスに移動し、クラスタシェル内に文字列制御をドラッグアンドドロップします。

  1. コントロールパレットで、モダン»ブールに移動し、クラスタシェル内に垂直実トグルスイッチをドラッグアンドドロップします。

  1. これで、クラスタは以下のようになります。

これで、ブロックダイアグラム全体で、3つの別々の配線ではなく1つの配線で数値、文字列、ブール制御を配線できます。

クラスタ定数作成する

クラスタ定数と同様に、クラスと定数から保存定数、または他のクラスタとの比較基準として使えます。前述の手順で配列定数を作成したときと同じ方法で、クラスタ定数を作成します。

クラスタ制御または表示器が既にあり、同じデータタイプを含むクラスタ定数を作成する場合は、ブロックダイアグラムでクラスタ制御または表示器のコピーを作成し、コピーを右クリックして、ショートカットメニューから定数に変更を選択します。

クラスタ関数

このチュートリアルでは、クラスタ操作によく使用される4つの主要なクラスタ関数を調べます。これらはバンドルバンドル解除名前でバンドル名前でバンドル解除の関数です。

Bundle関数を使用して、個々の要素からクラスタを組み立てます。要素をバンドル関数に配線するには、マウスを使用して関数のサイズを変更するか、関数を右クリックしてショートカットメニューから入力の追加を選択します。

名前でバンドルまたはバンドル関数を使用して、既存のクラスタを変更します。名前でバンドル関数は、バンドル関数と同じ方法でサイズを変更できます。

 

                                   

                               

名前でバンドル関数は、変更するクラスタ要素を正確に把握できるため、既存のクラスタを変更するときに非常に役立ちます。たとえば、「文字列1」と「文字列2」というラベルの付いた2つの文字列要素を含むクラスタを考慮します。 バンドル関数を使用してクラスタを変更すると、関数の端子はピンク色のabcの形で表示されます。どの端末が「文字列1」を変更し、「文字列2」を変更するかはわかりません。

 

ただし、名前でバンドル関数を使用してクラスタを変更する場合、関数端子は要素ラベルを表示するため、どの端子が「文字列1」を変更し、「文字列2」を変更するかがわかります。

バンドル解除 関数を使用し、クラスタを個々の要素に分解します。名前でバンドル解除 関数を使用し、名前で指定したクラスタ要素を分解します。また、バンドルおよび名前でバンドル関数と同じ方法で、複数の要素に対してこれらの関数のサイズを変更できます。

 

クラスタ順序

クラスタ要素にはシェル内の位置に関係のない論理上の順位が割り当てられます。クラスタに最初に配置されたオブジェクトが要素0、2番目には要素1などのようになります。要素を削除すると、順序は自動的に調整されます。クラスタ順位はブロックダイアグラム内のバンドル関数およびバンドル解除関数上に端子として表示される要素の順位を決定します。クラスタ順序を表示したり、修正したりするには、クラスタの枠線を右クリックしてショートカットメニューからクラスタ内の制御器の並び替えを選択します。

各要素の白いボックスは、クラスタ順序の現在の位置を示しています。黒いボックスは、順序の要素の新しい位置を示しています。クラスタ要素の順序を設定するには、クリックして設定テキストボックスに新しい順序番号を入力し、要素をクリックします。要素のクラスタ順序が変更されると、他の要素のクラスタ順序が自動的に調整されます。ツールバーの確認ボタンをクリックして変更を保存します。キャンセルボタンをクリックし、前の状態に戻します。 

Was this information helpful?

Yes

No