関数呼び出し入力イベントによって有効になったチャートでのステートの制御
Simulink® モデルでは、Stateflow® チャートが関数呼び出しの入力イベントによってイネーブルにされるとき、[イネーブル時の状態]チャート プロパティを設定してチャートのステートを制御できます。このプロパティは、入力イベントによってチャートが再度イネーブルにされるときのステートとデータの値を決定します。
Held
— ステートとデータの最新の値を保持。Reset
— ステートとデータの初期値に戻す。
新しいチャートの場合、既定の設定はHeld
です。詳細については、入力イベントの送信による Stateflow チャートのアクティブ化を参照してください。
関数呼び出しの入力イベントによってイネーブルにされるチャートの例
以下のモデルでは、Caller
チャートはイベントE
を使用してCallee
チャートを起動し、実行します。
Caller
チャートには 2 つのステート、A
とB
が含まれています。出力イベントE
をステートA
にバインドすると、次のようになります。
A
を入力してCallee
チャートを有効化します。A
を終了してCallee
チャートを無効にします。A
を再入力してCallee
チャートを再び有効にします。
時相論理演算子afterは、10 タイム ステップごとにアクティブ ステートを変更するので、Callee
チャートは繰り返しイネーブルおよびディセーブルにされます。
Callee
チャートには 2 つのステート、C
とD
が含まれています。チャートが実行されるたびに、出力データy
が 1 ずつ増分されます。最初は、ステートC
はアクティブです。1 タイム ステップの後、y
の値が正になり、チャートはステートD
に遷移します。
プロパティがHeld
の場合のチャートのシミュレーション
Callee
チャートでは[イネーブル時の状態]プロパティがHeld
に設定されています。シミュレーション中に、関数呼び出し入力イベントが時間および
でチャートを再度イネーブルにすると、ステート
D
がアクティブのままになり、出力y
は最新の値を保持します。
プロパティがReset
の場合のチャートのシミュレーション
Callee
チャートで[イネーブル時の状態]プロパティをReset
に変更します。シミュレーション中に、関数呼び出し入力イベントが時間および
でチャートを再度イネーブルにすると、ステート
C
がアクティブになり、出力y
は初期値 0 に戻ります。