バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回はついにDAQを起動した。
そしてDAQパケットの回線モニタもしてみた。
タイムスタンプを有効にしているので、
それの確認は取れたが、計測しているRAMが0値固定なのであまり面白みはない。
今回は外部から計測RAMを書き換え方法や方針を確認する。
登場人物
博識フクロウのフクさん
![指差しフクロウ](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
![技術者太郎](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
計測RAM値の変更方法
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
前回はついにDAQパケットを確認できたわけだけど、
計測RAM値が0値のままだったんだよねー。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
まぁ特に何かを更新してるわけじゃないからね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
前回の最後の方に
「外部から書き込みをして更新状態を見てみよう(キリッ)」
みたいなこと言ってたけど、
あれってやっぱりDOWNLOADコマンドを使う感じ?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
(「キリッ」とはやってなかったはずだが・・・。)
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
そうだね。
厳密にはSET_MTAとDOWNLOADのコマンドを使う。
SET_MTAとDOWNLOADの電文
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
となると、SET_MTAとDOWNLOADの電文を叩き込むことになるのか。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
それぞれのコマンドは以前やったね。
SET_MTA
DOWNLOAD
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
そうそう。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
そして電文はこれになる。
SET_MTAは
0xF6, 0x00, 0x00, 0xFF, 0x04, 0x00, 0x00, 0x00
DOWNLOADは
0xF0, 0x04, 0x44, 0x55, 0x66, 0x77
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
とりあえず、その電文を投げればOKだと思うけど、
折角だから連続で投げてみるか。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/まるフクロウ.png)
うん。
いいね。
ただ、値を変更した後にDAQパケットが送出されないといけないから
sleepをちょっと挟んだ方が良いかな。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
sleep?
ちょっとプログラムを待たせるヤツ?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
そうそう。
今回はtimeモジュールのspeep関数を使う。
とりあえず0.01秒を指定してみるか。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
となると
コード的にはこんな感じになるのかな?
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)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
一応、書き込むデータは毎回変わるようにiを掛けるようにしてみた。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/まるフクロウ.png)
そうだね。
同じ値を書き込んだら変化がわからないから、変化は持たせた方が良いね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」08アップ.png)
じゃー、あとはこれを実行してみるのみ!
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- 計測RAM値の変更方法はSET_MTAとDOWNLAOD。
- SET_MTAとDOWNLOADの電文確認。
- 折角なので連続で投げて見る。
- ただ、同じ値だと変化が分からない無いのでちょっと書き込みデータを変える。
- さらにDAQパケット送出前に書き換えてしまう可能性もあるのでsleep関数を挟む。
- 折角なので連続で投げて見る。
バックナンバーはこちら。
コメント