Está en la página 1de 108

Coordinación de Distribución.

Gerencia de Operación.
Departamento de
Comunicaciones y Control Nacional

Protocolo DNP3

6 de noviembre del 2019


Redes de Datos:
Información

-Redes de datos: El intercambio de información se realiza a


través de estas

-¿Qué es información?
-Conjunto de datos procesados y ordenados útiles
para la toma de decisiones

-Hay muchas definiciones, sin embargo esta se puede


medir:
-La Unidad Básica de Información es el bit.
Sistemas numéricos:
Combinaciones.

Bits Combinaciones Con Prefijos


1 2 2 .
8 256 8 .
10 1024 1k (kilo)
16 65536 64k (kilos)
20 1,048,576 1M (mega)
30 1,073,741,824 1G (giga)
32 4,294,967,296 4G (gigas)
Sistemas numéricos:
Comparación de prefijos Binario - Decimal.

Prefijo Binario ÷ Decimal Decimal ÷ Binario


kilo 1.024 (+2.4%) 0.9766 (−2.3%)

mega 1.049 (+4.9%) 0.9537 (−4.6%)

giga 1.074 (+7.4%) 0.9313 (−6.9%)

tera 1.100 (+10.0%) 0.9095 (−9.1%)

peta 1.126 (+12.6%) 0.8882 (−11.2%)

exa 1.153 (+15.3%) 0.8674 (−13.3%)

zetta 1.181 (+18.1%) 0.8470 (−15.3%)

yotta 1.209 (+20.9%) 0.8272 (−17.3%)


Sistemas numéricos:
Binario, Octal y Decimal.

Binario Octal Hexa- Decimal


Sistemas numéricos decimal
Sistemas numéricos (Binario, Octal y Decimal):
0000 0000 0 0 0
00 000 111 7 7 7
0000 1111 17 F 15
00 111 111 7 7 3F 63
1111 1111 377 F F 255
Sistemas numéricos:
Números con signo (complemento a 2).
Número 4 Bits
0000
0001 0
0010
0011 .
Números positivos
0100
0101 .
0110
0111
.
1000
1001
.
1010
1011
.
Números negativos
1100 .
1101
1110 15
1111
Sistemas numéricos:
Números con signo (complemento a 2).

Bits + +/- Bits + +/-


0000 0 0 1 000 8 -8
0001 1 1 1 001 9 -7
0010 2 2 1 010 10 -6
0011 3 3 1 011 11 -5
0100 4 4 1 100 12 -4
0101 5 5 1 101 13 -3
0110 6 6 1 110 14 -2
0111 7 7 1 111 15 -1
Redes de Datos:
Arquitectura de redes.

-Redes de datos: ¿Cómo resuelvo el problema de


comunicar varios ordenadores?

RED de
Datos
Redes de Datos:
Estándares.

El modelo OSI (Open Systems Interconnection)


- Estándar ISO/IEC 7498-1
- ISO → International Organization for Standardization
- Agrupa organizaciones de estándares nacionales como:
- ANSI (USA); BSI (Gran Bretaña); AFNOR (Francia); DIN
(Alemania);
- En México: Dirección General de Normas

- Publicado en 1984 (última revisión en 1994)


- Elaborado en colaboración con la
- ITU → International Telecommunication Union
- Organismo especializado en TICs de la ONU

Objetivo

Crear una base común para los procesos de desarrollo y estandarización


de las comunicaciones de datos.
Redes de Datos:
Arquitectura de redes.

-Protocolos de capas (jerárquicos)

Protocolo piso 5
Protocolo piso 4
Protocolo piso 3
Protocolo piso 2

Protocolo piso 1
Redes de Datos:
Arquitectura de redes.

Funcionamiento de la Arquitectura de redes


Transmisor Receptor

7) Produce mensaje Protocolo de la capa 7


m m
Interfase de la capa 6/7
Protocolo de la capa 6
6) Encripta M M
Interfase de la capa 5/6
Protocolo de la capa 5
5) Flujo M M

Protocolo de la capa 4
4) Divide el mensaje H4 M1 H4 M2 H4 M1 H4 M2

Protocolo de la capa 3
H3 H4 M1 H3 H4 M2 H3 H4 M1 H3 H4 M2
3) Encamina el
paquete Protocolo capa 2
H2 H3 H4 M1 T1 H2 H3 H4 M2 T2 H2 H3 H4 M1 T1 H2 H3 H4 M2 T2

2) Lo envía sin errores Protocolo de la capa 1


Capa 1 Capa 1

1) Lo pasa al medio Medio fisico


físico Capas, protocolos e interfases
Redes de Datos:
El modelo OSI.
Hostal A Hostal B
El modelo OSI
Protocolo de Aplicación
Aplicación Aplicación

Protocolo de Presentación
Presentación Presentación

Protocolo de Sesión
Sesión Sesión

Programadores Protocolo de Transporte


Transporte Transporte

Límite de comunicación de la Subred

Red Red Red Red

Protocolos Enlace Enlace Enlace Enlace


IMP

Telecomunicaciones Física Física Física Física

Medio fisico
Redes de Datos:
El modelo OSI.

El modelo OSI

1) Nivel Físico: Transmite bits puros por el medio físico


2) Enlace: Crear un medio de comunicación sin errores
3) Nivel de Red: Determina como se enrutan los paquetes desde su
origen hasta su destino.

4) Transporte: Gestiona grandes cantidades de información dividiéndola


en unidades pequeñas y de asegura que todas lleguen a su destino.
5) Sesión: Gestiona las sesiones de usuarios, controla el flujo de
información, sincroniza en caso de falla.
6) Presentación: Controla la sintaxis y semántica entre computadoras
7) Aplicación: Protocolos como http; de correo, transferencia de archivos,
etc.
Redes de Datos:
El modelo de referencia TCP/IP.

1) Nació antes que OSI (1974)

2) Surge la red ARPANET (Advanced Research Projects Agency


Network) del Departamento de Defensa de USA.

3) Posteriormente conectó varias Universidades (con líneas telefónicas)

4) Su nombre se define por sus dos protocolos primarios publicados en


1981 (versión 4) en la RFC 791

1) TCP Transmision Control Protocol


2) IP Internet Protocol
Redes de Datos:
TCP/IP vs OSI

TCP/IP OSI

Aplicación

Aplicación Presentación

Sesión

Transporte Transporte

Internet Red

Enlace de Datos
Enlace
Físico
Redes de Datos:
Protocolos TCP/IP

TCP/IP Protocolos

TELNET
FTP
Aplicación SMTP
DNS
HTTP

TCP
Transporte
UDP

Internet IP (IPv4 e IPv6); ICMP; IGMP

No define un protocolo concreto


Enlace LAN
Redes de Datos:
Protocolo de transporte UDP.

UDP – User Datagram Protocol (RFC 768 de 1980)


- Permite enviar sobre IP un datagrama
- El destinatario estará escuchando en un puerto
- No es orientado a conexión.
IP fuente IP destino
Puerto Destino

- No es confiable
- No se garantiza la entrega
- Ejemplos de uso:
- SNMP (puerto 161 y 162); DHCP (Puerto 67 y 68)

Es como enviar una carta por correo


Redes de Datos:
Protocolo de transporte TCP.

TCP – Transmission Control Protocol (RFC 1122 – 1989)


- Servicio confiable orientado a conexión

Cliente Servidor

- Ejemplos de uso:
- La web, email, ftp, casi todos los servicios de internet.

Es como una llamada telefónica


Sistemas SCADA:
Control y supervisión de las RGD

Control y Supervisión del Sistema


Eléctrico de Distribución

Medios de Comunicación Linieros


Centro de Control
de Distribución

RGD
< 69 KV Personal de:
Lecturistas Equipo Primario
Personal CCC Linieros M.T. Protecciones
Control
Comunicaciones
Sistemas SCADA:
SCADA - Definición

-¿Qué es un sistema SCADA en CFE Distribución?;


-Acrónimo SCADA → Supervisión, Control y Adquisición de Datos;
(Supervisory Control And Data Acquisition)
-Definición: Sistema que permite controlar, supervisar y obtener
información de las Redes Generales de Distribución

Redes Generales Supervisión


de Distribución

Control

Adquisición Centro de Control


de Datos de Distribución
CCD
Sistemas SCADA:
Tipos de datos.

-¿Qué tipo de información utiliza un sistema SCADA?;

Controles - (Salidas de Control)


Ejemplo: Abrir o Cerrar un Interruptor
RGD
CCD

Mediciones – (Entradas Analógicas)


