Main Content

Stateflow オブジェクトの概要

Stateflow® オブジェクトは包含構造に基づいて階層内に配置されます。つまり、単一の Stateflow オブジェクトに他の Stateflow オブジェクトを含めることが可能です。

Diagram showing the three levels of the hierarchy of Stateflow objects.

Stateflow 階層の最上位に位置するオブジェクトは、Stateflow マシンです。Stateflow マシンは、Simulink® モデル内のすべての Stateflow チャートを含みます。

Stateflow チャートにはステート、ボックス、関数、データ、イベント、メッセージ、遷移、ジャンクション、entry 端子と exit 端子、および注釈を含めることができます。ステート、関数およびボックスには、他のステート、関数、ボックス、データ、イベント、メッセージ、遷移、ジャンクション、entry 端子と exit 端子、および注釈を含めることができます。入れ子のレベルは際限なく深くできます。

グラフィカル オブジェクト

グラフィカル オブジェクトを管理するには、Stateflow エディターを使用します。次の表は、グラフィカル オブジェクトの各タイプと、オブジェクトの追加に使用するパレット アイコンの一覧です。詳細については、Stateflow エディターの操作を参照してください。

非グラフィカル オブジェクト

データ オブジェクト、イベント オブジェクトおよびメッセージ オブジェクトを定義しても、Stateflow エディターではグラフィックスとして表示されません。非グラフィカル オブジェクトを管理するには、[シンボル] ペインまたはモデル エクスプローラーを使用します。詳細については、以下を参照してください。

データ オブジェクト

Stateflow チャートは、実行を制御するためのデータを格納および取得します。Stateflow データは専用のワークスペース内に存在しますが、Simulink モデルや、Stateflow マシンを組み込んだアプリケーションなど、外部に存在するデータにアクセスすることも可能です。Stateflow チャートで使用するすべての内部データおよび外部データを定義しなければなりません。

イベント オブジェクト

イベントは、Stateflow チャート全体またはチャート内の個別のアクションをトリガーする Stateflow オブジェクトです。Stateflow チャートの実行はイベントへの反応に基づいているため、チャートの実行を制御するには、チャート内に具体的なイベントをプログラムします。イベントを送信元オブジェクトの対象範囲に含まれるすべてのオブジェクトに対してイベントをブロードキャストすることも、イベントと特定のオブジェクトに送信することも可能です。直接指定によりイベントを明示的に定義することも、ステート Entry など、特定のアクションが実行されたときに発生するようにイベントを暗黙的に定義することも可能です。詳細については、イベントのブロードキャストによるモデル コンポーネントの同期を参照してください。

メッセージ オブジェクト

Stateflow メッセージ オブジェクトは、キューに登録されるオブジェクトで、データを含むことができます。ある Stateflow チャートから別の Stateflow チャートへメッセージを送信して、チャート間で通信できます。また、チャート内でローカル メッセージを送信することも可能です。メッセージ データの型はユーザーが定義できます。メッセージのライフラインは Sequence Viewer ブロックに表示できます。詳細については、メッセージ送信による Stateflow チャートとの通信を参照してください。