Introdução ao Protocolo DNP3
Este é um guia para pessoas que desejam uma compreensão rápida do DNP3 sem ter que vasculhar os detalhes tediosos de uma especificação complexa. O estilo de escrita é pensado para ser informal e pessoal
Introdução
Os protocolos definem as regras pelas quais os dispositivos se comunicam entre si, e o DNP3 é um protocolo para transmissão de dados do ponto A ao ponto B usando comunicações seriais e IP. Ele tem sido usado principalmente por concessionárias de serviços públicos, como as empresas de energia elétrica e água, mas funciona bem para outras áreas. Uma empresa de energia elétrica típica pode ter um centro de operações comum que monitora todos os equipamentos em cada uma de suas subestações. No centro de operações, um computador potente armazena todos os dados recebidos e exibe o sistema para os operadores humanos. As subestações têm muitos dispositivos que precisam de monitoramento (Os disjuntores estão abertos ou fechados?), sensores de corrente (Quantos amperes estão fluindo?) e transdutores de tensão (Qual é o potencial da linha?). Isso é apenas a ponta do iceberg; uma concessionária está interessada em monitorar muitos parâmetros, numerosos demais para serem discutidos aqui. O pessoal de operações frequentemente precisa colocar ou tirar de serviço seções da rede elétrica. Computadores são instalados em subestações para coletar os dados e transmiti-los à estação mestra no centro de operações. Os computadores da subestação também são chamados para energizar ou desenergizar os disjuntores e reguladores de tensão.
O DNP3 utiliza o termo "estação externa" (outstation) para se referir aos computadores remotos encontrados em campo. O termo "mestre" é usado para os computadores nos centros de controle.
O DNP3 fornece as regras para computadores localizados remotamente e computadores da estação mestra comunicarem dados e controlarem comandos. O DNP3 é um protocolo não proprietário que está disponível para qualquer pessoa acessando o site http://www.dnp.org. Apenas uma taxa nominal é cobrada pela documentação, mas, fora isso, está disponível em todo o mundo, sem restrições. Isso significa que uma concessionária pode adquirir equipamentos de computação para estações mestras e estações externas de qualquer fabricante e ter a garantia de que eles se comunicarão de forma confiável. Os fornecedores competem com base nos recursos, custos e fatores de qualidade de seus equipamentos de computação, em vez de quem tem o melhor protocolo. As concessionárias não estão vinculadas a um único fabricante após a venda inicial.
Sobre o que os computadores conversam? Computadores de estação remota coletam dados para transmissão ao mestre
Dados de entrada binários que são úteis para monitorar dispositivos de dois estados. Por exemplo, um disjuntor está fechado ou desarmado; um alarme de pressão de tubulação mostra normal ou excessivo.
Dados de entrada analógicos que transmitem tensões, correntes, potência, níveis de água do reservatório e temperaturas.
Dados de entrada de contagem que relatam energia em quilowatts-hora ou volume de fluido.
Arquivos que contêm dados de configuração.
A estação mestre emite comandos de controle que assumem a forma de
Fechar ou desarmar um disjuntor, iniciar ou parar um motor e abrir ou fechar uma válvula.
Valores de saída analógica para definir uma pressão regulada ou um nível de tensão desejado.
Outras coisas sobre as quais os computadores conversam entre si são a sincronização de hora e data, o envio de dados históricos ou registrados, dados de forma de onda e assim por diante.
Por que DNP3?
O DNP3 foi projetado para otimizar a transmissão de informações de aquisição de dados e comandos de controle de um computador para outro. Não é um protocolo de uso geral como aqueles encontrados na Internet para transmissão de e-mail, documentos de hipertexto, consultas SQL, multimídia e arquivos grandes. Destina-se a aplicações SCADA (Supervisory Control and Data Acquisition).
Bancos de Dados Mestre e Estação Externa
A Figura 1 mostra a relação mestre-estação externa e fornece uma visão simplificada dos bancos de dados e processos de software envolvidos.
O mestre está no lado esquerdo da Figura 1, e a estação externa está no lado direito..
Uma série de blocos quadrados na parte superior da estação remota representa os dados armazenados em seu banco de dados e dispositivos de saída. Os vários tipos de dados são conceitualmente organizados como matrizes. Uma matriz de valores de entrada binários representa os estados de dispositivos booleanos físicos ou lógicos. Os valores na matriz de entrada analógica representam as grandezas de entrada que a estação remota mediu ou calculou. Uma matriz de contadores representa valores de contagem, como quilowatts-hora, que estão sempre aumentando (até atingirem um máximo e então zerarem e começarem a contar novamente). As saídas de controle são organizadas em uma matriz que representa os pontos físicos ou lógicos de ligar-desligar, aumentar-diminuir e desarmar-fechar. Por fim, a matriz de saídas analógicas representa as grandezas analógicas físicas ou lógicas, como aquelas usadas para pontos de ajuste.
Os elementos das matrizes são rotulados de 0 a N - 1, onde N é o número de blocos mostrados para o respectivo tipo de dado. Na terminologia DNP3, os números dos elementos são chamados de índices de ponto. Os índices são baseados em zero no DNP3, ou seja, o menor elemento é sempre identificado como zero.
Observe que o mestre DNP3 também possui um banco de dados semelhante para os tipos de dados de entrada (binário, analógico e contador). O mestre usa valores em seu banco de dados para fins específicos de exibição de estados do sistema, controle de malha fechada, notificação de alarme, faturamento e muito, muito mais. Um objetivo do mestre é manter seu banco de dados atualizado. Ele faz isso enviando solicitações à estação remota solicitando que ela retorne os valores no banco de dados da estação remota. Isso é chamado de polling. A estação remota responde à solicitação do mestre transmitindo o conteúdo de seu banco de dados. As setas são desenhadas na parte inferior da Figura 1, mostrando a direção das solicitações (em direção à estação remota) e a direção das respostas (em direção ao mestre). Posteriormente, discutiremos sistemas nos quais as estações remotas transmitem respostas sem serem solicitadas.
Camadas
O mestre e a estação remota (outstation) mostradas na Figura 1 têm duas camadas de software cada. A camada superior é a camada do usuário DNP3. No mestre, é o software que interage com o banco de dados e inicia as solicitações de dados da estação remota. Na estação remota, ele é o software que busca os dados solicitados no banco de dados da estação remota para responder às solicitações do mestre. É interessante observar que, se não houvesse separação física entre o mestre e a estação remota, a eliminação do DNP3 poderia ser possível conectando essas duas camadas superiores. No entanto, como existe separação física, ou possivelmente lógica, entre o mestre e a estação remota o software DNP3 é colocado em um nível inferior. O código do usuário do DNP3 usa o software DNP3 para transmissão de solicitações ou respostas ao código do usuário DNP3 correspondente na outra extremidade.
Mais será dito sobre tipos de dados e camadas de software posteriormente, mas primeiro queremos examinar algumas arquiteturas de sistema típicas onde o DNP3 é usado.
Arquitetura do Sistema
A Figura 2 mostra as arquiteturas de sistemas comuns em uso atualmente. Na parte superior, há um sistema simples, um para um, com uma estação mestre e uma estação remota. A conexão física entre as duas normalmente é uma linha telefônica dedicada ou discada.
O segundo tipo de sistema é conhecido como projeto multiponto. Uma estação mestre se comunica com vários dispositivos de estação remota. As conversas geralmente ocorrem entre a estação mestre e uma estação remota por vez. A estação mestre solicita dados da primeira estação remota, em seguida, passa para a próxima estação remota para obter seus dados e interroga continuamente cada estação remota em uma ordem de rodízio.
O meio de comunicação é uma linha telefônica multiponto, cabo de fibra óptica ou rádio. Cada estação remota pode ouvir mensagens da mestre e só pode responder às mensagens endereçadas a si mesma. As estações remotas podem ou não ser capazes de ouvir umas às outras.
Em algumas formas multiponto, as comunicações são ponto a ponto. Uma estação pode operar como mestre para coletar informações ou enviar comandos para a estação remota em outra estação. E então, pode mudar de função para se tornar uma estação avançada para outra estação.
A linha do meio na Figura 2 mostra um sistema do tipo hierárquico em que o dispositivo no meio é uma estação remota para o mestre à esquerda e é um mestre em relação à estação remota à direita. O dispositivo do meio é frequentemente denominado sub-mestre.
Ambas as linhas na parte inferior da Figura 2 mostram aplicações de concentradores de dados e conversores de protocolo. Um dispositivo pode coletar dados de várias estações remotas no lado direito da figura e armazená-los em seu banco de dados, onde podem ser recuperados por uma estação mestre no lado esquerdo da figura. Esse projeto é frequentemente visto em subestações onde o concentrador de dados coleta informações de dispositivos inteligentes locais para transmissão à estação mestre.
TCP/IP
Muitos fornecedores oferecem produtos que operam usando TCP/IP para transportar mensagens DNP3 em vez da mídia discutida acima. Quadros da camada de enlace, sobre os quais ainda não falamos, são incorporados em pacotes TCP/IP. Essa abordagem permitiu que o DNP3 aproveitasse a tecnologia da Internet e permitiu a coleta e o controle econômicos de dados entre dispositivos amplamente separados.
Mais sobre Camadas
Os circuitos de comunicação entre os dispositivos são frequentemente imperfeitos. Eles são suscetíveis a ruídos e distorções de sinal. O software DNP3 é dividido em camadas para fornecer transmissão de dados confiável e implementar uma abordagem organizada para a transmissão de dados e comandos. A Figura 3 mostra a divisão em camadas que não foi mostrada na Figura 1.
Responsabilidade da Camada de Enlace
A camada de enlace tem a responsabilidade de tornar o enlace físico confiável. Ela faz isso por meio da detecção de erros e da detecção de quadros duplicados. A camada de enlace envia e recebe pacotes, que na terminologia DNP3, são chamados de quadros. Às vezes, a transmissão de mais de um quadro é necessária para transportar todas as informações de um dispositivo para outro.
Um quadro DNP3 consiste em um cabeçalho e uma seção de dados. O cabeçalho especifica o tamanho do quadro, contém informações de controle do enlace de dados e identifica os endereços dos dispositivos de origem e destino DNP3. A seção de dados é comumente chamada de carga útil e contém os dados transmitidos pelas camadas superiores.
Cada quadro começa com dois bytes de sincronização que ajudam o receptor a determinar onde o quadro começa. O comprimento especifica o número de octetos no restante do quadro, sem incluir os octetos de verificação CRC. O octeto de controle de enlace é usado pelas camadas de enlace de envio e recebimento para coordenar suas atividades.
Endereçamento
O endereço de destino especifica qual dispositivo DNP3 deve processar os dados, e o endereço de origem identifica qual dispositivo DNP3 enviou a mensagem. Ter endereços de destino e de origem satisfaz pelo menos um requisito para comunicações ponto a ponto, pois o receptor sabe para onde direcionar suas respostas. 65.520 endereços individuais estão disponíveis. Cada dispositivo DNP3 deve ter um endereço exclusivo dentro do conjunto de dispositivos que enviam e recebem mensagens entre si. Três endereços de destino são reservados pelo DNP3 para denotar uma mensagem de chamada geral; ou seja, o quadro deve ser processado por todos os dispositivos DNP3 receptores. Um endereço é um endereço universal, cujos detalhes não são fornecidos aqui, e doze endereços são reservados para necessidades especiais no futuro.
Verificações de CRC
A carga útil de dados no quadro de enlace contém um par de octetos CRC para cada 16 octetos de dados. Isso fornece um alto grau de garantia de que erros de comunicação podem ser detectados. O número máximo de octetos na carga útil de dados é 250, sem incluir os octetos CRC. (O comprimento máximo do quadro da camada de enlace é de 292 octetos, se todos os octetos CRC e de cabeçalho forem contados.)
Confirmação da Camada de Enlace
O termo "confirmação da camada de enlace" é frequentemente ouvido quando se discute DNP3. Um recurso da camada de enlace do DNP3 é a capacidade do transmissor do quadro solicitar ao receptor a confirmação de que o quadro chegou. O uso desse recurso é opcional e frequentemente não é empregado porque existem outros métodos para confirmar o recebimento de dados. Ele fornece um grau extra de garantia de comunicações confiáveis. Se uma confirmação não for recebida, a camada de enlace pode tentar a transmissão novamente. Algumas desvantagens de
usar a confirmação da camada de enlace são o tempo extra necessário para mensagens de confirmação e a espera por múltiplos timeouts quando as tentativas são configuradas.
Camada de Transporte
A camada de transporte tem a responsabilidade de dividir mensagens longas da camada de aplicação em pacotes menores, dimensionados para a camada de enlace transmitir e, ao receber, remontar quadros em mensagens mais longas da camada de aplicação. No DNP3, a camada de transporte é incorporada à camada de aplicação. A camada de transporte requer apenas uma sobrecarga de um único octeto para realizar seu trabalho.
Portanto, como a camada de enlace pode manipular apenas 250 octetos de dados, e um deles é usado para a função de transporte, cada quadro da camada de enlace pode conter até 249 octetos da camada de aplicação.
Fragmentos da Camada de Aplicação
As mensagens da camada de aplicação são divididas em fragmentos. O tamanho máximo do fragmento é determinado pelo tamanho do buffer do dispositivo receptor. O intervalo normal é de 2048 a 4096 bytes. Uma mensagem maior que um fragmento requer múltiplos fragmentos. A fragmentação das mensagens é responsabilidade da camada de aplicação.
Observe que um fragmento da camada de aplicação de tamanho 2048 deve ser dividido em 9 quadros pela camada de transporte, e um fragmento de tamanho 4096 precisa de 17 quadros. Curiosamente, a experiência demonstrou que as comunicações às vezes são mais bem-sucedidas para sistemas que operam em ambientes com alto ruído se o tamanho do fragmento for significativamente reduzido.
Dados Estáticos e de Eventos
A camada de aplicação trabalha em conjunto com as camadas de transporte e enlace para permitir comunicações confiáveis. Ela fornece funções padronizadas e formatação de dados com as quais a camada de usuário acima pode interagir. Antes que funções, grupos de dados e variações possam ser discutidos, os termos estático, eventos e classes precisam ser abordados.
No DNP3, o termo estático é usado com dados e se refere ao valor presente. Assim, dados de entrada binários estáticos referem-se ao estado atual ligado ou desligado de um dispositivo biestado. Dados de entrada analógicos estáticos contêm o valor de um analógico no instante em que são transmitidos. Uma possibilidade que o DNP3 permite é solicitar alguns ou todos os dados estáticos em um dispositivo remoto.
Os eventos do DNP3 estão associados a algo significativo acontecendo. Exemplos são mudanças de estado, valores excedendo algum limite, instantâneos de dados variáveis, dados transitórios e informações recém-disponíveis. Um evento ocorre quando uma entrada binária muda de um estado ligado para um desligado ou quando um valor analógico muda mais do que seu limite de banda morta configurado. O DNP3 oferece a capacidade de relatar eventos com e sem registros de tempo para que, se desejado, o mestre tenha as informações para gerar um relatório de sequência temporal.
A camada de usuário do mestre pode direcionar o DNP3 para solicitar eventos. Normalmente, um mestre é atualizado mais rapidamente se passar a maior parte do seu tempo pesquisando eventos da estação remota e apenas ocasionalmente solicitar dados estáticos como medida de integridade. A razão para as atualizações serem mais rápidas é porque o número de eventos gerados entre as interrogações da estação remota é pequeno e, portanto, menos dados precisam ser retornados ao mestre.
O DNP3 vai um passo além ao classificar os eventos em três classes. Quando o DNP3 foi concebido, os eventos de classe 1 eram considerados como tendo maior prioridade do que os eventos de classe 2, e os de classe 2 eram maiores do que os de classe 3. Embora esse esquema ainda possa ser configurado, alguns usuários do DNP3 desenvolveram outras estratégias mais favoráveis à sua operação para atribuir eventos às classes. A camada de usuário pode solicitar à camada de aplicação que pesquise eventos de classe 1, 2 ou 3, ou qualquer combinação delas.
Variações
O DNP3 possui recursos para representar dados em diferentes formatos. A análise dos formatos de dados analógicos é útil para compreender a flexibilidade do DNP3.
Dados analógicos estáticos, de valor presente, podem ser representados por números de variação da seguinte forma:
Um valor inteiro de 32 bits com sinalizador (flag)
Um valor inteiro de 16 bits com sinalizador
Um valor inteiro de 32 bits
Um valor inteiro de 16 bits
Um valor de ponto flutuante de 32 bits com sinalizador
Um valor de ponto flutuante de 64 bits com sinalizador
O sinalizador mencionado é um único octeto com campos de bits que indicam se a fonte está on-line, se a fonte de dados foi reiniciada, se a comunicação com uma fonte a jusante foi perdida, se os dados foram forçados e se o valor está acima da faixa. Nem todos os dispositivos DNP3 podem transmitir ou interpretar todas as seis variações. Posteriormente, serão discutidos os níveis do DNP3 , mas, por enquanto, basta dizer
que os dispositivos DNP3 devem ser capazes de transmitir as variações mais simples para que qualquer receptor possa interpretar o conteúdo.
Dados analógicos de eventos podem ser representados por estas variações:
Um valor inteiro de 32 bits com sinalizador
Um valor inteiro de 16 bits com sinalizador
Um valor inteiro de 32 bits com sinalizador e hora do evento
Um valor inteiro de 16 bits com sinalizador e hora do evento
Um valor de ponto flutuante de 32 bits com sinalizador
Um valor de ponto flutuante de 64 bits com sinalizador
Um valor de ponto flutuante de 32 bits com sinalizador e hora do evento
Um valor de ponto flutuante de 64 bits com sinalizador e hora do evento
O sinalizador (flag) possui os mesmos campos de bits das variações estáticas.
Grupos
Observando as variações acima, parece que os eventos analógicos das variações 1 e 2 não podem ser diferenciados dos valores analógicos estáticos das variações 1 e 2. O DNP3 resolve esse problema atribuindo números de grupo. Os valores analógicos estáticos são atribuídos como grupo 30, e os valores analógicos de eventos são atribuídos como grupo 32. Os valores analógicos estáticos, grupo 30, podem ser formatados em uma de 6 variações, e os valores analógicos de eventos, grupo 32, podem ser formatados em uma de 8 variações.
Quando uma estação remota DNP3 transmite uma mensagem contendo dados de resposta, a mensagem identifica o número do grupo e a variação de cada valor dentro da mensagem. Números de grupo e variação também são atribuídos a contadores, entradas binárias, controles e saídas analógicas. De fato, todos os tipos e formatos de dados válidos no DNP3 são identificados por números de grupo e variação. Definir os grupos e variações permitidos ajuda o DNP3 a garantir a interoperabilidade entre os dispositivos. A documentação básica do DNP3 contém uma biblioteca de grupos válidos e suas variações.
Objetos
Quando dados de um índice são transmitidos pela rede, o remetente deve codificar adequadamente as informações para permitir que um dispositivo receptor analise e interprete adequadamente esses dados. Os bits e bytes de cada índice que aparece na mensagem são chamados de objeto. Ou seja, os objetos na mensagem são a representação codificada dos dados de um ponto ou outra estrutura, e o formato do objeto depende do grupo e do número de variação escolhidos.
Leitura de Dados
A camada de usuário do mestre formula sua solicitação de dados da estação remota informando à camada de aplicação qual função executar, como leitura, e especificando os tipos de dados que deseja da estação remota. A solicitação pode especificar quantos objetos deseja ou pode especificar objetos específicos ou um intervalo de objetos do número de índice X ao número de índice Y.
A camada de aplicação então passa a solicitação pela camada de transporte até a camada de enlace que, por sua vez, envia a mensagem para a estação remota. A camada de enlace na estação remota verifica se há erros nos quadros e os repassa para a camada de transporte, onde a mensagem completa é montada na camada de aplicação da estação remota. A camada de aplicação então informa à sua camada de usuário quais grupos e variações foram solicitados.
As respostas funcionam de forma semelhante, pois a camada de usuário da estação remota busca os dados desejados e os apresenta à camada de aplicação que, por sua vez, usa os números de grupo e variação para formatar os dados da camada de usuário em objetos. Os dados são então repassados para baixo, através
do canal de comunicação e para cima, para a camada de aplicação mestre. Aqui, os objetos de dados são então apresentados à camada de usuário mestre.
Outras Funções
A leitura de dados foi brevemente descrita nos dois parágrafos anteriores, mas o software DNP3 foi projetado para lidar com outras funções. Por exemplo, o mestre pode definir o horário na estação remota. O mestre pode transmitir solicitações de acumulador de congelamento e pode transmitir solicitações para operações de controle e configuração de valores de saída analógica usando sequências de seleção antes de operar ou operação direta.
Respostas Não Solicitadas
Uma área que ainda não foi abordada é a transmissão de mensagens não solicitadas. Este é um modo de operação em que a estação remota transmite espontaneamente uma resposta sem ter recebido uma solicitação específica de dados. Nem todas as estações remotas têm essa capacidade. Este modo é útil quando o sistema possui muitas estações remotas e o mestre requer notificação o mais rápido possível após a ocorrência de uma alteração. Em vez de esperar que um ciclo de polling da estação mestre a resolva, a estação remota simplesmente transmite a alteração.
Antes de configurar um sistema para mensagens não solicitadas, alguns princípios básicos precisam ser considerados. Primeiro, as transmissões espontâneas geralmente devem ocorrer com pouca frequência, caso contrário, muita contenção pode ocorrer, e controlar o acesso à mídia por meio de polling da estação mestre
seria melhor. A segunda questão básica é que a estação remota deve ter alguma maneira de saber se pode transmitir sem interferir na mensagem de outra estação remota. O DNP3 deixa a especificação dos algoritmos para o implementador do sistema.
Níveis de Implementação
Uma última área de discussão envolve os níveis de implementação. A organização DNP3 reconhece que o suporte a todos os recursos do DNP3 não é necessário para todos os dispositivos. Alguns dispositivos são limitados em memória e velocidade e não precisam de recursos específicos, enquanto outros dispositivos devem ter os recursos mais avançados para realizar sua tarefa. O DNP3 organiza a complexidade em três
níveis. No nível mais baixo, nível 1, apenas funções muito básicas devem ser fornecidas e todas as outras são opcionais. O nível 2 lida com mais funções, grupos e variações, e o nível 3 é ainda mais sofisticado. Dentro de cada nível, apenas certas combinações de formatos de solicitação e formatos de resposta são necessárias. Isso foi feito para limitar o código de software em estações mestres e remotas, garantindo, ao mesmo tempo, a interoperabilidade.
Resumo
Já deve estar claro que o DNP3 é um protocolo que se adapta bem ao mundo da aquisição de dados. Ele transporta dados como valores genéricos, possui um rico conjunto de funções e foi projetado para funcionar em uma rede de comunicações de longa distância. A abordagem padronizada de grupos e variações, e as camadas de enlace, transporte e aplicação, além da disponibilidade pública, tornam o DNP3 um protocolo para ser considerado.
Autor:
Ken Curtis da Woodland Engineering escreveu este artigo para ajudar as muitas pessoas que estão começando ou considerando o DNP3 para suas operações. Ken é engenheiro consultor. Mike Thesing, da Advanced Control Systems, forneceu valiosa assistência de edição.
Ken can be reached at wdlndengrg@earthlink.net.
DNP Users Group:
Mail Address: DNP Users Group
PO Box 43075, DVPO
Calgary, AB T2J 7A7
Canada
Fax: 403-271-1319
Email: admin@dnp.org
Website: www.
Nesta página: