Você está na página 1de 4

DNP3

Arquitetura em Camadas O protocolo DNP3 é implementado em camadas. Ao invés de, porém adotar o protocolo de 7 camadas OSI (Open System Interconnection), o protocolo DNP3 adere a um protocolo simplificado de 3 camadas proposto pela IEC (International Electrotechnical Commission) para implementações mais simples, chamado de EPA (Enhanced Performance Architecture). O DNP3 extende o EPA ao adicionar uma quarta camada de pseudo-transporte que permite segmentação de mensagens. - Camada Física Camada dedicada ao meio físico sobre o qual o protocolo é comunicado - por exemplo lida com o estado do meio (livre ou ocupado) e sincronização ao longo do meio (iniciar e parar). Comunmente o protocolo DNP3 é especificado sobre uma camada física serial simples como RS232 ou RS-485 utilizando por meio físico cabeamento de cobre, fibra óptica, transmissão por rádio ou satélite. Aplicações mais recentes passam a implementar DNP3 sobre Ethernet. - Camada de Conexão de Dados (Data Link) Camada que gerencia a conexão lógica entre transmissores e receptores de informação e melhor as características de erro do canal físico. No DNP3 isso é garantido pelo início de cada data link frame com um cabeçalho de data link e inserindo um CRC de 16-bit a cada 16 bytes do frame. O frame é uma porção da messagem completa comunicada pela camada física. O tamanho máximo do data link frame é de 256 bytes. Cada frame tem endereçamento de origem de 16-bit e outro de 16-bit como destino, que também pode ser um endereço de broadcast (0xffff). A informação do endereço, juntamente com um código inicial de 16-bit, o comprimento do frame, e um byte de controle do data link estão contidos dentro do cabeçalho de 10 bytes do data link. O byte de controle do data link indica o propósito do data link frame e o status do link lógico. Os valores possíveis para o byte de controle do data link são: ACK, NACK, link precisa reinício (reset), link reiniciado (reset), solicitação de confirmação (ACK) do data link frame, solicitação de status do link e depoista do status do link. Quando uma *confirmação de data link* é solicitada, o receptor deve responder com um ACK data link frame se o frame é recebido e passa na verificação de CRC. Se a confirmação do data link não é solicitada, nenhuma resposta do data link é necessária. - Camada de Pseudo-Transporte Camada que segmenta as mensagens da camada de aplicação em diversos data link frames. Para cada frame, essa camada insere um código de função de byte único que indica se o data link frame é o primeiro frame da mensagem, o último frame da mensage ou ambos (para mensagens de um único frame). Este código de função ainda inclui um número de seqüência de frame que incrementa a cada frame e permite a camada de transporte detectar frames descartados. - Camada de Aplicação A camada de aplicação responde a mensagens completas recebidas (e passadas da camada de transporte), e constroi mensagens baseadas na necessidade de ou na disponibilidade de dados de usuário. As mensagens construídas são passadas à camada de pseudo-transporte onde são segmentadas e passadas à camada de data link e, eventualmente, comunicadas sobre a camada física. O comprimento total das mensagens recebidas é indicada pela camada de pseudo-transporte

é uma mensagem de camada de aplicação independente. O cabeçalho de camada de aplicação contém uma indicação se o fragmento é de uma mensagem de múltiplos fragmentos. Alguns exemplos de códigos de função são: . apenas permite uma única requisição de operação nos tipos de dados dentro da mensagem. contém uma indicação se uma confirmação de camada de aplicação foi solicitada pelo fragmento.select-before-operate). porém. múltiplas mensagem podem ser criadas e transmitidas sequencialmente. Uma *confirmação de camada de aplicação* indica que não somente a mensagem foi recebida mas também tratada (parsed) sem erros. .execução direta (para controles sem SBO).confirmar (para confirmação de camada de aplicação). assim. cada um com seu comprimento indicado. Assim como na camada de data link. indica somente que o data link frame foi recebido e passou verificação de erros CRC. . . uma confirmação de camada de data link. Se a quantidade de dados a serem transmitidos excede o tamanho de uma única mensagem da camada de aplicação. ou ACK. contém uma indicação se o fragmento é do tipo não solicitado. e contém um número de camada de aplicação que permite à camada de aplicação receptora detectar fragmentos que estão fora de seqÜência ou fragmentos descartados.congelar e limpar (contadores). Cada fragmento de camada de aplicação inicia com um *cabeçalho de camada de aplicação* seguido de um ou mais combinações de cabeçalho de objeto ou dados de objeto. Enquanto DNP3 permite múltiplos tipos de dados em uma única mensagem.habilitar e desabilitar mensagens não solicitadas.reiniciar (frio e quente??).à medida que gerencia os data link frames. onde cada tipo de dado representa um grupo de objeto e incluem: .atribuir classe. .entradas binárias (apenas leitura de valores de bit único). fragmentos de camada de aplicação podem ser enviados com uma request para confirmação.uma *unsolicited response* (reposta não solicitada). . Fragmentos de camada de aplicação de estações DNP3 Master são tipicamente *requests* (requisições) de operações em objetos de dados e fragmentos de camada de aplicação de estações DNP3 slaves são tipicamente *responses* (retornos) aos requests. Por causa dessa possível fragmentação de dados de aplicação. Cada mensagem. Organização da Base de Dados As informações são organizadas em tipos de dados.selecionar e executar (para controles SBO . . Uma estação DNP3 slave pode também transmitir uma mensagem sem uma request . sua única associação com ourtas mensagens é uma indicação em todas as mensagens menos na última que a informação continua na próxima mensagem. cada mensagem da camada de aplicação é chamada de *fragmento* e a mensagem pode ser de *fragmento único* ou de *múltiplos fragmentos*. O código de função do cabeçalho da camada de aplicação indica o propósito (ou operação requisitada) da mensagem e se aplica a todos os cabeçalhos de objetos e. .ler e escrever. . a toda informação dentro do fragmento de mensagem. Por outro lado.

ou que pode ser controlado diretamente ou por uma operação do SBO). Grupos de objetos e pontos de dados no DNP3 podem ser organizados em classes.hora e data (timestamp??). é possível ter várias alterações para alguns pontos e nenhuma para outros. se presentes. grupos de objetos com informação de mudança. Requisições podem ser: . seguem o anterior continuamente. ou RBE.entradas analógicas (apenas leitura de valores de bits múltiplos). a variação do grupo do objeto e um limite de pontos dentro da variação do grupo de objeto. indicam referências a outros objetos. Exemplo: grupo de objeto 1 representa entradas binárias (informações estáticas). As alterações detectadas geram mensagens menores e mais eficientes. mas separados. O cabeçalho do objeto pode especifica o grupo do objeto. . Um ponto de dado é um valor único de dados do tipo especificado pelo grupo do objeto.objetos de transferências de arquivos.outros. . .. Para cada tipo de dado. Esse esquema é chamado de Report-by-exception. por exemplo o grupo de entradas analógicas aceita dados como valores integrais de 16-bit com sinal. Para uma lista de pontos. Modelo de Relatórios Muitos grupos de objetos têm correspondentes. . existem variações que são usadas para indicar diferentes métodos para especificação de dados dentro do grupo de objeto. . Quando uma mudança em um ponto do grupo de objeto 1 é detectada.de todos os pontos contínuos. A camada de aplicação pode conter múltiplos cabeçalhos de objetos.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).contadores. Cada ponto alterado um timestamp pode ser associado e cada detecção de mudança é considerada um evento de alteração (change event). Alguns códigos de função de cabeçalho de camada de aplicação. Dentro de cada grupo de objeto. DNP3 permite que faixas de pontos de objeto sejam especificadas de várias maneiras.saídas analógicas (valores de bits múltiplos cujos status que podem ser leitura.de uma quantidade máxima de pontos. existe um ou mais ponto de dados. .com uma lista de pontos. grupo de objeto 2 representa variação de dados binários. se existe ou não informação na mensagem . A cada instante de tempo. o número do ponto precede cada objeto. isso permite um . . as faixas de pontos de objetos tipicamente consistem em uma faixa contínua de pontos com início e fim determinados ou com uma lista de pontos especificada.múltiplos cabeçalhos de objetos. Para respostas.de todos os pontos do grupo. com pontos de início e fim determinados. . . um evento de alteração no grupo de objeto é criada. que representa apenas os pontos que foram alterados especificamente para o grupo de objeto. valores integrais de 32-bit com sinal ou valores de ponto flutuante de 32-bits.

. . Uma simples (e pequena) mensagem pod er enviada para buscar todas as informações em uma classe específica (scanning for classes data).classes 1(++) a 3(--) representam diferentes prioridades para mudança de evento. .classe 0 representa informação estática.método eficiente de requisitar dados. São definidas 4 classes no DNP3.