Ejemplo: Las mediciones registradas en un medidor (KV, F.P.,
KW,KVA,KVAR)
Indicaciones y Alarmas – (Entradas Digitales)
Sólo pueden tener dos estados, ejemplo: Prendido/Apagado;
Alarma/Normal; Cerrado/Abierto); etc.
Cuando una entrada digital está asociada al estado de un
interruptor (abierto/cerrado), se dice que es una indicación.
Sistemas SCADA:
Partes que lo integran

-Sistema SCADA – Partes que lo integran


Nota: A la UTM también se le UTM
conoce como UCM Unidad Terminal
Unidad Central Maestra Maestra

Medio de
Comunicaciones
CCD

Protocolo de
Comunicaciones
UTR
Unidad Terminal Equipos de
Remota Comunicaciones
Sistemas SCADA:
Unidades Terminales Remotas (UTR)

-Unidad Terminal Remota


-Su función es concentrar la información en una
instalación y reportarla a una UCM

Supervisada y Controlada UTR


a través de: DEIs
Dispositivos Electrónicos Inteligentes

Ejemplos de DEIs:
Relevadores, Medidores,
Sistemas de Monitoreo, Información
Restauradores, Seccionadores, UTR, etc.
Sistemas SCADA:
Unidades Terminales Remotas (UTR)

-Tipos de Unidades Terminales Remotas (UTRs)


-UTRs de subestación
-Se utilizan en las subestaciones y se instalan dentro
de la caseta de control.

-UTRs de poste
-Se instalan sobre los postes de distribución y se
utilizan para el Telecontrol de Restauradores y
Seccionadores o cualquier dispositivo telecontrolable
sobre la red de media tensión.
Sistemas SCADA:
Unidad Central Maestra (UCM)
Servidores de Históricos
-Unidad Terminal Maestra Donde se almacena información
de los eventos registrados y
mediciones
Servidores SCADA o de Comunicaciones
Manejan los protocolos SCADA y se comunican
directamente con las UTRs
Estaciones de ingeniería
Desde donde se configura y
INTRANET administra la UCM
CFE

FireWall
RED LAN
Red LAN 1

Red LAN 2

IHM IHM
Impresoras

IHM – Interfaz Hombre Máquina


Permite a un operador interactuar con la UTM
Sistemas SCADA:
Comunicaciones

-Comunicación entre la UTR y la UCM

UTM
UTR

Requiero de:
•Medio de Comunicación
•Protocolo de Comunicaciones CCD

Información Digital
Sistemas SCADA:
Comunicaciones

-Medios de Comunicaciones
Definición: Es el medio físico a través del
cual se transporta la información.

Ejemplos:

Fibra Óptica: La información se transmite en


forma de pulsos de luz a través de un medio
dieléctrico.

Radio: La información se transmite


codificada a través de una onda portadora
(pueden ser punto a punto, o punto
multipunto).

Cobre en redes LAN: La información se


codifica en pulsos eléctricos.
Sistemas SCADA:
Comunicaciones

-Tipos de Comunicación

Comunicación Simplex: Es en un solo sentido, hay un transmisor y


un receptor;
Ejemplo: TeleAlarmas (Dispositivos utilizados en la edad de piedra
que avisaban a través de tonos sobre los canales de voz de radio,
que un alimentador abrió), en este caso el operador se entera del
evento, pero no puede hacer nada al respecto.

Panel de alarmas

RGD Despachador
Sistemas SCADA:
Comunicaciones

-Tipos de Comunicación
Comunicación Dúplex: Es en ambos sentidos, pero no al mismo
tiempo;
Ejemplo: Cuando se tiene un solo canal de comunicación y los
mensajes son escuchados por todos los dispositivos conectados.
En este tipo de canales se utilizan Protocolos SCADA Maestro-Esclavo
como el Harris 5000, donde la UTM hace una pregunta y la UTR
responde. En este tipo de protocolos la UTR no puede avisar que
sucedió un evento y debe esperar a que se le pregunte para
reportarlo.
Centro de Control

RGD
Sistemas SCADA:
Comunicaciones

-Tipos de Comunicación

Comunicación Full - Dúplex: Es en ambos sentidos y puede ser al


mismo tiempo;
Ejemplo: Protocolo DNP3, donde se puede tener comunicación
simultanea en ambos sentidos, la UTR puede avisar sobre un evento
registrado y la UCM en forma paralela estar preguntando
información a otro dispositivo.

Centro de Control

RGD
Sistemas SCADA:
Comunicaciones

-Comunicación Analógica
Comunicación analógica: La información transmitida se codifica en señales de
onda que varían en forma continua.
Ejemplo:
-Dos personas hablando en un salón.
-Señales de voltaje o corriente de TPs o TCs para medidores.
-El medio de comunicación y equipos repetidores hacen que se degrade la
señal

Señal Analógica Señal Analógica


Transmitida Recibida con ruido
Medio de
Comunicación
Sistemas SCADA:
Comunicaciones

-Comunicación Digital
Comunicación Digital: La información que se transmite está codificada en forma
binaria (ceros y unos)
Las computadoras sólo pueden interpretar y almacenar información binaria.
Al pasar por varios equipos, siempre se copia en forma exacta, no se degrada
Ejemplos:
-La información transmitida entre ordenadores.
-Todas las comunicaciones en un sistema SCADA
-La comunicación entre la UTR y la UCM
-La comunicación entre un Relevador y una UTR.

Señal Digital Señal Digital


Transmitida Recibida
Medio de
0 1 0 1 1 1 0 Comunicación 0 1 0 1 1 1 0
Sistemas SCADA:
Comunicaciones

-Protocolo de Comunicaciones

UTR Definición: Conjunto de reglas que permiten UTM


establecer la comunicación entre dos ordenadores
para la transmisión de información.

Estas reglas consideran los posibles métodos


para recuperación de errores en la recepción de
los mensajes y se encuentran descritas en el
documento de especificación del protocolo.

El protocolo SCADA que debe ser utilizado en CFE-Distribución es:


-DNP3 (Distributed Network Protocol)

Adicionalmente el protocolo de comunicación entre Centros de Control es:


-ICCP (Inter-Control Center Communications Protocol)
Protocolos SCADA:
DNP vs OSI

DNP3 OSI

Aplicación Aplicación

Presentación

Sesión

Transporte Transporte

Red

Enlace Enlace de Datos

Físico
Protocolos SCADA:
Recuperación de errores

-Métodos para la recuperación de errores de comunicación.

-Solicitud de confirmación de mensajes UTM


(ACK - acknowledgement)
UTR
-Retransmisión de mensajes

-Mensajes con número de secuencia

-Verificación de paquetes por CRC


(Ciclic Redundancy Check)

-Etc.
Protocolos SCADA:
Recuperación de errores

-Verificación de paquetes por CRC; Es un código calculado


a partir de los bits que integran el mensaje.

Transmisor: CRC
Mensaje
Transmitido

Receptor: CRC CRC


Si: calculado Recibido
Mensaje Correcto

Mensaje CRC CRC


Recibido Si: calculado Recibido
Mensaje Incorrecto
Se solicita retransmisión
Protocolo DNP3:
Distributed Network Protocol
Protocolo DNP3:
Distributed Network Protocol

Westronic Incorporated desarrolló el protocolo DNP3 entre 1992 y 1994.


