Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

データ測定およびキャリブレーションのための ASAP2 ファイルのエクスポート

ASAP2 ファイルおよび CDF キャリブレーション ファイルの生成 は、ASAP2 ファイルの生成に推奨される方法です。ASAM 標準に従って最新バージョンの ASAP2 ファイルを生成でき、[キャリブレーション ファイルの生成] ツールが提供されるためです。

[キャリブレーション ファイルの生成] ツールを使用した ASAP2 ファイルの生成

[キャリブレーション ファイルの生成] ツールを開く

  1. モデルを開きます。

  2. Embedded Coder アプリを開きます。

  3. モデルのコードを生成します。

  4. [C コード] タブで、[共有][キャリブレーション ファイルの生成] を選択します。

メモ

AUTOSAR モデルの場合は、[AUTOSAR][共有][キャリブレーション ファイルの生成] を選択します。

このツールを使用して、モデルの A2L ファイルと cdfx ファイルを同時に生成できます。このツールは、ERT ベース、GRT ベース、Simulink Real-Time、Classic AUTOSAR、または Adaptive AUTOSAR のシステム ターゲット ファイルで構成されたモデルに使用できます。このツールでは、ASAP2 ファイルのバージョン、コメントを含めるか除外するか、ASAP2 ファイルと CDF ファイルの生成をオフにするかオンにするかなどについて、最後に使用した設定が記憶されます。これらの設定は Simulink で MATLAB の基本設定に保存されます。この設定は既定の設定をオーバーライドします。

Adaptive AUTOSAR および Simulink Real-Time のシステム ターゲット ファイルについては、C++ 言語用の ASAP2 ファイルを生成できます。GRT ベースおよび ERT ベースのシステム ターゲット ファイルについては、C 用の ASAP2 ファイルのみを生成できます。

Classic AUTOSAR モデルについては、[Include AUTOSAR RTE elements] オプションを使用して、ツールで RTE 要素を ASAP2 ファイルに含めるか除外するかを指定できます。

ASAP2 ファイルの生成

ASAP2 は、アプリケーションの実行時にパラメーターの調整と信号データの測定に使用される、内部の ECU 変数の記述形式を定義します。ASAP2 ファイルを生成するには、次の手順を実行します。

  1. [Generate ASAP2] オプションは既定では有効になっています。有効になっていない場合は、[Generate ASAP2] スライダーをオンの位置にスライドして A2L の生成を有効にします。

  2. A2L ファイルの名前を変更するには、[File name] フィールドで新しい名前を指定します。

  3. コード ジェネレーターでは、既定では、選択したモデルのフォルダー パスにビルド フォルダーが使用されます。A2L ファイル用に別のフォルダー パスを指定する場合は、[Folder path] フィールドで指定できます。

  4. A2L ファイル内の ECU アドレスを置き換えるには、[Symbol file] フィールドでアプリケーションの実行可能ファイルに関連付けられているシンボル ファイルを指定します。それ以外の場合は、[Address replacement] をオフにします。

    このツールでは、ECU アドレスを置き換えるシンボル ファイルとして、ELF、PDB、DWARF、または実行可能ファイルがサポートされます。

  5. [Version] を生成する A2L ファイルの必要なバージョンに設定します。既定のバージョンは 1.71 です。

  6. A2L ファイルでコメントを除外するには、[Include comments] をオフにします。

  7. Classic AUTOSAR モデルの場合、A2L ファイルで RTE 要素を除外するには、[Include AUTOSAR RTE elements] をオフにします。

  8. [Generate] をクリックします。

A2L ファイルをプログラムで生成するには、関数 coder.asap2.export を使用します。

ASAP2Interface パラメーターを使用した ASAP2 ファイルの生成

ASAP2Interface パラメーターはコンフィギュレーション パラメーターに存在しません。将来のリリースで、このパラメーターは完全に削除されます。[キャリブレーション ファイルの生成] ツールまたは関数 coder.asap2.export を使用して、ASAP2 ファイルを生成できます。詳細については、ASAP2 ファイルおよび CDF キャリブレーション ファイルの生成を参照してください。

ASAM MCD-2 MC 標準 (ASAP2 とも呼ばれる) は Association for Standardization of Automation and Measuring Systems (ASAM) によって推奨されているデータ定義の標準です。ASAP2 は測定、キャリブレーション、および診断システムで使用されるデータの非オブジェクト指向の説明です。ASAM と ASAM MCD-2 MC (ASAP2) 標準の詳細については、www.asam.net の ASAM Web サイトを参照してください。

