在 MATLAB 里打开记录仪数据
把 MF4 总线记录文件里的 CAN 信号作为普通变量载入 MATLAB,不需要读取 MDF 文件的工具箱。
把 MF4(MDF4)总线记录转成 MATLAB .mat 或 CSV,用你的 DBC 解码,不需要 CANape 或 CANoe。
第 1 步,共 4 步 · 上传日志
把 MF4 文件拖到这里
或.mf4 文件最大 150 MiB,一次最多 5 个。转换在你的浏览器里完成,文件不会离开你的电脑。
MF4(MDF4)是数据记录仪和测量工具写出的 ASAM 标准格式。里面保存的是原始 CAN 数据时,必须先用 DBC 解码,信号才可读。
把 MF4 总线记录文件里的 CAN 信号作为普通变量载入 MATLAB,不需要读取 MDF 文件的工具箱。
把解码后的 CAN 信号变成一张平面表,用于电子表格、看板,或附在缺陷单里。
不是每个人都有 CANape、INCA 或 MDF4 查看器,而 MAT 和 CSV 文件到处都能打开。
from scipy.io import loadmat
d = loadmat('drive.mat', squeeze_me=True,
struct_as_record=False)
# fields: time, value, unit
speed = d['ESP_VehicleSpeed']用 SciPy 或 pandas 读取解码后的信号,做统计、回归分析,或生成路试数据的训练集。
一共四步。MF4 文件和 DBC 文件都留在你的浏览器里。
拖入最多五个 .mf4 文件。每个文件都会被扫描 CAN 总线记录数据,并列出其中的通道。
MF4 里的报文是原始的,所以信号需要 DBC。把每个通道连到它自己的数据库,可以把 DBC 拖到通道上,也可以继续添加文件。
MAT 为每个信号存一个结构体,适合 MATLAB;CSV 是一张表,适合 Excel 和 Python。
报文用你的 DBC 解码,每个 MF4 各自保存成 .mat 或 .csv。
只写入用你的 DBC 解码出来的信号,保留全部采样点,时间以秒为单位。
| time_s | time_us | channel | message | signal | value | unit |
|---|---|---|---|---|---|---|
| 0.004608 | 4608 | 1 | ESP | VehicleSpeed | 42.5 | km/h |
| 0.014595 | 14595 | 1 | ESP | VehicleSpeed | 42.6 | km/h |
| 0.024611 | 24611 | 2 | VCU | DrvTorReq | 118 | Nm |
每个信号是一个名为“报文名_信号名”的结构体,带着自己的 time 和 value 数组,unit、message、channel 随它一起保存。info 结构体记录 MF4 及其通道。
一张平铺的表,列为 time_s、time_us、channel、message、signal、value、unit,每个采样点一行,在 Excel 或 pandas 里很容易筛选。
这个工具解码的是原始 CAN 报文。已经是物理值的测量通道(例如标定工具记录的 ECU 信号)不会导出;不在 DBC 里的报文也会跳过。
一次五个 MF4,每个最大 150 MiB。CSV 最多 200 万行;录制很长就用 MAT,它没有行数限制。
一份带 CAN 总线记录的 MF4,以及每条总线对应的 DBC。添加文件,关联每个通道,选 MAT 或 CSV 后转换。全程在浏览器里运行,结果从页面下载。
保存了原始 CAN 或 CAN FD 报文(也就是总线记录)的 ASAM MDF 4.x 文件。如果文件里只有已经是物理值的测量信号,就没有可解码的报文。
是。MDF4 是 ASAM 的测量数据格式第 4 版,.mf4 是它的文件扩展名。
不会。MF4 和你的 DBC 都在浏览器标签页里读取、解码并写出。
每个通道关联一个 DBC。一个通道有两个 DBC 时,每一帧交给最先关联且定义了其 ID 的那个,第二个只负责其余的 ID,不会合并也不会重复。
最常见的原因是 DBC 不属于那条总线,或者某个通道没有关联 DBC。请为每个通道关联定义了其报文的数据库。只含已解码信号的 MF4 里没有 CAN 报文可转换。
可以,选择 CSV。每个 CSV 上限 200 万行,较长的录制更适合 MAT。每个 MF4 最大 150 MiB,一次五个。
做完这一步之后常见的下一步,每个都有独立页面。