Protocolos / DNP3

Class 2 — eventos no DNP3: conceito, função e onde se aplica

Class 2 — eventos no DNP3: conceito, função e onde se aplica. Entenda o mecanismo, os parâmetros relevantes, como validar em campo e quais evidências usar no diagnóstico.

13 min de leituraPublicado em 25/08/2026
Ilustração técnica autoral para Class 2 — eventos no DNP3: conceito, função e onde se aplica, destacando o fluxo e os elementos centrais do assunto.
Ilustração técnica autoral do Portal da Automação, criada para o foco específico deste artigo.

DNP3 serial: como ler o quadro e a pilha

Diagrama do quadro DNP3 serial com Start, Length, Link Control, endereços, CRC, User Data e pilha de funções.
Diagrama próprio do Portal da Automação. Use-o como mapa durante configuração, captura e troubleshooting.

Como ler esta figura

Start 0x05 0x64

Delimita o início de um frame DNP3. É a primeira evidência de que o receptor está vendo um quadro com framing DNP3 válido.

Na implementação: Se a sequência não aparece onde deveria, verifique serial, direção TX/RX, conversor e captura antes de mexer em objetos ou polling.

Length

Define o comprimento indicado pelo frame. Tamanho incoerente ou quadro truncado costuma revelar problema abaixo da aplicação.

Na implementação: Compare o valor declarado com os bytes realmente recebidos quando houver timeouts somente em respostas maiores.

Link Control

Indica direção e função da camada de enlace. Não confunda esse campo com o Function Code da camada de aplicação.

Na implementação: Use-o para separar falha de enlace, confirmação e estado de link de uma falha de READ/OPERATE/UNSOLICITED.

Destination / Source

São endereços lógicos DNP3. Eles continuam existindo mesmo quando o transporte é TCP/IP.

Na implementação: Uma conexão TCP pode estar estabelecida e ainda assim não haver resposta de aplicação se os endereços DNP3 não coincidirem.

CRC

Protege o cabeçalho e blocos de dados contra corrupção.

Na implementação: CRC recorrente pede análise de ruído, polaridade RS-485, aterramento, baud/paridade e comportamento de conversores/radios.

User Data

Transporta fragmentos que chegam à aplicação: objetos, eventos, confirmações, comandos e informações internas.

Na implementação: Depois de provar o enlace, é aqui que Group/Variation/Qualifier, classes, IIN e Function Codes passam a dominar o diagnóstico.

Objetos DNP3 frequentes no campo

GroupUsoO que conferir na captura
G1 / G2Binary Input estático / eventoVariation, flags, índice e timestamp do evento quando aplicável.
G10 / G12Binary Output Status / CROBEstado retornado, Function Code de controle e status da operação.
G20 / G22Counter estático / eventoLargura do contador, flags, índice e transição que gerou evento.
G30 / G32Analog Input estático / eventoFormato inteiro/float, flags, deadband e timestamp quando previsto.
G50Time and DateValor temporal, origem do sincronismo e coerência com SOE.
G60Class dataClasses solicitadas, eventos pendentes e relação com IIN1.1–IIN1.3.

Matriz específica — Class 2 — eventos / fundamentos

Campo/elementoValor ou representaçãoComo fechar a evidência
Class 0 · fundamentosdados estáticosIntegrity/Class 0 após conexão/restart.
Class 1 · fundamentoseventos prioritáriosGerar evento e medir tempo até leitura/ack.
Class 2 / 3 · fundamentoseventos intermediários/menoresGerar rajada e validar fila/ordem.
IIN1.1–1.3 · fundamentoseventos pendentesConferir antes e depois dos polls.

A matriz foi escolhida pelo foco “Class 2 — eventos” e pela lente “fundamentos”; referências normativas e limites de fabricante continuam prevalecendo.

SCADA/IED — campos obrigatórios para “Class 2 — eventos”

Campo/etapaExemplo de evidênciaFalha concreta
Valor brutocontador/registro/objeto recebidoEscala errada mascarada pela IHM.
Scaling + unidadeganho, offset, EUValor numericamente plausível porém incorreto.
Qualitygood/bad/invalid/blocked/substituted conforme protocoloSCADA exibe dado sem indicar validade.
Source timestamptempo gerado no IED/RTUSOE fora de ordem por relógio ou perda de timestamp.
Receive/display timetempo no FEP/SCADALatência de transporte/processamento.
Command lifecycleenvio, ack, atuação e retornoAck de protocolo sem atuação física.

