Comando CXDTC — Falhas da ECU (DTC)
Leitura dos códigos de falha informados pelo computador do veículo: os mesmos que um scanner de diagnóstico de oficina mostra, entregues pelo protocolo normal do equipamento.
- Caminhões e máquinas (J1939): SPN, FMI, ECU que reporta, ocorrências e lâmpadas do painel.
- Veículos leves (OBD2): o código padrão completo —
P0301,P0420,P0087— e a ECU que o reporta.
Disponível na série de firmware 1.09.27, que no momento da publicação desta página é uma
versão T (pré-lançamento): entregue por FOTA sob demanda, não faz parte da última versão estável.
Dentro da série: T1 adiciona J1939, T5 os sinais, funções EVAL e o token, T6 o relatório
pelo gerador e T9 o suporte OBD2. Com um T anterior ao 9 o equipamento não lê falhas OBD2.
Confirmar sempre com >QVR< qual T está instalada.
Para que serve?
| Caso de uso | Descrição |
|---|---|
| 🔧 Manutenção preditiva | Saber qual falha o veículo tem sem levá-lo à oficina |
| 🚨 Alerta imediato | Relatório automático assim que aparece uma falha nova |
| 📋 Diagnóstico remoto | Consultar a lista de falhas ativas a qualquer momento |
| ⚙️ Regras locais | Disparar ações no veículo (saída, buzzer, SMS) sem passar pelo servidor |
| 📊 Integração simples | Cada relatório é uma foto completa: a plataforma não reconstrói estado |
Compatibilidade
O Rinho Zero IoT não tem transceptor CAN: nesse modelo estes comandos respondem
NA. Para ler falhas do veículo é preciso usar Spider IoT ou Smart IoT.
O protocolo configurado em CXCAN
precisa coincidir com o veículo: J1939 em caminhão, OBDII em leve. Se não coincidir, o módulo
informa sempre zero falhas.
Configuração — SCXDTC / QCXDTC
SCXDTC[en][,agesec[,busclr[,autorpt[,destino]]]]
QCXDTC
RCXDTC[en],[agesec],[busclr],[autorpt],[destino]| Parâmetro | Descrição | Padrão |
|---|---|---|
en | 0 = desabilitado, 1 = habilitado | 0 |
agesec | Segundos sem ver um código para considerá-lo resolvido (1-60) | 3 |
busclr | Reservado para o apagamento de falhas no veículo | 0 |
autorpt | 0/1 — relatório automático diante de falha nova ou resolução | 0 |
destino | Para onde vai o relatório automático | GP |
Os campos são posicionais e opcionais da esquerda para a direita: >SCXDTC1< habilita mantendo o
resto como estava, e >SCXDTC1,3,0,1,GP< define todos. Um campo inválido rejeita o comando inteiro
sem persistir nada.
Destinos do relatório automático
| Token | Canal |
|---|---|
GP | GPRS principal (padrão) |
WI | WiFi principal |
BT | Bluetooth |
TR | Porta serial |
BGP / BWI | GPRS / WiFi de backup |
BACK | Backup inteligente |
LOG | Datalog interno — baixado depois com >QDL+< |
ALL | Todos os canais ativos |
Para validar a integração convém começar com LOG: o relatório fica guardado no equipamento e é
revisado inteiro no fim do percurso com >QDL+<, sem depender de o servidor estar escutando.
O campo busclr está reservado: é aceito e gravado, mas ainda não dispara o apagamento de falhas
no veículo (DM11 em J1939 / Mode 04 em OBD2). Deixá-lo em 0.
Consulta — QDTC
QDTC
RDTC[n][;<fonte>:<ecu>:<código>:<fmi>:<ocorrências>;…]| Resposta | Significado |
|---|---|
RDTC0 | Lendo o barramento, sem falhas ativas |
RDTC2;J:00:100:1:4;J:00:1761:1:12 | Duas falhas ativas (caminhão) |
RDTC1;O:00:P0301:0:0 | Uma falha ativa (veículo leve) |
RDTCNA | A leitura está desabilitada (en=0) |
Em OBD2 o módulo consulta a ECU a cada 30 segundos: depois de habilitar é preciso esperar uma volta antes de dar por boa uma resposta em zero. Em J1939 a leitura é imediata, porque a ECU emite o DM1 por conta própria.
Apagamento — CDTC
CDTC → RDTC OKApaga a lista armazenada no equipamento. Se o veículo continuar informando a falha, ela reaparece
no ciclo seguinte — que é o comportamento correto: CDTC limpa o registro do equipamento, não
apaga a falha do veículo.
Formato da lista
J:00:100:1:4
│ │ │ │ └─ ocorrências
│ │ │ └─── FMI: como falha
│ │ └─────── SPN: qual componente falha
│ └────────── ECU que a reporta (hex)
└──────────── fonte: J = J1939 · O = OBD2| Fonte | Código | FMI | Ocorrências |
|---|---|---|---|
J (J1939) | SPN numérico (100, 1761) | 0-31 | 0-127 |
O (OBD2) | Código padrão (P0301, U0100) | sempre 0 | sempre 0 |
FMI e ocorrências são campos próprios do J1939: o protocolo OBD2 não os transmite, por isso vão em
zero. A letra inicial do código OBD2 indica o sistema: P motor e transmissão, C chassi,
B carroceria, U rede de comunicação.
FMI — o tipo de falha (J1939)
| FMI | Significado |
|---|---|
| 0 / 1 | Valor acima / abaixo da faixa normal |
| 2 | Dado errático ou intermitente |
| 3 / 4 | Curto para o positivo / curto para a massa |
| 5 / 6 | Circuito aberto / sobrecorrente |
| 7 | O sistema mecânico não responde |
| 12 | Componente danificado |
| 31 | A condição existe, sem mais detalhe |
A distinção importa: pressão de combustível com FMI 1 é pressão baixa de verdade (filtro, bomba); com FMI 5 é circuito aberto (sensor desconectado ou cabo rompido).
Relatório automático
Com autorpt=1 o equipamento emite um
relatório DF quando aparece uma falha
nova e quando todas são resolvidas:
>RDF00020826143512;2;J:00:100:1:4;J:00:1761:1:12< // duas falhas ativas
>RDF00020826150233;0< // resolução: não resta nenhumaA data e a hora são as do momento da falha, não as do envio: se o veículo estava sem cobertura, o relatório espera na fila e, ao recuperar sinal, informa quando ocorreu de fato.
Também pode ser pedido sob demanda, como qualquer outro relatório:
>QDF< // resposta direta pelo canal que perguntou
>GDF00H< // enfileira o relatório no destino configuradoSinais para regras
As falhas são disparadores do motor de eventos, combináveis com qualquer outro sinal:
| Sinal | Ativa quando |
|---|---|
DTC00 | Há pelo menos uma falha ativa |
DTC01 | Apareceu uma falha nova |
DTC02 | Há lâmpada do painel acesa (somente J1939) |
DTC03 | Todas as falhas foram limpas |
>SRL05E;TRG=DTC01+;ACC={GDF00H}< // falha nova → relatório ao servidor
>SRL07E;TRG=DTC02+;ACC={SSSXP0011}< // lâmpada acesa → saída na cabineFunções EVAL
| Função | Retorna |
|---|---|
DTCN() | Quantidade de falhas ativas |
DTC(n) | O subsinal DTC0n (DTC(0) = há falhas, DTC(2) = lâmpada acesa) |
DTCH(spn) | 1 se esse SPN está ativo — somente J1939 |
Token de template
'DTC' insere a lista completa de falhas em um relatório de usuário
(UC) ou em uma ação dinâmica
(DA):
>SUC00 falhas:'DTC'<Limites
| Limite | Valor |
|---|---|
| Falhas simultâneas na tabela | 32 |
| Falhas por trama | ~15 (a quantidade informada é sempre a real; a lista é truncada) |
Falhas no token 'DTC' | ~7 (buffer de 128 bytes) |
| Período de consulta OBD2 | 30 s (espaça para 5 min se nenhuma ECU responder em 5 ciclos) |
| Intervalo mínimo entre relatórios automáticos | 10 s |
| Memória com a leitura habilitada | 768 bytes (com en=0 nada é reservado) |
O que ainda não faz: apagamento de falhas no veículo (busclr), falhas históricas ou pendentes
(DM2 / Mode 07), lâmpadas do painel em OBD2 e DTCH() sobre códigos OBD2.
Carga no barramento: em J1939 o módulo é escuta pura, não transmite nada. Em OBD2 emite uma consulta Mode 03 a cada 30 segundos, o mesmo pedido que um scanner de diagnóstico faz.
Exemplo completo
>QCXCAN< // 1. verificar o protocolo (J1939 ou OBDII)
>SCXDTC1,3,0,1,GP< // 2. habilitar com relatório automático ao servidor
>QCXDTC< // → RCXDTC1,3,0,1,GP
>QDTC< // 3. estado atual
// → RDTC1;O:00:P0301:0:0 (Chevrolet Tracker com falha de ignição no cilindro 1)Veja Também
- Relatório DF - Formato do relatório de falhas
- Ler falhas da ECU - Nota de aplicação passo a passo
- Comando CXCAN - Seleção do protocolo do barramento
- Comando ECU - Telemetria do motor
- Lista de disparadores - Sinais do motor de eventos