Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Bus Assignment

指定したバス要素への新しい値の代入

  • Bus Assignment block

ライブラリ:
Simulink / Signal Routing
HDL Coder / Signal Routing

説明

Bus Assignment ブロックは、入力信号の値を選択したバス要素に割り当てます。Bus Assignment ブロックを使用して、バス要素の抽出および目的の要素でのバスの再構築を行わずにバス要素の値を変更します。Bus Assignment ブロックを使用すると、バスの更新が簡略化され、サブシステムや参照モデルなどの個別のコンポーネントで発生する処理が反映されます。

Bus Assignment ブロックは、バス入力端子に接続されたバスの指定要素に、割り当て入力端子に接続された要素を割り当てます。このブロックは、これらの要素に割り当て済みであった要素を置き換えます。変更はバスの構成には影響しません。変更は要素の値にのみ影響します。置き換えられない信号は、置き換えられた他の要素からの影響を受けません。

値を代入する要素は、入力バスの要素であれば、非バス信号でもバス (バス配列を含む) でもかまいません。新しい値は、元のバスの要素の属性に一致しなければなりません。

既定では、上流のバス階層の変更が原因で破損した Bus Assignment ブロックの選択内容が修復されます。修復でモデルが変更されたときにそのことが警告で通知されます。このような修復が自動的に行われないようにするには、[バス選択を修復] コンフィギュレーション パラメーターを [修復不要のエラー] に設定します。

すべて展開する

バス要素の値を置き換えるには、Bus Assignment ブロックを使用します。Bus Selector ブロックと Bus Creator ブロックを使用してバス要素の値を変更する必要はありません。

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

Bus Assignment ブロックには入力端子が 2 つあります。最初の入力端子は、新しい値を代入する要素を含むバスを受け取ります。バスはバーチャルまたは非バーチャルどちらでもかまいません。2 番目の入力端子は、バス要素に代入する値をもつ信号を受け取ります。

Bus Assignment ブロックをダブルクリックして代入オプションのダイアログ ボックスを開きます。[ブロック パラメーター] ダイアログ ボックスの [バス内の要素] のリストに、代入に使用できる要素が一覧表示されます。

この例では、バス要素 ab を代入に使用できます。

要素 a[割り当てられる要素] のリストにも表示されています。これは、要素が代入の対象として選択されていることを示します。

ブロック上の端子ラベルは対応する要素を示します。要素 a の端子ラベルは ":=a" です。

新しい値をバス要素に代入するには、新しい値を提供する信号を Bus Assignment ブロックの対応する端子に接続します。値を代入する要素はバスでも非バス信号でもかまいません。新しい値は、元のバスの要素の属性に一致しなければなりません。

このモデルでは、要素 a に新しい値を代入する端子に信号 c が接続されています。Bus Assignment ブロックは、バス要素 a の値 1 を信号 c の値 3 に置き換えます。

要素 a の新しい値と要素 b の変更されていない値を表示するために、Bus Selector ブロックで要素 ab を選択し、それらを Display ブロックに接続します。Display ブロックに、それらの要素の代入後の値が表示されます。

  • 要素 a の値は 3 です。これは、Bus Assignment ブロックの新しい値です。

  • 要素 b の値は 2 です。これは、この要素の元の値です。

[バス内の要素] で要素を選択して [選択] をクリックすることで、代入する追加の要素を選択できます。新しい値を代入する追加の要素ごとに、Bus Assignment ブロックで入力端子が追加されます。新しい入力端子で、追加のバス要素に代入する信号を接続できます。

制限

Bus Assignment ブロックではメッセージはサポートされません。

端子

入力

すべて展開する

入力バーチャル バスまたは非バーチャル バスは、バス オブジェクト、固定小数点データ型、列挙データ型を含む Simulink® ソフトウェアでサポートされる任意のデータ型の実数値または複素数値の要素をもつことができます。バスにはバス配列を含めることもできます。

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

[割り当てられる要素] リスト内の各要素は割り当て端子を受け取ります。この端子に対応するバス要素は端子ラベルで示されます。signal1 という名前の要素の端子ラベルは [:= signal1] です。

