Você está na página 1de 32

Curso de Protocolo DNP 3.

CURSO DE
PROTOCOLO
STI
DNP 3.0
Subsistema de
Tratamento da
Informação

1
Curso de Protocolo DNP 3.0

Introdução
• DNP - Distributed Network Protocol
• Desenvolvido pela GE Harris
• Baseado no IEC 870-5
• Utiliza uma versão simplificada do Modelo OSI de 7 camadas,
chamado EPA (Enhanced Performance Architecture), que utiliza
3 camadas: nível físico, nível de enlace e nível de aplicação
• Utiliza uma pseudo camada de transporte para permitir que
as mensagens sejam maiores do que um quadro (frame) do
nível de enlace (link layer)

2
Curso de Protocolo DNP 3.0

Documentos

• DNP V3.0 Data Link Layer


• DNP V3.0 Transport Functions
• DNP V3.0 Application Layer Specification
• DNP V3.0 Data Object Library

3
Curso de Protocolo DNP 3.0

Arquitetura

Aplicação mensagem = tamanho ilimitado

Pseudo-Transporte fragmento = 2048 bytes (max)

Nível de Enlace quadro = 292 bytes (max)

Físico byte = 8 bits

4
Curso de Protocolo DNP 3.0

Nível Físico (Phisical Layer)

• Canal serial assíncrono


• Orientado a bytes com 8 bits de dados, 1 start bit, 1 stop
bit e sem paridade
• Níveis de voltagem e sinais de controle da interface RS-
232C

5
Curso de Protocolo DNP 3.0

Nível de Enlace (Data Link Layer)


• Balanceado
• Quadros no formato FT3
• Um quadro tem no mínimo 10 bytes e no máximo 292 bytes
• Número máximo de bytes de aplicação no quadro 249 (15 blocos *
16 bytes (240) + 10 bytes (250) - 1 byte do nível de transporte)
• O bloco 0 tem sempre 10 bytes (Data Link Header)
• Blocos intermediários têm sempre 18 bytes
• Último bloco tem tamanho variável de 4 a 18 bytes se for o 1o
bloco, de 3 a 18 bytes se for um bloco do 2o ao 15o ou de 3 a 12
bytes se for o 16o bloco

6
Curso de Protocolo DNP 3.0

Formato FT3
¦<---------------------------- Block 0 ---------------------------->¦
+-------------------------------------------------------------------+
¦ START ¦ START ¦ LENGTH ¦ CONTROL ¦ DESTINATION ¦ SOURCE ¦ CRC ¦
¦ 0x05 ¦ 0x64 ¦ ¦ ¦ ¦ ¦ ¦
+-------------------------------------------------------------------+
¦<----------------------- Fixed Length Header --------------------->¦
10 octets

¦<------------------------------- Block 1 --------------------------------->¦


+---------------------------------------------------------------------------+
¦ TRANSP ¦ USER DATA ¦ CRC ¦
¦ BYTE ¦ ¦ ¦
+---------------------------------------------------------------------------+
¦<----------------------- 18 octets ----------------------------->¦

¦<------------------------------- Block 2 --------------------------------->¦


+---------------------------------------------------------------------------+
¦ USER DATA ¦ CRC ¦
¦ ¦ ¦
+---------------------------------------------------------------------------+
¦<----------------------- 18 octets ----------------------------->¦
..
.
¦<------------------------------- Block 15 -------------------------------->¦
+---------------------------------------------------------------------------+
¦ USER DATA ¦ CRC ¦
¦ ¦ ¦
+---------------------------------------------------------------------------+
¦<----------------------- 18 octets ----------------------------->¦

¦<---------------------------- Block 16 ----------------------------->¦


+---------------------------------------------------------------------+
¦ USER DATA ¦ CRC ¦
¦ ¦ ¦
+---------------------------------------------------------------------+
¦<-------------------- 12 octets -------------------------->¦

7
Curso de Protocolo DNP 3.0

Campo de Controle

1
FCB FCV
DIR PRM FUNCTION CODE
0 RES DFC

Bit 7 6 5 4 3 2 1 0

8
Curso de Protocolo DNP 3.0
Funções para iniciar uma comunicação do nível de enlace

PRM = 1

Code Frame Type Service FCV


