Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Anchor | ||||
---|---|---|---|---|
|
Communication Driver Name: DNP3
Current Version: 1.0
Implementation DLL: T.ProtocolDriver.DNP30.dll
Protocol: DNP3.0 Master standard protocol
Interface: TCP/IP ou Serial
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, RS485 or RS232 port
PC Software requirements: ActionNET system.
Anchor | ||||
---|---|---|---|---|
|
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.
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 |
...
...
...
...
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
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.
Anchor | ||||
---|---|---|---|---|
|
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);