メインコンテンツ

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® ツールストリップの [モデル化] タブで [モデルの更新] をクリックします。モデルをコンパイルするとライン スタイルが更新されます。このライン スタイルは、バスを視覚的に識別するのに使用できます。

BusAssignment model

Bus Assignment ブロックには入力端子が 2 つあります。

  • 最初の入力端子は constants という名前のバスを受け取ります。

  • 2 番目の入力端子は c という名前の信号を受け取ります。

Bus Assignment ブロックをダブルクリックして代入オプションのダイアログ ボックスを開きます。

[ブロック パラメーター] ダイアログ ボックスの [バス内の要素] のリストに、代入に使用できる要素が一覧表示されます。このモデルでは、要素 ab を代入に使用できます。

The Elements in the bus list contains a and b.

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

The Elements that are being assigned list contains only a.

割り当て端子に対応する要素を示すために、ブロック アイコンの端子ラベルに要素名が含まれています。要素 a の端子ラベルは ":=a" です。

Assignment port label on block icon

信号 c が要素 a の割り当て端子に接続されています。Bus Assignment ブロックは、要素 a の値 1 を信号 c の値 3 に置き換えます。

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

Display ブロックに取り込むには、Simulink ツールストリップの [モデル化] タブで [実行] をクリックします。

BusAssignment model after simulation

Display ブロックに、要素の代入後の値が表示されます。

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

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

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

拡張例

制限

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

端子

入力

すべて展開する

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

データ型: 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 つ以上の要素を選択した状態で、次をクリックします。

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

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

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

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

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

  • フィルター処理された結果をフラット リストとして表示する — フィルター処理された結果を、ドット表記を使用してバス階層を反映したフラット リストに表示します。既定では、入力要素のリスト内の要素は階層ツリーで表示されます。

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

プログラムでの使用

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

パラメーター: InputSignals
値: 読み取り専用: list of element names in a cell array or cell array of cell arrays

例: get_param(gcb,'InputSignals')

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

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

  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 より前に導入