メインコンテンツ

バス要素端子を使用したサブシステム インターフェイスとモデル インターフェイスの簡略化

バスを使用すると、複数の信号またはメッセージを 1 つの端子に関連付けることで、サブシステムおよびモデルのインターフェイスを簡略化できます。ブロック線図における線の複雑さと煩雑さが低減され、インターフェイスの段階的な変更が容易になり、使用ポイントに近い要素にアクセスできるようになります。

バスを使用してコンポーネント インターフェイスを簡略化する方法の概要については、Reduced Bus Wiring: Bus Element Ports (2 分 7 秒) を参照してください。

たとえば、次のモデルには、複数の入力端子と出力端子があるサブシステムが含まれています。

Each subsystem has multiple input and output ports.

これと等価な次のモデルでは、バスを使用して各サブシステムの入力端子と出力端子を 1 つにしています。

Each subsystem has one input port and one output port.

コンポーネント インターフェイスのバスでは次のようにします。

  • Inport ブロックと Bus Selector ブロックの代わりに In Bus Element ブロックを使用する。

  • Bus Creator ブロックと Outport ブロックの代わりに Out Bus Element ブロックを使用する。

In Bus Element ブロックと Out Bus Element ブロックはマルチレート バーチャル バスをサポートしますが、Inport ブロックや Outport ブロックとは異なり、モデル インターフェイスの Simulink.Bus オブジェクトは必要ありません。そのため、バスのインターフェイスが簡潔になる効果もあります。

たとえば、このモデルは、InportBus SelectorBus Creator および Outport ブロックを使用します。

Bus Selector and Bus Creator blocks modify the input bus.

この等価モデルは In Bus Element ブロックと Out Bus Element ブロックを使用します。

In Bus Element and Out Bus Element blocks make the block diagram easier to parse.

更新するインターフェイスでは次のようにします。

  • 変換で削除されるラインから信号のログ、テスト ポイント、説明を削除する。たとえば、Bus Creator ブロックと Outport ブロックの間のラインをテスト ポイントとして指定してはなりません。

  • 矛盾する指定を削除する。たとえば、出力端子のデータ型として Simulink.Bus オブジェクトを指定する場合、出力端子の各要素のデータ型は Simulink.Bus オブジェクトから継承しなければなりません。

以下の例では、In Bus Element ブロックと Out Bus Element ブロックを使用するようにインターフェイスを更新する方法を示します。このモデル例はシンプルですが、バスは、多くの要素を結合する場合に最も役立ちます。

複数のサブシステム端子を 1 つの端子に結合

この例では、複数の端子とそれらの接続された信号を 1 つの端子とバスに変換することで、サブシステムのインターフェイスを簡略化する 3 つの方法について説明します。この自動変換はモデルのインターフェイスではサポートされません。

複数の入力端子と出力端子をもつ 2 つのサブシステムを含むモデル例を開きます。

mdl = "VirtualBusPortCreation";
open_system(mdl);

Block diagram of VirtualBusPortCreation model

2 つのサブシステム間の信号線を囲む選択ボックスをドラッグします。表示された操作バーから [バスの作成] をクリックします。

Pointer on Create Bus for lines between subsystems

Simulink® は、変換元のサブシステムと変換先のサブシステムの Inport ブロックと Outport ブロックを In Bus Element ブロックと Out Bus Element ブロックに置き換えます。

ソース ブロックと最初のサブシステム間の信号線を囲む選択ボックスをドラッグします。表示された操作バーから [バスの作成] をクリックします。

Pointer on Create Bus for input lines

Simulink は、最初のサブシステムの前に Bus Creator ブロックを追加し、最初のサブシステム内の Inport ブロックを In Bus Element ブロックに置き換えます。

2 番目のサブシステムと Scope ブロック間の信号線を囲む選択ボックスをドラッグします。表示された操作バーから [バスの作成] をクリックします。

Pointer on Create Bus for output lines

Simulink は、2 番目のサブシステム内の Outport ブロックを Out Bus Element ブロックに置き換え、Bus Selector ブロックを 2 番目のサブシステムの前に追加します。

結果のモデルは、サブシステム インターフェイスでバーチャル バスを使用します。

Updated block diagram

サブシステムおよびモデルのバス インターフェイスの簡略化

この例では、Inport ブロック、Bus Selector ブロック、Bus Creator ブロック、および Outport ブロックを使用するサブシステムとモデルのインターフェイスを In Bus Element ブロックと Out Bus Element ブロックを使用するように変換する方法を示します。

