【上流検証】最小構成のモデルベース開発事例 その25【ネットワークMILS④】

【上流検証】最小構成のモデルベース開発事例 その25【ネットワークMILS④】 事例

バックナンバーはこちら
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上にネットワークを作るとかなんとか?

フクさん
フクさん

ネットワーク構築だね。
大雑把な流れは以下だよ。

CANdb++エディタ、dbc、モデル生成ウィザード、ネットワークノード自動生成、ネットワーク構成の定義
太郎くん
太郎くん

なんか、この感じだとdbcファイルが完成していれば、
CANoeが勝手に作ってくれる感じ?

フクさん
フクさん

その認識であってるよ。

モデル生成ウィザード

太郎くん
太郎くん

じゃあ、早速dbcを「モデル生成ウィザード」に入れてみようか。

太郎くん
太郎くん

あ、勝手にノードが出来上がった!
名前もdbcで定義したものだね。

CANoe上のネットワークノードの配置
フクさん
フクさん

そのまま収録開始してCANをモニタしてみよう。

太郎くん
太郎くん

ん?まだCAN回線には繋いでないよ?

フクさん
フクさん

CANoeは「実バス」と「シミュレーションバス」を選択できる。
「シミュレーションバス」だと、実際のCAN回線につないでなくても動作するんだ。
おおよその振る舞いを確認するだけなら、まずは「シミュレーションバス」だけで十分。

太郎くん
太郎くん

へぇ。CANoeでもシミュレーションってのができるんだ?

フクさん
フクさん

むしろ、シミュレーションできるのがCANoeの売りなんだろうね。
可能な限りシミュレ―ションで試す。
そして徐々に本物のノードと入れ替えていくことを想定した環境だ。

シミュレーション

太郎くん
太郎くん

じゃー、シミュレーションするよー。

太郎くん
太郎くん

ん?
CAN回線モニタにいろいろ出てきたけど、データが全部0になってるよ。

フクさん
フクさん

まぁそうなると思うよ。
誰も値を書き換えていないからね。

太郎くん
太郎くん

じゃーシミュレーションに意味ないじゃーん!

フクさん
フクさん

ここでは期待したCANIDが期待した周期で送信されてるかの確認程度で十分だよ。

太郎くん
太郎くん

あー、そういうことであれば。

太郎くん
太郎くん

うん、ちゃんと3つのCANIDが\(10[ms]\)周期で送信されてるね。

とりあえず値を変えたい

太郎くん
太郎くん

んー、でも値が全部ゼロってのもの
なんか面白くないなー。

フクさん
フクさん

値を変えるには大きく3パターンあるよ。
①ノードパネルから手打ちでシグナルを書き換える。
②CAPLという言語を使用してプログラマブルにシグナルを書き換える。
③CAPL以外のモジュール(Simulinkモデル等)でシグナルを書き換える。

太郎くん
太郎くん

③が目的としている方法だよね?
②は良く分からないけど、
①の「手打ちで書き換える」ってのをやってみたい!

フクさん
フクさん

だったら「シミュレーション設定」ってウィンドウの各ノードの
ノードパネル」ってのを開いてごらん。
ノードに紐づいたシグナルが出てくるから。

太郎くん
太郎くん

これ?

CANoe上で特定シグナルの値変更
太郎くん
太郎くん

なるほど、これを直接編集すれば良いんだね?

フクさん
フクさん

そうそう。

太郎くん
太郎くん

おー。ちゃんと変更した値が反映されてる!

太郎くん
太郎くん

これは「実バス」でも動きは一緒?

フクさん
フクさん

Yes。

太郎くん
太郎くん

ってことは
CAN関係のちょっとしたテストなんかも簡単にできそうだね。

フクさん
フクさん

手打ちだとちょっと面倒ってのもあるが、
ちょっと試す分には十分だろうね。
本格的にやるならばCAPLを覚えた方が良いよ。

太郎くん
太郎くん

CAPLは追々勉強していこうかなぁ。。。

フクさん
フクさん

あと、
今回は初期値を設定していなかったんで、0値が出力されていた。
ちゃんと初期値設定で異常にならない状態をつくって、
手打ちでわざと異常判定になる値に書き書き換える
というテストは良くやるね。

太郎くん
太郎くん

なるほど。
初期値を正常状態、手打ちで異常状態にして、ちゃんと異常を検知するかテストするんだね。

太郎くん
太郎くん

次回はそろそろSimulinkの方かな?

フクさん
フクさん

そうだね。

まとめ

フクさん
フクさん

まとめだよ。

  • dbcファイルがあると、「モデル生成ウィザード」でCANoe上に自動でネットワーク構築できる。
  • 「シミュレーションバス」であれば、実際のCAN回線につなぐ必要はない。
  • ノードパネルでシグナルの値を手打ちで変更可能。
    • 本格的にテスト利用するにはCAPL言語を使用した方が良い。

バックナンバーはこちら

コメント

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