INFORMAÇÃO GERAL
Informação Geral
Communication Driver Name: DNP3
Current Version: 9.2
Implementation DLL: T.ProtocolDriver.DNP3V2.dll
Protocol: DNP3.0 Master standard protocol
Interface: TCP/IP
Description: O driver é utilizado para a comunicação com dispositivos de aquisição de dados (IED's) que utilizam o protocolo DNP3 Nível 3. A comunicação pode ser feita através de canal serial multiponto ou utilizando rede local Ethernet e protocolo TCP-IP, sendo que, nesse caso, cada IED tem um endereço IP.
IEDs types supported: Qualquer IED compatíivel DNP3
Communication block size: Maximum 250 bytes, formato FT 1.2
Protocol Options: Modo "LinkConfirm" e endreço da estação mestre.
Multi-threading: Configurável pelo usuário, default é cinco threads para cda nó da rede.
Max number of nodes: user defined
PC Hardware requirements: Standard PC Ethernet interface board.
PC Software requirements: ActionNET system.
Criação do canal Dnp30
Para criar um canal utilizando o protocolo DNP30, vá em Edit>Devices>Canal, e em protocolos Instalados escolha o DNP30 L3-V2- Master Standard Protocol.
Após esta escolha será mostrada a janela para colocar o nome do canal e escolher o modo. Pode-se escolher modo de comunicação TCP-IP (CustomTCPIP) ou modo de comunicação Serial. (CustomSerial).
Conforme esta escolha, algumas outras configurações serão específicas para cada um deste modos. Nos próximos items estas configurações serão detalhadas.
Objetos de dados suportados
O quadro abaixo apresenta os objetos DNP e suas variantes, suportados por esta implementação. Os objetos com a indicação L4 estão implementados, mas são definidos no nivel L4.
|
| Requisição (Mestre) | Resposta (Escravo) | |||
Objeto | Variação | Descrição | Function Codes (decimal) | Qualifier. Codes (Hex) | Function Codes (decimal) | Qualifier Codes (Hex) |
1 | 0 | Binary Input (any variation) | 1 | 00,01,06 | ||
22 | 00,01,06 | |||||
1 | 1 | Single Bit Binary Input (packed) | 1 | 00,01,06 | 129 | 00, 01 |
1 | 2 | Binary Input with status | 1 | 00,01,06 | 129 | 00, 01 |
2 | 0 | Binary Input event (any variation) | 1 | 06,07,08 | ||
2 | 1 | Binary Input change without time | 1 | 06,07,08 | 129,130 | 17,18 |
2 | 2 | Binary Input change with absolut time | 1 | 06,07,08 | 129,130 | 17,18 |
2 | 3 | Binary Input change with relative time | 1 | 06,07,08 | 129,130 | 17,18 |
3 | 0 | Double bit Binary input – Any variation –L4 | 22 | 00,01,06 | ||
3 | 1 | Double-bit Binary Input – Packed –L4 | 1 | 00,01,06 | 129 | 00, 01 |
3 | 2 | Double-bit Binary Input – With flags–L4 | 1 | 00,01,06 | 129 | 00, 01 |
4 | 0 | Double-bit Binary Input Event – Any Variation–L4 | 1 | 06,07,08 | ||
4 | 1 | Double-bit Binary Input Event – whitout time–L4 | 1 | 06,07,08 | 129,130 | 17,18 |
4 | 2 | Double-bit Binary Input Event- with absolut time–L4 | 1 | 06,07,08 | 129,130 | 17,18 |
4 | 3 | Double-bit Binary Input Event - with relative time–L4 | 1 | 06,07,08 | 129,130 | 17,18 |
10 | 1 | Binary Output – Any Variation | 1 | 00,01,06 | ||
10 | 2 | Binary Output – status with flags | 1 | 00,01,06 | 129 | 00,01 |
12 | 1 | Control relay output block | 3,4,5,6 | 17,28 | 129 | Echo of request |
20 | 0 | Binary Counter – all variations | 1,7,8,9,10 | |||
20 | 1 | Counter – 32-bit with flag | 1 | 00,01,06 | 129 | 00, 01 |
20 | 2 | Counter – 16-bit with flag | 1 | 00,01,06 | 129 | 00, 01 |
20 | 5 | Counter – 32-bit without flag | 1 | 00,01,06 | 129 | 00, 01 |
20 | 6 | Counter – 16-bit without flag | 1 | 00,01,06 | 129 | 00, 01 |
21 | 0 | Frozen counter – all variations | 1,22 | |||
21 | 1 | Frozen Counter – 32-bit with flag | 1 | 00,01,06 | 129 | 00, 01 |
21 | 2 | Frozen Counter – 16-bit with flag | 1 | 00,01,06 | 129 | 00, 01 |
21 | 9 | Frozen Counter – 32-bit without flag | 1 | 00,01,06 | 129 | 00, 01 |
21 | 10 | Frozen Counter – 16-bit without flag | 1 | 00,01,06 | 129 | 00, 01 |
22 | 0 | Counter Event – Any Variation | 1 | 06 | ||
22 | 1 | Counter Event – 32-bit with flag | 1 | 06,07,08 | 129,130 | 17,18 |
22 | 2 | Counter Event – 16-bit with flag | 1 | 06,07,08 | 129,130 | 17,18 |
23 | 0 | Frozen Counter Event – Any Variation | 1 | 06,07,08 | ||
23 | 1 | Frozen Counter Event – 32-bit with flag | 1 | 06,07,08 | 129,130 | 17,18 |
23 | 2 | Frozen Counter Event – 16-bit with flag | 1 | 06,07,08 | 129,130 | 17,18 |
30 | 0 | Analog Input – all variations | 1, 22 | 00,01,06 | ||
30 | 1 | 32 Bits Analog Input | 1 | 00,01,06 | 129 | 00, 01 |
30 | 2 | 16 Bit Analog input with flag | 1 | 00,01,06 | 129 | 00, 01 |
30 | 3 | 32 Bits Analog Input without flag | 1 | 00,01,06 | 129 | 00, 01 |
30 | 4 | 16 Bit Analog input without flag | 1 | 00,01,06 | 129 | 00, 01 |
30 | 5 | Short Floating Point (32bits) – L4 | 1 | 00,01,06 | 129 | 00, 01 |
32 | 0 | Analog Input event – all variations | 1 | 06,07,08 | ||
32 | 1 | Analog Input event - 32 Bits without time | 1 | 06,07,08 | 129,130 | 17,18 |
32 | 2 | Analog event without flag – 16 Bits – Without time | 1 | 06,07,08 | 129,130 | 17,18 |
32 | 3 | 32 Bit Analog event with flag – L4 | 1 | 06,07,08 | 129,130 | 17,18 |
32 | 4 | 16 Bit Analog event with flag– L4 | 1 | 06,07,08 | 129,130 | 17,18 |
32 | 5 | Analog input event single float –without time– L4 | 1 | 06,07,08 | 129,130 | 17,18 |
32 | 7 | Analog input event single float –with time– L4 | 1 | 06,07,08 | 129,130 | 17,18 |
40 | 0 | Analog Output Status–any variation | 1 | |||
40 | 1 | Analog Output Status – 32bits with flag | 1 | 00,01,06 | 129 | 00, 01 |
40 | 2 | Analog Output Status -16bits with flag | 1 | 00,01,06 | 129 | 00, 01 |
40 | 3 | Analog output status – Single float with flag –L4 | 1 | 00,01,06 | 129 | 00, 01 |
41 | 1 | Analog output block - 32Bit | 3,4,5,6 | 17,28 | 129 | Echo of request |
41 | 2 | Analog output block - 16 Bit | 3,4,5,6 | 17,28 | 129 | Echo of request |
41 | 3 | Analog output block – Single float - L4 | 3,4,5,6 | 17,28 | 129 | Echo of request |
50 | 1 | Time and Data – Absolut time | 1,2 | 0x07 | 129 | 07 |
51 | 1 | Time and Date CTO – Absolute time, synchronized | 129,130 | 07 | ||
51 | 2 | Time and Date CTO – Absolute time, unsynchronized | 129,130 | 07 | ||
52 | 1 | Time Delay – Coarse | 129 | 07 | ||
52 | 2 | Time Delay – Fine | 129 | 07 | ||
60 | 1 | Class 0 data | 1 | 0x06 | ||
60 | 2 | Class 1 data | 1,20,21 | 06,07,08 | ||
60 | 3 | Class 2 data | 1,20,21 | 06,07,08 | ||
60 | 4 | Class 3 data | 1,20,21 | 06,07,08 | ||
80 | 1 | Internal indications | 1,2 | 00,01 | 129 | 01 |
Na implementação do protocolo o mestre só executa as requisições destacadas em azul. O equipamento servidor, responde utilizando as respostas destacadas em amarelo. Observe-se que cabe ao equipamento servidor decidir como será a resposta e o mestre deve suportar todas as funções do nível 2 possíveis de serem utilizadas como resposta.
Os objetos, variações de objeto, códigos de função e qualificadores tem seus significados padronizados no DNP. Abaixo são mostradas as tabelas de código de função e qualificador:
Código de Função | Descrição | Origem |
1 | Ler | Mestre |
2 | Escrever | Mestre |
3 | Seleciona | Mestre |
4 | Opera | Mestre |
5 | Opera direto (sem seleção) | Mestre |
6 | Opera direto (sem ack) | Mestre |
7 | Congela imediatamente | Mestre |
8 | Congela imediatamente (sem ack) | Mestre |
9 | Congela e limpa | Mestre |
10 | Congela e lê | Mestre |
13 | Restart (Cold) | Mestre |
14 | Restart (Warm) | Mestre |
20 | Habilita mensagem não solicitada | Mestre |
21 | Desabilita mensagem não solicitada | Mestre |
22 | Coloca o objeto em uma classe | Mestre |
23 | Medida com delay | Mestre |
129 | Resposta | Escravo |
130 | Resposta não solicitada (não existe no nível 2) | Escravo |
Código de Qualificador | Uso em requisição | Uso em resposta |
00,01 | Um intervalo de pontos estáticos (classe 0) ou um único ponto com um número | Objeto estático |
06 | Todos os pontos | Inválido |
07,08 | Uma quantidade limitada de eventos. | Um ponto simples sem número (isto é uma data / hora) |
17, 28 | Controles (usualmente um ou mais pontos não relacionados) | Objetos evento (usualmente um ou mais pontos não relacionados) |
O DNP tem o conceito de classes de dados, sendo definidas quatro classes:
Classe 0: Corresponde ao ponto estático, analógico ou digital. Seu conteúdo é o valor de uma variável analógica ou digital, de entrada ou saída, em um dado momento;
Classe 1, 2 e 3: Corresponde a eventos de transição de estados ou de variáveis de classe 0 ou situações internas à remota / relé que causam o evento.
O que ocorre normalmente nos IED's ao utilizar-se o DNP, é associar à variação de estado de variáveis digitais ou valores de banda morta de variáveis analógicas as classes 1, 2 e 3. Dessa forma, a modificação do estado / valor dessas variáveis causará eventos que serão transmitidos através do pedido de eventos das respectivas classes (60/2, 60/3 e 60/4). Periodicamente, pode ser feita uma leitura cíclica para verificação de integridade. Essa leitura, corresponde a um pedido de classe 0 (60/1).
Observações:
Variáveis estáticas não associadas às classes 1, 2 ou 3 não causam eventos;
A associação de variáveis a classes deve ser feita no IED (dispositivo servidor), utilizando um programa de configuração do mesmo. O SCADA executa a aquisição de dados das classes sem, entretanto, definir que variável pertence a que classe.
Funcionamento geral
A sequência normal de operação do mestre é:
Ao ser iniciado, envia pedido de leitura de eventos de classe 1, 2 e 3 (60/2, 60/3 e 60/4) para todas as IED's;
Em sequência envia pedido de leitura de classe 0 (leitura de integridade - 60/1) para todas as IED's;
Ciclicamente, com intervalos de tempo conforme definido no arquivo de inicialização, faz leitura das classes 0, 1, 2 e 3 (60/1 a 60/4);
Quando recebe uma mensagem com IIN (Internal Indication) informando que IED requer sincronismo, envia mensagens de sincronismo (50,1). Essa mensagem só é enviada por solicitação da IED;
Quando recebe uma mensagem com IIN indicando que IED reiniciou (restart), executa uma escrita de "clear device flag" (80/1) e vai para (1);
Quando o usuário executa um comando de saída digital ou saída analógica, o software envia a respectiva requisição para o IED (12/1 ou 41/2);
Nesta página: