Class 1 no DNP3: eventos críticos, latência e recuperação
Entenda o papel da Class 1 no DNP3: critérios de atribuição, IIN1.1, polling, unsolicited, buffers, latência, testes de falha e recuperação.
Class 1 no frame: G60V2 e IIN1.1
Como ler esta figura
01 3C 02 06
Depois do Application Control, a sequência representa READ, Group 60, Variation 2 e Qualifier 0x06 em um pedido de todos os eventos Class 1.
Na implementação: Confirme os limites do fragmento no analisador; os valores mostrados pertencem à camada de aplicação, não ao início do frame de enlace.
IIN1.1
É o bit 1 do primeiro octeto IIN e indica eventos Class 1 disponíveis.
Na implementação: Se permanecer ativo, verifique se o master realmente envia G60V2 e se a resposta é processada/confirmada.
Objetos devolvidos
A resposta contém os grupos e variações reais dos eventos — por exemplo, binários, analógicos ou contadores — e não uma lista de objetos “tipo Class 1”.
Na implementação: Valide Group/Variation, índice, flags e timestamp de cada evento.
Matriz específica da Class 1
| Elemento | Função | Sintoma incorreto | Como provar |
|---|---|---|---|
| Atribuição | direciona eventos à Class 1 | mudança não aparece no scan | configuração + estímulo |
| G60V2 | seleciona eventos Class 1 | backlog não é drenado | PCAP com READ/resposta |
| IIN1.1 | indica pendência Class 1 | master não agenda coleta | resposta e log do scheduler |
| Event Variation | define valor, flags e tempo | hora ou qualidade ausente | Group/Variation no frame |
| Buffer | retém eventos não entregues | perda após indisponibilidade | teste de backlog/overflow |
Critérios de aceitação da Class 1
| Cenário | Estímulo | Resultado | Evidência |
|---|---|---|---|
| Normal | transição crítica | índice, flags e tempo corretos | log + PCAP + SCADA |
| Rajada | transições no pico | sem perda e ordem preservada | contagem e buffer |
| Canal indisponível | eventos durante bloqueio | retenção prevista | antes/depois da reconexão |
| Recuperação | restabelecimento com backlog | IIN limpa após entrega | tarefas e resposta final |
| Overflow em laboratório | exceder capacidade controladamente | alarme e recomposição | IIN, logs e relatório |
Tempos e volumes vêm do requisito do sistema e da capacidade declarada pelo fabricante.
Class 1 é política de coleta, não tipo de dado
No DNP3, Classes 1, 2 e 3 organizam eventos para que o master possa coletá-los com políticas diferentes. A classe não transforma um Binary Input em outro objeto e não substitui Group, Variation, índice, flags ou timestamp. O ponto conserva sua representação; a atribuição a Class 1 apenas informa em qual conjunto de eventos a mudança será disponibilizada.
A norma não determina que toda concessionária coloque exatamente os mesmos pontos na Class 1. Tratar Class 1 como sinônimo de trip é uma convenção frequente, não regra universal. O critério nasce da consequência da demora ou perda, do volume esperado, da capacidade do canal e da estratégia do master.
Do processo ao IIN1.1: ciclo completo do evento
Quando uma mudança atende ao critério de geração — transição digital, incremento de contador ou variação analógica acima do deadband — a outstation cria um registro. Ele associa valor, flags, índice e, quando a Variation permite, timestamp. O evento permanece no buffer até ser entregue e processado conforme as confirmações aplicáveis.
A presença de eventos Class 1 pode ser indicada por IIN1.1. Esse bit é uma indicação, não contém os eventos. Ao detectá-lo, um master configurado para varredura por indicação pode agendar Group 60 Variation 2. Se o master ignora o IIN ou não possui event scan, a informação fica acumulada mesmo com o canal online.
- Geração: a outstation detecta mudança elegível.
- Enfileiramento: o registro entra no buffer da classe do ponto.
- Sinalização: IIN1.1 pode informar eventos Class 1 disponíveis.
- Entrega: polling de classe ou Unsolicited Response transporta os objetos.
- Baixa: o evento deixa de ficar pendente após intercâmbio e confirmações corretos.
Como decidir o que pertence à Class 1
Class 1 deve concentrar informações cujo atraso prejudica decisão, segurança operacional ou reconstrução de ocorrência. Abertura de religador, atuação de proteção, mudança Local/Remote e falha de alimentação auxiliar podem justificar prioridade. Em outra arquitetura, algumas delas podem ter mecanismo distinto; a lista precisa ser formalizada na matriz de pontos.
Evite colocar todo o banco na Class 1. Uma classe superdimensionada perde significado, cria rajadas após reconexão e compete com comandos e integridade. Para cada ponto registre justificativa, taxa de pico, Variation de evento, presença de tempo, retenção e teste.
Polling, unsolicited e os componentes da latência
Com polling, a latência inclui espera até a próxima varredura, fila do master, RTT e duração da resposta. Reduzir o intervalo melhora o pior caso, mas aumenta ocupação e transações vazias. O ajuste deve usar medição real, não valor copiado.
Com unsolicited, a outstation pode iniciar o envio após gerar eventos. O ganho depende de confirmação, retries, atraso de agregação e sessão. Polling de recuperação continua importante: após restart ou perda prolongada, o master precisa reconstruir estado e consumir backlog.
Dimensione o buffer para a indisponibilidade prevista
Como estimativa, use capacidade mínima maior ou igual à taxa de pico multiplicada pela indisponibilidade de projeto, mais margem para rajadas. A conta não é normativa; ela obriga a explicitar hipóteses e comparar o resultado com o Device Profile.
Overflow é grave porque o estado atual pode estar correto enquanto a sequência histórica ficou incompleta. Ao receber Event Buffer Overflow, aplique a estratégia definida, normalmente incluindo integrity scan e registro da lacuna. Preserve IIN, logs e intervalo afetado.
Teste normal, falha e recuperação
No teste normal, provoque transição autorizada e acompanhe criação na outstation, IIN1.1 ou unsolicited, objeto entregue e atualização no SCADA com flags e horário. Repita com eventos próximos para provar a ordem.
No teste de falha, interrompa o canal, gere sequência conhecida e restabeleça. Verifique backlog, confirmações, duplicidades, ordem temporal, limpeza do IIN e preservação após reconexão. Voltar a ficar online não comprova retenção.
Diagnóstico por evidência
Se Class 0 mostra o estado novo mas não há histórico, investigue classe, Variation, deadband, buffer e coleta. Se IIN1.1 permanece, confirme Group 60 Variation 2 e a resposta. Se aparecem duplicidades, compare sequência, retransmissões e timeout.
Se eventos chegam atrasados após interrupção, meça resposta, fragmentação, fila e drenagem. A primeira divergência entre outstation, PCAP, front-end e banco SCADA localiza a camada responsável.
Folha de parâmetros e responsabilidade entre master e outstation
Documente separadamente o que pertence à outstation e ao master. Na remota ficam atribuição de classe por ponto, Variation de evento, deadband, capacidade de buffer, política de unsolicited e temporizações suportadas. No master ficam intervalos de scan, reação aos bits IIN, prioridade da tarefa, timeouts, retries e tratamento de overflow. Valores com o mesmo nome podem existir nas duas pontas e ter funções diferentes.
Registre firmware, edição do Device Profile, unidade de cada tempo e comportamento após restart. Um timeout expresso em milissegundos numa ponta e segundos na outra produz diagnóstico enganoso. A configuração aprovada deve indicar responsável, origem do requisito, valor, faixa permitida, evidência de teste e condição de rollback.
Em sistemas com gateway, acrescente uma terceira coluna. Descubra se ele preserva a classe de origem, recria eventos a partir do banco interno ou altera Group/Variation. Só uma captura antes e depois do gateway prova se a Class 1 atravessou com a mesma semântica.
Referências técnicas e normas
As explicações do Portal são autorais. Normas e fontes oficiais são priorizadas; materiais acadêmicos e documentação pública de fabricantes complementam a implementação e não substituem a edição normativa aplicável ao projeto.
- IEEE 1815-2012 — IEEE Standard for Electric Power Systems Communications—Distributed Network Protocol (DNP3) — IEEE Standards Association. Edição publicada de referência para estrutura, funções, opções interoperáveis e requisitos de conformidade do DNP3.
- IEEE P1815 — Draft Standard for Electric Power Systems Communications—Distributed Network Protocol (DNP3) — IEEE Standards Association. Página oficial do projeto de revisão da norma; útil para acompanhar a evolução do padrão sem substituir a edição publicada aplicável ao equipamento.
- Overview of DNP3 Protocol — DNP Users Group. Visão geral oficial do protocolo e do papel do DNP Users Group como mantenedor do DNP3/IEEE 1815.
- DNP Users Group — Public Documents — DNP Users Group. Documentos públicos, guias, boletins e materiais de implementação e interoperabilidade.
- Understanding DNP3 — Inductive Automation. Material didático complementar sobre conceitos e comportamento de DNP3; não substitui a norma.
- DNP3 — trabalho didático de Redes de Computadores — GTA/UFRJ. Material acadêmico introdutório útil para leitura guiada da arquitetura; deve ser confrontado com IEEE 1815 e documentação atual do fabricante.
- opendnp3 User Guide — Automatak / opendnp3. Guia público de uma implementação amplamente usada, útil para relacionar a norma a parâmetros reais de master e outstation.
- DNP3 Communication Protocol Solutions — Triangle MicroWorks. Referência de implementador para recursos como events, deadbands, unsolicited, time sync, file transfer e ferramentas de teste.
- DNP3 Application Layer Function Codes — Rockwell Automation. Exemplo público de fabricante para Function Codes, incluindo COLD_RESTART, WARM_RESTART e ENABLE/DISABLE_UNSOLICITED.
Continue estudando
Os próximos conteúdos foram escolhidos para formar uma sequência técnica, relacionando fundamento, configuração, diagnóstico e aplicação.