Skip to main content

要素:複合状態

この要素を使用して、複数の状態をグループ化できます。

. 複合状態は、直交または非直交にすることができます。
  • 直交状態:2つ以上の領域を持つ複合状態。直交状態では、内部状態が領域にグループ化され、領域が優先されます。これらは、実行時に処理順序を制御します。領域の状態は、内部シーケンスに従って疑似並列で実行されます。

  • 非直交状態: 領域が 1 つだけある複合状態。非直交状態では、内部状態は実行時に順番に実行されます。内部状態は複合状態になることもあります。非直交状態の入れ子には任意の深さを持たせることができ、最も内側の状態を除いて、どの状態も複数の領域を持つことができません。

直交状態と非直交状態は、 エントリ アクション、 する アクション、および 出口 アクション。例外遷移がアクティブな場合、 出口 直交状態の各領域の各アクティブ状態のアクションが実行されます。

_uml_img_orthogonal_state.png

複合状態の名前は、長方形の左上隅に表示されます。リージョンは破線で区切られています。リージョンの優先度は、リージョンの右上隅に表示されます。

ルール

. ルール
  • 異なる地域の州間での移行は許可されていません。

  • 複合状態には、1つ以上の発信例外遷移を含めることができます。たとえば、例外遷移を使用して、エラー処理を効率的に実装できます。

  • 複合状態には、最大で1つの完了遷移があります。したがって、各リージョンには1つの開始状態と1つの終了状態が含まれます。複合状態は、すべての領域が最終状態に達したときに終了状態に達します。複合状態に出力完了遷移がない場合、リージョンには開始状態または終了状態がない可能性があります。

  • 直交状態内の状態への遷移は、フォークからのみ許可され、常に無条件です。

  • 非直交状態には、別の複合状態を含めることができます。この場合、状態はネストされています。

  • 非直交複合状態には、を割り当てることができます エントリ アクションおよび/または する アクションおよび/または 出口 アクション。

プロパティ

財産

説明

識別子

複合状態の名前

例: DoorAutomaton

要素の色。色選択ダイアログを使用して色を変更できます。デフォルト:黄色

ENTRY / DO / EXITアクションを許可する

要件:選択された複合状態は正確に 領域。

ENTRY、DO、およびEXITアクションは、次のユースケースにも割り当てることができます。

  • ネストされた複合状態

  • 内部の開始状態または終了状態のない状態

  • 内部発信完了または例外遷移のない状態

_cds_icon_checked.png:それぞれに1つずつ割り当てることができます ENTRYDO、 と EXIT 状態へのアクション。

内部複合状態がアクティブな場合でも、DOアクションを実行します

このオプションは、最も外側の複合状態でのみ使用可能であり、内部状態に継承されます。

_cds_icon_checked.png:内部複合状態の1つが同時にアクティブであっても、DOアクションは実行時に継続的に実行されます。 The {内部コンポジットに対しても実行} このアクションの動作を示すために、DOアクションの横にあるエディターにメモが表示されます。

_cds_icon_option_deactivated.png:内部複合状態の1つがアクティブになるとすぐに、外部状態のDOアクションが一時停止します。

ユーザー入力

アクション

説明

  1. 空の複合状態を選択します。

  2. クリック _uml_icon_transition_completion.png シンボル。

    発信完了遷移が生成されます。

  3. 3.既存の要素をクリックします(タイプ: 複合状態フォーク/参加、 また 選択)。

    完了遷移が2つの要素の間に挿入されます。

注:既存の要素をクリックせずに空白の領域をクリックすると、新しい状態が作成されます。

追加します _uml_icon_transition_exception.png 同じように例外遷移。

  1. マウスポインタを空の複合状態に移動します。

  2. クリック _uml_icon_sc_area_add.png シンボル。

    状態が細分化され、別の領域が追加されます。

    _uml_state_orthogonal.png

地域の右側に優先度が表示されます。優先度の低いリージョンが最初に処理されます。優先度を変更できます。 CODESYS 他の地域の優先順位を自動的に適応させます。

  1. 複数のリージョンを持つ複合状態を選択します。

  2. 区切り線を移動します。

  3. 区切り線をダブルクリックして選択します。

    線は青色で表示されます。

  4. を押します デル 鍵。

    行が削除されます。

区切り線が削除された後、2つの領域(境界線で区切られている)が1つの領域にマージされます。

  1. 複数のリージョンを持つ複合状態を選択します。

  2. 地域の優先度を2回クリックします。

これで、優先度を変更できます。

優先度が変更されると、他の優先度が自動的に調整されます。

  1. マウスポインタを空の複合状態に移動します。

    状態のアクションが表示されます。

    _uml_img_composite_state_with_acitvated_actions.png

  2. 2. 2.3つのいずれかをクリックします _uml_icon_actions_vertical.png シンボル。

  3. クリック _uml_icon_sc_action_do.png シンボル。

    状態は、DOアクション/メソッドによって拡張されます。

  4. DOアクションが割り当てられている状態にカーソルを合わせます。

  5. クリック _uml_icon_sc_action_add.png シンボル。

    The 新しいアクションオブジェクト ダイアログが開きます。

  6. を選択 アクション 物体。

  7. 名前と実装言語を指定します。

    ステートチャートのPOUの下に新しいアクションが挿入されます。

  8. クリック _uml_icon_sc_action_open.png シンボル。

    対応するアクションまたはメソッドのエディターが開きます。

要件: ENTRY / DO / EXITアクションを許可する プロパティが選択されています。

アクションオブジェクトは、アクションまたはメソッドにすることができます。アクションがメソッドの場合は、リターンタイプとアクセスタイプも定義する必要があります。 新しいアクションオブジェクト ダイアログ。アクションオブジェクトへの割り当ては、要素のプロパティで変更できます。

状態には、ENTRYアクション、DOアクション、およびEXITアクションを含めることができます。

  • ENTRYアクション/メソッドは状態を初期化できます。すべての着信遷移がに設定されている場合に1回実行されます TRUE

  • 状態がアクティブである限り、DOアクション/メソッドが実行されます。アクションは、任意の実装言語でプログラムできます。使用する場合 ステートチャート、階層構造が作成されます。

  • EXITアクション/メソッドは、状態が有効な状態で終了することを確認する必要があります。 EXITアクションは、状態のすべての発信遷移が TRUE

ヒント

要素のプロパティでアクションまたはメソッドを追加または変更することもできます。

22. 例外遷移と完了遷移を伴う複合状態
_uml_img_composite_state_example.png


23. 完了遷移のない複合状態
_uml_img_composite_state_without_completion.png


24. ネストされた複合状態
_uml_img_nested_composite_states.png


25. フォーク付きの直交状態
_uml_img_fork_join_example.png


例: エレベーター

26. 完了遷移と例外遷移を伴う直交状態
_uml_img_orthogonal_state_lift.png