ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Stateflow チャートの実行

Stateflow® チャートが起動すると、チャートはワークフローに従ってアクションを実行します。Stateflow チャートは次のタイミングで起動します。

  • Simulink® ソルバーに基づく各タイム ステップで

  • Stateflow チャートがイベントを受け取ったとき

チャートがはじめて起動する場合、チャートは初期化されてアクティブになります。チャート Entryを参照してください。チャートがアクティブになり、取るべきアクションがない場合、新しいタイム ステップまたはイベントによってトリガーされるまでチャートはスリープ状態に移行します。

Stateflow チャート実行のワークフロー

次のフロー チャートは、Stateflow がチャートまたはステートを実行するために行われるイベントの進行を示しています。このフロー チャートでは、現在のステートが、決定またはプロセスの実行されているステートを参照します。

during アクション

ステートでの during アクションは次の場合に実行されます。

  • ステートがアクティブで、新しいタイム ステップが発生し、別のステートへの有効な遷移がない

  • ステートがアクティブで、イベントが発生し、別のステートへの有効な遷移がない

during アクションには接頭辞 during または du が先行し、必須のコロン (:)、1 つ以上のアクションが続きます。複数のアクションは、キャリッジ リターン、セミコロン (;) またはコンマ (,) で区切ります。ステートメントに対しステート アクション タイプを明示的に指定しない場合、チャートではそのステートメントを entry,during アクションとして扱います。

チャートが起動すると、ステートはその during アクションを実行します (指定されている場合)。上記のフロー チャートはステート実行のプロセスを描写し、during アクションが発生するタイミングを示しています。

Stateflow チャートにステートが含まれていない場合、チャートが実行されるたびに、Stateflow は必ずデフォルト遷移のパスを評価します。

出力遷移

Stateflow は、Stateflow チャート実行の一環として、出力遷移を評価のためにマークします。出力遷移が評価対象としてマークされたら、遷移を評価するためのワークフローに従ってください。Stateflow が出力遷移を評価する方法の詳細については、遷移の評価を参照してください。

内部遷移

Stateflow は、Stateflow チャート実行の一環として、内部遷移を評価のためにマークします。内部遷移が評価対象としてマークされたら、遷移を評価するためのワークフローに従ってください。Stateflow が内部遷移を評価する方法の詳細については、遷移の評価を参照してください。

有効な遷移のあるチャート実行

この例では、Stateflow チャートが初期化され、StateAStateA1 に対し entry アクションが実行されます。新しいタイム ステップが発生してチャートが起動します。

このタイム ステップでは、x = 5y = 2z = 0 です。

Stateflow チャート実行のワークフローに従うと、チャート実行のステップは次のような順序になります。

  1. チャートにアクティブなサブステート StateA があります。

  2. StateA には StateB への出力遷移があります。遷移を評価するためのワークフローに従い、遷移が有効であると判定されます。

  3. StateBentryStateAexit の対象としてマークされます。

タイム ステップを完了するには、StateA についてはステートを出るためのワークフローStateB についてはチャートまたはステートに入るためのワークフローに従います。

有効な遷移のないチャート実行

この例では、Stateflow チャートが初期化され、StateAStateA1 に対し entry アクションが実行されます。新しいタイム ステップが発生してチャートが起動します。

このタイム ステップでは、x = 3y = 0z = 0 です。

チャートがスリープするまでStateflow チャート実行のワークフローに従うと、チャート実行のステップは次のような順序になります。

  1. チャートにアクティブなサブステート StateA があります。

  2. StateA には StateB への出力遷移があります。遷移を評価するためのワークフローに従い、遷移は無効であると判定されます。

  3. StateA に対して during アクションを実行します。ここで y = 1 になります。

  4. StateA には内部遷移がありません。

  5. StateA のアクティブなサブステートは StateA1 です。

  6. StateA1 には StateA2 への出力遷移があります。遷移を評価するためのワークフローに従い、遷移は無効であると判定されます。

  7. StateA1 に対して during アクションを実行します。ここで x = 4 になります。

  8. StateA1 にはアクティブなサブステートがありません。

  9. チャートはスリープします。

ステップ 1 ~ 9 は 2 番目のタイム ステップで発生します。

関連するトピック