Main Content

バス情報の表示

モデルでバスを使用している場合、バス情報を表示するには複数の方法があります。

以下に例を示します。

  • ブロック線図でバスを特定するには、コンパイル済みのライン スタイルを使用します。

  • バス階層を表示するには、信号階層ビューアーを使用します。

  • バス要素を伝播元ブロックおよび伝播先ブロックまでトレースするには、信号階層ビューアーを使用します。

  • コンポーネント インターフェイスでバスを表示およびトレースするには、インターフェイス ビューを使用します。

  • バスのシミュレーション データを表示するには、端子の値のラベルを使用してブロック線図にバス要素値を表示するか、シミュレーション データ インスペクターを使用します。

  • バス情報をプログラムで取得するには、関数 get_param を使用します。

バスのライン スタイルの表示

モデルのコンパイル後に、ライン スタイルを使用してバスを視覚的に識別できます。

ライン タイプライン スタイル
バーチャル バスVirtual bus line style
非バーチャル バスNonvirtual bus line style
バス配列Array of buses line style

モデルをコンパイルするには、Simulink® ツールストリップの [モデル化] タブで、[モデルの更新] または [実行] をクリックします。

バス階層の表示

バス階層を表示するには、以下のようにします。

  1. モデル内のバスを選択します。

  2. Simulink ツールストリップで、[信号] タブの [信号階層] をクリックします。

    信号階層ビューアーが開き、選択したバスの信号階層が表示されます。

たとえば、次の信号階層ビューアーは、main_bus という名前のバスの信号階層を表示しています。

The Signal Hierarchy Viewer shows the hierarchy for a bus with two nested buses that contain two and three elements, respectively.

信号階層ビューアーでは、現在選択されているバスの階層が表示されます。別のバスを選択すると、信号階層ビューアーが更新され、選択したバスが表示されます。バスを編集すると、信号階層ビューアーでその更新が反映されます。

詳細および例については、信号階層ビューアーを参照してください。

伝播元ブロックおよび伝播先ブロックまでのバス要素のトレース

信号階層ビューアーを使用してバス要素をその伝播元ブロックまたは伝播先ブロックまでトレースするには、以下のようにします。

  1. モデル内のバスを選択します。

  2. Simulink ツールストリップで、[信号] タブの [信号階層] をクリックします。

    信号階層ビューアーが開き、選択したバスの信号階層が表示されます。

  3. 信号階層ビューアーで、要素名を選択します。

  4. 信号階層ビューアー[伝播元] または [伝播先] をクリックして伝播元ブロックまたは伝播先ブロックをそれぞれ強調表示します。

たとえば、次のブロック線図のビューでは、main_bus という名前のバスから Chirp という名前のバス要素のすべての伝播元ブロックへのパスが強調表示されています。

View that highlights all elements between the first source block for the bus element named Chirp and the bus named main_bus

信号階層ビューアーで信号をトレースするには、少なくとも 1 本の信号線が選択されている必要があります。

詳細および例については、信号階層ビューアーを参照してください。

ブロック線図インターフェイスでのバスの検出

ブロック線図の入力および出力のバスを検出するには、インターフェイス ビューを使用します。[モデル化] タブの [設計] で、[モデル インターフェイス] をクリックします。

3 本バーが横に示されている入力または出力がバスです。

Interface display for sldemo_mdlref_counter_bus model

ブロック線図のサイズが大きくなったら、インターフェイス ビューを使用することで、ブロック線図の入力および出力をより簡単に識別できます。インターフェイス ビューでは、入れ子にされたレベルを通して信号をトレースすることもできます。

詳細については、インターフェイスの表示を使用した接続の追跡を参照してください。

バス要素値の表示

ブロック線図でバス要素の値を表示するには、端子の値のラベルを使用します。

  1. モデル内のバスを選択します。

  2. [信号] タブで [出力値ラベル] を選択します。

  3. 端子の値のラベルをクリックします。次に、値を表示するバス要素を選択します。

たとえば、busdemo という名前のモデル例で、main_bus という名前のバス内のすべての非定数信号を選択するとします。

モデルのシミュレーションを実行すると、端子の値のラベルには選択した信号の名前と値が表示されます。

詳細については、端子の値のラベルを使用した信号値の表示を参照してください。

バスのシミュレーション データの表示

バスのシミュレーション データを表示する場合は、バスのリーフ要素のデータをプロットします。

例を開きます。次に、ex_modeling_composite_signals という名前のモデルを開いてシミュレートします。

