How to intervene in the A2L file export

dSPACE FAQ 728
FAQ 728
How to intervene in the A2L file export
キーワード
A2lファイル、DD3
質問例
A2Lファイルエクスポートの設定を変更するにはどうすればよいですか。A2Lエクスポートプロセスに
自動的に介入することはできますか。
解決策
1) A2Lのエクスポートに関する予備情報
A2Lファイルのエクスポートは、3つのフェーズで構成されます。『dSPACE Data Dictionary ASAM
MCD-2 MC Import and Export』 > 「Exporting ASAM MCD-2 MC Files 」 > 「Exporting an A2L
File」 > 「Advanced Practices: Intervening in the A2L File Export Process」 > 「Phases of
the A2L File Export」も参照してください。
最初のフェーズでは、いくつかの準備処理を行い、適合および計測データを収集します。Data
Dictionary内のサブシステム領域(//DD0/Subsystems以下)は、適合および計測データの構造および
用途に関するすべての情報源として使用します。アドレスデータは、アプリケーションオブジェクト
内のビルドオブジェクトから収集します。ビルドオブジェクトは、SILまたはPILシミュレーションの
ビルド時に作成されます。ビルドオブジェクトを手作業で作成することもできます。詳細情報につい
ては、『dSPACE Data Dictionary ASAM MCD-2 MC Import and Export』 > 「Exporting ASAM MCD-2
MC Files」 > 「Specifying the Build Object」をご覧ください。
2番目のフェーズでは、この情報を//DD0/Subsystemsからの情報とともにDD3に書き込みます。通常、
DD3ノードは非表示化されています。表示する方法は以下に記載されています。『dSPACE Data
Dictionary ASAM MCD-2 MC Import and Export』 > 「Exporting ASAM MCD-2 MC Files」 >
「Exporting an A2L File」 > 「Advanced Practices: Intervening in the A2L File Export
Process」 > 「How to Open the Intermediate DD Node」もご覧ください。
3番目のフェーズでは、DD3に格納された情報をXSLスタイルシート変換を使用して最終ファイルに書
き込みます。2番目と3番目のフェーズ間で、DD3に格納された情報を変更することで、エクスポート
プロセスを変更することが可能です。
2) 異なるフェーズの呼び出しとDD3へのアクセス
以下の方法で、A2Lファイルエクスポートの最初の2フェーズを実行することができます。

A2L Exportダイアログで該当するフェーズのConvertToA2lを選択する(Data Dictionary
Managerを使用している場合)

PhaseパラメータをConvertToA2lに設定する(Data Dictionary MATLAB
APIを使用している場合)。
DD3を確認するには、次の方法のいずれかを使用する必要があります。

TargetLink 3.2以前:
Data Dictionary
Managerをデバッグモードで開始する必要があります。MATLABコマンドウィンドウで“dsddma
How to intervene in the A2L file export
FAQバージョン: 4 / 2016-09-23
ページ1
dSPACE FAQ 728
n(’DebugMode’,’on’)“を実行し、Data Dictionary Managerのメニューで[Extras Switch To Workspace 3]を選択すると、デバッグモードでDD3が表示されます。[Extras –
Switch To Workspace 0]を選択すると、標準ビューであるDD0に戻ることができます。

TargetLink 3.3以降:

Data Dictionary Managerのメニューで[View - Show DD Workspace
Overview]を選択します。

[DD3]ページを開きます。

[Show Pane]をクリックします。
DD3で変更を加え、以下の方法でA2Lファイルエクスポートの最後のフェーズを呼び出します。

A2L Exportダイアログで該当するフェーズのWriteA2Lfileを選択する(Data Dictionary
Managerを使用している場合)

PhaseパラメータをWriteA2Lfileに設定する(Data Dictionary MATLAB
APIを使用している場合)
これで、DD3(適用した変更を含む)が最終的なA2Lファイルに書き込まれます。
3) A2Lファイルエクスポートへの自動的な介入
エクスポートプロセスに自動的に介入するには、Data Dictionary MATLAB
APIを介して変更を適用します。dsdd('Get',...);およびdsdd('Set',...);コマンドの他に、dsdd('F
ind',...);も便利です。RegExpパラメータを使用することにより、Findコマンドで正規表現を使用す
ることができます。「dSPACE Data Dictionary MATLAB API
Reference」を参照してください。これは、同じ種類のオブジェクト(“CHARACTERISTIC”など)は
名前が一意になるように番号が付けられている(たとえば“CHARACTERISTIC”、“CHARACTERISTIC(#
2)”、“CHARACTERISTIC(#3)”など)ため、非常に便利です。
A2Lエクスポートプロセスを変更するスクリプトを効率的に作成するために、Data Dictionary
Managerのデバッグモードを使用してDD3を検索し、オブジェクトの名前やプロパティを見つけて子オ
ブジェクトの階層を判定することができます。スクリプトのデバッグ時には、DD3のオブジェクトが
意図したとおりに変更されているかを確認することも可能です。
このドキュメントの最後に、スクリプト付きのサンプルモデルへのリンクがあります。モデル自体は
、ゲイン値が適合可能な3つのGainブロックを含んでいます。そのうちの2つは、ファンクションブロ
ックを含んだサブシステム内に配置されています。このモデルは、計測できるよう指定された2つの
出力ポートも含んでいます。
さらに、このサンプルにはそれぞれA2Lファイルを作成する3つの異なるスクリプトが含まれています
。A2Lファイルも含まれています。Data
Dictionary内のSubsystemオブジェクトは、LCCコンパイラを搭載したホストPC用に生成されています
。
4) 例:make_a2l.m
最初の例であるmake_a2l.mでは、original.a2lファイルが生成されます。スクリプトはエクスポート
プロセスに介入を含みません。スクリプトおよび生成されたA2Lファイルの両方が、他の例のリファ
レンスとなります。
このスクリプトは、以下の3つのセクションに分かれています。
How to intervene in the A2L file export
FAQバージョン: 4 / 2016-09-23
ページ2
dSPACE FAQ 728
1. 設定セクションでは、エクスポートプロセスに対して必要に応じた変更を加えることができ
ます。この例では、LCCコンパイラを搭載したホストPCが使用されています。この設定を変更
する場合は、DD0のSubsystemsノード内のすべての情報が正しくなるよう、コードを再度生成
してください。
2. 次に、dsdd_export_a2l_fileコマンドでA2Lエクスポートの最初の2つのフェーズを呼び出し
ます。エクスポートプロセスのこの部分に必要なオプションのみを使用することに注意して
ください。たとえば、ファイル名に関する情報はDD3にのみ書き込まれるので、ここでは指定
しません。
3. DD3からの情報が最終ファイルに書き込まれます。
生成されたA2Lファイルoriginal.a2lは、以下のオブジェクト(および他のオブジェクト)を含んで
います。

CHARACTERISTIC:CHARACTERISTIC
は、各適合可能変数に対して生成されます。最初のプロパティである名前は、生成されたコ
ード内での名前と同一です(例:Sa1_Gain_gain)。

MEASUREMENT:MEASUREMENTは、各計測可能変数に対して生成されます。このオブジェクトの
プロパティは、CHARACTERISTICのプロパティと同様です。

FUNCTION:A2Lファイル内のFUNCTIONは、関数部分のグループ化に使用されます。FUNCTIONは
、コード内の生成された各関数に対して生成されます。FUNCTIONは、アトミックサブシステ
ムに対しても生成されます。この例には3つの関数があり、1つはTargetLinkサブシステムの
最上位レベルとなるメイン関数、他の2つは従属するサブシステムとなる関数です。メイン関
数内では、他の2つの関数がSUB_FUNCTIONで参照されます。FUNCTIONオブジェクトは、含まれ
ているCHARACTERISTICおよびMEASUREMENTオブジェクトへの参照も含んでいます。
A2Lファイルのエクスポートにおける介入の例については、次のセクションを参照してください。
5) 例:make_a2l_identifier.m
make_a2l_identifier.mスクリプトは上記のmake_a2l.mスクリプトと似ていますが、A2lエクスポート
の2番目と3番目のフェーズ間でDD3も変更される点が異なります。最初に、//DD3/A2L/PROJECT/MODUL
E内の名前が“CHARACTERISTIC”で始まるすべてのオブジェクトが検索されます。場合により後ろに
“(#<数字>)”が追加されます。これにより、適合可能変数であるすべてのオブジェクトハンドルの
リストが生成されます。
次に、すべてのハンドルに対してスクリプトを反復的に実行します。まず、DD0のSubsystemsノード
にある変数オブジェクトのハンドルが取得されます。このハンドルは、変数に設定されていた変数ク
ラスの取得に使用します。次に、オリジナルのTargetLink変数クラスを含むテキストを含むよう、CH
ARACTERISTICのLongIdentifierプロパティを編集します。
この介入を行わない場合、LongIdentifierはオリジナルの変数用に指定された記述を含んでしまうの
でご注意ください。このサンプルモデルは記述を含んでいないため、介入を行わないとすべてのLong
Identifierが空で生成されます(上記のmake_a2l.mで生成されたoriginal.a2lと同様)。
生成されたA2Lファイルchanged_CAL_identifier.mを確認すると、すべてのCHARACTERISTICオブジェ
クトのLongIdentifierが変更されています(変更箇所は青で表示)。
/begin CHARACTERISTIC
Sa1_Gain_gain
/* Name */
"Sa1_Gain_gain, TL variable class CAL" /* LongIdentifier */
How to intervene in the A2L file export
FAQバージョン: 4 / 2016-09-23
ページ3
dSPACE FAQ 728
6) 例:make_a2l_function.m
make_a2l_function.mスクリプトを使用し、changed_function_hierarchy.a2lファイルを生成します
。このスクリプトはA2Lファイル内にFUNCTIONが1つだけ残るよう、DD3内のFUNCTION構造体を変更し
ます。
このスクリプトは以前の例よりもはるかに複雑です。このスクリプトはサブ関数を使用し、ハンドル
が入力引数として使用されているオブジェクトを含むサブシステムの名前を判定します。判定後、こ
の名前は戻り値としてリターンされます。
介入は、“hFcnList“変数に格納されているすべてのFUNCTIONハンドルのリストを取得することから
始まります。この後、FUNCTIONの子オブジェクトとなり得るすべてのオブジェクトが検索されます。
以下のオプションがあります。

REF_CHARACTERISTIC

DEF_CHARACTERISTIc

IN_MEASUREMENT

OUT_MEASUREMENT

LOC_MEASUREMENT
適合可能変数への参照の子オブジェクトは、計測可能変数への参照の子オブジェクトとは多少異なる
ため、このスクリプトは検出されたすべてのREF_CHARACTERISTICおよびDEF_CHARACTERISTICオブジェ
クトに対して最初に反復処理を行い、次にすべてのIN_MEASUREMENT、OUT_MEASUREMENT、およびLOC_M
EASUREMENTオブジェクトに対して反復処理を行います。これらのオブジェクトおよびその子オブジェ
クトは、すべて新規のFUNCTIONオブジェクトにコピーされます。
この反復処理は、すべてのオブジェクトが最上位レベル//DD3/A2L/PROJECT/MODULE/の1つのFUNCTION
の一部となるまで実行されます。ここで、他のすべてのFUNCTIONオブジェクトが削除されます。すべ
ての中間FUNCTIONオブジェクトには_BLAという文字列が追加されるため、最終的なFUNCTIONはこの文
字列を含まないよう名前が変更されます。
これで、DD3は1つのFUNCTION(#<数字>)しか含まれなくなります。<数字>は、A2Lエクスポートの最初
の2つのフェーズによりDD3で事前に作成したFUNCTIONオブジェクトの合計数に1を加えた数です。こ
のオブジェクト“FUNCTION”は、A2Lファイル内でFUNCTIONとして生成されることになるため、名前
を変更する必要はありません。

dsdd_export_a2l_file(...);の代わりにdsdd(‘Export’,’Format’,’A2L’,...);をスクリプトで使用するこ

DD3またはA2Lファイル内のオブジェクトに関する詳細情報については、ASAM MCD 2MC規格を参照してください。

適合可能変数(または計測可能変数)作成の詳細については、『TargetLinkアドバンストガイド』 >
「社内のコーディング基準に合わせたTargetLinkの設定とコードの調整」 > 「変数クラスの使用例」 >
「パラメータを適合可能にする例」(または『TargetLinkアドバンストガイド』 >
「社内のコーディング基準に合わせたTargetLinkの設定とコードの調整」 > 「変数クラスの使用例」 >
「ブロック出力を観測可能にする例」)をご参照ください。
モデルの例
サンプルモデルと上記のスクリプトを含んだ圧縮ファイルをダウンロードできます。このファイルを
解凍後、MATLAB®コマンドウィンドウで‘start‘を入力します。
How to intervene in the A2L file export
FAQバージョン: 4 / 2016-09-23
ページ4
dSPACE FAQ 728
TargetLink 2.1用のサンプルモデル
TargetLink 2.2用のサンプルモデル
TargetLink 2.3用のサンプルモデル
TargetLink 3.0用のサンプルモデル
TargetLink 3.1用のサンプルモデル
TargetLink 3.2用のサンプルモデル
これらのモデルは、それぞれのTargetLinkバージョンでサポートされる最下位のSimulinkバージョン
で作成されています。メジャーリリース版のサンプルモデルのみを用意していますが、マイナーリリ
ース版でも同一のモデルファイルおよびData Dictionaryファイルを使用可能です。
関連するFAQs

-
How to intervene in the A2L file export
FAQバージョン: 4 / 2016-09-23
ページ5
dSPACE FAQ 728
How to Contact dSPACE Support
dSPACE GmbH
Rathenaustraße 26
33102 Paderborn
Germany
++49 5251 1638-941
mailto:[email protected]
http://www.dspace.com/support
dSPACE recommends that you use the support request form on the Internet to contact
dSPACE Support.
It is available at:

http://www.dspace.com/go/supportrequest
Software Updates and Patches
dSPACE strongly recommends that you download and install the most recent patches for your
current dSPACE installation. Visit http://www.dspace.com/go/patches for software updates
and patches.
FAQ
FAQ documents are available at http://www.dspace.com/go/faq.
Important Notice
This document contains proprietary information that is protected by copyright. All rights are
reserved. Neither the documentation nor software may be copied, photocopied, reproduced,
translated, or reduced to any electronic medium or machine-readable form, in whole or in part,
without the prior written consent of dSPACE GmbH.
© Copyright 2016 by:
dSPACE GmbH
Rathenaustraße 26
33102 Paderborn
Germany
This publication and the contents hereof are subject to change without notice.
A list of registered dSPACE trademarks is available at:
http://www.dspace.com/go/Trademarks
How to intervene in the A2L file export
FAQバージョン: 4 / 2016-09-23
ページ6