パラレル ステート内の指示のないブロードキャスト イベント
ステート アクションでのイベントのブロードキャスト
以下の例は、パラレル ステートでのイベント ブロードキャスト アクションの動作を示しています。

最初は、チャートはスリープ状態です。パラレル サブステート A.A1.A1a と A.A2.A2a がアクティブです。イベント E_one が発生して、チャートを起動します。このイベントは、チャートのルートからチャートの階層の下方向に処理されます。
チャートのルートは、
E_oneの結果、ルート レベルに有効な遷移が存在するかどうかをチェックします。有効な遷移は存在しません。ステート
Aのduringアクション (durA()) が実行されて完了します。ステート
Aの子は、パラレル (AND) ステートです。ラベル付けされた順序でステートの評価と実行が行われます。ステートA.A1が最初に評価されます。ステートA.A1のduringアクション (durA1()) が実行されて完了します。ステートA.A1が実行され、onE_oneアクションが完了されて、イベント (E_two) がブロードキャストされます。duringアクションとonevent_nameアクションは、ステートのラベル内での出現順に基づいて処理されます。イベント
E_twoのブロードキャストによって、チャートの 2 度目の起動が発生します。チャートのルートは、E_twoの結果、有効な遷移が存在するかどうかをチェックします。有効な遷移は存在しません。ステート A の
duringアクション (durA()) が実行されて完了します。ステート A の子の有効な遷移がチェックされます。有効な遷移は存在しません。
ステート A の子がステート
A.A1から順番に評価されます。ステートA.A1のduringアクション (durA1()) が実行されて完了します。ステートA.A1の有効な遷移が評価されます。ステートA1には、E_twoの結果、有効な遷移は存在しません。ステート
A1aのduringアクション (durA1a()) が実行されます。ステート
A.A2が評価されます。ステートA.A2のduringアクション (durA2()) が実行されて完了します。ステートA.A2の有効な遷移がチェックされます。ステートA.A2には、E_twoの結果、ステートA.A2.A2aからステートA.A2.A2bへの有効な遷移が存在します。ステート
A.A2.A2aのexitアクション (exitA2a()) が実行されて完了します。ステート
A.A2.A2aが非アクティブとしてマークされます。ステート
A.A2.A2bがアクティブとしてマークされます。ステート
A.A2.A2bのentryアクション (entA2b()) が実行されて完了します。
E_twoのonイベント ブロードキャストが処理されてから、E_oneの処理は続行されます。イベントE_oneの結果として、ステートA.A1の有効な遷移がチェックされます。ステートA.A1.A1aからステートA.A1.A1bへの有効な遷移が存在します。ステート
A.A1.A1aがexitアクション (exitA1a) の実行を完了します。ステート
A.A1.A1aが非アクティブとしてマークされます。ステート
A.A1.A1bがアクティブとしてマークされます。ステート
A.A1.A1bのentryアクション (entA1b()) が実行されて完了します。パラレル ステート
A.A2が次に評価されます。ステートA.A2のduringアクション (durA2()) が実行されて完了します。E_oneの結果、有効な遷移は存在しません。ステート
A.A2.A2bのduringアクション (durA2b()) が実行されて完了します。E_twoのonイベント ブロードキャスト処理の結果、ステートA.A2.A2bがアクティブになります。チャートはスリープ状態に戻ります。
このシーケンスは、イベント E_one と、イベント E_two のパラレル ステートへの on イベント ブロードキャストに関連する Stateflow® チャートの実行を完了します。最後のチャート アクティビティでは、パラレル サブステート A.A1.A1b および A.A2.A2b がアクティブになります。
ヒント
指示のないローカル イベント ブロードキャストは使用しないでください。指示のないローカル イベント ブロードキャストを使用すると、チャート内で不要な再帰的動作が発生する場合があります。代わりに、指示のあるブロードキャストを使用してローカル イベントを送信してください。詳細については、ローカル イベントをブロードキャストしてパラレル ステートを同期を参照してください。
シミュレーション時に Stateflow チャートは指示のないローカル イベント ブロードキャストを検出できます。診断アクションのレベルを制御するには、[コンフィギュレーション パラメーター] ダイアログ ボックスを開き、[診断] 、 [Stateflow] ペインで、[指示のないイベント ブロードキャスト] パラメーターを [なし]、[警告]、または [エラー] に設定します。既定の設定は [警告] です。詳細については、指示のないイベント ブロードキャスト (Simulink)を参照してください。
遷移アクションでのイベントのブロードキャスト
以下の例は、パラレル ステートで入れ子にされたイベント ブロードキャストを含むイベント ブロードキャスト遷移アクションの動作を示しています。

