Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Simulink.Bus

バスのプロパティを指定

説明

Simulink.Bus オブジェクトは、Simulink.BusElement オブジェクトと共に使用され、バスとその要素のプロパティを指定および検証します。モデルをシミュレートまたは更新するときに、ブロックに接続されたバスがブロックで指定された Simulink.Bus オブジェクトと一致するかどうかがチェックされます。

バス オブジェクトは、バスのアーキテクチャのプロパティのみを指定します。たとえば、バス オブジェクトで要素名、階層、順序、データ型を指定できます。バス オブジェクトは、バスのメンバーを定義しますがバスは作成しないため、C コードにおける構造体に似ています。バス オブジェクトはケーブル コネクタにも似ています。コネクタはすべてのピンとそれらの構成を定義し、接続可能なワイヤのタイプを制御します。同様に、バス オブジェクトは関連付けられたバスに必要な信号の構成とプロパティを定義します。

Simulink.Bus オブジェクトには Simulink.BusElement オブジェクトが含まれています。各バス要素オブジェクトは、名前、データ型、次元など、バス内の信号のプロパティを指定します。バス オブジェクト内のバス要素オブジェクトの順序により、バス内の信号の順序が決まります。

バス オブジェクトは、構成要素の信号によって定義されずに、継承に依存するプロパティを指定できます。

ベース ワークスペースまたはデータ ディクショナリでバス オブジェクトを作成および変更するには、型エディターモデル エクスプローラー、または MATLAB® コマンドを使用します。Simulink.Bus オブジェクトをモデル ワークスペースに保存することはできません。

モデル内で Simulink.Bus オブジェクトを使用する場合は、Simulink.Bus オブジェクト データ型でのバス プロパティの指定を参照してください。

作成

Simulink.Bus オブジェクトは複数の方法で作成できます。

説明

name = Simulink.Bus は、既定のプロパティ値をもつ Simulink.Bus オブジェクトを返します。オブジェクトの名前は、オブジェクトを割り当てる MATLAB 変数の名前です。

プロパティ

すべて展開する

バスの説明。文字ベクトルまたは string スカラーとして指定します。この説明を使用して、オブジェクトが適用される信号の種類やオブジェクトの使用場所など、オブジェクトに関する情報を記述します。この情報は、Simulink® 処理に影響を与えません。

データ型: char | string

バスの要素。Simulink.BusElement オブジェクトの配列として指定します。各バス要素オブジェクトはバス内の信号の名前、データ型、次元、その他のプロパティを定義します。詳細については、Simulink.BusElement を参照してください。

生成コード内のデータ型の定義モード。'Auto''Exported' または 'Imported' として指定します。このプロパティは、コードの生成中に、データ型定義を HeaderFile プロパティで指定されたヘッダー ファイルからインポートするか、このファイルにエクスポートするかを指定します。

アクション
'Auto' (既定の設定)

指定されたヘッダー ファイルからデータ型定義をインポートします。ヘッダー ファイルを指定しない場合、データ型定義を既定のヘッダー ファイルにエクスポートします。

'Exported'データ型定義を指定されたヘッダー ファイルまたは既定のヘッダー ファイルにエクスポートします。
'Imported'指定されたヘッダー ファイルまたは既定のヘッダー ファイルからデータ型定義をインポートします。

メモ

