Main Content

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

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

Simulink® モデルの Stateflow® チャート間のメッセージやイベントの交換と、SimEvents® ブロック間でのエンティティの移動を確認するには、Sequence Viewer ブロックを Simulink モデルに追加します。

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

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

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

たとえば、Stateflow の例 sf_msg_traffic_light をシミュレートすると仮定します。

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

Sequence Viewer ウィンドウのコンポーネント

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

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

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

  • 自動のレイアウトまたは手動のレイアウトを選択する。

  • 非アクティブなライフラインを表示または非表示にする。

  • Sequence Viewer ブロックの設定を保存する。

  • Sequence Viewer ブロックの設定を元に戻す。

  • Sequence Viewer ブロックのパラメーターを設定する。

  • Sequence Viewer ブロックのドキュメンテーションにアクセスする。

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

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

  • イベント

  • メッセージ

  • 関数呼び出し

  • ステートの変化と遷移

ヘッダー ペイン

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

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

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

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

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

メッセージ ペイン

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

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

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

親ライフラインの展開

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

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

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

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

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

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

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

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

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

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

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

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

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

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

関数呼び出しの表示

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

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

Simulink Function ブロックの呼び出し

完全サポート

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

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

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

Function-Call Subsystem の呼び出しSequence Viewer ウィンドウには表示されない

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

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

Sequence Viewer ウィンドウのシミュレーション時間

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

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

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

Sequence Viewer ウィンドウでの情報の再表示

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

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

参考

関連するトピック