コード ジェネレーターを使用すると、コード生成プロセス中にモデルに関する情報が含まれる ASAP2 ファイルをエクスポートできます。

Simulink® ASAP2 ファイル生成の Coder™ サポートはバージョン ニュートラルです。既定の設定でソフトウェアは ASAP2 Version 1.31 形式を生成しますが、生成されたモデル情報はその他の ASAP2 バージョンと通常、互換性があります。ASAP2 ファイル生成も ASAP2 測定とキャリブレーション ツールの特定のニーズに関してニュートラルです。ソフトウェアは ASAP2 ファイル生成をカスタマイズして ASAP2 バージョンを生成し、ASAP2 ツールの特定のニーズを満たすために使用可能なカスタマイズ API を提供します。

前提条件

ASAP2 ファイル生成を使用するには、以下を理解しなければなりません。

ASAP2 をサポートするシステム ターゲット ファイル

ASAP2 ファイル生成は、さまざまなシステム ターゲット ファイル構成で使用できます。たとえば、GRT ベースおよび ERT ベースの構成によって、コード生成およびビルド プロセスの一部として ASAP2 ファイルを生成できます。

Adaptive AUTOSAR ターゲットおよび Simulink Real-Time ターゲットについては、C++ 言語用の ASAP2 ファイルを生成できます。ERT ターゲットおよび GRT ターゲットについては、C 言語用の ASAP2 ファイルのみを生成でき、C++ 言語はサポートされていません。

システム ターゲット ファイル構成を使用して ASAP2 ファイルを生成する手順については、ASAP2 インターフェイスを参照してください。

ASAP2 情報の定義

パラメーターと信号の ASAP2 情報の定義.  ASAP2 ファイル生成プロセスではモデルのパラメーターと信号に関する情報が必要です。この情報の一部はモデル自体に含まれています。ワークスペースまたはデータ ディクショナリで Simulink データ オブジェクトを使用して、ASAP2 ファイル生成処理を完了します。ワークスペース オブジェクトの使用はオプションである場合があります。

モデル データ エディターおよび組み込み Simulink データ オブジェクトを使用して、情報を提供します。たとえば、Simulink.Signal オブジェクトを使用して MEASUREMENT 情報を提供し、Simulink.Parameter オブジェクトを使用して CHARACTERISTIC 情報を提供します。Simulink.SignalSimulink.Parameter から派生したデータ クラスのデータ オブジェクトを使用して情報を提供できます。データ オブジェクトおよびモデル データ エディターを参照してください。

以下の表は、ASAP2 ファイル生成に必要な最小限のデータ属性セットを示しています。一部のデータ属性はモデル内で定義されます。その他の属性はオブジェクトのプロパティで指定されます。Simulink.Signal または Simulink.Parameter オブジェクトで定義された属性の場合、表には関連付けられたプロパティ名がリストされます。

データ属性

定義場所

プロパティ名

名前 (シンボル)

モデルおよびデータ オブジェクト

パラメーターまたは信号名が解決するデータ オブジェクトのハンドルから継承

説明

データ オブジェクト

Description

データ型

モデルまたはデータ オブジェクト

DataType

スケーリング
(固定小数点データ型の場合)

モデルまたはデータ オブジェクト

DataType

許容される最小値

モデルまたはデータ オブジェクト

Min

許容される最大値

モデルまたはデータ オブジェクト

Max

単位

モデルまたはデータ オブジェクト

Unit

メモリ アドレス (オプション)

モデルまたはデータ オブジェクト

MemoryAddress_ASAP2

メモリ アドレス属性.  コード生成前にメモリ アドレス属性が不明の場合は、コード ジェネレーターは生成された ASAP2 ファイルに ECU Address プレースホルダーテキストを挿入します。生成されたファイルを後処理することにより、プレースホルダーの代わりに実際のアドレスを使用することができます。例については、matlabroot/toolbox/rtw/targets/asap2/asap2/asap2post.m ファイルを参照してください。asap2post.m は提供されたリンカー マップ ファイルを解析し、ASAP2 ファイル内の ECU Address プレースホルダーを実際のメモリ アドレスで置き換えます。リンカー マップ ファイルはコンパイラごとに異なるため、asap2post.m の正規表現コードを変更して実際に使用するリンカー マップの形式に合わせなければならないことがあります。