typedef ステートメントで宣言されていない enum 型または struct 型をインポートするには、次のようにします。

  • [シミュレーション ターゲット] コンフィギュレーション パラメーターで宣言を含むヘッダー ファイルをインクルード (#include) します。

  • [シミュレーション ターゲット] コンフィギュレーション パラメーターで [カスタム コードのインポート] が選択されていることを確認します。このパラメーターは既定では選択されています。

潜在的な MISRA C:2012 の違反を回避するには、データ スコープを [インポート] または [エクスポート] に設定します。

データ型: char | string

データ型定義で使用される C ヘッダー ファイル。文字ベクトルまたは string スカラーとして指定します。DataScope プロパティの値に基づいて、ヘッダー ファイルからデータ型定義をインポート、またはヘッダー ファイルにデータ型定義をエクスポートします。Simulink Coder™ ソフトウェアではコード生成にこのプロパティが使用されます。Simulink ソフトウェアではこのプロパティは無視されます。

既定では、生成された #include 命令は、< および > の代わりに、プリプロセッサの区切り記号である " を使用します。命令 #include <myTypes.h> を生成するには、HeaderFile<myTypes.h> として指定します。

データ型: char | string

データ整列境界。整数 (バイト数) として指定します。Simulink Coder ソフトウェアではコード生成にこのプロパティが使用されます。Simulink ソフトウェアではこのプロパティは無視されます。

このバスに割り当てられるデータの開始メモリ アドレスは Alignment 設定の倍数です。配置を必要とする状況でオブジェクトが発生した場合は、128 を超えない 2 のべき乗である正の整数もつ Alignment 値を指定しなければなりません。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

多次元バス要素の次元を生成コード内で保持するためのコード ジェネレーターの指定。'false' または 'true' として指定します。詳細については、Preserve Dimensions of Bus Elements in Generated Code (Embedded Coder)を参照してください。

データ型: logical

オブジェクト関数

getNumLeafBusElementsNumber of leaf elements in Simulink.Bus object
getLeafBusElementsLeaf elements in Simulink.Bus object

すべて折りたたむ

Simulink.BusElement オブジェクトの配列を使用して Simulink.Bus オブジェクトの階層を作成します。

Chirp および Sine という名前の 2 つの BusElement オブジェクトを含む配列をベース ワークスペースに作成します。

elems(1) = Simulink.BusElement;
elems(1).Name = 'Chirp';

elems(2) = Simulink.BusElement;
elems(2).Name = 'Sine';

配列のインデックス付けにより、配列の要素を作成したり要素にアクセスしたりできます。ドット表記によって要素のプロパティ値にアクセスできます。

elems 配列で定義される要素を含む、Sinusoidal という名前の Bus オブジェクトを作成します。

Sinusoidal = Simulink.Bus;
Sinusoidal.Elements = elems;

Bus オブジェクトの階層を作成するため、Sinusoidal という名前の Bus を参照する別の Bus オブジェクトを作成します。

NestedBus および Step という名前の 2 つの BusElement オブジェクトを含む配列を作成します。NestedBus 要素のデータ型として、Sinusoidal という名前の Bus オブジェクトを指定します。

clear elems

elems(1) = Simulink.BusElement;
elems(1).Name = 'NestedBus';
elems(1).DataType = 'Bus: Sinusoidal';

elems(2) = Simulink.BusElement;
elems(2).Name = 'Step';

elems 配列で定義される要素を含む、TopBus という名前の Bus オブジェクトを作成します。

TopBus = Simulink.Bus;
TopBus.Elements = elems;

作成されたオブジェクトの階層を [型エディター] で表示できます。

typeeditor

Type EditorSimulink.Bus オブジェクトの階層を対話的に検査できるほか、プログラムでオブジェクトを検査することもできます。

例を開きます。その後、busObjectDefinition という名前の関数を実行してバス オブジェクトを読み込みます。

busObjectDefinition

2 つのバス オブジェクトがベース ワークスペースに表示されます。

最上位のバス オブジェクトの検査

TopBus という名前の最上位のバス オブジェクトを検査します。

TopBus
TopBus = 
  Bus with properties:

                  Description: ''
                    DataScope: 'Auto'
                   HeaderFile: ''
                    Alignment: -1
    PreserveElementDimensions: 0
                     Elements: [2x1 Simulink.BusElement]

Elements プロパティの値に基づいて、TopBus には 2 つの Simulink.BusElement オブジェクトが含まれています。

TopBus の要素を検査します。

TopBus.Elements(1)
ans = 
  BusElement with properties:

              Name: 'NestedBus'
        Complexity: 'real'
        Dimensions: 1
          DataType: 'Bus: Sinusoidal'
               Min: []
               Max: []
    DimensionsMode: 'Fixed'
              Unit: ''
       Description: ''

DataType プロパティの値に基づいて、最初の要素は Sinusoidal という名前の入れ子にされたバス オブジェクトを表しています。

TopBus.Elements(2)
ans = 
  BusElement with properties:

              Name: 'Step'
        Complexity: 'real'
        Dimensions: 1
          DataType: 'double'
               Min: []
               Max: []
    DimensionsMode: 'Fixed'
              Unit: ''
       Description: ''

Name プロパティと DataType プロパティの値に基づいて、2 番目の要素は Step という名前の信号を表しています。

入れ子にされたバス オブジェクトの検査

Sinusoidal という名前の入れ子にされた Simulink.Bus オブジェクトの要素を検査します。

Sinusoidal
Sinusoidal = 
  Bus with properties:

                  Description: ''
                    DataScope: 'Auto'
                   HeaderFile: ''
                    Alignment: -1
    PreserveElementDimensions: 0
                     Elements: [2x1 Simulink.BusElement]

Elements プロパティの値に基づいて、Sinusoidal には 2 つの Simulink.BusElement オブジェクトが含まれています。

Sinusoidal の要素を検査します。

Sinusoidal.Elements(1)
ans = 
  BusElement with properties:

              Name: 'Chirp'
        Complexity: 'real'
        Dimensions: 1
          DataType: 'double'
               Min: []
               Max: []
    DimensionsMode: 'Fixed'
              Unit: ''
       Description: ''

Sinusoidal.Elements(2)
ans = 
  BusElement with properties:

              Name: 'Sine'
        Complexity: 'real'
        Dimensions: 1
          DataType: 'double'
               Min: []
               Max: []
    DimensionsMode: 'Fixed'
              Unit: ''
       Description: ''

Name プロパティと DataType プロパティの値に基づいて、要素は ChirpSine の 2 つの信号を表しています。

バス オブジェクトのリーフ要素の検査

バス オブジェクトのリーフ要素を直接検査するには、オブジェクト関数 getNumLeafBusElements および getLeafBusElements を使用します。

TopBus のリーフ要素の数を取得するには、オブジェクト関数 getNumLeafBusElements を使用します。

num = getNumLeafBusElements(TopBus)
num = 3

TopBus のリーフ要素に関する情報を取得するには、オブジェクト関数 getLeafBusElements を使用します。たとえば、TopBus の最初の要素を検査します。

leaf = getLeafBusElements(TopBus);
leaf(1)
ans = 
  BusElement with properties:

              Name: 'Chirp'
        Complexity: 'real'
        Dimensions: 1
          DataType: 'double'
               Min: []
               Max: []
    DimensionsMode: 'Fixed'
              Unit: ''
       Description: ''

バージョン履歴

R2006a より前に導入