使用电控系统的车辆的ECU具有故障自诊断的功能,在我们打开点火开关(不启动)的情况下,发动机ECU会向每个传感器和执行器发送电流进行一次通信,查看这些元件(包括ECU本身)是否处于正常工作的状态。
一旦某个元件或某根线路出现故障,ECU就指令发动机故障指示灯点亮,如下图所示,通过这样的方式告诉开车的人要尽快开到修理厂或4S店进行维修,同时把故障情况以故障代码的形式存储在内部的存储器内,以便维修人员缩小维修的范围,更快的找到故障点。
故障自诊断系统称为OBD,现在使用最多的系统是2代,也就是OBD-II,基本上2000年以后的车辆都是安装这个系统的。OBD系统的一代与二代相比,主要的区别在于统一了故障码表现的形式和诊断接口的位置。
OBD-II的故障代码是由5位的字母或者数字组成,比如P0123,这个故障代码表示的意思是节气门位置传感器的A电路输入电压过高。首先我们看故障代码的第一位,第一位一定是字母表示,一般有四个字母:P、B、C和U。
P表示动力传动系统,我们知道汽车是由发动机做功,通过传动系统的部件传递到车轮上进行驱动,那么这个P就表示发动机控制系统、电子变速器控制系统等。B表示车身电器,比如像空调系统。
C表示底盘系统,具体是指转向、制动系统等,比如我们发现仪表板上的ABS故障灯点亮,输出轮速传感器的故障代码,就是C开头的。
U表示未定义或者是车辆的网络故障,车辆上的ECU使用的传感器信号很多都是一样的,如果每个传感器都把线都接到每个ECU上,那么车辆上的线束将会多很多而且很复杂,这样厂家的工程师对线束的布线和修理工对电路的维修都是存在很大难度的,所以每个ECU之间使用CAN网络通讯协议进行通讯,只用两根线传递就可以了。
第二位是数字,表示制作代码的主体是谁,0表示SAE(美国汽车工程师学会)定义的代码,1表示厂家自己制动的代码。
第三位数字表示被检测故障的子系统代码,数字范围是0-8,0表示全系统,1和2表示燃油供给系统,3表示点火系统,4表示尾气排放处理系统,5表示怠速/转速控制系统,6表示PCM与输入/输出系统,7表示变速器系统,8表示其他。
故障代码的后面两个字母是留给厂家自己设置的,也就是原厂代码,每个厂家的设置含义都是不一样的。
如果车辆的故障指示灯点亮了,我们该如何知道具体的故障代码是什么呢?方法很简单,使用诊断仪读取故障代码即可,但是这个方法只适合使用在2000年以后的车型,2000年以前的车型是需要人工进行读码的。
所谓的故障诊断仪是连接车辆控制系统的工具,我们首先要把诊断仪的接线接到车辆的OBD诊断接口(DLC3),这个诊断接口的位置如下图所示,位于方向盘的下方,是16针脚的,如果找不到,看看是不是上面有盖子挡住了。
连接好诊断仪后,我们就可以开始读取故障代码了,首先是要选择车型,比如选择大众还是丰田;然后是进入相关的控制系统,如果是发动机有故障就选发动机控制系统,变速器故障就选电子变速器控制系统,不要选择错了,选错了车型或系统是读取不了故障代码的。
读取故障代码的步骤是:读取故障代码→消除故障代码→再读取故障代码。我们第一次读取的故障代码并不一定是车辆的故障原因,比如有的传感器的线束插头松动了,在重新接好插头后,虽然故障消失了,但是这个故障代码没有消除,我们称这种故障代码是历史(偶发)故障代码。
在消除代码后再重新读取的故障代码才是我们需要的,因为这代表了车辆真实存在的故障。有的故障代码与车辆运行的状态有关,有的是在动态下发生,有的是在静态下发生。
比如我们在发动机熄火的情况下拔下凸轮轴正时机油控制阀的接头,那么发动机马上会报故障代码,如果是拔下曲轴位置传感器的接头则不会,因为我们要启动发动机,发动机要检测到相关的数据才能知道该故障。
我们读取的故障代码只能作为维修车辆的参考依据,但是绝不能就只依靠故障代码来决定车辆故障的故障所在,因为有些电子元件的故障信息并不能通过电控参数反映给ECU。比如如果是因为节气门过脏、怠速控制阀卡滞,导致空气流通截面减小导致发动机怠速不良,这个情况发动机ECU就无法通过故障代码的形式表现出来。
有的故障代码表示的并不一定是电子元件损坏,也有可能是机械故障导致。由于机械原因导致电控系统信号失真产生故障代码中,86个发动机故障代码内这类型的故障码就有28个。比如P0017(曲轴凸轮轴位置相关性故障)的产生就有可能是机油劣质堵塞油道、正时链条跳齿和拉长、凸轮轴正时齿轮总成损坏和正时标记不对等。
在实际维修车辆时,更多的是依靠我们对故障现象进行分析,通过相关的数据(故障码、数据流)才能找到故障原因,诊断的思路很重要。
总结:汽车的故障码表示汽车的电控系统是否出现故障,在我们使用诊断仪读取的故障代码有历史的、真实的和偶发的,我们要学会正确的区分和使用。汽车故障码不是万能的,也有一定的局限性,只是为我们提供了一个大致的维修方向,并不能很准确的告诉我们车辆故障所在的位置,我们应该是把故障代码、数据流和故障现象结合起来进行分析,这样才能有效排除故障。