BusInterfaceConversion モデルを開きます。ライン スタイルを更新するには、Simulink® ツールストリップの [モデル化] タブで [モデルの更新] または [実行] をクリックします。ライン スタイルを更新すると、バスを視覚的に識別しやすくなります。

mdl = "BusInterfaceConversion";
open_system(mdl)
set_param(mdl,SimulationCommand="Update")

Block diagram of the BusInterfaceConversion model

Subsystem ブロックをダブルクリックします。

Block diagram of the subsystem

サブシステムでは、Inport ブロックと Outport ブロックでサブシステムの入力と出力を表しています。Bus Selector ブロックと Bus Creator ブロックで入力バス階層を変更しています。

Inport ブロックと Bus Selector ブロックを In Bus Element ブロックに変換するには、次の手順を実行します。

  1. Inport ブロックに直接接続する Bus Selector ブロックをクリックします。

  2. 省略記号をポイントすると表示される操作バーで [バス端子] をクリックします。

たとえば、最上位の Bus Selector ブロックをクリックします。次に、[バス端子] をクリックします。

Pointer on Bus Ports for top-level Bus Selector block

この例では、Inport ブロックと最上位の Bus Selector ブロックの間のバスに信号ラベルがあります。変換では、その信号ラベルが新しいバス要素端子の名前として使用されます。

Block diagram with In Bus Element blocks

Inport ブロックに既定以外のパラメーター値がある場合、それらの既定以外のパラメーター値は変換でバス要素端子の最上位の要素に適用されます。

同様に In Bus Element ブロックと Bus Selector ブロックを変換できます。In Bus Element ブロックと Bus Selector ブロックを In Bus Element ブロックに変換するには、次の手順を実行します。

  1. In Bus Element ブロックに直接接続する Bus Selector ブロックをクリックします。

  2. 省略記号をポイントすると表示される操作バーで [バス端子] をクリックします。

たとえば、残りの Bus Selector ブロックをクリックします。次に、[バス端子] をクリックします。

Pointer on Bus Ports for remaining Bus Selector block

Bus Creator ブロックと Outport ブロックを Out Bus Element ブロックに変換するには、次の手順を実行します。

  1. Outport ブロックに分岐せずに直接接続する Bus Creator ブロックをクリックします。

  2. 省略記号をポイントすると表示される操作バーで [バス端子] をクリックします。

たとえば、最上位の Bus Creator ブロックを選択します。次に、[バス端子] をクリックします。

Pointer on Bus Ports for top-level Bus Creator block

この例では、最上位の Bus Creator ブロックと Outport ブロックの間のバスに信号ラベルがあります。変換では、その信号ラベルが新しいバス要素端子の名前として使用されます。

Block diagram with Out Bus Element blocks

Outport ブロックに既定以外のパラメーター値がある場合、それらの既定以外のパラメーター値は変換でバス要素端子の最上位の要素に適用されます。

同様に Bus Creator ブロックと Out Bus Element ブロックを変換できます。Bus Creator ブロックと Out Bus Element ブロックを Out Bus Element ブロックに変換するには、次の手順を実行します。

  1. Out Bus Element ブロックに直接接続する Bus Creator ブロックをクリックします。

  2. 省略記号をポイントすると表示される操作バーで [バス端子] をクリックします。

たとえば、残りの Bus Creator ブロックをクリックします。次に、[バス端子] をクリックします。

Pointer on Bus Ports for remaining Bus Creator block

結果のモデルによりライン ルーティングが簡略化され、インターフェイスの段階的な変更が容易になり、使用ポイントに近いバス要素へのアクセスが許可されます。

Simplified block diagram, which uses In Bus Element and Out Bus Element blocks

ブロック線図をさらに簡略化するには、ブロックを移動することを検討してください。

バスまたは要素の名前を変更するには、ブロック ラベルの対応する部分をダブルクリックして編集します。

同じ端子または入れ子のバスの要素を容易に特定するには、ブロックの色を指定します。

  1. In Bus Element ブロックまたは Out Bus Element ブロックをダブルクリックして、関連する端子のダイアログ ボックスを開きます。

  2. 要素または一番上のバスを選択します。

  3. Set color of blocks associated with selected elements をクリックします。次に、背景色を選択します。

Final block diagram with blocks aligned and colored

参考

ブロック

関数

トピック