Main Content

at

イベント ブロードキャストまたは指定した時間でチャートを実行

説明

at(n,E) は、関連付けられたステートがアクティブになってからのイベント E の発生回数が厳密に n 回である場合に true を返します。それ以外の場合、演算子は false を返します。

at(n,tick) は、関連付けられたステートがアクティブになってからのチャートの起動回数が厳密に n 回である場合に true を返します。それ以外の場合、演算子は false を返します。

Simulink® モデル内の Stateflow® チャートに入力イベントがある場合、暗黙的イベント tick はサポートされません。

at(n,sec) は、関連付けられたステートがアクティブになってからの経過時間が厳密に n 秒である場合に true を返します。それ以外の場合、演算子は false を返します。

MATLAB® のスタンドアロン チャートで、n0.001 以上の値を指定します。演算子は、チャートを起動するための暗黙的イベントを生成する MATLAB timer オブジェクトを作成します。MATLAB timer オブジェクトの精度は 1 ミリ秒に制限されます。詳細については、スタンドアロン チャートのイベントを参照してください。

  • timer オブジェクトは、関連付けられたステートとそのサブステートの entry アクションをチャートが実行すると作成されます。チャートの実行中に値が変化する式を n に指定した場合、チャートは timer オブジェクトの時間遅延を調整しません。

  • timer オブジェクトは、関連付けられたステートがアクティブになっている場合、チャート ステップの最後に実行を開始します。このステップには、チャート内にある他のパラレル ステートの実行が含まれることがあります。

  • チャートが timer オブジェクトからの暗黙的イベントを受け取ったときに他の演算を処理している場合、チャートはこのイベントをキューに入れます。現在のステップが完了すると、チャートはこのイベントを処理します。

  • 時相論理演算子に関連付けられたステートが、チャートによる暗黙的イベントの処理より前に非アクティブになった場合、このイベントはチャートを起動しません。

メモ

この構文は、MATLAB のスタンドアロン チャートでのみサポートされます。Simulink モデルのチャートについては、after 演算子を代わりに使用します。詳細については、Simulink モデルのチャートで絶対時間の時相論理に at を使用しないを参照してください。

すべて展開する

ステートがアクティブになってから 3 番目のイベント E のブロードキャストをチャートが処理すると、ステータス メッセージが表示されます。

on at(3,E): disp("ON");

Stateflow chart that uses the at operator in a state.

ステートがアクティブになってから 5 番目のイベント E のブロードキャストをチャートが処理すると、関連付けられたステートから遷移します。

at(5,E)

Stateflow chart that uses the at operator in a transition.

厳密に 5 回のイベント E のブロードキャストでステートがアクティブだった場合に、関連付けられたステートから遷移します。

Simulink モデルのチャートで、次のように入力します。

[at(5,E)]

Stateflow chart that uses the at operator in a transition.

時相論理演算子の条件表記法は、MATLAB のスタンドアロンのチャートではサポートされていません。

関連付けられたステートがアクティブになってからチャートが 7 回起動すると、このステートから遷移します。ただし、変数 temp が 98.6 より大きい場合に限られます。

at(7,tick)[temp > 98.6]

Stateflow chart that uses the at operator in a transition.

ステートが厳密に 12.3 秒アクティブだった場合に、変数 tempHIGH に設定します。

MATLAB のスタンドアロン チャートで、次のように入力します。

on at(12.3,sec): temp = HIGH;

Stateflow chart that uses the at operator in a state.

Simulink モデルのチャートでは、every を絶対時間の時相論理演算子として使用することはサポートされていません。

ヒント

  • 引用符を使用してキーワード 'tick' および 'sec' を囲むことができます。たとえば、at(5,'tick')at(5,tick) と同じです。

  • Stateflow チャートは、関連付けられたステートが再びアクティブになるたびに、at 演算子で使用されるカウンターをリセットします。

  • MATLAB のスタンドアロン チャートは、絶対時間時相論理を時計時間で定義します。この時間の精度は 1 ミリ秒に制限されています。

バージョン履歴

R2014b で導入