バス要素に代入する信号を対応する割り当て端子に接続します。割り当て端子に接続される信号は、対応するバス要素と同じ構造、データ型、サンプル時間をもたなければなりません。1 つ以上の要素のサンプル時間を変更するには、Rate Transition ブロックを使用します。詳細については、非バーチャル バスのサンプル時間の変更を参照してください。

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

出力

すべて展開する

出力バーチャル バスまたは非バーチャル バスには、選択した要素の割り当てられたバス要素の値と、その他の要素の変更されなかったバス要素の値が含まれます。

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

パラメーター

すべて展開する

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

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

入力バス内の要素を選択して操作します。

要素名の横にある矢印は、要素が入れ子にされたバスであることを示します。入れ子にされたバス内の要素を表示するには、この矢印をクリックします。

1 つ以上の要素を選択した状態で、次をクリックします。

  • 検索 — 選択した要素のソースを検出します。その要素ソースを含んでいるシステムが開き、強調表示されます。

  • 選択 — 選択した要素を、値が代入される要素のリストに追加します。詳細については、割り当てられる要素を参照してください。

入力バスに修正を反映させるには、[更新] をクリックしてリストを更新します。

プログラムでの使用

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

パラメーター: InputSignals
値: list of element names in a cell array or cell array of cell arrays

例: get_param(gcb,'InputSignals')

入力要素の長いリストをフィルター処理するために使用する検索用語を指定します。検索用語は引用符で囲まないでください。フィルターは部分的な文字列検索を行います。

検索用語を指定するための正規表現の使用など、フィルター処理オプションにアクセスするには、[名前でフィルター] ボックスの右にある [フィルター処理オプションを表示する] ボタン をクリックします。

要素名をフィルター処理するための MATLAB® 正規表現の使用を有効にします。たとえば、[名前でフィルター] ボックスに「t$」と入力すると、要素名が小文字の t で終了するすべての要素およびその直接の親が表示されます。詳細については、正規表現を参照してください。

依存関係

このパラメーターにアクセスするには、[名前でフィルター] ボックスの右にある [フィルター処理オプションを表示する] ボタン をクリックします。

既定では、入力要素のリスト内の要素は階層ツリーで表示されます。フィルター処理された要素を、ドット表記を使用してバスの階層構造を反映するフラット リストに表示するには、このパラメーターを選択します。

依存関係

このパラメーターにアクセスするには、[名前でフィルター] ボックスの右にある [フィルター処理オプションを表示する] ボタン をクリックします。

このブロックには、このリストの要素ごとに割り当て端子があります。端子ラベルには、対応する要素の名前が含まれます。

要素の割り当て端子を追加するには、次を行います。

  1. [バス内の要素] リストから 1 つ以上の要素を選択します。

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

  2. オプションで、[割り当てられる要素] リスト内で要素が表示される場所を指定します。追加した要素が表示される上の要素を選択します。要素を選択しない場合、追加された要素はリストの末尾に表示されます。

  3. [選択] をクリックします。

割り当て端子の順序を変更するには、リスト内の 1 つの要素または複数の連続要素を選択してから、[上] または [下] をクリックします。要素の順序を変更しても、端子との接続は維持されます。

割り当て端子を削除するには、リスト内の対応する要素を選択し、[削除] をクリックします。

リスト内の要素が入力バスにない場合、要素名は 3 つの疑問符 (???) で始まります。指定した名前の要素を含めるか、リストから要素を削除するには、入力バスを変更します。

プログラムでの使用

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

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

例: set_param(gcb,'AssignedSignals','sine,chirp')

ブロックの特性

データ型

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

直達

はい

多次元信号

はい

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

ヒント

  • バス配列内のバスを置き換える場合は、代わりに、Assignment ブロックを使用してください。例については、バス配列のモデル化を参照してください。

  • バスの配列内のバスの要素を置き換える場合は、Selector ブロックを使用して、変更するバスのインデックスを選択します。次に、選択したバスを Bus Assignment ブロックへの入力として使用します。

拡張機能

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

バージョン履歴

R2006a より前に導入