MDF 应用故障排除
读取 MDF 文件时出错
问题
当您尝试使用 mdfRead
函数从 MDF 文件中读取数据时,可能会看到错误。
可能的解决方案
读取 MDFDatastore 时出错
问题
当您尝试使用 read
函数从 MDFDatastore 读取数据时,可能会看到错误。
可能的解决方案
MDF 数据存储的每个文件中要读取的那些通道必须具有相同的名称,并且属于同一通道组。请确保您正在读取的通道在数据库各 MDF 文件中的一致性。
找不到特定通道
问题
您可能在 MDF 文件中找不到,也无法读取感兴趣的通道。
可能的解决方案
要识别 MDF 文件中的通道,请使用
mdfChannelInfo
函数。
无法保存 MDF 附件
问题
mdfSaveAttachment
函数无法保存附加到 MDF 文件的文件。
可能的解决方案
mdfSaveAttachment
函数只能处理嵌入的附件;不能保存外部文件,因为它们已在磁盘上。如果附件不存在,请与 MDF 文件的提供方核实。
无法读取数组通道结构体
问题
Vehicle Network Toolbox™ 不支持数组通道结构体。
可能的解决方案
要读取这些通道,您必须编写一个复合函数来重新打包数据。
无法读取 MIME 和 CANopen 数据
问题
读取具有 MIME 或 CANopen 数据的 MDF 文件通道会生成错误。
可能的解决方案
Vehicle Network Toolbox 不支持 MIME 和 CANopen 数据。
表列名称与通道名称不匹配
问题
读取 MDF 文件时,输出时间表的列名称对应于文件中的通道名称,但它们可能不同。表列名称必须符合 MATLAB 变量名称的要求,因此会被修改以限制其大小和字符。大多数不支持的字符会转换为下划线。
可能的解决方案
返回的时间表保留通道的顺序。因此,您可以通过数值索引来访问表中的数据。
通道的原始名称嵌入在时间表属性中。例如:
m = mdf('File01.mf4'); tt = read(m); t1 = tt{1}; t1.Properties.VariableDescriptions
ans = 1×2 cell array {'Signed_Int16_LE_Offset_32'} {'Unsigned_UInt32_LE_Primary_Offset_0'}