0 Send-Confirm Reset Remote Link 0
1 Send-Confirm Reset Data Link Process 0
2 Send-Confirm Link Test 1
3 Send-Confirm User Data 1
4 Send-No Reply Unconfirmed User Data 0
9 Request-Respond Request Link Status 0

9
Curso de Protocolo DNP 3.0
Funções para responder uma comunicação do nível de enlace

PRM = 0

Code Frame Type Service

0 Confirm ACK: Positive Acknowledgment

1 Confirm NACK: Link Busy

11 Respond Status of Link

10
Curso de Protocolo DNP 3.0

Pseudo Transporte
Transport Header

FIN FIR SEQUENCE NUMBER

Bit 7 6 5 4 3 2 1 0

11
Curso de Protocolo DNP 3.0

Pseudo Transporte
• Utiliza o primeiro byte depois do “Data Link Header”
• O número de seqüência varia de 0 até 63, mas pode começar com
qualquer número dentro deste intervalo
• O número de seqüência numera os quadros dentro do fragmento
• Um fragmento tem no máximo 2048 bytes
• Um fragmento pode conter até 8 quadros de 249 bytes de dados da
aplicação (user data) mais 1 quadro de 56 bytes
• O tamanho de um fragmento é variável, uma vez que um “Object
Header” da aplicação, com os seus respectivos dados, tem que
estar contido dentro de um fragmento

12
Curso de Protocolo DNP 3.0

Nível de Aplicação (Application Layer)


• O número de seqüência do nível de aplicação varia de 0 a
31.
• Existe um número de seqüência para requests e responses
( 0 a 15) e outro para unsolicited responses (16 a 31).

13
Curso de Protocolo DNP 3.0
Nível de Aplicação (Application Layer)
T OV Descrição
• S 1-1 Single Bit Binary Input
• S 1-2 Binary Input with Status
• E 2-1 Binary Input Change without Time
• E 2-2 Binary Input Change with Time
• E 2-3 Binary Input Change with Relative Time
• S 10-1 Binary Output
• S 10-2 Binary Output Status
• S 12-1 Control Relay Output Block
• S 12-2 Pattern Control Block
• S 12-3 Pattern Mask
• S 20-1 32-Bit Binary Counter
• S 20-2 16-Bit Binary Counter
Onde:
• S 20-3 32-Bit Delta Counter T - Type
• S 20-4 16-Bit Delta Counter O - Data Object
V - Variation 14
Curso de Protocolo DNP 3.0
Nível de Aplicação (Application Layer)
T OV Descrição
• S 20-5 32-Bit Binary Counter Without Flag
• S 20-6 16-Bit Binary Counter Without Flag
• S 20-7 32-Bit Delta Counter Without Flag
• S 20-8 16-Bit Delta Counter Without Flag
• FS 21-1 32-Bit Frozen Counter
• FS 21-2 16-Bit Frozen Counter
• FS 21-3 32-Bit Frozen Delta Counter
• FS 21-4 16-Bit Frozen Delta Counter
• FS 21-5 32-Bit Frozen Counter With Time of Freeze
• FS 21-6 16-Bit Frozen Counter With Time of Freeze
• FS 21-7 32-Bit Frozen Delta Counter With Time of Freeze
• FS 21-8 16-Bit Frozen Delta Counter With Time of Freeze
• FS 21-9 32-Bit Frozen Counter Without Flag
• FS 21-10 16-Bit Frozen Counter Without Flag
15
Curso de Protocolo DNP 3.0
Nível de Aplicação (Application Layer)
T O V Descrição
• FS 21-11 32-Bit Frozen Delta Counter Without Flag
• FS 21-12 16-Bit Frozen Delta Counter Without Flag
• E 22-1 32-Bit Counter Change Event Without Time
• E 22-2 16-Bit Counter Change Event Without Time
• E 22-3 32-Bit Delta Counter Change Event Without Time
• E 22-4 16-Bit Delta Counter Change Event Without Time
• E 22-5 32-Bit Counter Change Event With Time
• E 22-6 16-Bit Counter Change Event With Time
• E 22-7 32-Bit Delta Counter Change Event With Time
• E 22-8 16-Bit Delta Counter Change Event With Time
• FE 23-1 32-Bit Frozen Counter Event Without Time
• FE 23-2 16-Bit Frozen Counter Event Without Time
• FE 23-3 32-Bit Frozen Delta Counter Event Without Time
• FE 23-4 16-Bit Frozen Delta Counter Event Without Time
16
Curso de Protocolo DNP 3.0
Nível de Aplicação (Application Layer)
T O V Descrição
• FE 23-5 32-Bit Frozen Counter Event With Time
• FE 23-6 16-Bit Frozen Counter Event With Time
• FE 23-7 32-Bit Frozen Delta Counter Event With Time
• FE 23-8 16-Bit Frozen Delta Counter Event With Time
• S 30-1 32-Bit Analog Input
• S 30-2 16-Bit Analog Input
• S 30-3 32-Bit Analog Input Without Flag
• S 30-4 16-Bit Analog Input Without Flag
• FS 31-1 32-Bit Frozen Analog Input
• FS 31-2 16-Bit Frozen Analog Input
• FS 31-3 32-Bit Frozen Analog Input With Time of Freeze
• FS 31-4 16-Bit Frozen Analog Input With Time of Freeze
• FS 31-5 32-Bit Frozen Analog Input Without Flag
• FS 31-6 16-Bit Frozen Analog Input Without Flag
17
Curso de Protocolo DNP 3.0
Nível de Aplicação (Application Layer)
T O V Descrição
• E 32-1 32-Bit Analog Change Event Without Time
• E 32-2 16-Bit Analog Change Event Without Time
• E 32-3 32-Bit Analog Change Event With Time
• E 32-4 16-Bit Analog Change Event With Time
• FE 33-1 32-Bit Frozen Analog Event Without Time
• FE 33-2 16-Bit Frozen Analog Event Without Time
• FE 33-3 32-Bit Frozen Analog Event With Time
• FE 33-4 16-Bit Frozen Analog Event With Time
• S 40-1 32-Bit Analog Output Status
• S 40-2 16-Bit Analog Output Status
• S 41-1 32-Bit Analog Output Block
• S 41-2 16-Bit Analog Output Block
• 50-1 Time and Date
• 50-2 Time and Date With Interval

