Main Content

列挙型データを使用した名前による値の参照

Stateflow® チャートの可読性を高めるには、"列挙型データ" を使用します。列挙型データでは以下が可能です。

  • 値の限定セットを作成し、名前によってこれらの値を参照します。

  • 関連する値を別個のデータ型にグループ化します。

  • 定数の長いリストを定義しなくても済みます。

列挙型データは Simulink® モデルの Stateflow でサポートされます。

列挙型データの例

列挙データ型は、名前および基となる整数値で構成される "列挙値" の有限のコレクションです。たとえば、このチャートで列挙型データを使用して、一連の色を参照します。

列挙型データ output は有限個の値に限定されます。これらの値を、RedYellow、および Green の名前によって参照することができます。

列挙値名前整数値
Red(0)Red0
Yellow(1)Yellow1
Green(2)Green2

次の MATLAB® ファイルは、チャートによって参照される列挙データ型 BasicColors を定義しています。

classdef BasicColors < Simulink.IntEnumType
  enumeration
    Red(0)
    Yellow(1)
    Green(2)
  end
end

列挙型データによる計算

列挙データ型は、その元となる整数値があっても、数値型としては機能しません。数学的計算で列挙値を直接使用することはできません。列挙型データは、代入や比較に基づいてチャートの動作を制御するために使用できます。列挙型データの代入や比較を行うには、次の表にリストされている操作を使用します。

説明

a = exp

expa への代入。exp は列挙値として評価されなければならない。

a == b

比較、等しい。

a != b

比較、等しくない。

C をアクション言語として使用するチャートでは、列挙型データをさまざまなデータ型と比較することができます。比較の前に、チャートは列挙型データをその基となる整数値にキャストします。

MATLAB をアクション言語として使用するチャートは、列挙型データをさまざまなデータ型と比較することができません。

列挙値の表記法

列挙値を参照するには、接頭辞付きまたは接頭辞なしの識別子を使用します。

接頭辞付きの識別子

Stateflow チャート内で列挙値を参照する際に名前の競合を防ぐため、Type.Name という形式の接頭辞付き識別子を使用できます。Type は列挙データ型、Name は列挙値の名前です。たとえば、列挙名 Red を含む 3 つのデータ型 (ColorsTemp、および Code) を定義するものとします。接頭辞付き表記法を使用すると、Colors.RedTemp.Red および Code.Red から区別することができます。

接頭辞なしの識別子

一意の列挙値を参照する際に識別子の長さを最小限にするには、接頭辞なしの列挙値名を使用できます。たとえば、列挙名 Red がデータ型 Colors のみに属するとします。その場合、接頭辞なしの識別子 Red を使ってこの値を参照できます。

チャートで同一の列挙名を含むデータ型 (Colors.RedTemp.Red など) を使用する場合は、名前の競合を防ぐために接頭辞付きの識別子を使用してください。

列挙型データを使用する場所

列挙型データは Stateflow 階層の次のレベルで使用します。

  • チャート

  • サブチャート

  • ステート

列挙型データは以下の引数として使用します。

  • ステート アクション

  • 条件アクションと遷移アクション

  • ベクトルと行列のインデックス

  • MATLAB 関数

  • グラフィカル関数

  • Simulink 関数

  • Truth Table ブロックと真理値表関数

Simulink Coder™ がインストールされている場合は、列挙型データをシミュレーションとコード生成に使用できます。

関連するトピック