(http://www.westronic.com/), con el objetivo de que este fuera realmente un
estándar abierto y útil para la industria (en ese entonces la mayoría de
protocolos eran propietarios).

DNP3 está basado en las especificaciones de la International


Electrotechnical Commission IEC60870-5, donde participó Westronic,
había otra arquitectura candidata a seguir como estándar, la UCA (Utility
Communications Architecture) del Electrical Power Research Institute
(EPRI), pero al final … desapareció. 

Parte del éxito del DNP fue que Westronic divulgó su especificación,
conocida como DNP Basic 4.
Protocolo DNP3:
Distributed Network Protocol

Características del DNP:


- Ligero: (diseñado para velocidades de 1200 bps) y el uso de el menor
número de capas del modelo OSI.
- Confiable: Se tomó lo mejor del formato de trama especificado en IEC
60870-5-1; Frame Type 3 (FT3).
- Se incorporó lo mejor de los protocolos existentes:
- Broadcasting -> Un mensaje para varios dispositivos
- Select-Before-Operate <-> Or Not?
- Time-Stamped Data. -> Para todos los tipos de datos
- Sincronización de tiempo precisa.
- Banderas indicando si los datos son o no válidos (en línea).
- Múltiples formatos de datos -> 16 bits; 32 bits; con/sin bandera,
punto flotante, BCD, etc.
- Reporte de cambios y respuestas no solicitadas
- Indicaciones internas
Protocolo DNP3:
Distributed Network Protocol

El nombre correcto del protocolo es: DNP3.

Para los curiosos: DNPV1.00 y DNPV2.00 son propietarios de Westronic.

Nunca va a existir DNP 4.0 o DNP3.1; El nombre se va a mantener


reconocible independientemente de las versiones.

El grupo de usuarios se denomina: “DNP User’s Group” (sin versiones)


Protocolo DNP3:
Flujo de información:

Master →
Unidad Central Maestra

Outstation →
Unidad Terminal Remota

Flujo de la información →
Protocolo DNP3:
Fragmentos, segmentos y tramas:

Fragmentos
(Fragments)

Segmentos
(Segments)
máx. 250 bytes

Tramas
(Frames)
máx 292 bytes
Protocolo DNP3:
Organización de la documentación:

La especificación completa de DNP3 está organizada en 8 volúmenes como


a continuación se indica:

- Volumen 1: DNP3 Introducción.


- Volumen 2: Capa de Aplicación.
- Volumen 3: Función de Transporte.
- Volumen 4: Capa de Enlace.
- Volumen 6: Temas sin considerar las capas.
- Volumen 7: Redes IP.
- Volumen 8: Interoperabilidad.
Protocolo DNP3:
Nivel de Enlace

Nivel de Enlace

- Su misión →
- Asegurar que los mensajes sean recibidos sin errores.
- Identificar cada estación con una dirección única.
- Soporta comunicación orientada o no a conexión.
Protocolo DNP3:
Nivel de Enlace

Nivel de Enlace

- Servicios →
- Encapsular los segmentos de la función de Transporte para ser
enviados por un medio de comunicación.
- Extraer la información de Transporte de las tramas recibidas para
entregarla a la función de Transporte.
- Detección de errores, utilizando CRC por cada 16 bytes de datos
(además de un CRC en el header propio de la capa de enlace).
- Implementa direcciones origen y destino.
- Opcionalmente
- Confirmación de cada mensaje
- Detección de solicitudes repetidas o perdidas
Protocolo DNP3:
Nivel de Enlace

Modelo de transacción

- Estación primaria inicia con un mensaje de solicitud a una estación


secundaria.
- Opcionalmente la estación secundaria contesta.

Nota: La estación primaria puede ser la Maestra o Remota y viceversa.


Protocolo DNP3:
Nivel de enlace – Formato de trama

05 64 Long Ctrl Dest Src Crc


8 bits 8 bits 8 bits 8 bits 16 bits 16 bits 16 bits

Dir PRM FCB FCV Function Code


--- ---
DFC
7 6 5 4 3-0

1st block User Data Crc 2nd block User Data Crc Nth block User Data Crc
16 bytes 16 bits 16 bytes 16 bits 1 to 16 bytes 16 bits
Protocolo DNP3:
Nivel de enlace – Formato de trama

Inicio de la trama; ¡Su valor es Fijo! 0x05-0x64

05 64 Long Ctrl Dest Src Crc


8 bits 8 bits 8 bits 8 bits 16 bits 16 bits 16 bits

Long → Especifica el número de bytes que contiene el mensaje.


No incluye los bytes de CRC ni los dos bytes de inicio (0x05 y 0x64)

Si 28 = 256 y en la cabecera de enlace hay 6 bytes


entonces una Trama máximo puede contener 250 bytes correspondientes a
los segmentos de la función de transmisión.
(16 bloques de datos, siendo el último de 10 bytes + CRC)

Máximo número de bytes de una trama de la capa de enlace: 292 bytes


Protocolo DNP3:
Nivel de enlace – Formato de trama

05 64 Long Ctrl Dest Src Crc


8 bits 8 bits 8 bits 8 bits 16 bits 16 bits 16 bits

Dir PRM FCB FCV Function Code


--- ---
DFC
7 6 5 4 3-0

DIR Indica la dirección de la PRM Indica quién origina la


trama respecto a la estación conversación
Maestra. =1 Primaria → Secundaria
=1 Master → OutStation =0 Secundaria → Primaria
=0 OutStation → Master
Protocolo DNP3:
Nivel de enlace – Formato de trama
Header:
05 64 Long Ctrl Dest Src Crc
8 bits 8 bits 8 bits 8 bits 16 bits 16 bits 16 bits

Dir PRM FCB FCV Function Code


--- ---

7 6 5
DFC
4 3-0
Frame Count Bit: Se utiliza para evitar
FCB la perdida o duplicidad de tramas
---
Primary station toggles FCB cuando rx
5 un ACK from the secondary
Para iniciar se debe enviar un Reset
PRM=1
Primaria Data Link.
6
FCV
-- FCV: Indica si el bit FCB es valido.
=1 FCB es válido.
4 =0 FCB es ignorado.
Secundaria
Protocolo DNP3:
Nivel de enlace – Formato de trama
Header:
05 64 Long Ctrl Dest Src Crc
8 bits 8 bits 8 bits 8 bits 16 bits 16 bits 16 bits

Dir PRM FCB FCV Function Code


--- ---
DFC
7 6 5 4 3-0

PRM=0 DFC: Data Flow Control Bit


Secundaria --
=1 Ya no me envíes datos
DFC
6 =0 Puedes seguir enviando
4

Primaria
Protocolo DNP3:
Nivel de enlace – Formato de trama
Header:
05 64 Long Ctrl Dest Src Crc
8 bits 8 bits 8 bits 8 bits 16 bits 16 bits 16 bits

Dir PRM FCB FCV Function Code


--- ---
DFC
7 6 5 4 3-0

Function Code (FC):


Identifica la función o servicio asociado con la
trama al nivel de enlace.
Function Code
Su valor varia de 0 a 15.
Bits: 3-0
Su significado depende si la trama es originada
por la estación primaria (PRM=1) o por la
estación secundaria (PRM=0).
Protocolo DNP3:
Nivel de enlace – Formato de trama
Código de función: PRM=1 Primary --> Secondary
FC FC Name Service Function FCV bit Response FC permitted from secondary
0 RESET_LINK_STATES Reset of remote link 0 0 or 1
1 --- Obsolete --- 15 or no response
0 or 1 (no response is acceptable if the link states are
2 TEST_LINK_STATES Test function for link 1 Unreset)
CONFIRMED_USER_D Deliver application data, confirmation
3 ATA requested 1 0 or 1
UNCONFIRMED_USER Deliver application data, confirmation not
4 _DATA requested 0 No response
5 --- Reserved --- 15 or no response
6 --- Reserved --- 15 or no response
7 --- Reserved --- 15 or no response
8 --- Reserved --- 15 or no response
REQUEST_LINK_STAT
9 US Request status of link 0 11
10 --- Reserved --- 15 or no response
11 --- Reserved --- 15 or no response
12 --- Reserved --- 15 or no response
13 --- Reserved --- 15 or no response
14 --- Reserved --- 15 or no response
15 --- Reserved --- 15 or no response

Function Code (FC):


Mensajes Primaria → Secundaria con FC= 0,2,3,4 y 9 deben ser procesados por la estación secundaria. No es aceptable que
la estación secundaria responda a estos mensajes con FC=15.

Mensajes Broadcast :
La primaria debe transmitirlos con FC=4 (UNCONFIRMED_USER_DATA).
No deben ser contestados por la secundaria, sin importar el FC.
Protocolo DNP3:
Nivel de enlace – Formato de trama

Código de función: Secundaria → Primaria

PRM=0 Secondary --> Primary


FC FC Name Service Function
0 ACK Positive acknowledgement
1 NACK Negative acknowledgment
2 --- Reserved
3 --- Reserved
4 --- Reserved
5 --- Reserved
6 --- Reserved
7 --- Reserved
8 --- Reserved
9 --- Reserved
10 --- Reserved
11 LINK_STATUS Status of the link
12 --- Reserved
13 --- Reserved
14 --- Obsolete
15 NOT_SUPPORTED Link service not supported
Protocolo DNP3:
Nivel de enlace – Formato de trama
Códigos de función: Primaria Secundaria cuando PRM=1

FC = 0 RESET_LINK_STATES: FC = 3 CONFIRMED_USER_DATA:
Permite sincronizar la comunicación con la estación secundaria. Se utiliza para que la estación PRIMARIA envíe datos y
Se requiere para procesar tramas PRIMARIA→SECUNDARIA con recibir confirmación de la recepción de los mismos de la
FCV=1. estación SECUNDARIA.
Solo para utilizar posteriormente tramas Se requiere que el enlace esté sincronizado previo envío del
CONFIRMED_USER_DATA (FC=3) RESET_LINK_STATES.
La estación PRIMARIA debe enviar FC=0 al reiniciarse o después Cuando FC=3 es recibido en la SECUNDARIA, esta compara
de una falla en las comunicaciones. el FCB recibido (FCBrx) con el valor que esta esperando
Si la estación secundaria no recibe FC=0 (RESET_LINK_STATES) recibir (FCBesp).
no puede procesar tramas con FC=3 (CONFIRMED_USER_DATA) Si FCBrx=FCBesp, la SECUNDARIA responde con
Después de su envío y confirmación, la estación PRIMARIA pone un ACK y pasa los datos a las capas superiores.
FCB=1 para la siguiente trama con FCV=1. Toggle el FCBesp.
RESET_LINK_STATES funciona en un solo sentido, si la estación Si FCBrx!=FCBesp, la SECUNDARIA responde con
SECUNDARIA en otra transacción se comporta como PRIMARIA, ACK y no pasa los datos a las capas superiores. ¡No
debe sincronizar la comunicación enviando FC=0. toggle el FCBesp!
¡No se recomienda usar CONFIRMED_USER_DATA con
TCP o UDP sobre una red IP.
TEST_LINK_STATES:
FC = 2 Se utiliza para probar los bit de estado de la estación secundaria.
FC = 4 UNCONFIRMED_USER_DATA:
Se utiliza para enviar información sin necesidad de
Cuando FC=2 es recibido por la SECUNDARIA, esta compara el
confirmación.
FCB recibido (FCBrx) con el valor que esta esperando recibir
La estación SECUNDARIA pasa los datos recibidos a las
(FCBesp).
capas superiores.
Si FCBrx=FCBesp, la SECUNDARIA envÍa un ACK y toggle
el FCBesp.
Si FCBrx!=FCBesp, la SECUNDARIA envía el último ACK FC = 9 REQUEST_LINK_STATUS:
o NACK enviado a la PRIMARIA. Ojo, como la secundaria Se utiliza para saber el estado del nivel de enlace de la
no cambia el valor del FCBesp, al final todo queda estación secundaria (¿Estas ahí?). La estación secundaria
sincronizado. responde con un LINK_STATUS
Si la SECUNDARIA no ha recibido un Se recomienda su uso en redes IP.
RESET_LINK_STATES, puede no responder o bien
responder un NACK con DFC=0.
Protocolo DNP3:
Nivel de enlace – Formato de trama

Códigos de función: Secundaria Primaria cuando PRM=0

En este tipo de tramas nunca incluyen data blocks.

FC = 0 ACK:
Es la confirmación de la rx de una trama del tipo:
RESET_LINK_STATES, TEST_LINK_STATES y
CONFIRMED_USER_DATA.

FC = 1 NACK:
Indica que alguna solicitud (REQUEST) de la estación PRIMARIA
no fue aceptada por las siguientes razones:
The secondary’s link state is not reset, cuando se recibe una
trama: TEST_LINK_STATES or CONFIRMED_USER_DATA
con el bit FCV=1.
The secondary’s link is busy
Los buffers de rx de la SECUNDARIA están full.
NACK se utiliza para responder solo tramas:
RESET_LINK_STATES, TEST_LINK_STATES y
CONFIRMED_USER DATA.

FC = 11 LINK_STATUS
Es la respuesta de la SECUNDARIA a un
REQUEST_LINK_STATUS (Si, aquí estoy).

FC = 15 NOT_SUPPORTED
Se utiliza para indicar que la solicitud de la PRIMARIA no está
soportada o implementada en la SECUNDARIA.
Protocolo DNP3:
Nivel de enlace – Formato de trama

05 64 Long Ctrl Dest Src Crc


8 bits 8 bits 8 bits 8 bits 16 bits 16 bits 16 bits

Low Order Octet High Order Octet


(LSB) 8 bits (MSB) 8 bits

DESTINATION:
Dirección de la estación a quién está dirigida la trama.
Protocolo DNP3:
Nivel de enlace – Formato de trama

05 64 Long Ctrl Dest Src Crc


8 bits 8 bits 8 bits 8 bits 16 bits 16 bits 16 bits

Low Order Octet High Order Octet


(LSB) 8 bits (MSB) 8 bits

source:
Dirección de la estación que originó la trama.
Protocolo DNP3:
Nivel de enlace – Formato de trama
Notas sobre el direccionamiento.
Address Use
• Definidas como direcciones ‘broadcast’ u ‘all-call’
All-call, Application Layer • Todas las estaciones deben aceptar las tramas que
0xFFFF
Confirmation to clear IIN 1.0 is BroadCast contengan estas direcciones destino
(65,535) • El tratamiento está definido en el nivel de
optional
aplicación.
All-call, Application Layer • Al transmitir tramas con estas direcciones, no se
0xFFFE
Confirmation to clear IIN 1.0 is deben utilizar con: CONFIRMED_USER_DATA
(65,534) • Se debe pasar la información al nivel de Aplicación
mandatory
All-call, Application Layer Su propósito es descubrir la dirección de un
0xFFFD
Confirmation must not be required dispositivo.
(65,533)
to clear IIN 1.0
Esta dirección se utiliza en el “Destination-Address”
0xFFFC Si un dispositivo esta en modo: “Self-Address enabled”
Self-address Self-
(65,532) Address
debe contestar estas tramas como si tuvieran su
propia dirección destino.
0xFFF0 Al contestar el dispositivo pondrá su propia dirección
(65,520) en Source-Address. ¡De esta forma descubrimos cual
to Reserved es su dirección!
0xFFFB Ojo: Solo debemos habilitar “Self-Address” en un
(65,531) dispositivo a la vez, para evitar múltiples respuestas.
0x0000
Rango: 0xFFF0  → 0xFFFB
to Unique address Used by Master Simplemente no debe ser utilizado este rango.
0xFFEF and Outstation on a single link. Reserved
Tramas con esta direcciones deben ser ignoradas.
(65,519) Están para lo que disponga el grupo DNP en un futuro.
Protocolo DNP3:
Nivel de enlace – Formato de trama

05 64 Long Ctrl Dest Src Crc


8 bits 8 bits 8 bits 8 bits 16 bits 16 bits 16 bits

Cyclic Redundancy Check.


Dos octetos que nos permiten saber si un Header o Bloque de Datos es
válido.
Protocolo DNP3:
Nivel de enlace – Formato de trama

1st block User Data Crc 2nd block User Data Crc Nth block User Data Crc
16 bytes 16 bits 16 bytes 16 bits 1 to 16 bytes 16 bits

User Data:
Información para las capas superiores del nivel de enlace,
específicamente para la función de transporte.
Protocolo DNP3:
Nivel de enlace – Formato de trama

Causas de rechazo de tramas recibidas.

Clave Descripción

bInicio No se recibió la secuencia de inicio 0x05 seguida de 0x64.

noDest La dirección destino no pertenece a ningún dispositivo dado de alta.

noFuente La dirección fuente no coincide con la programada a responder el


dispositivo.
errorCRC Hay una diferencia entre el CRC recibido y el CRC calculado.

errorLong La longitud de la trama no coincide con la indicada en el campo


longitud.
noFC El código de función no es correcto con lo indicado en la norma.

noFCV El bit FCV no esta activado cuando así lo requiere el código de


funcipon utilizado.
Protocolo DNP3:
Nivel de enlace – Ejemplos

Reset-Link
Protocolo DNP3:
Nivel de enlace – Ejemplos

Test Link State – (Debe estar establecida la conexión)


Protocolo DNP3:
Nivel de enlace – Ejemplos

UNCONFIRMED_USER_DATA (250 bytes máximo → 0x00 a 0xF9)


Protocolo DNP3:
Nivel de enlace – Ejemplos

CONFIRMED_USER_DATA (250 bytes máximo → 0x00 a 0xF9)


Protocolo DNP3:
Función de Transporte → capa de pseudo-transporte

Función de transporte.
(pseudo-transporte)
- Su misión →
- Si el tamaño de un fragmento (mensaje de la capa de aplicación)
excede la capacidad de una trama de nivel de enlace, esta capa se
encarga de dividirlo en Segmentos de Transporte para su
transmisión y reensamblarlo en la recepción.
Protocolo DNP3:
Función de Transporte → Formato del segmento

Funciones:
1.- Transmisión , partir un fragmento de la capa de aplicación en segmentos de
tamaño máximo de 249 bytes y agregar cabecera hacia la capa de enlace.
Construyéndose segmentos con 250 bytes como máximo.
2.- Recepción, ensamblar segmentos para generar un fragmento hacia la capa de
aplicación.

Header Datos de capa de aplicación


Segmento
← 1 byte → ← de 1 a 249 bytes →
Protocolo DNP3:
Función de Transporte → Formato del segmento

Header Datos de capa de aplicación

← 1 byte → ← de 1 a 249 bytes →

07 06 05 04 03 02 01 00
FIN FIR SEQUENCE

Campo FIN: Indica que es el último segmento del fragmento de la capa de


aplicación.
FIN= 0, Indica que vienen mas segmentos.
FIN =1, Indica que es el último segmento de transporte de una serie de segmentos.

Campo FIR: Indica el inicio de una serie de segmentos.


FIR=0, Indica que no es el primer segmento de una serie de segmentos.
FIR=1, Indica que es el primer segmento de una serie de segmentos.
Protocolo DNP3:
Función de Transporte → Formato del segmento

Header Datos de capa de aplicación

← 1 byte → ← de 1 a 249 bytes →

07 06 05 04 03 02 01 00
FIN FIR SEQUENCE

Campo SEQUENCE: Se utiliza para verificar el orden de los segmentos recibidos,


para detectar segmentos duplicados o perdida de segmentos.
- Rango de 0 a 63.
- Se incrementa de uno en uno.
- Después del valor 63, el siguiente segmento su secuencia es 0.
Protocolo DNP3:
Función de Transporte → Formato del segmento

Header Datos de capa de aplicación

← 1 byte → ← de 1 a 249 bytes →

07 06 05 04 03 02 01 00
FIN FIR SEQUENCE

FIN=1, FIR=1, SEC=0 : Se recibe solamente un segmento para la capa de


aplicación.
FIN=0, FIR=1, SEC=0 : Es el primer segmento de una serie de segmentos y se
registra la secuencia para su próxima verificación.
FIN=0, FIR=0, SEC=1 : Es el segundo segmento de una serie de segmentos y se
verifica secuencia consecutiva (segmento intermedio).
FIN=0, FIR=0, SEC=X : Es el segundo o n-1 segmento de una serie de segmentos
y se verifica secuencia consecutiva (segmento intermedio).
FIN=1, FIR=0, SEC=X : Es el último segmento de una serie de segmentos y se
verifica secuencia consecutiva.
Protocolo DNP3:
Función de Transporte
Protocolo DNP3:
Nivel de Aplicación

La capa de aplicación

Es la capa superior del modelo OSI y es la interface con el software del


usuario.
Tamaño máximo de transmisión es de 2048 bytes y mínimo 2 bytes.
Protocolo DNP3: (1)
Outstation
Nivel de Aplicación; Definiciones Índices
8
7 (4)
Punto: (Point) Es una entidad única e 6 6
identificable de manera física o lógica. El (5)
5 (2) 5
termino punto aplica para entradas de tipo
analógico, digital y contadores, así como 4 4 (3) 4 4

también salidas digitales y analógicas. 3 3 3 3 3

2 2 2 2 2
Tipo de punto: Puntos con características y 1 1 1 1 1
funcionalidades similares, también pueden estar 0 0
0 0 0
relacionados al mismo hardware.

DNP3 User’s Software

DNP3
Application Layer

Transport Function

DNP3
Data Link Layer
Protocolo DNP3: (1)
Outstation
Nivel de Aplicación; Definiciones Índices
8
7 (4)
Los puntos se agrupan en arreglos del mismo 6 6
tipo y se identifican por un índice, como se (5)
5 (2) 5
indica:
Ejemplos de arreglos de tipos de puntos: 4 4 (3) 4 4

1) Binary Input Point 3 3 3 3 3


