Objetos DNP3: Group, Variation, Qualifier e índices
Aprenda a ler objetos DNP3 de verdade: Group, Variation, Qualifier, range, prefixo de índice, objetos estáticos e de evento, além de exemplos para binários, analógicos, contadores e classes.
Famílias DNP3 comuns em telecontrole
| Group/família | Uso típico | Relação prática |
|---|---|---|
| Group 1 — Binary Input | estado binário estático | estado atual de contato/alarm/status |
| Group 2 — Binary Input Event | evento binário | mudança registrada, com representação definida pela Variation |
| Group 3/4 — Double-Bit Binary | estado estático/evento de dois bits | estados de processo com quatro combinações lógicas |
| Group 20/22 — Counter | contador estático/evento | acumuladores e mudanças de contador |
| Group 30/32 — Analog Input | analógico estático/evento | medidas e mudanças significativas |
| Group 60 — Class Data | Class 0/1/2/3 | seleção de dados estáticos ou eventos por classe |
| Group 12 — CROB | controle binário | bloco de comando para operações de saída |
A Variation define a representação concreta. Consulte IEEE 1815 e o Device Profile para a lista suportada pelo equipamento.
Checklist para revisar um objeto capturado
| Campo | Pergunta | Erro que ajuda a detectar |
|---|---|---|
| Group | A família corresponde ao tipo de ponto? | tipo de objeto incorreto |
| Variation | A representação é suportada pelas duas pontas? | incompatibilidade de capacidade |
| Qualifier | A forma de range/índice é aceita? | request malformado ou subconjunto limitado |
| Range/count | A quantidade bate com o pedido? | faixa errada ou resposta truncada |
| Index | O índice mapeia a tag correta? | deslocamento/mapeamento errado |
| Flags/time | Qualidade e timestamp são coerentes? | dado stale, inválido ou SOE incorreto |
O objeto é a unidade semântica do DNP3
Quando um analisador mostra “Group 30 Variation 1” ou “Group 2 Variation 2”, ele não está exibindo um detalhe decorativo. Group identifica uma família de dados e Variation seleciona uma representação definida para aquela família. Em seguida, o qualifier informa como a quantidade ou faixa de objetos é codificada e como os índices aparecem. É essa combinação que permite ao receptor saber quantos pontos existem, quais índices estão presentes e como interpretar seus valores, flags e tempos.
Para engenharia, a consequência é direta: a lista de pontos não deveria registrar apenas “analógico 27”. Ela deve saber que tipo de objeto estático será usado, que tipo de evento pode ser gerado, qual índice representa o ponto, quais flags/qualidade são relevantes, qual classe de evento foi configurada e se há timestamp na representação de evento. O Device Profile da outstation é a fonte operacional para descobrir quais combinações ela realmente suporta.
Group e Variation: família de informação e forma de representação
Groups próximos normalmente representam categorias relacionadas, como valores estáticos e eventos. Um exemplo clássico é Binary Input: Group 1 é usado para dados estáticos e Group 2 para eventos binários. Para Analog Input, Group 30 é a família estática e Group 32 a família de eventos. Contadores usam famílias próprias, assim como estados de saídas e objetos de controle. As variações dentro de cada grupo podem alterar presença de flags, largura, formato numérico ou timestamp.
Isso explica por que “o ponto existe” não garante interoperabilidade. Um master pode solicitar uma Variation específica que a outstation não oferece, ou a outstation pode responder com uma variation compatível diferente quando a requisição permite escolha. Ao integrar equipamentos diferentes, compare o Device Profile, não apenas o nome comercial do protocolo.
Qualifier: como o frame descreve quantidade, faixa e índices
O qualifier acompanha o cabeçalho do objeto e define como o range é representado. Dependendo da forma usada, a mensagem pode indicar um índice inicial e final, uma contagem de objetos ou transportar prefixos de índice junto aos elementos. Essa escolha afeta tamanho e interpretação do payload. Em respostas com eventos esparsos, transportar índices individuais pode ser mais apropriado do que representar uma faixa contínua.
Durante diagnóstico, qualifier incompatível ou mal interpretado pode parecer “pontos deslocados”, quantidade incorreta ou objeto malformado. O analisador deve ser usado para ver o qualifier e os índices decodificados, mas a validação final precisa ser feita contra a IEEE 1815 e o Device Profile. Implementações antigas ou subconjuntos limitados podem aceitar apenas parte das combinações possíveis.
- Group — O que é: família do objeto. Efeito: define o domínio semântico, como Binary Input ou Analog Input. Validar: request/response e Device Profile.
- Variation — O que é: forma específica de codificar o objeto. Efeito: pode alterar flags, tamanho, representação e presença de tempo. Validar: capacidade declarada e captura.
- Qualifier — O que é: regra de range/prefixo do cabeçalho do objeto. Efeito: informa como contar/localizar os objetos. Validar: decodificação, quantidade esperada e índices.
- Range — O que é: intervalo ou quantidade de objetos cobertos. Efeito: limita quais pontos participam da operação. Validar: comparar start/stop ou count com a lista de pontos.
- Index — O que é: identificador numérico da instância do ponto dentro da família. Efeito: liga o valor recebido ao ponto do banco. Validar: mapa de pontos e teste físico/lógico do sinal.
Estático e evento não são duplicatas
O objeto estático representa o estado atual. O objeto de evento representa uma mudança registrada. Se uma entrada digital passou por 0→1→0 durante uma perda de comunicação, o valor estático final pode ser 0; os eventos podem preservar as duas transições, possivelmente com seus tempos. Para análise de ocorrências, essa distinção muda completamente a interpretação.
O mesmo raciocínio vale para analógicos. O valor estático mostra o valor atual, enquanto eventos são gerados conforme a política de mudança, muitas vezes associada a deadband. Portanto, pedir Class 0 e pedir classes de evento são operações complementares. Uma leitura de integridade reconstrói estado; a coleta de eventos reconstrói histórico dentro da capacidade do buffer.
Exemplos de famílias que aparecem em automação elétrica
Algumas famílias são recorrentes em RTUs e IEDs. Binary Input aparece em estados de disjuntor, alarmes e contatos; Double-Bit Binary é útil quando dois bits representam estados como aberto/fechado/intermediário/indeterminado; Analog Input representa medidas; Counter representa acumuladores; Binary Output Status e Analog Output Status representam estados de saídas; Control Relay Output Block é associado à emissão de controles binários. Class Data, no Group 60, é usado para solicitar Class 0 e as classes de evento.
Esses exemplos servem como mapa mental, não como substituto da tabela normativa. Antes de configurar Group/Variation em produção, confirme a edição da IEEE 1815 adotada, o Device Profile do equipamento, o manual do fabricante e o comportamento real em captura.
Como validar um ponto sem depender do nome da tag
Escolha um ponto cuja mudança possa ser provocada com segurança. Registre o índice esperado, o tipo estático, o tipo de evento, classe, escala/unidade quando analógico e deadband se aplicável. Capture uma leitura estática, provoque a mudança e capture o evento. Compare índice, flags, valor e timestamp. Depois confira se a tag correta mudou no SCADA.
Se o índice no DNP3 está correto mas a tag errada muda no SCADA, o problema está no mapeamento acima do protocolo. Se o índice já chega errado do gateway, investigue a tradução. Se a outstation retorna Object Unknown ou Parameter Error, volte à combinação Group/Variation/Qualifier e às capacidades anunciadas. Esse método elimina a troca aleatória de configurações.
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.