DTC状态变化例子 4

例子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 类别信息。

相关推荐
左手厨刀右手茼蒿37 分钟前
Flutter 组件 http_requests 适配鸿蒙 HarmonyOS 实战:极简网络请求,构建边缘端轻量级 RESTful 通讯架构
网络·flutter·http
江南风月41 分钟前
日志审计系统WGLOG支持syslog吗
运维·网络·日志审计
Blurpath住宅代理1 小时前
代理IP全面解析:从协议原理到高阶应用场景的技术指南
网络·静态ip·动态代理·住宅ip·住宅代理
晏宁科技YaningAI3 小时前
全球短信路由系统设计逻辑打破 80%送达率瓶颈:工程实践拆解
网络·网络协议·架构·gateway·信息与通信·paas
爱学习的小囧4 小时前
ESXi 8.0 无法选择分区方式 小白级详细解决办法
运维·服务器·网络·虚拟化·esxi8.0
F1FJJ4 小时前
什么是 Shield CLI?视频讲解:一条命令,可浏览器远程访问一切内部服务(RDP/VNC/SSH/数据库等)
运维·网络·数据库·网络协议·ssh
南湖北漠4 小时前
听说拍照的人会拿相似的鱼皮豆代替野生鹌鹑蛋拍照(防原创)
网络·人工智能·计算机网络·生活
一个有温度的技术博主4 小时前
网安实验系列四:信息收集-旁站、C段信息
网络
木下~learning5 小时前
对于Linux中等待队列和工作队列的讲解和使用|RK3399
linux·c语言·网络·模块化编程·工作队列·等待队列
F1FJJ5 小时前
Shield CLI 命令全解析:15 个命令覆盖所有远程访问场景
网络·数据库·网络协议·容器·开源软件