最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

モデル インターフェイスの非バーチャルバス

モデル参照の境界は、Model ブロックを含むモデルと参照モデルとの境界です。バス データが Model ブロックに渡される場合、そのデータは参照モデルとの境界を越えます。Model ブロックのバス データ入力は、参照モデルが要求するバス データと一致しなければなりません。

モデル参照境界を越えるバス データについては、バーチャル バスと非バーチャル バスのどちらを使用するかを決定してください。バーチャル バスを使用する方が、非バーチャル バスを使用するよりも簡単です。ただし、非バーチャル バスを使用することで、コード生成に対し適切に定義されたデータ インターフェイスが提供されます。バーチャル バスと非バーチャル バスの違いについては、合成信号のタイプを参照してください。

ヒント

インターフェイスのバーチャル バスについては、In Bus Element ブロックと Out Bus Element ブロックを参照してください。これらのブロックはマルチレート バーチャル バスをサポートしますが Simulink.Bus オブジェクトは必要ありません。

インターフェイスの非バーチャル バスについては、Inport ブロックと Outport ブロックを参照してください。

非バーチャル バスのモデル参照要件

参照モデルへの入力または参照モデルからの出力としてバスを使用する場合、以下の制限があります。

  • 可変サイズの信号要素を含めることができるのは、非バーチャル バスのみ。

  • コード生成では、非バーチャル バスを使用しているとき、または C++ クラス インターフェイスに [既定] スタイルを使用しているときにのみ、参照モデルの C++ クラス インターフェイスの [I/O 引数 step メソッド] スタイルを設定できる。

  • コード生成で、参照モデルに関数プロトタイプの制御を構成できるのは、非バーチャル バスを使用しているときのみ。

ルートレベルの Inport ブロックにおける非バーチャル バスの使用

ルートレベルの Inport ブロックから参照モデルへバスを渡すには、Inport ブロックの [ブロック パラメーター] ダイアログ ボックスで、次のようにします。

  • [データ型] パラメーターを [Bus: <object name>] に設定します。

  • Inport ブロックが生成するバスを定義する Bus オブジェクトの名前で <object name> を置き換えます。

ルートレベルの Inport ブロックから非バーチャル バスを出力するには、Inport ブロックの [ブロック パラメーター] ダイアログ ボックスで [非バーチャル バスとして出力] を選択します。

非バーチャル バス入力のすべての信号で同じサンプル時間を使用しなければなりません。詳細については、非バーチャル バスのサンプル時間の変更を参照してください。

ルートレベルの Inport ブロックにデータをインポートする方法の詳細については、ルート レベルの入力端子へのバス データの読み込みを参照してください。

ルートレベルの Outport ブロックにおける非バーチャル バスの使用

参照モデルのルートレベルの Outport ブロックを介してバスを渡すには、Outport ブロックの [ブロック パラメーター] ダイアログ ボックスで、次のようにします。

  • [データ型][Bus: <object name>] に設定します。

  • Outport ブロックが生成するバスを定義する Bus オブジェクトの名前で <object name> を置き換えます。

ルートレベルの Outport ブロックに対応する端子から非バーチャル バスを出力するには、Outport ブロックの [ブロック パラメーター] ダイアログ ボックスで [親モデル内の非バーチャル バスとして出力] を選択します。

非バーチャル バス入力のすべての信号で同じサンプル時間を使用しなければなりません。詳細については、非バーチャル バスのサンプル時間の変更を参照してください。

非バーチャル バスのレート変換

マルチレート バスを非バーチャル バスとして参照モデルに渡すには、Inport ブロックを使用します。次のように、親モデルと参照モデルのブロックを追加します。

  1. 親モデルで、マルチレート バスをシングルレート バスに変換するには、Rate Transition ブロックを挿入します。Inport ブロックが参照モデルに渡すことができるのはシングルレートの非バーチャル バスのみです。Rate Transition ブロックは、以下のいずれかの場合を除き、[ブロック パラメーター][出力端子のサンプル時間] フィールドでレートを指定しなければなりません。

    • [コンフィギュレーションパラメーター][ソルバー] ペインで以下の設定でレートが指定されていて、

      • [周期的なサンプル時間の制約] パラメーターが [サンプル時間を制約する] に設定されている場合。

      • [サンプル時間のプロパティ] パラメーターに指定のレートが含まれる場合。

    • 参照モデルで非バーチャル バスを受け入れる Inport ブロックが [ブロック プロパティ][信号属性][サンプル時間] フィールドでレートを指定している場合。

  2. 参照モデルで、Bus Selector ブロックを使用して目的の信号を選択し、Rate Transition ブロックを使用して、それらの信号を希望のレートに変換します。

参考

ブロック

関連するトピック