Main Content

スーパートランジションを使用した階層レベル間の移動

"スーパートランジション" とは、チャート内の異なるレベル間での遷移です。スーパートランジションは、最上位のチャート内のステートと、その兄弟関係のステートのいずれかにあるサブステートの間、またはチャートの異なるステートにあるサブステートの間を遷移することができます。たとえば、以下のチャートには、兄弟関係にある 2 つのステートのサブステート間でのスーパートランジションが含まれています。

Supertransition between substates of sibling states.

チャート内の任意数のレベルにまたがるスーパートランジションを作成できます。サブチャートに出入りするスーパートランジションは、それぞれが異なる包含レベルにある複数の遷移セグメントで構成されます。たとえば、次のチャート モデルには、On サブチャートを抜け出すスーパートランジションが表示されます。

Chart modeling a bang-bang controller.

同じスーパートランジションがサブチャート内に表示されます。

The On substate.

遷移のアクションの定義に記載された手順を使用して、任意の遷移セグメントにラベルを付けることができます。結果のラベルは、スーパートランジションの各セグメントに表示されます。たとえば、前の例では、両方のスーパートランジションのセグメントに同じラベル [warm()] が付いています。いずれかのセグメントのラベルを変更すると、その変更が他のセグメントにも表示されます。

各セグメントがサブチャートに出入りする位置は、相互に影響します。たとえば、スーパートランジションがサブチャート On を出る位置を移動すると、スーパートランジションが最上位のチャートに現れる位置も移動します。

ヒント

entry 端子と exit 端子は、Stateflow® の階層内の境界を越えて遷移する別の方法を提供します。詳細については、スーパートランジションか、entry 端子と exit 端子かの選択を参照してください。

サブチャートに入るスーパートランジションの作成

  1. 遷移元ステートの境界をポイントします。ポインターが十字形に変化します。

    Chart that contains a state and a subchart.

  2. クリックしてサブチャートの境界の内側にドラッグします。スーパートランジションが遷移元ステートをサブチャートに接続します。サブチャートに遷移が入る位置を変更するには、サブチャートの境界の内側付近に遷移セグメントの終点をドラッグします。

    First segment of the supertransition entering the subchart.

  3. サブチャートをダブルクリックして開きます。スーパートランジションの矢印が赤で強調表示されます。

    Subchart that contains a substate. The arrowhead of the supertransition appears highlighted in red.

  4. 矢印をクリックして、サブチャート内の目的の遷移先までポインターをドラッグします。

    Pointer dragging the supertransition arrowhead to the desired destination.

  5. ポインターを離します。

    Second segment of the supertransition connects to the substate of the subchart.

メモ

サブチャートの境界を越えてスーパートランジションを描画するときに、元に戻すボタンとやり直しボタンは無効です。前の操作を元に戻したりやり直したりすることはできません。

サブチャートを出るスーパートランジションの作成

  1. サブチャートの境界の外側の位置に遷移を描画します。

    First segment of the supertransition exiting the subchart.

  2. サブチャートの親に移動します。スーパートランジションの矢印が赤で強調表示されます。

    Chart that contains a subchart and a substate. The arrowhead of the supertransition appears highlighted in red.

  3. 矢印をクリックして、チャート内の目的の遷移先までポインターをドラッグします。

    Pointer dragging the supertransition arrowhead to the desired destination.

  4. ポインターを離します。

    Second segment of the supertransition connects to the substate of the chart.

メモ

サブチャートの境界を越えてスーパートランジションを描画するときに、元に戻すボタンとやり直しボタンは無効です。前の操作を元に戻したりやり直したりすることはできません。

スーパートランジションか、entry 端子と exit 端子かの選択

スーパートランジション、および entry 端子と exit 端子のいずれを使用しても、チャート階層の異なるレベルに移動できます。選択する手法は、設計要件によって決まります。

シナリオ推奨
兄弟関係にある 2 つのステート (いずれもサブチャートではない) のサブステート間の遷移スーパートランジションを使用します。遷移元ステートの境界をクリックし、ポインターを遷移先ステートにドラッグすることで、サブチャートの境界を越えないスーパートランジションを作成できます。
通常のサブチャートのサブステートに出入りする遷移

スーパートランジション、entry 端子または exit 端子のいずれかを使用します。

  • スーパートランジションを使用する場合、スーパートランジションの各セグメントが階層の異なるレベルに出入りする位置は、相互に影響します。たとえば、スーパートランジションがサブチャートの境界に入る位置を移動すると、スーパートランジションがサブチャートの境界を出る位置も移動します。

  • entry 端子または exit 端子を使用する場合、端子の位置のグラフィックスと、一致するジャンクションの位置のグラフィックスは、相互に依存していません。たとえば、ジャンクションを移動せずに端子を移動できます。

Atomic サブチャートのサブステートに出入りする遷移entry 端子または exit 端子を使用します。スーパートランジションは Atomic サブチャートの境界を越えることができません。

関連するトピック