报文捕获基础:新建与配置Logging模块

各位工程师朋友,今天我们来聊聊Logging模块。说实话,很多新手一上来就点Start Logging,觉得能录数据就行。但我告诉你,这样录出来的数据,后期分析时能把你逼疯。

我个人习惯是,先花5分钟把Logging模块配置好。这5分钟,能省下后面2小时的筛选时间。你想想看,值不值?

新建Logging模块

在CANalyzer里新建Logging模块,其实就三步:

  1. 在Measurement Setup窗口里,右键点击任意位置
  2. 选择"Insert Logging Block"
  3. 把它拖到你想要的位置

嗯,这里要注意:Logging模块的位置决定了它记录哪些数据。如果你把它放在CANoe硬件的后面,那它录的就是经过硬件处理后的数据。如果你放在最前面,录的就是原始总线数据。

重要提醒:我建议把Logging模块放在Measurement Setup的最前端。这样能保证你录到的是最原始、最完整的报文。我在项目中遇到过,有人把Logging放在Filter后面,结果想回看被过滤掉的报文时,发现根本没录到。那叫一个后悔。

触发条件设置

触发条件,说白了就是告诉CANalyzer:「嘿,从这个时候开始录,到那个时候停。」

我个人常用的触发方式有这几种:

触发类型 适用场景 我的经验
立即触发 简单录制,不需要筛选 适合调试初期,先看看整体情况
信号触发 特定事件发生时开始录制 我最常用的一种。比如某个DTC置位时触发
错误帧触发 出现错误帧时自动开始录 排查总线问题时特别好用
手动触发 按快捷键开始/停止 适合现场测试,灵活度高

设置触发条件时,我建议你打开Trigger Configuration窗口。这里有个小技巧:你可以设置Pre-trigger时间。比如设成2秒,那触发事件发生前2秒的数据也会被录下来。为什么会这样?因为很多时候,导致问题的原因在触发事件之前就已经发生了。

我的小技巧:Pre-trigger时间我一般设3-5秒。太短了可能漏掉关键信息,太长了文件会很大。这个值要根据你的测试场景来调。

文件存储格式选择:ASC vs BLF

这个问题,我几乎每次培训都会被问到。ASC和BLF,到底选哪个?

先说说它们的区别:

特性 ASC BLF
文件大小 较大(文本格式) 较小(二进制格式)
可读性 可以用记事本打开看 需要专用工具打开
解析速度 较慢 较快
兼容性 几乎所有工具都支持 Vector工具生态内支持好

我个人习惯是这样的:

  • 调试阶段用ASC:方便快速查看,用文本编辑器就能搜关键词
  • 正式测试用BLF:文件小,解析快,而且支持更多高级特性

我曾经犯过一个错误:有一次做耐久测试,录了整整8小时的ASC文件。你猜多大?将近5个GB!后来用BLF重录了一遍,只有800MB。从那以后,长时间测试我坚决用BLF。

避坑指南:如果你需要把数据发给客户或同事,先问清楚对方用什么工具。有些老版本的工具打不开新格式的BLF文件。我曾经就因为这个被客户骂了一顿...嗯,从那以后我发文件前都会先确认一下。

Logging模块的高级配置

除了上面这些基础设置,Logging模块还有一些高级选项。我挑几个常用的说说:

  • 文件分割:可以按时间或文件大小自动分割。比如每1小时生成一个新文件,或者每500MB切一个。这样文件不会太大,也方便管理。
  • 循环录制:设置最大文件数,满了以后自动覆盖最旧的文件。适合长时间无人值守的测试。
  • 过滤配置:可以在Logging模块里直接加Filter,只录你关心的报文。但记住我前面说的,要谨慎使用。

好了,关于Logging模块的基础配置,今天就聊到这儿。下一章我们会深入讲讲Filter的使用技巧,包括怎么用CANdb信号来过滤,以及一些高级的过滤表达式。到时候见!