DNP3

DNP3

DNP3

DNP3 (acrónimo del inglés Distributed Network Protocol, en su versión 3) es un protocolo industrial para comunicaciones entre equipos inteligentes (IED) y estaciones controladores, componentes de sistemas SCADA. Es un protocolo ampliamente utilizado en el sector eléctrico, de gran difusión en Estados Unidos y Canadá, y menor presencia en Europa donde el uso de alternativas como IEC-60870 101 e IEC-60870 104 gozan de mayor popularidad. También se puede encontrar en otros campos (agua, gas, etc.).

Contenido

Historia

Cuando la especificación IEC 60870-5 se encontraba aún en desarrollo y no había sido estandarizada, surgió la necesidad de crear un estándar que permitiera la interoperatibilidad entre componentes SCADA de diferentes fabricantes, con el objetivo de ser utilizado en el sector eléctrico. De este modo, en 1993, GE-Harris Canada (anteriormente conocido como Westronic, Inc.) tomó parte de lo que había desarrollado hasta el momento de las especificaciones de IEC 60870-5 como base para el desarrollo de un sistema abierto que satisficiera las necesidades del sector de automatización estadounidense.

El protocolo se diseñó para establecer comunicaciones fiables en medios y entornos desfavorables a los cuales los equipos de automatización del sector eléctricos suelen estar sometidos. Por ello, se diseñó para superar las distorsiones que la inducción electromagnética produce en las comunicaciones, la antigüedad de los componentes, y medios de transmisión poco potentes.

Seguridad

Aunque el protocolo fue desarrollado en base a requisitos de gran fiabilidad, no se prestó demasiada importancia a los aspectos de seguridad relacionada con los ataques de crackers u otros factores malintencionados que pudiesen interferir en el correcto comportamiento de las comunicaciones entre los diversos sistemas de control. Esto supuso un importante error de diseño.

Debido a que el protocolo puede utilizar los niveles de transporte y enlace proporcionados por la suite TCP/IP, gran parte del problema de añadir un Sistema de Autenticación Seguro quedaba resuelto.

DNP3 es actualmente compatible con las especificaciones de seguridad IEC 62351-5.

Cabe destacar además que el protocolo DNP3 se menciona en el estándar IEEE 1379-2000, el cual recomienda un conjunto de prácticas recomendables para la implementación de enlaces de comunicación entre maestros SCADA - RTU/IED. Este estándar no sólo incluye cifrado, sino toda una serie de prácticas que mejoran la seguridad frente a métodos intrusivos conocidos.

Detalles Técnicos

El protocolo DNP3 presenta importantes funcionalidades que lo hacen más robusto, eficiente y compatible que otros protocolos más antiguos, tales como Modbus, con la contrapartida de resultar un protocolo mucho más complejo.

DNP3 es un protocolo de tres capas o niveles según el modelo OSI: nivel de enlace (Data Link Layer), Nivel de Aplicación (Application Layer), y un tercer nivel de Transporte (Transport Layer) que realmente no cumple con todas las especificaciones del modelo OSI, y por lo cual se suele denominar pseudo-nivel de Transporte. Por este motivo suele referirse a él como un protocolo de dos capas o niveles.

El formato de trama utilizado está basado en el FT3 recogido en las especificaciones IEC 60870-5 (es una redefinición de este formato, no una implementación idéntica), y hace uso del Chequeo de Redundancia Cíclica (CRC) para la detección de errores.


La estructuración en capas o niveles, sigue el siguiente esquema:

  • Los mensajes a nivel de aplicación son denominados Fragmentos. El tamaño máximo de un fragmento está establecido en 2048 bytes.
  • Los mensajes a nivel de transporte son denominados Segmentos.
  • Los mensajes a nivel de enlace son denominados Tramas. El tamaño máximo de una trama DNP3 es de 292 bytes.


