Skip to Content

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

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

O Rinho Zero IoT não tem transceptor CAN: não consegue ler falhas do veículo.


1. O que se obtém

VeículoProtocoloO que informa
Caminhão, ônibus, máquinas, agrícolaJ1939SPN (qual componente falha), FMI (como falha), ECU que reporta, ocorrências e lâmpadas do painel
Carro, picape, utilitário leveOBD2O 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ículoProtocolo esperado
Caminhão, máquinas pesadas, agrícolaJ1939
Carro, picape, utilitário leveOBDII

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<
CampoValorSignificado
1Habilita a leitura (de fábrica vem em 0)
3Segundos sem ver um código para considerá-lo resolvido
0Reservado (apagamento no veículo, ainda sem efeito)
1Relatório automático diante de falha nova ou resolução
GPDestino 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<
RespostaSignificado
RDTC0Lendo o barramento, sem falhas ativas — resultado válido
RDTC2;J:00:100:1:4;J:00:1761:1:12Duas falhas ativas (caminhão)
RDTC1;O:00:P0301:0:0Uma falha ativa (veículo leve)
RDTCNAA 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ório

Trê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 configurado

6. Interpretar os códigos

J1939

J:00:100:1:4

A 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:

FMISignificado
0 / 1Valor acima / abaixo da faixa normal
2Dado errático ou intermitente
3 / 4Curto para o positivo / curto para a massa
5 / 6Circuito aberto / sobrecorrente
7O sistema mecânico não responde
12Componente danificado
31A 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:0

A ECU do motor (00) informa uma falha de ignição no cilindro 1 (P0301).

LetraSistema
PMotor e transmissão
CChassi (freios, suspensão, direção)
BCarroceria (airbag, conforto)
URede 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.

SinalAtiva quando
DTC00Há pelo menos uma falha ativa
DTC01Apareceu uma falha nova
DTC02Há lâmpada do painel acesa (somente J1939)
DTC03Todas 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 acesa

E 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:

  1. O protocolo não coincide com o veículo>QCXCAN<: J1939 em caminhão, OBDII em leve.
  2. A leitura está desabilitada>QDTC< responde RDTCNA. Habilitar com SCXDTC.
  3. O T do firmware é anterior ao 9 e o veículo é leve>QVR<. O suporte OBD2 entrou na 1.09.27.T9.
  4. Não passou o ciclo de 30 segundos do OBD2 — esperar mais uma volta.
  5. O veículo não tem falhas ativasRDTC0 é um resultado correto. Conferir com o painel ou com um scanner.
  6. 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çãoEstado
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

Última atualização