イベント E_one 処理の開始
最初は、チャートはスリープ状態です。パラレル サブステート A.A1.A1a と A.A2.A2a がアクティブです。イベント E_one が発生して、チャートを起動します。このイベントは、チャートのルートからチャートの階層の下方向に処理されます。
チャートのルートは、
E_oneの結果、有効な遷移が存在するかどうかをチェックします。有効な遷移は存在しません。ステート
Aのduringアクション (durA()) が実行されて完了します。ステート
Aの子は、パラレル (AND) ステートです。ラベル付けされた順序でステートの評価と実行が行われます。ステートA.A1が最初に評価されます。ステートA.A1のduringアクション (durA1()) が実行されて完了します。イベント
E_oneの結果として、ステートA.A1の有効な遷移がチェックされます。ステートA.A1.A1aからステートA.A1.A1bへの有効な遷移が存在します。ステート
A.A1.A1aがexitアクション (exitA1a) の実行を完了します。ステート
A.A1.A1aが非アクティブとしてマークされます。
E_one よりも優先されるイベント E_two
イベント
E_twoをブロードキャストする遷移アクションが実行されて完了します。イベント
E_twoのブロードキャストは、ステートA1aからステートA1b(イベントE_oneによってトリガー) への遷移よりも優先されます。イベント
E_twoのブロードキャストによって、チャートの 2 度目の起動が発生します。チャートのルートは、E_twoの結果、有効な遷移が存在するかどうかをチェックします。有効な遷移は存在しません。ステート
Aのduringアクション (durA()) が実行されて完了します。ステート
Aの子がステートA.A1から順番に評価されます。ステートA.A1のduringアクション (durA1()) が実行されて完了します。ステートA.A1の有効な遷移が評価されます。ステートA1には、E_twoの結果、有効な遷移は存在しません。ステート
A.A2が評価されます。ステートA.A2のduringアクション (durA2()) が実行されて完了します。ステートA.A2の有用な遷移がチェックされます。ステートA.A2には、E_twoの結果、ステートA.A2.A2aからステートA.A2.A2bへの有効な遷移が存在します。ステート
A.A2.A2aのexitアクション (exitA2a()) が実行されて完了します。ステート
A.A2.A2aが非アクティブとしてマークされます。ステート
A.A2.A2bがアクティブとしてマークされます。ステート
A.A2.A2bのentryアクション (entA2b()) が実行されて完了します。
イベント E_one の処理再開
ステート
A.A1.A1bがアクティブとしてマークされます。ステート
A.A1.A1bの entry アクション (entA1b()) が実行されて完了します。パラレル ステート
A.A2が次に評価されます。ステートA.A2の during アクション (durA2()) が実行されて完了します。E_oneの結果、有効な遷移は存在しません。ステート
A.A2.A2bの during アクション (durA2b()) が実行されて完了します。イベント ブロードキャスト
E_two処理の結果、ステートA.A2.A2bがアクティブになります。チャートはスリープ状態に戻ります。
このシーケンスは、イベント E_one と、イベント E_two のパラレル ステートへの遷移アクション イベント ブロードキャストに関連する Stateflow チャートの実行を完了します。最後のチャート アクティビティでは、パラレル サブステート A.A1.A1b および A.A2.A2b がアクティブになります。
ヒント
指示のないローカル イベント ブロードキャストは使用しないでください。指示のないローカル イベント ブロードキャストを使用すると、チャート内で不要な再帰的動作が発生する場合があります。代わりに、指示のあるブロードキャストを使用してローカル イベントを送信してください。詳細については、ローカル イベントをブロードキャストしてパラレル ステートを同期を参照してください。
シミュレーション時に Stateflow チャートは指示のないローカル イベント ブロードキャストを検出できます。診断アクションのレベルを制御するには、[コンフィギュレーション パラメーター] ダイアログ ボックスを開き、[診断] 、 [Stateflow] ペインで、[指示のないイベント ブロードキャスト] パラメーターを [なし]、[警告]、または [エラー] に設定します。既定の設定は [警告] です。詳細については、指示のないイベント ブロードキャスト (Simulink)を参照してください。
条件アクションでのイベントのブロードキャスト
以下の例は、パラレル (AND) ステートでの条件アクション イベント ブロードキャストの動作を示しています。