Cuando se transmiten datos, éstos sufren las siguientes transformaciones al pasar por las diferentes capas:

  • Los datos se encapsulan en Fragmentos a nivel de aplicación.
  • El nivel de transporte se encarga de adaptar los Fragmentos para poder encapsularlos en tramas (nivel de enlace), para lo cual, secciona el mensaje del nivel de aplicación si es necesario, y les agrega la cabecera de transporte, formando de este modo los Segmentos.
  • En el nivel de enlace, los Segmentos recibidos del nivel de transporte son empaquetados en tramas, para lo cual se les añade a éstos una cabecera de enlace, y además, cada 16 bytes un CRC de 2 bytes.


Cuando se reciben datos, las transformaciones se suceden de la siguiente forma:

  • El nivel de enlace se encarga de extraer de las tramas recibidas los Segmentos que son pasados al nivel de transporte.
  • El nivel de transporte lee la cabecera de los segmentos recibidos del nivel de enlace, y con la información obtenida extrae y compone los fragmentos que serán pasados al nivel de aplicación.
  • En el nivel de aplicación los fragmentos son analizados y los datos son procesados según el modelo de objetos definido por las especificaciones del estándard.

Flujo de información DNP3 en su estructura de capas


Nivel de enlace

Los mensajes DNP3 a nivel de enlace se encuentran en bloques de no más de 292 bytes denominados tramas. El formato de trama es similar al FT3, si bien presenta ciertas diferencias.

Una trama DNP3 consta de tres bloques bien diferenciados:

Cabecera DNP3: son los diez primeros bytes de la trama, y está constituída por los siguientes campos:

  • 2 bytes de inicio (start bytes), cuyo valor es fijo. 0x05 (valor en hexadecimal) para el primero y 0x64 para el segundo.
  • 1 byte con el tamaño de la trama. Este valor no tiene en cuenta ni la cabecera, ni los CRC.
  • 1 byte con el código de control, que permite fijar los servicios del nivel de enlace, el sentido del flujo, etc.
  • 2 bytes con la dirección de destino, codificada en big-endian.
  • 2 bytes con la dirección de origen, codificada en big-endian.
  • 2 bytes de CRC.

Datos.

Cada 16 bytes de datos, así como al final de la trama, se encontrarán 2 bytes de CRC.

Formato de trama a nivel de enlace utilizado por DNP3

El nivel de enlace en DNP es balanceado, de modo que tanto la estación controladora como la controlada tienen responsabilidad tanto en los envíos de los datos como en la gestión (establecimiento y liberación) del nivel de enlace (fuera del alcance de las especificaciones del protocolo).

El empleo de doble direccionamiento (dirección de origen y dirección de destino) se debe a la funcionalidad que proporciona DNP3 basado en funcionamiento por excepción. De tal modo las comunicaciones no son iniciadas únicamente por la estación controladora, enviando preguntas a las estaciones controladas, sino que además estas últimas pueden iniciar una conversación dependiendo de la alteración de determinada información configurada en ella para ser reportada en estas condiciones. A este tipo de mensajes, en los cuales la estación controlada transmite los eventos de determinados objetos configurados en ella, se les denomina "respuestas no solicitadas".

El nivel de enlace proporciona una serie de servicios para la gestión de la comunicación entre las estaciones, tales como la petición o envío con o sin confirmación, las confirmaciones de tramas recibidas (ACK), las confirmaciones negativas (NACK), el reset de enlace (Reset Link) o el chequeo del estado del enlace (Link Status).

Nivel de transporte

El nivel de transporte es el encargado de permitir mensajes únicos estructurados tanto en múltiples tramas como en múltiples fragmentos. Esta es una de las características diferenciadoras de DNP3 frente a otros protocolos de comunicación industriales del mismo ámbito, tales como IEC 60870, y permite el concepto de mensajes de tamaño ilimitado.

A continuación se describirá el funcionamiento de este nivel, dependiendo del sentido del flujo de los datos dentro de la estructura de capas del protocolo.