18
Curso de Protocolo DNP 3.0
Nível de Aplicação (Application Layer)
O V Descrição
• 51-1 Time and Date CTO
• 51-2 Un-Synchronized Time and Date CTO
• 52-1 Time Delay Coarse
• 52-2 Time Delay Fine
• 60-1 Class 0 Data
• 60-2 Class 1 Data
• 60-3 Class 2 Data
• 60-4 Class 3 Data
• 70-1 File Identifier
• 80-1 Internal Indications
• 81-1 Storage Object
• 82-1 Device Profile
• 83-1 Private Registration Object
• 83-2 Private Registration Object Descriptor

19
Curso de Protocolo DNP 3.0
Nível de Aplicação (Application Layer)
O V Descrição
• 90-1 Application Identifier
• 100-1 Short Floating Point
• 100-2 Long Floating Point
• 100-3 Extended Floating Point
• 101-1 Small-Packed Binary Coded Decimal
• 101-2 Medium-Packed Binary Coded Decimal
• 101-3 large-Packed Binary Coded Decimal

20
Curso de Protocolo DNP 3.0

Nível de Aplicação (Application Layer)

21
Curso de Protocolo DNP 3.0
Nível de Aplicação (Application Layer)
Dinâmica do Protocolo

Master Send Request Outstation

Optional confirmation (00)

Send Response (81)

Optional confirmation (00)

22
Curso de Protocolo DNP 3.0
Nível de Aplicação (Application Layer)
Dinâmica do Protocolo - Variação Detectada

Master Outstation

Send Unsolicited Response (82)

Optional confirmation (00)

23
Curso de Protocolo DNP 3.0

Utilização do Protocolo DNP no SAGE


Nível de Enlace
• A ativação da monitoração é feita da seguinte maneira:
Kill -USR1 “pid do transportador”.
• Endereços: SAGE como Master utiliza como Destination
Address o endereço de UTR da base de dados e como
Source Address uma concatenação de placa e linha; SAGE
como Slave devolve como Destination Address o que recebe
como source address e utiliza como Source Address o
endereço de UTR da base de dados.

24
Curso de Protocolo DNP 3.0

