コンポーネント インターフェイスでのバス プロパティの指定
この例では、バス要素の端子を使用してモデル インターフェイスでバス プロパティを指定する方法を示します。Simulink.Bus
オブジェクトを使用する場合と使用しない場合の両方について説明します。
モデル例を開く
IterativeCounter
プロジェクトを開くには、例を開きます。プロジェクトの起動時に CounterSystem
モデルが開きます。
ライン スタイルを更新するには、モデルを更新します。Simulink® ツールストリップの [モデル化] タブで [モデルの更新] をクリックします。ライン スタイルを使用してバスを視覚的に識別できます。
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
オブジェクトLimitsBus
—Data
という名前の非バーチャル バス内のLimits
という名前の非バーチャル バスを定義するSimulink.Bus
オブジェクト
バス オブジェクトとその使用方法を表示するには、型エディターを使用します。Simulink ツールストリップの [モデル化] タブの [設計] ギャラリーで、[型エディター] をクリックします。バス オブジェクトが使用されているブロックを強調表示するには、型エディターでバス オブジェクトを選択します。たとえば、DataBus
を選択します。このバス オブジェクトは 2 つの Bus Creator ブロックと Model ブロックで使用されています。
バス オブジェクトによるバス インターフェイスの指定
CounterAlgorithm
モデルの BatchData
というラベルが付いた In Bus Element ブロックはバス配列を受け取ります。
このインターフェイスを定義するために、BatchData
という名前の端子で以下が指定されています。
データ型は
Bus: DataBus
バスの仮想性は
nonvirtual
次元は
[2 1]
この指定を表示するには、プロパティ インスペクターを開きます。その後、BatchData
というラベルが付いた In Bus Element ブロックを選択します。バス オブジェクトで階層内のバス要素が指定されています。
バーチャル バスの作成
バーチャル バスを作成するために、CounterSystem
モデルでは Out Bus Element ブロックを含むサブシステムを使用しています。Controls
というラベルが付いた各 Out Bus Element ブロックがバスの要素に対応します。
信号属性によるバス インターフェイスの指定
CounterSystem
モデルのサブシステムでは、バーチャル バスの作成と定義の両方を Controls
という名前の端子で行います。
このインターフェイスを定義するために、Controls
という名前の端子で以下が指定されています。
int32
データ型のIncrement
という名前のバス要素boolean
データ型のReset
という名前のバス要素Offset
という名前のバス要素
この指定を表示するには、プロパティ インスペクターを開きます。その後、Out Bus Element ブロックを選択します。たとえば、Controls.Increment
というラベルが付いたブロックを選択します。
CounterAlgorithm
モデルの Controls
というラベルが付いた In Bus Element ブロックはバーチャル バスを受け取ります。
このインターフェイスを定義するために、Controls
という名前の端子で以下が指定されています。
int32
データ型のIncrement
という名前のバス要素boolean
データ型のReset
という名前のバス要素
この端子で指定されているのは、入力バスの要素のサブセットです。このサブセットは、参照モデルで使用されている要素のみを表します。Offset
という名前のバス要素は参照モデルで使用されていません。
この指定を表示するには、プロパティ インスペクターを開きます。その後、Controls
というラベルが付いた In Bus Element ブロックを選択します。
インターフェイス要素の使用方法の表示
コンポーネントのインターフェイスを検証するには、コンポーネント インターフェイス ビューを使用します。
Simulink ツールストリップの [モデル化] タブの [設計] ギャラリーで [インターフェイス ビュー] を選択します。
コンポーネントの境界にある端子を選択します。
[使用法の表示] をクリックします。
別の要素の使用方法をトレースするには、プロパティ インスペクターで要素を選択します。
オプションで、階層をナビゲートして他のコンポーネント内の要素の使用方法を表示します。
用途
このモデルの階層構造のシミュレーション データを記録して読み込むには、Load Data to Represent Nonvirtual Bus Input from Model Hierarchyを参照してください。
このモデルの階層構造のデータを指定の時間間隔でのみ記録するには、ログ間隔を参照してください。
このモデルの階層構造を使用したシミュレーションの入力および出力としてビッグ データを検討するには、ビッグ データの取り扱いを参照してください。
CounterAlgorithm
という名前のモデルの知的所有権を隠すには、保護モデルの機能を参照してください。