バックナンバーはこちら
https://www.simulationroom999.com/blog/model-based-of-minimum-backnumber/
はじめに
CANapeのXCP関連の設定が終わった段階のA2Lを見てみる。
登場人物
博識フクロウのフクさん
![](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
![](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
XCPの設定だけをもったA2Lファイル
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
ちょっとここで、CANapeが出力したA2Lを見てみよう。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
あれ?
A2Lって変数情報のデータベースファイルじゃないの?
XCPは関係無くような?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
A2Lは計測をするために必要な情報を内包していて、
XCP関連の情報もそこに含まれる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
ほぅ。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
とりあえず、現状のA2LのXCPに関係したところを抜き出してみた。
ちなみに/* ~ */の部分はコメントで私が追記しておいた。
/begin IF_DATA XCP
/begin PROTOCOL_LAYER
0x0101 /* XCP version=1.1 */
0x07D0 /* T1 = 1000[ms](CMDに対してのRESタイムアウト値) */
0x2710 /* T2 = 10000[ms]エラー時のタイムアウト */
0x00
0x00
0x00
0x00
0x00
0xFF /* MAX_CTO */
0x05C2 /* MAX_DTO */
BYTE_ORDER_MSB_FIRST /* ByteOrderはMotorola形式 */
ADDRESS_GRANULARITY_BYTE /* アドレス単位は1byte */
/end PROTOCOL_LAYER
/begin DAQ
DYNAMIC /* DynamicDAQ */
0x00 /* MAX_DAQ */
0x01 /* MAX_EVENT_CHANNEL */
0x00 /* MIN_DAQ */
OPTIMISATION_TYPE_DEFAULT /* 最適化の型=デフォルト */
ADDRESS_EXTENSION_FREE /* アドレス拡張=未使用 */
IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD_ALIGNED /* 識別子フィールドタイプ=Relative_Word_Aigned */
GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE /* ODTエントリのサイズ単位=BYTE */
0xFF /* 最大ODTエントリ数 */
NO_OVERLOAD_INDICATION /* オーバーロード通知=なし */
PRESCALER_SUPPORTED /* プリスケーラサポート=あり */
/begin TIMESTAMP_SUPPORTED
0x01 /* タイムスタンプ精度=1 */
SIZE_DWORD /* タイムスタンプフィールドサイズ=DWORD */
UNIT_1US /* 単位=us */
TIMESTAMP_FIXED
/end TIMESTAMP_SUPPORTED
/begin EVENT
"T1M" /* イベント名称 */
"T1M" /* イベント名称(short name) */
0x00 /* EVENT_CHANNEL_NUMBER */
DAQ /* DAQのみ使用可能 */
0xFF /* MAX_DAQ_LIST */
0x01 /* EVENT_CHANNEL_TIME_CYCLE */
0x06 /* EVENT_CHANNEL_TIME_UNIT */
0x00 /* EVENT_CHANNEL_PRIORITY */
/end EVENT
/end DAQ
/begin PAG
0x00
/end PAG
/begin PGM
PGM_MODE_ABSOLUTE
0x00
0x00
/end PGM
/begin XCP_ON_UDP_IP
0x0101 /* XCP on UDP_IP version=1.1 */
0x1388 /* PORT=5000 */
ADDRESS "192.168.40.20" /* IP Address */
/end XCP_ON_UDP_IP
/end IF_DATA
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.png)
なるほど。
CANapeで設定したものがテキスト形式で出力されているんだね。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
つまり、CANapeのデータベースファイル選択でこれを選択すれば、
前回までにやってたXCP関連の設定はスキップできる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.png)
な!
それで、A2Lが無いかしきりに聞いていたのか!!
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
そうそう。
A2Lがあれば、それをCANapeに読み込ませて終了だったんだよ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
うーん、本当にA2Lなかったのかなぁ。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まぁ実際はあったけど、
機密に相当する部分があるから出せないとかはあったのかもね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
A2Lがあれば・・・
他のMCツールでも?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
ちなみに、このルールは他のMCツールも一緒だ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.png)
あ、そうか。
A2L自体はASAMの標準仕様だから、MCツールであれば同じってことになるのか。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
ん?
ということは・・・。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
ETAS社製のINCAでも使えるってこと?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/まるフクロウ.png)
Yes。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.png)
それって、すごくない?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まぁそのための標準仕様だしね。
ただ、
各ベンダー毎の特殊な記述も組み込まれていることも多いんで、
無条件にできるかっていうとそうでもないが、
XCPに限定すれば大丈夫かな。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
前回言ってた、変数定義とかもINCAで読める?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
たぶん読める。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
たぶんって・・・。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
標準仕様に則ってるといっても標準仕様自体で定義しきれていない部分もあるんで、
改行コードの解釈とか、想定する文字コードが違うとかで読めないパターンはあるんだよね。
なので、CANape、INCA間のA2L移行は、
そのまま出来たら超ラッキー。
「文字コード変換だけ」または「改行コード変換だけ」で済めばまぁまぁラッキー。
程度に考え置いた方が無難かな。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
それで、ツールを選ぶときは実績とかを重視した方が良いって言っていたのか。
途中で変えたりすると、移行コストがまぁまぁかかってしまいそうだもんね。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
そういうこと。
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- XCP設定だけをもったA2Lを参照。
- このA2Lがあれば、XCP設定はスキップできる。
- このA2Lがあれば、CANapeからINCAへ移行も一応できる。
- 100%問題無いとは言い切れないが。
バックナンバーはこちら
コメント