【上流検証】最小構成のモデルベース開発事例 その45【Bypass⑫】

【上流検証】最小構成のモデルベース開発事例 その45【Bypass⑫】 事例

バックナンバーはこちら
https://www.simulationroom999.com/blog/model-based-of-minimum-backnumber/

はじめに

CANapeのXCP関連の設定が終わった段階のA2Lを見てみる。

登場人物

博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

XCPの設定だけをもったA2Lファイル

フクさん
フクさん

ちょっとここで、CANapeが出力したA2Lを見てみよう。

太郎くん
太郎くん

あれ?

A2Lって変数情報のデータベースファイルじゃないの?
XCPは関係無くような?

フクさん
フクさん

A2Lは計測をするために必要な情報を内包していて、
XCP関連の情報もそこに含まれる。

太郎くん
太郎くん

ほぅ。

フクさん
フクさん

とりあえず、現状の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
太郎くん
太郎くん

なるほど。
CANapeで設定したものがテキスト形式で出力されているんだね。

フクさん
フクさん

つまり、CANapeのデータベースファイル選択でこれを選択すれば、
前回までにやってたXCP関連の設定はスキップできる

太郎くん
太郎くん

な!
それで、A2Lが無いかしきりに聞いていたのか!!

フクさん
フクさん

そうそう。
A2Lがあれば、それをCANapeに読み込ませて終了だったんだよ。

太郎くん
太郎くん

うーん、本当にA2Lなかったのかなぁ。

フクさん
フクさん

まぁ実際はあったけど、

機密に相当する部分があるから出せないとかはあったのかもね。

太郎くん
太郎くん

A2Lがあれば・・・

他のMCツールでも?

フクさん
フクさん

ちなみに、このルールは他のMCツールも一緒だ。

太郎くん
太郎くん

あ、そうか。
A2L自体はASAMの標準仕様だから、MCツールであれば同じってことになるのか。

太郎くん
太郎くん

ん?
ということは・・・。

太郎くん
太郎くん

ETAS社製のINCAでも使えるってこと?

フクさん
フクさん

Yes。

太郎くん
太郎くん

それって、すごくない?

フクさん
フクさん

まぁそのための標準仕様だしね。
ただ、

各ベンダー毎の特殊な記述も組み込まれていることも多いんで、
無条件にできるかっていうとそうでもないが、
XCPに限定すれば大丈夫かな。

太郎くん
太郎くん

前回言ってた、変数定義とかもINCAで読める?

フクさん
フクさん

たぶん読める。

太郎くん
太郎くん

たぶんって・・・。

フクさん
フクさん

標準仕様に則ってるといっても標準仕様自体で定義しきれていない部分もあるんで、
改行コードの解釈とか、想定する文字コードが違うとかで読めないパターンはあるんだよね。
なので、CANape、INCA間のA2L移行は、

そのまま出来たら超ラッキー
「文字コード変換だけ」または「改行コード変換だけ」で済めばまぁまぁラッキー
程度に考え置いた方が無難かな。

太郎くん
太郎くん

それで、ツールを選ぶときは実績とかを重視した方が良いって言っていたのか。
途中で変えたりすると、移行コストがまぁまぁかかってしまいそうだもんね。

フクさん
フクさん

そういうこと。

まとめ

フクさん
フクさん

まとめだよ。

  • XCP設定だけをもったA2Lを参照。
  • このA2Lがあれば、XCP設定はスキップできる。
  • このA2Lがあれば、CANapeからINCAへ移行も一応できる。
    • 100%問題無いとは言い切れないが。

バックナンバーはこちら

コメント

タイトルとURLをコピーしました