0 前言
在日常项目中,我们时常需要回放Log来分析问题所在,使用频率最高的方法一个是直接将Log拖进Trace窗口内进行查看,或者使用Measurement Setup窗口进行离线回放。但是这些方法都是离线分析,有些时候客户端场景并不好复现或者客户不认可复现方法,这时就需要用到CANoe中在线回放这个强大的功能了,本文将介绍离线回放和在线回放的两种方法的特点,以及使用方法。
1 离线回放与在线回放
离线回放是我们大多数时会使用的一种方法,这种方法因为便捷简单,同时不管Log的数据大小,都可以在最短的时间内将内容显示在Trace窗口中,因此我们也可以叫这种方法为快回放。
1.1 离线回放 offline
离线回放有两种办法:
a.将内容直接拖进Trace窗口中,这种方法简单粗暴,适合一些简单的问题分析,但是这种方法无法从graphic窗口中观测信号的变化,而且Log文件数量比较多的时候会比较麻烦。
b.使用Measurement Setup窗口进行离线回放,这种办法可以同时回放多个文件,并且可以在graphic窗口内看到曲线的变化,在文件过大时,可以选择想要回访的时间区间
还可以通过设置Step,来一段一段的回放Log中的内容,以便我们分析。
1.2 在线回放 online
人如其名,使用这种方法我们可以得到ECU的实时反馈,让我们清晰的知道故障是否是因为环境原因造成的,这个方法需要使用到CANoe中的Replay模块。
在Replay的配置中,我们可以看到这里不但可以选择它的回放Step,还可以选择回放的条件,通道配置等等内容。但需要注意的是,使用在线回访的数据需要经过我们的数据清洗才可以使用,这点将会在下一节讲解。
使用在线回放的效果如下图所示:
从图中我们可以看到,ECU在实时回复我们Log中的内容,这样可以帮助我们尽可能的完美复现问题出现的场景,以及帮助后续的整改工作的进行。这种方法也可以与CAPL相结合更大的提高我们的分析效率。相关的CAPL函数如下图所示。
由于是进行在线回放,因此速度会比离线回放的速度慢一些,一般我们也可以称这种方法为慢回放。
在线回放中有几个需要我们注意的点:
1.回放的数据需要提前进行数据清洗
2.这种方法需要连接实际的ECU
3.用此方法时需要屏蔽所有的节点
凡事必有正反面,在线回放功能强大,但是他用起来也比离线回放要稍微麻烦一些,所以大家可以根据使用场景自行选择要用哪种方法。
2 数据清洗
数据清洗其实就是为了过滤掉我们不需要或者不想要的报文,这也有两种方法:
2.1 在Measurement Setup中进行数据清洗
使用离线回放,在Logging模块前添加报文过滤器或通道过滤器,在过滤器中选择想要过滤掉的报文ID或者通道即可得到经过清洗后的数据,将这个新的Log放入Replay模块进行在线回放即可。
2.2 直接在Replay中过滤(推荐)
这种方法相对第一种方法要简单很多,因此推荐使用这种方法进行数据清洗,只需要在Relay模块前添加一个过滤器就可以实现在在线回放的过程中直接进行数据清洗。