Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Sequence Viewer を使用したメッセージ、イベント、エンティティの可視化

Simulink® Messages & Events ライブラリのブロック、Simulink モデル内の Stateflow® チャート、および SimEvents® ブロックの間のメッセージやイベントの交換を確認するには、次を実行できます。

Sequence Viewer を使用すると、メッセージの遷移イベントとそのメッセージが搬送するデータを可視化できます。Sequence Viewer では、Stateflow チャートの実行に関連するイベント データと、Stateflow チャート間でのメッセージの交換を表示できます。シーケンス ビューアー ウィンドウには、モデル実行中のさまざまな時点で作成、送信、転送、受信、破棄されたメッセージが表示されます。シーケンス ビューアー ウィンドウには、ステート アクティビティ、遷移や、Stateflow グラフィカル関数、Simulink 関数、MATLAB® 関数への関数呼び出しも表示されます。

Sequence Viewer では、SimEvents モデルのシミュレーション時の、ブロック間のエンティティの移動も可視化できます。エンティティを格納できるすべての SimEvents ブロックは、シーケンス ビューアー ウィンドウにライフラインとして表示されます。これらのブロック間でのエンティティの移動は矢印付きのラインで表示されます。Simulink Function ブロックおよび MATLAB Function ブロックの呼び出しを表示できます。

モデルまたは任意のサブシステムの最上位に Sequence Viewer ブロックを追加できます。メッセージ、イベント、またはステート アクティビティをもたないサブシステムに Sequence Viewer ブロックを配置すると、シーケンス ビューアー ウィンドウは表示する対象がないことを伝えます。

たとえば、Stateflow の例 sf_msg_traffic_light を開きます。

openExample("stateflow/ModelingADistributedTrafficControlSystemUsingMessageExample")

Simulink model with three subsystems called Traffic Light 1, Traffic Light 2, and GUI.

このモデルには 3 つの Simulink サブシステムがあります。Traffic Light 1、Traffic Light 2 および GUI です。シミュレーション中に、これらのサブシステム内の Stateflow チャートは、メッセージを送信することによってデータを交換します。メッセージがシステムを通過すると、シーケンス ビューアー ウィンドウに表示されます。シーケンス ビューアー ウィンドウでは、モデル内の各ブロックが、シミュレーション時間が下向きに進む縦のライフラインとして表現されます。

Sequence Viewer showing lifelines for subsystems Traffic Light 1, Traffic Light 2, and GUI.

シーケンス ビューアー ウィンドウのコンポーネント

ナビゲーション ツール バー

シーケンス ビューアー ウィンドウの上部にあるナビゲーション ツール バーには、モデルの階層構造パスが表示されます。ツール バーのボタンを使用すると、次のことが可能です。

  • Sheet of paper icon [プロパティ インスペクター] を表示または非表示にする。

  • Icon of sequence diagram with a pencil lying diagonally across. 自動のレイアウトまたは手動のレイアウトを選択する。

  • Icon of a sequence diagram window with lifelines lying on the top-left of a sequence diagram window without lifelines. 非アクティブなライフラインを表示または非表示にする。

  • Icon of red arrow slanting downwards to the Sequence Viewer. Sequence Viewer の設定を保存する。

  • Icon of green arrow slanting upwards from the Sequence Viewer. Sequence Viewer の設定を復元する。

  • Gear icon Sequence Viewer のパラメーターを設定する。

  • Icon of question mark within circle Sequence Viewer のドキュメンテーションにアクセスする。

プロパティ インスペクター

[プロパティ インスペクター] では、フィルターを選択して以下の表示と非表示を切り替えることができます。

  • イベント

  • メッセージ

  • 関数呼び出し

  • ステートの変化と遷移

ヘッダー ペイン

シーケンス ビューアー ツール バーの下のヘッダー ペインには、モデル内の対応するブロックの名前を含むライフライン ヘッダーが表示されます。

  • グレーの四角形のヘッダーはサブシステムに相当します。

  • 白の四角形のヘッダーはマスク サブシステムに相当します。

  • 曲線で囲まれた黄色のヘッダーは Stateflow チャートに相当します。

