Main Content

in

ステート アクティビティのチェック

説明

in(state_name) は、ステート state_name がアクティブである場合 1 (true) を返します。それ以外の場合、演算子は 0 (false) を返します。

すべて展開する

ステート Fan のサブステート アクティビティをチェックして、ステート Heater のサブステートとの同期を維持します。

Fan.On がアクティブになったら、Heater.Off から Heater.On に遷移させます。

[in(Fan.On)]

Fan.Off がアクティブになったら、Heater.On から Heater.Off に遷移させます。

[in(Fan.Off)]

Stateflow chart with two superstates called Fan and Heater. Each superstate has two substates called On and Off.

Fan 内のアクティブなサブステートを変更すると、Heater 内のアクティブなサブステートが対応して変化します。

airflow の値を、電源が入っている扇風機の数に設定します。

airflow = in(FAN1.On) + in(FAN2.On);

Stateflow chart that uses the in operator in a state.

ヒント

ステート アクティビティを判別するため、Stateflow® チャートはステート階層の局所的な検索を実行します。チャートはすべてのステートに対する網羅的探索は実行しません。また、最初の一致が見つかった時点では停止しません。一意な検索結果が見つかる可能性を高くするには、次を行います。

  • ドット表記を使用してステートの名前を修飾します。

  • ステートに一意の名前を付けます。

  • ステートやボックスを囲いとして使用して、パス解決の検索範囲を制限します。

また、チャートでは、他のチャートに含まれるステートのアクティビティに基づいてアクションをトリガーする in 条件は使用できません。

詳細については、ステート アクティビティの解決を参照してください。

バージョン履歴

R2006a より前に導入