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)] を選択します。

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

関連するトピック