2) Analog Input Point 2 2 2 2 2
3) Counter Input Point 1 1 1 1 1
4) Binary Output Point 0 0
0 0 0
5) Analog Output Point

Nota: DNP3 también puede transmitir archivos y


otras formas de datos.
DNP3 User’s Software

El número de índice (base-cero) y el grupo DNP3


identifican un punto único, la variación Application Layer
describe el formato.
Transport Function

DNP3
Data Link Layer
Protocolo DNP3:
Nivel de Aplicación; Definiciones

Grupo:
Es una forma de clasificar los tipos de datos en un mensaje
Un grupo solo contiene puntos del mismo tipo.
Ej. Grupo 30 – Valores actuales de entradas analógicas.

Variaciones:
Es la forma en que se codifican los datos dentro de un grupo.

Ej. 1 – Valor entero de 32 bits con bandera.


2 – Valor entero de 16 bits con bandera.
3 – Valor entero de 32 bits sin bandera.
4 – Valor entero de 16 bits sin bandera.
5 – Valor de punto flotante de 32 bits con bandera.
6 – Valor de punto flotante de 64 bits con bandera.
Protocolo DNP3:
Nivel de Aplicación; Definiciones

Nota: Bandera, dato complementario que indica el estado del punto, ej. En línea,
fuera de línea.