モデル内のブロックを開くには、対応するライフライン ヘッダー内の名前をクリックします。ライフラインの表示と非表示を切り替えるには、対応するヘッダーをダブルクリックします。ライフライン ヘッダーのサイズを変更するには、ヘッダーの右側をクリックしてドラッグします。すべてのライフライン ヘッダーをシーケンス ビューアー ウィンドウ内に収めるには、スペース バーを押します。

Header pane for Sequence Viewer.

メッセージ ペイン

ヘッダー ペインの下にはメッセージ ペインがあります。メッセージ ペインには、ライフライン間のメッセージ、イベント、関数呼び出しが、送信側から受信側への矢印として表示されます。送信側、受信側、ペイロードの情報を [プロパティ インスペクター] に表示するには、メッセージ、イベント、または関数呼び出しに対応する矢印をクリックします。

Sequence Viewer showing sender, receiver, and payload information for a message.

ライフライン階層のナビゲート

シーケンス ビューアー ウィンドウでは、ライフラインの階層はモデルの階層構造に相当します。モデルを一時停止または停止すると、ライフラインを展開または縮小してビューアーのフォーカスのルートを変更できます。

親ライフラインの展開

メッセージ ペインで、太いグレーのライフラインは、ライフラインを展開して子を表示できることを示しています。ライフラインの子を表示するには、ヘッダーの下の展開アイコン Plus symbol in a grey box をクリックするか、親ライフラインをダブルクリックします。

たとえば、Traffic Light 1 ブロックのライフラインを展開すると、Stateflow チャート Ped Button Sensor および Controller に相当する 2 つの新しいライフラインが表示されます。

Sequence Viewer showing lifelines for Stateflow charts in subsystem Traffic Light 1.

マスク サブシステム ライフラインの展開

シーケンス ビューアー ウィンドウでは、マスク サブシステムは白のブロックで表示されます。マスク サブシステムの子を表示するには、ライフライン ヘッダーの左下隅にカーソルを合わせて、矢印をクリックします。

たとえば、GUI サブシステムには 4 つのマスク サブシステムが含まれています。Traffic Lamp 1、Traffic Lamp 2、Ped Lamp 1 および Ped Lamp 2 です。

Sequence Viewer showing masked subsystems in subsystem GUI.

親ライフライン ヘッダーの矢印をクリックすると、これらのマスク サブシステム内の子ライフラインを表示できます。

Arrow icon to show lifelines for children of masked subsystem. A tooltip says, "Look inside mask."

フォーカスのルートの変更

ライフラインをビューアーのフォーカスのルートにするには、ライフライン ヘッダーの左下隅にカーソルを合わせて、矢印をクリックします。あるいは、シーケンス ビューアー ウィンドウの上部にあるナビゲーション ツール バーを使用して、現在のルートをライフライン階層内で上下に移動することもできます。現在のルートを 1 レベル上に移動するには、Esc キーを押します。

Arrow icon to make a lifeline the root of focus for the viewer. A tooltip says, "Make this the root."

シーケンス ビューアー ウィンドウには、現在のルート ライフライン パスと子ライフラインが表示されます。外部のイベントやメッセージはすべて、図のガターの縦のスロットを介して出入りするものとして表示されます。図のガターのスロットをポイントすると、送受信ブロックの名前がツールヒントに表示されます。

Sequence Viewer showing external events and messages entering through the gutter on the right of the diagram.

ステート アクティビティと遷移の表示

シーケンス ビューアー ウィンドウにステート アクティビティと遷移を表示するには、最下位の子ステートに到達するまでステートの階層を展開します。黄色の縦棒はアクティブなステートを示します。青い横方向の矢印は、ステート間の遷移を示します。

次の例では、Go から PrepareToStop へ遷移し、その 1 秒後に Stop に遷移することが確認できます。

Sequence Viewer showing transitions between states.

開始ステート、終了ステート、および完全な遷移ラベルを [プロパティ インスペクター] に表示するには、遷移に対応する矢印をクリックします。

あるステートがアクティブなときに発生する相互作用に関する情報を表示するには、そのステートに対応する黄色の棒をクリックします。[プロパティ インスペクター] で、[上方向に検索] ボタンと [下方向に検索] ボタンを使用して、そのステートがアクティブなときに行われる遷移、メッセージ、イベント、および関数呼び出しの間を移動します。

