モデルベース開発

事例

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

仮想HILS向けCAPLコード公開。イベントハンドラは関数先頭に「on」が付く。その後ろに以下が続く。start:シミュレーション開始。timer:タイマ。signal:シグナル更新。CAPLのコツはシンプルに書く。複雑な処理はライブラリに逃がすなどがコツ。
事例

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

FMUとCANシグナルの紐づけのためついにCAPLに手を付け始める。CAPLではイベントハンドラを使うことが多い。イベントはおおよそ以下。シミュレーション開始。タイマ。CAN受信。シグナル更新。ネットワークノード毎にCAPLを設定できるので、ノードの役割を意識する必要がある。
事例

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

FMUの中に指令器もあったが、CANoeから指令値を変えられた方が便利なのでシグナルジェネレータ機能を使用する方針となる。dbcファイルで定義したシグナルに対して自由は波形を載せることが可能な機能。シグナルジェネレータで台形波を作成しTargetシグナルとして出力できるように設定。さまざまは波形を設定可能。
事例

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

CANoe.IL機能でシグナルを簡単に叩けるようにはなったが、FMUとの接続が無いとCAPLを実装してもイマイチ。というわけでFMUインポートから実施。FMUインポートの手順確認。最終的にはCANoeシステム変数と紐づいて、そのシステム変数を読み書きすることで結果としてFMUのInput、Outputにアクセスできる。
事例

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

dbcファイルが出来上がったのでCANoeのデータベースインポートウィザードを使ってみた。dbcを読み込むことでdbc内で定義されているネットワークノードをCANoeに割り当てることが可能。生成されたノードはdbcで定義されたCANメッセージを同じく定義された送信周期で送信可能。CANoe.IL機能の一端。
事例

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

CANdb++エディターで各種定義を実施。シグナル、メッセージ、ノードの順番で定義していく。メッセージの周期時間は送信周期を示す。単位は[ms]。属性の「GenMsgCycleTime」パラメータを修正することで変更可能。CANoe.IL機能を使用する時に生きてくるパラメータ。
事例

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

dbcファイルについて簡単に説明。CANメッセージとそれに載せるシグナルだけでなく、ネットワークノードの定義もできる。ネットワークノードを定義しておくと、CANoeのインポートウィザードでノードの自動生成をしてくれる。dbcファイルを作成開始。CANeb++エディターを使用。プロトコルの設定まで実施。
事例

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

CANoeでFMU import&動作実験の全体構成提示。恒例のネットワーク構成と論理構成。FMU間の各信号の接続はCAN経由で行う。実は以前SimulinkDLLをCANoeで駆動させた時と近似の構成。SimulinkDLLの代わりにFMUになっただけ。
事例

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

CANoeの仮想HILS化への実験ロードマップ提示。大雑把にはFMU importとXCPマスタの2つ。FMU importの実験をやってからXCPマスタの実験の流れ。最初はXCPを使用せずにCANoeのシミュレーションバスを使用したFMU間連携をさせてみる。
事例

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

CANoeで仮想HILSの実現が可能かを検討する間に現行の仮想HILSの機能を列挙した。FMU import&実行。たぶんOK。でも要確認各種信号のグラフ表示&CAN受信。間違い無くできる。XCPマスタ本当のXCPをするなら追加ライセンスが必要。しかし、CAPLを駆使すれば今回の目的は達成できそう。