Las variaciones también incluyen valores de atributos, número de octetos,


etc.

Objeto DNP: Codificación en un mensaje, de un punto de acuerdo a su grupo y


variación
Un mensaje contiene 1 o mas objetos.

Instancia: Instancia de un objeto o instancia.


Se refiere a un objeto que representa un punto en específico.

Ejemplo: Un mensaje que contiene el valor de 6 puntos analógicos expresados en


enteros de 32 bits.
- El grupo es 30 y la variación es 3
- Hay 6 instancias del objeto 30, variación 3
Protocolo DNP3:
Nivel de Aplicación; Definiciones

Static: El termino static se refiere al valor actual de un punto (valor estático).

Static data: Valor ‘static’ de un conjunto de puntos (datos estáticos).

Events: (evento) Es un suceso que puede estar asociado a un punto o que hay
información disponible sobre algo ocurrido.

La información asociada a un evento puede contener:


• Tipo de evento (entrada binaria, entrada analógica, etc.).
• Valor (on, off, 342, etc. )
• Índice del punto.
• Estampa de tiempo cuando ocurrió el evento.
• Clase asignada (1,2,3), etc.

La información de eventos almacenada en una estación remota (outstation), solo


puede ser eliminada si esta ha sido transmitida a la maestra y esta ha confirmado la
recepción.
Protocolo DNP3:
Nivel de Aplicación; Definiciones

Classes: (clases) : Se utilizan para organizar eventos y valores actuales en varias


categorías.

• Clase 0: Se utiliza para valores medidos. (static data)


• Puede ser un subconjunto de total de puntos de la estación remota.
• Clase 1,2 y 3: Se utiliza para solicitar Eventos.
• DNP3 no especifica como o que eventos asignar a cada clase
• Una estrategia es asignar eventos de alta prioridad en la clase 1 y de baja
prioridad clase 3.
• Otra estrategia es asignar eventos de un tipo por clase, ej. eventos binarios
en clase 1, eventos analógicos clase 2.
• No se almacenan ni reportan los eventos:
• De puntos que no están asociados a alguna clase de eventos
• (clases 1, 2 o 3)
• De puntos solo asociados a la clase 0.
• De estos puntos solo se reportan los valores estáticos
Protocolo DNP3:
Nivel de Aplicación; Definiciones

¿Cuándo se deben reportar datos estáticos y eventos?


Protocolo DNP3:
Nivel de Aplicación; Fragmento

Las Maestras (masters) construyen y envían mensajes (request) a las remotas


(outstation):
- Solicitando datos
UTM
- Para que ejecuten un control (command)
- Realicen algún actividad.

UTR Request

Response (data)

Unsolicited Response
Cuando las remotas reciben el mensaje, ejecutan lo solicitado, generan el
mensaje de respuesta (response) con la información correspondiente (datos
solicitados, resultados o información especial) y lo transmiten a la maestra.

En algunos sistemas la remota puede transmitir un mensaje no solicitado


espontáneamente a la maestra, en el entendido que la solicitud es implícita.
Protocolo DNP3:
Nivel de Aplicación; Fragmento

Estructura del fragmento


Request Fragment Response Fragment
Application First Last Application First Last
DNP DNP DNP DNP
Request Object … Object Response Object … Object
Objects Objects Objects Objects
Header Header Header Header Header Header

←2 bytes→ ←4 bytes→

Application Control Function Code Internal Indications


Application Control Function Code (1 byte) (1 byte) (2 bytes)
(1 byte) (1 byte)

IIN1.X (primer octeto) IIN2.X (segundo octeto)


76543210 76543210
FIR FIN CON UNS SEQ