最初は、チャートはスリープ状態です。パラレル サブステート A.A1.A1a と A.A2.A2a がアクティブです。イベント E_one が発生して、チャートを起動します。このイベントは、チャートのルートからチャートの階層の下方向に処理されます。
チャートのルートは、
E_oneの結果、有効な遷移が存在するかどうかをチェックします。有効な遷移は存在しません。ステート
Aのduringアクション (durA()) が実行されて完了します。ステート
Aの子は、パラレル (AND) ステートです。ラベル付けされた順序でステートの評価と実行が行われます。ステートA.A1が最初に評価されます。ステートA.A1のduringアクション (durA1()) が実行されて完了します。イベント
E_oneの結果として、ステートA.A1の有効な遷移がチェックされます。ステートA.A1.A1aからステートA.A1.A1bへの有効な遷移が存在します。有効な条件アクションも存在します。E_twoの条件アクション イベント ブロードキャストが実行されて完了します。ステートA.A1.A1aはこの時点でもアクティブです。イベント
E_twoのブロードキャストによって、Stateflow チャートの 2 度目の起動が発生します。チャートのルートは、E_twoの結果、有効な遷移が存在するかどうかをチェックします。有効な遷移は存在しません。ステート
Aのduringアクション (durA()) が実行されて完了します。ステート
Aの子がステートA.A1から順番に評価されます。ステートA.A1のduringアクション (durA1()) が実行されて完了します。ステートA.A1の有効な遷移が評価されます。ステートA1には、E_twoの結果、有効な遷移は存在しません。ステート
A1aのduringアクション (durA1a()) が実行されます。ステート
A.A2が評価されます。ステートA.A2のduringアクション (durA2()) が実行されて完了します。ステートA.A2の有効な遷移がチェックされます。ステートA.A2には、E_twoの結果、ステートA.A2.A2aからステートA.A2.A2bへの有効な遷移が存在します。ステート
A.A2.A2aのexitアクション (exitA2a()) が実行されて完了します。ステート
A.A2.A2aが非アクティブとしてマークされます。ステート
A.A2.A2bがアクティブとしてマークされます。ステート
A.A2.A2bのentryアクション (entA2b()) が実行されて完了します。
ステート
A.A1.A1aがexitアクション (exitA1a) の実行を完了します。ステート
A.A1.A1aが非アクティブとしてマークされます。ステート
A.A1.A1bがアクティブとしてマークされます。ステート
A.A1.A1bのentryアクション (entA1b()) が実行されて完了します。パラレル ステート
A.A2が次に評価されます。ステートA.A2のduringアクション (durA2()) が実行されて完了します。E_oneの結果、有効な遷移は存在しません。ステート
A.A2.A2bのduringアクション (durA2b()) が実行されて完了します。E_twoの条件アクション イベント ブロードキャスト処理の結果、ステートA.A2.A2bがアクティブになります。チャートはスリープ状態に戻ります。
このシーケンスは、イベント E_one と、イベント E_two のパラレル ステートへの条件アクション イベント ブロードキャストに関連する Stateflow チャートの実行を完了します。最後のチャート アクティビティでは、パラレル サブステート A.A1.A1b および A.A2.A2b がアクティブになります。
ヒント
指示のないローカル イベント ブロードキャストは使用しないでください。指示のないローカル イベント ブロードキャストを使用すると、チャート内で不要な再帰的動作が発生する場合があります。代わりに、指示のあるブロードキャストを使用してローカル イベントを送信してください。詳細については、ローカル イベントをブロードキャストしてパラレル ステートを同期を参照してください。
シミュレーション時に Stateflow チャートは指示のないローカル イベント ブロードキャストを検出できます。診断アクションのレベルを制御するには、[コンフィギュレーション パラメーター] ダイアログ ボックスを開き、[診断] 、 [Stateflow] ペインで、[指示のないイベント ブロードキャスト] パラメーターを [なし]、[警告]、または [エラー] に設定します。既定の設定は [警告] です。詳細については、指示のないイベント ブロードキャスト (Simulink)を参照してください。