Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

ステートの階層

マルチレベル ステートの複雑度を管理するには、Stateflow® チャートで階層を使用します。階層では、システム内の複数のレベルのサブコンポーネントを表現できます。

ステート階層の例

以下の例では、チャート内に 3 つのレベルをもつ階層があります。あるステートの境界内に別のステートを描画すると、内側のステート (子) は外側のステート (スーパーステート) のサブステートになります。外側のステートは、内側のステートの親です。

この例では、チャートはステート Car_done の親です。ステート Car_done は、Car_made ステートと Car_shipped ステートの親です。ステート Car_made も、Parts_assembled ステートと Painted ステートの親です。言い換えると、ステート Parts_assembledPainted は、Car_made ステートの子です。

Stateflow 階層をテキストで表現するには、スラッシュ (/) を使用してチャートを表現し、ステート階層の各レベルをピリオド (.) で区切ります。以下のリストは、前述の例のオブジェクト階層をテキストによって表したものです。

  • /Car_done

  • /Car_done.Car_made

  • /Car_done.Car_shipped

  • /Car_done.Car_made.Parts_assembled

  • /Car_done.Car_made.Painted

ステートに含めることのできるオブジェクト

ステートには、他のすべての Stateflow オブジェクトが含まれます。Stateflow チャート表記法は、包含構造による Stateflow チャートのグラフィカル オブジェクト階層の表現をサポートしています。他のステートを含んでいるステートは "スーパーステート" です。他のステートに含まれているステートは "サブステート" です。ステートが他のステートのスーパーステートまたはサブステートのどちらでもない場合は、Stateflow チャート自身がそのステートの親になります。

ステートには、非グラフィカルなデータ オブジェクト、イベント オブジェクトおよびメッセージ オブジェクトも含めることができます。この包含階層は、モデル エクスプローラーで表示されます。データ、イベント、メッセージの包含は、親オブジェクトを指定して定義します。