Mapa técnico de Class 2 — eventos: quem produz, quem consome e o que pode falhar

Classes 1, 2 e 3 agrupam eventos para permitir prioridades e estratégias de coleta diferentes. O significado operacional de cada classe é decisão de engenharia: por exemplo, mudanças críticas podem ficar em Class 1 e dados de menor urgência em classes posteriores.

Para aprender Class 2 — eventos sem depender de uma tela específica de fabricante, separe função, entradas, saídas e dependências. Em DNP3, os pontos mais próximos deste recorte são Analog Input, Analog Output, Octet String. O leitor iniciante deve conseguir dizer quem produz a informação e quem a usa; o leitor experiente deve conseguir apontar o limite entre comportamento normal, exceção e implementação particular do equipamento.

A cadeia causal de Class 2 — eventos: o que muda e onde observar

Dimensione buffers por tipo de objeto e taxa esperada de mudança, não apenas pelo número normal de pontos. Documente limites, política de overflow, deadband dos analógicos, frequência de polls e classes habilitadas para unsolicited.

Implemente primeiro uma troca mínima e conhecida entre as duas pontas. Depois acrescente eventos, exceções, temporização e funções opcionais. Uma sessão estabelecida não é critério suficiente: o dado precisa manter tipo, qualidade, endereço, sequência e tempo até o destino. Durante o estudo, acompanhe Frozen Counter, Analog Input, Analog Output, Octet String como uma cadeia causal. Para cada item, pergunte o que o altera, como aparece no tráfego ou no equipamento e qual seria o primeiro sintoma se estivesse incorreto.

  • Frozen Counter — defina primeiro o que representa em DNP3 e qual elemento produz ou consome essa informação; depois identifique em que condição ele muda.
  • Analog Input — relacione o valor ou estado ao efeito sobre Class 2 — eventos; registre também qual campo permite confirmar que a interpretação está correta.
  • Analog Output — na configuração, verifique dependências nas duas pontas e evite copiar valor de outro projeto sem comparar topologia, versão e capacidade do equipamento.
  • Octet String — no diagnóstico, associe pelo menos um sintoma de configuração errada e uma evidência que diferencie esse sintoma de falha física ou de rede.
  • Time and Date — no comissionamento, crie um estímulo que faça o item mudar de forma previsível e registre antes/depois, horário e resposta observada.

Da origem ao efeito: sequência e estados de Class 2 — eventos

O fundamento de Class 2 — eventos aparece nas transições. Acompanhe uma operação normal do início ao fim e marque quando Frozen Counter e Analog Input mudam. Depois repita mentalmente o fluxo com perda de comunicação, reinício ou dado inválido. Essa comparação revela quais campos representam estado e quais apenas transportam informação.

Neste recorte de Class 2 — eventos, trate Frozen Counter, Analog Input e Analog Output como três pontos de prova. Explique o que cada um representa, o que deveria acontecer antes e depois de uma mudança e qual evidência seria incompatível com a hipótese inicial. Assim o texto permanece útil para implementação e troubleshooting.

  • Descrever a sequência normal de Class 2 — eventos
  • Descrever uma exceção sem recorrer a “reiniciar e testar”
  • Identificar o papel de Frozen Counter
  • Identificar o papel de Analog Input

Class 2 — eventos em projeto real: como decidir sem copiar configuração

Imagine uma integração nova em que Class 2 — eventos precisa funcionar entre equipamentos de fabricantes diferentes dentro de DNP3. Comece por uma transação mínima e observável nas duas pontas. Acompanhe Frozen Counter, Analog Input e Analog Output, além de endereço/identidade, sequência e tempo. Depois introduza uma única exceção — perda do enlace, reinício, evento pendente ou função não suportada — e observe qual estado muda primeiro. Esse exercício mostra se a interoperabilidade existe no mecanismo ou apenas na condição ideal.