Utilização do Protocolo DNP no SAGE


Nível de Enlace
• O número de tentativas e o timeout do nível de enlace depende
das variáveis de ambiente NUM_REP_IEC3 e TIM_OUT_IEC3.
• Se as variáveis de ambiente estiverem com o valor NÃO, valem
os valores default de 3 tentativas de 3 segs.
• Se as variáveis de ambiente estiverem com o valor SIM, os
valores são trazidos da base de dados da entidade ENU, sendo o
atributo TDESC o timeout e o TRANS o número de tentativas.

25
Curso de Protocolo DNP 3.0

Utilização do Protocolo DNP no SAGE


Nível de Enlace
• Se o timeout do nível de enlace for zero (TDESC = 0), é
desabilitado o pedido de ack de link level, ou seja, é
utilizada a função 4 para envio de dados (apenas no
transporte iec3y).
• O transportador iec3u só usa função 4 quando slave
(Comunicação com o FOX SCADA), como master só utiliza
função 3.

26
Curso de Protocolo DNP 3.0

Utilização do Protocolo DNP no SAGE


Nível de Aplicação

• O timeout e o número de tentativas do nível de aplicação


são configurados na entidade UTR, respectivamente nos
atributos RESPT e NTENT.

27
Curso de Protocolo DNP 3.0

Utilização do Protocolo DNP no SAGE


Nível de Aplicação - Master

• Leitura (Read) de Classe 0 (OBJ 60 VAR 1) com


periodicidade definida no atributo INTGR de CXU.
• Leitura (Read) de DO (OBJ 10 VAR 0, all variations) e de
AO (OBJ 40 VAR 0) com periodicidade definida no atributo
AQANL de CXU.
• Leitura (Read) de hora (OBJ 50 VAR 0) com periodicidade
definida no atributo AQPOL de CXU.
• Leitura (Read) de totalizadores (OBJ 20 VAR 1) com
periodicidade definida no atributo AQTOT de CXU.

28
Curso de Protocolo DNP 3.0

Utilização do Protocolo DNP no SAGE


Nível de Aplicação - Master
• Escrita (Write) para resetar as internal indications (OBJ 80
VAR 1) de restart e need time quando necessário.
• Escrita (Write) para enviar a hora (OBJ 50 VAR 1) quando
a internal indication need time for setada pelo slave.
• Espera dados espontâneos se em DNP level 3, e neste caso
se receber alguma das internal indications de classes 1, 2
ou 3 setadas, envia a função de Enable Unsolicited Msgs
(função 20).

29
Curso de Protocolo DNP 3.0

Utilização do Protocolo DNP no SAGE


Nível de Aplicação - Master

• Leitura (Read), se em DNP level 1, das classes 1, 2 e 3


(OBJ 60 VAR 2, 3 e 4) de acordo com as internal
indications.
• Envia a função de Cold Start (função 13) quando
requisitado pela IHM um controle de reset de UTR.
• Envia as funções de controle Select (função 03), Operate
(função 04) ou Direct Operate (função 05), quando
requisitado pela IHM.

30
Curso de Protocolo DNP 3.0

Utilização do Protocolo DNP no SAGE


Nível de Aplicação - Slave
• Envia dados espontâneos, se em DNP level 3, inclusive
totalizadores, com periodicidade definida no atributo INTGR de
CXU (0.5 seg).
• Se em DNP level 3, envia dado espontâneo do objeto de endereço
0, com periodicidade definida no atributo AQPOL de CXU, para
verificar se o canal de comunicação está OK.
• Se em DNP level 1, utiliza INTGR de CXU para detectar se o
master está fora, ou seja, INTGR é o tempo de timeout para
receber alguma mensagem do master.

31
Curso de Protocolo DNP 3.0

Utilização do Protocolo DNP no SAGE


Nível de Aplicação - Slave
• Não pede confirmation quando envia uma response, apenas
quando envia uma unsolicited response.
• Quando recebe uma leitura de classe, responde com os
dados em default variation.
• Processa as mensagens com as funções de freeze de
totalizadores (funções 07 a 12), as funções de Enable e
Disable Unsolicited Msgs (funções 20 e 21) e as funções de
Assign Class e Delay Measurement (funções 22 e 23).

32

Você também pode gostar