バックナンバーはこちら。
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内から見つけられなかった。」
というエラーっぽいな。
えー!なんでー!
Windows環境で、しかもFMILibraryとかPyFMIで動いてたFMUじゃん!
なんでCANoeで動かないのー?!
簡単に調査開始
CANoeが64bitアプリケーションではなく、32bitアプリケーションだと、
Win64ではなくWin32を要求することにはなると思うけど?
いんや!
64bitアプリケーションのCANoeのはずだよ!
CANoeのメニューのファイルを選んで、左側に出てくる「ヘルプ」をクリックして見て。
CANoeのversionやビルド情報が出てくるはずだから。
出してみたよ。
うーん、確かに64bitのCANoeだな。
FMU内のシグナルをCANoeのシステム変数に割り当てができたわけだから、FMUが読めてないってことは無いと思うんだけど・・・。
FMUのシグナルはFMU内のDescription.xmlに記載された物を参照しているはずだから、システム変数の割り当てはプラットフォームは依存では無いんだろうね。
問題なのは、FMU内部にあるdllがwin32向けであることを要求しているってところだな。
64bitアプリケーションが32bitDLLを必要としているってこと?
うーん、それは考えずらいなー。
まぁちょっと私の方で調べてみよう。
僕は全く見当がつかないから頼んだよー。
まとめ
まとめだよ。
- ついにCANoe上でFMUを動作させる実験を開始・・・したが・・・。
- 謎エラー発生。
- 32bitアプリケーションから呼ばれるFMUの場合はwin32向けFMUである必要がある。
- しかし、今回使用しているCANoeは64bitアプリケーションのため辻褄が合わない。
- なぜこのようなことになっているか要調査。
- しかし、今回使用しているCANoeは64bitアプリケーションのため辻褄が合わない。
バックナンバーはこちら。
コメント