バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
HILSもどきのインターフェースをCANにしたところで
本来であればCANインターフェース装置の手配が必要になる。
しかし、今回はVector社のXL Driver Library付属のVirtual CAN Bus(無償)を使用することでさらりと回避する。
具体的にどのようなCANのデータをやり取りするかを決めていく。
登場人物
博識フクロウのフクさん

イラスト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
CAN経由で渡したい情報

CAN経由で指令値を渡すってのは決まったけど、
どんなデータを渡す予定?

まぁどんなデータでも良いのだけど、
一応決めておいた方が良いかもね。

一応以下の指令値を渡すとしよう。
![100[ms]周期で上記指令値をCANで入力、Ramp Up、Ramp Down、Step、CAN](https://www.simulationroom999.com/blog/wp-content/uploads/2021/10/02_CANで送信する指令値-1024x416.png)

Ramp UpとRamp Down。
そしてステップ信号だね。
割とお試しとしては良く使われるパターンだ。
PythonでCANの送信方法

実は、PythonでCAN送受信をする話は
以前、診断通信周りでしたことはある。

一応ここでやった。

うーん、だいぶ前な気がする・・・。

(まぁ一年以上はたってるかな)

基本的にはやることは一緒だが、
送信するデータのパターンをある程度用意しておく必要はあるな。

送信パターンはどういう形で持っておくの?

ファイルから読み込むとかだと汎用性があるが、
今回は普通にPythonのリストとして持っておこう。
sndparam = [
0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,
100,100,
100,95,90,85,80,75,70,65,60,55,50,45,40,35,30,25,20,15,10,5,0,
0,0,0,0,0,0,0,0,0,0,
80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
]

まぁ送りたいデータを変えたかったら
このリスト編集すればいいだけだしね。
PythonでCANを使用するには。

過去の記事にも書いてあることだが、
PythonでCANを使用するにはPython-CANが必要。
Python-CANのインストールはpipを使用すればOKだ。
pip install python-can

python-canの存在を知ってさえいれば、
ここはそんなに悩まないよね。
Python-CANを使用するには

Python-CANを使用するには当然ライブラリのimportが必要。
まぁこれもシンプルな話で以下をimportすればOKだ。
import can

(ここまではなんとなく覚えてるぞ!)

あとはバス初期化とか実際の送信の話にちょっと触れて
実際使用する実験コードを見せる動作させてみるって流れかな。

まぁいつも通りの流れだね。
まとめ

まとめだよ。
- CAN経由で渡したい情報として指令値を仮定義。
- Ramp Up、Ramp Down、Stepなどの組み合わせ
- Python-CANの復習。
- インストールの話。
- pip使えばOK。
- importの話。
- canをimportすればOK。
- インストールの話。
- 以降はバス初期化、送受信などの話が続く予定。
バックナンバーはこちら。
コメント