【FMI/FMU】最小構成のMBD事例 第2章 その255【CANoe⑧】

【FMI/FMU】最小構成のMBD事例 第2章 その255【CANoe⑧】 事例
【FMI/FMU】最小構成のMBD事例 第2章 その255【CANoe⑧】

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

はじめに

前回はCANoeのデータベースインポートウィザードを使用して見た。
dbcファイルが存在し、ネットワークノード含めて定義されていれば、CANoe上で自動的にノードの割り当てが簡単に行える。
さらにCANoe.IL機能によりノード毎に定義した送信CANメッセージが指定周期で送信まで出来ている状態。

今回はFMUのインポートを試してみる。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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のデータベースインポートウィザードでCANoe内にノードを自動生成させたところだね。

フクさん
フクさん

すでにCANメッセージの送信が出来る状態になっており、
CANoe.IL機能のおかげでシグナル単位の読み書きだけでノード間のやり取りが出来る状態になっていると言える。

太郎くん
太郎くん

じゃーそのシグナルをCAPLで叩いてなんかする感じ?

フクさん
フクさん

それでもOKだが、
ここらへんでFMUのインポートを試しておこう。

太郎くん
太郎くん

あー、CANのシグナルとFMUの入出力が紐づくからだね?
これらが揃って無いとCAPLの書きような無い気がするもんね。

フクさん
フクさん

正解。
FMUが無い状態だとCAPLの実装がどうしても中途半端になってしまう。

FMUのインポート

フクさん
フクさん

じゃ、さっそくFMUをインポートしてみよう。
手順としては以下になる。

  • CANoe上部のメニューの環境を選択
  • その他のカテゴリの中の「ツールの連結」のプルダウンの中から「Function Mock-up Interface(FMI)」を選択。
  • 開いたウィンドウの「設定済みFMU」のところで右クリックして「追加」をクリックしてインポートしたいFMUを選択。
  • 一般設定のステップサイズは0.001にしておく。
  • 「設定済みFMU」にある各FMUを選択してInput、OutputのシグナルをアクティブにしてCANoeないのシステム変数と紐づける。
太郎くん
太郎くん

・・・。

太郎くん
太郎くん

毎度のことなんだけど・・・。

フクさん
フクさん

はいはい。
図解ね。

CANoeへのFMUインポート概要、CANoe、環境、ツールの連結、Function Mock-up Interface(FMI)、設定済みFMU、追加、FMUを選択、Input、Output、モデル変数、CANoeシステム変数、データタイプ、アクティブ、一般設定、ステップサイズ
太郎くん
太郎くん

CANoeのシステム変数に紐づけるてことだけど、
CAPLからFMUにアクセスする際はこのシステム変数を読み書きすればOKってこと?

フクさん
フクさん

そうそう。
システム変数を読み書きすればFMUのInput、Outputにアクセスするのと同じ意味になる。

太郎くん
太郎くん

これはむっちゃ楽なんじゃない?

フクさん
フクさん

そうだねー、
FMILibraryやPyFMIと比べると遥かに楽だし、汎用性が高いと言える。

太郎くん
太郎くん

(最初からこっちをやれば良かったんじゃ・・・)

まとめ

フクさん
フクさん

まとめだよ。

  • CANoe.IL機能でシグナルを簡単に叩けるようにはなったが、FMUとの接続が無いとCAPLを実装してもイマイチ。
    • というわけでFMUインポートから実施。
  • FMUインポートの手順確認。
    • 最終的にはCANoeシステム変数と紐づいて、そのシステム変数を読み書きすることで結果としてFMUのInput、Outputにアクセスできる。

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

コメント

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