Embedded Coder がシステムにインストールされており、かつ組み込みターゲット用の Executable and Linkable Format (ELF) ファイルまたはプログラム データベース (PDB) ファイルを生成している場合、関数 rtw.asap2SetAddress を使用して ECU アドレス置き換えを自動化することができます。詳細については、ASAP2 ファイルの自動的な ECU アドレス置き換え (Embedded Coder)を参照してください。

コード生成前にメモリ アドレス属性がわかっている場合、データ項目またはデータ オブジェクトで定義することができます。既定の設定では、MemoryAddress_ASAP2 プロパティは Simulink.SignalSimulink.Parameter のいずれのデータ オブジェクト クラスにも存在しません。この属性を追加するには、MemoryAddress_ASAP2 という名前のプロパティを Simulink クラスまたは ASAP2 クラスのサブクラスであるカスタム クラスに追加します。Simulink データ クラスをサブクラス化する方法の詳細については、データ クラスの定義を参照してください。

以下の表は、以前のリリースの ASAP2 オブジェクト プロパティに代わって新たに使用されることになった Simulink オブジェクト プロパティを示しています。

ASAP2 と Simulink のパラメーターおよび信号オブジェクト プロパティの相違点

ASAP2 オブジェクト プロパティ (以前)

Simulink オブジェクト プロパティ (現在)

LONGID_ASAP2

Description

PhysicalMin_ASAP2

Min

PhysicalMax_ASAP2

Max

Units_ASAP2

Unit

ASAP2 ファイルの自動的な ECU アドレス置き換え (Embedded Coder).  Embedded Coder がシステムにインストールされており、かつ組み込みターゲット用の Executable and Linkable Format (ELF) ファイルまたはプログラム データベース (PDB) ファイルを生成している場合、関数 rtw.asap2SetAddress を使用して生成された ASAP2 ファイル内の ECU Address プレースホルダー メモリ アドレス値を実際のアドレスで置き換える処理を自動化することができます。

コード生成前にメモリ アドレス属性が不明の場合は、次に示すとおり、コード ジェネレーターは生成された ASAP2 ファイルに ECU Address プレースホルダー テキストを挿入します。

/begin CHARACTERISTIC
  /* Name            */ Ki
  /* Long Identifier */ ""
  /* Type            */ VALUE
  /* ECU Address     */ 0x0000 /* @ECU_Address@Ki@ */

ECU Address プレースホルダーの代わりに実際のアドレスを使用するには、生成された ASAP2 ファイルを関数 rtw.asap2SetAddress を使用して処理します。構文は、次のようになります。

rtw.asap2SetAddress(ASAP2File,InfoFile)

引数は生成された ASAP2 ファイルの名前およびモデル用に生成された実行可能 ELF ファイル、Microsoft ツールチェーンの PDB ファイル、または DWARF デバッグ情報ファイルの名前を指定する文字列ベクトルです。関数 rtw.asap2SetAddress は呼び出されると、指定された ELF ファイル、PDB ファイルまたは DWARF ファイルから実際の ECU アドレスを抽出し、ASAP2 ファイル内のプレースホルダーを実際のアドレスで置き換えます。次に例を示します。

/begin CHARACTERISTIC
  /* Name            */ Ki
  /* Long Identifier */ ""
  /* Type            */ VALUE
  /* ECU Address     */ 0x40009E60

ルックアップ テーブル向け ASAP2 情報の定義.  Simulink Coder ソフトウェアは、ルックアップ テーブル データとそのブレークポイント向けに ASAP2 の説明を生成します。本ソフトウェアでは、1 次元テーブル データを CURVE 情報、2 次元テーブル データを MAP 情報、およびブレーク ポイントを AXIS_DESCR 情報と AXIS_PTS 情報として表現します。次の Simulink Lookup Table ブロックのいずれかを使用して、ルックアップ テーブルをモデル化できます。

  • Interpolation Using Prelookup — 1 次元と 2 次元

  • 1–D Lookup Table

  • 2–D Lookup Table

  • n-D Lookup Table — 1 次元と 2 次元

このソフトウェアでは、次の種類のルックアップ テーブル ブレーク ポイント (軸ポイント) がサポートされます。

ブレークポイントの種類生成される情報
調整可能で複数のテーブル軸間で共有 (共通軸)

COM_AXIS

固定で調整不可 (固定軸)

FIX_AXIS の次のバリアントのいずれか

  • FIX_AXIS_PAR - ブレークポイントが等間隔配置の整数で、等間隔配置が 2 のべき乗の場合

  • FIX_AXIS_PAR_DIST - ブレークポイントが等間隔配置の整数の場合

  • FIX_AXIS_PAR_LIST - ブレークポイントが非等間隔配置の整数の場合

