Skip to Content

Comando CXDTC — Fallas de la ECU (DTC)

Lectura de los códigos de falla que informa la computadora del vehículo: los mismos que muestra un escáner de diagnóstico de taller, entregados por el protocolo normal del equipo.

  • Camiones y maquinaria (J1939): SPN, FMI, ECU que reporta, ocurrencias y lámparas del tablero.
  • Livianos (OBD2): el código estándar completo — P0301, P0420, P0087 — y la ECU que lo reporta.

Disponible en la serie de firmware 1.09.27, que al momento de publicarse esta página es una versión T (preliberación): se entrega por FOTA bajo pedido, no viene en la última versión estable. Dentro de la serie: T1 agrega J1939, T5 las señales, funciones EVAL y el token, T6 el reporte por generador y T9 el soporte OBD2. Con una T anterior a la 9 el equipo no lee fallas OBD2. Confirmar siempre con >QVR< qué T tiene instalada el equipo.


¿Para qué sirve?

Caso de usoDescripción
🔧 Mantenimiento predictivoSaber qué falla tiene el vehículo sin llevarlo al taller
🚨 Alerta inmediataReporte automático apenas aparece una falla nueva
📋 Diagnóstico remotoConsultar la lista de fallas activas en cualquier momento
⚙️ Reglas localesDisparar acciones en el vehículo (salida, buzzer, SMS) sin pasar por el servidor
📊 Integración simpleCada reporte es una foto completa: la plataforma no reconstruye estado

Compatibilidad

💾Firmware:v1.09.27
SP-IOT
SM-IOT

Rinho Zero IoT no tiene transceptor CAN: en ese modelo estos comandos responden NA. Para leer fallas del vehículo se debe usar Spider IoT o Smart IoT.

El protocolo configurado en CXCAN tiene que coincidir con el vehículo: J1939 en camión, OBDII en liviano. Si no coincide, el módulo informa siempre cero fallas.


Configuración — SCXDTC / QCXDTC

SCXDTC[en][,agesec[,busclr[,autorpt[,destino]]]] QCXDTC RCXDTC[en],[agesec],[busclr],[autorpt],[destino]
ParámetroDescripciónDefault
en0 = deshabilitado, 1 = habilitado0
agesecSegundos sin ver un código para darlo por resuelto (1-60)3
busclrReservado para el borrado de fallas en el vehículo0
autorpt0/1 — reporte automático ante falla nueva o resolución0
destinoDónde sale el reporte automáticoGP

Los campos son posicionales y opcionales de izquierda a derecha: >SCXDTC1< habilita dejando el resto como estaba, y >SCXDTC1,3,0,1,GP< los fija todos. Un campo inválido rechaza el comando entero sin persistir nada.

Destinos del reporte automático

TokenMedio
GPGPRS principal (default)
WIWiFi principal
BTBluetooth
TRPuerto serie
BGP / BWIGPRS / WiFi de backup
BACKBackup inteligente
LOGDatalog interno — se baja después con >QDL+<
ALLTodos los canales activos

Para probar la integración conviene arrancar con LOG: el reporte queda guardado en el equipo y se revisa entero al final del recorrido con >QDL+<, sin depender de que el servidor esté escuchando.

El campo busclr está reservado: se acepta y se guarda, pero todavía no dispara el borrado de fallas en el vehículo (DM11 en J1939 / Mode 04 en OBD2). Dejarlo en 0.


Consulta — QDTC

QDTC RDTC[n][;<fuente>:<ecu>:<código>:<fmi>:<ocurrencias>;…]
RespuestaSignificado
RDTC0Leyendo el bus, sin fallas activas
RDTC2;J:00:100:1:4;J:00:1761:1:12Dos fallas activas (camión)
RDTC1;O:00:P0301:0:0Una falla activa (liviano)
RDTCNALa lectura está deshabilitada (en=0)

En OBD2 el módulo consulta a la ECU cada 30 segundos: después de habilitar hay que esperar una vuelta antes de dar por buena una respuesta en cero. En J1939 la lectura es inmediata, porque la ECU emite el DM1 por su cuenta.


Borrado — CDTC

CDTC → RDTC OK