7 6 5 4 3–2–1–0

Object Header DNP Objects

Object Type Field Rango


Calificador
Grupo Variación (Depende del
(1 byte)
(1 byte) (1 byte) Calificador)

Reservado Object Prefix Code Range Specifier Code


7 6 5 4 3 2 1 0
Protocolo DNP3:
Nivel de Aplicación; Application Control

Application
Request
Campo FIR (1 bit)
Header FIR = 0, No es el primer fragmento.
←2 bytes→
FIR = 1, Primer fragmento.

Campo FIN (1 bit)


Application Control Function Code FIN = 0, No es el ultimo fragmento.
(1 byte) (1 byte)
FIN = 1, Último fragmento.

Campo SEQ (4 bits), Contador (0-15) para verificar la


FIR FIN CON UNS SEQ recepción ordenada de los fragmentos.
7 6 5 4 3–2–1–0
Existen dos contadores:
- (De la UCM) Para fragmentos solicitados, respuestas y
confirmaciones
- (De la Remota) Para respuestas no solicitadas
Protocolo DNP3:
Nivel de Aplicación; Application Control

Application
Request
Campo CON (1 bit), Confirmación, El receptor debe
Header confirmar la recepción del mensaje para verificar la recepción
←2 bytes→ del fragmento

CON = 0, No se requiere confirmación.


Application Control Function Code CON = 1, Se solicita confirmación.
(1 byte) (1 byte)

Solo lo utiliza la estación remota


•Cuando el mensaje contiene eventos, para confirmar la
FIR FIN CON UNS SEQ recepción y poder eliminar del buffer los eventos enviados.
7 6 5 4 3–2–1–0 • Cuando el mensaje de respuesta es multi-fragmentos para
una transmisión segura. El último fragmento es con el bit CON
= 0.
• Mensajes de respuesta no solicitada.
Nota: El Maestro nunca pedirá confirmación en los mensajes
de solicitud. Práctica obsoleta.

Campo UNS (1 bit), Unsolicited: Respuesta no solicitada o


confirmación de respuesta no solicitada.
UNS = 0, SEQ está asociado a una solicitud de la maestra
UNS = 1, SEQ está asociado a un mensaje no solicitado
Protocolo DNP3: Código
0(0x00)
Nombre
CONFIRM
Código
20(0x14)
Nombre
ENABLE_UNSOLICITED
Nivel de Aplicación;
1(0x01) READ 21(0x15) DISABLE_UNSOLICITED
2(0x02) WRITE 20(0x14) ENABLE_UNSOLICITED
3(0x03) SELECT 21(0x15) DISABLE_UNSOLICITED
Function Code 4(0x04) OPERATE 22(0x16) ASSIGN_CLASS
5(0x05) DIRECT_OPERATE 23(0X17) DELAY_MEASURE

Function Code 6(0x06) DIRECT_OPERATE_NR 24(0x18) RECORD_CURRENT_TIME


(1 byte) 7(0x07) IMMED_FREEZE 25(0x19) OPEN_FILE
7–6–5–4–3–2–1–0
8(0x08) IMMED_FREEZE_NR 26(0x1A) CLOSE_FILE
9(0x09) FREEZE_CLEAR 27(0x1B) DELETE_FILE
Identifica el propósito del 10(0X0A) FREEZE_CLEAR_NR 28(0x1C) GET_FILE_INFO
mensaje. 11(0X0B) FREEZE_AT_TIME 29(0x1D) AUTHENTICATE_FILE
12(0X0C) FREEZE_AT_TIME_NR 30(0x1E) ABORT_FILE
•Mensajes de solicitud (UCM)
13(0x0D) COLD_RESTART 31(0x1F) ACTIVATE_CONFIG
(rango de 1 a 128).
14(0x0E) WARM_RESTART 32(0x20) AUTHENTICATE_REQ
•Mensajes de respuesta (UTR)
(rango de 129 a 255). 15(0x0F) INITIALIZE_DATA 33(0x21) AUTHENTICATE_ERR
•El código CONFIRM (0x00) es 16(0x10) INITIALIZE_APPL 32(0x20) Reserved
a
utilizado para confirmación de 17(0x11) START_APPL
128 (0x80)
mensajes a nivel de aplicación 18(0x12) STOP_APPL
129(0x81) RESPONSE
(puede ser utilizado por la UTR 19(0x13) SAVE_CONFIG
130(0x82) UNSOLICITED_RESPONSE
si así se le solicita).
131(0x83) AUTHENTICATE_RESP
Protocolo DNP3:
Nivel de Aplicación; Indicaciones Internas

Response Fragment
Indicaciones Internas Application First Last
DNP DNP
(Solo aplica en las respuestas) Response Object … Object
Objects Objects
Header Header Header
←4 bytes→

Application Control Function Code Internal Indications


(1 byte) (1 byte) (2 bytes)

IIN1.X (primer octeto) IIN2.X (segundo octeto)


76543210 76543210

•El campo Indicaciones Internas (2 bytes) aparece en los mensajes de


respuesta.
•Indica estados y condiciones de error de la estación remota.

Referencia para indicar un bit de las indicaciones internas: IINx.b


Donde: IIN – Indicaciones internas.
X – Numero de octeto.
b - Numero de bit.
Ejemplo: IIN1.0 – Indicación interna del primer octeto del bit 0.
IIN2.6 – Indicación interna del segundo octeto del bit 6.
Protocolo DNP3:
Nivel de Aplicación; Indicaciones Internas

Bit Nombre Descripción Bit Nombre Descripción


IIN2.0 NO_FUNC_ La E.R. activa el bit cuando no
IIN1.0 ALL Maestra envía mensaje a todas las
CODE_ soporta un código de función
_STATIONS estaciones remotas con direcciones
SUPPORT solicitado por la maestra.
0xFFFF, 0xFFFE, 0xFFFD. BroadCast.
IIN2.1 OBJECT Se activa cuando no se maneja
IIN1.1 CLASS_1 Indica que existen eventos en la clase
_UNKNOWN dicho objeto de ese nivel de
_EVENTS 1. Para que la maestra los solicite.
DNP.
IIN1.2 CLASS_2 Indica que existen eventos en la clase
IIN2.2 PARAMETER Se activa cuando se solicitan
_EVENTS 2. Para que la maestra los solicite.
_ERROR puntos fuera de rango, incluso
IIN1.3 CLASS_3 Indica que existen eventos en la clase cuando existen puntos
_EVENTS 3. Para que la maestra los solicite. disponibles. O no se puede
analizar el fragmento
IIN1.4 NEED_TIME La E.R. requiere sincronización de
estampa de tiempo de la maestra. IIN2.3 EVENT Se activa cuando no existe mas
_BUFFER espacio en buffer de los eventos
IIN1.5 LOCAL La E.R. indica falla de ejecución de
_OVERFLOW y se estén perdiendo.
_CONTROL comando solicitado con este bit ya que
esta en modo local. IIN2.4 ALREADY Existe un comando en ejecución
_EXECUTING
IIN1.6 DEVICE La E.R. indica que se encuentra en
_TROUBLE condiciones anormales. IIN2.5 CONFIG Si la solicitud de configuración
_CORRUPT no es válida.
IIN1.7 DEVICE La E.R. indica reinicio del sistema por
_RESTART cualquier razón. Para poner el bit en 0, IIN2.6 RESERVED_2
la maestra debe de enviar un mensaje
IIN2.7 RESERVED_1
g80v1 e índice 7.
Protocolo DNP3:
Nivel de Aplicación; Object Header

- Object Type Field:


- Grupo (Tipo de punto): Ejemplos:
- Entrada Analógica, Binaria, Contador, Hora, etc.
- Si la maestra pregunta por Grupo 60 (clases), la UTR responde con el
tipo(s) de objetos incluido en dicha clase.
- Variación: Especifica el formato DNP del objeto, ejemplos:
- Entero de 16 bits; Short floating point; etc.
- Variación 0: (responde con el tipo que quieras)
- Solo la utiliza la maestra
- No importa que variación utilice la remota en la respuesta
- La remota puede utilizar diferentes variaciones incluso por cada punto
- Notación de objetos gNNvMM First
DNP
Last
DNP
Object … Object
- NN → Grupo del objeto Header
Objects
Header
Objects
- MM → Variación

Object Header DNP Objects

Object Type Field Rango


Calificador
Grupo Variación (Depende del
(1 byte)
(1 byte) (1 byte) Calificador)

Reservado Object Prefix Code Range Specifier Code


