Main Content

Bus Selector

入力バスから要素を選択する

  • Bus Selector block

ライブラリ:
Simulink / Commonly Used Blocks
Simulink / Signal Routing
HDL Coder / Signal Routing

説明

Bus Selector ブロックは、入力バス階層から名前で選択した要素を抽出します。このブロックは、選択した要素を個別に、または新しいバーチャル バスに出力できます。ブロックが、選択した要素を個別に出力した場合、選択した各要素は出力端子に対応します。ブロックが新しいバーチャル バスを出力した場合、ブロックには、選択した各要素が含まれるバーチャル バスの 1 つの出力端子があります。

複数の要素がバス階層内の異なる場所で同じ名前をもつことができますが、各要素は、Bus Selector ブロックで使用される一意の完全修飾名をもちます。たとえば、最上位のバスと入れ子にされたバスが chirp という名前の要素をもつことができます。最上位バスの要素の完全修飾名は chirp です。入れ子にされたバスの要素の完全修飾名は nestedbus.chirp です。ここで、nestedbus は入れ子にされたバスの名前です。

ヒント

サブシステムおよびモデル インターフェイスのバスについては、Bus Selector ブロックをもつ Inport ブロックの代わりに In Bus Element ブロックを使用します。In Bus Element ブロックは次のことを行います。

  • ブロック線図における線の複雑さと煩雑さを低減する。

  • インターフェイスに対する段階的な変更を容易にする。

  • 使用ポイントに近いバス要素へのアクセスを許可して、Bus Selector および Goto ブロック構成の使用を回避する。

すべて展開する

Bus Selector ブロックを使用することで、バスから名前で要素を抽出できます。

BusElementSelection という名前のモデル例を開いてコンパイルします。モデルをコンパイルするには、Simulink ツールストリップの [モデル化] タブで、[モデルの更新] または [実行] をクリックします。モデルをコンパイルするとライン スタイルが更新されます。このライン スタイルは、バスを視覚的に識別するのに使用できます。

Bus Creator ブロックはソース信号からバス階層を作成します。

  • Bus Creator という名前の Bus Creator ブロックは、sine および chirp という名前の信号を sinusoidal という名前のバスにグループ化します。

  • Bus Creator1 という名前の Bus Creator ブロックは、pulse および saw という名前の信号を nonsinusoidal という名前のバスにグループ化します。

  • Bus Creator2 という名前の Bus Creator ブロックは、2 つのバスおよび constant という名前の信号を sources という名前のバスにグループ化します。

Bus Selector ブロックは sources という名前のバスを入力として受け取り、chirp という名前の信号を出力として返します。

この例では、Bus Selector ブロックの出力は Out Bus Element ブロックに接続されます。2 つの Out Bus Element ブロックは未接続のままです。

出力端子を Bus Selector ブロックに追加するために、Bus Selector ブロックの出力の端をクリックします。

選択する要素の名前 (たとえば、nonsinusoidal) を入力していきます。

矢印キーを使用して nonsinusoidal という名前の要素を選択します。次に、Enter キーを押します。あるいは、メニューで要素名をクリックします。

新しい端子を Out Bus Element ブロックに接続します。オプションとして、モデルをコンパイルして、選択したバスのバス ライン スタイルを表示します。

Bus Selector ブロックの新しい出力端子にブロックを接続するには、ブロックの未接続の入力端子を Bus Selector ブロックの出力の端にドラッグします。

たとえば、残りの Out Bus Element ブロックの入力端子を Bus Selector ブロックの出力の端にドラッグします。

選択する要素の名前 (たとえば、saw) を入力していきます。

矢印キーを使用して nonsinusoidal.saw という名前の要素を選択します。次に、Enter キーを押します。あるいは、メニューで要素名をクリックします。

この例では、要素の完全修飾名は nonsinusoidal.saw です。これは、saw という名前の信号は nonsinusoidal という名前の入れ子にされたバス内にあるためです。

この例ではブロック線図で入力バスから要素を選択する方法を示していますが、Bus Selector ブロックをダブルクリックし、開いたダイアログ ボックスで出力要素を選択することもできます。

端子

入力

すべて展開する

入力バーチャル バスまたは非バーチャル バスには、選択した要素が含まれます。

バスの配列では、Selector ブロックを使用して、Bus Selector ブロックと共に使用するバスを選択します。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | Boolean | fixed point | enumerated | bus
複素数のサポート: あり

出力

すべて展開する

既定では、ブロックは、選択した要素のそれぞれを、対応するバス要素名でラベル付けされた個別の出力端子から出力します。

[バーチャル バスとして出力] パラメーターが選択されていると、ブロックは選択した要素を、バーチャル バスにグループ化された 1 つの端子から出力します。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | Boolean | fixed point | enumerated | bus
複素数のサポート: あり

パラメーター

すべて展開する

Bus Selector ブロック パラメーターを対話形式で編集するには、ブロックをダブルクリックします。

既定では、ダイアログ ボックスが垂直方向のレイアウトで開き、選択した要素がバス内の要素のリストの下に示されます。バス内の要素と選択した出力要素を横に並べて表示するには、the Change layout button をクリックします。

この パラメーター は読み取り専用です。

