バックナンバーはこちら
https://www.simulationroom999.com/blog/model-based-of-minimum-backnumber/
はじめに
前回は、多回線出力をするにあたっての問題点を出した。
- 複数のシグナルに出力しなければならない。
- 一つのノードから複数の回線に出力するにはゲートウェイノードにしなければならない。
今回は、システム変数の定義と出力の仕方の話になる。
登場人物
博識フクロウのフクさん

イラスト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
なんとなくの構成

さて、まずは構成を示そう。

システム変数とか出来てきたから、
ちょっと整理してもらえると助かるよ。

とりあえず絵を描いた。


以前やったときはシステム変数じゃなくて、シグナルに出力してたよね。
今回はそれをシステム変数ってのにするんだね。

そう。
システム変数へ書き込むには、
SystemVariableOutputブロックを出力側に繋げばよい。


シグナルへの割り付けと同じように
Select Variableボタンを押すと、CANoe側で定義されているシステム変数が参照&選択できる。

システム変数の定義

そのシステム変数は、
CANoe側ではどう定義したら良いの?

メニュー→環境→システム変数
を選ぶと追加できるよ。


CANoe上で扱いやすいデータタイプとして指定しておいた方が良いね。
今回はとりあえずUInt32(符号なし32bit変数)にするか。

これでSystemVariableOutputブロックとCANoeのシステム変数の関連付けができるんだね。
システム変数をモニタ

ちなみに、システム変数をCANoe側でモニタすることができる。

え?CAN回線には出ないものなんだよね?

うん。
でも、CANoe側で抱えているものなので、
波形表示はできる。
シグナルに分配する前にシステム変数まで期待した出力が来ているか確認しておいた方が良いだろう。

端的にいうと、
Simulink単体で動作確認した時と同じ波形が確認できればOK
ってことだね。

そうそう。
確認よろしく。


うん、バッチリだよ。

しかし、SimulinkとCANoeは全く別のツールなので良くうまく連携できてるよね。

まぁ、Simulinkは最早自動車業界に於いては当たり前のツールになってるし、
CANoeは車載ネットワークの領域に於いての当たり前のツールだ。
よって、連携できた方がお互いの利になるし、利用する側もそれの恩恵を得られて一石二鳥どころか三鳥以上だね。
まぁ個人で買うには難しいお値段ではあるけど。

逆に言うと、
費用が障壁になって学習困難ってことで、差別化ってやつにならない?

すごいね。
良くそんな言葉知ってたね。

む。

太郎くんの言う通りだよ。
実際、CANoeを単なるCANモニタツールと思っている人もまぁまぁいるんじゃないかな。
この話を知ってるだけでも開発効率、検証効率は大きく引き上げられるし。
ただ、結構ニッチな領域でもあるんで、大きいビジネスにはなり難いだろう。

でも、中小規模の会社とかだったら結構いい感じかもね。

ま、この領域で飯を食うなら常時勉強、常時情報収集だね。
次回はCAPLに突入予定だよ。

おう!
まとめ

まとめだよ。
- SimulinkモデルからCANoeのシステム変数に出力する場合はSystemVriableOutputブロックを使用する。
- CANoeでシステム変数を定義できる。
- システム変数の型は、扱うシグナルに近いものを選択しておいた方が良い。
バックナンバーはこちら
コメント