バーチャル バスへの信号またはメッセージのグループ化
ブロック線図における線の複雑さと煩雑さを低減し、インターフェイスの段階的変更を容易にするには、バーチャル バスを使用します。"バーチャル バス" は、タイ ラップで結束されるワイヤーのバンドルに似ています。比較のために示すと、"非バーチャル バス" は C コードの構造体に似ています。バス全体にアクセスすることもバスから特定の要素を選択することもできます。
バーチャル バスを作成する際は、線をその機能に基づいてグループ化します。信号またはメッセージを論理グループに整理することで、大幅なリファクタリングが必要になる可能性を低減します。
すべてのブロックでバスが受け入れられるわけではなく、バスをベクトルに暗黙的に変換するブロックもあります。どのブロックがどのバスのタイプをサポートするかについては、バス対応ブロックを参照してください。バス変換を特定するには、自動バス変換の特定を参照してください。
バーチャル バスを作成する方法は、グループ化する信号またはメッセージの位置によって異なります。
コンポーネント内にある場合 — Bus Creator ブロックを使用します。
コンポーネントの出力インターフェイスにある場合 — Out Bus Element ブロックを使用します。
コンポーネントの入力インターフェイスにある場合 — In Bus Element ブロックを使用します。
基本ステップに集中するために、これらの例はシンプルです。ただし、バスは、多くの信号またはメッセージをグループ化する場合に最も役立ちます。
ヒント
モデルを開くか、バスを作成する場合、Simulink® エディターにバス ライン スタイルは表示されません。このライン スタイルを更新するには、モデルをコンパイルします。Simulink ツールストリップの [モデル化] タブで、[モデルの更新] または [実行] をクリックします。
関数を使用してコンポーネントの入力インターフェイスまたは出力インターフェイスでバスを作成するには、Programmatically Create Bus Element Portsを参照してください。
コンポーネント内の信号線のグループ化
Bus Creator ブロックを使用してコンポーネント内で信号をバーチャル バスにグループ化できます。
新しいモデルを開き、ソース ブロックを 3 つ追加します。たとえば、Chirp Signal ブロック、Sine Wave ブロック、Step ブロックを追加します。

複数のブロックの出力を含むバスを作成するには、ブロックをクリックおよびドラッグして選択します。この例では、Chirp Signal ブロックと Sine Wave ブロックを選択します。表示された操作バーで、[バスの作成] をクリックします。

Bus Creator ブロックが追加され、そのブロックに入力が接続されます。Bus Creator ブロックの出力は、バーチャル バスです。

バスの要素を特定しやすくするために、Bus Creator ブロックへの入力にラベルを付けます。
Chirp Signal ブロックと Bus Creator ブロックの間のラインをダブルクリックします。次に、「
Chirp」と入力します。Sine Wave ブロックと Bus Creator ブロックの間のラインをダブルクリックします。次に、「
Sine」と入力します。
2 番目のバスを作成して、それに最初のバスと Step ブロックの出力を含めるには、Bus Creator ブロックと Step ブロックをクリックおよびドラッグして選択します。表示された操作バーで、[バスの作成] をクリックします。Sine Wave ブロックと Chirp Signal ブロックは入力バスの要素を提供するものであるため、これらのブロックを選択に含めても結果には影響しません。

別の Bus Creator ブロックが追加され、そのブロックに入力が接続されます。Bus Creator ブロックの出力は、入れ子にされたバスを含むバーチャル バスです。

バスは任意の深さの入れ子にできます。Bus Creator ブロックへの入力の 1 つがバスである場合、その出力は、少なくとも 1 つの入れ子のバスを含むバス階層です。
新しい Bus Creator ブロックへの入力にラベルを付けます。
Bus Creator ブロック間のラインをダブルクリックします。次に、「
Sinusoidal」と入力します。Step ブロックと Bus Creator ブロックの間のラインをダブルクリックします。次に、「
Step」と入力します。
オプションで、ブロックを配置してモデルの可読性を改善します。
2 番目の Bus Creator ブロックの出力を Scope ブロックに接続し、出力に Sources というラベルを付けます。
バスをライン スタイルで視覚的に識別するには、Simulink ツールストリップの [モデル化] タブで [モデルの更新] または [実行] をクリックします。