バス内の要素のリストには、入れ子にされたバスの要素など、ブロックに入るすべての要素が含まれます。要素の横にある矢印は、入力要素がバスであることを示します。矢印をクリックすると、そのバスの内容を表示できます。

正規表現を使用して、または使用せずに、名前でバス内の要素をフィルター処理するには、[フィルター] ボックスに検索用語を入力します。検索用語は引用符で囲まないでください。オプションとして、the Show filtered results as a flat list button をクリックして、フィルター処理された結果をフラット リストとして表示します。フラット リストでは、ドット表記を使用してバス階層が反映されます。既定では、フィルター処理された結果は階層ツリーで表示されます。

ブロックに入る要素のソースを強調表示するには、リスト内の要素を選択します。次に、the Highlight source blocks button をクリックします。

ブロックに入る要素のリストを更新するには、the Refresh button をクリックします。たとえば、ダイアログ ボックスが開いている間に要素名を変更した場合に、このボタンをクリックします。

ヒント

  • 選択した出力要素の横に緑のチェック マーク アイコンが表示されます。

  • 選択した出力要素の上にマウスをポイントすると、Bus Selector ブロックでその要素が選択された回数が小かっこ内に表示されます。

  • 正規表現では、入力要素がパターンと一致するかどうかに基づいてフィルター処理されます。たとえば、[フィルター] ボックスに「t$」と入力すると、要素名が小文字の t で終了するすべての要素が表示されます。詳細については、正規表現を参照してください。

プログラムでの使用

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: InputSignals
値: cell array of element names

例: get_param(gcb,'InputSignals')

選択した要素のリストには、ブロックから出るすべての要素が含まれます。リストでは、各要素の完全修飾名が使用されます。

Simulink® エディターでは、[バーチャル バスとして出力] がオフのとき、端子をブロックに追加して入力バスから要素を選択します。

  1. Bus Selector ブロックの出力の端をクリックします。あるいは、ブロックがバスを受け取り、すべての出力端子が他の端子に接続されている場合は、Bus Selector ブロックの出力の端の近くに新しい線を描画します。

  2. 選択する要素を指定します。

[ブロック パラメーター] ダイアログ ボックスでは、要素を [選択した要素] リストに追加して入力バスから要素を選択します。

  1. [バス内の要素] リストで、ブロック出力に追加する 1 つ以上の要素を選択します。

    [バス内の要素] リストから複数の要素を選択すると、それらを選択する順序によって [選択した要素] リストに追加したときの順序が設定されます。

  2. オプションとして、[選択した要素] リストで、下に要素を追加する要素を選択します。要素を選択しなかった場合、要素はリストの末尾に追加されます。

  3. ダイアログ ボックスのレイアウトに応じて、the Select elements button (vertical layout) または the Select elements button (horizontal layout) をクリックします。

出力要素の順序を変更するには、[選択した要素] リスト内の要素を別の位置にドラッグします。要素の順序を変更しても、端子との接続は維持されます。

ブロック出力から要素を削除するには、[選択した要素] リストから削除する要素を選択します。次に、the Remove button をクリックします。

リスト内の要素が入力バスにない場合、要素名は赤色です。要素名の上にマウスをポイントすると、ツールヒントで要素が入力バスにないことが示されます。選択した要素のリストからその要素を削除するか、指定した名前の要素を含むように入力バスを変更します。

制限

再帰限界値を超えないように、選択する要素の数は Bus Selector ブロックごとに 500 個未満にします。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

パラメーター: OutputSignals
値: 'signal1,signal2' (既定値) | comma-separated list of element names in quotes
データ型: char | string

例: set_param(gcb,'OutputSignals','constant,sine')

既定では、ブロックは、選択した要素のそれぞれを、対応するバス要素名でラベル付けされた個別の出力端子から出力します。選択した要素をバーチャル バスにグループ化された 1 つの端子から出力するには、the Output as virtual bus button を選択します。

出力を非バーチャル バスに変換するには、Bus Selector ブロックの後に Signal Conversion ブロックを挿入します。Signal Conversion ブロックの [出力] パラメーターを [非バーチャル バス] に設定し、[データ型]Simulink.Bus オブジェクトに設定します。

[選択した要素] リストに 1 つの要素のみが含まれているときに the Output as virtual bus button を選択した場合、その要素はバス内にラップされません。たとえば、要素がバスである場合、出力要素はそのバスです。要素がバスではない場合、出力要素はバスではありません。

依存関係

このパラメーターを使用するには、ブロック出力にメッセージが含まれていてはなりません。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

パラメーター: OutputAsBus
値: 'off' (既定値) | 'on'

例: set_param(gcb,'OutputAsBus','on')

ブロックの特性

データ型

Boolean | bus | double | enumerated | fixed point | half | integer | single | string

直達

はい

多次元信号

はい

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

ヒント

既定では、ダイアログ ボックスが垂直方向のレイアウトで開き、選択した要素がバス内の要素のリストの下に示されます。バス内の要素と選択した出力要素を横に並べて表示するには、the Change layout button をクリックします。

拡張機能

PLC コード生成
Simulink® PLC Coder™ を使用して構造化テキスト コードを生成します。

バージョン履歴

R2006a より前に導入

すべて展開する