sábado, 23 de novembro de 2013

3 - DESENVOLVIMENTO

     DNP3 foi originalmente concebido com base em três camadas do modelo OSI de sete camadas: camada de aplicação, camada de enlace de dados e de camada física. A camada de aplicação é baseada em objetos para a maioria dos formatos de dados genéricos. A camada de enlace de dados fornece vários métodos de recuperação de dados, tais como sondagens para as aulas e as variações de objetos. A camada física utiliza mais comumente redes RS-232, RS-485 ou interface de rádio.
     A estrutura simples de 3 camadas (EPA) também reduz a necessidade dos usuários finais compreender plenamente o protocolo para ser capaz de usar DNP3. Uma boa compreensão da camada de aplicação é geralmente tudo que é necessário para alcançar a funcionalidade razoável de DNP3.

O EPA é uma versão simplificada do modelo OSI, que trabalha apenas com três camadas: 

  • Física 
  • Enlace de dados
  • Aplicação

Figura 3 - Níveis do Protocolo ISA/EPA
Fonte: Micro-designs, 2010

3.1. Camada Física

     Esta camada correlaciona a parte física, sobre o qual o protocolo é comunicado. Normalmente o protocolo DNP3 é especificado sobre uma camada física serial simples como: RS-232 ou RS-485 utilizando por meio físico cabeamento de cobre, fibra óptica, transmissão por rádio, satélite ou ethernet.


3.2. Camada Enlace

     Esta camada correlaciona a conexão entre transmissores e receptores de informação. Esta camada é muito semelhante às especificações das normas IEC 870-5-1 (1990) e IEC 870-5-2 (1992). Porém, sua principal diferença é o formato do frame. Nesta camada usamos o FT3 para transmissões assíncronas e ao invés de síncronas.



3.3. Camada Pseudo-Transporte

     Esta camada correlaciona a camada de aplicação em diversos enlaces de frames. Essa camada enumera cada enlace de frame determinando o posicionamento de cada enlace de frame da mensagem. Esta camada também detecta frames descartados.



3.4. Camada Aplicação

     Esta camada recebe as mensagens e exibe ao usuário como uma interface. Quando o volume de dados a ser transmitido em uma única mensagem é maior do que certo valor limite estabelecido pelo tamanho da memória do dispositivo receptor (destino), os dados serão divididos e distribuídos entre várias mensagens menores, denominadas fragmentos, onde serão transmitidos seqüencialmente. Cada um desses fragmentos é como uma mensagem independente com uma indicação contida na própria mensagem - com exceção da última. 

     Fragmentos vindas de uma estação DNP3 Master são geradas tipicamente por requisições para operações em vários objetos de dados. 

     Fragmentos vindos de estações Slave são tipicamente gerados a partir de respostas a estas requisições. 
     Os fragmentos são também conhecidos por ASDU (Application Service Data Unit). Os fragmentos da camada de aplicação (ASDUs) podem ser enviados com uma requisição de confirmação. Uma confirmação da camada de aplicação indica que uma mensagem, não somente foi recebida, mas também foi interpretada sem erros (por outro lado, uma confirmação da camada de enlace de dados, somente indica que o frame do enlace de dados foi recebido e que a verificação do CRC foi efetuada sem erros).

     Um Slave DNP3 também pode transmitir uma mensagem sem que haja uma requisição do Master. Cada ASDU é prefixado por um cabeçalho, seguido por uma ou mais combinações de objetos ou cabeçalho/objeto. O cabeçalho da camada de aplicação contém um campo de controle e um código de função. O campo de controle contém:


  • Uma indicação se o fragmento é parte de uma mensagem com múltiplos fragmentos;
  • Uma Indicação se uma confirmação da camada de aplicação é necessária para o fragmento;
  • Uma indicação se o fragmento foi ou não solicitado;
  • Um número de sequência do fragmento. 

3.5. Frame no DNP3


     O Frame é um aglomerado de mensagens completas, ordenadas ou não. O tamanho máximo do enlace de frame ou data link frame é de 256 bytes. Cada frame possui um endereçamento de 16 bits e um destino de 16 bits. O comprimento e byte de controle estão contidos em um cabeçalho de 10 bytes. 

     Os valores possíveis do byte de controle são: ACK e NACK. Ou seja, quando uma confirmação é solicitada, o receptor deve responder com um ACK de enlace de frame. Caso contrário, enviará NACK. O DNP3 fornece também a possibilidade de reportar eventos com ou sem “time stamps”, (referência do tempo de ocorrência do evento). 



3.6. Frame no DNP3

DNP3 usa formatação quadro FT3 da IEC.

     Esta seção descreve o formato LPDU. Um quadro é definida como um bloco de cabeçalho de comprimento fixo, seguido por blocos de dados opcionais. Cada bloco tem uma CRC de 16 bits anexado. A IEC especifica que o cabeçalho campos consistem de 2 bytes de início, um octeto comprimento, 1 controle octeto, um endereço de destino e um campo de dados de comprimento fixo opcional usuário. Nesta implementação do campo de dados fixo de utilizador, o comprimento é definido como um endereço de origem que dá a estrutura do quadro DNP3 abaixo:


Figura 4 - Quadro de Frames
Fonte: Chimera Labs, 2009

Tabela 1 - Detalhamento por Frame
Fonte: Chimera Labs, 2009

3.7. Organização da Base de Dados 

     As informações são organizadas em tipos de dados, onde cada tipo de dado representa um grupo de objeto e incluem: 

  • Entradas binárias (apenas leitura de valores de bit único); 
  • Saídas binárias (valores de bit único cujo status pode ser leitura ou que pode ser pulsado ou atribuído diretamente ou através de uma operação SBO); 
  • Entradas analógicas (apenas leitura de valores de bits múltiplos); 
  • Saídas analógicas (valores de bits múltiplos cujos status que podem ser leitura, ou que pode ser controlado diretamente ou por uma operação do SBO); 
  • Contadores; 
  • Hora e data (timestamp??); 
  • Objetos de transferências de arquivos; 
  • Outros 

     Para cada tipo de dado, existe um ou mais ponto de dados. Um ponto de dado é um valor único de dados do tipo especificado pelo grupo do objeto. Dentro de cada grupo de objeto, existem variações que são usadas para indicar diferentes métodos para especificação de dados dentro do grupo de objeto, por exemplo o grupo de entradas analógicas aceita dados como valores integrais de 16-bit com sinal, valores integrais de 32-bit com sinal ou valores de ponto flutuante de 32-bits. 

3.8. Modelo de Relatórios 

     Para melhor entendimento, vamos supor que existam dois grupos de objetos: 

  1. O grupo de objeto 1 representa entradas binárias (informações estáticas);
  2. O grupo de objeto 2 representa variação de dados binários; 

     Quando uma mudança em um ponto do grupo de objeto 1 é detectada, um evento de alteração no grupo de objeto é criada. As alterações detectadas geram mensagens menores e mais eficientes. Esse sistema é chamado de RBE (Report-by-exception). Os grupos de objetos e pontos de dados no DNP3 podem ser organizados em classes, isso permite um método eficiente de requisitar dados. Uma simples e pequena mensagem pode ser enviada para buscar todas as informações em uma classe específica. Esse procedimento é conhecido como Scanning for Classes Data. 

São definidas 4 classes no DNP3. 

     - Classe 0 representa informação estática. 

     - Classes 1(++) a 3(--) representam diferentes prioridades para mudança de evento.