O aceite de Class 2 — eventos precisa responder quem inicia a transação, qual resposta confirma Frozen Counter, como Analog Input se comporta em exceção e qual log ou captura prova Analog Output. Esses critérios tornam o artigo útil tanto na configuração inicial quanto anos depois, quando outra equipe precisar comparar a ocorrência com o baseline.

  • Definir uma condição normal de Class 2 — eventos e salvar a evidência associada a Frozen Counter.
  • Escolher uma única variável relacionada a Analog Input e prever o efeito antes de alterar.
  • Repetir o mesmo teste e comparar Analog Output nas mesmas medições ou campos.
  • Registrar o critério que permite aceitar, rejeitar ou reverter a configuração de Class 2 — eventos.

Como demonstrar que Class 2 — eventos foi implementado corretamente

Gere rajadas controladas acima da condição normal, confirme contagem e ordem dos eventos e observe flags/diagnósticos antes de limpar a fila. O teste deve demonstrar o que ocorre perto do limite.

Defina evidência antes de testar Class 2 — eventos. Para esta categoria, sinais úteis incluem endereço, campo, estado, sequência, timestamp, qualidade. O teste deve ter estado inicial conhecido, estímulo reproduzível e resultado esperado. Quando houver dois equipamentos, registre os dois lados; quando houver gateway, registre também a transformação intermediária.

  • Validar Frozen Counter em condição normal
  • Forçar uma condição degradada ligada a Analog Input
  • Confirmar recuperação sem perder estado, evento ou evidência relevante
  • Salvar configuração, logs/captura e horário do teste como baseline

Árvore de falhas de Class 2 — eventos: onde procurar antes de alterar parâmetros

Eventos perdidos durante indisponibilidade com valor final correto são sinal clássico de fila insuficiente, overflow, classe não coletada ou confirmação mal resolvida. Aumentar apenas a frequência de ping não corrige esse mecanismo.

Não conclua a partir do sintoma sozinho. Para Class 2 — eventos, cruze pelo menos duas fontes de evidência e procure a primeira divergência. Se Frozen Counter, Analog Input, Analog Output estão corretos mas o resultado final continua errado, avance para a próxima fronteira do sistema em vez de alterar parâmetros já comprovados.

  • Frozen Counter: registre um caso saudável, um caso com falha e a diferença objetiva em estado.
  • Analog Input: registre um caso saudável, um caso com falha e a diferença objetiva em sequência.
  • Analog Output: registre um caso saudável, um caso com falha e a diferença objetiva em timestamp.
  • Octet String: registre um caso saudável, um caso com falha e a diferença objetiva em qualidade.

Class 2 — eventos: dados exclusivos deste recorte (fundamentos)

Em Class 2 — eventos, Class 0 representa dados estáticos e Classes 1/2/3 organizam eventos conforme a política do projeto. IIN1.1, IIN1.2 e IIN1.3 sinalizam eventos pendentes dessas classes. O teste deve acumular eventos, interromper comunicação, recuperar e provar que a fila drena sem overflow nem perda da ordem temporal.

Nos fundamentos de Class 2 — eventos, acompanhe a transição que altera Class 0 e confirme como Class 1 reage antes, durante e depois do evento.

  • Class 0: dados estáticos. Integrity/Class 0 após conexão/restart.
  • Class 1: eventos prioritários. Gerar evento e medir tempo até leitura/ack.
  • Class 2 / 3: eventos intermediários/menores. Gerar rajada e validar fila/ordem.
  • IIN1.1–1.3: eventos pendentes. Conferir antes e depois dos polls.

Class 2 — eventos: objeto DNP3 em Group/Variation, qualifier e índice — Class 2 — eventos / fundamentos

Nos fundamentos de Class 2 — eventos, trate Counter como parte de uma sequência causal: condição inicial, transição, campo alterado e reação do outro lado. Para Class 2, a requisição por classe usa DNP3 Group 60 Variation 3 (G60v3) e o bit IIN1.2 sinaliza eventos Class 2 pendentes; acumule eventos operacionais, leia a classe e confirme drenagem da fila sem alterar a ordem temporal. O ponto DNP3 só é interpretável quando Group, Variation, qualifier e faixa/índice são lidos em conjunto. Group 1 representa Binary Input estático e Group 2 seus eventos; Group 10 representa Binary Output Status e Group 12 Control Relay Output Block; Group 20/22 tratam Counter estático/evento; Group 30/32 representam Analog Input estático/evento. A Variation define representação e presença de flags/timestamp, portanto dois equipamentos podem “ter o mesmo ponto” e ainda assim discordar do formato aceito. O critério de encerramento para Class 2 — eventos em fundamentos é obter o mesmo resultado em novo teste de Counter, mantendo o ponto de medição e a condição inicial.