調整可能だが複数のテーブル軸間で共有されない (標準軸)

STD_AXIS

ASAP2 コード生成のためにブロックを設定するときは、次のようにします。

  • テーブル データの場合、非 Auto ストレージ クラスをもつ Simulink.Parameter データ オブジェクトを使用します。

  • 複数のテーブル軸間 (COM_AXIS) で共有される調整可能なブレークポイント データの場合、非 Auto ストレージ クラスをもつ Simulink.Parameter データ オブジェクトを使用します。

  • 固定の調整できないブレークポイント データ (FIX_AXIS) の場合、ブロック パラメーター ダイアログ ボックスで指定されたワークスペースの変数または配列を使用します。ブレークポイントはコードに整数として格納しなければなりません。データ型は組み込み整数型 (int8int16int32uint8uint16、または uint32)、固定小数点データ型、または同等のエイリアス タイプでなければなりません。

  • 複数テーブル間 (STD_AXIS) で共有されない調整可能なブレークポイント データの場合

    1. Simulink.Bus オブジェクトを作成して、struct パッケージング (フィールドの名前と順序) を定義します。パラメーター構造体のフィールドは、ルックアップ テーブル データおよびルックアップ テーブル ブロックの各軸に対応していなければなりません。たとえば、次元数が 2 の n-D Lookup Table ブロックでは、構造体に存在するフィールド数は 3 でなければなりません。このバス オブジェクトは、ルックアップ特性のレコード レイアウトを記述します。

    2. Simulink.Parameter オブジェクトを作成して、調整可能なパラメーターを表現します。

    3. テーブル値と軸値を作成します。

    4. オプションとして、パラメーター オブジェクトの [単位][最小値]、および [最大値] の各プロパティを指定します。

次の例は、標準軸形式で生成され ASAP2 ファイルに埋め込まれる n-D Lookup Table レコードを示したものです。

/begin CHARACTERISTIC
  /* Name */  STDAxisParam
  ...
  /* Record Layout */   Lookup1D_X_WORD_Y_FLOAT32_IEEE
  ...
  begin AXIS_DESCR
    /* Description of X-Axis Points */
    /* Axis Type */      STD_AXIS
    ...
  /end AXIS_DESCR
/end CHARACTERISTIC

/begin RECORD_LAYOUT Lookup1D_X_WORD_Y_FLOAT32_IEEE
  AXIS_PTS_X 1 WORD INDEX_INCR DIRECT
  FNC_VALUES 2 FLOAT32_IEEE COLUMN_DIR DIRECT
/end   RECORD_LAYOUT

ASAP2 ファイルの生成

ASAP2 ファイルの生成.  汎用リアルタイム システム ターゲット ファイルまたは Embedded Coder システム ターゲット ファイルを使用して、ASAP2 ファイルをコード生成とビルド プロセスの一部として生成します。

組み込み ASAP2 をサポートするシステム ターゲット ファイルを使用して、ASAP2 ファイルを生成します。

GRT ベースまたは ERT ベースのシステム ターゲット ファイルの使用.  汎用リアルタイム (GRT) システム ターゲット ファイルまたは Embedded Coder システム ターゲット ファイルを使用してモデルの ASAP2 データ定義を生成するには、次のようにします。

  1. C Data Code Interface Configuration for Model Interface Elementsの説明に従って、コード マッピング エディター – C を使用してストレージ クラスを信号、ブロックの状態、モデル パラメーターに適用します。

    次のうち 1 つ以上の条件に該当する場合、ASAP2 ファイル内でパラメーターは表現されません。

    • ストレージ クラス [Auto][FileScope][Struct] または [Default] を ([Model default] を使用して) 適用している。

    • [Embedded Coder ディクショナリ] を使用してストレージ クラスを適用している。

    • コード ジェネレーターでマクロ変数またはアドレス指定不可能変数が生成されるストレージ クラスを適用している。

  2. プロパティ インスペクターを使用して、各データ要素の残りのストレージ クラス プロパティを設定します。

  3. モデル コンフィギュレーション パラメーター [システム ターゲット ファイル] を GRT ベースまたは ERT ベースのシステム ターゲット ファイルに設定します。

  4. 次のコマンドでモデル コンフィギュレーション パラメーター [ASAP2 インターフェイス] を有効にします。

    set_param('model_Name','GenerateASAP2',true);

    メモ

    [モデル コンフィギュレーション パラメーター] ダイアログ ボックスでは ASAP2 ファイルの生成を有効にできなくなりました。ASAP2 ファイルおよび CDF キャリブレーション ファイルの生成で説明されているように、[Generate Calibration Files] ツールを使用するか、コマンド ラインのモデル コンフィギュレーション パラメーター GenerateASAP2 を使用します。

  5. パラメーター [コード生成のみ] を選択します。

  6. [適用] をクリックします。

  7. コードを生成します。

    コード ジェネレーターが、ASAP2 ファイルをビルド フォルダーに書き込みます。既定の設定では、ファイルは model と命名されます。ここで model.a2l はモデル名です。ASAP2 セットアップ ファイルによって ASAP2 のファイル名が制御されます。詳細については、生成された ASAP2 ファイルのカスタマイズを参照してください。