複数の出力信号を 1 つの端子に接続
この例では、Out Bus Element ブロックを使用して、サブシステムまたはモデルの出力信号をバーチャル バスにグループ化する方法を示します。
新しいモデルを開き、ソース ブロックを 3 つ追加します。たとえば、Chirp Signal ブロック、Sine Wave ブロック、Step ブロックを追加します。

Out Bus Element ブロックをモデルに追加します。次に、Chirp Signal ブロックを Out Bus Element ブロックに接続します。

ブロックのコピーを 2 つ作成するために、Ctrl キーを押しながら Out Bus Element ブロックをドラッグするのを 2 回行います。このようにブロックをコピーするときに、新しい端子を作成するか既存の端子を使用するかを指定します。すべての信号を含む出力バスを 1 つ作成するには、ブロックをコピーするたびに [新規要素] を選択します。

次に、Sine Wave ブロックと Step ブロックを Out Bus Element ブロックに接続します。

各 Out Bus Element ブロックの横にあるラベルには、2 つの部分があります。ラベルの最初の部分は端子について説明し、既定の名前 OutBus が使用されます。ラベルの 2 番目の部分はバス要素について説明し、既定の名前 signal1 が使用されます。
端子の要素の特定を容易にするには、要素の名前を変更します。オプションとして、バス要素を他のバス内に入れ子にすることで階層を作成します。各バス名の後にドットを追加します。以下に例を示します。
signal1をダブルクリックします。次に、「NestedBus.Chirp」と入力します。signal2をダブルクリックします。次に、「NestedBus.Sine」と入力します。signal3をダブルクリックします。次に、「Step」と入力します。

端子のバス階層を検査するには、任意の Out Bus Element ブロックをダブルクリックします。ダイアログ ボックスには、NestedBus および Step という名前の要素を含む OutBus という名前の最上位バスが表示されます。NestedBus は、Chirp および Sine という名前の要素を含む、入れ子にされたバスです。

この例では信号を各 Out Bus Element ブロックに接続していますが、バスを Out Bus Element ブロックに接続することもできます。
3 つの Out Bus Element ブロックは、モデルの出力端子でバーチャル バスを作成します。バーチャル バスを確認するには、別のモデル内のモデルを参照するか、Out Bus Element ブロックをサブシステムに移動します。モデルをコンパイルするとライン スタイルが更新されます。モデルをコンパイルするために、Simulink ツールストリップの [モデル化] タブで、[モデルの更新] または [実行] をクリックします。

端子の複数要素の指定
モデル ファイルまたはサブシステム ファイルで端子にバスが必要な場合、In Bus Element ブロックまたは Out Bus Element ブロッで端子を定義します。
インターフェイスでバス要素端子の要素を指定するには、次の方法があります。
ブロック線図にブロックを追加して要素をインターフェイスに追加するかブロックを追加せずに要素をインターフェイスに追加する。
Simulink.Busオブジェクトでバス階層を定義する。
メモ
バス要素端子のバスのデータ型として Simulink.Bus オブジェクトを指定するには、バスまたはバスの要素を In Bus Element ブロックまたは Out Bus Element ブロックで表す必要があります。
この例では、1 つのブロックをもつインターフェイスで Simulink.Bus オブジェクトなしで入力バス要素端子を定義する方法を示します。
NestedBus という名前の入れ子にされたバスと Step という名前の信号を含むバスが端子に必要であるとします。入れ子にされたバスには Chirp と Sine という名前の信号が含まれます。モデルまたはサブシステムで、現在は Step という名前の信号のみを使用しています。
空のモデルまたはサブシステムに、In Bus Element ブロックを追加します。このブロックで入力端子を作成します。
![]()
ブロックで表す要素の名前を変更するために、ブロック ラベルで signal1 をダブルクリックします。次に、signal1 を Step に置き換えます。

