メインコンテンツ

コンポーネント インターフェイスでのバス プロパティの指定

この例では、バス要素の端子を使用してモデル インターフェイスでバス プロパティを指定する方法を示します。Simulink.Bus オブジェクトを使用する場合と使用しない場合の両方について説明します。

モデル例を開く

IterativeCounter プロジェクトを開くには、例を開きます。プロジェクトの起動時に CounterSystem モデルが開きます。

ライン スタイルを更新するには、モデルを更新します。Simulink® ツールストリップの [モデル化] タブで [モデルの更新] をクリックします。ライン スタイルを使用してバスを視覚的に識別できます。

Model CounterSystem

Model ブロックは CounterAlgorithm という名前のモデルを参照しています。参照モデルは次の 2 つの入力を受け取ります。

  • BatchData — カウンターのデータと飽和制限を提供するバス配列。この配列には Data という名前の非バーチャル バスが 2 つ含まれています。それらの非バーチャル バスのそれぞれに、Pulse という名前の信号と Limits という名前の非バーチャル バスが含まれています。

  • Controls — インクリメントを変更する信号、カウンターをリセットする信号、およびカウンターのオフセットを定義する信号を提供するバーチャル バス。

参照モデルと親モデルの間のインターフェイスに互換性がなければなりません。データ型などの指定が一致していなければならず、参照モデルで使用されている要素を親モデルから使用できなければなりません。

バス配列の作成

バス配列を作成するために、CounterSystem モデルでは Vector Concatenate ブロックを使用しています。

非バーチャル バスの作成には、CounterSystem モデルでは、Simulink.Bus オブジェクトを指定する Bus Creator ブロックを使用しています。非バーチャル バスは Simulink.Bus オブジェクトで定義されていなければなりません。BusTypes.sldd という名前のデータ ディクショナリで Simulink.Bus オブジェクトがモデルに提供されています。

  • DataBus — 配列バス内の Data という名前の非バーチャル バスを定義する Simulink.Bus オブジェクト

  • LimitsBusData という名前の非バーチャル バス内の Limits という名前の非バーチャル バスを定義する Simulink.Bus オブジェクト

バス オブジェクトとその使用方法を表示するには、型エディターを使用します。Simulink ツールストリップの [モデル化] タブの [設計] ギャラリーで、[型エディター] をクリックします。バス オブジェクトが使用されているブロックを強調表示するには、型エディターでバス オブジェクトを選択します。たとえば、DataBus を選択します。このバス オブジェクトは 2 つの Bus Creator ブロックと Model ブロックで使用されています。

DataBus bus object usage in CounterSystem model

バス オブジェクトによるバス インターフェイスの指定

CounterAlgorithm モデルの BatchData というラベルが付いた In Bus Element ブロックはバス配列を受け取ります。

BatchData port in referenced model

このインターフェイスを定義するために、BatchData という名前の端子で以下が指定されています。

  • データ型は Bus: DataBus

  • バスの仮想性は nonvirtual

  • 次元は [2 1]

この指定を表示するには、プロパティ インスペクターを開きます。その後、BatchData というラベルが付いた In Bus Element ブロックを選択します。バス オブジェクトで階層内のバス要素が指定されています。

BatchData bus hierarchy

バーチャル バスの作成

バーチャル バスを作成するために、CounterSystem モデルでは Out Bus Element ブロックを含むサブシステムを使用しています。Controls というラベルが付いた各 Out Bus Element ブロックがバスの要素に対応します。

Subsystem block diagram

信号属性によるバス インターフェイスの指定

CounterSystem モデルのサブシステムでは、バーチャル バスの作成と定義の両方を Controls という名前の端子で行います。

このインターフェイスを定義するために、Controls という名前の端子で以下が指定されています。

  • int32 データ型の Increment という名前のバス要素

  • boolean データ型の Reset という名前のバス要素

  • Offset という名前のバス要素

この指定を表示するには、プロパティ インスペクターを開きます。その後、Out Bus Element ブロックを選択します。たとえば、Controls.Increment というラベルが付いたブロックを選択します。

Controls bus hierarchy

CounterAlgorithm モデルの Controls というラベルが付いた In Bus Element ブロックはバーチャル バスを受け取ります。

Controls port in referenced model

このインターフェイスを定義するために、Controls という名前の端子で以下が指定されています。

  • int32 データ型の Increment という名前のバス要素

  • boolean データ型の Reset という名前のバス要素

この端子で指定されているのは、入力バスの要素のサブセットです。このサブセットは、参照モデルで使用されている要素のみを表します。Offset という名前のバス要素は参照モデルで使用されていません。

この指定を表示するには、プロパティ インスペクターを開きます。その後、Controls というラベルが付いた In Bus Element ブロックを選択します。

Controls bus hierarchy in referenced model

インターフェイス要素の使用方法の表示

コンポーネントのインターフェイスを検証するには、コンポーネント インターフェイス ビューを使用します。

  1. Simulink ツールストリップの [モデル化] タブの [設計] ギャラリーで [インターフェイス ビュー] を選択します。

  2. コンポーネントの境界にある端子を選択します。

  3. [使用法の表示] をクリックします。

  4. 別の要素の使用方法をトレースするには、プロパティ インスペクターで要素を選択します。

  5. オプションで、階層をナビゲートして他のコンポーネント内の要素の使用方法を表示します。

The Component Interface View displays the usage of the BatchData array of buses from the input port to the output port of the component.

用途

  • このモデルの階層構造のシミュレーション データを記録して読み込むには、Load Data to Represent Nonvirtual Bus Input from Model Hierarchyを参照してください。

  • このモデルの階層構造のデータを指定の時間間隔でのみ記録するには、ログ間隔を参照してください。

  • このモデルの階層構造を使用したシミュレーションの入力および出力としてビッグ データを検討するには、ビッグ データの取り扱いを参照してください。

  • CounterAlgorithm という名前のモデルの知的所有権を隠すには、保護モデルの機能を参照してください。

参考

ブロック

オブジェクト

トピック