バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回でXCP BasicのDAQによる計測が確認がとれたところとなる。
これにてXCP Basicの有用性は証明されたと言えるが、
若干PCシミュレーションである故の問題を抱えてる様子。
その問題点を確認していく。
登場人物
博識フクロウのフクさん
イラスト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 Basic PCシミュレーションの問題点
前回、なんか
「XCP BasicのPCシミュレーションであるが故の問題がある」
とかで含むのある言い方で終わったんだけど、
結局何が問題なの?
簡単に言うと時間精度だな。
時間精度?
タイムスタンプとか?
タイムスタンプの精度は問題無くて、
実際のDAQの送信周期だな。
送信周期?
それっぽく出ていたとは思ったけど・・・。
DAQパケットの送信周期を確認
前回のCAN回線ログを再度確認してみよう。
Begin Triggerblock
0.000000 Start of measurement
0.222134 1 1 Rx d 2 DD 01
0.223715 1 2 Rx d 1 FF
0.234209 1 2 Rx d 7 00 AA 7D 00 00 00 00
0.241058 1 1 Rx d 8 F6 00 00 FF 04 00 00 00
0.243057 1 2 Rx d 1 FF
0.244597 1 1 Rx d 6 F0 04 00 00 00 00
0.248226 1 2 Rx d 1 FF
0.249676 1 2 Rx d 7 00 45 7E 00 00 00 00
0.264683 1 2 Rx d 7 00 DB 7E 00 00 00 00
0.267698 1 1 Rx d 8 F6 00 00 FF 04 00 00 00
0.269812 1 2 Rx d 1 FF
0.271139 1 1 Rx d 6 F0 04 11 22 33 44
0.271909 1 2 Rx d 1 FF
0.280355 1 2 Rx d 7 00 77 7F 11 22 33 44
0.296624 1 2 Rx d 7 00 19 80 11 22 33 44
0.298410 1 1 Rx d 8 F6 00 00 FF 04 00 00 00
0.301728 1 2 Rx d 1 FF
0.302358 1 1 Rx d 6 F0 04 22 44 66 88
0.303038 1 2 Rx d 1 FF
0.311255 1 2 Rx d 7 00 AC 80 22 44 66 88
0.326680 1 2 Rx d 7 00 47 81 22 44 66 88
0.331718 1 1 Rx d 8 F6 00 00 FF 04 00 00 00
0.332628 1 2 Rx d 1 FF
0.333177 1 1 Rx d 6 F0 04 33 66 99 CC
0.333980 1 2 Rx d 1 FF
0.341598 1 2 Rx d 7 00 DC 81 33 66 99 CC
0.356319 1 2 Rx d 7 00 6F 82 33 66 99 CC
0.371556 1 2 Rx d 7 00 07 83 33 66 99 CC
End TriggerBlock
この中でDAQパケットに相当するのは
CANID 2、データフィールドの1byte目が00h
になっているものだ。
いい感じで送信されてる・・・よね?
パッと見はOKそうだよね。
そこでDAQパケットのCANログを抜き出す。
0.234209 1 2 Rx d 7 00 AA 7D 00 00 00 00
0.249676 1 2 Rx d 7 00 45 7E 00 00 00 00
0.264683 1 2 Rx d 7 00 DB 7E 00 00 00 00
0.280355 1 2 Rx d 7 00 77 7F 11 22 33 44
0.296624 1 2 Rx d 7 00 19 80 11 22 33 44
0.311255 1 2 Rx d 7 00 AC 80 22 44 66 88
0.326680 1 2 Rx d 7 00 47 81 22 44 66 88
0.341598 1 2 Rx d 7 00 DC 81 33 66 99 CC
0.356319 1 2 Rx d 7 00 6F 82 33 66 99 CC
0.371556 1 2 Rx d 7 00 07 83 33 66 99 CC
そして、CANログのタイムスタンプ(一番左の数値)でDAQパケットの送信時間の差を算出してみよう。
0.249676-0.234209=0.015467
0.264683-0.249676=0.015007
0.280355-0.264683=0.015672
0.296624-0.280355=0.016269
0.311255-0.296624=0.014631
0.326680-0.311255=0.015425
0.341598-0.326680=0.014918
0.356319-0.341598=0.014721
0.371556-0.356319=0.015237
ただしDAQ送信周期は
えーっと、この結果からすると、DAQパケットは15[ms]周期で送信されてる?
そうだね。
そもそもDAQパケットの送信周期って何が正しいんだっけ?
今回は10[ms]周期のイベントチャンネルに紐づけて分周が1なので
10[ms]周期でDAQパケットが送出されるべき。
ってことになる。
ダメじゃん!
これが問題点ってところだな。
まぁ一応原因もわかってるんで次回説明しよう。
まとめ
まとめだよ。
- XCP Basic PCシミュレーションの問題点は送信周期。
- 前回のCAN回線ログのDAQパケットだけを抽出し、それのタイムスタンプと元に現状の送信周期を算出。
- 10[ms]周期で送信されるべきところが15[ms]になっていた。
- 一応、原因は分かってはいるので、そこらへんを次回確認予定。
- 10[ms]周期で送信されるべきところが15[ms]になっていた。
バックナンバーはこちら。
コメント