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

after

after 演算子でチャートの実行を制御する

説明

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

入力イベントが設定されていないチャートでは、after(n,tick) は、関連付けられたステートがアクティブになってからのチャートの起動回数が n 以上である場合に true を返します。

関連付けられたステートが再びアクティブになるたびに、after 演算子は E のカウンターを 0 にリセットします。

after(n,time_unit) は、関連付けられたステートがアクティブになってから n 単位の時間が経過している場合、true を返します。それ以外の場合、演算子は false を返します。time_unit は、秒 (sec)、ミリ秒 (msec) またはマイクロ秒 (usec) として指定します。

関連付けられたステートが再びアクティブになるたびに、after 演算子は secmsec および usec のカウンターを 0 にリセットします。

すべて展開する

ステートがアクティブになってから、5 クロック サイクル目以降の CLK サイクルごとにステータス メッセージが表示されます。

on after(5,CLK): status('on');

ステートがアクティブになってから 10 CLK サイクル後に、ROTATE イベントのブロードキャストでのみ、関連付けられたステートから遷移が発生します。

ROTATE[after(10,CLK)]

ステートがアクティブになってから 12.3 秒の経過後、temp 変数は LOW になります。

on after(12.3,sec): temp = LOW;

ステートがアクティブになってから 8 ミリ秒の経過後、関連付けられたステートからの遷移が発生します。

after(8,msec)

ヒント

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

  • 絶対時間の時相論理演算子のタイミングは Stateflow® チャートのタイプによって異なります。

    • Simulink® モデル内のチャートは時相論理をシミュレーション時間で定義します。

    • MATLAB® のスタンドアロン チャートは時相論理を時計時間で定義します。

    タイミングの差はチャートの動作に影響する場合があります。たとえば、次のチャートはステート Aduring アクションを実行しているとします。

    • Simulink モデルでは、f への関数呼び出しが 1 つのタイム ステップで実行され、シミュレーション時間に寄与しません。チャートは f への関数呼び出しを完了した後でステート A からステート B に遷移し、関数 g を呼び出します。

    • スタンドアロン チャートでは、f への関数呼び出しが完了するまでに時計時間で数秒間かかる可能性があります。呼び出しが 2 秒より長く続く場合、チャートはステート B に遷移し、関数 f の実行が完了する前に関数 g を呼び出します。

R2014b で導入