【XCP】最小構成のMBD事例 第2章 その178【XCP Basic㉜】

【XCP】最小構成のMBD事例 第2章 その178【XCP Basic㉜】 事例
【XCP】最小構成のMBD事例 第2章 その178【XCP Basic㉜】

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

はじめに

前回はイベントチャンネルの駆動をマルチメディアタイマにして時間精度を大幅に引き上げる改造をした。

今回はその成果の程を確認する回となる。

登場人物

博識フクロウのフクさん

指差しフクロウ

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

再度DAQパケットを確認

太郎くん
太郎くん

じゃ、改修もできたし、実際に実験してみよう。

フクさん
フクさん

当然ながら投げるコマンドは一緒だ。

太郎くん
太郎くん

はいよー。
同じように動かしてCAN回線ログを取っておくねー。

改修版に於いてのCAN回線ログ

太郎くん
太郎くん

こんな感じのログが取れた。

Begin Triggerblock
 0.000000 Start of measurement
 0.000000 1  1               Rx   d 2 FF 00
 0.000164 1  2               Rx   d 8 FF 04 80 08 08 00 01 01
 0.025625 1  1               Rx   d 1 D6
 0.026181 1  2               Rx   d 1 FF
 0.044220 1  1               Rx   d 4 D5 00 01 00
 0.045424 1  2               Rx   d 1 FF
 0.061530 1  1               Rx   d 5 D4 00 00 00 01
 0.062218 1  2               Rx   d 1 FF
 0.083968 1  1               Rx   d 6 D3 00 00 00 00 01
 0.084640 1  2               Rx   d 1 FF
 0.100368 1  1               Rx   d 6 E2 00 00 00 00 00
 0.100860 1  2               Rx   d 1 FF
 0.116687 1  1               Rx   d 8 E1 FF 04 FF 04 00 00 00
 0.117129 1  2               Rx   d 1 FF
 0.131899 1  1               Rx   d 8 E0 10 00 00 01 00 01 00
 0.132399 1  2               Rx   d 1 FF
 0.148906 1  1               Rx   d 4 DE 02 00 00
 0.153256 1  2               Rx   d 2 FF 00
 0.168362 1  1               Rx   d 2 DD 01
 0.169361 1  2               Rx   d 1 FF
 0.170975 1  2               Rx   d 7 00 00 00 00 00 00 00
 0.181944 1  2               Rx   d 7 00 6D 00 00 00 00 00
 0.185426 1  1               Rx   d 8 F6 00 00 FF 04 00 00 00
 0.186646 1  2               Rx   d 1 FF
 0.187203 1  1               Rx   d 6 F0 04 00 00 00 00
 0.189268 1  2               Rx   d 1 FF
 0.192111 1  2               Rx   d 7 00 D2 00 00 00 00 00
 0.201974 1  2               Rx   d 7 00 35 01 00 00 00 00
 0.205324 1  1               Rx   d 8 F6 00 00 FF 04 00 00 00
 0.211910 1  2               Rx   d 7 00 99 01 00 00 00 00
 0.212500 1  2               Rx   d 1 FF
 0.212763 1  1               Rx   d 6 F0 04 11 22 33 44
 0.214835 1  2               Rx   d 1 FF
 0.221872 1  2               Rx   d 7 00 FD 01 11 22 33 44
 0.231899 1  2               Rx   d 7 00 61 02 11 22 33 44
 0.237175 1  1               Rx   d 8 F6 00 00 FF 04 00 00 00
 0.238256 1  2               Rx   d 1 FF
 0.239337 1  1               Rx   d 6 F0 04 22 44 66 88
 0.242000 1  2               Rx   d 7 00 C5 02 11 22 33 44
 0.244638 1  2               Rx   d 1 FF
 0.251838 1  2               Rx   d 7 00 28 03 22 44 66 88
 0.261767 1  2               Rx   d 7 00 8C 03 22 44 66 88
 0.269148 1  1               Rx   d 8 F6 00 00 FF 04 00 00 00
 0.270328 1  2               Rx   d 1 FF
 0.270885 1  1               Rx   d 6 F0 04 33 66 99 CC
 0.271761 1  2               Rx   d 7 00 EF 03 33 66 99 CC
 0.273129 1  2               Rx   d 1 FF
 0.281756 1  2               Rx   d 7 00 53 04 33 66 99 CC
 0.291692 1  2               Rx   d 7 00 B7 04 33 66 99 CC
 0.301695 1  2               Rx   d 7 00 1B 05 33 66 99 CC
 0.303423 1  1               Rx   d 2 DD 00
 0.310313 1  2               Rx   d 1 FF
 0.328081 1  1               Rx   d 1 FE
 0.329335 1  2               Rx   d 1 FF
End TriggerBlock

DAQパケットだけ抽出

太郎くん
太郎くん

DAQパケットだけ抽出するとこうなるね。

 0.170975 1  2               Rx   d 7 00 00 00 00 00 00 00
 0.181944 1  2               Rx   d 7 00 6D 00 00 00 00 00
 0.192111 1  2               Rx   d 7 00 D2 00 00 00 00 00
 0.201974 1  2               Rx   d 7 00 35 01 00 00 00 00
 0.211910 1  2               Rx   d 7 00 99 01 00 00 00 00
 0.221872 1  2               Rx   d 7 00 FD 01 11 22 33 44
 0.231899 1  2               Rx   d 7 00 61 02 11 22 33 44
 0.242000 1  2               Rx   d 7 00 C5 02 11 22 33 44
 0.251838 1  2               Rx   d 7 00 28 03 22 44 66 88
 0.261767 1  2               Rx   d 7 00 8C 03 22 44 66 88
 0.271761 1  2               Rx   d 7 00 EF 03 33 66 99 CC
 0.281756 1  2               Rx   d 7 00 53 04 33 66 99 CC
 0.291692 1  2               Rx   d 7 00 B7 04 33 66 99 CC
 0.301695 1  2               Rx   d 7 00 1B 05 33 66 99 CC
太郎くん
太郎くん

ちゃんと計算してないけど、パッと見10[ms]になってるんじゃない?

フクさん
フクさん

確かにそのように見える。
まぁ実際にDAQパケットの送信間隔を算出してみよう。

0.181944-0.170975=0.010969
0.192111-0.181944=0.010167
0.201974-0.192111=0.009863
0.211910-0.201974=0.009936
0.221872-0.211910=0.009962
0.231899-0.221872=0.010027
0.242000-0.231899=0.010101
0.251838-0.242000=0.009838
0.261767-0.251838=0.009929
0.271761-0.261767=0.009994
0.281756-0.271761=0.009995
0.291692-0.281756=0.009936
0.301695-0.291692=0.010003

太郎くん
太郎くん

おー!
これはバッチリ10[ms]周期になってるね。

フクさん
フクさん

やはりマルチメディアタイマの時間精度はなかなかなものだな。

太郎くん
太郎くん

これでXCP Basicの課題はクリアされたって感じか。

フクさん
フクさん

うむ。
シミュレ―ションでこのレベルがでれば上々だろう。

ソースコードとか

フクさん
フクさん

今回使用したXCPコマンドはJupyterNotebookで、
改修版XCP BasicはC言語のソースコードとしてGithubに上げておいた。
興味ある人は触ってみると良いだろう。

XCPコマンド

改修版XCP Basic

まとめ

フクさん
フクさん

まとめだよ。

  • 再度DAQパケットを確認。
    • XCPの一連のコマンド含めてCAN回線ログとして取得。
  • DAQパケットだけ抽出し、タイムスタンプを確認。
    • 狙い通り10[ms]周期の送信周期になっていた。
  • ソースコード等はGithubに上げておいた。
    • Python側はJupyterNotebook形式。

バックナンバーはこちら。

コメント

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