R2022b で "blfread" コマンドが "Index exceeds the number of array elements(配列要素数を超えるインデックス)" エラーで失敗するのはなぜですか?
7 views (last 30 days)
Show older comments
MathWorks Support Team
on 20 Jan 2026
Edited: MathWorks Support Team
on 20 Jan 2026
特定の .BLF ファイルに対して、MATLAB R2022b で "blfread" コマンドが "Index exceeds the number of array elements" というエラーで失敗します。同じファイルは R2019b では問題なく動作しました。
この問題の原因は何ですか?
Accepted Answer
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 バイトのデータ長制限に準拠するようにしてください。
0 Comments
More Answers (0)
See Also
Categories
Find more on Vehicle Network Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!