バックナンバーはこちら。
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形式。
バックナンバーはこちら。
コメント