DNP30 - CONFIGURAÇÃO DE PONTOS
Geral
Os pontos podem ser de entrada ou de saída.
Os pontos de entrada, isto é os pontos que são servidos pelo protocolo tem basicamente dois parâmetros principais: O tipo de ponto e o seu endereço.
No mapa de endereços de um IED os endereços reiniciam para cada tipo de ponto.
Os estados ou valores dos pontos são reportados ao cliente por Objetos de Informação definidos no protocolo. Estes objetos possuem variações como com ou sem "timestamp". Sempre que o escravo reportar mudanças em classes 1 ou 2 , utilizará a variação com "timestamp" utilizando o ultimo "timestamps" correspondente de um ponto no Action.NET. Quando o escravo reportar leituras gerais de analógicos, contadores ou digitais este protocolo utilizará variação sem "timestamp".
O módulo de comunicação no modo Escravo, implementa as seguintes operações:
Respostas a pedidos de leitura de pontos digitais;
Respostas a pedidos de leitura de variáveis analógicas;
Respostas a pedidos de Leitura de contadores;
Execução de solicitação de comandos de Pontos digitais e analógicos;
Tipos de pontos
Os tipos de pontos implementados são definidos utilizando os objetos de dados definidos na norma, a seguir apresentados. Para cada tipo de ponto quaisquer que sejam as variações de objetos recebidos do IED , com "flag" ou sem, com timestamp ou sem, os valores adquiridos serão colocados em pontos com o tipo entre os abaixo listados. Na tabela pontos, no campo "address" escolhe-se o tipo do ponto e especifica-se seu endereço.
AI - Analog Input
Medição analógica escalar utilizada para transmissão de grandezas analógicas. Os dados de tags com este tipo de ponto são enviados através do objeto 32 variação 1. São numeros de 32 bits inteiros sem timesatmp.
BI - Binary Input
Ponto de entrada binario simples, valor 0 ou 1. Os dados de tags com este tipo de ponto são enviados através do objeto 2 variação 2, quando por motivo de alteração (evento), com timestamp, ou através do objeto 2 var. 1, quando por leitura geral (classe 0).
DBI - Double bits Binary Input
Ponto de entrada binario duplo, valor entre 0 e 3. Os dados de tags com este tipo de ponto são enviados através do objeto 3 e variação 2. quando por alteração (evento), com timestamp, ou através do objeto 3 var. 1, quando por leitura geral (classe 0).
RAO – Read Analog Output
Não utilizado na implementação do modo escravo.
CRO - Control Relay Output
Ponto de saida digital utilizado para receber comandos de chaves e disjuntores. É esperado o objeto DNP 12, incluido o Control Code (8 bits) para indicação do tipo de comando e detalhes de execução.
No cadastramento destes pontos em modo escravo, é preciso definir o control code idêntico ao uque será nviado pelo IED Mestre, para que se possa identificar o tag utilizado no Escravo. No escravo somente é executada a alteração do valor do ponto do Action.NET. Para que o comando chegue ao destino final em um IED o tag afetado deverá ser utilizado por um outro protocolo Cliente, que o enviará ao IED.
No caso de controle de chaves e disjuntores recomenda-se a utilização de dois Tags: um para o Trip e outro para o Close.
Os valores possíveis recebidos do cliente são apresentados na tabela abaixo com as respectivas ações associadas:
Control Code | Ação protocolo | Ação no tag Action.NET executada no escravo |
1 | Saída Pulse ON | Altera para 1 e a seguir para Zero |
2 | Saída Pulse OFF | Altera para Zero e a seguir para 1 |
3 | Saída Latch ON | Altera para 1 |
4 | Saída Latch OFF | Altera para ZERO |
65 | Saída Pulse ON + Close | Altera para 1 e a seguir para Zero |
66 | Saída Pulse OFF + Close | Altera para Zero e a seguir para 1 |
67 | Saída Latch ON + Close | Altera para 1 |
68 | Saída Latch OFF + Close | Altera para ZERO |
129 | Saída Pulse ON + Trip | Altera para 1 e a seguir para Zero |
130 | Saída Pulse OFF + Trip | Altera para Zero e a seguir para 1 |
131 | Saída Latch ON + Trip | Altera para 1 |
132 | Saída Latch OFF + Trip | Altera para ZERO |
+ 16 | Enfileirar (Queue) + Trip | Nada faz |
+ 32 | Limpar (Clear) + Trip | Nada faz |
CT – Counter
Contador binário de 16 ou 32bits, enviado através do objetos 20 variação 1. Este numero possui o ultimo estado do tag de contagem, no instante em que é enviado.
FRZ - Frozen Counter
Contador binário de 32 bits, enviado através do objeto 21 variação 1, que contém a informação de um contador utilizado como um tag.
AO - Analog Output Status or Block (16bits)
Quando este modo escravo recebe mensagem com Function Code de escrita (2 = Write ou 4=Operate, ou 5= DirectOperate ) e este objeto ou 41 (valor requerido para ser alcançado na saida analógica) na suas variações 2 (16 bits), este valor é escito no tag definido na tabela POINTS para o endereço recebido no objeto..
AOL - Analog Output long (32 bits)
Quando este modo escravo recebe mensagem com Function Code de escrita (2 = Write) e este objeto 41 (valor requerido para ser alcançado na saida analógica) na suas variações 1 (32 bits), este valor é escito no tag definido na tabela POINTS para o endereço recebido no objeto..
AIF - Analog Input Floating (32 bits)
Medição analógica utilizada para transmissão de grandezas analógicas. Tags com este tipo devem ser tipificados no Action.Net como reais. Seu valor é enviado através do objeto 30 variação 5. São numeros de ponto flutuante de 32 ou 64 bits, formato IEEE-754.
IIN - Internal Indications
Como é o padrão do protocolo os status dos Internal Indications ou status de resposta de comandos são enviados em todas as mensagens de resposta do escravo, para utilização pelo cliente. A tabela mostra o formato destas duas palavras de 16 bits.
BIT | Origem | Descrição | Conteúdo |
0 | IIN | Broadcast | Retorna 1 quando escravo recebe uma mensagem de broadcast (endereço = FFFF) |
1 | IIN | Classe 1 | Retorna 1 se escravo tem eventos classe 1 |
2 | IIN | Classe 2 | Retorna 1 se escravo tem eventos classe 2 |
3 | IIN | Classe 3 | Retorna 1 se escravo tem eventos classe 3 |
4 | IIN | Sincronismo de relógio | Retorna 1 se escravo pede sincronização de relógio |
5 | IIN | Saídas em local | Retorna 1 se algumas ou todas as saídas estão em local |
6 | IIN | Problema | Retorna 1 se escravo com problema |
7 | IIN | Reinício | Retorna 1 se escravo reiniciou (restart) |
8 | IIN | Função não implementada | Retorna 1 se função enviada pelo mestre não está implementada no escravo |
9 | IIN | Objeto desconhecido | Retorna 1 se escravo não tem determinado objeto ou classe não tem esse objeto |
10 | IIN | Dado inválido | Retorna 1 se tem parâmetro inválido no qualificador ou intervalo de endereços está inválido |
11 | IIN | Overflow | Retorna 1 se buffer do escravo teve overflow |
12 | IIN | Ocupado | Retorna 1 se requisição foi entendida mas já está sendo executada |
13 | IIN | Dado corrompido | Retorna 1 se dados de parametrização estão corrompidos |
14 | IIN | Reservado | Sempre 0 |
15 | IIN | Reservado | Sempre 0 |
Status field: 8 bits enviados como resposta de um comando.
BIT | Origem | Descrição | Conteúdo |
0 | Status | Comando aceito | Retorna 1 após comando correto |
1 | Status | Comando não aceito | Retorna 1 se ocorreu time out entre tempo de select e operate. |
2 | Status | Falta select | Retorna 1 se foi feito um operate sem prévio select |
3 | Status | Erro formato | Retorna 1 se comando tem erro de formato |
4 | Status | Controle não suportado | Retorna 1 se operação não é suportada |
5 | Status | Fila cheia | Retorna 1 se fila de requisição do escravo está cheia ou ponto já está ativo |
6 | Status | Erro hardware | Retorna 1 se ocorreu um erro de hardware do dispositivo ao tentar executar o comando |
7 | Não utilizado |
Endereço do ponto
O campo Address a ser preenchido no cadastramento de pontos é o que a norma chama de "Index". Trata-se de um numero de 16 bits que é o índice [0 a n-1] indicativo de cada um dos pontos do mesmo tipo mapeados dentro do IED.
Abaixo, a título de exemplo é apresentada uma tabela de pontos preenchida com diferentes tipos de ponto. Os pontos tipo saída digital (CRO), conforme citado acima, além do endereço possuem o código de controle.
129 = Pulse ON + TRIP Figura 12 – Exemplo da tabela de Points com diferentes tipos de pontos
Para implementar pontos de entrada digital discretos, basta usar o atributo "Bit" de um Tag, para cada um dos pontos que definem o valor da entrada digital discreta. Assim, por exemplo, uma seccionadora que tem dois contatos para definir seu estado:
Tag | ENDEREÇO | Complemento |
SEL_LINHA_01.SC89_1 | 8 | Seccionadora aberta |
SEL_LINHA_01.SC89_1 | 9 | Seccionadora Fechada |
É definida como um Tag AnalogInt e na tabela node se usa o atributo Bit desta variável de 16 bits (AnalogInt) para endereçar os dois pontos, como na tabela abaixo:
Os valores assumidos pela variável SEL_LINHA_01.SC89_1 serão:
Tag | Bit 0 | Bit 1 | VALOR | SIGNIFICADO |
SEL_LINHA_01.SC89_1 | 0 | 0 | 0 | INDEFINIDO |
SEL_LINHA_01.SC89_1 | 1 | 0 | 1 | ABERTA |
SEL_LINHA_01.SC89_1 | 0 | 1 | 2 | FECHADA |
SEL_LINHA_01.SC89_1 | 1 | 1 | 3 | ERRO |
Access Type
Por ser um módulo de comunicação em modo servidor há a necessidade de algumas características próprias para a parametrização do campo Access Type da tabela Points:
Para pontos com tipos que são de leitura o Access Type deve ser definido com:
ReadOnStartup= On;
ReadPooling= Never;
WriteEvent= Changed;
AccepUnsolictited = On;
Para pontos com tipos de leitura , para os quais não se deseja geração de eventos
O Access Type deve ser definido da mesma forma acima porém com com:
WriteEnable = off;
WriteEvent= none;
Nesta página: