Stateflow® チャートの可読性を高めるには、列挙型データを使用します。列挙型データでは以下が可能です。
値の限定セットを作成し、名前によってこれらの値を参照します。
関連する値を別個のデータ型にグループ化します。
定数の長いリストを定義しなくても済みます。
列挙型データは Simulink® モデルの Stateflow でサポートされます。詳細については、列挙型データを使用した名前による値の参照を参照してください。
名前の競合を避けるため、列挙データ型の名前として次に該当するものの名前は使用できません。
別のデータ型
Stateflow チャートのデータ オブジェクト
MATLAB® ベース ワークスペース内の変数
Simulink モデルの列挙データ型を解決できるよう、型定義を含む MATLAB ファイルの名前はデータ型の名前と一致しなければなりません。
開いているモデルの列挙データ型定義を更新しても、その変更がすぐに有効になるわけではありません。データ型定義の更新の効果を見るには、以下の手順に従います。
モデルを保存して閉じます。
MATLAB ベース ワークスペースからデータ型のすべてのインスタンスを削除します。これらのインスタンスを検索するには、コマンド プロンプトで「whos
」と入力します。
モデルを開いてシミュレーションを開始するか、Simulink Coder™ を使用してコードを生成します。
接頭辞なしの識別子を使ってチャート内の列挙値を参照する場合は、各列挙名が固有の列挙データ型に属していることを確認します。
同じ識別子がデータ オブジェクトまたはバス フィールドとして列挙値で使用されると、チャートは識別子を正しく解決しません。たとえば、次の図は、チャートによる識別子 Colors.Red
の解決の各段階を示しています。
列挙型データの初期値を設定する場合は、プロパティ インスペクターの [初期値] フィールドで接頭辞付きの識別子を使用しなければなりません。たとえば、BasicColors.Red
は有効な識別子ですが、Red
は有効ではありません。初期値は、有効な MATLAB 式として評価されなければなりません。
生成コードの列挙名に接頭辞を追加すると、生成コードが読みやすくなり、グローバル シンボルとの名前の競合を避けることができます。詳細については、Use Enumerated Data in Generated Code (Simulink Coder)を参照してください。
列挙型データでは、プロパティ インスペクターの [最小値] フィールドと [最大値] フィールドは空のままにします。チャートでは、これらのフィールドに入力する値はすべて無視されます。
プロパティ インスペクターにこれらのフィールドが表示されるかどうかは、列挙型データの定義にどの [データ型] フィールド オプション使用するかによって決まります。
[データ型] フィールド オプション | [最小値] フィールドと [最大値] フィールドの表示 |
---|---|
Enum: <class name> | 使用不可 |
<data type expression> または Inherit from
Simulink | 使用可能 |
列挙値は定数であるため、列挙値を定数データに代入しても意味がありません。定数データへの列挙値の代入を試みると、エラーが表示されます。
ml
名前空間演算子を使用しないml
演算子は列挙型データをサポートしていません。
マシンを親とするデータは、列挙型ではサポートされていません。