R2022b で "blfread" コマンドが "Index exceeds the number of array elements(配​列要素数を超えるイン​デックス)" エラーで失敗するのはなぜですか?

7 views (last 30 days)
特定の .BLF ファイルに対して、MATLAB R2022b で "blfread" コマンドが "Index exceeds the number of array elements" というエラーで失敗します。同じファイルは R2019b では問題なく動作しました。
この問題の原因は何ですか?

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 20 Jan 2026
Edited: MathWorks Support Team on 20 Jan 2026
原因:
このエラーは、.BLF ファイルにデータ長が 8 バイトを超える CAN フレームが含まれているために発生します。CAN プロトコルでは、標準 CAN フレームの最大データ長は 8 バイトです。しかし、該当の .BLF ファイルには 8 バイトを超えるフレームが含まれており、これはおそらく CAN FD フレームが標準 CAN フレームとして記録されたことによるものです。 MATLAB R2021b より前のリリースではこの状況をチェックしていなかったため、ファイルは問題なく読み込まれていました。R2021b 以降はより厳格なエラーチェックが導入され、今回のエラーが発生するようになりました。このチェックは R2024a で再び削除されました。
回避策:
DBC ファイルまたは計測手順を見直して、プロトコルとメッセージ長が正しく設定され、標準 CAN フレームのデータ長が 8 バイトを超えないようにしてください。 
恒久対策:
計測環境を修正し、CAN FD フレームを標準 CAN フレームとして記録しないようにするか、すべての標準 CAN フレームが 8 バイトのデータ長制限に準拠するようにしてください。

More Answers (0)

Tags

No tags entered yet.

Products


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!