Main Content

ステートの境界を越える入口および出口接続の作成

入口端子と出口端子は、ステートとサブチャートに出入りする接続を表します。スーパートランジションと同様に、入口端子と出口端子は、Stateflow® の階層内の境界を越える遷移パスを作成します。ただし、入口端子と出口端子はステートに入る遷移とステートから出る遷移の遷移ロジックを分離するため、Atomic サブチャートで使用できます。入口端子と出口端子は、MATLAB® 内のスタンドアロンの Stateflow チャートではサポートされません。

Stateflow エディターでは、入口端子と出口端子はステートまたはサブチャートの境界上で矢印として表示されます。各端子には一致するジャンクションがあり、ステートまたはサブチャート内の入口または出口の位置をマークします。入口ジャンクション アイコン と出口ジャンクション アイコン がジャンクションを示します。入口端子への遷移パスは、一致する入口ジャンクションに接続している遷移に沿って継続します。同様に、出口ジャンクションへの遷移パスは、一致する出口端子に接続している遷移に沿って継続します。たとえば、以下のチャートでは、turnOff というラベルの出口端子はサブチャート On から遷移する出口接続を表します。

Chart with two states, On and Off. The label turnOff marks the exit port connected to a transition from On to Off.

このサブチャートでは、出口ジャンクションへの遷移パスはサブチャートから遷移するロジックを定義します。この例では、チャートが On ステートから遷移する前に、関数 warm は連続する 2 つのタイム ステップで true として評価される必要があります。

Subchart containing an exit junction.

この例の詳細については、バンバン温度制御システムのモデル化を参照してください。入口端子と出口端子を使用するその他の例については、Atomic サブチャートに出入りする遷移ロジックを分離および打ち上げ中断システムのモデル化を参照してください。

入口端子と出口端子の追加

入口端子または出口端子を作成するには、ステートまたはサブチャートの内部に入口ジャンクションまたは出口ジャンクションを追加します。

  1. オブジェクト パレットで、入口アイコン または出口アイコン をクリックします。

  2. チャート キャンバスで、新しい入口ジャンクションまたは出口ジャンクションの位置をクリックします。一致する入口端子または出口端子が、新しい入口ジャンクションまたは出口ジャンクションが含まれるステートまたはサブチャートの境界に表示されます。

  3. ジャンクションと、一致する端子について、ラベルを入力します。一致するジャンクションと端子を識別するためのラベルの追加を参照してください。

入口端子と出口端子の使用に関するガイドライン

排他 (OR) のステートと Atomic サブチャートへの入口ジャンクションおよび出口ジャンクションの追加

入口ジャンクションと出口ジャンクションは、排他 (OR) のステートと Atomic サブチャートでのみサポートされます。入口ジャンクションや出口ジャンクションは、最上位のチャート、パラレル (AND) ステート、ボックスには追加しないでください。

一致するジャンクションと端子を識別するためのラベルの追加

入口端子と出口端子のラベルは、どのジャンクションがどの端子に接続しているかを示します。ステートに入口ジャンクションまたは出口ジャンクションが 1 つだけ含まれる場合、ラベルの追加は必須ではありません。ステートに複数の入口ジャンクションまたは複数の出口ジャンクションが含まれる場合、一意のラベルが必要です。

入口端子と出口端子を介したバックトラッキングの防止

チャートがバックトラッキングせずに正常にステートに入る遷移またはステートから出る遷移を行うようにするには、すべての入口ジャンクションと出口端子に、条件でガードされず、イベントでトリガーされないパスが必要です。入口ジャンクションと出口端子からの遷移パスはステートに向かう必要があり、また終端ジャンクションを含まないようにする必要があります。

入口ジャンクションと出口ジャンクションの遷移ロジックの分離

入口ジャンクションから開始する、または出口ジャンクションで終了する遷移パスは、親ステートに含まれている必要があります。

ステートに入る遷移とステートから出る遷移を同じタイム ステップで実行しない

既定の遷移パスと内部遷移パスを出口ジャンクションに接続しないでください。

スーパートランジションか、入口端子と出口端子かの選択

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

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

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

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

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

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

入口端子と出口端子のプロパティの指定

[プロパティ インスペクター]、モデル エクスプローラー、または入口端子、出口端子、入口ジャンクション、出口ジャンクションのプロパティ ダイアログ ボックスで、以下に示すプロパティを指定できます。

[プロパティ インスペクター] を使用するには、次を行います。

  1. [モデル化] タブの [データの設計] で、[プロパティ インスペクター] を選択します。

  2. Stateflow エディターで、端子またはジャンクションを選択します。

  3. [プロパティ インスペクター] で、端子またはジャンクションのプロパティを編集します。

モデル エクスプローラーを使用するには、次を行います。

  1. [モデル化] タブの [データの設計] で、[モデル エクスプローラー] を選択します。

  2. [モデルの階層構造] ペインで、端子またはジャンクションの親のステートまたはチャートを選択します。

  3. [コンテンツ] ペインで、端子またはジャンクションを選択します。

  4. [ダイアログ] ペインで、端子またはジャンクションのプロパティを編集します。

入口端子、出口端子、入口ジャンクション、または出口ジャンクションのプロパティ ダイアログ ボックスを使用するには、次を行います。

  1. Stateflow エディターで、端子またはジャンクションを右クリックします。

  2. [プロパティ] を選択します。

  3. プロパティ ダイアログ ボックスで、端子またはジャンクションのプロパティを編集します。

端子またはジャンクションのプロパティは、Stateflow.Port オブジェクトを使用してプログラムで指定することもできます。Stateflow プログラム インターフェイスの詳細については、Stateflow API の概要を参照してください。

端子またはジャンクションの親。このプロパティは読み取り専用であり、[プロパティ インスペクター] では使用できません。親のハイパーリンクをクリックすると、Stateflow エディターで親が前面に移動します。

ホーム

入口端子または出口端子の所属先のステートまたはサブチャート。入口端子または出口端子の所属先は、その端子を境界上に含むステートまたはサブチャートです。このプロパティは読み取り専用であり、[プロパティ インスペクター] では使用できません。所属先のハイパーリンクをクリックすると、Stateflow エディターで所属先のステートまたはサブチャートが前面に移動します。

ラベル

端子またはジャンクションのラベル。このプロパティは、入口端子と出口端子については読み取り専用です。詳細については、遷移のアクションの定義を参照してください。

説明

端子またはジャンクションの説明。

ドキュメント リンク

端子またはジャンクションのオンライン ドキュメンテーションへのリンク。HTML ファイルまたは MATLAB コマンド ウィンドウのテキストとしてドキュメンテーションを表示する、Web の URL アドレスまたは MATLAB コマンドを入力できます。[ドキュメント リンク] ハイパーリンクをクリックすると、Stateflow でリンクが評価され、ドキュメンテーションが表示されます。

参考

オブジェクト

ツール

関連するトピック