【サンプルアプリ】 CAN Frameの途絶をWindowsアプリで検出
CANTOOL A1のSDK機能を利用したWindowsサンプルアプリを公開します。
以下からダウンロードしてください。
FrameMonitorApp_AllData_sample.zip
ECUの環境試験などでECU処理停止やリセットが発生していないかを確認する際、手作業でログを解析して異常がないかを調べるようなことはないでしょうか。専用のアプリケーションを利用すると異常発生ログを残すことで手間なく試験結果を確認することができます。
CAN Frameの途絶を検出し、本体LEDおよびWinodwsの画面に表示します。
①CAN1 バスのFrame(0x001)が数十ms以上停止すると...
②Windowsアプリケーションで判断し、通信異常を検出・表示します。
パソコン側で時間をカウントする方式ではCANTOOL A1とのタイムラグにより精度が出ませんが、
このサンプルアプリは受信CAN Frameのタイムスタンプを使用しており高精度です。
※ただし途絶を監視するフレーム以外もCAN Busに流れている必要があります。
※複数のECUが接続されたCAN BusにつながったECUが試験対象となるような環境を想定しています。
※もちろんCANTOOL A1が試験対象以外のECUをエミュレートしてあげることも可能です!
他にも、状態ロギング、ログ解析、試験レポート作成、定期的な自動Diagnostic確認や、CANバス高負荷変動の機能など評価業務改善に役立つ機能を追加することも可能です。
SDKを利用した専用アプリケーション開発に興味がありましたらサポートいたしますのでお気軽に弊社にご相談ください。
●処理概要
----------------------------------------------------------------
以下が制御部の処理です。
・CAN IDからFrameID(CANTOOL A1内部管理ID)を取得
・FrameIDから対象のサイズを取得
・ループ処理
・CANTOOL A1で取り扱うすべての送受信ログ取得
・判定対象フレームの場合
・判定対象フレームのタイムスタンプを変数に記録
・CAN0の受信フレームの場合
・判定対象フレームのタイムスタンプと受信フレームのタイムスタンプを比較
・40ms以上経過の場合
・LED点灯
・判定対象フレーム状態を「途絶」に変更
・40ms以内の場合
・LED消灯
・判定対象フレーム状態を「正常」に変更
・10msスリープ
上記の「判定対象フレーム状態」をGUI側から判定し画面に表示します。
----------------------------------------------------------------
●使用API
Rmt_ConvertXID2FrameID()
Rmt_GetDataALL()
Rmt_SetLED()
●使い方
1.CANTOOL A1のCAN0とCAN1を接続する。
2.exeフォルダにあるSample.exeを実行する。
SDKマニュアル通り設定ができていればCANTOOL A1合わせて起動されます。
3.対象のCAN Frameを途絶させるとサンプルアプリのフレーム状態が通信異常を示します。
「周期Frame制御ツール」フォルダのツールを使用いただくと個別にFrameの停止ができます。
CANのコネクタを抜く確認方法では時間のカウントができなくなるため期待通りに動きません。
●製品紹介
「ECU開発支援ツール CANTOOL」に関する詳細は以下をご参照ください。
https://itec.hankyu-hanshin.co.jp/product/hardware/cantool/
●注意事項
本サンプルアプリケーションはあくまでサンプルとして提供するもので、動作を保証するものではありません。
ソースコードやVisualStudio用のプロジェクトも同梱しております。
VisualStudio2019で製作・動作確認しております。
ご自由に改変してご利用ください。