PyFMI

事例

【PyFMI】最小構成のMBD事例 第2章 その144【CAN連携⑧】

GUI(tkinter)にチェックボックス追加。 「can rcv」というチェックボックス。 チェック時に受信有効になる想定。 CAN受信にチェックボックス判定追加。 if文を追加したのみ。 バス初期化、チェックボックス生成は__init__メソッドに追加予定。 CAN受信はFMU処理のタイマハンドラ内に追加予定。
事例

【PyFMI】最小構成のMBD事例 第2章 その143【CAN連携⑦】

CAN受信用にモード切替のUIが必要。 チェックボックスで実施予定。 CAN受信のimport、バス初期化はCAN送信側といっしょ。 実際の想定受信コードも記載。 スレッドを使うことも可能だが、タイムアウトを0秒にするポーリング型を想定。 とりあえず、負荷に影響を与えない&シンプルな実装にする。
事例

【PyFMI】最小構成のMBD事例 第2章 その142【CAN連携⑥】

Python-CANで送信確認。 送信は成功している。 BusMasterで確認。 送信状況はモニタできている。 100ms周期より若干上振れしている。 Sleepで周期を作っているため、どうしても上振れ方向になる。 よって、今回は気にせず指令器としてはOKとする。
事例

【PyFMI】最小構成のMBD事例 第2章 その141【CAN連携⑤】

Python-CANで指令値送信のコードを提示。 CAN関連の前回までの復習の話のまんま。 利便性を上げるためにコマンドライン引数を取り込む機能追加。 送信周期変更と繰り返し処理切替を追加。 動作確認はBusMasterでモニタすることで実施予定。 実際のCANだと対抗機が必要だがVirtual CAN Busでは不要。
事例

【PyFMI】最小構成のMBD事例 第2章 その140【CAN連携④】

バックナンバーはこちら。 はじめに 前回はCAN経由で渡した情報やPython-CANのインストール、importの話。 今回はバス初期化、送信の仕方の復習になる。 一応、同じ話は過去記事でも扱ってはいる。 登場人物 博識フクロウのフクさん...
事例

【PyFMI】最小構成のMBD事例 第2章 その139【CAN連携③】

CAN経由で渡したい情報として指令値を仮定義。 Ramp Up、Ramp Down、Stepなどの組み合わせ Python-CANの復習。 インストールの話。 pip使えばOK。 importの話。 canをimportすればOK。 以降はバス初期化、送受信などの話が続く予定。
事例

【PyFMI】最小構成のMBD事例 第2章 その138【CAN連携②】

CANをHILSのインターフェースにするには本来では専用のインターフェース装置が必要。 しかし、今回はVector社のXL Driver Library付属のVirtual CAN Busを使用。(無償) 実験構成は指令値をCANで指定。 前回までのtkinterに対して追加する。 入力パターンが増えるイメージ。
事例

【PyFMI】最小構成のMBD事例 第2章 その137【CAN連携①】

さらなるHILSっぽさを求めて外部入力を検討。 ECUのインターフェースを想定すると分かり易い。 インターフェースは様々ではあるが、とりあえずCANであれば融通が利きそう。 CANからADC、DAC、PWMへの変更はそれほど大変ではない。 よって、今後はCANをインターフェースの前提として話を進める。
事例

【PyFMI】最小構成のMBD事例 第2章 その136【リアルタイム描画㉚】

マルチプロセス化実験コードを実際に動作させてみた。 一応負荷は下がったが、それでも50ms間の負荷がかかるポイントが散見される。 結果としてはPipeのプロセス間通信のオーバーヘッド。 他のプロセス間通信でもこのオーバーヘッドはそれほど変わらない。 今後の実験は通常のシングルプロセス版のコードをベースとする。
事例

【PyFMI】最小構成のMBD事例 第2章 その135【リアルタイム描画㉙】

マルチプロセス化した実験コードを提示。 基本的な流れは一緒だが、Pipe関連のコードが増えた。 deque毎にsend_bytesで送信。 Scaleの入力やsin波生成指示を描画のメインプロセスからFMUのサブプロセスに送ってる。 sin波をサブプロセス側にしないと、結局描画負荷でsin波が崩れる。