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