SAE J1939 permite que las unidades de control electrónico de maquinaria móvil intercambien no solo datos de funcionamiento, sino también información de diagnóstico.
Uno de los mensajes de diagnóstico más importantes es DM1.
DM1 se utiliza para comunicar los Diagnostic Trouble Codes (DTC) actualmente activos. Cuando una ECU de motor u otro dispositivo J1939 detecta un fallo activo, puede transmitir información como:
Estado de las lámparas de diagnóstico
SPN
FMI
Occurrence Count (OC)
Un controlador móvil o una pantalla HMI puede recibir esta información y utilizarla para mostrar advertencias, proporcionar detalles del fallo y facilitar el diagnóstico.
En este artículo explicamos qué es un mensaje J1939 DM1, qué información contiene y cómo se utiliza en los sistemas de diagnóstico de maquinaria móvil.
DM1 significa:
Diagnostic Message 1
Su función principal es comunicar los códigos de diagnóstico de fallos actualmente activos de un dispositivo J1939.
Por ejemplo, una ECU de motor puede detectar:
Temperatura excesiva del refrigerante
Baja presión de aceite
Fallos en circuitos de sensores
Tensión anormal
Problemas de comunicación
Cuando uno de estos fallos está activo, la ECU puede comunicarlo mediante DM1.
Un flujo simplificado sería:
ECU del motor
↓
Detecta un fallo activo
↓
J1939 DM1
↓
Controlador móvil
↓
Advertencia en la HMI
De esta forma, la información de diagnóstico puede circular por la misma red J1939 utilizada para transmitir los datos normales de funcionamiento de la máquina.
DM1 contiene principalmente dos categorías de información:
1. Estado de las lámparas de diagnóstico
2. Códigos de diagnóstico de fallos activos
La información del DTC incluye campos importantes como:
SPN — Suspect Parameter Number
FMI — Failure Mode Identifier
OC — Occurrence Count
Estos datos permiten identificar con mayor precisión el fallo detectado.

