このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Bus Creator
入力信号またはメッセージをバスにグループ化する
ライブラリ:
Simulink /
Commonly Used Blocks
Simulink /
Signal Routing
HDL Coder /
Signal Routing
説明
Bus Creator ブロックは入力信号またはメッセージをバスに結合します。バスには信号およびメッセージの個別の ID が保持されます。既定では、Bus Creator ブロックは、タイ ラップで結束されるワイヤーのバンドルのような "バーチャル バス" を作成します。あるいは、ブロックでは C コードの構造体のような "非バーチャル バス" を作成することもできます。
バスの要素は、一意の名前をもたなければなりません。既定では、バスの各要素は、Bus Creator ブロックに接続された要素の名前を継承します。重複する名前が存在する場合、Bus Creator ブロックによってすべての入力要素名に端子番号が追加されます。要素が名前をもたない場合、Bus Creator ブロックによって signaln
の形式で名前が付けられます。ここで、n
はその要素に接続された端子番号です。要素のソースを検索するときや、他のブロックに接続する要素を選択するとき、要素を名前で参照できます。要素の命名のガイドラインについては、信号名とラベルを参照してください。
名前で要素をバスから抽出するには、Bus Selector ブロックを使用します。
他のバスを含むバスを作成するには、他のバスを Bus Creator ブロックの入力端子に接続します。
ヒント
サブシステムおよびモデル インターフェイスのバスでは、Outport ブロックをもつ Bus Creator ブロックの代わりに Out Bus Element ブロックを使用します。Out Bus Element ブロックは次のことを行います。
ブロック線図における線の複雑さと煩雑さを低減する。
インターフェイスに対する段階的な変更を容易にする。
例
コンポーネント内の信号線のグループ化
Bus Creator ブロックを使用してコンポーネント内で信号をバーチャル バスにグループ化できます。
3 つのブロックを含む VirtualBusCreation
という名前のモデルを開きます。
複数のブロックの出力を含むバスを作成するには、ブロックをクリックおよびドラッグして選択します。この例では、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
信号と Chirp
信号は入力バスの要素であるため、Sine Wave ブロックと Chirp Signal ブロックを選択したかどうかに関係なく、同じバスが作成されます。
別の Bus Creator ブロックが追加され、そのブロックに入力が接続されます。Bus Creator ブロックの出力は、入れ子にされたバスを含むバーチャル バスです。
バスは任意の深さの入れ子にできます。Bus Creator ブロックへの入力の 1 つがバスである場合、その出力は、少なくとも 1 つの入れ子のバスを含むバス階層です。
新しい Bus Creator ブロックへの入力にラベルを付けます。Step ブロックと Bus Creator ブロックの間のラインをダブルクリックします。次に、「Step
」と入力します。Bus Creator ブロック間のラインをダブルクリックします。次に、「NestedBus
」と入力します。オプションで、ブロックを配置してモデルの可読性を改善します。
2 番目の Bus Creator ブロックの出力を Scope ブロックに接続し、出力 TopBus
にラベルを付けます。バスを視覚的に特定するには、Simulink ツールストリップの [モデル化] タブで、[モデルの更新] または [実行] をクリックしてモデルをコンパイルします。モデルをコンパイルするとライン スタイルが更新されます。
非バーチャル バスのコンポーネント内での作成
Bus Creator ブロックを使用して、非バーチャル バスをコンポーネント内に作成できます。
BusHierarchy
という名前のモデルを開いてコンパイルします。このモデルでは Bus Creator ブロックを使用してバーチャル バスの階層を作成します。モデルをコンパイルするには、Simulink ツールストリップの [モデル化] タブで、[モデルの更新] または [実行] をクリックします。モデルをコンパイルするとライン スタイルが更新されます。このライン スタイルは、バスを視覚的に識別するのに使用できます。
mdl = BusHierarchy;
open_system(mdl)
set_param(mdl,SimulationCommand="Update")
このモデルの作成については、コンポーネント内の信号線のグループ化を参照してください。
このモデルのバーチャル バスは Simulink.Bus
オブジェクトで定義されていません。Bus Creator ブロックの出力を非バーチャル バスに変更するには、バスの階層と一致するバス オブジェクトがなければなりません。
TopBus
および NestedBus
に対応するバス オブジェクトを作成するには、関数Simulink.Bus.createObject
を使用します。MATLAB コマンド ウィンドウで次のコマンドを入力します。
Simulink.Bus.createObject("BusHierarchy","BusHierarchy/Bus Creator1");
この関数は、指定されたブロックの出力バスに対応するバス オブジェクトを作成します。入れ子にされたバスが出力バスに含まれている場合、関数は入れ子にされたバスに対応するバス オブジェクトも作成します。この例では、関数は対応するバス TopBus
と NestedBus
の名前が付いた 2 つのバス オブジェクトを作成します。
バス オブジェクトを表示するには、[型エディター] を開きます。Simulink® ツールストリップの [モデル化] タブの [設計] ギャラリーで、[型エディター] をクリックします。外部データ ソースまたはバスを展開するには、その名前の横にある矢印をクリックします。
作成する非バーチャル バスに対応するバス オブジェクトができたので、非バーチャル バスを作成します。Simulink エディターで、Bus Creator1
という名前の Bus Creator ブロックをダブルクリックします。[ブロック パラメーター] ダイアログ ボックスで、[出力データ型] を Bus: TopBus
に設定し、[非バーチャル バスとして出力] チェック ボックスをオンにして [OK] をクリックします。TopBus
は非バーチャル バスになりますが、NestedBus
はバーチャル バスのままです。ライン スタイルで非バーチャル バスを特定するには、モデルをコンパイルします。
Bus Creator
という名前のブロックをダブルクリックします。[ブロック パラメーター] ダイアログ ボックスで、[出力データ型] を Bus: NestedBus
に設定し、[非バーチャル バスとして出力] チェック ボックスをオンにして [OK] をクリックします。NestedBus
は非バーチャル バスになりました。バスのライン スタイルを更新するには、モデルをコンパイルします。
バス オブジェクトを保存しない場合、そのモデルを再度開くときに、バス オブジェクトを再作成しなければなりません。バス オブジェクトを保存する方法の詳細については、バス オブジェクトでのバス プロパティの指定を参照してください。
拡張例
端子
入力
Port_1 — バスに含める入力要素
スカラー | ベクトル | 行列 | 配列 | バス
入力端子はバスに含める要素を受け入れます。入力端子の数は [入力数] パラメーターによって駆動されます。
各 Bus Creator ブロックでは、入力要素の次の組み合わせがサポートされます。
信号のみ
信号と信号バス
メッセージのみ
メッセージとバス
バスのみ
対応する Bus Creator ブロックの入力端子で受け入れ可能な可変サイズの信号の上限よりも上限が小さい可変サイズの入力信号を指定できます。Bus Creator ブロックの入力端子で受け入れ可能な可変サイズの信号の上限を構成するには、Simulink.BusElement
オブジェクトを使用します。詳細については、Simulink.BusElement
を参照してください。可変サイズの入力信号は、対応する Bus Creator ブロックの入力端子で受け入れるように構成されている可変サイズの信号と同じ次元をもつ必要があります。
データ型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| string
| Boolean
| fixed point
| enumerated
| bus
複素数のサポート: あり
出力
Port_1 — 出力バーチャル バスまたは非バーチャル バス
バス
出力バスは入力要素で構成されています。[非バーチャル バスとして出力] パラメーターは、出力バスがバーチャル バスまたは非バーチャル バスのどちらであるかを指定します。バスの種類の詳細については、合成インターフェイスのガイドラインを参照してください。
データ型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| string
| Boolean
| fixed point
| enumerated
| bus
複素数のサポート: あり
パラメーター
Bus Creator ブロック パラメーターを対話形式で編集するには、ブロックをダブルクリックします。
入力数 — 入力要素の数
2
(既定値) | 整数
入力要素の数は 2 以上の整数でなければなりません。入力の数を増やすと、ブロックに空の入力端子が追加されます。モデルのシミュレーションを実行する前に、入力要素が各入力端子に接続されていることを確認します。
[入力数] パラメーターを修正した場合は、[更新] をクリックして要素のリストを更新します。
すべての入力端子が既に接続されている場合、Bus Creator ブロックに別の線を接続することで、入力端子を追加できます。
端子を対話的に追加すると、[入力の数] パラメーターが更新され、バス内の要素のリストに新しい要素が追加されます。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
2 以上の整数、または要素名のコンマ区切りリストとして入力数を指定します。バス内の要素の名前を指定した場合、入力の数は、指定した要素名の数に一致します。
パラメーター: | Inputs |
値: | '2' (既定値) | integer in quotes | comma-separated list of element names in quotes |
データ型: | char | string |
例: set_param(gcb,'Inputs','3')
例: set_param(gcb,'Inputs','element1,element2,element3')
バス内の要素 — 入力要素のリスト
要素名のリスト
入力要素リストには、入れ子にされたバスの要素など、ブロックに入るすべての要素が含まれます。要素の横にある矢印は、入力要素がバスであることを示します。矢印をクリックすると、そのバスの内容を表示できます。
ブロックに入る要素のソースを強調表示するには、リスト内の要素を選択して [検索] をクリックします。
ダイアログ ボックスが開いている間に要素名を変更する場合は、[更新] をクリックしてリスト内の名前を更新します。
出力バス内の要素を並べ替えるには、[上] ボタンと [下] ボタンを使用します。[バス内の要素] リスト内の隣接する複数の最上位要素を選択して並べ替えまたは削除を行うことができます。
入力要素を追加または削除するには、それぞれ [追加] または [削除] をクリックします。次に、[適用] または [OK] をクリックして、ブロック アイコンを更新します。モデルのシミュレーションを実行する前に、入力要素が各入力端子に接続されていることを確認します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
要素名のコンマ区切りリストとしてバス内の要素を指定します。バス内の要素の名前を指定した場合、入力の数は、指定した要素名の数に一致します。
パラメーター: | Inputs |
値: | '2' (既定値) | integer in quotes | comma-separated list of element names in quotes |
データ型: | char | string |
例: set_param(gcb,'Inputs','element1,element2,element3')
名前でフィルター — 表示される入力要素をフィルター処理するための検索用語
テキスト
表示される入力要素をフィルター処理するには、検索用語を入力します。フィルターは部分的な文字列検索を行います。検索用語は引用符で囲まないでください。
フィルター処理オプションにアクセスするには、[名前でフィルター] ボックスの右にある [フィルター処理オプションを表示する] ボタンをクリックします。
正規表現を有効にする — 表示される入力要素を正規表現でフィルター処理するオプション
オフ
(既定値) | オン
表示される入力要素を正規表現または部分的な検索文字列のいずれかでフィルター処理するには、このパラメーターを選択します。既定では、表示される入力要素のフィルター処理に使用できるのは部分的な検索文字列だけです。
正規表現では、入力要素がパターンと一致するかどうかに基づいてフィルター処理されます。たとえば、[名前でフィルター] ボックスに「t$
」と入力すると、要素名が小文字の t
で終了するすべての要素 (およびその直接の親) が表示されます。詳細については、正規表現を参照してください。
依存関係
このパラメーターにアクセスするには、[名前でフィルター] ボックスの右にある [フィルター処理オプションを表示する] ボタンをクリックします。
フィルター処理された結果をフラット リストとして表示する — フィルター処理された結果をフラット リストとして表示するオプション
オフ
(既定値) | オン
フィルター処理された結果を、ドット表記を使用してバスの階層構造を反映するフラット リストとして表示するには、このパラメーターを選択します。既定では、フィルター処理された結果は階層ツリーで表示されます。
依存関係
このパラメーターにアクセスするには、[名前でフィルター] ボックスの右にある [フィルター処理オプションを表示する] ボタンをクリックします。
出力データ型 — 出力バスのデータ型
'Inherit: auto'
(既定値) | Bus: <object name>
| <data type expression>
出力バスのデータ型を指定します。
[Bus: <object name>]
を選択する場合は、<object name>
を Simulink.Bus
オブジェクトの名前と置き換えます。モデルを編集するときは、バス オブジェクトにアクセスできなければなりません。
型エディターを使用して Simulink.Bus
オブジェクトを定義するには、[データ型アシスタントを表示] ボタン をクリックし、[モード] を [バス オブジェクト]
に設定してから、[編集] ボタンをクリックします。
[<データ型式>]
を選択する場合は、Simulink.Bus
オブジェクトに評価する式を指定します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
パラメーター: | OutDataTypeStr |
値: | 'Inherit: auto' (既定値) | 'Bus: <object name>' |
例: set_param(gcb,'OutDataTypeStr','Bus: control')
入力名を上記の名前と一致させる — 入力要素名がダイアログ ボックスにリストされている名前に一致しているかチェックするオプション
オフ
(既定値) | オン
このパラメーターは将来のリリースで削除されます。厳密なデータ型指定を適用するには、[バス オブジェクトからではなく入力からの名前を使用する] パラメーターを使用してください。
選択した場合、このパラメーターは、入力要素名が [ブロック パラメーター] ダイアログ ボックスにリストされている名前に一致しているかをチェックします。要素名が一致しない場合、エラーが返されます。
依存関係
[バス オブジェクトからではなく入力からの名前を使用する] を選択した場合、このパラメーターは無視されます。
プログラムによって [入力数] を変更した場合、このパラメーターは
[オフ]
に戻ります。
選択した信号の名前変更 — 選択した入力要素の新しい名前
''
(既定値) | 文字ベクトル
選択した入力要素の新しい名前を指定します。名前のガイドラインについては、信号名とラベルを参照してください。
依存関係
このパラメーターを有効にするには、[入力名を上記の名前と一致させる] を選択します。
バス オブジェクトからではなく入力からの名前を使用する — バス オブジェクトではなく、入力要素の名前を使用するオプション
オン
(既定値) | オフ
既定では、Simulink.Bus
オブジェクトをデータ型として指定しても、Bus Creator ブロックは入力要素名を出力バス要素名として使用します。
バス要素の名前をバス オブジェクトから継承するには、このパラメーターをクリアします。パラメーターをオフにすると、以下のようになります。
厳密なデータ型指定が適用されます。
バス オブジェクトとモデルのそれぞれに、要素名を複数回入力する必要がなくなります。要素名を複数回入力すると、誤って一致しない要素名を入力してしまうことがあります。
バス配列においてすべての要素で一貫した要素名を使用するという要件に対応できます。
このパラメーターを選択したままにして厳密な型指定を適用するには、[要素名の不一致] コンフィギュレーション パラメーターを [エラー]
に設定します。このコンフィギュレーション パラメーターは、入力要素名がバス オブジェクト内の対応する名前に一致しているかをチェックします。
依存関係
このパラメーターを有効にするには、[出力データ型] を Simulink.Bus
オブジェクトに設定します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
パラメーター: | InheritFromInputs |
値: | 'on' (既定値) | 'off' |
例: set_param(gcb,'InheritFromInputs','off')
非バーチャル バスとして出力 — 非バーチャル バスを出力するオプション
オフ
(既定値) | オン
バーチャル バスではなく非バーチャル バスを出力するには、このパラメーターを選択します。
非バーチャル バスのすべての要素は、関連付けられた Simulink.Bus
オブジェクトの要素が一部の要素について継承されたサンプル時間を指定する場合でも、同じサンプル時間をもつ必要があります。異なるサンプルレートの要素を含む非バーチャル バスが得られる場合、その演算はエラーになります。他の非バーチャル バス入力要素と異なるサンプル時間をもつ要素またはバスのサンプル時間を変更するには、Rate Transition ブロックを使用します。詳細については、非バーチャル バスのサンプル時間の変更を参照してください。
このブロックが作成するバスの構造体を C 構造体を使用して定義するコードを生成するには、このパラメーターを選択します。
依存関係
このパラメーターを有効にするには、[出力データ型] を Simulink.Bus
オブジェクトに設定します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
パラメーター: | NonVirtualBus |
値: | 'off' (既定値) | 'on' |
例: set_param(gcb,'NonVirtualBus','on')
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
実際のデータ型、または機能のサポートは、ブロックの実装に依存します。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための VHDL、Verilog および SystemVerilog のコードを生成します。
HDL Coder™ には、HDL の実装および合成されたロジックに影響する追加のコンフィギュレーション オプションがあります。
HDL コード生成でのバスの使用の詳細についてはバス (HDL Coder)およびバス信号を使用したモデルの可読性の向上および HDL コードの生成 (HDL Coder)を参照してください。
このブロックには 1 つの既定の HDL アーキテクチャがあります。
ConstrainedOutputPipeline | 既存の遅延を設計内で移動することによって出力に配置するレジスタの数。分散型パイプラインではこれらのレジスタは再分散されません。既定の設定は |
InputPipeline | 生成されたコードに挿入する入力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
OutputPipeline | 生成されたコードに挿入する出力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
PLC コード生成
Simulink® PLC Coder™ を使用して構造化テキスト コードを生成します。
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
実際のデータ型、または機能のサポートは、ブロックの実装に依存します。
バージョン履歴
R2006a より前に導入R2023a: 可変サイズの入力信号の上限を対応する Bus Creator ブロックの入力端子で受け入れ可能な可変サイズの信号の上限よりも小さくすることが可能
R2023a 以降では、Bus Creator ブロックにおいて、対応する Bus Creator ブロックの入力端子で受け入れ可能な可変サイズの信号の上限よりも上限が小さい可変サイズの入力信号がサポートされます。
この強化により、入力信号の上限が対応する Bus Creator ブロックの入力端子で受け入れ可能な可変サイズの信号の上限と等しくない場合に可変サイズの入力信号を使用できるようになります。
R2014b: [入力名を上記の名前と一致させる] パラメーターは非推奨
[入力名を上記の名前と一致させる] パラメーターは、将来のリリースで削除される可能性があります。厳密なデータ型指定を適用するには、代わりに [バス オブジェクトからではなく入力からの名前を使用する] パラメーターを使用してください。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)