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

事例

バックナンバーはこちら

スポンサーリンク

はじめに

前回は、多回線出力をするにあたっての問題点を出した。

  • 複数のシグナルに出力しなければならない。
  • 一つのノードから複数の回線に出力するにはゲートウェイノードにしなければならない。

今回は、システム変数の定義と出力の仕方の話になる。

登場人物

博識フクロウのフクさん

イラスト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でシステム変数を定義できる。
    • システム変数の型は、扱うシグナルに近いものを選択しておいた方が良い。

バックナンバーはこちら

コメント

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