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

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

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

はじめに

CANoeの内部プロセスとして描画プロセスと計測/演算プロセスが存在することと、
プロセス間通信がTCP/IPを使用していることのの裏付けの調査結果を確認。

引き続き調査結果の話と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内のTCP/IPによるプロセス間通信の様子

太郎くん
太郎くん

CANoeの中の各プロセスがTCP/IPでプロセス間通信しているって前回言ってたけど、
具体的どうやってるのかって確認方法ってあるの?

フクさん
フクさん

TCP/IPであれば可能だね。

太郎くん
太郎くん

んー?
なんか方法があるってこと?

フクさん
フクさん

Wiresharkでキャプチャできるはずだよ。

太郎くん
太郎くん

プロセス間通信だから具体的なイーサネットインターフェースとか無いけど見れるものなの?

フクさん
フクさん

物理的なインターフェースは無いけど、
論理的なインターフェースとしてはBSD-loopbackとかUnixドメインってことにはなるね。

太郎くん
太郎くん

ほう。
論理的なインターフェースって考え方もあるのか。

フクさん
フクさん

まぁ実際にキャプチャしてみたから、それを見てみよう。

CANoe内のプロセス間通信をキャプチャ

フクさん
フクさん

WiresharkでイーサネットインターフェースをBSD-lookbackを指定してキャプチャした結果が以下。
TCPポートは前回のnetstatで確認した2809、2810、3001が対象だな。
まぁ3001は見当たらなかったけど。

CANoeのプロセス間通信をWiresharkでキャプチャ、Wiresharkでキャプチャ(Eth-I/FはBSD-loopback、ADDR_TYPE : Unixドメイン)、※ さすがに電文仕様はわからない。、Source Port:51772、Destination Port:2809
太郎くん
太郎くん

あ、本当にキャプチャできるんだ!

フクさん
フクさん

キャプチャはできたけど、さすがに電文仕様まではわからないね。
少なくともかなり速いレート(msオーダー)で通信しているってことだけが分かる。

太郎くん
太郎くん

まぁCANoeのハックするのが目的じゃないし、
本当にTCP/IPでプロセス間通信をしている裏付け情報としては十分だね。

CANoeの設計思想

太郎くん
太郎くん

あと、TCP/IPを使ってプロセス間通信をしているのはCANoeの設計思想に依存しているようなこといってたけど、そこらへんの話はどうなるの?

フクさん
フクさん

おそらく以下の構成が取れることを想定していると思われる。

CANoeの連携機能、ユーザインターフェース(64bitプロセス)、ランタイムカーネル(32bitプロセス)、VN89XX(Windows Embedded)、TCP/IP
太郎くん
太郎くん

ほう。
ユーザインターフェースとランタイムカーネルが同一のCANoeじゃないパターンを想定しているってことか。
それも同一PCである必要も無いと。

太郎くん
太郎くん

特に右側なんかはPCですらないパターンだね。

フクさん
フクさん

こういう構成を想定するとTCP/IPでプロセス間通信させた方が汎用性が上がるんだよね。
そういう意味ではうまく設計されたツールと言えるだろう。

で、結局FMUはどうするの?

太郎くん
太郎くん

で、元々の問題のFMUはどうしようか?

フクさん
フクさん

CANoeのVersionを変えられないならWin32向けのFMUを作るしかないだろうね。
ただ、Win32向けのFMUを作るにはOpenModelicaの32bit版じゃないと作れないと思う。
さらにOpenModelicaの32bit版と64bit版を両方インストールするとライブラリの参照が後から入れた方に依存するみたいだから、結果として共存はできない

太郎くん
太郎くん

じゃー、一旦OpenModelica64bit版をアンインストールして、32bit版をインストールしてFMUを作り直すってことで。
次回までにやっておくねー。

まとめ

フクさん
フクさん

まとめだよ。

  • CANoe内のTCP/IPによるプロセス間通信の様子を確認。
    • WiresharkでBSD-loopbackをキャプチャ。
    • netstatで確認したポートをキャプチャ。
  • CANoeの設計思想予想。
    • ユーザインターフェースとランタイムカーネルは別PC、別プラットフォームでも動作する思想。

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

コメント

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