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

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

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

はじめに

やっとBypassに到達。

登場人物

博識フクロウのフクさん

イラスト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

Bypassの方針

フクさん
フクさん

さぁお待ちかねのBypassだ。

太郎くん
太郎くん

な、長かった。
まさか、16回も重ねるなんて全く思ってなかった。

フクさん
フクさん

まぁゼロからのスタートだったしね。
普通はXCP環境が整備されていることが多いんで、
4,5回くらいのボリュームのはずなんだけど、
そもそものBypassの目的とか、それを達成するための手段としてのXCPや
XCPを実現するためのA2Lの話が入ってしまったからね。
今思うと、Bypassネタで15回もやるより、
XCPで5回、A2L&XCPで5回、Bypassで5回の配分が妥当だったかもって筆者も反省しているよ。

太郎くん
太郎くん

メタいな。

フクさん
フクさん

まずは今回のBypassを実現する全体構成を絵に出すよ。

CANape、ASAP2 Studio、A2L、シフト命令、XCP、Download、DAQ,SBWモデル、Simulink、グラフ表示、CALIB変数、プロトタイプECU
太郎くん
太郎くん

いままでのエッセンスが全部ぶっこまれた絵だね。
でも今ならそれぞれ理解できるよ。

フクさん
フクさん

それは良かった。
頑張って説明したかいがあるよ。

Bypassしてみる。

太郎くん
太郎くん

よし。
XCPはOK。
A2LはOK。
SimulinkはOK。
プロトタイプECUとの接続もOK。
これでBypassができるね。

フクさん
フクさん

よし、動かしてみよう。

太郎くん
太郎くん

動かしながら入力も弄ってみるね。

XCP、CANape、シミュレーション結果
太郎くん
太郎くん

うん。期待通りの動作だよ。
過去のモデルではばっちり動いているから
お客さん側で新しいモデルと差し替えても、それの振る舞い合わせて動作してくれそうだ。

フクさん
フクさん

まぁいろいろややこしいところもあるから手順書は起こしておいた方が良いね。
お客さんもCANapeの使い方とか知らない可能性あるし。

太郎くん
太郎くん

うん。

だいたいメモってはいたからそれをドキュメントとしてまとめておくよ。

振り返り

フクさん
フクさん

よし、簡単に振り返りをしよう。

太郎くん
太郎くん

じゃ、確認も兼ねて僕の方で話をするね。

太郎くん
太郎くん

Bypassの目的

  • 主要なロジックをPC側に置くことで、ロジックのトライアル&エラーの回数を増やすことができる。
  • よって、装置側を弄る必要なない。

Bypassの手法

  • 標準仕様としてはXCPを使用することが多い。
  • XCP仕様の中でもDAQ、STIMが最もBypassと相性が良い。

XCP

  • 物理層はCAN、Ether、USBなど多岐に分かれる。
  • 今回はEther。
  • XCPは計測、キャリブレーション、リプログラミングを実現するための仕様。
    • 今回は計測、キャリブレーションの機能を使ってBypassを実現。
  • CTO,DTOというパケット構成に分かれる。
    • CTOが細かい指令を出すことが得意なパケット。
      • CMD、RES、ERRなどがある。
    • DTOが連続的にデータの送信ができる効率的なパケット。
      • DAQ、STIMがある。

MCツール

  • XCPを利用した計測、キャリブレーションを実現してくれるツール
    • ETAS社製INCA、Vector製CANapeが有名。
    • 今回はCANapeを使った。
  • MCツールを使うにはA2Lが必要
    • A2LにはXCPのプロトコル設定とECU側の変数情報が記載される。

CANapeIO

  • CANapeにSimulnkDLLを組み込む際のin/outを実現してれるブロック。
  • CANapeにSimulnkDLLを組み込む際はこのブロックに付けた名称とCANape上の変数で紐づけができる。
フクさん
フクさん

おー、バッチリだね。

太郎くん
太郎くん

まぁもっと細かいところもあるとは思うけど。

フクさん
フクさん

大まかな流れさえ掴んでおけばOKだよ。
今回はCANapeだったけど、環境がINCAになった際は多少は手間取るかもしれない。
しかし、流れが一緒と思えばいくらでも自分で調べようはある

太郎くん
太郎くん

たしかに、ツールが変るとわからなくなりそうだけど、
必要なキーワードは予想できるから、調べるなり、適切な人に聞くなりして実現するってことであれば、割とイメージ湧いてるね。

フクさん
フクさん

うん。

ほんとCANapeが上司のPC中で肥やしにならなくて良かったよ。

太郎くん
太郎くん

しばらくこのまま自分で持ってていろいろ実験してみるよ。。

フクさん
フクさん

そうだね。
今回説明した範囲はCANapeの一部の機能に過ぎないんで、
ちょこちょこ触ってどこま出来そうなツールなのかは把握しておくことは良いね。

太郎くん
太郎くん

というわけで次の事件が発生するまでは寝てていいよ。

フクさん
フクさん

(頼むから事件は起こさないでよ)

フクさん
フクさん

なにはともあれ、Bypassシリーズは今回で終了。

まとめ

フクさん
フクさん

まとめだよ。

  • やっとBypass実施。
  • いままでの内容を振り返った。
    • 一連の流れを大きく把握していれば、ツールが変っても適応できる。

バックナンバーはこちら

コメント

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