DNP30 - INFORMAÇÃO GERAL
Informação Geral
Communication Driver Name: DNP30S
Current Version: 9.2
Implementation DLL: T.ProtocolDriver.DNP30S.dll
Protocol: DNP3.0 Slave standard protocol
Interface: TCP/IP
Description: O driver é utilizado para a comunicação em modo escravo (ou Servidor) com supervisórios ou outros equipamentos que utilizam o protocolo DNP3 Nível 2 em Modo MESTRE (ou Cliente). A comunicação pode ser feita através de canal serial ponto a ponto ou utilizando rede local Ethernet e protocolo TCP-IP como escravo único de um endereço IP.
Masters types supported: Qualquer equipamento em Modo MESTRE compatíivel DNP 3.0
Communication block size: Maximum 250 bytes, formato FT 1.2
Protocol Options: Modo "LinkConfirm" e endereço da estação mestre.
Multi-threading: Configurável pelo usuário, default é cinco threads para cda nó da rede.
Max number of nodes: One per channel
PC Hardware requirements: Standard PC Ethernet interface board, RS485 or RS232 port
PC Software requirements: ActionNET system.
Objetos de dados suportados
O quadro abaixo apresenta os objetos DNP e suas variantes, suportados por esta implementação.
| Objeto | Requisição (Mestre) | Resposta (Escravo) | |||
Obj. | Var | 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 | 129 | ||||
1 | 1 | Single Bit Binary Input (packed) | 1 | 00,01,06 | 129 | 00, 01 |
1 | 2 | Binary Input with status | 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 | 22 | 00,01,06 | ||
3 | 1 | Double-bit Binary Input – Packed | 1 | 00,01,06 | 129 | 00, 01 |
3 | 2 | Double-bit Binary Input – With flags | 1 | 00,01,06 | 129 | 00, 01 |
4 | 0 | Double-bit Binary Input Event – Any Variation | 1 | 06,07,08 | ||
4 | 1 | Double-bit Binary Input Event – whitout time | 1 | 06,07,08 | 129,130 | 17,18 |
4 | 2 | Double-bit Binary Input Event- with absolut time | 1 | 06,07,08 | 129,130 | 17,18 |
4 | 3 | Double-bit Binary Input Event - with relative time | 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 | |
12 | 1 | Control relay output block | 3,4,5 | 17,28 | 129 | Echo of request |
20 | 0 | Binary Counter – all variations | ||||
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 | ||||
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 | 3 | Frozen Counter – 32-bit without flag | 1 | 00,01,06 | 129 | 00, 01 |
21 | 4 | 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) | 1 | 00,01,06 | 129 | 00, 01 |
32 | 0 | Analog Input event – all variations | 1 | 06,07,08 | ||
32 | 1 | 32 Bits Analog Input event | 1 | 06,07,08 | 129,130 | 17,18 |
32 | 2 | 16 Bit Analog event without flag | 1 | 06,07,08 | 129,130 | 17,18 |
32 | 3 | 32 Bit Analog event with flag | 1 | 06,07,08 | 129,130 | 17,18 |
32 | 4 | 16 Bit Analog event with flag | 1 | 06,07,08 | 129,130 | 17,18 |
32 | 5 | Analog input event single float –without time | 1 | 06,07,08 | 129,130 | 17,18 |
32 | 7 | Analog input event single float –with time | 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 | 1 | 00,01,06 | 129 | 00, 01 |
41 | 1 | 32Bit Analog output block | 3,4,5,6 | 17,28 | 129 | Echo of request |
41 | 2 | 16 Bit Analog output block | 3,4,5,6 | 17,28 | 129 | Echo of request |
41 | 3 | Analog output block – Single float | 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 | Selecionar | Mestre |
4 | Operar | Mestre |
5 | Operar direto (sem seleção) | Mestre |
6 | Operar 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 | Assinala classe a objeto | 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:
Nesta implementação é considerado automaticamente que variáveis digitais Tipo BI, quando sofrerem alteração serão enviadas como de Classe 1, na forma do Objeto 2 com variação 2 (Binary input with time stamp).
Nesta implementação é considerado automaticamente que variáveis analógicas AI, AIF, quando sofrerem alteração serão enviadas como de Classe 2, na forma dos Objetos 30 variação 3, para AI e como 30 variação 5 para o AIF.
Funcionamento geral
A sequência normal de operação do escravo é:
Caso seja necessário na instalação o mestre deverá enviar mensagem de sincronismo (50,1) periodicamente. A data e horário recebido será entendido como UCT (ou GMT), e será utilizada para alterar o relógio do computador "host".
Ao iniciar a execução, nas primeiras mensagens de resposta com, enviará flags de IIN indicando que IED reiniciou (restart). O mestre deverá então executar uma escrita de "clear device flag" (80/1) para limpar esta indicação;
Sempre que houver alteração do estado de digitais ou analógicas, que sejam configurados na tabela POINTS, com AccesType como ReadWrite, será enviada mensagem de evento como Classe 1 ou Classe 2. Caso não se desejar eventos em alguns pontos usar para estes AccessType = Read;
Quando o modo escravo recebe um pedido de comando de saída digital ou saída analógica, através software envia a respectiva requisição para o IED (12/1 ou 41/2);
Nesta página: