Stateflow オブジェクトの概要
Stateflow® オブジェクトは包含構造に基づいて階層内に配置されます。つまり、単一の Stateflow オブジェクトに他の Stateflow オブジェクトを含めることが可能です。
Stateflow 階層の最上位に位置するオブジェクトは、Stateflow マシンです。Stateflow マシンは、Simulink® モデル内のすべての Stateflow チャートを含みます。
Stateflow チャートにはステート、ボックス、関数、データ、イベント、メッセージ、遷移、ジャンクション、entry 端子と exit 端子、および注釈を含めることができます。ステート、関数およびボックスには、他のステート、関数、ボックス、データ、イベント、メッセージ、遷移、ジャンクション、entry 端子と exit 端子、および注釈を含めることができます。入れ子のレベルは際限なく深くできます。
グラフィカル オブジェクト
グラフィカル オブジェクトを管理するには、Stateflow エディターを使用します。次の表は、グラフィカル オブジェクトの各タイプと、オブジェクトの追加に使用するパレット アイコンの一覧です。詳細については、Stateflow エディターの操作を参照してください。
グラフィカル オブジェクトのタイプ | パレット アイコン | 参照 |
---|---|---|
ステート | | ステートを使用した動作モードの表現 |
遷移 | | 動作モード間の遷移 |
コネクティブ ジャンクション | | 遷移とジャンクションを結合して分岐パスを作成 |
ボックス | | ボックスを使用したチャート オブジェクトのグループ化 |
Simulink ベースのステート | | Simulink ベースのステートの作成と編集 |
Simulink 関数 | | Stateflow チャートでの Simulink 関数の再利用 |
グラフィカル関数 | | グラフィカル関数の定義によるロジック パターンの再利用 |
MATLAB® 関数 | | MATLAB 関数の定義による MATLAB コードの再利用 |
真理値表関数 | | 真理値表を使用して組み合わせ論理をモデル化 |
ヒストリ ジャンクション | | ヒストリ ジャンクションを使用した前のサブステート アクティビティの再開 |
exit ジャンクション | | ステートの境界を越える入口および出口接続の作成 |
entry ジャンクション | | ステートの境界を越える入口および出口接続の作成 |
注釈 | | チャート内への説明コメントの追加 |
イメージ | | チャート内への説明コメントの追加 |
非グラフィカル オブジェクト
データ オブジェクト、イベント オブジェクトおよびメッセージ オブジェクトを定義しても、Stateflow エディターではグラフィックスとして表示されません。非グラフィカル オブジェクトを管理するには、[シンボル] ペインまたはモデル エクスプローラーを使用します。詳細については、以下を参照してください。
データ オブジェクト
Stateflow チャートは、実行を制御するためのデータを格納および取得します。Stateflow データは専用のワークスペース内に存在しますが、Simulink モデルや、Stateflow マシンを組み込んだアプリケーションなど、外部に存在するデータにアクセスすることも可能です。Stateflow チャートで使用するすべての内部データおよび外部データを定義しなければなりません。
イベント オブジェクト
イベントは、Stateflow チャート全体またはチャート内の個別のアクションをトリガーする Stateflow オブジェクトです。Stateflow チャートの実行はイベントへの反応に基づいているため、チャートの実行を制御するには、チャート内に具体的なイベントをプログラムします。イベントを送信元オブジェクトの対象範囲に含まれるすべてのオブジェクトに対してイベントをブロードキャストすることも、イベントと特定のオブジェクトに送信することも可能です。直接指定によりイベントを明示的に定義することも、ステート Entry など、特定のアクションが実行されたときに発生するようにイベントを暗黙的に定義することも可能です。詳細については、イベントのブロードキャストによるモデル コンポーネントの同期を参照してください。
メッセージ オブジェクト
Stateflow メッセージ オブジェクトは、キューに登録されるオブジェクトで、データを含むことができます。ある Stateflow チャートから別の Stateflow チャートへメッセージを送信して、チャート間で通信できます。また、チャート内でローカル メッセージを送信することも可能です。メッセージ データの型はユーザーが定義できます。メッセージのライフラインは Sequence Viewer ブロックに表示できます。詳細については、メッセージ送信による Stateflow チャートとの通信を参照してください。