DNP3 es un protocolo abierto de telecontrol entre un maestro (el SCADA) y sus estaciones remotas (RTU, gateways, relés y reconectadores), normalizado como IEEE 1815. Organiza los datos en grupos y variaciones, separa valores actuales de eventos con estampa de tiempo, prioriza los eventos en tres clases y permite que la estación envíe cambios sin esperar la interrogación. Funciona por serie y por TCP/IP.
Qué es DNP3 y su norma
DNP3 (Distributed Network Protocol) es un protocolo abierto para SCADA: lleva estados, medidas, contadores y archivos desde las estaciones remotas al maestro, y mandos y consignas en sentido inverso. Lo mantiene el DNP Users Group, que asumió su propiedad y evolución en 1993, y fue adoptado como IEEE Std 1815 en 2010. La edición IEEE 1815-2012 sustituyó a la de 2010; el IEEE la marca hoy como norma inactiva-reservada mientras avanza el proyecto de revisión P1815, de modo que conviene verificar qué edición pide cada especificación.
Su arquitectura es la EPA (Enhanced Performance Architecture) de tres capas, basada en los trabajos del comité técnico 57 de IEC, la misma familia de la que salió IEC 60870-5.
Dónde se usa y por qué
Es común en empresas de distribución, en sistemas de agua y en muchos reconectadores, controladores de banco de condensadores y relés de alimentador. Dentro de la arquitectura de comunicaciones de la subestación, un gateway o RTU puede ser maestro DNP3 hacia los IED y estación DNP3 hacia el SCADA. En campo, viaja por radio o celular dentro de una VPN.
Se elige por su eficiencia en canales lentos o costosos: reporte por excepción, eventos con estampa guardados mientras el enlace está caído, y niveles de implementación que permiten equipos sencillos y maestros complejos.
Cómo funciona
Capa de enlace. Cada trama empieza con dos octetos de sincronismo, longitud, control, dirección de destino y de origen, y lleva dos octetos de CRC por cada 16 de datos. La carga útil máxima es de 250 octetos, 292 contando encabezado y CRC. Hay 65 520 direcciones individuales; algunas se reservan para mensajes a todos. La confirmación de enlace es opcional y casi siempre se deja apagada.
Transporte. Un solo octeto por trama permite partir y rearmar mensajes largos: cada trama lleva hasta 249 octetos de aplicación.
Aplicación. Los mensajes se parten en fragmentos cuyo tamaño depende del búfer del receptor; el rango normal es de 2048 a 4096 octetos.
Datos: grupos y variaciones. Cada punto tiene un índice que empieza en cero. Su tipo y formato se identifican con un grupo y una variación. Por ejemplo, las entradas analógicas estáticas son el grupo 30 (seis variaciones: entero de 16 o 32 bits, con o sin indicador de calidad, y flotante) y sus eventos el grupo 32 (ocho variaciones, con o sin hora). Hay grupos equivalentes para entradas binarias, contadores, salidas de control y salidas analógicas.
Estático y eventos. El valor estático es el actual. Un evento es un cambio: una binaria que cambia de estado o una analógica que supera su banda muerta, con o sin estampa de tiempo. Los eventos se asignan a las clases 1, 2 y 3; los datos estáticos forman la clase 0. El maestro hace sondeos frecuentes de eventos y, de vez en cuando, una lectura de integridad: clases 1, 2, 3 y 0 en un mismo mensaje, primero los eventos pendientes y luego todos los valores actuales.
Respuestas no solicitadas. La estación puede enviar sus eventos sin esperar la pregunta. El maestro las habilita y deshabilita con los códigos de función 20 y 21, y debe confirmar cada respuesta.
Mandos. Con selección previa y operación (SBO, códigos de función 3 y 4), con un tiempo máximo entre ambas, o con operación directa (código 5) y operación directa sin confirmación (código 6).
| Código de función | Uso |
|---|---|
| 3 | Selección (SBO) |
| 4 | Operación después de la selección (SBO) |
| 5 | Operación directa |
| 6 | Operación directa sin confirmación |
| 20 | Habilitar respuestas no solicitadas |
| 21 | Deshabilitar respuestas no solicitadas |
Tiempo. El maestro puede escribir la hora en la estación, con un método para enlaces serie que mide el retardo del canal y otro para redes LAN.
Serie y TCP/IP. Por TCP/IP las tramas de enlace viajan dentro de TCP o UDP. IANA registra el puerto 20000 para DNP3.
Configuración: conceptos
Se acuerdan la dirección DNP3 del maestro y de cada estación, el mapa de puntos (índices por tipo), la variación por defecto de cada punto y de sus eventos, la clase de cada evento, las bandas muertas, si hay no solicitados y sus tiempos de confirmación y reintentos, el modelo de mando y la sincronización. Todo eso queda en el perfil de dispositivo DNP3 (Device Profile), un formato del DNP Users Group que describe lo que el equipo soporta. Cada fabricante lo configura con su herramienta y con nombres propios.
Seguridad
La autenticación segura versión 5 (SAv5), definida en la cláusula 7 de IEEE 1815-2012, usa desafío y respuesta con un código de autenticación de mensaje (variantes de HMAC-SHA o AES-GMAC); la estación trata todos los mandos y escrituras de salida como operaciones críticas que siempre se autentican. La versión siguiente, desarrollada con el grupo de trabajo 15 del comité 57 de IEC, se publica como capa de seguridad DNP3-SL (antes SAv6): autentica todos los mensajes, admite cifrado, usa certificados X.509 y puede convivir con SAv5. Es una implementación de IEC 62351-5. Además: VPN, cortafuegos y control de direcciones permitidas.
Problemas típicos y diagnóstico
- Sin respuesta: direcciones de origen o destino cruzadas, o TCP abierto en el puerto equivocado.
- Eventos perdidos: búfer de eventos lleno durante una caída larga, o puntos sin clase asignada.
- Medidas que no se actualizan: banda muerta muy ancha.
- Mando rechazado: tiempo entre selección y operación vencido, o el maestro usa operación directa y la estación solo acepta SBO.
- Avisos del indicador interno (IIN): los bits de reinicio de la estación (IIN1.7), hora requerida (IIN1.4) y búfer de eventos desbordado (IIN2.3) piden una reacción del maestro: borrar el aviso de reinicio, escribir la hora y hacer una lectura de integridad.
Se diagnostica con capturas (Wireshark decodifica DNP3), registros del maestro y simuladores de maestro y estación.
Convivencia y migración
DNP3 convive con IEC 60870-5-104 en gateways que atienden centros de control distintos, con Modbus hacia medidores y equipos auxiliares, y con IEC 61850 dentro de la subestación. La migración entre DNP3 y 104 no es directa: cambian el modelo de datos, las clases y el direccionamiento, así que la lista de señales se rehace y se prueba de nuevo.
Pruebas
El DNP Users Group publica procedimientos de prueba de conformidad para IED. En campo: lectura de integridad, prueba de cada evento y su clase, no solicitados con corte del enlace y recuperación, mandos SBO y directos, sincronización de hora y prueba punto a punto con el SCADA.
Configuración remota e integración con Tiza Group
¿Un reconectador o una RTU por DNP3 que no reporta como debe? Nuestro equipo revisa perfiles, mapas de puntos y capturas de forma remota con el servicio de configuración remota y hace la integración SCADA y de gateways en subestaciones e industria de media, alta y extra alta tensión.
Referencias
- IEEE Std 1815-2012, IEEE Standard for Electric Power Systems Communications – Distributed Network Protocol (DNP3).
- DNP Users Group, A DNP3 Protocol Primer, revisión A (2005).
- DNP Users Group, DNP3 Device Profile Guide e IED Test Procedures.
- IEC 62351-5:2023, seguridad para IEC 60870-5 y sus derivados (incluye DNP3).
Preguntas frecuentes
¿Qué es una interrogación de integridad en DNP3?
Es la lectura de clases 1, 2, 3 y 0 en una sola petición: primero los eventos acumulados y luego todos los valores actuales. El maestro la hace al arrancar, al recuperar la comunicación o cuando la estación avisa que se reinició, para dejar su base de datos completa y consistente.
¿Por qué el SCADA no recibe los eventos no solicitados de un reconectador por DNP3?
Revise que el maestro haya habilitado los no solicitados (código de función 20), que los puntos estén asignados a una clase de evento, que la dirección DNP3 del maestro coincida con la que espera la estación y que el maestro confirme cada respuesta. Si la confirmación no llega, la estación reintenta y puede dejar de enviar.
¿DNP3 sirve para disparos de protección entre subestaciones?
No. DNP3 es para supervisión y control. Los disparos entre extremos de línea van por teleprotección o por mensajes de alta velocidad como GOOSE de IEC 61850, con tiempos de transferencia y seguridad definidos para protección.