参照モデル用 ASAP2 ファイルの生成.  ビルド プロセスにより、モデル参照階層内の各参照モデル用の ASAP2 ファイルを生成することができます。生成された ASAP2 ファイルで、MEASUREMENT レコードは参照モデル内の信号と状態を表します。

参照モデル用の ASAP2 ファイルを生成するには、参照階層内の最上位モデルと各参照モデルの ASAP2 ファイル生成を選択します。

最上位のモデルおよび参照モデル用 ASAP2 ファイルのマージ.  関数 rtw.asap2MergeMdlRefs を使用して、最上位のモデルおよび参照モデル用に生成された ASAP2 ファイルをマージします。関数の構文は、次のようになります。

[status,info] = rtw.asap2MergeMdlRefs(topModelName,asap2FileName)

  • topModelName は、1 つ以上の参照モデルを含むモデルの名前です。

  • asap2FileName はマージされた ASAP2 ファイルに指定する名前です。

  • オプション: status は、マージが完了した場合は false (logical 0)、完了していない場合には true (logical 1) を返します。

  • オプション: info は、status が true の場合に、マージの失敗に関する詳細な情報を返します。それ以外の場合は、空の文字ベクトルを返します。

次の例を考えます。

[status,info] = rtw.asap2MergeMdlRefs('myTopMdl','merged.a2l')
このコマンドは最上位モデル myTopMdl と、その参照モデル用に生成された ASAP2 ファイルを、ファイル merged.a2l にマージします。

ASAP2 ファイルの構造体

以下の表は ASAP2 ファイルの基本構造の概要を示し、ファイルの各部の作成に使用される Target Language Compiler (TLC) の関数とファイルについて説明したものです。

  • ASAP2 ファイルの静的部分は "太字" で示されます。

  • 関数呼び出しは %<FunctionName()> で示されます。

ファイルのセクション

asap2main.tlc の内容

関数定義を格納した TLC ファイル

ファイル ヘッダー

%<ASAP2UserFcnWriteFileHead()>

asap2userlib.tlc

/begin PROJECT ""

/begin PROJECT "%<ASAP2ProjectName>"

asap2setup.tlc

/begin HEADER ""
HEADER の内容

/begin HEADER"%<ASAP2HeaderName>"
%<ASAP2UserFcnWriteHeader()>

asap2setup.tlc
asap2userlib.tlc

/end HEADER

/end HEADER

asap2userlib.tlc

/begin MODULE ""
MODULE の内容:

/begin MODULE "%<ASAP2ModuleName>"}

asap2setup.tlc
asap2userlib.tlc

- A2ML
- MOD_PAR
- MOD_COMMON
...

%<ASAP2UserFcnWriteHardwareInterface()>

asap2userlib.tlc

モデル依存の MODULE の内容:

%<SLibASAP2WriteDynamicContents()>
ユーザー定義関数を呼び出します。

asap2lib.tlc

- RECORD_LAYOUT
- CHARACTERISTIC
- ParameterGroups
- ModelParameters

...WriteRecordLayout_TemplateName()

...WriteCharacteristic_TemplateName()
...WriteCharacteristic_Scalar()

user/templates/...

- MEASUREMENT
- ExternalInputs
- BlockOutputs

...WriteMeasurement()

asap2userlib.tlc

- COMPU_METHOD

...WriteCompuMethod()

asap2userlib.tlc

/end MODULE

/end MODULE

 

ファイル フッター/テール

%<ASAP2UserFcnWriteFileTail()>

asap2userlib.tlc

関連するトピック