ドキュメンテーション

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

モデル参照の境界を越えるバス データ

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

モデル参照境界を越えるバス データについては、バーチャル バスと非バーチャル バスのどちらを使用するかを決定してください。バーチャル バスを使用する方が、非バーチャル バスを使用するよりも簡単です。非バーチャル バスを使用することで、コード生成に対し適切に定義されたデータ インターフェイスが提供されます。バーチャル バスと非バーチャル バスの違いについては、バーチャル バスと非バーチャル バスを参照してください。バーチャル バスを使用する場合、In Bus Element ブロックを使用することで、バス オブジェクトを不要にすることができます。非バーチャル バスを使用する場合、バス エディターによるバス オブジェクトの作成の手順に従い、バス オブジェクトを使ってバスを定義しなければなりません。

参照モデルへのマルチレート バス入力

バーチャル マルチレート バスは、In Bus Element ブロックを使用して参照モデルに渡すことができます。非バーチャル マルチレート バスを参照モデルに渡すには、Inport ブロックを使い、次の方法に従って親モデルと参照モデルにブロックを追加します。

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

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

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

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

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

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

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

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

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

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

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

これらのアップグレード アドバイザーのチェックを使用して、これらの制限事項に関係する、R2016a より前に保存されたモデルを修正します。

参考

ブロック

関連する例

詳細