バックナンバーはこちら
https://www.simulationroom999.com/blog/model-based-of-minimum-backnumber/
はじめに
前回、dbcファイルにてネットワーク構成の定義を実施。
今回はCANoe上にネットワークを構築する。
登場人物
博識フクロウのフクさん
イラスト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
概要
今回はCANoe上にネットワークを作るとかなんとか?
ネットワーク構築だね。
大雑把な流れは以下だよ。
なんか、この感じだとdbcファイルが完成していれば、
CANoeが勝手に作ってくれる感じ?
その認識であってるよ。
モデル生成ウィザード
じゃあ、早速dbcを「モデル生成ウィザード」に入れてみようか。
あ、勝手にノードが出来上がった!
名前もdbcで定義したものだね。
そのまま収録開始してCANをモニタしてみよう。
ん?まだCAN回線には繋いでないよ?
CANoeは「実バス」と「シミュレーションバス」を選択できる。
「シミュレーションバス」だと、実際のCAN回線につないでなくても動作するんだ。
おおよその振る舞いを確認するだけなら、まずは「シミュレーションバス」だけで十分。
へぇ。CANoeでもシミュレーションってのができるんだ?
むしろ、シミュレーションできるのがCANoeの売りなんだろうね。
可能な限りシミュレ―ションで試す。
そして徐々に本物のノードと入れ替えていくことを想定した環境だ。
シミュレーション
じゃー、シミュレーションするよー。
ん?
CAN回線モニタにいろいろ出てきたけど、データが全部0になってるよ。
まぁそうなると思うよ。
誰も値を書き換えていないからね。
じゃーシミュレーションに意味ないじゃーん!
ここでは期待したCANIDが期待した周期で送信されてるかの確認程度で十分だよ。
あー、そういうことであれば。
うん、ちゃんと3つのCANIDが\(10[ms]\)周期で送信されてるね。
とりあえず値を変えたい
んー、でも値が全部ゼロってのもの
なんか面白くないなー。
値を変えるには大きく3パターンあるよ。
①ノードパネルから手打ちでシグナルを書き換える。
②CAPLという言語を使用してプログラマブルにシグナルを書き換える。
③CAPL以外のモジュール(Simulinkモデル等)でシグナルを書き換える。
③が目的としている方法だよね?
②は良く分からないけど、
①の「手打ちで書き換える」ってのをやってみたい!
だったら「シミュレーション設定」ってウィンドウの各ノードの
「ノードパネル」ってのを開いてごらん。
ノードに紐づいたシグナルが出てくるから。
これ?
なるほど、これを直接編集すれば良いんだね?
そうそう。
おー。ちゃんと変更した値が反映されてる!
これは「実バス」でも動きは一緒?
Yes。
ってことは
CAN関係のちょっとしたテストなんかも簡単にできそうだね。
手打ちだとちょっと面倒ってのもあるが、
ちょっと試す分には十分だろうね。
本格的にやるならばCAPLを覚えた方が良いよ。
CAPLは追々勉強していこうかなぁ。。。
あと、
今回は初期値を設定していなかったんで、0値が出力されていた。
ちゃんと初期値設定で異常にならない状態をつくって、
手打ちでわざと異常判定になる値に書き書き換える。
というテストは良くやるね。
なるほど。
初期値を正常状態、手打ちで異常状態にして、ちゃんと異常を検知するかテストするんだね。
次回はそろそろSimulinkの方かな?
そうだね。
まとめ
まとめだよ。
- dbcファイルがあると、「モデル生成ウィザード」でCANoe上に自動でネットワーク構築できる。
- 「シミュレーションバス」であれば、実際のCAN回線につなぐ必要はない。
- ノードパネルでシグナルの値を手打ちで変更可能。
- 本格的にテスト利用するにはCAPL言語を使用した方が良い。
バックナンバーはこちら
コメント