Debug调试:确认故障发生时间的一种方法

发布于 2023-8-15 11:01
浏览
0收藏

工程问题Debug时,工程师常常会面临一个问题:故障发生的时间点在哪?当时的车辆工况怎样?之前我们聊过,可以通过数据记录时的时间戳,快速定位问题发生时的车辆运行工况,可以参考前文《CANoe基础:如何显示*.blf数据的时间戳》。如果受限于工具,数据录取工程师并没有CANoe此类设备,而是使用其他工具录取的总线数据,并没有记录时间戳的功能又该怎么办呢?


为了准确分析问题,本文提供一种确认时间戳的方式:通过总线时间信号确认车辆动态工况。

1、通信总线时间信号确认车辆动态工况

整车通信矩阵设计中,一般在网段中都会设计一个全局时间信号。为什么要设计这个时间信号呢?

1. 首先,车机中控仪表有显示时间需求,需要时间信号;

2. 其次,车辆诊断中,为了便于记录车辆故障时的时间,法规或者企标中会要求存储故障发生时的时间戳。


所以,既然每个节点需要在车辆故障中冻结时间,也就意味着:整车每个局部网络中,均会存在一个时间信号。因此,只要数据log中有时间信号,即可推算出其他车辆信号随时间的变化情况。

2、总线时间信号变化

(一)CANoe中总线时间信号推算

在CANoe中加载录取的log(eg:*.blf)文件,在分析其他信号的同时,也选中总线时间信号,通过时间信号即可反向推算出某个时刻的具体时间。

Debug调试:确认故障发生时间的一种方法 -汽车开发者社区

1. 一般,总线时间信号值是1970.1.1.0.0.0开始到目前的总秒(s)数。

2. 首先,将DTC对应的快照记录时间(eg:2023/7/8/14/12/57)算出总秒数,约为18089709s;

3. 之后,在log中查找时间信号对应的18089709s位置即可获知当时或者此时间附近的车辆变化工况。

为了便于数据分析,经常会使用Marker功能,比如:记录某信号某时刻的数据,可以右击该信号->New Marker...,之后比较其它时间点数据与Mark处的变化,示例如下:

Debug调试:确认故障发生时间的一种方法 -汽车开发者社区

(二)INCA中总线时间信号推算

INCA中,加载数据采集log(记录了时间信号),可以通过测量光标直接显示时间信号值。

Debug调试:确认故障发生时间的一种方法 -汽车开发者社区

提示:由于INCA默认的信号数值使用物理值显示,时间精度差。使用十六进制显示,在换算成十进制。


INCA信号值显示格式设置如下所示:

Debug调试:确认故障发生时间的一种方法 -汽车开发者社区

信号值:十六进制->十进制换算如下所示:

Debug调试:确认故障发生时间的一种方法 -汽车开发者社区


文章转载自公众号:开心果 Need Car


分类
收藏
回复
举报
回复
相关推荐