
Debug调试:确认故障发生时间的一种方法
工程问题Debug时,工程师常常会面临一个问题:故障发生的时间点在哪?当时的车辆工况怎样?之前我们聊过,可以通过数据记录时的时间戳,快速定位问题发生时的车辆运行工况,可以参考前文《CANoe基础:如何显示*.blf数据的时间戳》。如果受限于工具,数据录取工程师并没有CANoe此类设备,而是使用其他工具录取的总线数据,并没有记录时间戳的功能又该怎么办呢?
为了准确分析问题,本文提供一种确认时间戳的方式:通过总线时间信号确认车辆动态工况。
1、通信总线时间信号确认车辆动态工况
整车通信矩阵设计中,一般在网段中都会设计一个全局时间信号。为什么要设计这个时间信号呢?答:
1. 首先,车机中控仪表有显示时间需求,需要时间信号;
2. 其次,车辆诊断中,为了便于记录车辆故障时的时间,法规或者企标中会要求存储故障发生时的时间戳。
所以,既然每个节点需要在车辆故障中冻结时间,也就意味着:整车每个局部网络中,均会存在一个时间信号。因此,只要数据log中有时间信号,即可推算出其他车辆信号随时间的变化情况。
2、总线时间信号变化
(一)CANoe中总线时间信号推算
在CANoe中加载录取的log(eg:*.blf)文件,在分析其他信号的同时,也选中总线时间信号,通过时间信号即可反向推算出某个时刻的具体时间。
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处的变化,示例如下:
(二)INCA中总线时间信号推算
INCA中,加载数据采集log(记录了时间信号),可以通过测量光标直接显示时间信号值。
提示:由于INCA默认的信号数值使用物理值显示,时间精度差。使用十六进制显示,在换算成十进制。
INCA信号值显示格式设置如下所示:
信号值:十六进制->十进制换算如下所示:
文章转载自公众号:开心果 Need Car
