Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

ステート構造を使用した排他的モードとパラレル モードの定義

各ステート (またはチャート) には、含めることのできるサブステートの種類を決定する "構造" が含まれています。スーパーステートのすべてのサブステートは、スーパーステートの構造とタイプが一致していなければなりません。ステートの構造は、排他的 (OR) またはパラレル (AND) です。

排他的 (OR) ステート構造

実線の境界をもつサブステートは、排他的 (OR) ステート構造を示しています。この構造は、互いに排他的な動作モードの記述に使用します。ステートに排他的 (OR) 構造が含まれる場合、一度にアクティブにできるサブステートの数は 1 つに限定されます。

たとえば、次のチャートでは、ステート A とステート B のどちらかのみがアクティブになります。ステート A がアクティブな場合、ステート A1 またはステート A2 のいずれかをアクティブにできます。

Chart with two exclusive substates called A and B. State A has two exclusive substates called A1 and A2.

パラレル (AND) ステート構造

破線の境界をもつサブステートは、パラレル (AND) 構造を示しています。この構造は、同時動作モードの記述に使用します。ステートがパラレル (AND) 構造をもつ場合、すべてのサブステートは同時にアクティブになります。

以下の例では、ステート A がアクティブになると、A1A2 の両方が同時にアクティブになります。

State A with two parallel substates called A1 and A2.

パラレル ステート内のアクティビティは、以下の例で示すように、基本的に独立しています。

以下の例では、ステート A がアクティブになると、ステート BC の両方が同時にアクティブになります。ステート C がアクティブになると、ステート C1 またはステート C2 のどちらかがアクティブになります。

State A with two parallel substates called B and C. State C has two exclusive states called C1 and C2.

サブステート構造の指定

スーパーステートの構造を設定することで、パラレル (AND) ステートまたは排他的 (OR) ステートをスーパーステートに含めるかどうかを指定します。ステートがアクティブなときに、そのサブステートがすべてアクティブになっている場合は、そのステートにはパラレル (AND) 構造が含まれています。ステートがアクティブなときに、そのサブステートが 1 つのみアクティブになっている場合は、そのステートには排他的 (OR) 構造が含まれています。

ステートの構造を変更するには、ステートを選択し、ステートを右クリックして [構造] コンテキスト メニューを表示し、メニューから [排他 (OR)] または [パラレル (AND)] を選択します。

チャートのステート構造も指定することができます。この場合、Stateflow® チャートでは、最上位のステートがサブステートとして扱われます。チャートは、排他的構造を含むステートを作成します。チャートの構造を指定するには、すべてのオブジェクトの選択を解除し、チャートを右クリックして [構造] コンテキスト メニューを表示し、メニューから [排他 (OR)] または [パラレル (AND)] を選択します。

サブステートの外観は、そのスーパーステートの構造を示しています。排他的サブステートは実線の境界となり、パラレル サブステートは破線の境界となります。パラレル サブステートは、右上隅に番号も表示されます。この番号は、兄弟関係にあるサブステートの相対的なアクティブ化の順序を示しています。

パラレル ステートのアクティブ化順序の指定

次の 2 つの方法のいずれかを用いて、アクティブ化の順序を指定することができます。つまり、明示的な順序付けまたは暗黙的な順序付けです。

  • 既定の設定では、新しい Stateflow チャートを作成すると、"明示的な順序付け" が適用されます。この場合は、アクティブ化の順序をステートごとに指定します。

  • また、パラレル ステートが位置に基づいて順序付けされるようにすることで、明示的な順序付けをオーバーライドすることもできます。このモードは、"暗黙的な順序付け" と呼ばれます。

詳細については、パラレル ステートの明示的な順序付けパラレル ステートの暗黙的な順序付けを参照してください。

メモ

パラレル ステートのアクティブ化の順序は、ステートの右上隅に表示されます。