バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回は、ついについにCANoe上でFMUを動作させる実験を開始・・・したが・・・。
謎エラーが発生。
CANoe64bitアプリなので64bit向けFMUを読み込ませればOKなはずだが、
どうも32bit向け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がFMUを読み込めない原因は分かった?

まぁ一応わかった。
と言ったところかな。
調べても分からないものも多いので、仮説も含まれているけど。

仮説が入るのは仕方ないよねー。

結論としては以下かな。
- CANoe内部はユーザインターフェース部とランタイムカーネル部に分かれている。
- ユーザインターフェース部は64bitアプリ、ランタイムカーネル部は32bitアプリ。
- ユーザインターフェース部とランタイムカーネル部はTCP/IPで通信してる。
- FMUを読み込んで処理するのはランタイムカーネル部。
- よって、FMUはwin32向けでなければならない。

なんか予想以上にややこしい話になってた・・・。

ただ、CANoeのVersionにも依存しているようで、
今回我々が使用しているversion12だと上記の構成だが、
version13以降だとランタイムカーネルも64bitアプリになってる可能性は高いな。
よって、win32向けFMUを作るか、version13以降のCANoeに変えるか。
だね。

うーん、CANoeのversionを入れ変えるのは僕の一存では難しいなぁ。

じゃー、win32向けFMUを作成する。
ってことになるね。
調査結果の明細

念のため、今回の調査結果の詳細を教えて欲しいかな。

まぁまぁボリュームあるよー。
調べるの大変だったんだからー。

まぁそこはうまくかいつまんで。

まずはCANoeの内部構成の予想図を見せよう。


さっき説明してくれた話だよね。
ランタイムカーネル側が割とリアルタイムな処理を担当してるってことかな?

おそらくそうだろう。
まぁこの仮説を元に裏付け調査や、
なぜこのような構成を取っているかの理由の推測ってのもやってる。
次回はこれらの話をしよう。
まとめ

まとめだよ。
- CANoeが32bitFMUを要求する理由の調査結果。
- CANoe内に2つのアプリケーションが動作しているもよう。
- 描画担当で64bitプロセス。
- 計測/演算担当の32bitプロセス。
- CANoe内に2つのアプリケーションが動作しているもよう。
- FMUは計測/演算担当のプロセス側が読み込んでるっぽい。
- CANoeの内部構成についていろいろ考察したので次回説明予定。
バックナンバーはこちら。
コメント