Main Content

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

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

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

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

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

Subchart containing an exit junction.

この例の詳細については、バンバン温度制御システムのモデル化を参照してください。entry 端子と exit 端子を使用するその他の例については、再利用可能なコンポーネントを使用したロボットの軌跡の計画および打ち上げ中断システムを参照してください。

entry 端子と exit 端子の追加

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

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

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

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

entry 端子と exit 端子の使用に関するガイドライン

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

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

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

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

entry 端子と exit 端子を介したバックトラッキングの防止

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

entry ジャンクションと exit ジャンクションの遷移ロジックの分離

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

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

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

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

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

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

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

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

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

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

entry 端子と exit 端子のプロパティの指定

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ホーム

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

ラベル

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

説明

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

ドキュメント リンク

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

参考

オブジェクト

ツール

関連するトピック