Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROTOCOLO DNP3
INTRODUCC
IN
Los protocolo definen las reglas por las cuales un dispositivo se comunica con otros,
DNP 3.0 es un protocolo para la transmisin de datos, desde un punto A hasta un
punto B usando comunicaciones seriales. Este ha sido utilizado principalmente por las
compaas elctricas, pero puede operar perfectamente en otras reas.
DNP 3.0 provee las reglas para las computadoras de subestacin, como de estacin
maestra, para comunicar comandos de datos y control. Protocolo DNP 3.0 desarrollado
por la GE Harris en 1990, DNP 3.0 es un protocolo abierto de propiedad pblica para
aplicaciones en telecontrol, SCADAs y sistemas de automatizacin distribuidos.
Fue diseado para lograr la interoperabilidad entre RTUs, IEDs (Dispositivo Electrnico
Inteligente) y MTUs. Ha sido adoptado por la IEEE como protocolo recomendado en la
interconexin IED-RTU en subestaciones elctricas. Cabe estacar que este manual da
solo una breve introduccin a DNP, de ninguna forma pretende ser un manual de este
protocolo, su objetivo slo es facilitar el uso y configuracin del CommSet para DNP.
DNP3 o Distributed Network Protocol 3 es un estndar de telecomunicaciones que
define las comunicaciones entre estaciones maestras, unidades remotas (RTU) y otros
dispositivos electrnicos inteligentes (IEDs). Fue desarrollado para lograr la
interoperabilidad entre los sistemas de empresas elctricas, petroleras, de agua, entre
otras.
DNP3 ha sido diseado especficamente para aplicaciones SCADA (Control supervisor
y adquisicin de datos), esto implica la adquisicin de informacin y envo de
comandos de control entre dispositivos computarizados separados fsicamente. Est
diseado para la transferencia de paquetes relativamente pequeos de datos de
manera fiable con los mensajes que lleguen a participar de una secuencia
determinista. En este sentido se diferencia de otros protocolos de uso general, tales
como FTP, que es parte de TCP/IP, que puede enviar archivos de gran tamao, pero de
una manera que generalmente no es tan adecuada para el control SCADA.
Historia
DNP fue creado originalmente por Westronic, Inc. (ahora GE Harris) en 1990. En 1993,
el set de documentos de especificacin del protocolo "DNP 3.0 Basic 4" cobr dominio
pblico. La propiedad del protocolo fue entregada al recientemente formado DNP
Users Group en octubre de ese ao. Desde entonces, el protocolo ha ganado
aceptacin mundial, incluyendo la formacin de grupos de usuarios en China, Amrica
latina, y Australia.
En enero de 1995, fue formado el DNP Technical Committee para estudiar mejoras y
recomendarlas para su aprobacin al Users Group general. Una de las tareas ms
importantes de este cuerpo era publicar el documento DNP Subset Definitions, que
establece los estndares para las puestas en marcha de DNP 3.0.
DNP 3.0 es un protocolo para sistemas SCADA moderno, abierto, inteligente, robusto y
eficiente. Entre otras cosas, puede:
CARACTERSTICAS
DE DNP3
DNP3 ofrece caractersticas importantes, as como la flexibilidad y la seguridad. Estos
se resumen en la siguiente lista:
Arquitectura
DNP 3.0 contiene cuatro capas
CAPA DE APLICACIN
SEUDO-CAPA DE TRANSPORTE
CAPA ENLACE
CAPA FISICA
TOPOLOG
AS
El protocolo DNP3 soporta los modos operativos de encuestas y
funcionamiento
por excepcin. Esta ltima se llama as porque las
encuestas para comprobar cambios no son necesarias, esto se debe a que
la estacin principal puede invocar a la sub-estacin a enviar una
respuesta no solicitada cuando se tiene un cambio que debe ser reportado.
As, en ausencia de cambios el sistema permanece en reposo, o en un
estado tranquilo, sin encuestas de la estacin principal, ni respuestas de los
puestos avanzados. En un sistema en reposo, por lo general una encuesta
peridica de fondo, aun se utiliza, tal vez en intervalos de una hora, para
tomar precauciones contra la falla de comunicaciones.
Las topologas que se manejan en el protocolo DNP3 son
las siguientes:
Maestro/Esclavo.
Mltiples
esclavos.
Mltiples maestro.
Detalles tcnicos
El protocolo DNP3 presenta importantes funcionalidades que lo hacen ms robusto, eficiente y
compatible que otros protocolos ms antiguos, tales como Modbus, con la contrapartida de
resultar un protocolo mucho ms complejo.
DNP3 es un protocolo de tres capas o niveles segn el modelo OSI: nivel de enlace (Data Link
Layer), Nivel de Aplicacin (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 608705 (es una redefinicin de este formato, no una implementacin idntica), y hace uso de
la Comprobacin de Redundancia Cclica (CRC) para la deteccin de errores.
La estructuracin en capas o niveles, sigue el siguiente esquema:
Los mensajes a nivel de enlace son denominados Tramas. El tamao mximo de una
trama DNP3 es de 292 bytes.
Cuando se transmiten datos, estos sufren las siguientes transformaciones al pasar por las
diferentes capas:
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 informacin obtenida extrae y compone los fragmentos que sern pasados al nivel
de aplicacin.
En el nivel de aplicacin los fragmentos son analizados y los datos son procesados
segn el modelo de objetos definido por las especificaciones del estndar.
Niveles de enlaces
Los mensajes DNP3 a nivel de enlace se encuentran en bloques de no ms 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 constituida 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 tamao de la trama. Este valor no tiene en cuenta ni la cabecera, ni los
CRC.
1 byte con el cdigo de control, que permite fijar los servicios del nivel de enlace, el
sentido del flujo, etc.
2 bytes de CRC.
Datos.
Cada 16 bytes de datos, as como al final de la trama, se encontrarn 2 bytes de CRC.
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 envo de todos los valores estticos configurados en su
base de datos.
Arquitectura en capas
DNP 3.0 es un protocolo de capas. An as, en lugar de asemejarse al protocolo de
7 capas de la OSI (Open System Interconection interconexin de sistemas
abiertos), DNP 3.0 adhiere a un estndar simplificado de 3 capas propuesto por el
IEC (International Electrotechnical Commission Comisin internacional de
Electrotecnia) para implementaciones ms bsicas. El IEC llama a esto Enhanced
Performance Architecture, o EPA. (En realidad, sin embargo, DNP 3.0 agrega una
cuarta capa, una capa de pseudotransporte que permite la segmentacin del
mensaje).
La estructuracin en capas o niveles, sigue el siguiente esquema:
Capa Fsica
La capa fsica se refiere sobre todo a los medios fsicos sobre los cuales se est
comunicando el protocolo. Por ejemplo, maneja el estado del medio (libre u
ocupado), y la sincronizacin a travs del medio (iniciando y parando). Ms
comnmente, DNP se especifica sobre una capa fsica serial simple tal como
RS232 o RS485 usando medios fsicos tales como fibra, radio o satlite. Los
proyectos se orientan actualmente para implementar DNP sobre una capa fsica
Ethernet.
Capa de Transmisin De Datos
La capa de transmisin de datos maneja la conexin lgica entre el remitente y el
receptor de la informacin y pone a prueba las caractersticas de error del canal
fsico. DNP logra esto comenzando cada frame de transmisin de datos con una
cabecera, e insertando un CRC de 16 bits cada 16 bytes del frame. Un frame es
una porcin de un mensaje completo comunicado sobre la capa fsica. La medida
mxima de un frame de transmisin de datos es 256 bytes. Cada frame tiene una
direccin fuente de 16 bits y una direccin de destino tambin de 16 bits, las que
pueden ser una direccin de difusin o broadcast (0xffff). La informacin del
direccionamiento, junto con un cdigo de inicio de 16 bits, la longitud del frame, y
un byte de control de transmisin de datos se hallan en la cabecera (10 bytes) de
transmisin de datos.
El byte de control de transmisin de datos indica el propsito del frame de
transmisin de datos, y el estado de la conexin lgica. Los valores posibles del
byte de control de transmisin de datos son: ACK, NACK, la conexin necesita
resetear, la conexin ha sido reseteada, confirmacin de solicitud de transmisin
de datos del frame, solicitud de estado de conexin, y contestacin de estado de
conexin. Cuando se solicita una confirmacin de transmisin de datos, el
receptor debe responder con un frame ACK de transmisin de datos si el mismo
es recibido y pasa los controles del CRC. Si una confirmacin de la transmisin de
datos no se solicita, no se requiere ninguna respuesta de la transmisin de datos.
Capa de PseudoTransporte
La capa de pseudotransporte divide mensajes de la capa de aplicacin en
mltiples frames de transmisin de datos. Para cada frame, inserta un cdigo de
funcin de 1 byte que indica si el frame de transmisin de datos es el primer
frame del mensaje, el ltimo frame del mensaje, o ambos (para mensajes
Capa de Aplicacin
La capa de aplicacin responde a mensajes completos recibidos (y arribados de la
capa de transporte), y construye los mensajes basados en la necesidad o la
disponibilidad de los datos del usuario. Una vez que se construyan los mensajes,
se pasan a la capa de pseudotransporte donde se dividen en segmentos y se
pasan a la capa de transmisin de datos y eventualmente comunicados sobre la
capa fsica.
Cuando los datos a transmitir son demasiado grandes para un solo mensaje de la
capa de aplicacin, se pueden construir mensajes mltiples de la capa de
aplicacin y transmitirlos secuencialmente. Sin embargo, cada mensaje es un
mensaje independiente de la capa de aplicacin; existe una indicacin de su
asociacin con el siguiente, en todos excepto en el ltimo. Debido a esta posible
fragmentacin de los datos de aplicacin, cada mensaje es referido como un
fragmento, y un mensaje por ende puede ser un mensaje de un solo fragmento o
un mensaje de mltiples fragmentos.
Los fragmentos de la capa de aplicacin de las estaciones Master de DNP son
tpicamente solicitudes de operaciones sobre objetos de datos, y los fragmentos
de la capa de aplicacin de estaciones esclavas de DNP son tpicamente
respuestas a esas peticiones. Una estacin esclava DNP puede tambin transmitir
un mensaje sin una peticin (una respuesta no solicitada).
Como en la capa de transmisin de datos, los fragmentos de la capa de aplicacin
se pueden enviar con una solicitud de confirmacin. Una confirmacin de la capa
de aplicacin indica que un mensaje no slo ha sido recibido, sino tambin
analizado sin error. (por otra parte, una confirmacin de la capa de transmisin de
datos, o ACK, indica solamente que se ha recibido el frame de la transmisin de
datos y que pas los controles de error del CRC.)
Cada fragmento de la capa de aplicacin comienza con una cabecera seguida por
una o ms combinaciones de objetos de datos y objetos cabecera. La cabecera de
la capa de aplicacin contiene un cdigo de control de la aplicacin y un cdigo
de funcin de la aplicacin. El cdigo de control de la aplicacin contiene una
indicacin de si el fragmento es parte de un mensaje multifragmento, una
indicacin de si una confirmacin de la capa de aplicacin es requerida por el
fragmento, una indicacin de si el fragmento fue no solicitado, y contiene un
nmero de secuencia de la capa de aplicacin. Este nmero de secuencia de la
capa de aplicacin permite que la capa de aplicacin receptora detecte los
fragmentos que estn fuera de secuencia, o los fragmentos perdidos.
El cdigo de funcin de cabecera de la capa de aplicacin indica el propsito, o la
operacin solicitada, del mensaje. A la par que DNP 3.0 permite mltiples tipos de
datos dentro de un nico mensaje, permite una nica operacin sobre los tipos de
datos dentro del mismo. Algunos ejemplos de cdigos de funcin son:
Confirmar (para las confirmaciones de la capa de aplicacin), leer y escribir,
seleccionar y operar, congelar y limpiar (para los contadores), reiniciar, permitir e
Organizacin
de
la
Base
de
datos
En DNP, los datos se ordenan en tipos de datos. Cada tipo de datos es un grupo
objeto, incluyendo:
Una peticin para todos los puntos del grupo de objetos especificado
Una peticin para un rango contiguo de puntos comenzando con un
especfico punto de partida y
Terminando con un especfico punto de llegada.
Una peticin para una mxima cantidad de puntos con una lista de puntos
solicitados.
Para los mensajes de respuesta, los object point ranges consisten tpicamente en
un rango contiguo de puntos que comienzan con un punto de partida especificado
y terminan con una punto de llegada especificado, o con una lista de puntos. Para
los object point ranges de respuesta que consisten en una lista de puntos, un
nmero de punto precede a cada objeto de datos. El nmero de puntos en la lista
se especifica como parte del object point range.
Modelo de Reportes
Muchos de los grupos de objeto pueden corresponder, pero se separan, los grupos
de objeto que contienen datos del cambio. Los datos del cambio representan
solamente los puntos que han cambiado para un grupo de objeto especficamente
correspondiente. Por ejemplo, el grupo nmero 1 de objeto representa las
entradas de informacin binarias (consideradas los datos estticos), y el grupo
nmero 2 de objeto representa datos binarios con cambio de la entrada de
informacin. Cuando un punto en el grupo de objeto 1 se detecta que ha
cambiado, un acontecimiento de cambio en el grupo de objeto 2 para el mismo
nmero del punto se crea. Incluye solamente los puntos que han cambiado en los
mensajes de respuesta, esto permite mensajes ms pequeos y eficientes.