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 uso | Descripción |
|---|---|
| 🔧 Mantenimiento predictivo | Saber qué falla tiene el vehículo sin llevarlo al taller |
| 🚨 Alerta inmediata | Reporte automático apenas aparece una falla nueva |
| 📋 Diagnóstico remoto | Consultar la lista de fallas activas en cualquier momento |
| ⚙️ Reglas locales | Disparar acciones en el vehículo (salida, buzzer, SMS) sin pasar por el servidor |
| 📊 Integración simple | Cada reporte es una foto completa: la plataforma no reconstruye estado |
Compatibilidad
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ámetro | Descripción | Default |
|---|---|---|
en | 0 = deshabilitado, 1 = habilitado | 0 |
agesec | Segundos sin ver un código para darlo por resuelto (1-60) | 3 |
busclr | Reservado para el borrado de fallas en el vehículo | 0 |
autorpt | 0/1 — reporte automático ante falla nueva o resolución | 0 |
destino | Dónde sale el reporte automático | GP |
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
| Token | Medio |
|---|---|
GP | GPRS principal (default) |
WI | WiFi principal |
BT | Bluetooth |
TR | Puerto serie |
BGP / BWI | GPRS / WiFi de backup |
BACK | Backup inteligente |
LOG | Datalog interno — se baja después con >QDL+< |
ALL | Todos 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>;…]| Respuesta | Significado |
|---|---|
RDTC0 | Leyendo el bus, sin fallas activas |
RDTC2;J:00:100:1:4;J:00:1761:1:12 | Dos fallas activas (camión) |
RDTC1;O:00:P0301:0:0 | Una falla activa (liviano) |
RDTCNA | La 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 OKBorra 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| Fuente | Código | FMI | Ocurrencias |
|---|---|---|---|
J (J1939) | SPN numérico (100, 1761) | 0-31 | 0-127 |
O (OBD2) | Código estándar (P0301, U0100) | siempre 0 | siempre 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)
| FMI | Significado |
|---|---|
| 0 / 1 | Valor por encima / debajo del rango normal |
| 2 | Dato errático o intermitente |
| 3 / 4 | Corto a positivo / corto a masa |
| 5 / 6 | Circuito abierto / sobrecorriente |
| 7 | El sistema mecánico no responde |
| 12 | Componente dañado |
| 31 | La 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 ningunaLa 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 configuradoSeñales para reglas
Las fallas son disparadores del motor de eventos, combinables con cualquier otra señal:
| Señal | Se activa cuando |
|---|---|
DTC00 | Hay al menos una falla activa |
DTC01 | Apareció una falla nueva |
DTC02 | Hay lámpara de tablero encendida (sólo J1939) |
DTC03 | Se limpiaron todas las fallas |
>SRL05E;TRG=DTC01+;ACC={GDF00H}< // falla nueva → reporte al server
>SRL07E;TRG=DTC02+;ACC={SSSXP0011}< // lámpara encendida → salida en cabinaFunciones EVAL
| Función | Devuelve |
|---|---|
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ímite | Valor |
|---|---|
| Fallas simultáneas en la tabla | 32 |
| 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 OBD2 | 30 s (se espacía a 5 min si ninguna ECU responde en 5 ciclos) |
| Intervalo mínimo entre reportes automáticos | 10 s |
| Memoria con la lectura habilitada | 768 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
- Reporte DF - Formato del reporte de fallas
- Leer fallas de la ECU - Nota de aplicación paso a paso
- Comando CXCAN - Selección del protocolo del bus
- Comando ECU - Telemetría del motor
- Lista de disparadores - Señales del motor de eventos