Ler falhas da ECU (DTC)
Esta nota mostra como configurar o equipamento para que informe quais falhas o veículo tem —os mesmos códigos que um scanner de oficina mostra— e como integrá-los a uma plataforma.
Até agora o equipamento informava se o veículo tinha falhas e quantas: o equivalente à luz de avaria do painel. Com o módulo DTC ele informa quais são.
Requer firmware da série 1.09.27, que no momento da publicação desta nota é uma versão T
(pré-lançamento): entregue por FOTA sob demanda. O suporte OBD2 entrou na T9; com um T anterior
o equipamento lê apenas J1939. Verificar com >QVR< antes de começar.
Compatibilidade
O Rinho Zero IoT não tem transceptor CAN: não consegue ler falhas do veículo.
1. O que se obtém
| Veículo | Protocolo | O que informa |
|---|---|---|
| Caminhão, ônibus, máquinas, agrícola | J1939 | SPN (qual componente falha), FMI (como falha), ECU que reporta, ocorrências e lâmpadas do painel |
| Carro, picape, utilitário leve | OBD2 | O código padrão completo (P0301, P0420, U0100) e a ECU que o reporta |
Tudo chega pelo protocolo normal do equipamento (UDP/TCP/SMS), com fila, retentativas e confirmação. Não requer hardware adicional: usa a conexão CAN que o equipamento já tem e funciona igual com o acessório CANBUS Contactless (indutivo).
2. Verificar o protocolo do barramento
É o passo que mais evita problemas. O protocolo configurado precisa coincidir com o veículo:
>QCXCAN<| Veículo | Protocolo esperado |
|---|---|
| Caminhão, máquinas pesadas, agrícola | J1939 |
| Carro, picape, utilitário leve | OBDII |
Se o protocolo não coincidir com o veículo, o módulo informa sempre zero falhas, mesmo com o painel aceso. É a causa mais frequente de “não funciona”.
3. Habilitar a leitura
Um único comando coloca tudo em funcionamento:
>SCXDTC1,3,0,1,GP<| Campo | Valor | Significado |
|---|---|---|
| 1º | 1 | Habilita a leitura (de fábrica vem em 0) |
| 2º | 3 | Segundos sem ver um código para considerá-lo resolvido |
| 3º | 0 | Reservado (apagamento no veículo, ainda sem efeito) |
| 4º | 1 | Relatório automático diante de falha nova ou resolução |
| 5º | GP | Destino do relatório: GPRS principal |
Verificação: >QCXDTC< → RCXDTC1,3,0,1,GP
Para o comissionamento convém usar LOG como destino (>SCXDTC1,3,0,1,LOG<): os relatórios
ficam guardados no equipamento e são baixados todos juntos com >QDL+< ao final do percurso, sem
depender de o servidor estar escutando. Depois de validado, passa-se para GP.
Com o primeiro campo em 0 (padrão de fábrica) o módulo fica completamente inativo: não reserva
memória nem toca o barramento.
4. Consultar o estado
>QDTC<| Resposta | Significado |
|---|---|
RDTC0 | Lendo o barramento, sem falhas ativas — resultado válido |
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 |
Em OBD2 o equipamento 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 ECU emite as falhas por conta própria e a leitura é imediata.
5. O que a plataforma recebe
Com autorpt=1, cada vez que aparece uma falha nova ou todas são resolvidas chega um
relatório DF:
>RDF00020826143512;2;J:00:100:1:4;J:00:1761:1:12<
│ │ │ │
│ │ │ └─ lista de falhas
│ │ └──────── quantidade ativa (0 = todas resolvidas)
│ └─────────────── data e hora DO EVENTO (ddmmaa hhmmss)
└────────────────── número do relatórioTrês coisas que simplificam a integração:
- Cada relatório é uma foto completa. Não há estado para reconstruir do lado do servidor.
- A data e a hora são as do momento da falha, não as do envio: se o veículo esteve sem cobertura, o relatório espera na fila e, ao recuperar sinal, informa quando ocorreu de fato.
- Quantidade em zero = resolução. Quando some a última falha chega o aviso.
Também pode ser pedido a qualquer momento, sem esperar que haja uma falha:
>QDF< // resposta direta pelo canal que perguntou
>GDF00H< // enfileira o relatório no destino configurado6. Interpretar os códigos
J1939
J:00:100:1:4A ECU do motor (00) informa que a pressão de óleo (SPN 100) está abaixo da faixa normal
(FMI 1), e ocorreu 4 vezes.
O FMI distingue o tipo de falha, e essa diferença muda o diagnóstico:
| 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 |
Pressão de combustível com FMI 1 é pressão baixa de verdade (filtro, bomba). Com FMI 5 é circuito aberto: o sensor foi desconectado ou um cabo se rompeu.
SPN de referência: 100 pressão de óleo · 110 temperatura do líquido de arrefecimento · 94 pressão de combustível · 190 RPM · 168 tensão de bateria · 651-656 injetores 1 a 6 · 1761 nível de Arla/ureia · 3226 sensor NOx (SCR).
OBD2
O:00:P0301:0:0A ECU do motor (00) informa uma falha de ignição no cilindro 1 (P0301).
| Letra | Sistema |
|---|---|
P | Motor e transmissão |
C | Chassi (freios, suspensão, direção) |
B | Carroceria (airbag, conforto) |
U | Rede de comunicação entre módulos |
Os dois últimos campos vão em zero: FMI e ocorrências são campos do J1939, o OBD2 não os transmite.
Os códigos saem em formato padrão (SAE J1939 e J2012). As descrições em texto (“Catalyst System Efficiency…”) são resolvidas na plataforma com as tabelas públicas da norma, como no resto do mercado.
7. Reagir no veículo, sem passar pelo servidor
As falhas são disparadores do motor de eventos: combinam-se com ignição, velocidade, entradas ou cercas eletrônicas como 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 |
// Falha nova → relatório imediato ao servidor
>SRL05E;TRG=DTC01+;ACC={GDF00H}<
// Lâmpada do painel acesa → saída para um buzzer na cabine
>SRL07E;TRG=DTC02+;ACC={SSSXP0011}<
// Falha nova com a ignição ligada → aviso por SMS ao supervisor
>SRL08E;TRG=DTC01+;CND=IGN;ACC={GTX01H;@SM0;TXT=Falha ativa}<Para condições numéricas existem as funções EVAL:
>EVAL DTCN()< // quantidade de falhas ativas
>EVAL DTCH(100)< // 1 se a pressão de óleo está em falha (J1939)
>EVAL DTC(2)< // 1 se há lâmpada do painel acesaE o token 'DTC' insere a lista completa em qualquer relatório de usuário:
>SUC00 $ID falhas:'DTC'<8. Se não aparecer nenhuma falha
Em ordem, do mais frequente ao menos:
- O protocolo não coincide com o veículo —
>QCXCAN<:J1939em caminhão,OBDIIem leve. - A leitura está desabilitada —
>QDTC<respondeRDTCNA. Habilitar comSCXDTC. - O T do firmware é anterior ao 9 e o veículo é leve —
>QVR<. O suporte OBD2 entrou na1.09.27.T9. - Não passou o ciclo de 30 segundos do OBD2 — esperar mais uma volta.
- O veículo não tem falhas ativas —
RDTC0é um resultado correto. Conferir com o painel ou com um scanner. - A ECU não publica falhas — nem todas as emitem no barramento (J1939) nem respondem ao Mode 03 (OBD2), o mesmo que acontece com o VIN. Confirma-se olhando se chegam outros dados do motor (RPM, temperatura) com ECU.
Se as falhas aparecem em >QDTC< mas não chega nenhum relatório: revisar o 4º campo de SCXDTC
(precisa estar em 1) e o 5º, o destino. Com LOG o relatório não sai pela rede: fica no
equipamento e é baixado com >QDL+<.
9. Alcance atual
| Função | Estado |
|---|---|
| Falhas ativas J1939, uma ou várias ECU, um ou vários códigos | ✅ |
| Falhas ativas OBD2, uma ou várias ECU | ✅ |
| Relatório automático, sob demanda e por regra | ✅ |
| Sinais, funções EVAL e token de template | ✅ |
Apagamento da lista do equipamento (CDTC) | ✅ |
| Apagamento de falhas no veículo (DM11 / Mode 04) | ❌ Previsto |
| Falhas históricas ou pendentes (DM2 / Mode 07) | ❌ Previsto |
| Lâmpadas do painel em OBD2 | ❌ Somente J1939 |
DTCH() sobre códigos OBD2 | ❌ Somente J1939 (busca por SPN) |
Limites: até 32 falhas simultâneas na tabela do equipamento e cerca de 15 por trama (a quantidade informada é sempre a real). Em J1939 o módulo é escuta pura e não transmite nada no barramento; em OBD2 consulta a cada 30 segundos, igual a um scanner conectado ao conector de diagnóstico.
Veja Também
- Comando CXDTC - Referência completa dos comandos
- Relatório DF - Formato do relatório de falhas
- Comando CXCAN - Seleção do protocolo do barramento
- Comando ECU - Telemetria do motor