Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

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

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 ファイルをエクスポートできます。

対話型の ASAP2 ファイル生成の例を実行できます。例を開くには、MATLAB® コマンド プロンプトで次のように入力します。

rtwdemo_asap

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

前提条件

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

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

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

システム ターゲット ファイル構成を使用して 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 ブロックのいずれかを使用して、ルックアップ テーブルをモデル化できます。

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

  • 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

メモ

モデル例 rtwdemo_asap2 は、調整可能 (COM_AXIS) と固定 (FIX_AXIS) の両方のルックアップ テーブルのブレークポイントも含めた、Lookup Table ブロック用に ASAP2 ファイルを生成する方法を示します。

ASAP2 ファイルの生成

ASAP2 ファイルの生成

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

組み込み ASAP2 をサポートするシステム ターゲット ファイルを使用して、ASAP2 ファイルを生成します。例については、ASAP2 のモデル例 rtwdemo_asap2 を参照してください。

GRT ベースまたは ERT ベースのシステム ターゲット ファイルの使用

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

  1. C Code Generation Configuration for Model Interface Elementsの説明に従って、Code Mappings Editor – Cを使用してストレージ クラスを信号、ブロックの状態、モデル パラメーターに適用します。

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

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

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

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

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

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

  4. モデル コンフィギュレーション パラメーター [ASAP2 インターフェイス] を選択します。

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

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

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

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

参照モデル用 ASAP2 ファイルの生成

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

参照モデル用の ASAP2 ファイルを生成するには、参照階層内の最上位モデルと各参照モデルの ASAP2 ファイル生成を選択します。汎用リアルタイム ターゲットまたは Embedded Coder ターゲットを使用している場合、GRT ベースまたは ERT ベースのシステム ターゲット ファイルの使用で説明されている最上位モデルと各参照モデル向けの手順に従います。

最上位のモデルおよび参照モデル用 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 にマージします。

モデル例 rtwdemo_asap2 には、ASAP2 ファイルをマージする例が含まれています。

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

データ測定とキャリブレーションのためのホストベースの ASAM-ASAP2 データ定義ファイルの作成

このモデルでは ASAP2 データ エクスポートを説明します。ASAP2 は Association for Standardization of Automation and Measuring Systems (ASAM) によって推奨されているデータ定義の標準です。

モデル例を開く

モデル例 rtwdemo_asap2 を開きます。

open_system('rtwdemo_asap2');

ASAP2 は測定、キャリブレーションおよび診断システムで使用されるデータの非オブジェクト指向の説明です。ASAM および ASAP2 標準の詳細については、ASAM Web サイト https://www.asam.net を参照してください。

ASAP2 データ定義は Simulink® データ オブジェクトとテスト ポイント信号で実現されています。Target Language Compiler (TLC) を使用すると、アプリケーションに対し、高度にカスタマイズされたソリューションを作成できます。ASAP2 ファイル生成の詳細については、Simulink Coder® のドキュメンテーションを参照してください。

ASAP2 ファイル生成は、[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成]、[インターフェイス] ペインで [ASAP2 インターフェイス] を設定することにより構成できます。

関連するトピック