Datos transmitidos del nivel de aplicación al nivel de enlace

El nivel de aplicación pasa los fragmentos al nivel de transporte, y este se encarga de trocearlos y agregarles al principio la cabecera de transporte, la cual ocupa un byte y contine el número de secuencia que identifica el segmento dentro del fragmento. El tamaño de los fragmentos ha de ser tal, que una vez agregadas las cabeceras de transporte (diez bytes) y los correspondientes CRCs, el tamaño total no exceda los 292 bytes máximos permitidos para una trama.

Datos transmitidos del nivel de aplicación al nivel de enlace

En este caso, el nivel de transporte se encarga de recomponer los fragmentos del nivel de aplicación a partir de los segmentos que le proporciona el nivel de enlace. Para ello, recurre a las cabeceras de transporte y al número de secuencia que identifica la posición de cada segmento dentro del fragmento.

Nivel de aplicación

El nivel de aplicación se encarga de procesar los fragmentos que le pasa el nivel de transporte, y obtener la información de control y monitorización en ellos encapsulados atendiendo al modelo de datos.

Entre los servicios que proporciona este nivel, se encuentran la escritura y lectura de valores, la congelación de contadores y la selección y ejecución de mandos. El código de función es el que permite indicar qué operación debe realizarse en este nivel.

Por otro lado, las estaciones controladas disponen de la posibilidad de informar a la estación controladora de diferentes aspectos relacionados con este nivel gracias a dos bytes denominados indicaciones internal (Internal Indications, IIN). La estación controlada puede servirse de estas indicaciones para informar acerca de la presencia de eventos de clase 1, clase 2 o clase 3, de la necesidad de ser sincronizada o de la presencia de anomalías en la configuración o en la base de datos.

El modelo de datos en DNP3 está basado en un esquema de objetos.

Modelo de Objetos en DNP3

El modelo de objetos en DNP3 permite, en rasgos generales, definir los tipos de datos que se manejarán en las diferentes transacciones entre estación controlada y estación controlante. A pesar de ello, existen objetos orientados más bien a servicios a nivel de aplicación que a formato de datos en sí, como pueden ser el objeto 60 (Objeto de Clase), o el objeto 80 (indicaciones internas).

Mediante las denominadas variaciones, es posible establecer, además del tipo de dato definido por el objeto, el formato del mismo (tamaño y formato de los valores, por ejemplo).

A continuación, se describen algunos de los objetos más comunmente utilizados en comunicaciones DNP3:

  • Objeto 1 - Entradas digitales: este objeto hace referencia a las entradas digitales. Permite la lectura de las mismas, mediante el código de función 1, o la asignación de clase mediante el código de función 22 (códigos de función también soportados por otros objetos como contadores o entradas analógicas).
  • Objeto 2 - Eventos de las entradas digitales: es importante destacar que DNP3 maneja los valores estáticos y sus eventos como objetos diferentes. Así, los eventos de las entradas digitales (objeto 1) se agruparán en el objeto 2.
  • Objeto 12 - Mandos digitales: este objeto hace referencia a los controles digitales. Mediante los códigos de función de selección, ejecución, selección y ejecución y ejecución sin confirmación, se podrán realizar estas operaciones sobre los elementos especificados bajo este objeto.
  • Objeto 20 - Contadores: mediante este objeto, DNP3 permite la lectura o manipulación (congelación, reseteo, etc.) de contadores.
  • Objeto 22 - Eventos de contadores: este es el objeto utilizado para agrupar la información relativa a eventos generados por contadores (objeto 20).
  • Objeto 30 - Entradas analógicas: los valores analógicos se agrupan bajo este objeto.
  • Objeto 32 - Eventos de las entradas analógicas: este es el objeto utilizado para los eventos de las entradas analógicas definidas mediante el objeto 30.
  • Objeto 41 - Mandos analógicos: este es el objeto utilizado para ejecutar mandos analógicos o Set Points. Admite las mismas funciones que los mandos digitales.
  • Objeto 50 - Hora y fecha: la variación 1 de este objeto permite a la estación controladora sincronizar a la estación controlada.
  • Objeto 60 - Objeto de clase: como se comentó más arriba, este objeto no distingue exactamente entre un tipo de dato, sino más bien hace alusión a una serie de servicios del nivel de aplicación. Dependiendo del código de función utilizado, mediante este objeto la estación controlada puede realizar peticiones por clase, o asignar clases a los eventos de los objetos estáticos configurados en la estación controlada.

