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

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

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

はじめに

前回はついにDAQを起動した。
そしてDAQパケットの回線モニタもしてみた。
タイムスタンプを有効にしているので、
それの確認は取れたが、計測しているRAMが0値固定なのであまり面白みはない。

今回は外部から計測RAMを書き換え方法や方針を確認する。

登場人物

博識フクロウのフクさん

指差しフクロウ

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

計測RAM値の変更方法

太郎くん
太郎くん

前回はついにDAQパケットを確認できたわけだけど、
計測RAM値が0値のままだったんだよねー。

フクさん
フクさん

まぁ特に何かを更新してるわけじゃないからね。

太郎くん
太郎くん

前回の最後の方に
「外部から書き込みをして更新状態を見てみよう(キリッ)」
みたいなこと言ってたけど、
あれってやっぱりDOWNLOADコマンドを使う感じ?

フクさん
フクさん

(「キリッ」とはやってなかったはずだが・・・。)

フクさん
フクさん

そうだね。
厳密にはSET_MTADOWNLOADのコマンドを使う。

SET_MTAとDOWNLOADの電文

太郎くん
太郎くん

となると、SET_MTAとDOWNLOADの電文を叩き込むことになるのか。

太郎くん
太郎くん

それぞれのコマンドは以前やったね。

SET_MTA

DOWNLOAD

フクさん
フクさん

そうそう。

フクさん
フクさん

そして電文はこれになる。
SET_MTAは
0xF6, 0x00, 0x00, 0xFF, 0x04, 0x00, 0x00, 0x00
DOWNLOADは
0xF0, 0x04, 0x44, 0x55, 0x66, 0x77

太郎くん
太郎くん

とりあえず、その電文を投げればOKだと思うけど、
折角だから連続で投げてみるか。

フクさん
フクさん

うん。
いいね。
ただ、値を変更した後にDAQパケットが送出されないといけないから
sleepをちょっと挟んだ方が良いかな。

太郎くん
太郎くん

sleep?
ちょっとプログラムを待たせるヤツ?

フクさん
フクさん

そうそう。
今回はtimeモジュールのspeep関数を使う。
とりあえず0.01秒を指定してみるか。

太郎くん
太郎くん

となると
コード的にはこんな感じになるのかな?

import time
for i in range(4):
  xcp_sendrecv([0xF6, 0x00, 0x00, 0xFF, 0x04, 0x00, 0x00, 0x00, ]);
  xcp_sendrecv([0xF0, 0x04, 0x11*i, 0x22*i, 0x33*i, 0x44*i, ]);
  time.sleep(0.01)
太郎くん
太郎くん

一応、書き込むデータは毎回変わるようにiを掛けるようにしてみた。

フクさん
フクさん

そうだね。
同じ値を書き込んだら変化がわからないから、変化は持たせた方が良いね。

太郎くん
太郎くん

じゃー、あとはこれを実行してみるのみ!

まとめ

フクさん
フクさん

まとめだよ。

  • 計測RAM値の変更方法はSET_MTAとDOWNLAOD。
  • SET_MTAとDOWNLOADの電文確認。
    • 折角なので連続で投げて見る。
      • ただ、同じ値だと変化が分からない無いのでちょっと書き込みデータを変える。
      • さらにDAQパケット送出前に書き換えてしまう可能性もあるのでsleep関数を挟む。

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

コメント

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