系列文章目录
CANoe之UDS诊断自动化测试(一):CANoe诊断界面介绍1
CANoe之UDS诊断自动化测试(二):CANoe诊断界面介绍2
CANoe之UDS诊断自动化测试(三):手动创建诊断服务(无CDD文件)
持续更新中.......................................
目录
2.Diagnostic Console窗口
完成参数设置后点击“Diagnostic Console”,选择加载后的CDD文件就可进入诊断控制台,如下图所示:
其中左侧诊断服务列表的内容是根据CDD文件自动生成的,想要发送其中某条服务选中双击即可发送出去,并在诊断响应结果区域内查看诊断请求响应结果。对于执行写功能的服务请求,可以在诊断请求设置区域内填入诊断服务要写入的参数值。
此处的诊断服务列表在CANoe中不能增加或者删除诊断服务,要想改变某个服务只能依靠CDD文件制作工具重新编辑CDD文件,然后再导入到CANoe中。
手动输入框可以自定义输入任意诊断请求报文,比如CDD文件未定义的诊断服务或者非正常UDS诊断报文(用来测试NRC)。
3.Fault Memory窗口
Fault Memory(故障记忆)窗口可以读出一个ECU的所有DTC(Diagnostic Trouble Code,故障码)列表,还可以进行清除故障码操作,此窗口必须加载CDD文件才可操作。如果无CDD文件或者CDD文件对DTC名称定义的不清除,无法准确解析,可以通过CAPL脚本对DTC响应报文进行解析,也是可以查看故障的。
DTC:Diagnostic Trouble Code,故障码。如果某个零件发生故障,会通过故障码储存在ECU中,通过19服务来读取DTC。
此窗口除了调用19服务读取故障码外,还可以调用14服务进行清除故障码操作,如上图清除故障码按钮。
UDS诊断之19服务:通过状态掩码去读取故障代码(DTC),并获取DTC的状态(当前故障、历史故障);详细来说就是按照设计所定义的状态掩码去查找相匹配的故障,将匹配的DTC(3个字节)+DTC状态(1个字节)信息返回。除了读DTC,19服务还可以读取故障码的数量。
UDS诊断之14服务:清除存储的故障信息;由于DTC是3个字节组成,因此14服务在发送时后面也跟3个字节,比如发送14 FF FF FF表示清除所有DTC,当然有的控制器也支持清除单个DTC,那么使用14+3个字节的DTC就是清除此故障码。14服务的积极响应报文是54(1个字节)。
4.Session Control窗口
通过Session Control(会话控制)窗口可以切换不同的诊断状态,例如,切换会话模式、安全等级和通信管理设置等,如下图所示。如果无CDD文件无法使用此窗口的话,也可以通过自制的Panel界面实现此窗口的功能,并且还可以根据自己的测试需求加一些响应信息在自制界面(后面会讲到如何自制Panel界面发送诊断)。
5.CANdelaStudio 窗口
点击“CANdelaStudio” 窗口可以看到已加载到CANoe工程中的CDD文件,通过此窗口可以打开CDD文件,如果没有“CANdelaStudio”的license,就只能查看不能编辑,后期做诊断自动化时可以通过此窗口打开CDD文件复制Quelifier调用诊断服务。
总结
通过前两章的讲解,大概掌握了CANoe诊断模块的功能,掌握这些功能后基本就可以实现诊断的配置和发送。从下一章开始就讲一下在脱离CDD文件的情况下如何去创建诊断服务列表,并通过一些CAPL脚本实现发送诊断。本系列课程的最终目的就是在无CDD文件或者CDD文件写的很烂的前提下实现诊断自动化测试,自动输出测试报告,让诊断测试彻底脱离手动一个一个去发的现状。只要电脑上有CANoe软件就行,其他任何工具都可以不需要,跟着本课程一步一步操作下去,实现自动化测试不是梦。