LabVIEWのケースストラクチャで列挙体を使用する方法

更新しました Apr 24, 2021

使用製品

ソフトウェア

  • LabVIEW

問題

  • 列挙体はケースストラクチャとどのように機能しますか?
  • ケースを複製して、その複製されたケースに割り当てられる列挙体の値を定義するにはどうすればよいですか?
  • ケースに複数の値を設定できますか?

解決策

列挙体は、対応する整数値を持つ文字列ラベルのリストです。 LabVIEWでは符号なし整数として扱われます( U8U16-デフォルト、およびU32 )。

たとえば、4つの季節を保持する列挙体を作成することができます。その場合、それぞれに0- "春"、1- "夏"、2- "秋"、3-"冬"といった数値を割り当てられます。

 

enum.png

 

列挙体をケースストラクチャのケースセレクタ端子に配線すると、その値ごとに異なるケースを作成できます。ケースストラクチャの枠を右クリックし、 すべての値にケースを追加を選択することで、列挙体のそれぞれの値に対応したケースを作成します。

たとえば、列挙体が4つの季節の値を保持している場合、値"春"、"夏"、"秋"、"冬"ごとに4つの異なるケースを持つことができます。

 

case.png

 

さらに、同じケースに複数の列挙体の項目を対応させることができます。ケースセレクタラベルで列挙体の文字の値はダブルクォーテーションで囲まれた文字列として表示されます。もし一つのケースに複数の項目を追加したいのであれば、カンマで区切って名前を追加することができます。

たとえば、春分または秋分として春と秋を一緒にケースストラクチャで一緒に扱い、夏と冬を夏至、冬至として一緒に扱う場合には、このように構成します。ケース1 - "春","秋"、ケース2 - "夏","冬" 。

 

doublecase.png

 

 

追加情報

  • 列挙型データ型(列挙体、Enum)は、この記事で取り上げていないリングデータ型とは異なります。その違いと使用法の詳細については、テキストリング制御器と列挙体制御器の違い のドキュメントを参照してください。
  • 列挙体を使用する時には、制御器をタイプ定義するのが推奨されます。タイプ定義を作成することで、列挙体の項目を追加したり削除するごとにコードを書き直すといったことを防ぐことができます。このように、それらの1つを変更しても、 ケースストラクチャのラベルの文字列値が数値に置き換えられることはありません。
    • :下の図の上側のケースストラクチャは列挙体定数の値の1つが変更されたことで、文字列ラベルではなく数値が表示されています。したがって、LabVIEWはそれらすべてを数値型に強制変換し、ケースストラクチャは数値のみで扱うように想定していることになります。
casest.png