7 6 5 4 3 2 1 0
Protocolo DNP3:
Nivel de Aplicación; Calificador y Rango

Object Header DNP Objects


Prefijo y Object Type Field Rango
Calificador
Especificador de Rango Grupo Variación (1 byte)
(Depende del
(1 byte) (1 byte) Calificador)

Reservado Object Prefix Code Range Specifier Code


7 6 5 4 3 2 1 0
- Object Prefix Code (bits 4, 5 y 6)
- Indica el prefijo que aparece antes de cada objeto (si aplica)
- Puede ser Índice o Tamaño del objeto
- El código 0 aplica cuando se solicitan puntos contiguos, entonces el prefijo por cada objeto no es necesario.

Range Specifier Code: Indica si el campo Rango se utiliza o no, si se utiliza indica que contiene y de que tamaño es.
- Códigos 0 al 2
- Los objetos DNP están ordenados por su índice.
- Si start y stop son iguales, se refiere a un objeto
- Códigos 3 al 5
- Especifica espacios de memoria continuos de un proveedor especifico.
- Código 6
- Solicita todos los puntos del grupo especificado
- No hay Rango
- Código 7 al 9
- Especifica un máximo de objetos, es decir, la remota puede enviar menos objetos, pero no mas de los solicitados
- La remota debe enviar al menos un objeto del tipo especificado
- Código 0xB
- Los datos tiene un formato de longitud variable
Object Header
Protocolo DNP3: Object Type Field Calificador
Rango
Nivel de Aplicación; Calificador y Rango Grupo Variación (1 byte)
(Depende del
Calificador)

Reservado Object Prefix Code Range Specifier Code


7 6 5 4 3 2 1 0

Hex Object Prefix Code Prefijo Hex Range Specifier Code Octetos
en Rango
0 Objects are packed without an index prefix --
0 Range field contains 1-octet start and stop indexes 2
1 Objects are prefixed with an index 1 – octet
1 Range field contains 2-octet start and stop indexes 4
2 Objects are prefixed with an index 2 – octet
2 Range field contains 4-octet start and stop indexes 8
3 Objects are prefixed with an index 4 – octet
3 Range field contains 1-octet start and stop virtual 2
4 Objects are prefixed with an object size 1 – octet
addresses
5 Objects are prefixed with an object size 2 – octet
4 Range field contains 2-octet start and stop virtual 4
6 Objects are prefixed with an object size 4 – octet addresses
7 Reserved for future use -- 5 Range field contains 4-octet start and stop virtual 8
addresses
Prefijos: 6 No range field is used. This implies all values 0
0 – Sin prefijo
7 Range field contains 1-octet count of objects 1
1,2,3 – Objetos con prefijo índice
4,5,6 – Objetos con prefijo de tamaño 8 Range field contains 2-octet count of objects 2
Especificador de Rango: 9 Range field contains 4-octet count of objects 4
0,1,2 – El rango indica índice inicial y final.
3,4,5 – El rango indica dirección virtual inicial y final A Reserved for future use --
6 – No hay rango, “Todo”. B Variable format qualifier, range field contains 1- 1
7,8,9 – Solo número de objetos octet count of objects
B – Variable, solo número de objetos
C-F Reserved for future use --
Object Header
Protocolo DNP3: Object Type Field Calificador
Rango
Nivel de Aplicación; Calificador y Rango Grupo Variación (1 byte)
(Depende del
Calificador)

Reservado Object Prefix Code Range Specifier Code


7 6 5 4 3 2 1 0

Combinaciones de
calificadores válidas:

Uso recomendado
de calificadores:
Object Header
Protocolo DNP3: Object Type Field Calificador
Rango
Nivel de Aplicación; Calificador y Rango Grupo Variación (1 byte)
(Depende del
Calificador)

Reservado Object Prefix Code Range Specifier Code


7 6 5 4 3 2 1 0

Calificadores mas comúnmente utilizados y ejemplos de uso:

Qualifier Example: Example: Use in an Outstation


Use in a Master Request Response
00,01 A single point or range of static points Static Objects
06 All points --
07,08 A limited quantity of events. A single quantity A single quantity having no index (e.g.
having no index (e.g., Time and Date). Time and Date)
17,28 For controls or other functions, such as reading, Event objects (usually one or more
that request multiple objects where the indexes unrelated points)
are non-sequential or not consecutive.
5B To transmit objects whose size may be unknown To transmit objects whose size may be
to the receiver (e.g. File Open) unknown to the receiver (e.g. File
data)
Object Header
Protocolo DNP3: Object Type Field Calificador
Rango
Nivel de Aplicación; Calificador y Rango Grupo Variación (1 byte)
(Depende del
Calificador)

Reservado Object Prefix Code Range Specifier Code


7 6 5 4 3 2 1 0

Prefijo 0: Sin prefijo // Range Specifier 0: Rango inicio-final (1+1 byte)

Calificador 0x00 → Utilizado en solicitudes o respuestas donde los objetos


solicitados o a reportar tienen índices continuos.

- Range Field: 1 byte índice inicial / 1 byte índice final


I I+2

Start Stop

- Data Objects: 3 objetos con índices I a I+2


Value Value Value
LSB --- MSB LSB --- MSB LSB --- MSB
Objeto (I) Objeto (I+1) Objeto (I+2)
Object Header
Protocolo DNP3: Object Type Field Calificador
Rango
Nivel de Aplicación; Calificador y Rango Grupo Variación (1 byte)
(Depende del
Calificador)

Reservado Object Prefix Code Range Specifier Code


7 6 5 4 3 2 1 0

Prefijo 0: Sin prefijo // Range Specifier 1: Rango inicio-final (2+2 bytes)

Calificador 0x01 → Utilizado en solicitudes o respuestas donde los objetos


solicitados o a reportar tienen índices continuos.

- Range Field: 2 bytes índice inicial / 2 bytes índice final


I I+3
LSB --- MSB LSB --- MSB
Start Stop

- Data Objects: 4 objetos con índices I a I+3

Value Value Value Value


LSB --- MSB LSB --- MSB LSB --- MSB LSB --- MSB
Objeto (I) Objeto (I+1) Objeto (I+2) Objeto (I+3)
Object Header
Protocolo DNP3: Object Type Field Calificador
Rango
Nivel de Aplicación; Calificador y Rango Grupo Variación (1 byte)
(Depende del
Calificador)

Reservado Object Prefix Code Range Specifier Code


7 6 5 4 3 2 1 0

Prefijo 0: Sin prefijo // Range Specifier 6: Todos los valores

Calificador 0x06 → Utilizado para solicitar todos los puntos definidos en un grupo y
variación.

- Range Field: No hay rango.

- Data Objects: No hay objetos


Object Header
Protocolo DNP3: Object Type Field Calificador
Rango
Nivel de Aplicación; Calificador y Rango Grupo Variación (1 byte)
(Depende del
Calificador)

Reservado Object Prefix Code Range Specifier Code


7 6 5 4 3 2 1 0

Prefijo 0: Sin prefijo // Range Specifier 7: Cuenta de objetos (1 byte)

Calificador 0x07 → Utilizado en solicitudes para limitar la cantidad de eventos a


reportar o en respuestas para un valor no asociado a un índice.

- Range Field: 1 byte que indica la cuenta de objetos


0x1

Count

- Data Objects: La respuesta contiene un solo objeto

Value
LSB --- MSB
Objeto
Object Header
Protocolo DNP3: Object Type Field Calificador
Rango
Nivel de Aplicación; Calificador y Rango Grupo Variación (1 byte)
(Depende del
Calificador)

Reservado Object Prefix Code Range Specifier Code


7 6 5 4 3 2 1 0

Prefijo 0: Sin prefijo // Range Specifier 8: Cuenta de objetos (2 bytes)

Calificador 0x08 → Utilizado en solicitudes para limitar la cantidad de eventos a


reportar o en respuestas para un valor no asociado a un índice.

- Range Field: 1 byte que indica la cuenta de objetos


0x0001
LSB --- MSB
Count

- Data Objects: La respuesta contiene un solo objeto

Value
LSB --- MSB
Objeto
Object Header
Protocolo DNP3: Object Type Field Calificador
Rango
Nivel de Aplicación; Calificador y Rango Grupo Variación (1 byte)
(Depende del
Calificador)

Reservado Object Prefix Code Range Specifier Code


7 6 5 4 3 2 1 0

Prefijo 1: prefijo de 1 byte índice // Range Specifier 7: Cuenta de objetos (1 byte)

Calificador 0x17 → Utilizado para enviar controles de uno o mas puntos no