SPN significa Suspect Parameter Number.
Identifica el parámetro, señal, componente o condición relacionada con el fallo.
Por ejemplo:
SPN 110
corresponde a:
Temperatura del refrigerante del motor
Si un mensaje DM1 contiene SPN 110, significa que la ECU está comunicando un fallo relacionado con la temperatura del refrigerante del motor.
Sin embargo, el SPN por sí solo no indica qué tipo de anomalía se ha producido.
Para eso se utiliza el FMI.
FMI significa Failure Mode Identifier.
Describe el tipo de fallo o condición anormal asociado al SPN.
Por ejemplo:
SPN 110 FMI 0
Indica que el valor de temperatura del refrigerante del motor es válido, pero se encuentra por encima del rango operativo normal en el nivel más severo.
La relación puede entenderse fácilmente así:
SPN = ¿Qué parámetro presenta un problema?
FMI = ¿Qué tipo de problema se ha detectado?
La combinación de ambos constituye una parte fundamental del DTC J1939.
Un DTC comunicado mediante DM1 también puede incluir un Occurrence Count (OC).
Este valor proporciona información sobre las ocurrencias del fallo de acuerdo con la implementación de diagnóstico de la ECU.
Por ejemplo:
SPN: 110
FMI: 0
OC: 3
Esto indica un fallo asociado al SPN 110 y FMI 0, con un valor de Occurrence Count de 3.
Esta información puede aportar contexto adicional cuando un técnico investiga fallos recurrentes o intermitentes.
DM1 también transmite información relacionada con las lámparas de diagnóstico.
J1939 define indicaciones como:
MIL — Malfunction Indicator Lamp
RSL — Red Stop Lamp
AWL — Amber Warning Lamp
PL — Protect Lamp
El estado de estas lámparas ayuda a comunicar la categoría o gravedad general de determinadas condiciones de diagnóstico.
Por ejemplo, una condición grave del motor puede estar asociada a una indicación de Red Stop Lamp, mientras que otros fallos pueden activar una Amber Warning Lamp.
Una HMI puede utilizar esta información para mostrar al operador una advertencia visual apropiada.
Una máquina puede presentar varios fallos activos simultáneamente.
Por ejemplo:
ECU del motor
DTC 1
SPN 110
FMI 0
DTC 2
SPN XXX
FMI 3
DTC 3
SPN XXX
FMI 9
Por este motivo, un mensaje DM1 puede comunicar múltiples DTC activos.
Esto es importante al diseñar el software del controlador y de la HMI, ya que el sistema debe ser capaz de procesar y presentar varios fallos.
Una trama CAN clásica tiene una capacidad de datos limitada.
Cuando la información DM1 es suficientemente pequeña, puede transmitirse dentro de una sola trama CAN.
Sin embargo, si existen varios DTC activos, la cantidad de información puede superar la capacidad disponible en una única trama.
En ese caso, J1939 puede utilizar su Transport Protocol para transmitir el mensaje mediante múltiples tramas CAN.
De forma simplificada:
Pocos datos de diagnóstico
↓
Una sola trama CAN
Múltiples DTC
↓
J1939 Transport Protocol
↓
Múltiples tramas CAN
Esto es relevante para el desarrollo del software del controlador, porque recibir DM1 no siempre consiste simplemente en leer una única trama CAN.
DM1 no es simplemente un mensaje que aparece una vez cuando ocurre un fallo.
Mientras existan fallos activos, una ECU puede transmitir DM1 periódicamente. Los cambios en el estado de diagnóstico también pueden influir en su transmisión.
Esto permite que otros dispositivos conectados a la red mantengan información actualizada sobre los fallos activos.
Por tanto, un controlador móvil puede supervisar continuamente la información DM1 en lugar de tratarla únicamente como un evento aislado.
Un controlador móvil programable puede recibir mensajes J1939 DM1 procedentes de una ECU de motor u otros dispositivos compatibles.
El proceso puede representarse así:
ECU del motor
↓
DM1
↓
Controlador móvil
↓
Decodificación
↓
SPN + FMI + OC + Lamp Status
↓
Lógica de diagnóstico
Después de interpretar el mensaje, el controlador puede utilizar esta información para diferentes funciones.
Por ejemplo:
Enviar una advertencia a la HMI
Registrar el fallo
Activar una alarma sonora
Modificar el modo de funcionamiento
Limitar determinadas funciones
Facilitar las tareas de mantenimiento
La respuesta concreta dependerá de la aplicación y de la estrategia de control de la máquina.
Los datos DM1 en bruto son útiles para ingenieros y técnicos, pero los operadores normalmente necesitan información más fácil de interpretar.
En lugar de mostrar únicamente:
SPN 110 FMI 0
La HMI puede mostrar:
TEMPERATURA DEL REFRIGERANTE DEL MOTOR DEMASIADO ALTA
Al mismo tiempo, una página de diagnóstico destinada al personal técnico puede conservar información más detallada:
FALLO ACTIVO DEL MOTOR
Fuente: ECU del motor
SPN: 110
FMI: 0
Occurrence Count: 3
Estado: Activo
Temperatura del refrigerante: 108 °C
De esta forma, una misma interfaz puede proporcionar información sencilla al operador y datos técnicos más completos al personal de mantenimiento.
DM1 resulta todavía más útil cuando se combina con otros datos de la máquina.
Por ejemplo:
ECU del motor
│
J1939
│
↓
Controlador móvil
↙ ↓ ↘
DM1 Datos en vivo E/S
↓ ↓ ↓
└────────┬───────────┘
↓
HMI
El controlador puede combinar:
Mensajes de diagnóstico J1939
Parámetros de funcionamiento del motor
Valores de sensores analógicos
Estado de entradas y salidas digitales
Estado de dispositivos CAN
Esto proporciona más contexto durante el diagnóstico.
Por ejemplo, un DTC relacionado con la temperatura del refrigerante resulta mucho más útil si la HMI también muestra la temperatura actual y las condiciones de funcionamiento del motor.
DM1 y DM2 son mensajes de diagnóstico J1939, pero tienen funciones diferentes.
DM1 se utiliza para los DTC actualmente activos.
DM2 está relacionado con los DTC previamente activos.
De forma sencilla:
| Mensaje | Función |
|---|---|
| DM1 | Fallos actualmente activos |
| DM2 | Fallos previamente activos |
Si una condición anormal está ocurriendo en ese momento, DM1 es uno de los mensajes de diagnóstico más importantes que debe analizarse.
Si un técnico está investigando un fallo que ocurrió anteriormente pero ya no está activo, la información de fallos previamente activos también puede resultar útil.
No exactamente.
DM1 es un mensaje de diagnóstico, mientras que el DTC es la información del fallo transmitida dentro de ese mensaje.
La relación puede entenderse así:
DM1
│
├── Lamp Status
│
├── DTC 1
│ ├── SPN
│ ├── FMI
│ └── OC
│
├── DTC 2
│ ├── SPN
│ ├── FMI
│ └── OC
│
└── ...
Por tanto, aunque en conversaciones técnicas informales pueda hablarse de un “código DM1”, técnicamente DM1 es el mensaje que transporta la información de los DTC activos.
No necesariamente.
Supongamos que DM1 comunica un DTC relacionado con un sensor de presión.
Las posibles causas podrían ser:
Sensor defectuoso
Cable dañado
Conector suelto
Circuito abierto
Cortocircuito
Mala conexión a masa
Problema de alimentación
Problema de comunicación
Presión real fuera del rango esperado
Por tanto, el DTC indica qué condición ha detectado la ECU, pero todavía es necesario realizar un diagnóstico para determinar la causa raíz.
DM1 debe utilizarse como un punto de partida para el diagnóstico, no como una instrucción automática para sustituir un componente.