Borra la lista almacenada en el equipo. Si el vehículo sigue informando la falla, vuelve a aparecer en el ciclo siguiente — que es el comportamiento correcto: CDTC limpia el registro del equipo, no apaga la falla del vehículo.


Formato de la lista

J:00:100:1:4 │ │ │ │ └─ ocurrencias │ │ │ └─── FMI: cómo falla │ │ └─────── SPN: qué componente falla │ └────────── ECU que la reporta (hex) └──────────── fuente: J = J1939 · O = OBD2
FuenteCódigoFMIOcurrencias
J (J1939)SPN numérico (100, 1761)0-310-127
O (OBD2)Código estándar (P0301, U0100)siempre 0siempre 0

FMI y ocurrencias son campos propios de J1939: el protocolo OBD2 no los transmite, por eso van en cero. La letra inicial del código OBD2 indica el sistema: P motor y transmisión, C chasis, B carrocería, U red de comunicación.

FMI — el tipo de falla (J1939)

FMISignificado
0 / 1Valor por encima / debajo del rango normal
2Dato errático o intermitente
3 / 4Corto a positivo / corto a masa
5 / 6Circuito abierto / sobrecorriente
7El sistema mecánico no responde
12Componente dañado
31La condición existe, sin más detalle

La distinción importa: presión de combustible con FMI 1 es presión baja real (filtro, bomba); con FMI 5 es circuito abierto (sensor desconectado o cable cortado).


Reporte automático

Con autorpt=1 el equipo emite un reporte DF cuando aparece una falla nueva y cuando se resuelven todas:

>RDF00020826143512;2;J:00:100:1:4;J:00:1761:1:12< // dos fallas activas >RDF00020826150233;0< // resolución: no queda ninguna

La fecha y hora son las del momento de la falla, no las del envío: si el vehículo estaba sin cobertura, el reporte espera en la cola y al recuperar señal informa cuándo ocurrió realmente.

También se puede pedir a demanda, como cualquier otro reporte:

>QDF< // respuesta directa por el canal que preguntó >GDF00H< // encola el reporte al destino configurado

Señales para reglas

Las fallas son disparadores del motor de eventos, combinables con cualquier otra señal:

SeñalSe activa cuando
DTC00Hay al menos una falla activa
DTC01Apareció una falla nueva
DTC02Hay lámpara de tablero encendida (sólo J1939)
DTC03Se limpiaron todas las fallas
>SRL05E;TRG=DTC01+;ACC={GDF00H}< // falla nueva → reporte al server >SRL07E;TRG=DTC02+;ACC={SSSXP0011}< // lámpara encendida → salida en cabina

Funciones EVAL

FunciónDevuelve
DTCN()Cantidad de fallas activas
DTC(n)La sub-señal DTC0n (DTC(0) = hay fallas, DTC(2) = lámpara encendida)
DTCH(spn)1 si ese SPN está activo — sólo J1939

Token de plantilla

'DTC' inserta la lista completa de fallas en un reporte de usuario (UC) o en una acción dinámica (DA):

>SUC00 fallas:'DTC'<

Límites

LímiteValor
Fallas simultáneas en la tabla32
Fallas por trama~15 (la cantidad informada es siempre la real; la lista se trunca)
Fallas en el token 'DTC'~7 (buffer de 128 bytes)
Período de consulta OBD230 s (se espacía a 5 min si ninguna ECU responde en 5 ciclos)
Intervalo mínimo entre reportes automáticos10 s
Memoria con la lectura habilitada768 bytes (con en=0 no se reserva nada)

Qué no hace todavía: borrado de fallas en el vehículo (busclr), fallas históricas o pendientes (DM2 / Mode 07), lámparas de tablero en OBD2, y DTCH() sobre códigos OBD2.

Carga sobre el bus: en J1939 el módulo es escucha pura, no transmite nada. En OBD2 emite una consulta Mode 03 cada 30 segundos, el mismo pedido que hace un escáner de diagnóstico.


Ejemplo completo

>QCXCAN< // 1. verificar el protocolo (J1939 u OBDII) >SCXDTC1,3,0,1,GP< // 2. habilitar con reporte automático al server >QCXDTC< // → RCXDTC1,3,0,1,GP >QDTC< // 3. estado actual // → RDTC1;O:00:P0301:0:0 (Chevrolet Tracker con misfire en cilindro 1)

Ver También

Última actualización