チャートまたはステートに入る
チャートとステートの entry は次の場合に発生します。
チャートがはじめてアクティブになる場合。これは、チャートの初期化と呼ばれます。
ステートへの有効な遷移が存在する場合。遷移の評価を参照してください。
チャートまたはステートに入るためのワークフロー
次のフロー チャートは、Stateflow® がチャートまたはステートに入るために行われるイベントの進行を示しています。このフロー チャートでは、現在のステートが、決定またはプロセスの実行されているステートを参照します。

チャート Entry
Stateflow チャートがはじめてアクティブになることを初期化と呼びます。チャートの初期化が発生すると、チャートに入り、Stateflow が排他的 (OR) ステートのデフォルト遷移をすべて実行します。チャートの最上位のステートがパラレル (AND) である場合、それらは順序番号に基づいてアクティブになります。
チャートで時間 t = 0 の前にいずれかのデフォルト遷移を実行するには、[チャート プロパティ] ダイアログ ボックスで [初期化時に指定されたチャートを実行 (入力)] チェック ボックスをオンにします。このオプションを使用すると、Simulink® の初期化と同時に Stateflow チャートが初期化されます。その後、モデルの初期化フェーズでチャートのデフォルト遷移のパスが実行されます。
ステート Entry
ステートが entry 対象としてマークされている場合は、ステートの entry アクションが実行されます。チャートがアクティブになり初期化が済むと、最上位ステートがアクティブになります。ステートは、以下のいずれかの方法で entry 対象としてマークされます。
入力遷移がステートの境界線に交差する。
入力遷移がステートの境界線で終了する。
ステートがアクティブ ステートのパラレル ステートの子である。
entry アクション
entry アクションの前には接頭辞 entry または en (省略形) が追加され、その後に必須のコロン (:)、さらに 1 つ以上のアクションが続きます。複数のアクションを区切るには、キャリッジ リターン、セミコロン (;)、またはコンマ (,) を使用します。ステートメントに対しステート アクション タイプを明示的に指定しない場合、チャートではそのステートメントを entry,during アクションとして扱います。
Stateflow チャートに入る
この例では、チャートがはじめてアクティブになるときにチャートの初期化が発生します。

チャートがスリープするまでチャートまたはステートに入るためのワークフローに従うと、チャート初期化のステップは次のような順序になります。
デフォルト遷移のアクションが実行され、
x = 0、y = 0、z = 0になります。StateAが entry 対象としてマークされます。StateAは非アクティブな親のサブステートではありません。StateAに対してentryアクションを実行します。ここでx = 1になります。StateAは、最初に entry 対象としてマークされたステートです。StateAにはヒストリ ジャンクションが含まれません。サブステート
StateA1へのデフォルト遷移があります。遷移の評価のフロー チャートに移動します。遷移の評価のフロー チャートに従い、
StateA1をentry対象としてマークします。exit アクションのフロー チャートに移動します。現在のステート
StateAは、遷移先ステートStateA1のスーパーステートです。entry アクションのフロー チャートに戻ります。StateA1は非アクティブな親のサブステートではありません。StateA1に対してentryアクションを実行します。ここでx = 3になります。StateA1は、最初に entry 対象としてマークされたステートです。StateA1にはヒストリ ジャンクションが含まれません。StateA1にはデフォルト遷移が含まれません。StateA1にはサブステートがひとつも含まれません。チャートはスリープします。
ステップ 1 ~ 14 は初期のタイム ステップで発生します。これでチャートの初期化プロセスが完了します。
ヒストリ ジャンクションを使用してステートに入る
Stateflow チャートで、デフォルト遷移に関係なく、以前にアクティブだったサブステートを記憶してそこに戻るには、ヒストリ ジャンクションを使用します。ヒストリ ジャンクションをステート内に配置すると、排他的 (OR) サブステートに通じるデフォルト遷移がオーバーライドされます。ヒストリ ジャンクションをステート内に配置した後は、entry に際して Stateflow チャートは以前にアクティブだったサブステートを記憶しており、そこに入ることになります。ヒストリ ジャンクションは、配置された階層のレベルに対してのみ適用されます。
この例では、ライトはオンかオフのどちらかとなります。これらのオプションは、ステート Power_on および Power_off によって示されます。オプションは入力イベント switch_on および switch_off によって制御されます。ライトがオンの場合、これはほの暗いか明るいかのいずれかになります。これらのオプションは、ステート Low および High によって示され、入力イベント switch_low および switch_high によって制御されます。
最初は、チャートはスリープ状態です。ステート Power_off がアクティブです。ステート Power_on が前回アクティブであったとき、その際アクティブだったサブステートは High でした。イベント switch_on が発生して、ステート Power_on が entry 対象としてマークされます。この時点で p = 0 です。

チャートがスリープするまでチャートまたはステートに入るためのワークフローに従うと、ステート Power_on に入るための実行ステップは次のような順序になります。
Power_onは非アクティブな親の子ではありません。Power_onに対する entry アクションはありません。Power_onは、最初に entry 対象としてマークされたステートです。Power_onにはヒストリ ジャンクションがあります。Highは、前にアクティブだったサブステートです。ここでp = 2になります。Highにはヒストリ ジャンクションが含まれません。Highにはデフォルト遷移が含まれません。Highにはサブステートがひとつも含まれません。チャートはスリープします。
これで Power_on および High に対する entry アクションが完了します。
スーパートランジションを使用してステートに入る
スーパートランジションは、チャート内の異なるレベル間での遷移です。スーパートランジションが行われるのは、最上位のチャート内のステートといずれかのサブチャート内のステートの間か、チャート内の同一のレベルまたは異なるレベルで、別のサブチャートに属するステートの間です。チャート内の任意数のレベルにまたがるスーパートランジションを作成できます。
スーパートランジションを通じてステートに入る場合、最終的な遷移先への entry アクションを実行する前に、そのスーパーステートをアクティブとしてマークし、そこへの entry アクションを実行しなければなりません。この例では、StateB1 が StateA2 からの entry 対象としてマークされています。この時点で、x = 5、y = 5、z = 1 です。

チャートがスリープするまでチャートまたはステートに入るためのワークフローに従うと、ステート StateB1 に入るための実行ステップは次のような順序になります。
StateB1は非アクティブな親 (StateB) のサブステートです。StateBがアクティブとしてマークされます。StateBは非アクティブな親のサブステートではありません。StateBに対して entry アクションを実行します。ここでx = 4になります。StateBは、最初に entry 対象としてマークされたステートではありません。StateB1に対して entry アクションを実行します。ここでx = 3になります。StateB1は、最初に entry 対象としてマークされたステートです。StateB1にはヒストリ ジャンクションがありません。StateB1にはデフォルト遷移が含まれません。StateB1にはサブステートがひとつも含まれません。チャートはスリープします。
これで StateB および StateB1 に対する entry アクションが完了します。