最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
Simulink® モデルの Stateflow® チャート内またはチャート間で通信するには、メッセージを使用します。"メッセージ" は、ローカルで、またはチャート間でデータを通信する Stateflow オブジェクトです。送信側チャートから、データが含まれるメッセージを送信または転送できます。受信側チャートでは、キューでメッセージが受信され、チャートによる評価が可能になるまで保持されます。
メッセージは、データとイベントの機能の一部を同時に備えています。メッセージはデータと同様に、数値およびテキスト情報を送信できます。メッセージはイベントと同様に、遷移およびステート アクションをトリガーできます。ただし、
メッセージによってチャートの起動がトリガーされることはありません。代わりに、メッセージは、チャートが起動するまでキューに入れられます。チャートは起動すると、キュー内のメッセージに応答できます。
受信側チャートが即時に応答できない場合でも、メッセージは失われません。
詳細については、Stateflow のメッセージ、イベント、データ間の相違の表示を参照してください。
チャート遷移またはステート アクションによってメッセージが評価されると、チャートは、キューにメッセージが含まれているかどうかを特定します。含まれている場合、チャートはそのメッセージをキューから削除します。メッセージは、タイム ステップが終了するか、メッセージがチャートによって転送または廃棄されるまで有効なままです。メッセージが有効な間は、他の遷移やアクションからメッセージ データへのアクセスが可能で、チャートがキューから別のメッセージを削除することはありません。現在のタイム ステップの終了時に、チャートは有効なメッセージをすべて破棄します。
Stateflow チャートにメッセージを追加するには、[シンボル] ペイン、Stateflow エディターのメニュー、またはモデル エクスプローラーを使用できます。
[モデル化] タブの [データの設計] で、[[シンボル] ペイン] を選択します。
[メッセージの作成] アイコン をクリックします。
新規メッセージの行の [タイプ] で、アイコンをクリックして以下を選択します。
Input Message
Local Message
Output Message
メッセージの名前を編集します。
入力メッセージと出力メッセージの場合は、[端子] フィールドをクリックして端子番号を選択します。
メッセージのプロパティを指定するには、プロパティ インスペクターを開きます。[シンボル] ペインで、メッセージの行を右クリックして [エクスプローラー] を選択します。詳細については、メッセージのプロパティの設定を参照してください。
Stateflow エディターで、追加するメッセージのスコープに対応するオプションを選択します。
スコープ | オプション |
---|---|
入力 | [モデル化] タブの [データの設計] で、[メッセージ入力] を選択します。 |
出力 | [モデル化] タブの [データの設計] で、[メッセージ出力] を選択します。 |
ローカル | [モデル化] タブの [データの設計] で、[メッセージ] を選択します。 |
[メッセージ] ダイアログ ボックスで、データ プロパティを指定します。詳細については、メッセージのプロパティの設定を参照してください。
[モデル化] タブの [データの設計] で、[モデル エクスプローラー] を選択します。
[モデルの階層構造] ペインで、表示対象の新規メッセージがある Stateflow 階層のオブジェクトを選択します。選択したオブジェクトは、新しいメッセージの親になります。
モデル エクスプローラーのメニューで、[追加] 、 [メッセージ] を選択します。既定の定義が設定された新しいメッセージが、モデル エクスプローラーの [コンテンツ] ペインに表示されます。
[メッセージ] ペインで、メッセージのプロパティを指定します。詳細については、メッセージのプロパティの設定を参照してください。
Stateflow メッセージの有効期間は限られています。有効期間は、send
演算子を使用して受信側キューにメッセージを送信したときに始まります。メッセージは、遷移またはステート on
アクションが評価するか、チャートが receive
演算子を使用して受信するまでキュー内に留まります。
メッセージは、チャートによって評価または受信されたときに有効になります。メッセージは、次のときまで有効なままになります。
メッセージが有効な間は、他の遷移およびアクションがメッセージを評価し、そのデータにアクセスすることができます。メッセージが有効かどうかをチェックするには、isvalid
演算子を使用します。
シミュレーション時にメッセージの送受信を表示するには、Sequence Viewer ブロックを Simulink モデルに追加します。Sequence Viewer ブロックには以下が表示されます。
送信されたメッセージ
受信されたメッセージ
転送されたメッセージ
除外されたメッセージ
破棄されたメッセージ
廃棄されたメッセージ
詳細については、Sequence Viewer ブロックを使用したメッセージ、イベント、エンティティの可視化を参照してください。
以下ではメッセージを使用できません。
Moore チャート
Atomic サブチャート
ブレークポイント条件式
モデル参照の入力と出力
C をアクション言語として使用するチャートのメッセージでは、マルチワードの固定小数点データ、または型が int64
および uint64
のデータはサポートされません。
discard | forward | isvalid | Queue | receive | send | Sequence Viewer