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

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

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

はじめに

前回は仮想HILS向けのCAPLコード公開。
イベントハンドラとその内部コードを記述したのみ。
このようにシンプルに書くのがCAPLの記述方法のコツと言える。

おおよそ準備が整ったので、実際に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のシミュレーションを開始するよー。

太郎くん
太郎くん

・・・。

太郎くん
太郎くん

あ、あれ??

フクさん
フクさん

どうした?

太郎くん
太郎くん

なんか妙なエラーがでた・・・。

FMU関連の謎のエラー

太郎くん
太郎くん

メッセージウィンドウに出たエラーとしてはこんなのだけど・・・。

システム:Motor:Could not change to the DLL directory C:\[ユーザディレクトリ]\AppData\Local\Temp\FMI\5588\Motor.fmu\binaries\win32\
システム:Motor: The FMU contains no binary for this platform.
太郎くん
太郎くん

一応、画面のキャプチャーもしておいた・・・。

CANoe FMUエラーメッセージ、システム:Motor:Could not change to the DLL directory C:/[ユーザディレクトリ]/AppData/Local/Temp/FMI/5588/Motor.fmu/binaries/win32/、システム:Motor: The FMU contains no binary for this platform.
フクさん
フクさん

ふーむ。
どうやら、
「CANoeが要求しているプラットフォームに対応したライブラリがFMU内から見つけられなかった。」
というエラーっぽいな。

太郎くん
太郎くん

えー!なんでー!
Windows環境で、しかもFMILibraryとかPyFMIで動いてたFMUじゃん!
なんでCANoeで動かないのー?!

簡単に調査開始

フクさん
フクさん

CANoeが64bitアプリケーションではなく、32bitアプリケーションだと、
Win64ではなくWin32を要求することにはなると思うけど?

太郎くん
太郎くん

いんや!
64bitアプリケーションのCANoeのはずだよ!

フクさん
フクさん

CANoeのメニューのファイルを選んで、左側に出てくる「ヘルプ」をクリックして見て。
CANoeのversionやビルド情報が出てくるはずだから。

太郎くん
太郎くん

出してみたよ。

CANoeのビルド情報、CANoe.ISO11783.J1939.CANopen.CAN.LIN.MOST.FlexRay.J1587.Ethernet.Car2x.AFDX.A429.AMD.XCP.Scope/pro(表示のみ)、Program version:「Build 12.0.77(64bit)」
フクさん
フクさん

うーん、確かに64bitのCANoeだな。

太郎くん
太郎くん

FMU内のシグナルをCANoeのシステム変数に割り当てができたわけだから、FMUが読めてないってことは無いと思うんだけど・・・。

フクさん
フクさん

FMUのシグナルはFMU内のDescription.xmlに記載された物を参照しているはずだから、システム変数の割り当てはプラットフォームは依存では無いんだろうね。
問題なのは、FMU内部にあるdllがwin32向けであることを要求しているってところだな。

太郎くん
太郎くん

64bitアプリケーションが32bitDLLを必要としているってこと?

フクさん
フクさん

うーん、それは考えずらいなー。
まぁちょっと私の方で調べてみよう。

太郎くん
太郎くん

僕は全く見当がつかないから頼んだよー。

まとめ

フクさん
フクさん

まとめだよ。

  • ついにCANoe上でFMUを動作させる実験を開始・・・したが・・・。
    • 謎エラー発生。
  • 32bitアプリケーションから呼ばれるFMUの場合はwin32向けFMUである必要がある。
    • しかし、今回使用しているCANoeは64bitアプリケーションのため辻褄が合わない。
      • なぜこのようなことになっているか要調査。

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

コメント

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