Main Content

AUTOSAR バリアントのモデル化

AUTOSAR ソフトウェア コンポーネントはバリアントを使用して、定義された条件に基づき、AUTOSAR インターフェイスまたは実装を実行パスで有効または無効にします。コンポーネントの変動点は 2 つ以上のバリアントからの選択を表します。コンポーネントで以下を実行できます。

  • AUTOSAR ポートまたはランナブルを有効化または無効化する。

  • AUTOSAR ランナブルの実装を変更する。

  • AUTOSAR ポートの配列サイズを変更する。

  • コンポーネントでバリアントを制御するための事前定義されたバリアントとシステム定数値セットを指定する。

Simulink® では、以下のことができます。

  • バリアントをもつ AUTOSAR ポートとランナブルをインポートおよびエクスポートする。

  • AUTOSAR バリアントをモデル化する。

    • AUTOSAR ポートまたはランナブルを有効または無効にするには、Variant Sink ブロックと Variant Source ブロックを使用する。

    • AUTOSAR ランナブルの実装を変更するには、Variant Subsystem ブロックを使用します。

    • AUTOSAR ポートの配列サイズを変えるには、Simulink シンボリック次元を使用する。

  • ARXML ファイルからインポートした事前定義済みのバリアントとシステム定数値セットを使用して、モデル化されたバリアントを関連付ける。

AUTOSAR システム定数はコンポーネントの変動点を制御するための入力として機能します。システム定数をモデル化するには、AUTOSAR.Parameter データ オブジェクトを使用します。

ポートとランナブルのバリアント

AUTOSAR ソフトウェア コンポーネントは VariationPoint 要素を使用して、定義された条件に基づき、ポートやランナブルなどの AUTOSAR 要素を有効または無効にすることができます。Simulink では、以下のことができます。

  • 変動点とともに AUTOSAR ポートとランナブルをインポートする。

    ARXML インポーターは、Variant Sink ブロックや Variant Source ブロックといった必要なモデル要素を作成し、バリアント条件と AUTOSAR.Parameter データ オブジェクトを伝播し、条件値でシステム定数を表します。

  • 変動点で AUTOSAR 要素をモデル化する。

    • バリアント条件ロジックを定義して、バリアント条件を伝播するには、Variant Sink ブロックと Variant Source ブロックを使用する。

    • AUTOSAR システム定数をモデル化し、条件値を定義するには、ストレージ クラスが [SystemConstant]AUTOSAR.Parameter データ オブジェクトを使用する。

  • AUTOSAR 構成で検証を実行する。検証ソフトウェアは、Simulink ブロックのバリアント条件が、インポートされた ARXML ファイルの設計された動作と一致することを検証します。

  • 変動点とともに AUTOSAR ポートとランナブルをエクスポートする。

詳細については、AUTOSAR ポートとランナブルのバリアントの設定を参照してください。

ランナブル実装のバリアント

AUTOSAR ランナブルの実装を変更するには、AUTOSAR ソフトウェア コンポーネントでランナブル内にバリアント条件ロジックを指定できます。Simulink では、ランナブル内でバリアント条件ロジックをモデル化するには次を行います。

  • Variant Subsystem ブロックを使用して、バリアント実装とそれに関連するバリアント条件ロジックを定義する。

  • AUTOSAR.Parameter データ オブジェクトを使用して、AUTOSAR システム定数をモデル化し、条件値を定義する。

詳細については、AUTOSAR ランナブル実装のバリアントの設定を参照してください。

配列サイズのバリアント

AUTOSAR ソフトウェア コンポーネントは、ポートなどの AUTOSAR 要素の次元を、システム定数へのシンボリック参照を使用して柔軟に指定できます。システム定数は、ポートのデータ型の配列サイズを定義します。コード ジェネレーターは、バリアント (シンボリック) 配列サイズをもつ AUTOSAR 要素を含むモデルをサポートします。

Simulink では、以下のことができます。

  • バリアントの配列サイズをもつ AUTOSAR 要素をインポートする。

    • ARXML インポーターは、ストレージ クラスが [SystemConstant]AUTOSAR.Parameter データ オブジェクトなどの必要なモデル要素を作成して、配列サイズ値を表す。

    • バリアント配列サイズをもつ AUTOSAR 要素を表す各ブロックは、AUTOSAR.Parameter データ オブジェクトを参照してその次元を定義する。

  • バリアント配列サイズをもつ AUTOSAR 要素をモデル化する。

    • AUTOSAR 要素を表すブロックを作成する。

    • 配列サイズの値を表すには、ストレージ クラスが [SystemConstant]AUTOSAR.Parameter データ オブジェクトを追加する。

    • AUTOSAR 要素の配列サイズを指定するには、AUTOSAR.Parameter データ オブジェクトを参照する。

  • シミュレーションのコードを再生成せずにモデル シミュレーション間のシステム定数の配列サイズ値を変更する。

  • バリアント配列サイズに対応するシンボルを含む C コードおよび ARXML ファイルを生成する。

詳細については、AUTOSAR 配列サイズの次元バリアントの設定を参照してください。

事前定義されたバリアントとシステム定数値のセット

AUTOSAR ソフトウェア コンポーネントで変動点を制御する値を定義するために、コンポーネントは次の AUTOSAR 要素を使用します。

  • SwSystemconst — 変動点を制御する入力として機能するシステム定数を定義する。

  • SwSystemconstantValueSet — 一連のシステム定数値を指定する。

  • PredefinedVariant — 複数の有効な可能性のある組み合わせの中で、AUTOSAR ソフトウェア コンポーネントに適用するシステム定数値の組み合わせを記述する。

AUTOSAR ソフトウェア コンポーネントの ARXML 仕様があるとします。ARXML ファイルでコンポーネントの変動点を制御する PredefinedVariant または SwSystemconstantValueSet も定義する場合は、モデルの作成時に変動点を解決できます。インポーターが SwSystemconst データを初期化するために使用できる PredefinedVariant または SwSystemconstantValueSet を指定します。

モデルの作成後、指定した変動点の入力値の組み合わせに基づいて、シミュレーションを実行し、コードを生成できます。

Simulink では、AUTOSAR プロパティ関数 createSystemConstants を使用して、モデルを再作成せずに、変動点を制御する SwSystemconst データを再定義できます。変動点の入力値の修正した組み合わせに基づいて、シミュレーションを実行し、コードを生成できます。

モデルをビルドすると、以前にインポートされた PredefinedVariant および SwSystemconstantValueSet が ARXML ファイルにエクスポートされます。

詳細については、事前定義値の組み合わせを使用した AUTOSAR バリアントの制御を参照してください。

関連する例

詳細