Las clases en DNP3 permiten agrupar los eventos en tres niveles diferentes (recurso útil para priorizar el esquema de peticiones del maestro). Las peticiones por clase permiten el polling por eventos. Un caso excepcional es una cuarta clase denominada clase 0, mediante la cual el maestro puede solicitar al esclavo el envío de todos los valores estáticos configurados en su base de datos.

Más información

  • IEC 60870-5
  • IEC 60870-5-104
  • IEC 60870-5-103
  • IEC 61850

Enlaces externos

Obtenido de "DNP3"

Wikimedia foundation. 2010.

Mira otros diccionarios:

  • DNP3 — (Distributed Network Protocol) is a set of communications protocols used between components in process automation systems. Its main use is in utilities such as electric and water companies. Usage in other industries is not common. It was… …   Wikipedia

  • DNP3 — (Distributed Network Protocol) ist ein offizieller Kommunikationsstandard für die Fernwirktechnik (siehe auch Fernwirken). Das Protokoll wird als allgemeines Übertragungsprotokoll zwischen Leitsystemen und Unterstationen eingesetzt. Die… …   Deutsch Wikipedia

  • DNP3 — (Distributed Network Protocol)  это протокол передачи данных используемый для связи между компонентами АСУ ТП. Был разработан для удобного взаимодействия между различными типами устройств и систем управления. Может применяться на различных… …   Википедия

  • Modbus — is a serial communications protocol published by Modicon in 1979 for use with its programmable logic controllers (PLCs). Simple and robust, it has since become one of the de facto standard communications protocols in the industry, and it is now… …   Wikipedia

  • IEC61850 — IEC 61850 [ [http://www.61850.com IEC 61850 overview] .] is a standard for the design of electrical substation automation. IEC61850 is a part of the International Electrotechnical Commission’s (IEC) Technical Committee 57 (TC57) [… …   Wikipedia

  • Dnp — steht für: die chemische Verbindung Dinitrophenol das Unternehmen Dai Nippon Printing Co. Ltd., ein japanischer Hersteller von Fotomasken die dynamische Kernpolarisierung (Dynamic Nuclear Polarization), eine physikalische Methode zur… …   Deutsch Wikipedia

  • Fernwirktechnik — Unter Fernwirken werden gewöhnlich steuerungstechnische, regelungstechnische oder sicherungstechnische Aufgaben verstanden, die aus der Ferne , also über ein Telekommunikationsnetz ausgeführt werden. Es werden spezielle… …   Deutsch Wikipedia

  • SCADA — is the abbreviation for Supervisory Control And Data Acquisition . It generally refers to an industrial control system: a computer system monitoring and controlling a process. The process can be industrial, infrastructure or facility based as… …   Wikipedia

  • ZigBee — module. The €1 coin, shown for size reference, is about 23 mm (0.9 inch) in diameter. ZigBee is a specification for a suite of high level communication protocols using small, low power digital radios based on an IEEE 802 standard for personal… …   Wikipedia

  • Remote Terminal Unit — An RTU, or Remote Terminal Unit is a microprocessor controlled electronic device which interfaces objects in the physical world to a distributed control system or SCADA system by transmitting telemetry data to the system and/or altering the state …   Wikipedia

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”