このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
バーチャル バスへの信号またはメッセージのグループ化
信号またはメッセージは 1 つのバスにまとめることができます。バス全体にアクセスすることもバスから特定の要素を選択することもできます。Simulink® のバーチャル バスは、タイ ラップで結束されるワイヤーのバンドルに似ています。ちなみに、Simulink の非バーチャル バスは C コードの struct に似ています。
すべてのブロックでバスが受け入れられるわけではなく、バスをベクトルに暗黙的に変換するブロックもあります。どのブロックがどのバスのタイプをサポートするかについては、バス対応ブロックを参照してください。バス変換を特定するには、バスからベクトルへの変換の管理を参照してください。
バーチャル バスを作成する方法は、グループ化する信号またはメッセージの位置によって異なります。
コンポーネント内にある場合 — 自動化されたアクションで実装できる Bus Creator ブロックを使用します。コンポーネント内の信号線のグループ化を参照してください。
コンポーネントの出力インターフェイスにある場合 — Out Bus Element ブロックを使用します。複数の出力信号を 1 つの端子に接続を参照してください。
サブシステム インターフェイスにある場合 — 自動化されたアクションを使用して In Bus Element ブロックと Out Bus Element ブロックを実装します。複数のサブシステム端子を 1 つの端子に結合を参照してください。
要素をバスから抽出するには、コンポーネント内では Bus Selector ブロックを、コンポーネント インターフェイスでは In Bus Element ブロックを使用します。
基本ステップに集中するために、以下の例はシンプルですが、バスは、多くの信号またはメッセージを結合する場合に最も役立ちます。
ヒント
モデルを開くか、バスを作成する場合、Simulink エディターにバス ライン スタイルは表示されません。このライン スタイルを更新するには、モデルをコンパイルしなければなりません。Simulink ツールストリップの [モデル化] タブで、[モデルの更新] または [実行] をクリックします。
コンポーネント内の信号線のグループ化
Bus Creator ブロックを使用してコンポーネント内で信号をバーチャル バスにグループ化できます。
3 つのブロックを含むモデル例を開きます。
複数のブロックの出力を含むバスを作成するには、ブロックをドラッグして選択します。この例では、Chirp Signal ブロックと Sine Wave ブロックを選択します。表示された操作バーで、[バスの作成] をクリックします。
Simulink は Bus Creator ブロックを追加し、そのブロックに入力を接続します。Bus Creator ブロックの出力は、バーチャル バスです。
バスの要素を特定しやすくするために、Bus Creator ブロックへの入力にラベルを付けます。ラインをダブルクリックし、「Chirp
」と入力して Chirp Signal ブロックの出力にラベルを付けます。同様に、Sine Wave ブロック Sine
の出力にラベルを付けます。
2 番目のバスを作成して、それに最初のバスと Step ブロックの出力を含めるには、Bus Creator ブロックと Step ブロックをドラッグして選択します。表示された操作バーで、[バスの作成] をクリックします。Sine
信号と Chirp
信号は入力バスの要素であるため、Sine Wave ブロックと Chirp Signal ブロックを選択したかどうかに関係なく、Simulink は同じバスを作成します。
Simulink は別の Bus Creator ブロックを追加し、そのブロックに入力を接続します。Bus Creator ブロックの出力は、入れ子にされたバスを含むバーチャル バスです。
バスは任意の深さの入れ子にできます。Bus Creator ブロックへの入力の 1 つがバスである場合、その出力は、少なくとも 1 つの入れ子のバスを含むバス階層です。
Step ブロック Step
の出力と、最初の Bus Creator ブロック NestedBus
の出力にラベルを付けます。オプションで、ブロックを配置してモデルの可読性を改善します。
2 番目の Bus Creator ブロックの出力を Scope ブロックに接続し、出力 TopBus
にラベルを付けます。バスを視覚的に特定するには、Simulink ツールストリップの [モデル化] タブで、[モデルの更新] または [実行] をクリックしてモデルをコンパイルします。モデルをコンパイルするとライン スタイルが更新されます。
複数の出力信号を 1 つの端子に接続
この例では、Out Bus Element ブロックを使用して、サブシステムまたはモデルの出力信号をバーチャル バスにグループ化する方法を示します。
3 つのソース ブロックを含むモデル例を開きます。
Out Bus Element ブロックをモデルに追加します。Out Bus Element ブロックは Outport ブロックに接続されている Bus Creator ブロックと似ています。Chirp Signal ブロックの出力を Out Bus Element ブロックに接続します。
Out Bus Element ブロックの横にあるラベルには、2 つの部分があります。ラベルの最初の部分はバス (OutBus
) について説明し、ラベルの 2 番目の部分はバス要素 (signal1
) について説明します。バスの要素の特定を容易にするには、signal1
をダブルクリックして Chirp
を入力して要素の名前を変更します。
Ctrl キーを押しながら Out Bus Element ブロックをドラッグするのを 2 回行い、ブロックの 2 つのコピーを作成します。このようにブロックをコピーするときに、新しい端子を作成するか既存の端子を使用するかを指定します。すべての信号を含む出力バスを 1 つ作成するには、ブロックをコピーするたびに [既存端子の使用] を選択し、信号を接続します。
出力バスで階層を作成するには、バス要素を説明するラベルの部分でドットを使用します。各ドットが新しいレベルの階層を作成します。バス要素をそれぞれ NestedBus.Sine
と NestedBus.Step
として定義して、NestedBus
という名前の入れ子のバスを作成します。
または、バスを Out Bus Element ブロックに接続できます。その他の Out Bus Element ブロックが同じ端子に対応している場合、バスは出力バスに入れ子にされています。バス要素を説明するラベルの部分に、この入れ子にされたバスの名前が提供されます。
任意の Out Bus Element ブロックをダブルクリックして、端子のダイアログ ボックスでバス階層を検査します。
3 つの Out Bus Element ブロックは、モデルの出力端子でバーチャル バスを作成します。バーチャル バスを確認するには、別のモデル内のモデルを参照するか、Out Bus Element ブロックをサブシステムに移動します。モデルをコンパイルするとライン スタイルが更新されます。モデルをコンパイルするには、Simulink ツールストリップの [モデル化] タブで、[モデルの更新] または [実行] をクリックします。
複数のサブシステム端子を 1 つの端子に結合
この例では、複数の端子とそれらの接続された信号を 1 つの端子とバスに変換することで、サブシステムのインターフェイスを簡略化する 3 つの方法について説明します。この自動変換はモデルのインターフェイスではサポートされません。
複数の入力端子と出力端子をもつ 2 つのサブシステムを含むモデル例を開きます。
2 つのサブシステム間の信号線を囲む選択ボックスをドラッグします。表示された操作バーから [バスの作成] をクリックします。
Simulink は、変換元のサブシステムと変換先のサブシステムの Inport ブロックと Outport ブロックを In Bus Element ブロックと Out Bus Element ブロックに置き換えます。
ソース ブロックと最初のサブシステム間の信号線を囲む選択ボックスをドラッグします。表示された操作バーから [バスの作成] をクリックします。
Simulink は、最初のサブシステムの前に Bus Creator ブロックを追加し、最初のサブシステム内の Inport ブロックを In Bus Element ブロックに置き換えます。
2 番目のサブシステムと Scope ブロック間の信号線を囲む選択ボックスをドラッグします。表示された操作バーから [バスの作成] をクリックします。
Simulink は、2 番目のサブシステム内の Outport ブロックを Out Bus Element ブロックに置き換え、Bus Selector ブロックを 2 番目のサブシステムの前に追加します。
結果のモデルは、サブシステム インターフェイスでバーチャル バスを使用します。
参考
Bus Creator | Bus Selector | In Bus Element | Out Bus Element