【上流検証】最小構成のモデルベース開発事例 その26【ネットワークMILS⑤】

事例

バックナンバーはこちら

スポンサーリンク

はじめに

前回でCANoeにてネットワークシミュレーションができ状態になった。
今回はCANoe内で定義されているシグナルをSimulinkモデルから更新するための準備となる。

スポンサーリンク

登場人物

博識フクロウのフクさん

イラスト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

スポンサーリンク

前提条件

フクさん
フクさん

今回はSimulinkモデルをいじることにあるのだが。

太郎くん
太郎くん

待ってました!

フクさん
フクさん

その前に、これをやるための前提条件がある。

太郎くん
太郎くん

え?!
なに?

フクさん
フクさん

まず、SimulinkCoderが必要。
そして、CANoeをインストールする時に
MATLABコンポーネント」を追加インストールしている状態であること。

太郎くん
太郎くん

SimulinkCoderは大丈夫だけど、
CANoeの「MATLABコンポーネント」はどっかで見たような・・・。

フクさん
フクさん

入れて無かったら、先に入れておいて。

~10分後~

太郎くん
太郎くん

良し。
「MATLABコンポーネント」はちゃんとインストールできたよ。

スポンサーリンク

ライブラリブラウザでVector CANoeブロックの確認

フクさん
フクさん

MATLABを起動して、Simulinkライブラリブラウザを見てみよう。
下の方にVector CANoeって項目はある?

太郎くん
太郎くん

うん。あったよ。
その中に「CANoe I/O」と「Communication Objects」ってのがあるみたいだけど。

フクさん
フクさん

今回は「CANoe I/O」の方を使用する。

スポンサーリンク

PIDコントローラへCANoeブロック接続

フクさん
フクさん

では、PIDコントローラに対して、
入力側にSignal Inputのブロック、
出力側にSignal Outputのブロックを接続する。
自動モードの切り替えやドライバからの操作は今回は固定値にしておこう。

太郎くん
太郎くん

こんな感じで良い?

フクさん
フクさん

良いね。
そして、各Signal inputをダブルクリックして、
開いたウィンドウの下の方に「Select signal」というのがある。
これを押すとCANoe側で定義されているシグナルが選択できる状態になる。

太郎くん
太郎くん

あー。
これで適切なシグナルを選択していくんだね。
できたよ。

スポンサーリンク

プラントへCANoeブロック接続

フクさん
フクさん

次はプラントの方だけど、
やり方はコントローラの時と一緒だよ。

太郎くん
太郎くん

うん。同じようにやってみる。

太郎くん
太郎くん

これでOKかな?

フクさん
フクさん

OKだね。

スポンサーリンク

SimulinkDLLの作成

フクさん
フクさん

次にCANoeに組み込むためのDLLを作成する。

太郎くん
太郎くん

どうやって?

フクさん
フクさん

特に複雑な手順は無いよ。
まずは「モデルコンフィグレーションパラメータ」を開く。
右側のツリーな中のコード生成を選択。
ターゲット選択の中からcn.tlcを選択する。
そして右下の方のビルドを押す。

太郎くん
太郎くん

押したよ。

太郎くん
太郎くん

押したよ。

フクさん
フクさん

うん。コンパイルされてDLLが完成したはずだよ。
モデルファイルが置いてあるディレクトリから見て、
<モデル名>_CANoe_cn_rtw\release
に、DLLが出来上がってるはず。

太郎くん
太郎くん

あ!あった。
これがSimulinkDLL?

フクさん
フクさん

そう。

CANoeのノードに割り付けができるよ。

フクさん
フクさん

割り付けの前にプラント側も同じ作業をやっておこう。

太郎くん
太郎くん

了解。

~5分後~

太郎くん
太郎くん

プラント側のDLLもできたよ。

フクさん
フクさん

よし、

次はCANoeにそのDLLを組み込む。

スポンサーリンク

CANoeへSimulinkDLLを組み込む

フクさん
フクさん

まず、CANoeのシミュレ―ション設定の中のノードを右クリックすると
設定」ってのが出てくると思う。
これを選択すると「ノード設定」というウィンドウが出て、
その中のタブの「Simulink」を選ぶ。
そして、以下のPathを設定する。

  • Simulinkモデル(slx)
  • モデルビューア情報(ini)
  • RTWモデル(DLL)
太郎くん
太郎くん

DLLは分かるけど他の情報は何?

フクさん
フクさん

私も正確なことは分からないが、
slxはDLLよりもslxの方が更新されていることを検知するため、
iniはCANoe上でSimulinkモデル及び各種データを参照する際の位置情報を保持するため、
のものと思ってる。

太郎くん
太郎くん

まぁ、とりあえず設定しておけば良いね。

フクさん
フクさん

そろそろ、しゃべり疲れてきたんで、

動作させるのは次回かな。

太郎くん
太郎くん

えー!

これから面白くなりそうなのに。

スポンサーリンク

まとめ

フクさん
フクさん

まとめだよ。

  • CANoeに組み込むSimulinkDLLを作成するにはSimulinkCoderとCANoeのMATLABコンポーネントが必要。
  • Simulinkモデルの入出力にCANoe IOのSingnal Input/Outputを接続してSignalを読んだり更新したりできる。
  • SimulinkDLLはCANoeの各ノード毎に設定できる。

バックナンバーはこちら

コメント

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