プロパティ インスペクターを開きます。その後、In Bus Element ブロックを選択します。あるいは、ブロックをダブルクリックしてダイアログ ボックスを開きます。
プロパティ インスペクターまたはダイアログ ボックスで、InBus という名前の最上位バスを選択します。その後、
ボタンの矢印をクリックし、[ブロックなしの要素の追加] を選択します。

前に選択した要素の下に新しい要素が入れ子になります。ブロック線図は変わりません。

In Bus Element ブロックで直接表現された要素でないことを示すために、新しい要素の名前がグレーのイタリックで表記されます。
新しい要素の名前をダブルクリックします。次に、「NestedBus」と入力します。

入れ子にされたバスに要素を追加するために、NestedBus を選択します。その後、
ボタンの矢印をクリックし、[ブロックなしの要素の追加] を選択します。

バス要素をもう 1 つ追加するために、NestedBus を選択します。その後、
ボタンの矢印をクリックし、[ブロックなしの要素の追加] を選択します。

バス要素の名前を signal と signal2 から Chirp と Sine にそれぞれ変更するために、新しい各要素の名前をダブルクリックして新しい名前を入力します。

ブロックを追加せずに要素を追加することで、1 つの In Bus Element ブロックだけを使用し、Simulink.Bus オブジェクトなしで、バス階層全体を定義できます。
ヒント
ブロックを使用せずに多くの要素を追加する場合は、ダイアログ ボックスを使用するより関数 Simulink.Bus.addElementToPort を使用する方が迅速に行えます。例については、Programmatically Create Bus Element Portsを参照してください。
端子、信号、および実行の属性の表示を切り替えるには、
をクリックします。その後、必要に応じて属性を指定します。

R2025a より前: 属性を指定するには、バス、信号、またはメッセージの名前をポイントします。次に、信号属性の場合は
、実行属性の場合は
をクリックします。あるいは、使用可能な場合は属性の概要をクリックします。
属性を指定すると、要素名の横に属性の概要が表示されます。属性をさらに編集するには、要素名の横にある属性の概要をクリックします。

インターフェイスの要素のプロパティを定義すると、再利用のためにファイルを作成する際に役立ちます。参照サブシステムまたはモデルでサポートされる入力は、インターフェイスの定義によって決定されます。入力バスの階層およびプロパティは対応する端子における定義に一致している必要があります。
ブロックなしで要素を追加してから、それらの要素を選択する In Bus Element ブロックを追加することを決定したとします。入力要素のブロックを追加するには、要素名をクリックするか、Ctrl キーを押したまま複数の要素名をクリックします。次に、
をクリックします。たとえば、Chirp と Sine のブロックを追加します。

対応する In Bus Element ブロックがブロック線図に表示されます。

ブロック ラベルの各ドットは新しいレベルの階層を示します。
出力バス要素端子の場合、要素のブロックを追加する方法が少し異なります。出力バス要素端子のブロックを追加するには、既存の Out Bus Element ブロックで表されていない要素を選択します。その後、
をクリックして Out Bus Element ブロックを追加します。競合を避け、複数の Out Bus Element ブロックで同じ要素を表すことがないように、Out Bus Element ブロックは一度に 1 つしか追加できません。
その他の例と詳細については、In Bus Element および Out Bus Element を参照してください。
バスの要素へのアクセス
バス全体にアクセスすることも、バスから特定の信号、メッセージ、または入れ子にされたバスを選択することもできます。
バスから要素を抽出する方法は、バスの場所によって異なります。
コンポーネント内 — Bus Selector ブロックを使用します。
コンポーネント インターフェイス内 — In Bus Element ブロックを使用します。
参考
Bus Creator | Bus Selector | In Bus Element | Out Bus Element