例子1:
此示例概述了两个操作周期排放相关的 OBD DTC 中 DTC 状态位的操作。该图显示了两个操作周期排放相关的 OBD DTC 的处理。该处理也可应用于非排放相关的 OBD DTC,此处显示仅供一般参考。
-
0 接收到清除诊断信息 → DTC 状态字节初始化。
-
1, 2 相关诊断监视器报告了足够数量的通过测试样本,满足 DTC 通过标准 testNotCompleted 位(4 和 6)从 1 更改为 0,表明监视器已运行完成并且自上次以来已达到 DTC 就绪状态对于操作周期 1
-
3、4、5、6,相关诊断监视器报告了足够数量的满足 DTC 失败标准的失败测试样本 → testFailed、testFailedThisMonitoringCycle、pendingDTC 和 testFailedSinceLastClear 位从 0 更改为 1,表示已检测到故障,但在 2 个操作周期内尚未确认故障
-
7 相关诊断监视器报告了足够数量的通过测试样本,满足 DTC 通过标准 testFailed 位从 1 更改为 0,表明故障当前未激活
-
8 相关诊断监视器报告了足够数量的测试样本满足 DTC 失败标准的失败测试样本数 → testFailed 位从 0 更改为 1,表示在操作周期 1
-
9、10 中重复检测到故障 操作周期 1 结束且操作周期 2 开始,testFailedthisOperationCycle 从 1 更改为 0,testNotCompleteThisOperationCycle 更改从0到1;如果在操作周期结束时或在开始新周期后立即执行此复位,则由制造商指定。
-
11 新操作周期开始后,位 0 的状态将保留前一个操作周期的状态。
-
12 新操作周期开始后,相关诊断监视器报告足够数量的通过测试样本,满足 DTC 通过标准 → testNotCompleteThisOperationCycle 位从 1 更改为 0,表明监视器在新操作周期内至少运行完成一次
-
13, 14 相关诊断监视器报告了足够数量的满足 DTC 失败标准的失败测试样本 testFailed、testFailedThisMonitoringCycle 位从 0 更改为 1,表示在新操作周期期间检测到故障
-
15 确认的 DTC 位从 0 更改为 1,表示已检测到故障上一个操作周期中检测到的相关故障仍然存在 16 当 DTC 状态更改为已确认 DTC 时,TripCounter 峰值为"2",然后根据图 D.4 立即重置为"0"
例子2:
DTCFaultDetectionCounter 操作实现示例 非排放相关服务器的 DTC 故障检测计数器。
- 1.当故障检测计数器达到最小值 (-128) 或最大值 (127) 时,测试完成,因此 testNotCompleteSinceLastClear 和 testNotCompleteThisOperationCycle 位从 1 更改为 0
- 2 如果测试的一个测试样本返回失败结果,则始终会导致故障检测计数器递增高于 0(确保通过测试完成后的故障检测时间不会加倍)
- 3 故障检测计数器达到其最大值 (127),表明故障条件已完全成熟;测试报告了失败结果,因此 testFailed、testFailedThisOperationCycle 和 testFailedSinceLastClear 位从 0 更改为 1
- 4 确认 DTC 位与待定 DTC 位同时置位(从 0 更改为 1),因为此示例适用于非排放 -确认阈值为 1
- 5 的相关服务器/ECU 是制造商特定的,如果测试的一个测试样本返回通过的结果,它总是导致故障检测计数器从 0 开始递减(确保测试后通过的检测时间完成与失败不加倍)
- 6 与测试相关的监视器未运行,因为未满足监视器级别启用条件,因此生成测试样本结果;当再次满足监视器使能条件时,是否将故障检测计数器重置为 0 由制造商指定
- 7 计数器在当前操作周期中再次达到其最小值 (-128),因此 testFailed 位从 1 更改为 0。
- 8 新的操作周期开始后,与测试相关的监视器尚未启用,因此除了与操作周期开始相关的位外,DTC 状态位不会改变;这些位最晚在新的操作周期开始时重置。
- 9 新操作周期开始后,计数器达到最小值 (-128),因此 testNotCompleteThisOperationCycle 位从 1 更改为 0
例子3:
此示例概述了 DTCAgingCounter 的操作,该计数器计算自上次故障发生以来的驾驶周期数。
- 1 在完成测试未失败的操作周期后,DTCAgingCounter 递增。
- 2 在测试完成且未失败的操作周期后,pendingDTC 设置为零。如果 ECU 不支持断电序列(即当点火开关关闭时立即关闭),它将无法检测到操作周期的结束。因此,在下一个操作周期开始时将pendingDTC位设置为零也是有效的
- 3 DTCAgingCounter 在完成测试未失败的操作周期后递增
- 4 DTCAgingCounter 继续递增,因为测试在这些操作周期期间未失败
- 5 当完全满足老化标准时,confirmedDTC 设置为零(例如 DTCAgingCounter 达到特定值)
- 6 DTCAgingCounter 达到最大值(例如 40),此时确认的 DTC 位被清除
- 7 车辆制造商有责任指定 testFailedSinceLastClear 位是否通过老化标准或由于故障存储器溢出而重置
小结:testFailed实时检测test情况;testFailedThisOperationCycle只要这个周期出现failed就会置1(成熟条件厂商定义 故障并不会被保存;下一个周期会被复位);pending置1条件和testFailed一样,置0条件:一个OC内passed一次;confirm表示上一次周期也出现故障,并且会保存故障码。;testNotCompletedSinceLastClear上次清除后,是否已经测试通过,1表示没有通过;testFailedSinceLastClear,1表示上次清除完,还有故障。testNotCompletedThisOperationCycle,当前OC是否完成测试。
DTC severity and class definition(DTC 严重性和类别定义)
DTCSeverityMask/DTCSeverity 字节包含 DTC 严重性和 DTC 类别信息。 DTCSeverityMask/DTCSeverity 字节以 1 字节值报告,如表 D.11 中所定义。 1 字节值的可选高 3 位(位 7 至 5)用于表示 DTC 严重性信息。如果服务器不支持这些位应设置为"0"。 1Byte 值的强制低 5 位(位 4 至 0)用于表示 DTC 类别信息。