adyacentes, en respuestas se utiliza para reportar eventos donde los índices no son
adyacentes.

- Range Field: 1 byte que indica la cuenta de objetos

0x03

Count

- Data Objects: Cada objeto viene precedido por un prefijo de 1 byte.

Value Value Value


m k j
LSB --- MSB LSB --- MSB LSB --- MSB
Índice Objeto (índice m) Índice Objeto (índice k) Índice Objeto (índice j)
Object Header
Protocolo DNP3: Object Type Field Calificador
Rango
Nivel de Aplicación; Calificador y Rango Grupo Variación (1 byte)
(Depende del
Calificador)

Reservado Object Prefix Code Range Specifier Code


7 6 5 4 3 2 1 0

Prefijo 2: prefijo de 2 bytes índice // Range Specifier 8: Cuenta de objetos (2 bytes)

Calificador 0x28 → Utilizado para enviar controles de uno o mas puntos no


adyacentes, en respuestas se utiliza para reportar eventos donde los índices no son
adyacentes.

- Range Field: 2 bytes que indican la cuenta de objetos


0x0003
LSB -- MSB
Count

- Data Objects: Cada objeto viene precedido por un prefijo de 2 bytes.

m Value k Value j Value


LSB-MSB LSB-MSB LSB-MSB
LSB --- MSB LSB --- MSB LSB --- MSB
Índice Objeto (índice m) Índice Objeto (índice k) Índice Objeto (índice j)
Object Header
Protocolo DNP3: Object Type Field Calificador
Rango
Nivel de Aplicación; Calificador y Rango Grupo Variación (1 byte)
(Depende del
Calificador)

Reservado Object Prefix Code Range Specifier Code


7 6 5 4 3 2 1 0

Prefijo 5: prefijo de tamaño 2 bytes // Range Specifier B: Cuenta de objetos (1 byte)

Calificador 0x5B → Utilizado para enviar datos de tamaño desconocido ara el


receptor (ejemplo - inicializar una app en la remota, abrir archivos, etc)

- Range Field: 1 byte que indica la cuenta de objetos

0x02

Count

- Data Objects: Cada objeto viene precedido por un prefijo de 2 bytes que indica su tamaño

m Value k Value
LSB-MSB LSB-MSB
LSB --- --- --- --- --- --- --- --- --- --- MSB LSB --- --- --- --- --- --- --- --- --- --- MSB
size Primer objeto (m bytes) size Segundo objeto (k bytes)
Protocolo DNP3:
Nivel de Aplicación; Reglas de Fragmentos (resumen)

Application
Regla 1: El fragmento mas pequeño es de 2 bytes Request
(confirmación) Header

←2 bytes→

Regla 2: Las remotas deben poder recibir fragmentos


Application Control Function Code
de al menos 249 bytes. (1 byte) (1 byte)
Las maestras deben poder recibir fragmentos de al
FIR FIN CON UNS SEQ
menos 2048 bytes. 7 6 5 4 3–2–1–0

Regla 3: Las maestras solo pueden enviar solicitudes


de máximo 1 fragmento. (FIR y FIN =1)

Regla 4: Las maestras deben poder recibir respuestas


de varios fragmentos.

Regla 5: Las remotas deben poder enviar en una sola


respuesta todos los datos estáticos configurados, esta
puede ser integrada por varios fragmentos.
Protocolo DNP3:
Nivel de Aplicación; Reglas de Fragmentos (resumen)

Regla 6: Cada fragmento debe ser completo, es decir, Application


Request
no se pueden dividir en porciones de objetos. Header

←2 bytes→
Regla 7: FIR=1 en el primer fragmento.
Application Control Function Code
(1 byte) (1 byte)
Regla 8: FIN=1 para el último fragmento.
FIR FIN CON UNS SEQ
7 6 5 4 3–2–1–0
Regla 6: FIN=FIR=1 para mensajes de un solo
fragmento.

Regla 10: Las maestras no deben solicitar confirmación


en el nivel de aplicación (práctica obsoleta)

Regla 11: Las remotas que se les solicite confirmación


deben confirmar por razones de compatibilidad.

Regla 12: Cuando a una Maestra se le solicite


confirmación, debe responder inmediatamente antes de
enviar algún otro mensaje
Protocolo DNP3:
Nivel de Aplicación; Reglas de Fragmentos (resumen)

Regla 13: Cada que la maestra envíe un nuevo Application


Request
fragmento y que no sea un reintento, la maestra debe Header

incrementar el contador SEQ. ←2 bytes→

Regla 14: El primer fragmento de una respuesta Application Control


(1 byte)
Function Code
(1 byte)
solicitada debe tener el mismo número de secuencia que
el fragmento de solicitud, los fragmentos de respuesta FIR FIN CON UNS SEQ
7 6 5 4 3–2–1–0
siguiente (si los hubiera), deberán incrementar este
contador en 1 respecto al previo.

Regla 15: Los reintentos transmitidos por la maestra


deben tener el mismo número de secuencia.

Regla 16: Los reintentos están prohibidos están prohibidos en los siguientes FC’s
- DIRECT_OPERATE o DIRECT_OPERATE_NR
- DELAY_MEASURE or RECORD_CURRENT_TIME
- WRITE with an Absolute Time Object (g50v1), o con el último Objeto de Tiempo
grabado (g50v3)
Protocolo DNP3:
Nivel de Aplicación; Reglas de Fragmentos (resumen)

Regla 17: Las remotas no deben reintentar enviar Application


Request
respuestas solicitadas. Header

←2 bytes→
Regla 18: Las remotas pueden reintentar enviar mensajes
no solicitados. Application Control
(1 byte)
Function Code
(1 byte)

Regla 19: Un fragmento con código de función CONFIRM, FIR FIN CON UNS SEQ
7 6 5 4 3–2–1–0
debe utilizar el mismo número de SEQ y bit UNS del
fragmento de solicitud.

Regla 20: Las remotas deben ignorar el número SEQ en


mensajes de solicitud ‘broadcast’.

Regla 21: El número de SEQ enviado por la maestra no


tiene relación con el número de SEQ de respuestas no
solicitadas enviadas por la remota.

Regla 22: Una remota puede escoger cualquier número


SEQ para su primer mensaje no solicitado.
Protocolo DNP3:
Nivel de Aplicación; Reglas de Fragmentos (resumen)

Regla 23: Una remota que acaba de reiniciar, debe Application


Request
ignorar el valor SEQ del primer mensaje que reciba, Header

posteriormente debe revisar este contador. ←2 bytes→

Regla 24: Una remota debe solicitar confirmación del nivel Application Control
(1 byte)
Function Code
(1 byte)
de aplicación cuando envía eventos, solo así podrá
eliminarlos de su buffer. FIR FIN CON UNS SEQ
7 6 5 4 3–2–1–0

Regla 25: Se requiere confirmación del nivel de aplicación


por cada fragmento de un mensaje de multi-fragmento, la
confirmación es opcional para el último fragmento, a
menos que esta sea obligatoria (si contiene eventos). La
remota no debe mandar el siguiente fragmento, a menos
que tenga confirmación del anterior.

Regla 26: Se requiere confirmación de la maestra para


respuestas no solicitadas. La remota no debe descartar
ningún evento si no recibe tal confirmación.
Protocolo DNP3:
Nivel de Aplicación; Librería de objetos

DNP3 utiliza los objetos para Los grupos se organizan en categorías:


comunicar datos entre dispositivos.
Categoría Números de Grupo
Device Attributes 0
DNP3 utiliza grupos para categorizar
tipos de datos. Binary Inputs 1 to 9
Binary Outputs 10 to 19
Dentro de los grupos utiliza Counters 20 to 29
variaciones para indicar como están Analog Inputs 30 to 39
codificados los datos. Analog Outputs 40 to 49
Time 50 to 59
Entonces un objeto DNP3 es una Class 60 to 69
instancia de un elemento de Files 70 to 79
información, definido por un único Devices 80 to 82
grupo y una variación dentro de un Data Sets 83 to 89
mensaje. Applications 90 to 99
Alternate Numerics 100 to 109
Other 110 and higher
Protocolo DNP3:
Nivel de Aplicación; Poleo Integral

Integrity Poll

Es enviado por la Maestra.


- Debe enviarse cuando se detecta que la UTR se
reinició.
- Ocasionalmente por confiabilidad.

Consiste en: Solicitar todos los eventos y los puntos


estáticos, es decir:
- g60v02 , calificador 0x06
- g60v03 , calificador 0x06
- g60v04 , calificador 0x06
- g60v01 , calificador 0x06

También podría gustarte