O mecanismo de Class 2 — eventos deve ser lido a partir de Analog Output; observe qual estado antecede a mudança e qual confirmação prova que ela terminou. No diagnóstico de Class 2 — eventos, capture a requisição e a resposta e confira Function Code, Group, Variation, qualifier e range. Object Unknown ou Parameter Error no IIN frequentemente nasce exatamente dessa combinação. Em gateway, preserve uma tabela explícita entre o objeto DNP3 recebido e o tipo/qualidade/timestamp entregue ao SCADA. Para este artigo de Class 2 — eventos, a evidência ligada a Analog Output deve ser armazenada com horário, origem e condição de teste, permitindo comparação posterior.

  • Class 2 — eventos · fundamentos · Counter: Exemplo: G1/G2 separa Binary Input estático de evento; G30/G32 faz o mesmo para Analog Input.
  • Class 2 — eventos · fundamentos · Frozen Counter: Conferir se a Variation usada no evento inclui flags e/ou tempo conforme a necessidade de SOE.
  • Class 2 — eventos · fundamentos · Analog Input: Registrar qualifier e range porque eles definem como índices/contagens são codificados.
  • Class 2 — eventos · fundamentos · Analog Output: Em multivendor, validar objetos efetivamente suportados no Device Profile.

Class 2 — eventos: valor, qualidade, tempo e ciclo de comando ponta a ponta — Class 2 — eventos / fundamentos

O mecanismo de Class 2 — eventos deve ser lido a partir de Variation; observe qual estado antecede a mudança e qual confirmação prova que ela terminou. Um ponto SCADA não é apenas um valor. Para Class 2 — eventos, registre endereço/tag de origem, valor bruto, escala/unidade, quality, timestamp de origem, timestamp de recepção e timestamp de apresentação. Deadband deve ser expressa na unidade ou porcentagem definida e testada em torno do limiar; SOE exige preservar a ordem pelo tempo de origem, não pela ordem de chegada ao servidor. Se Variation não reproduzir o comportamento esperado em Class 2 — eventos, a hipótese deve ser revista antes de alterar outra camada do sistema.

Para explicar por que Class 2 — eventos funciona, use número máximo de eventos como ponto de partida e siga a mudança até o efeito mensurável no protocolo ou processo. Comandos precisam ser separados em intenção, envio pelo protocolo, confirmação de protocolo, atuação do equipamento e retorno de posição. Em religador/IED/RTU, um “operate success” sem mudança do contato ou telemetria não encerra o teste. Em historian, preserve raw value, quality e source timestamp antes de qualquer agregação. Em alarmes, registre condição de entrada, prioridade, debounce/deadband, ack e retorno ao normal. O critério de encerramento para Class 2 — eventos em fundamentos é obter o mesmo resultado em novo teste de número máximo de eventos, mantendo o ponto de medição e a condição inicial.

  • Class 2 — eventos · fundamentos · Time and Date: Telemetria: raw → scaling → engineering unit → quality → source timestamp → SCADA timestamp.
  • Class 2 — eventos · fundamentos · Group: SOE: comparar timestamp de origem e sequência recebida em uma rajada de eventos.
  • Class 2 — eventos · fundamentos · Variation: Comando: request → protocol confirmation → physical action → indication/return.
  • Class 2 — eventos · fundamentos · Index: Historian: validar valor, quality e timestamp antes de compressão/agregação.

Referências técnicas

As explicações do Portal são autorais. Use as fontes oficiais e materiais públicos de implementação abaixo para confirmar edição, escopo, capacidades e comportamento do equipamento utilizado no seu projeto.

Continue estudando

Os próximos conteúdos foram escolhidos pelo mecanismo deste artigo. A ideia é formar uma sequência técnica, não apenas listar páginas do mesmo tema.

Ver todas as trilhas de estudo →