ドキュメンテーション

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

遷移アクション タイプ

ステート アクション タイプでは、アクションをステートのラベルに追加しました。アクションをラベル上の遷移に追加することも可能です。遷移は、イベント トリガーまたはメッセージ トリガー、条件、条件アクション、遷移アクションなどのさまざまなアクション タイプをもつことができます。アクション タイプは一般的な形式のラベル表記法に従っています。

event_or_message trigger[condition]{condition_action}/{transition_action}

以下の例は、典型的な遷移ラベルの構文を示しています。

遷移イベント トリガー条件条件アクション遷移アクション
ステート A からステート Cevent1temp > 50func1()なし
ステート A からステート Bevent2なしなしdata1 = 5

イベント トリガーまたはメッセージ トリガー

遷移ラベル構文では、イベント トリガーまたはメッセージ トリガーがイベントまたはメッセージの名前として先頭に表示されます。遷移ラベル内の他のアクションと区別する目的で、特殊文字が使用されることはありません。遷移アクション タイプ の例では、ステート A からの遷移の両方にイベント トリガーが設定されています。ステート A からステート B への遷移にはイベント トリガー event2、ステート A からステート C への遷移にはイベント トリガー event1 がそれぞれ設定されています。

条件 (指定してある場合) が真であれば、イベント トリガーは遷移を発生させるイベントを指定します。イベントの指定はオプションです。メッセージ トリガーは、メッセージ キュー内にメッセージが存在する場合に遷移を実行するように指定します。イベントまたはメッセージが指定されていない場合は、何らかのイベントが発生したときに遷移が発生します。複数のイベントまたはメッセージを指定するには、OR 論理演算子 (|) を使用します。

条件

遷移ラベル構文では、条件は大かっこ ([]) で囲まれた論理式として表現されます。遷移アクション タイプ の例では、ステート A からステート C への遷移に条件 temp > 50 が設定されています。

条件とは、指定した式が真である場合に遷移が発生するように指定する論理式です。条件を定義および使用する際には、以下のガイドラインに従ってください。

  • 条件式は、true (1) または false (0) として評価される論理式でなければなりません。

  • 条件式は、以下のいずれかの要素で構成されます。

  • 条件式では、数値を返す、グラフィカル関数、真理値表関数、または MATLAB® 関数を呼び出すことができます。

    たとえば、[test_function(x, y) < 0] は、有効な条件式です。

    メモ

    複数の値を返す関数を条件式で呼び出した場合は、最初の値のみが適用されます。その他の戻り値は使用されません。

  • 条件式では、チャートによるステートの変更や変数の修正を引き起こす関数を呼び出さないでください。

  • 論理式は、AND 関係を表す & と OR 関係を表す | を使用してグループ化できます。

  • 代入ステートメントは、有効な条件式ではありません。

  • 単項増分および単項減分アクションは、有効な条件式ではありません。

条件アクション

遷移ラベル構文では、条件アクションは遷移条件に続いて、中かっこ ({}) で囲まれて表現されます。遷移アクション タイプ の例では、ステート A からステート C への遷移に条件アクション func1() (関数呼び出し) が設定されています。

条件アクションは、条件が真として評価された時点で、遷移先が有効であると判定されるよりも前に実行されます。条件を指定していない場合、暗黙の条件は真であると評価されて条件アクションが実行されます。

メモ

条件がイベントでガードされている場合、そのイベント トリガーがアクティブな場合にのみ条件がチェックされます。条件がメッセージでガードされている場合、そのメッセージが存在する場合にのみ条件がチェックされます。

遷移アクション

遷移ラベル構文では、遷移アクションはその前にスラッシュ (/) が追加され、中かっこ ({}) で囲まれます。遷移アクション タイプの例では、ステート A からステート B への遷移に遷移アクション data1 = 5 が設定されています。C チャートでは、遷移アクションを中かっこで囲む必要はありません。MATLAB をアクション言語として使用するチャートでは、遷移アクションに中かっこが付いていない場合、構文が自動修正されます。アクション言語の自動修正を参照してください。

遷移アクションは完全な遷移パスが実行された後でのみ実行されます。遷移先が有効であると判定され、かつ、条件がある場合には、それが真になった後に実行されます。遷移が複数のセグメントで構成されている場合、遷移アクションが実行されるのは、最終的な遷移先に至るまでの遷移パス全体が有効であると判定された後に限定されます。