Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistema de Diagnostico de Vehiculos OBD2
Sistema de Diagnostico de Vehiculos OBD2
Proyectante:
Director/es:
Fdo.:
Fdo.:
Lugar y fecha:
CALIFICACIN NUMRICA
MATRCULA DE HONOR
Conforme presidente:
Conforme secretario:
Conforme vocal:
Fdo.:
Fdo.:
Fdo.:
Lugar y fecha:
NDICE
Introduccin..7
1-Introduccin a la gestin del motor...9
1.1-Sistemas de inyeccin electrnica....9
1.1.0-Motores de inyeccin en el tubo de admisin (Indirecta)...13
1.1.1-Motores de inyeccin directa de gasolina....16
1.1.2-Motores de inyeccin directa diesel.17
1.1.3 -El sistema de encendido21
1.2-La gestin del motor de gasolina....24
1.2.0-La seal base...24
1.2.1- Factores correctivos..25
1.3-La gestin del motor diesel...27
1.3.0-Introduccin...27
1.3.1-Estados de servicio.27
1.3.2-Vlvulas de inyeccin mecnica...29
1.3.3-Activacin de las electrovlvulas..30
1.3.4-Regulacin Lambda para turismos diesel...31
1.4-Sistemas de reduccin de emisiones......32
1.4.0-Sistema de recirculacin de gases de escape....33
1.4.1-Sistema de insuflacin de aire secundario.......33
1.4.2-Sistema de retencin de evaporacin de combustible....33
1.4.3-Sistema de purga del crter del cigeal.....33
1.5-Sensores...34
1.5.0 Sensores de temperatura34
1.5.1 Sensores de presin micromecnicos35
1.5.2 Sensores de revoluciones inductivos.36
1.5.3 Sensores de anillos de cortocircuito semidiferencial...39
1.5.4 Sensor de movimiento de aguja.40
1.5.5 Medidor de masa de aire de pelcula caliente..42
1.5.6 Sonda Lambda.43
1.5.7 Sensores potenciomtricos..44
1.6-Actuadores.45
1.6.0 Actuador de la presin de sobrealimentacin.....45
1.6.1 Vlvula de realimentacin de gases de escape.46
1.6.2 Electrobomba de combustible..46
1.6.3 Actuador de vrtice48
1.6.4 Chapaleta en el tubo de admisin.48
1.6.5 Vlvula de mariposa...48
1.6.6 Actuadores en sistemas Common Rail.48
1.6.7 Actuadores en bombas rotativas de inyeccin de embolo.. 50
axial, de mando por aristas
1.6.8 Actuadores en un sistema de inyeccin de gasolina52
Introduccin
La implantacin de sistemas electrnicos en los automviles hace necesario un sistema
de autodiagnstico capaz de autosupervisarse, detectar, almacenar y evaluar fallos para
el diagnostico. Hasta hace pocos aos el sistema funcionaba en la forma especfica del
fabricante, pero con el aumento de la severidad para los valores de los gases de escape,
los legisladores vieron en el autodiagnstico un medio auxiliar de supervisin de estos
gases e introdujeron la estandarizacin independientemente del fabricante. Este
sistema adicional se denomina sistema OBD (On-Board Diagnostics System).
El sistema de diagnstico (OBD) ha tenido una gran repercusin en la industria del
automvil, por el hecho de que se haya legislado la supervisin del cumplimiento de los
valores lmite de los de gases de escape. La unidad de control del motor (ECU, Engine
Control Unit) contiene funciones de diagnostico (algoritmos de software) que
reconocen los fallos del sistema relevantes para los gases de escape. Las funciones de
diagnostico (OBD) verifican todos los componentes que, en caso de no funcionar,
provocan un incremento de las emisiones contaminantes. En cada pas se fijan valores
lmite para los gases contaminantes. Si se sobrepasan estos lmites, se indica el defecto
al conductor mediante un testigo de averas.
La lectura de los registros de averas se establece mediante un enchufe de diagnostico
en el que se comunica la unidad de control y el comprobador a travs de un protocolo de
comunicacin (ISO 9141-2, SAE J1850, ISO14230-4, SAE J1708). Mediante este
enchufe se puede establecer la comunicacin con las diferentes unidades de control (por
ejemplo Motronic, ESP, control de cambio, sonido, ABS, etc), hasta 100 ECUs
distintas que hoy en da puede tener un vehiculo. El comprobador detectar las averas
accediendo a la direccin de memoria de cada una de estas unidades de control. Es claro
que en la memoria de programa de la unidad de control del motor existen algoritmos
(software) que se ocupen de la gestin de averas en la forma especifica del fabricante y,
adicionalmente, las del estndar del sistema de diagnostico (OBD). Por supuesto, OBD
contiene cdigos de avera genricos y especficos del fabricante del vehiculo.
Existen en el mercado multitud de comprobadores o diagnosis de vehculos
multimarca y especficos del fabricante del vehculo que ofrecen al tcnico del taller un
amplio abanico de posibilidades para encontrar la avera lo ms rpidamente posible.
En muchsimas ocasiones, la interpretacin incorrecta de la informacin obtenida por el
aparato de diagnostico por parte del tcnico, lleva a un cambio de piezas innecesario
con el consiguiente desembolso del usuario del vehculo.
El proyecto que se expone a continuacin, consiste en la implementacin de un
interfaz de diagnstico (hardware), y una aplicacin (software) capaz de visualizar en
una pantalla de ordenador todos los modos estandarizados en que se presenta la
informacin del sistema de diagnostico (OBDII) de una forma clara y concisa. Adems
esta aplicacin es capaz de crear una base de datos de modelos correctos de datos
monitorizados para poder comparar mediante un grfico con otros modelos de datos
de las mismas caractersticas que se quieran comprobar, con el objeto interpretar de
forma grfica las averas de los sensores y actuadores. La otra parte del proyecto es un
comprobador de actuadores que funcionen con seales PWM, con el objeto de
comprobar fsicamente el funcionamiento de stos. Este comprobador contiene un
generador de seal PWM regulable, un frecuencimetro y un medidor del duty-cycle de
la seal.
Captulo 1
Introduccin a la gestin electrnica del motor.
10
Los tipos de inyeccin se pueden clasificar segn la ubicacin del inyector, el modo de
inyeccin y el nmero de inyectores.
Segn la ubicacin del inyector, la formacin de la mezcla se puede producir en el
interior o en el exterior de los cilindros.
Con la formacin externa de la mezcla existe la inyeccin monopunto (un solo
inyector suministra el combustible a los cilindros) y la inyeccin individual. Con la
formacin interna de la mezcla, se obtiene la tan extendida inyeccin directa en
motores diesel que requiere un tipo especial de inyector que resista las altas presiones de
la cmara de combustin.
11
Figura 6
Monopunto
Multipunto
12
Figura 7
El depsito de carbn activo retiene el vapor de combustible y slo deja salir aire a la
atmsfera. Para regenerar el carbn activo, los gases del depsito se conducen a la
admisin a travs de la vlvula regeneradora, la cual se abre y cierra en forma de rampa
de tal forma que las divergencias que surjan con el regulador Lamda las aprenda la
unidad de control como correccin de mezcla. Con ayuda del sensor de presin
diferencial que mide la presin de gases del depsito y la vlvula de cierre que regula la
cantidad de aire que entra al depsito de carbn, la unidad de control regula la mezcla
13
14
15
Figura 8
Figura 9
Figura 10
16
Figura 11
Bomba rotativa de inyeccin distribuidora de mbolo axial de mando por
electrovlvula. (Figura 12 )
El anillo portarodillos (2) est solidario al movimiento del cigeal mediante la correa
de distribucin, provocando un movimiento axial en el disco de levas (3) y el mbolo
axial (4) solidario a ste, creando en la cmara de alta presin (6) el combustible
comprimido que se inyectar a travs de la lumbrera de distribucin (8) hacia el
inyector. El caudal inyectado ser proporcional a la posicin de la corredera de
regulacin (5) que controla el fin de la inyeccin.
Figura 12
17
Figura 14
Figura 15
18
Figura 16
Los sensores que intervienen en la gestin electrnica en un sistema Common Rail son
los siguientes:
-Sensor de pedal acelerador con interruptor de ralent y sobregs.
-Sensor de revoluciones del cigeal.
-Sensor de revoluciones y reconocimiento de cilindros (rbol de levas).
-Sensor de alta presin del acumulador (Rail).
-Sensor de la presin de sobrealimentacin.
-Sensor de la temperatura del motor.
-Sensor medidor de la masa de aire (caudalmetro).
Figura 17
19
Sistema inyector-bomba
Este sistema, figura 18, consta de una bomba de inyeccin (2) y el inyector (4)
formando una unidad. Por cada cilindro hay una unidad montada en la culata, accionada
por el rbol de levas del motor (1).
Como no hay conducto de alta presin se consiguen presiones de inyeccin de hasta
2050 bares, con lo que se consigue una mayor eficacia y rendimiento del motor.
La unidad de control calcula el tiempo de inyeccin y la regula mediante la apertura y
cierre de la electrovlvula (3).
Esquema unidad Inyector-bomba
Figura 18
Sistema Inyector-tubo-bomba
La unidad bomba-tubo-inyector trabaja de la misma forma que la unidad bomba
inyector, a diferencia que el inyector y la bomba de inyeccin estn separados por una
tubera corta. Con esta disposicin es posible un montaje ms sencillo adosado al
motor. En la figura (19) podemos apreciar un esquema de este sistema .A travs de una
leva de accionamiento (6) empuja el embolo de la bomba (5) originando la presin de
inyeccin controlada por la electrovlvula (4), y conducida por la tubera (3) hasta el
portainyector (2) y finalmente produciendo la inyeccin por el inyector (1).
En la figura (20) se aprecia una unidad bomba -tubo-inyector real.
20
Figura 19
Figura 20
1- Etapa de potencia.
2-Bobina
3-Diodo
4-Conexin secundario
Figura 21
21
22
Figura 23
1. Angulo de encendido correcto Za.
cigeal en el momento
del encendido Z.
El llenado del cilindro (carga) influye tambin en el ngulo de encendido hacia avance,
ya que el frente de llamas se extiende ms lentamente si el llenado es reducido.
El ngulo de encendido influye en el par motor, las emisiones de gases y el consumo de
combustible. Por eso se prefija mediante diagramas caractersticos, determinados en los
bancos de ensayo de motores, para que cumpla todas las exigencias lo mejor posible.
Figura 24.Diagrama del ngulo del encendido en funcin del llenado del cilindro y rpm.
Existen unas correcciones aditivas que provocan un avance o un retraso en el encendido,
todas ellas almacenadas en la memoria de datos como valores fijos o como curvas
caractersticas. Influyen, por ejemplo, la temperatura del lquido refrigerante, el estado
de funcionamiento de ralent o corte de marcha por empuje, cuando se efecta una
detonacin detectada por el sensor de picado, momento de arranque, rgimen de
retencin, etc.
23
Figura 25
24
Figura 26
Durante el proceso de arranque se realiza un clculo especial del tiempo de inyeccin,
en el cual se aumenta el caudal de inyeccin, adaptado a la temperatura del motor. Este
aumento del caudal sirve para formar una pelcula de combustible en la pared del tubo
de admisin y cubrir as la demanda durante el arranque. En el momento en que el
motor se pone en marcha este caudal extra se interrumpe, pasndose a la fase de
calentamiento.
En la fase de calentamiento se realiza un aumento del rgimen de ralent el cual est en
funcin de la temperatura del motor. Es importante sealar las estrategias que se utilizan
para conseguir que el catalizador aumente su temperatura hasta la de servicio, con el
objeto de que empiece a funcionar ste lo antes posible. stas son:
-La combinacin de una fase de calentamiento con mezcla pobre y un ngulo de
25
Figura 27
En el rgimen de retencin se desconecta la inyeccin, y tras sobrepasar un rgimen de
reanudacin (superior al de ralent) se reinicia la inyeccin.
La unidad de control calcula a partir de la sonda Lambda un factor de correccin que
corrige el tiempo de inyeccin. Esta correccin se denomina Regulacin Lambda. Si la
sonda Lambda es de dos puntos informa al Regulador Lambda sobre la cantidad de
oxgeno que tienen los gases d escape, con esta informacin se calcula si <1 o >1, o
sea, si la mezcla es pobre o rica. Segn este dato se modifica el tiempo de inyeccin
para conseguir llegar a =1 (con un salto y subsiguiente desarrollo en rampa). Por lo
tanto, se origina en la sonda Lambda una oscilacin cuyo periodo est determinado por
el paso del gas y su amplitud por la inclinacin de la rampa.
26
Figura 28
27
Figura 29
28
Figura 30
1. Entrada de combustible
2. Tuerca de racor entrada alimentacin
3. Conexiones de retorno
4. Arandelas ajuste de presin
5. Canal alimentacin
6. Muelle
7. Perno de presin
8. Aguja del inyector
9. Perno de fijacin
Figura 31
29
Figura 32
30
En (a) se encuentra la fase de apertura, la corriente se eleva hasta 20A con una tensin
de 100v, con el objeto de que se abra rpidamente la electrovlvula.
-En (b) se encuentra la fase de corriente de excitacin mantenindose la misma corriente
de 20A pero con la tensin de batera.
-En (c) se encuentra la fase de transicin de la corriente de retencin.
-En (d) la fase de corriente de retencin, la cual se rebaja a 12A.
-En (e) la fase de desconexin, se desconecta la corriente para cerrar la electrovlvula.
-En (f) se muestra la fase de recarga. Este rizo no es capaz de abrir la electrovlvula y
sirve para que la electrovlvula almacene energa en caso de no ser activada, y el
acumulador de tensin del convertidor Boost que origina las elevadas tensiones de
activacin para que se recargue con esta energa y posibilite la siguiente activacin del
inyector.
En la (figura 33) se aprecia el esquema de una Unidad bomba tubera-inyector (UPS),
la cual est siendo controlada por una seal de activacin ms moderna. Esta clase de
inyeccin llamada en forma de bota se caracteriza por una inyeccin previa adicional.
En la seal de activacin de la electrovlvula aparece en el inicio de la inyeccin una
fase de excitacin, una vez terminada esta fase se origina una apertura inicial, en la preinyeccin una fase de retencin que determina el tiempo de sta, en la inyeccin
principal una fase de apertura total de la aguja, una nueva retencin que determina el
tiempo de inyeccin y un final con intensidad nula en la electrovlvula.
1-Inyector
2-Conexin entrada inyector
3-Tubo
4-Electrovlvula
5-Vlvula
6-Pistn de bombeo
7-Bobina
8-Detalle de la vlvula
9-Rodillo accionado por arbol
de levas
Figura 33
31
comparada con la masa de aire terico del diagrama caracterstico de la vlvula ARF
(recirculacin de gases), su diferencia es compensada por el regulador Lambda.
Finalmente se compara la suma del valor del regulador Lambda y el valor de la masa
terica del diagrama caracterstico del ARF con el valor del medidor de masa de aire
(caudalmetro). Esta diferencia es la que aportar al conducto de admisin con los gases
de escape, la vlvula EGR.
-Adaptacin del valor medio del caudal. Con la seal de la sonda Lambda y la seal
de la masa de aire se calcula el valor de la masa de combustible inyectada, sta se
compara con el valor terico. La diferencia se guarda en puntos de aprendizaje en un
diagrama caracterstico que luego servirn como factores de correccin del caudal
suministrado en cada punto de funcionamiento del motor. Estos factores de correccin
influirn en los circuitos relevantes a la emisin de gases como la regulacin de la
presin de sobrealimentacin, el regulador de masa de aire (que controla la vlvula de
ARF) o la regulacin del comienzo de inyeccin.
Para este tipo de regulacin existen dos tipos de servicio que se emplean segn el punto
de funcionamiento del motor. El indirecto que utiliza como el valor el caudal exacto de
inyeccin sin factores de correccin, y el indirecto que s utiliza los factores de
correccin para el valor del caudal inyectado.
-Limitacin de humos a plena carga.
Con la ayuda de la sonda Lambda, el sensor de revoluciones, el medidor de seal de
masa de aire y los diagramas caractersticos de limitacin de humo se realiza un clculo
para la obtencin del caudal mximo admisible a plena carga.
-Deteccin de combustin no deseada.
Con la seal de la sonda Lambda se puede detectar una combustin no deseada, cuando
ocurre esto se puede parar mediante el cierre de una vlvula de mariposa y la vlvula
EGR. Esto representa una funcin de seguridad del motor.
32
33
1.5 Sensores
Los sensores y actuadores forman una interfase entre las magnitudes fsicas medidas en
la gestin del motor, ESP, ABS, climatizador, etc. con las diferentes unidades de control
del vehculo.
En este campo, la mecatrnica va ganando cada vez ms importancia por estar
estrechamente unidos los componentes mecnicos con los sensores.
Los sensores han ido evolucionando, aumentando el grado de integracin y de esta
manera disminuyendo el trabajo de procesamiento a la unidad de control, puesto que la
preparacin de la seal hasta que se convierte en un dato legible por el procesador
principal es una tarea que le resta poder de clculo.
Los sensores segn el grado de integracin pueden contener:
-Una preparacin analgica de la seal
-Un convertidor analgico-digital
-Un microordenador que evala la seal y se comunica con el bus CAN a la UCE.
Figura 35
Existen sensores de temperatura en diferentes aplicaciones del motor, stas son:
-Sensor de temperatura del motor. Mide la temperatura del lquido refrigerante
(campo de medicin -40 hasta +130 C). Es uno de los sensores ms importantes del
motor. Este sensor interviene en el clculo del tiempo de inyeccin de diferentes estados
de servicio del motor como el arranque en fro, calentamiento, carga parcial, etc., as
como en el tiempo establecido para los calentadores del motor diesel.
-Sensor de temperatura de aire. Mide la temperatura del aire, est alojado en la
admisin, normalmente en el medidor de masa de aire (campo de medicin -40 hasta
+120 C). Este sensor en combinacin con el sensor de presin puede medir la masa de
aire aspirada.
34
-Sensor de temperatura de aceite del motor. (Campo de medicin -40 hasta +170 C).
-Sensor de temperatura de combustible. Con esta medicin se corrige el caudal
inyectado. Normalmente alojado en la parte inferior del filtro de combustible diesel
(campo de medicin -40 hasta +120 C).
-Sensor de temperatura de los gases de escape. Esta medicin corrige el tratamiento
cataltico que se realiza para mejorar la emisin de gases. (campo de medicin -40 hasta
+1000 C).
Figura 36
La tensin resultante aumenta en sensibilidad gracias a esta disposicin. Esta seal ser
ampliada y linealizada a una tensin entre 0 y 5v, con la electrnica integrada en un
chip instalado en el mismo sensor.
El sensor puede tener integrado un sensor de temperatura (NTC) con el objeto de poder
35
Figura 37
Sensor de presin Rail.
Estos sensores miden la presin del combustible en el conducto comn de un sistema
Common Rail y la presin de trabajo en el sistema Med Motronic (iny.dir.gasolina). Las
presiones mximas que llegan a medir son de 1600 bares en Common Rail y 120 bares
en Med Motronic. La tensin de salida es proporcional a la presin, y se encuentra entre
0,5 y 4,5 voltios.
36
Figura 38
Cuando el hueco entre dientes de la rueda transmisora pasa por el sensor inductivo
(posicin definida por cilindro1), la UCE sincroniza en este momento la posicin del
cigeal. Con cada flanco (positivo o negativo) cuenta la UCE 3 grados.
Como en el clculo de ngulo de encendido se necesita ser ms preciso, la medida
temporal entre dos flancos se divide entre 3 4. De esta forma es posible controles de
hasta 0,75 grados.
En la figura 39 se aprecia dnde va situado el captador inductivo y el hueco entre
dientes y en la figura 40 la seal captada por un osciloscopio.
Figura 39
Figura 40
37
Figura 41
Sensor de fase Hall
Este sensor determina la posicin del rbol de levas, suministrando informacin al
calculador sobre la referencia del cilindro 1 (si se encuentra en compresin). Esta
informacin no puede obtenerse a partir de la posicin del cigeal, ya que para los
sistemas de inyeccin secuenciales se necesita saber, en el momento del arranque, qu
cilindro se encuentra en compresin para controlar el orden de inyeccin. Una vez que
el motor arranca, se sincroniza con el sensor de posicin del cigeal, y el control del
orden de encendido (con encendido DIS) e inyeccin se realiza a travs del captador
inductivo del cigeal (Figura 42).
Este sensor est constituido por un elemento Hall, cuyas plaquitas semiconductoras
atravesadas por una corriente (Iv ) generan una tensin perpendicular a sta (Uh), al
paso de un material ferromagntico muy prximo a stas plaquitas semiconductoras. En
la figura 42 B es el campo magntico inducido 90 respecto a la placa, Uh es la tensin
Hall y Ur es la tensin suministrada.
El circuito integrado Hall prepara la seal y la entrega como una seal rectangular. Este
sensor normalmente est fijado a un lado del rbol de levas, siendo el mismo pin del
rbol de levas el que induce al sensor Hall, la seal de referencia.
38
Sensor Hall
Efecto Hall
Figura 42
Funcionamiento
Este sensor (Figura 43) consiste en un ncleo de hierro dulce chapeado (3), que tiene
dos bobinas instaladas en sendos brazos del ncleo. Una bobina de referencia (5) y otra
de medicin (1). Se desplaza a travs de los brazos del ncleo un anillo de cortocircuito
(2) que est unido a la varilla de regulacin del caudal (4). El otro anillo de cortocircuito
es el de referencia, y est fijo (no se desplaza por el ncleo).
Figura 43
39
Figura 44
En la bobina circula una AC con una frecuencia de 10 Khz y una intensidad
constantes, establecida por la UCE. La bobina de referencia es una bobina con una
reluctancia fija, mientras que la bobina de medicin es de reluctancia variable,
puesto que por el ncleo de esta bobina se desplaza un cursor mvil que origina esta
variacin de reluctancia.
Como es sabido la inductancia de una bobina es el producto del N (nmero de
vueltas de la bobina) por la variacin del flujo magntico respecto a la intensidad
que pasa por el hilo.
Como el flujo magntico:
=N*i/R
Siendo i = intensidad, R = reluctancia
Se tiene que:
L=N2/R
Como la reluctancia es una magnitud que depende de la permeabilidad del ncleo
de la bobina (r), del recorrido de las lneas de campo en el aire fuera de la bobina
(l0), y de la seccin transversal del camino recorrido por estas lneas de campo (A).
R=l0/ 0*r*A
Por lo cual se deduce que la inductancia de la bobina es proporcional a la
reluctancia.
De esta forma, aplicndole a esta bobina una frecuencia y una corriente constante,
la tensin vara con la reluctancia. Por tanto, nos encontramos con un circuito
semejante al de un divisor de tensin, formado por dos bobinas. La UCE adquiere
una tensin de pico que ser proporcional a la desviacin del anillo, y ser evaluada
para formar un bucle cerrado entre el sensor y el solenoide de regulacin del caudal.
40
escape.
En el clculo del comienzo de inyeccin intervienen el volumen de combustible
(cuanto ms caudal se inyecte y ms aumente el rpm, mayor ser el tiempo de
inyeccin por lo que el comienzo de inyeccin deber adelantarse), el sensor de
revoluciones, el sensor de movimiento de aguja y como factor de correccin el
sensor de temperatura
El sensor de movimiento de aguja es un sensor inductivo que consta de una bobina
enrollada alrededor de un ncleo magntico conectado a la aguja del inyector. La
bobina est alimentada por una tensin continua a una intensidad constante (30
mA). Cuando comienza la inyeccin, el ncleo magntico se mueve variando el
flujo magntico, produciendo una variacin en la tensin de alimentacin.
Figura 45
Esta seal es evaluada por la UCE registrando el comienzo de inyeccin y
posteriormente la compara con la seal del PMS (seal designada por el sensor de
revoluciones) que sirve como referencia.
Figura 46
Este valor determina el avance real y es comparado con el valor terico de la
cartografa del comienzo de inyeccin, de manera que cualquier desviacin ser
corregida mediante la electrovlvula para el variador de avance.
41
Figura 47
Figura 48-A
Figura 48-B
42
La sonda (Figura 49) consta de un cuerpo cermico especial cuyas superficies van
equipadas con electrodos de platino permeables a los gases. El material cermico es
poroso y permite difusin del oxgeno del aire (electrolito slido). La cermica se
hace conductora a altas temperaturas. El lado interior del electrodo de la sonda
Lambda est en contacto con el aire y la parte exterior con la corriente de gases de
escape. Si el contenido de oxgeno no es igual a ambos lados del electrodo, se
establece una tensin elctrica, que con una relacin estequiomtrica de la mezcla
aire/combustible de =1 se origina una funcin de salto.
Figura 49
La tensin y la resistencia interna de la sonda dependen de la temperatura,
consiguindose una regulacin fiable a partir de temperaturas superiores a 350 C.
La mayora de de sondas Lambda tienen incorporadas una resistencia calefactora para
que independientemente de la temperatura de los gases de escape, la sonda llegue antes
a su temperatura de servicio.
Existen dos tipos de sonda Lambda, las de xido de circonio y las de xido de titanio.
La forma de las seales de estas sondas se muestran en las figuras 50 y 51 las
43
siguientes.
Figura 50
Oxido de Titanio
Figura 51
La sonda Lambda planar de banda ancha (con una clula de medicin de dixido de
circonio (ZrO2)) puede medir el punto estequiomtrico Lambda =1 y adems el
margen pobre y rico de combustible, proporcionando una seal unvoca y constante.
Con el objeto de aplicarse a motores con regulacin de mezclas de aire y
combustible pobres y ricas, motores de gas, termosifones calentados por gas,
motores diesel y regulacin Lambda de conceptos de motor de gasolina pobres.
44
Figura 52
1.6
Actuadores
Figura 53
Para las turbos de geometra variable, la regulacin del ngulo de los alabes directores
45
Figura 54
46
Figura 56
Figura 57
47
48
Figura 58
Figura 59
Figura 60
50
Figura 61
Figura.62
Vistas de la accin producida por el movimiento de la corredera.
51
Figura 63
El sensor de revoluciones
El sensor de temperatura
El potencimetro de la mariposa
123456789-
Pedal acelerador
Varillaje mariposa
Mariposa
Conducto de admisin
Flujo de aire aspirado
Flujo de aire de derivacin
Actuador de ralent
Unidad de control
Magnitudes de entrada
Figura 64
52
Sistema EGAS
Este sistema de acelerador electrnico es el que reutiliza actualmente en la mayora de
motores de gasolina. Este sistema consta de un mdulo potenciomtrico en el
acelerador, la ECU, y un dispositivo de estrangulacin. Este dispositivo tiene incluido
una vlvula de mariposa, el accionamiento elctrico mediante un motor de CC y un
sensor de ngulo de mariposa (Figura 66).
Cuando se detecta la posicin del acelerador, la ECU calcula la posicin que debe
adquirir la mariposa teniendo en cuenta el estado actual de funcionamiento del motor
(temperatura, rpm, carga, etc). El sensor de ngulo de mariposa informa a la ECU de su
posicin, creando un lazo cerrado y haciendo posible el cumplimiento exacto del ngulo
requerido
Figura 66
53
SENSORES
Preparacin Seales
ORDENADOR
Etapas finales
ACTUADORES
Finales
Diagnostico
E. analgicas
R
A
M
A
N
A
L
O
G
A/D
A
N
A
L
O
G
SALIDAS ANALOG
.
Inyector 1
...
...
...
...
...
....
SALIDAS DIGITAL.
D
I
G
I
T
A
L
E. mando
Int.presin AA
Int mariposa cerrada
Int plena carga
......................
Int freno
Int. Cambio
D
I
G
I
T
A
L
R
O
M
RAM
EPROM
Figura 67
En la siguiente foto (figura 68) se muestra una ECU del sistema Motronic 1.3 de un
BMW 320i, en el que se puede apreciar las diferentes partes de que consta la unidad de
control. Seguidamente haremos un estudio de cada una de sus partes de forma
generalizada.
Figura 68
54
Entrada de seales
Las seales de entrada son preparadas por circuitos electrnicos que adaptan la seal
para poder ser ledas por el microcontrolador. La seales de entrada de mando son
normalmente interruptores con tensiones de 12v 5v que antes de ser ledo por el
microcontrolador pasan por un buffer para convertir a seales de tensin (5v), con la
intencin de protegerlo. En la figura 69 se muestra una parte del esquema electrnico
de la ECU de la figura 68, en la que una serie de seales de mando son previamente
intercaladas por un buffer antes de ser ledas por el micro.
Figura 69
Las seales de entrada analgicas son preparadas a travs convertidores de seal,
amplificadores y filtros antes de llegar al micro. En la figura 70 se muestra un ejemplo
de cmo se trata la seal del captador del cigeal.
Figura 70
Para seal del sensor del rbol de levas (Figura 71), se rectifica la seal produciendo a
la salida pulsos de tensin que se interpretarn como que el cilindro 1 est en
compresin, puesto que el sistema Motronic 1.3 es semisecuencial .
55
Figura 71
El ncleo de la CPU
El procesamiento de las seales est gestionado por el ncleo de la CPU, formado por
un microcontrolador (80C515), una memoria RAM adicional de escritura-lectura de 8K
(necesaria para almacenar valores de clculo, valores de adaptacin y posibles averas
que surjan en el sistema global (diagnstico)), una memoria EPROM adicional de 16K
(en la cual estn almacenadas las curvas caractersticas del motor y los campos
caractersticos para el control del motor). En CPUS ms modernas, los datos para el
bloqueo electrnico del arranque, datos de adaptacin y fabricacin, memoria de averas
y datos congelados de esta avera, se guardan en una memoria EEPROM (memoria de
escritura y lectura no voltil, se borra elctricamente).
El microcontrolador 80C515 contiene una memoria ROM de 8K de 8 bits, una memoria
RAM de 256 bytes, 6 puertos de 8 bit de entrada-salida digitales, un canal serie fullduplex, 12 vectores de interrupcin, 8 A/D de 8 bits, 3 timers/contadores de 16 bits y
perro guardin con timer de 16bits. La frecuencia de trabajo es de 12MHz, realizando
tiempos de instruccin de 1microsegundo.
Figura 72.
56
Figura 73
Figura 74
57
Figura 75
58
Para cumplir con estas normativas se obliga a los fabricantes de automviles que
incorporen en la UCE unas funciones de diagnstico que reconozcan los fallos de
sistemas relevantes a los gases de escape de forma adicional a los cdigos de avera del
propio fabricante. En cada pas se fijan valores lmite especficos de tal forma que si se
sobrepasan stos, se indica el defecto al conductor mediante un testigo de averas
Los diagnsticos de a bordo (OBD) americanos fueron el referente para los dems
pases del mundo, evolucionando para incorporar nuevas funciones (OBD, OBDI,
OBDII).
Con la introduccin de la norma de gases de escape Euro 3 (2000) se introdujo el
EOBD (diagnosis de a bordo europeo), obligando a los fabricantes a disponer de un
diagnstico que detecte fallos que tengan influencia sobre el comportamiento de los
gases de escape. A partir de 2000 en motores Otto, a partir de 2003 para motores diesel
y a partir de 2005 para vehculos industriales pesados. Los umbrales de error fijados son
para CO: 3.2 g/Km., HC: 0,4 g/Km., NOx: 1,2 g/Km y PM: 0,18 g/KM.
En estos diagnsticos deben supervisarse todas las seales de salida, entrada y los
componentes mismos.
La normativa EOBD exige una supervisin elctrica (cortocircuitos, interrupciones)
mientras que la CARB exige adems plausibilidad entre componentes y supervisin de
los actuadores.
Cuando se detecta un fallo el testigo de avera (MIL, Malfunction Indicador Lamp) se
enciende a ms tardar en el tercer ciclo de marcha. Si el fallo desaparece (fallo
intermitente), ste se conserva en la memoria de averas durante 40 ciclos de marcha.
El MIL se apaga de nuevo al tercer ciclo de marcha sin averas. Si el fallo puede
ocasionar daos en el catalizador el MIL parpadea.
59
60
Catalizador.
Se realiza una supervisin mediante la observacin de la seal de la sonda Lambda. Si
el catalizador tiene una segunda sonda Lambda en la salida, se comprueban las
diferencias entre las dos seales.
Tensin de la batera.
Se realiza una comprobacin del margen de la seal y se verifica la plausibilidad con las
rpm. En caso de fallo se sustituye por un valor preestablecido hasta que la lnea queda
intacta.
La sonda Lambda.
La sonda Lambda de dos puntos se somete a una prueba de plausibilidad con respecto a
la tensin de salida y frecuencia. La sonda de banda ancha se comprueba de otra forma,
slo cortocircuitos e interrupciones y plausibilidad con datos de su diagrama
caracterstico memorizado. Una avera provoca un funcionamiento de emergencia con
una disminucin de caudal de inyeccin y presin en el turbo.
61
62
Figura 76
A partir de 2008 la comunicacin entre las ECUS y las interfaces se realizar con el
bus CAN (ISO 15765-4).
Sobre la utilidad real de estos interfaces de diagnstico debe hacerse un comentario. Los
talleres de automocin invierten mucho dinero con estos interfaces, creyendo que es la
panacea de la reparacin y es un error. El scanner sirve como una gua y ayuda para
conocer dnde puede localizarse la avera y no de la avera en s, dejando a un lado los
conocimientos tcnicos que se deben de tener sobre electrnica y mecnica
indispensables para el entendimiento de los diferentes sistemas de inyeccin, ABS, etc.
Es decir, con unos buenos conocimientos sobre electrnica, mecnica, y saber que
sistema se est reparando se pueden solucionar el 90% de las averas con un multmetro
u osciloscopio, sin necesidad de un interfaz.
Todava se pueden encontrar talleres de automviles que delegan en el interfaz la
solucin de la avera, en el mayor de los casos interpretando mal la avera, y
sustituyendo cualquier sensor, actuador, etc. que aparezca con fallo sin antes haberlo
comprobado. He podido comprobar cmo averas que con solo 30 euros estaban
solucionadas, llegar el cliente a pagar 1000 euros e irse tan contento porque se lo ha
podido solucionar tal concesionario que tena un scanner valorado en 8000 euros.
Clase
0 SAE
1 Fabricante del vehculo
As por ejemplo, el cdigo de avera P0003, es un cdigo de avera del motor, EOBD y
SAE (genrico).
63
Figura 77
64
Captulo 2
Realizacin del programa OBDII.
2.0 INTRODUCCIN
El objetivo de este proyecto es realizar un hardware y software capaz de visualizar en
una pantalla de ordenador todos los modos estandarizados en que se presenta la
informacin del sistema de diagnostico OBDII.
Los modos en que se presenta la informacin son los siguientes:
Modo 1. Identificacin de Parmetro (PID, Process Identification), es el acceso a
datos en vivo de valores analgicos o digitales de salidas y entradas a la ECU.
Este modo es tambin llamado flujo de datos. Aqu es posible ver, por ejemplo,
la temperatura de motor o el voltaje generado por una sonda lambda.
Modo 2. Acceso a Cuadro de Datos Congelados. sta es una funcin muy til del
OBD-II porque la ECU toma una muestra de todos los valores relacionados con
las emisiones, en el momento exacto de ocurrir un fallo. De esta manera, al
recuperar estos datos, se pueden conocer las condiciones exactas en las que
ocurri dicho fallo. Slo existe un cuadro de datos que corresponde al primer
fallo detectado.
Modo 3. Este modo permite extraer de la memoria de la ECU todos los cdigos de
fallo (DTC - Data Trouble Code) almacenados.
Modo 4. Con este modo se pueden borrar todos los cdigos almacenados en la PCM,
incluyendo los DTCs y el cuadro de datos grabados.
Modo 5. Este modo devuelve los resultados de las pruebas realizadas a los sensores
de oxgeno para determinar el funcionamiento de los mismos y la eficiencia del
convertidor cataltico
Modo 6. Este modo permite obtener los resultados de todas las pruebas de abordo.
Modo 7. Este modo permite leer de la memoria de la ECU todos los DTCs pendientes.
Modo 8. Este modo permite realizar la prueba de actuadores. Con esta funcin, el
mecnico puede activar y desactivar actuadores como bombas de combustible,
vlvula de ralent, etc.
Para la realizacin del hardware se escogi la utilizacin de un microcontrolador ya
programado que es de uso frecuente en los diseadores profesionales de herramientas de
diagnosis. Concretamente el chip seleccionado es el ELM 327(PIC 18F2X8X), capaz de
actuar como intrprete (OBD-RS232) de los siguientes protocolos de comunicacin:
65
-ISO 9141-2
-SAE J1850 PWM
-SAE J1850 VPW
-ISO 14230-4
-ISO 15765-4
-SAE J1939
66
Figura 2
Para verificar el perfecto funcionamiento del programa, tuve que realizar mltiples
comprobaciones con la ayuda de un simulador de ECU`s (Figura 3) para un protocolo
muy utilizado, el ISO9141-2. Este simulador es capaz de generar a travs de sus
potencimetros, seales de cinco sensores diferentes, cdigos de avera y datos
congelados.
La comunicacin con el ELM 327 a travs del puerto serie (RS232), la he realizado con
funciones y eventos especficos de Visual Basic 2005 los cuales sern comentados ms
adelante. El lenguaje de esta comunicacin se realiza con comandos propios del
ELM327. Se puede establecer comunicacin con el ELM327 a travs de un terminal de
comunicaciones (Hyperterminal de Windows), configurando apropiadamente el puerto
serie (COM), y enviando estos comandos a travs de un editor de texto .
Estos comandos se dividen en dos clases, los comandos AT y los OBD. Los comandos
AT se preceden con los los caracteres AT, un espacio y el comando. Estos comandos
AT se dividen a su vez en:
Comandos generales (los cuales sirven para resetear el chip, poner por defecto
configuraciones del chip como la velocidad de comunicacin, etc). Por ejemplo:
67
(1 Byte)
01 Muestra flujo de datos en tiempo real
02 Muestra una serie de datos del momento en que se produjo la avera (freeze
frame) .
03 Muestra las averas ocurridas en forma de cdigo .
04 Borra las averas
05 Realiza un test del sensor de oxigeno
06 Realiza un test de la monitorizacin no continua.
07 Muestra las averas pendientes en forma de cdigo.
08 Realiza prueba con actuadores
09 Identificacin del vehculo
El segundo byte, tercer byte, etc., especifican la informacin que se requiere. Por
ejemplo:
Si se quiere preguntar cul es la temperatura del motor, el primer byte ser el modo
01 que muestra flujo de datos y el segundo byte es el PID 05.
En el documento SAE J1979 se establecen todas las regulaciones sobre OBD. As por
ejemplo, en la siguiente figura 4 se detalla el PID 05.
68
Figura 4
De la tabla se deduce:
Modo
01
PID
05
Bytes dev
1
Valor Min
-40C
69
Figura 6
70
71
Timer6.Enabled = True
El puerto COM se inicia con el puerto serie (1), se pone la variable eventport=true, se
lanza el mensaje con el comando AT ms un (enter) y se espera una respuesta por parte
de la ECU, seguidamente se habilita un temporizador a un segundo, con el objeto de
que si pasado este tiempo la ECU no responde, se vuelva a llamar a la funcin
(Configura_Portcomm()) para que aumente el nmero de puerto y vuelva a realizar otra
comprobacin.
Si la ECU responde, ser a travs del evento (OnComm) y entrar en una parte de la
funcin donde se localizar el evento actual a travs de la variable (eventport) y se
llamar de nuevo a la funcin (maquina_estado_inicio) para que siga con el protocolo
de conexin. Si no se consigue ninguna conexin, se informar al usuario con un
mensaje de que no eiste conexin alguna.
Si se pasa al siguiente estado de conexin se resetea el hardware con el comando ATZ
y se vuelve a llamar a la maquina de estado.
Con el siguiente estado de conexin (protocoloautomatico() ) se informa al usuario
de qu protocolo se va a utilizar en la conexin, ya que se ha predeterminado que el
ELM327 busque el protocolo que utiliza la ECU de forma automtica (esta opcin viene
por defecto).
texto_salida = "atsp0" 'comando protocolo
texto_salida1 = CObj(texto_salida + Chr(13)) 'el comando + enter
eventproauto = True 'le informo a on_comm cual evento es.
AxMSComm1.Output = texto_salida1
72
respuesta
end if
Finalmente, el ltimo estado es el de recibir informacin sobre las variables de
monitorizacin del sistema OBD, estado del MIL y nmero de averas registradas, a
travs del PID 0101.
texto_salida
=
"0101"
'comando
de
monitoreo
continuo,no
continuo,MIL,ndtc.
texto_salida1 = CObj(texto_salida + Chr(13)) 'el comando + enter
eventmonitoreo = True 'le informo a on_comm cual evento es.
AxMSComm1.Output = texto_salida1
Este PID devuelve cuatro bytes, del primer byte(A) el bit ms significativo informa de
si existen averas y los bits de (0-6) el nmero de averas. Por ejemplo si el byte es el
(10000011), se enciende el MIL y existen 3 averas. El segundo byte (B) informa sobre
el estado del test de monitorizacin continua, el modo con que se informa se observa en
el siguiente cuadro.
Bit=1 Si es soportado
Bit=1 Si es incompleto
Fallo de encendido
B0
B4
Sistema de combustible
B1
B5
Componentes
B2
B6
Reservado
B3
B7
Bit=1 Si es soportado
Bit=1 Si es incompleto
Catalizador
C0
D0
Calent. Catalizador
C1
D1
Sistema de evaporacin
C2
D2
C3
D3
A/C Refrigerante
C4
D4
Sensor de oxigeno
C5
D5
73
C6
Sistema EGR
D7
D6
Grficos.
Para poder acceder a todos los PIDs para ver cuales son soportados, debe accederse a
la informacin de los PID,s (0100,0120,0140). A continuacin se exponen las funciones
para acceder al PID (0100). La primera funcin es una mquina de estados que activa
una funcin diferente cada vez que entra el flujo del programa. La segunda funcin
extrae la informacin del evento (OnComm) para posteriormente aadirlo a la
combobox.
Funcin1
Public Sub maquina_estado_pids()
selec_pids_soportados += 1
Select Case selec_pids_soportados
Case 1
pids_soportados1()
Return
Case 2
pids_soportados2()
Return
Case 3
pids_soportados3()
Return
End Select
Funcin2
Public Sub pids_soportados1()
Dim texto_salida As String
Dim texto_salida1 As Object
eventpid = "0100"
Texto_recibido.Text = ""
'miro pids soportados
texto_salida = "0100" 'comando reset
texto_salida1 = CObj(texto_salida + Chr(13))
AxMSComm1.Output = texto_salida1
'el comando +
End Sub
74
Figura 7
"(%)")
75
Figura 8
En el recuadro de la parte inferior (Figura 8) derecha hay una caja de seleccin
(Combobox), un botn de aceptar y otro de guardar.
Cuando se quiere guardar en una base datos los valores adquiridos durante la prueba se
pulsa el botn de (Guardar), apareciendo en un primer plano el cuadro de la Figura 9.
Figura 9
En este cuadro (Figura 9) se anotan los datos identificativos de la prueba, adems de un
informe que el usuario puede completar sobre alguna relevancia de la prueba.
En esta parte del programa nos introducimos en la gestin de bases de datos con
ADO.NET. Partiendo del hecho de que los valores adquiridos se guardan en un array
(arrays_variables(n)), el proceso siguiente es introducir los valores obtenidos de
los sensores y los datos identificativos en la base de datos de la siguiente forma. En
76
primer lugar se crea una base de datos con Microsof Access (Figura 10) con todos los
campos que incluye el cuadro adems de los valores adquiridos (Datos_0,Datos_1,)
Figura 10
Una vez creada la base de datos se procede a la creacin del codigo. En el momento que
se abre el cuadro se conecta con la base de datos (degraficos.mdb) y creamos un dataset
de esta base, seguidamente creamos un datatable con los datos de las filas y columnas .
' La cadena de conexin
Dim sCnn As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=C:\Bases_de_datos\degraficos.mdb"
' La cadena de seleccin
Dim sSel As String = "SELECT * FROM degrafico ORDER BY ID"
conexion = New OleDbConnection(sCnn)
conexion.Open()
' Comprobar si hay algn error
'Establecemos las cadenas de comandos y conexiones para
'acceder a cada una de las tablas de la base de datos
Try
da = New OleDbDataAdapter(sSel, sCnn)
Dim cb As New OleDbCommandBuilder(da)
' Crear los comandos de insertar, actualizar y eliminar
' Como hay campos con caracteres especiales,
' al usarlos incluirlos entre corchetes.
cb.QuotePrefix = "["
cb.QuoteSuffix = "]"
' Asignar los comandos al DataAdapter
' (se supone que lo hace automticamente, pero...)
da.UpdateCommand = cb.GetUpdateCommand
da.InsertCommand = cb.GetInsertCommand
da.DeleteCommand = cb.GetDeleteCommand
' Esta base de datos usa el ID con valores automticos
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
MiDataset = New DataSet
'enlazando al dataset con el adapter correspondiente.
da.Fill(MiDataset, "degrafico")
'creamos las instancias datatables para ca tabla
dt = New DataTable
'llenamos las tablas con los adaptadores
da.Fill(dt)
' Habilitar los controles
conexion.Close()
End Sub
77
En el momento que pulsamos el botn de aceptar, llenamos las filas del datatable (dt)
con los valores adquiridos y lo guardamos en la base de datos.Para guardar de forma
ms flexible los datos enteros en la base de datos , he tenido que hacer una funcin que
me los convirtiese en texto(conver_array_texto_int(arrays_variables(0))),
junto con una consigna de principio y final.
' Crear un nuevo registro
Dim dr As DataRow = dt.NewRow()
dr("Marca") = txt_marca.Text
dr("Modelo") = txt_modelo.Text
Todos los datos identificativos
.
...
dr("Datos_0") = conver_array_texto_int(arrays_variables(0))
dr("Datos_1") = conver_array_texto_int(arrays_variables(1))
Todos los valores adquiridos
.
.
' Aadir la nueva fila a la tabla
dt.Rows.Add(dr)
' Guardar fsicamente los datos en la base
da.Update(dt)
dt.AcceptChanges()
' Si es el primer registro de la base,
' volver a leer los datos para actualizar los IDs
If CInt("0" & dr("ID").ToString) = 0 Then
dt = New DataTable
da.Fill(dt)
End If
End Sub
Si se quiere volver a ver alguna prueba efectuada, se pulsa la flecha del (combobox),
apareciendo todos los grficos guardados con anterioridad. Al elegir uno de ellos,
aparece un cuadro (Figura 11) que identifica los valores guardados. En este cuadro se
pueden actualizar y eliminar los valores y el informe, ante cambios que quiera realizar
el usuario.
Figura 11
78
Para crear el cdigo de este cuadro, se conecta primero con la base de datos
(degraficos.mdb) de la misma forma que se hizo en el cuadro anterior. Para acceder a
los datos , una vez que tenemos el dataset, extraemos del dataset los valores de las filas.
txt_marca.Text = dr("Marca")
txt_modelo.Text = dr("Modelo")
arrays_variables_salida(0) = conver_texto_array_int(dr("Datos_0"))
arrays_variables_salida(1) = conver_texto_array_int(dr("Datos_1"))
..
Para eliminar la fila:
dt.Rows(fila).Delete()
' Actualizar fsicamente la base de datos
da.Update(dt)
' Aceptar los cambios en la copia local
dt.AcceptChanges()
Para actualizar:
Dim dr As DataRow
' Asignar los datos de los textbox a la fila
dr = dt.Rows(fila)
dr("Marca") = txt_marca.Text
dr("Modelo") = txt_modelo.Text
conexion.Open()
da.Update(dt)
dt.AcceptChanges()
Tabla de datos.
Cuando se pulsa la pestaa superior de (Tabla de datos), aparece una tabla (Figura 12)
con todos los PIDs del sistema de diagnostico OBD. En el combobox inferior se puede
elegir qu seleccin se quiere activar para leer los PIDs. Por defecto se ha establecido
(PIDs soportados), el usuario tendr que elegir en su recuadro de chequeo
correspondiente si lo quiere leer o no, y luego pulsar el botn de leer .
79
Figura 12
Para realizar este cdigo hay que crear un y configurar el (datagrid) con todos los
componentes que se ven en el cuadro e incluir los valores ledos de los PID`s soportados
en el cuadro.
Configuramos la tabla:
dt.Columns.Add(New DataColumn _
("Marcar", GetType(Boolean)))
..
dRow = dt.NewRow()
dRow("Marcar") = False
dRow("Soportados") = False
dRow("PID") = "04"
..
Analisis de sensores.
Cuando se pulsa la pestaa superior (Anlisis de sensores) aparece un cuadro (Figura
13), en el que se puede comparar mediante un grfico dos monitorizaciones realizadas.
Con la intencin de que el usuario pueda hacer comparaciones entre modelos de
grficos con valores establecidos en un determinado vehculo. Existe la posibilidad de
agregar a la grfica una lnea de tendencia o una ecuacin de la recta para cada uno de
los trazos. Para realizar el cdigo de este grfico, como en el momento que pulsamos el
icono (Leer datos de sensores) conectamos con la base de datos (degraficos.mdb),
llenamos la variable datatable (dt) con la tabla entera de la base de datos. Por lo que
podemos acceder a la informacin de cada fila y columna sin problema.
En el primer combobox podemos elegir el registro:
For f = Me.dt.Rows.Count() - 1 To 0 Step -1
drr = dt.Rows(f)
cmb_modelo1.Items.Add(drr("Guardarcomo").ToString)
cmb_modelo2.Items.Add(drr("Guardarcomo").ToString)
Next
80
..
For t = 0 To 4
If cmb_modelo1_y.SelectedIndex = t Then
array_modelo1_ejey =
arrays_variables_salida_modelo1(t)
End If
Next
Una vez que tenemos los datos de las variables del eje(x) y eje(y) introducidos en
diferentes arrays, configuramos un grfico (ChartSpace)e introducimos los arrays
como coordenadas de los trazos.
Filtramos los valores e introducimos los datos en el array matriz
While (array_modelo1_ejex(i) < 4000)
If (array_modelo1_ejex(i) > 900) Then
matriz_x(num) = array_modelo1_ejex(i)
matriz_y(num) = array_modelo1_ejey(i)
num = num + 1
End If
i = i + 1
End While
Configurando el Chart
..
ChartSpace1.Charts(0).Title.Caption = "Comparacion entre modelos"
ChartSpace1.Charts(0).Axes(1).HasTitle = True
..
Introduciendo datos en chart.
.
81
ChartSpace1.Charts(0).SeriesCollection(0).SetData(OWC10.ChartDimension
sEnum.chDimYValues, c.chDataLiteral, matriz_y)
ChartSpace1.Charts(0).SeriesCollection(0).SetData(OWC10.ChartDimension
sEnum.chDimXValues, c.chDataLiteral, matriz_x)
Figura 13
82
A7
A6
Definicin
A5
A4
Definicin
83
A3
B7
B3
A2
B6
B2
A1
B5
B1
A0
B4
B0
3rd
Carcter
4th
carcter
5th
carcter
Definicin
Cuando se recibe la respuesta por parte de la ECU, a travs del evento AxMscomm
espero el ltimo cararter y que la variable eventpid=dtc. Seguidamente, a travs del
cdigo siguiente y guindome por la definicin de los caracteres expuestos en los
cuadros anteriores, se extraen los cdigos de error.
If (ultimocaracter = ">") And (eventpid = "dtc") Then
tmpstr1 = Mid(TmpStr, 8, StrLen - 12)
StrLen1 = Len(tmpstr1)
'se limpia de espacios en blanco
For I = 1 To StrLen1 - 1
caracter = Mid(tmpstr1, I, 1)
If caracter <> " " Then 'esto es un negado
filedtc_ayuda(num) = caracter
num += 1
End If
Next I
'se ponen en cada elemento de array el dtc en binario
'luego a traves de la funcion credtcstring introduzco
'en el array los dtc
num1 = num / 4
For I = 1 To num1
For k = 1 To 4
p += 1
numbinario =conver_hex_binario(filedtc_ayuda(p - 1))
filedtc(I - 1) = filedtcviejo + numbinario
filedtcviejo = filedtc(I - 1)
Next k
'creadtcstring(filedtcviejo) convierte
'la lista de bits en lo dtc(string)
dtcstrings(I - 1) = creadtcstring(filedtcviejo)
filedtcviejo = Nothing
84
Una vez que se han aadido las averas en el combobox (cbox_dtc), al elegir un cdigo
de avera, aparece la avera en el textbox (Avera establecida). Para ello hay que llamar
a la base de datos (dtc.mdb) y consultar la informacin de la avera de ese cdigo de
avera. Como puede elegirse el fabricante del vehculo para los cdigos especificos de
avera, al realizar la consulta en la base de datos se buscar en los genricos (en los que
tambin se contienen los cdigos (P1xxx) y el especfico. A continuacin se muestra un
cdigo ejemplo:
Se elige el dtc.Seconsulta en la base de datos a travs de la funcin (dtc_eobd) enviando
como parametros el cdigo de avera y el faricante del vehiculo, devolviendo la avera
establecida.
dtcc = cbox_dtc.SelectedItem
txtdtc.Text = dtc_eobd(dtcc, dtc_especifico)
Este es parte del cdigo en el que se realiza la consulta a la base de datos (dtc.mdb):
Dim sCnn As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=C:\Bases_de_datos\dtc.mdb"
Dim adap1 As OleDbDataAdapter
Dim adap2 As OleDbDataAdapter
dtable_generico = New DataTable
dtable_especifico = New DataTable
adap1 = New OleDbDataAdapter("SELECT * FROM dtc_generic,sCnn)
adap2
=
New
OleDbDataAdapter("SELECT
*
FROM
"
&
dtc_especifico, sCnn)
adap1.Fill(dtable_generico)
adap2.Fill(dtable_especifico)
Figura 14
Al pulsar el botn (BORRAR DTC) se eliminan automticamente de la EEPROM de la
ECU todas las averas establecidas, las pendientes y las actuales.
En el momento que se acciona el botn de borrar cdigos se ejecuta el siguiente
segmento de programa:
Texto_recibido.Text = ""
'Reseteo el elm 327 al inicio
85
Texto_recibido.Text = ""
texto_salida = "0202" 'comando actuales
texto_salida1 = CObj(texto_salida + Chr(13))
'el comando
+ enter
eventpid = texto_salida
AxMSComm1.Output = texto_salida1
En el evento AxMscomm:
..
dtc_congelado.Text = "P" & (num1) & (num2) & (num3) & (num4)
maquina_estado_pids_datoscongelados()
.
En el segundo proceso (consulta_datocongelado()), se consulta a la base de datos
(dtc.mdb)la avera establecida.
.
rtxt_congela.Text
=
dtc_eobd(dtc_congelado.Text,
"dtc_generico")
maquina_estado_pids_datoscongelados()
En el tercer proceso se busca cuales son los PIDs soportados de los datos congelados.
Texto_recibido.Text = ""
texto_salida = "0200" 'comando actuales
texto_salida1 = CObj(texto_salida + Chr(13))
enter
eventpid = texto_salida
AxMSComm1.Output = texto_salida1
'el comando +
86
trozo = pidsoportados_congelados(numpid_congelado)
Select Case trozo
Case Nothing
numpid_congelado = 0
Exit Sub
Case "04"
texto_salida = "0204" 'comando actuales
texto_salida1 = CObj(texto_salida + Chr(13))
'el
comando + enter
eventpid = texto_salida
AxMSComm1.Output = texto_salida1
Figura 15
87
Con el proceso (pids_soportados_so2()), a travs del PID (050001) Banco1Sensor1, PID(050002) para Banco1-Sensor2 , etc.
Con el proceso (ver_pids_tabla_so2()) se seala en la tabla los PIDs que son
soportados.
..
'sealo en la grilla los pids soportados,uso maquina porque est
el 0100,0200
For fila = 0 To 9
If DataGrid3.Item(fila, 0) = True Then
num_estados_so2 += 1
ordenestado_so2(num_estados_so2 - 1) = fila
End If
88
En el evento AxMscomm.En este caso por ejemplo si el TID 05xx01,Banco xSensor x,(Voltaje umbral sensor rico a pobre).Introduciendo en la tabla (datagrid3)el
dato leido.
..
Dim trozodato As String
trozodato = Mid(TmpStr, 18, 2)
For I = 1 To 2
FileData(I - 1) = CInt(Asc(Mid(trozodato, I, 1)))
Next I
num1 = hexa(FileData(0))
num2 = hexa(FileData(1))
RpmA = (num1 * 16 + num2)
RpmB = RpmA * 0.005
DataGrid3.Item(0, 3) = CStr(RpmB)
maquina_estado_datos_so2()
89
Figura 16
Figura 17
90
Captulo 3
Realizacin del comprobador de electrovlvulas
3.0 INTRODUCCIN
Ante la necesidad de poder comprobar las electrovlvulas accionadas por seales en
PWM instaladas en la mayora de vehculos, se ha construido un comprobador de
electrovlvulas capaz de generar una seal de PWM con frecuencia entre (245 Hz
4165Hz) y duracin del ciclo (%) regulable a travs de potencimetros, un
frecuencimetro con lectura hasta un mximo de 1MHz y un lector del Duty Cicle en
(%). Algunos ejemplos de electrovlvulas accionadas por seales PWM son: sistema
EGR, regulacin presin de sobrealimentacin, vlvula cnister, regulacin avance de
inyeccin diesel, regulacin presin gasoil en bombas de alta presin (Common Rail),
etc.
En el comprobador diseado, puede accederse a cualquier opcin con un men
desplazable visualizado en una pantalla de LCD, controlada por tres pulsadores para
desplazarse arriba y abajo por el men, y un pulsador central de OK para confirmar la
eleccin de la herramienta utilizada.
A continuacin se muestran las diferentes pantallas que se visualizan en el men:
Frecuencimetro.
91
Figura 1
Regin hmica: cuando el valor del voltaje gate-source es mayor al voltaje umbral
VGS>>VGS(th) y VDS es igual o menor que VGS-VGS(th),el elemento entra en la
regin ohmica.
Las caractersticas del MOSFET (BUK555-100A) son las siguientes (Figura 2):
93
Figura 2
94
Figura 3
95
Una vez hemos configurado cales son las entradas y salidas del micro, temporizadores,
pins para los CAD y configuracin a travs de las libreras del compilador del manejo
de la pantalla LCD, comenzamos con el cdigo del programa.
set_tris_a(0b11111111);
set_tris_c(0b11110101); //RC0 entrada,rc1 salida
set_tris_b(0x00);
//RB0-RB7 salidas
output_b(0x00); //Borra salidas
output_c(0x00); //Borra salidas
setup_adc_ports(AN0_AN1_AN3);
//RA0 entrada analgica
setup_adc(adc_clock_div_32); //Ajusta frecuencia de muestreo del ADC
En primer lugar creamos mediante un bucle infinito un rastreo del estado de cada
pulsador. En el momento que detecta un pulso, el flujo del programa se deriva a una
funcin (maquina_estado_lcd(menu,subebaja) que provoca el cambio del men en la
pantalla LCD.
while(1){
if (input(PIN_C2)==TRUE)//bajar
{
while (input(PIN_C2)==true) delay_ms(10);
}
if (input(PIN_C5)==TRUE)//subir
{
while (input(PIN_C5)==true) delay_ms(10);
}
maquina_estado_lcd(menu,subebaja);
if (input(PIN_C4)==TRUE) //ok
{
while (input(PIN_C4)==true) delay_ms(10);
..
maquina_estado_menu(menu);
}
}
}
Cuando el usuario ha elegido la herramienta y pulsa (OK), el flujo del programa se
deriva a una funcin que tiene como parmetro una variable que indica el men elegido.
Dentro de esta funcin tendremos un estamento (Switch-Case) en el que mediante la
variable (menu) se elegir la funcin a realizar: Frecuenciometro, Medidor Duty-Cycle
o Probador electrovlvulas.
Para la realizacin del frecuencimetro, se activa el timer1 y seguidamente un bucle que
origina una secuencia de un segundo exacto, al terminar el bucle se lee el contador del
timer1. Por ello el nmero de cuentas ser directamente la frecuencia establecida. A
partir del nmero de cuentas durante un segundo puede obtenerse el periodo de la seal:
96
T=1seg/N de cuentas.
F=1/T= N de cuentas
Bucle de 1 segundo.
.
SET_TIMER1(0);
setup_timer_1 (T1_INTERNAL);
while (n1<50000)//true=3, false=4
{
n1++;
//1 cycles
if (t1_overflow)//true=2,false=3
{t1_overflow=0;freqc_high++;}//2 cycles
DELAY_US(7);
//(3+1+2+2+2+1+2+9)=20*50000=1s
}
Lectura de la frecuencia.
.
freqc_low=get_timer1();
freqc=make32(freqc_high,freqc_low);
97
porcentaje=(int)(porcento*100);
lcd_gotoxy(1,1);
printf(lcd_putc,"DUTY-CYCLE=%03d%c ",porcentaje,'%');
98
R1,R2,R3,R4=1K
R5=10K
R6=10M
R8=100K
R9=50K
RV1,RV2=1K
C1=0,1 F
C2=1000 f
C3,C4=27pF
X1=4Mhz
U2=LM7805
U1=PIC16F876A
Q1=BUK555
Q2=BC107
Q3=BC547
J1,J2,J3,J4,J5=Con 2pin
Mdulo LCD
Figura 4.Vista componentes amplificada.
99
Figura 7
100
Captulo 4
Conclusiones y trabajo futuro
4. Conclusiones
Las comprobaciones efectuadas por el interfaz de diagnostico en multitud de vehculos
ha sido bastante satisfactoria. Aunque me ha decepcionado un poco la baja cantidad de
sensores soportados por el fabricante en las unidades de control. Los vehculos
americanos ofrecan gran cantidad de sensores soportados mientras que los europeos y
asiticos casi la mitad. Pero a pesar de esto, los sensores soportados eran de una
importancia crucial para el seguimiento de una posible avera en la gestin electrnica
del motor. Con el objeto de llevar a la prctica mis conocimientos adquiridos en el
estudio de sistemas de inyeccin, electrnica de vehculos y conocimientos sobre OBD,
trabaj en un taller de vehculos durante siete meses incorporando a ste mi programa
sobre diagnosis de vehculos. Los casi 8000 cdigos de avera, genricos y especficos
del fabricante que incorpor en la base de datos del programa, me ayudaron en muchas
ocasiones a resolver averas que sorprendentemente en talleres con aparatos de
diagnosis de alto coste no interpretaban.
Durante este tiempo aprend que el aparato de diagnosis ms efectivo es el propio
tcnico con una base slida de conocimientos sobre electrnica de vehculos (sistemas
de inyeccin, conocimiento de la mecnica e hidrulica del motor) y que el interfaz de
diagnostico es simplemente una ayuda para llegar a la solucin de la avera.
La parte del programa Anlisis de sensores ha sido la ms interesante del proyecto
puesto que he podido comprobar que realmente funcionaba con bastante repetitividad.
Adems la comparacin entre modelos es muy flexible, del usuario depende qu tipo de
modelos memorizar para hacer sus propias investigaciones y llegar a la avera lo antes
posible. Expongo a continuacin un ejemplo de cmo visualizar una avera de forma
grfica. Para esta comprobacin he memorizado un modelo correcto de un vehculo,
posteriormente he provocado una avera y he memorizado el modelo incorrecto.
En la figura 1 se ha realizado una prueba para analizar el funcionamiento de la vlvula
AGR. El trazo azul es el modelo correcto memorizado, mientras que el trazo rojo es el
modelo de prueba en el que se le ha desconectado la vlvula AGR. En este grfico se
aprecia la diferencia de flujo existente entre 800 rpm y 3500 rpm, zona en la que trabaja
la vlvula AGR. Se observa que una reconduccin de gases de escape al conducto de
admisin provoca una disminucin de depresin que a su vez origina una menor
cantidad de flujo de aire comparado con el trazo rojo que no tiene activada la vlvula
AGR. Esta prueba se realiz con un Seat Len TDI (con bomba rotativa de mbolo
axial).
101
Figura 1
En la figura 2 est la misma prueba anterior pero con un Citroen Xsara Picasso
(sistema de inyeccin HDI), en la grfica se aprecia esta diferencia.
Figura 2
La misma prueba pero con un golf TDI (sistema de inyeccin UIS), (Figura 3).
Figura 3
En esta prueba se ha analizado el sistema de reconduccin de gases, pero con un poco
de imaginacin se pueden comprobar muchos ms componentes de forma proporcional
a los conocimientos que tenga el tcnico en esta materia (flexibilidad).
102
Figura 4
103
104
Bibliografa
-Regulacin electrnica Diesel (EDC).Publicado por Robert Bosch GmbH.
-Sistema de control electrnico (EDC16). Publicado por Robert Bosch GmbH.
-Gestin del motor de gasolina. Publicado por Robert Bosch GmbH.
-Sistemas de inyeccin Diesel Unidad de bomba- inyector/bomba-tubera-inyector.
Publicado por Robert Bosch GmbH.
-Manual de la tcnica del automvil (4Edicin). Publicado por Robert Bosch GmbH.
-Sistemas de inyeccin por acumulador Common Rail. Publicado por Robert Bosch
GmbH.
-Tecnologa Automocin 4.Publicado por Edeb. Texto : ngel Sanz Gonzlez.
-Inyeccin directa de gasolina Bosch Motronic MED 7.Publicado por Vicente Blasco
Argente para servicio wolkswagen.
-Sensores y Acondicionadores de seal.Publicado por Marcombo.Autor:Ramn Pallas
Areny.
-Turbo C,C++.Publicado por Paraninfo.Autor:Antonio Mata.
-Visual Basic.NET.Publcado por Anaya. Autor:Francisco Charte
105