LabVIEWでのクラスタによる指標付け

更新しました Nov 18, 2018

使用製品

Software

  • LabVIEW Full
  • LabVIEW Professional
  • LabVIEW Base

問題

Forループ内の各クラスタ要素をプログラム的に変更するために、配列のようなクラスタを反復処理するにはどうすればよいですか?

解決策

プロパティノードを使用すると、クラスタ内の各要素のリファレンスを含むrefnumの配列を取得できます。配列は、クラスタ内にある各要素のプロパティとメソッドにアクセスするために使用できます。これを行うには、次の手順を実行します。
 
  1. クラスタのプロパティノードを作成します。クラスタ制御器または表示器を右クリックし、作成>>プロパティノードを選択します。
     
  2. クラスタプロパティノードの制御器[]プロパティを選択します。制御器[]プロパティは、クラスタ順にクラスタ要素へのリファレンスの配列です。
  3. クラスタプロパティノードの制御器[]端子をForループの枠に配線します。配列は、デフォルトで自動指標付けトンネルとなります。
  4. 制御器[]配列のプロパティノードを作成します。ブロックダイアグラムで右クリックして、関数パレットを開きます。アプリケーション制御サブパレットを見つけて、プロパティノードを選択します。プロパティノードVIをForループの内側に置き、リファレンス入力端子を制御器[]配列によって作成されたループトンネルに配線します。
 
  • 制御器[]配列プロパティノードを拡張して、2つのプロパティにアクセスできるようにします。最初のプロパティをクラス名に変更します。クラス名プロパティは、特定のクラスタ要素のデータクラス(デジタル、ブール、文字列など)です。2番目のプロパティをに変更します。値プロパティは、特定のクラスタ要素のデータ値です。
  • クラス名プロパティをケースストラクチャのケースセレクタに配線して、そのクラスに基づいてクラスタ要素に対して操作を実行することができます。
  • バリアントからデータに変換VIを使用します。特定のクラスタ要素の値プロパティを適切なデータタイプに変換します。最終結果は下図を参照してください。



    メモ: 通過するデータタイプに合わせてケースの名前を変更することが必須です。バリアントからデータに変換VIにエラー91が表示された場合は、ハイライト実行をオンにしてケースセレクタに入るクラス名文字列を調べ、値が正しく表示されていることを確認します。たとえば、数値には「Digital」というラベルを付ける必要があります。
 
  • クラスタに配列が含まれている場合は、より特定のクラスに変換関数を使用して、配列データストラクチャにある固有のプロパティにアクセスします。次に、プロパティノードを使用して配列要素refnumにアクセスできます。これは、配列の単一要素に対するリファレンス番号を返します。そして、別のプロパティノードを使用して、その配列要素のクラス名にアクセスできます。上記の手順4と同様に、この情報を使用してバリアントデータを正しく読み取る特定のケースストラクチャを利用することができます。

この記事はお役に立ちましたか?

いいえ