バックナンバーはこちら
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言語を使用した方が良い。
バックナンバーはこちら
コメント