このモデルでは、goal および x_sensor という名前のバスのデータがログ記録されます。

シミュレーションでログ記録されたデータを表示するには、Simulink ツールストリップの [シミュレーション] タブで [データ インスペクター] をクリックします。

既定では、シミュレーション データ インスペクターは、データ階層で信号をグループ化します。バスの場合、データ階層はバス階層です。バス階層に基づいてバス データをグループ化することで、多くの要素を含む親バスの内容を折りたたむことができます。バスのリーフ要素のデータをプロットできます。

詳細および可視化オプションについては、シミュレーション データの可視化方法の決定を参照してください。

プログラムによるバスの階層と仮想性の取得

コンパイル済みモデルでバスの階層と仮想性をプログラムで取得するには、関数get_paramを使用して次のパラメーターをクエリします。

  • 'SignalHierarchy' — 信号がバス信号の場合、名前とバス内の信号の階層が返されます。

  • 'CompiledBusType''compile' フェーズを実行したモデルについて、端子に接続されている信号がバス信号かどうか、また信号がバーチャル バスか非バーチャル バスかについての情報を返します。CompiledBusType パラメーター値をクエリする前に、モデル名のプログラム インターフェイスを使用して、モデルをコンパイルします。詳細については、Use Model Name as Programmatic Interfaceを参照してください。

例を開きます。次に、busdemo という名前のモデルを開いてコンパイルします。モデルをコンパイルするとライン スタイルが更新されます。このライン スタイルは、バスを視覚的に識別するのに使用できます。

model = 'busdemo';
open_system(model);
set_param(model,'SimulationCommand','Update');

バス情報を必要とする端子のハンドルを取得します。

ph = get_param('busdemo/Bus Creator','PortHandles');

端子での信号の階層を取得します。

sh = get_param(ph.Outport,'SignalHierarchy')
sh = struct with fields:
    SignalName: 'main_bus'
     BusObject: ''
      Children: [2x1 struct]

端子でのコンパイル済みバスのタイプを取得します。

busdemo([],[],[],'compile');
bt = get_param(ph.Outport,'CompiledBusType')
bt = 
'VIRTUAL_BUS'

モデルのコンパイルによって開始されたシミュレーションを終了します。

busdemo([],[],[],'term');

プログラムによるインターフェイスでのバス属性の取得

バス要素端子におけるバスの属性をプログラムで取得するには、関数get_paramを使用します。

例を開きます。次に、SpecifiedBusInterface という名前のモデルを開いてコンパイルします。モデルをコンパイルするとライン スタイルが更新されます。このライン スタイルは、バスを視覚的に識別するのに使用できます。

model = "SpecifiedBusInterface";
open_system(model);
set_param(model,SimulationCommand="Update");

SpecifiedBusInterface model

このモデルでは、NestedBus という名前のバスと Step という名前の信号を含む TopBus という名前のバスを作成します。入れ子にされたバスには ChirpSine という名前の信号が含まれます。最上位バスはサブシステムの入力端子に接続されます。サブシステムの出力端子で、出力バスが Out Bus Element ブロックに接続されます。

モデルのルート レベルにおける出力バスのデータ型を取得します。

elem0 = "SpecifiedBusInterface/OutBus";
get_param(elem0,"OutDataTypeStr")
ans = 
'Inherit: auto'

サブシステムを開きます。このサブシステムには、In Bus Element ブロックと Out Bus Element ブロックが含まれています。

An In Bus Element block labeled InBus.NestedBus.Chirp connects to an Out Bus Element block labeled OutBus.Chirp. An In Bus Element block labeled InBus.Step connects to an Out Bus Element block labeled OutBus.Step.

Chirp という名前の入出力要素の最小値と最大値を取得します。Chirp という名前の入力要素は、最上位バス内の入れ子にされたバスに含まれています。

elem1 = "SpecifiedBusInterface/Subsystem/InBus.NestedBus.Chirp";
get_param(elem1,'Minimum')
ans = 
'-1'
get_param(elem1,'Maximum')
ans = 
'1'

Chirp という名前の出力要素は、最上位バスに含まれています。出力バスには、入れ子にされたバスは含まれていません。

elem2 = "SpecifiedBusInterface/Subsystem/OutBus.Chirp";
get_param(elem2,"Minimum")
ans = 
'-1'
get_param(elem2,"Maximum")
ans = 
'1'

バス要素端子におけるバス属性の詳細については、In Bus ElementおよびOut Bus Elementを参照してください。

参考

|

関連するトピック