【CANoe】最小構成のMBD事例 第2章 その266【仮想ECU連携③】

【CANoe】最小構成のMBD事例 第2章 その265【仮想ECU連携②】 事例
【CANoe】最小構成のMBD事例 第2章 その265【仮想ECU連携②】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

前回はCANoe上のシミュレーション設定で指令器ノードをdisableとCAPLテストモジュールの追加を行った。

残りはCAPLによるXCP関連の処理の追加となる。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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でXCP関連の処理を追加する際の方針

太郎くん
太郎くん

次はやっとCAPLでXCPの処理を書いてくところになるのかー。

フクさん
フクさん

そうなんだけど、
少し方針を確認しておこう。

太郎くん
太郎くん

んー?
テストノードにXCPセットアップ、ネットワークノードにDAQ/STIM
なんじゃないの?

フクさん
フクさん

それぞれの役割としてはそうなんだけど、
処理のタイミングとかを気にする必要がある。
例えば、XCPセットアップが終わってないのでSTIMを送信してもだめなんで、
DAQ/STIMを処理する部分はXCPセットアップが終わっていることを知っている必要がある。

太郎くん
太郎くん

言われてみるとテストノードとネットワークノードって別ノードだからどうやって状況を知らせるんだ?

フクさん
フクさん

一番シンプルなのはCANoeのシステム変数で通知
ってやつだね。

なんとなくの構成図

太郎くん
太郎くん

イメージとしてはグローバル変数で通知
みたいな感じ?

フクさん
フクさん

その認識でおおよそOKだ。
一応、関係性を図示してみた。

CANoe 各ノード間の通信、DAQ/STIM開始はCANoeのシステム変数経由で通知、ネットワークノード(ノードのTopにECUと付く)、CANoe内の指令器は使わないのでdisableにしとく。、テストノード(ノードのTopにTestと付く)、Daq_start
太郎くん
太郎くん

Daq_startってのがCANoeシステム変数で
この変数がノード横断で読み書きできるから、これを利用して各ノードの処理の動機をとる。
って感じか。

フクさん
フクさん

正解だ。

CANoeシステム変数追加方法

フクさん
フクさん

CANoeへシムテム変数の追加方法を説明しておこう。

太郎くん
太郎くん

あ、僕もそれは気になってた。
CAPL上で書けばOKってわけじゃないんだよなー。
って思ってた。

フクさん
フクさん

その予想はいい感じだ。
CANoeシステム変数は専用の「システム変数設定」という項目があって、
そこで追加してあげる必要がある。

フクさん
フクさん

ざっと図示するとこんな感じだな。

CANoeシステム変数追加方法、環境、システム円数、システム変数設定、新規、編集、削除、切り取り、コピー、貼り付け、選択をエクスポート、選択して参照ファイルに移動
太郎くん
太郎くん

なるほど。
こうやって追加しておくのか。

フクさん
フクさん

このシステム変数。
CAPLから呼び出す際は変数名の先頭に「@」(アットマーク)を付けて呼び出すことになる。
が、ここらへんは実際にCAPLを触る時に改めて説明した方が良いな。

太郎くん
太郎くん

そうしてもらった方が良いかもー。
(たぶん今言われても忘れそうだし)

まとめ

フクさん
フクさん

まとめだよ。

  • CANoeでXCP関連の処理を追加する際の方針を確認。
    • 複数のノードにXCP関連処理を記載するので連携が必要。
  • ノード間連携はCANoeシステム変数を使うのが最も手っ取り早い。
    • CANoeシステム変数の追加方法を確認。
      • CAPLからシステム変数にアクセスする際は変数名の目に「@」をつける。

バックナンバーはこちら。

コメント

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