関数呼び出しの表示

Sequence Viewer には関数呼び出しと応答が表示されます。次の表は、関数呼び出しの種類ごとのサポートのタイプを示しています。

関数呼び出しの種類サポート

Simulink Function ブロックの呼び出し

完全にサポートされます。

Stateflow グラフィカル関数または Stateflow MATLAB 関数の呼び出し

  • スコープ内 — チャート オプション [チャート レベルの関数をエクスポート] を選択。chartName.functionName のドット表記を使用します。

  • グローバル — チャート オプション [エクスポートされた関数をグローバルに可視として扱う] を選択。ドット表記は必要ありません。

Function-Call Subsystem の呼び出し完全にサポートされて表示されます。
MATLAB Function ブロックからの呼び出し関数呼び出しイベントの表示がサポートされますが、モデル参照の境界を越える呼び出しに制限があります。

シーケンス ビューアー ウィンドウでは、関数呼び出しは、function_name(argument_list) 形式のラベルが付いた実線の矢印として表示されます。関数呼び出しへの応答は、[argument_list]=function_name 形式のラベルが付いた破線の矢印として表示されます。

たとえば、モデル slexPrinterExample では、サブシステムが Simulink Function ブロック addPrinterJob を呼び出します。この Function ブロックは、出力値 false で応答します。

Sequence Viewer showing a call to a Simulink Function and the return value from the function.

この例を開くには次のように入力します。

openExample("stateflow/ShareFcnsAcrossSLandSFExample")

シーケンス ビューアー ウィンドウのシミュレーション時間

シーケンス ビューアー ウィンドウでは、イベントが時間の順に縦方向に表示されます。Simulink では複数のイベントが同時に発生する場合があります。一方、シミュレーション中に長時間にわたって何もイベントが発生しない場合もあります。その結果、シーケンス ビューアー ウィンドウには、線形表示と非線形表示を組み合わせて時間が表示されます。時間ルーラーは、線形のシミュレーション時間を表示します。時間グリッドは、時間を非線形で表示します。各時間グリッド行は 2 本の青色の境界線で区切られ、同じシミュレーション時間に発生したイベントが行内に表示されます。時間ストリップは、そのグリッド行でのイベントの時間を表示します。

Diagram of Sequence Viewer showing time grid, time strip, time ruler, and time slider.

特定のシミュレーション時間範囲内にあるイベントを表示するには、スクロール ホイールを使用するか、時間ルーラーの時間スライダーを上下にドラッグします。シミュレーションの開始時または終了時に移動するには、[最初のイベントに移動] ボタンまたは [最後のイベントに移動] ボタンをクリックします。シミュレーション期間全体を時間ルーラーに表示するには、[ビューに合わせる] ボタン Icon of square containing four arrows pointing outwards from the center. をクリックします。

可変ステップ ソルバーを使用している場合は、時間ルーラーの精度を調整できます。モデル エクスプローラーのシーケンス ビューアーの [ブロック パラメーター] ペインの [メイン] タブで、[可変ステップの時間精度] フィールドの値を調整します。

シーケンス ビューアー ウィンドウでの情報の再表示

Sequence Viewer には、シミュレーション実行間のライフラインの順序とステートが保存されます。Sequence Viewer ウィンドウを閉じてから再度開くと、前回開いていたライフラインのステートが保持されています。ビューアーの特定のステートを保存するには、ツール バーの [設定の保存] ボタン Icon of red arrow slanting downwards to the Sequence Viewer. をクリックします。モデルを保存すると、セッション全体でこのステート情報が保存されます。保存した設定を読み込むには、[設定の復元] ボタン Icon of green arrow slanting upwards from the Sequence Viewer. をクリックします。

メモ

モデルの更新時、またはシミュレーションの再実行時に、Sequence Viewer は以前の実行結果をクリアします。以前の実行結果を保存するには、シミュレーション データ インスペクター (Simulink)を使用します。

[可変ステップの時間精度] パラメーターと [履歴] パラメーターは、シミュレーションの合間にのみ変更できます。ツール バーのボタンには、シミュレーションの前、またはシミュレーションの一時停止中にアクセスできます。シミュレーション中は、ツール バーのボタンは無効になっています。

参考

ブロック

ツール

関連するトピック