最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

メッセージ送信による Stateflow チャートとの通信

Simulink® モデルの Stateflow® チャート内またはチャート間で通信するには、メッセージを使用します。"メッセージ" は、ローカルで、またはチャート間でデータを通信する Stateflow オブジェクトです。送信側チャートから、メッセージを送信または転送できます。受信側チャートでは、キューでメッセージが受信され、チャートによる評価が可能になるまで保持されます。

メッセージは、チャートが起動するまでキューに入れられます。チャートは起動すると、キュー内のメッセージに応答できます。

  • メッセージによってチャートの起動がトリガーされることはありません。

  • 受信側チャートがすぐに応答できない場合でも、メッセージは失われません。

チャート遷移またはステート アクションによってメッセージが評価されると、チャートは、キューにメッセージが含まれているかどうかを特定します。含まれている場合、チャートはそのメッセージをキューから削除します。メッセージは、タイム ステップが終了するか、メッセージがチャートによって転送または廃棄されるまで有効なままです。メッセージが有効な間は、他の遷移やアクションからメッセージ データへのアクセスが可能で、チャートがキューから別のメッセージを削除することはありません。現在のタイム ステップの終了時に、チャートは有効なメッセージをすべて破棄します。

チャートでのメッセージの定義

Stateflow チャートにメッセージを追加するには、[シンボル] ペイン、Stateflow エディターのメニュー、またはモデル エクスプローラーを使用できます。

[シンボル] ペインを使用したメッセージの追加

  1. [モデル化] タブの [データの設計] で、[[シンボル] ペイン] を選択します。

  2. [メッセージの作成] アイコン をクリックします。

  3. 新規メッセージの行の [タイプ] で、アイコンをクリックして以下を選択します。

    • Input Message

    • Local Message

    • Output Message

  4. メッセージの名前を編集します。

  5. 入力メッセージと出力メッセージの場合は、[端子] フィールドをクリックして端子番号を選択します。

  6. メッセージのプロパティを指定するには、プロパティ インスペクターを開きます。[シンボル] ペインで、メッセージの行を右クリックして [エクスプローラー] を選択します。詳細については、メッセージのプロパティの設定を参照してください。

Stateflow エディターのメニューを使用したメッセージの追加

  1. Stateflow エディターで、追加するメッセージのスコープに対応するオプションを選択します。

    スコープオプション
    入力[モデル化] タブの [データの設計] で、[メッセージ入力] を選択します。
    出力[モデル化] タブの [データの設計] で、[メッセージ出力] を選択します。
    ローカル[モデル化] タブの [データの設計] で、[メッセージ] を選択します。

  2. [メッセージ] ダイアログ ボックスで、データ プロパティを指定します。詳細については、メッセージのプロパティの設定を参照してください。

モデル エクスプローラーを使用したメッセージの追加

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

  2. [モデルの階層構造] ペインで、表示対象の新規メッセージがある Stateflow 階層のオブジェクトを選択します。選択したオブジェクトは、新しいメッセージの親になります。

  3. モデル エクスプローラーのメニューで、[追加][メッセージ] を選択します。既定の定義が設定された新しいメッセージが、モデル エクスプローラーの [コンテンツ] ペインに表示されます。

  4. [メッセージ] ペインで、メッセージのプロパティを指定します。詳細については、メッセージのプロパティの設定を参照してください。

Stateflow メッセージの有効期間

Stateflow メッセージの有効期間は限られています。有効期間は、send 演算子を使用して受信側キューにメッセージを送信したときに始まります。メッセージは、遷移またはステート on アクションが評価するか、チャートが receive 演算子を使用して受信するまでキュー内に留まります。

メッセージは、チャートによって評価または受信されたときに有効になります。メッセージは、次のときまで有効なままになります。

  • 現在のタイム ステップが終了し、残りの有効なメッセージをチャートが破棄するとき。

  • チャートが forward 演算子を使用してメッセージを別のキューに転送するとき。メッセージの有効期間は新しいキューで継続されます。

  • チャートが discard を使用してメッセージを廃棄するとき。

メッセージが有効な間は、他の遷移およびアクションがメッセージを評価し、そのデータにアクセスすることができます。メッセージが有効かどうかをチェックするには、isvalid 演算子を使用します。

シミュレーション時にメッセージの送受信を表示するには、Sequence Viewer ブロックを Simulink モデルに追加します。Sequence Viewer ブロックには以下が表示されます。

  • 送信されたメッセージ

  • 受信されたメッセージ

  • 転送されたメッセージ

  • 除外されたメッセージ

  • 破棄されたメッセージ

  • 廃棄されたメッセージ

詳細については、Sequence Viewer ブロックを使用したメッセージ、イベント、エンティティの可視化を参照してください。

メッセージの制限

以下ではメッセージを使用できません。

  • Moore チャート

  • Atomic サブチャート

  • ブレークポイント条件式

  • モデル参照の入力と出力

C をアクション言語として使用するチャートのメッセージでは、マルチワードの固定小数点データ、または型が int64 および uint64 のデータはサポートされません。

参考

| | | | | |

関連する例

詳細