ドキュメンテーション

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

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

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

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

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

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

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

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

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

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

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

    スコープメニュー オプション
    入力[チャート][入力と出力を追加][Simulink からのメッセージ入力]
    出力[チャート][入力と出力を追加][Simulink へのメッセージ出力]
    ローカル[チャート][他の要素を追加][ローカル メッセージ]

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

[シンボル] ウィンドウを使用したメッセージの追加

  1. [シンボル] ウィンドウを開くには、[ツール表示][シンボル] を選択します。

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

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

    • Input Message

    • Local Message

    • Output Message

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

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

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

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

  1. Stateflow エディターで、[ツール表示][モデル エクスプローラー] を選択します。

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

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

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

Stateflow メッセージの有効期間

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

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

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

  • チャートがメッセージを別のキューに転送するとき。メッセージの有効期間は受信側キューで継続されます。

  • チャートがメッセージを廃棄するとき。

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

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

  • 送信されたメッセージ

  • 受信されたメッセージ

  • 転送されたメッセージ

  • 除外されたメッセージ

  • 破棄されたメッセージ

  • 廃棄されたメッセージ

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

メッセージの制限

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

  • Moore チャート

  • Atomic サブチャート

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

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

メッセージでは、固定小数点データはサポートされていません。

関連する例

詳細