Mestre secundário no DNP3: conceito, função e onde se aplica
Mestre secundário 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.
DNP3 serial: como ler o quadro e a pilha
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
| Group | Uso | O que conferir na captura |
|---|---|---|
| G1 / G2 | Binary Input estático / evento | Variation, flags, índice e timestamp do evento quando aplicável. |
| G10 / G12 | Binary Output Status / CROB | Estado retornado, Function Code de controle e status da operação. |
| G20 / G22 | Counter estático / evento | Largura do contador, flags, índice e transição que gerou evento. |
| G30 / G32 | Analog Input estático / evento | Formato inteiro/float, flags, deadband e timestamp quando previsto. |
| G50 | Time and Date | Valor temporal, origem do sincronismo e coerência com SOE. |
| G60 | Class data | Classes solicitadas, eventos pendentes e relação com IIN1.1–IIN1.3. |
Matriz específica — Mestre secundário / fundamentos
| Campo/elemento | Valor ou representação | Como fechar a evidência |
|---|---|---|
| Source / Destination · fundamentos | endereço DNP | Confirmar master/outstation corretos. |
| TCP/UDP 20000 · fundamentos | transporte típico | Confirmar porta efetivamente configurada. |
| Function Code · fundamentos | ação de aplicação | Relacionar request/response e efeito. |
| Group/Variation + IIN · fundamentos | objeto + estado | Explicar dado e condição da outstation. |
A matriz foi escolhida pelo foco “Mestre secundário” e pela lente “fundamentos”; referências normativas e limites de fabricante continuam prevalecendo.
SCADA/IED — campos obrigatórios para “Mestre secundário”
| Campo/etapa | Exemplo de evidência | Falha concreta |
|---|---|---|
| Valor bruto | contador/registro/objeto recebido | Escala errada mascarada pela IHM. |
| Scaling + unidade | ganho, offset, EU | Valor numericamente plausível porém incorreto. |
| Quality | good/bad/invalid/blocked/substituted conforme protocolo | SCADA exibe dado sem indicar validade. |
| Source timestamp | tempo gerado no IED/RTU | SOE fora de ordem por relógio ou perda de timestamp. |
| Receive/display time | tempo no FEP/SCADA | Latência de transporte/processamento. |
| Command lifecycle | envio, ack, atuação e retorno | Ack de protocolo sem atuação física. |
Antes de configurar Mestre secundário: função, fronteiras e dependências
No DNP3, o master inicia solicitações, recebe respostas e normalmente concentra a visão do sistema no SCADA ou front-end. A existência de master primário e secundário exige definir claramente quem pode executar controles, sincronizar horário e habilitar unsolicited para evitar comportamento ambíguo.
Para aprender Mestre secundário 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 evento confirmado, evento não confirmado, timestamp. 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.
Mecanismo de Mestre secundário: campos, estados e transições que importam
Documente endereço DNP, IP ou porta serial, política de polling, capacidade de comando, origem de sincronismo e comportamento durante failover. Em arquiteturas redundantes, confirme se os dois masters compartilham a mesma identidade lógica ou utilizam endereços distintos e como a outstation reage à troca.
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 event queue, evento confirmado, evento não confirmado, timestamp 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.
- event queue — defina primeiro o que representa em DNP3 e qual elemento produz ou consome essa informação; depois identifique em que condição ele muda.
- evento confirmado — relacione o valor ou estado ao efeito sobre Mestre secundário; registre também qual campo permite confirmar que a interpretação está correta.
- evento não confirmado — 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.
- timestamp — 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.
- sequência dos eventos — 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.
A cadeia causal de Mestre secundário: o que muda e onde observar
O fundamento de Mestre secundário aparece nas transições. Acompanhe uma operação normal do início ao fim e marque quando event queue e evento confirmado 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.
Para que Mestre secundário seja reproduzível em DNP3, transforme a definição em uma cadeia causa → estado → evidência. Compare event queue em condição normal e degradada, verifique a dependência de evento confirmado e use evento não confirmado como critério de encerramento. O objetivo é justificar a configuração sem depender de “valor que sempre usamos”.
- Descrever a sequência normal de Mestre secundário
- Descrever uma exceção sem recorrer a “reiniciar e testar”
- Identificar o papel de event queue
- Identificar o papel de evento confirmado
Cenário prático: uma decisão de engenharia envolvendo Mestre secundário
Parta de um caso de Mestre secundário que hoje funciona e transforme-o em referência. Capture a troca associada a event queue, registre o comportamento de evento confirmado e identifique como evento não confirmado aparece no equipamento de destino. Em seguida altere uma única condição controlada. A comparação entre os dois casos deve revelar a primeira divergência, evitando que timeout, rede e aplicação sejam ajustados ao mesmo tempo.
Não encerre Mestre secundário com a frase “comunicação OK”. Documente o valor/estado de event queue, a dependência de evento confirmado, o limite aceitável para evento não confirmado e uma evidência de recuperação. Essa combinação separa interoperabilidade funcional de mera conectividade física ou TCP.
- Definir uma condição normal de Mestre secundário e salvar a evidência associada a event queue.
- Escolher uma única variável relacionada a evento confirmado e prever o efeito antes de alterar.
- Repetir o mesmo teste e comparar evento não confirmado nas mesmas medições ou campos.
- Registrar o critério que permite aceitar, rejeitar ou reverter a configuração de Mestre secundário.
Teste de aceitação: evidências que comprovam Mestre secundário
Teste leitura estática, eventos por classe, comando autorizado, perda e retorno de comunicação e transição entre masters. Verifique se uma troca de servidor não duplica comandos nem faz a outstation descartar confirmações esperadas.
Defina evidência antes de testar Mestre secundário. 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 event queue em condição normal
- Forçar uma condição degradada ligada a evento confirmado
- Confirmar recuperação sem perder estado, evento ou evidência relevante
- Salvar configuração, logs/captura e horário do teste como baseline
Diagnóstico de Mestre secundário: a primeira divergência vale mais que o último alarme
Se há comunicação física mas o canal não sobe, compare Source/Destination Address e estado da sessão. Se apenas um servidor funciona, procure conflito de endereço, sessão simultânea não suportada, política de unsolicited ou permissões de controle.
Não conclua a partir do sintoma sozinho. Para Mestre secundário, cruze pelo menos duas fontes de evidência e procure a primeira divergência. Se event queue, evento confirmado, evento não confirmado 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.
- event queue: registre um caso saudável, um caso com falha e a diferença objetiva em estado.
- evento confirmado: registre um caso saudável, um caso com falha e a diferença objetiva em sequência.
- evento não confirmado: registre um caso saudável, um caso com falha e a diferença objetiva em timestamp.
- timestamp: registre um caso saudável, um caso com falha e a diferença objetiva em qualidade.
Mestre secundário: dados exclusivos deste recorte (fundamentos)
Uma captura de Mestre secundário deve mostrar Source/Destination da Data Link, sequência de aplicação, Function Code, Group/Variation, qualifier/range e IIN. Em DNP3 sobre IP, TCP/UDP 20000 é a porta registrada normalmente usada, mas o valor real deve ser confirmado no projeto e na captura.
Nos fundamentos de Mestre secundário, acompanhe a transição que altera Source / Destination e confirme como TCP/UDP 20000 reage antes, durante e depois do evento.
- Source / Destination: endereço DNP. Confirmar master/outstation corretos.
- TCP/UDP 20000: transporte típico. Confirmar porta efetivamente configurada.
- Function Code: ação de aplicação. Relacionar request/response e efeito.
- Group/Variation + IIN: objeto + estado. Explicar dado e condição da outstation.
Mestre secundário: objeto DNP3 em Group/Variation, qualifier e índice — Mestre secundário / fundamentos
Nos fundamentos de Mestre secundário, trate Transport Function como parte de uma sequência causal: condição inicial, transição, campo alterado e reação do outro lado. 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 Mestre secundário em fundamentos é obter o mesmo resultado em novo teste de Transport Function, mantendo o ponto de medição e a condição inicial.
O mecanismo de Mestre secundário deve ser lido a partir de endereço DNP da Outstation; observe qual estado antecede a mudança e qual confirmação prova que ela terminou. No diagnóstico de Mestre secundário, 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 Mestre secundário, a evidência ligada a endereço DNP da Outstation deve ser armazenada com horário, origem e condição de teste, permitindo comparação posterior.
- Mestre secundário · fundamentos · Transport Function: Exemplo: G1/G2 separa Binary Input estático de evento; G30/G32 faz o mesmo para Analog Input.
- Mestre secundário · fundamentos · Application Layer: Conferir se a Variation usada no evento inclui flags e/ou tempo conforme a necessidade de SOE.
- Mestre secundário · fundamentos · endereço DNP do Master: Registrar qualifier e range porque eles definem como índices/contagens são codificados.
- Mestre secundário · fundamentos · endereço DNP da Outstation: Em multivendor, validar objetos efetivamente suportados no Device Profile.
Mestre secundário: valor, qualidade, tempo e ciclo de comando ponta a ponta — Mestre secundário / fundamentos
O mecanismo de Mestre secundário deve ser lido a partir de endereço reservado; observe qual estado antecede a mudança e qual confirmação prova que ela terminou. Um ponto SCADA não é apenas um valor. Para Mestre secundário, 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 endereço reservado não reproduzir o comportamento esperado em Mestre secundário, a hipótese deve ser revista antes de alterar outra camada do sistema.
Para explicar por que Mestre secundário funciona, use Class 2 — 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 Mestre secundário em fundamentos é obter o mesmo resultado em novo teste de Class 2 — eventos, mantendo o ponto de medição e a condição inicial.
- Mestre secundário · fundamentos · Destination Address: Telemetria: raw → scaling → engineering unit → quality → source timestamp → SCADA timestamp.
- Mestre secundário · fundamentos · broadcast: SOE: comparar timestamp de origem e sequência recebida em uma rajada de eventos.
- Mestre secundário · fundamentos · endereço reservado: Comando: request → protocol confirmation → physical action → indication/return.
- Mestre secundário · fundamentos · Class 0 — dados estáticos: 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.
- Overview of DNP3 Protocol — DNP Users Group. Visão geral oficial do protocolo, hoje adotado como IEEE Std 1815.
- DNP3 Cybersecurity Program — DNP Users Group. Referência do programa de segurança e autenticação do ecossistema DNP3.
- DNP Users Group — Public Documents — DNP Users Group. Aplicações públicas, boletins e materiais técnicos para validar comportamento de implementações.
- 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 pelo mecanismo deste artigo. A ideia é formar uma sequência técnica, não apenas listar páginas do mesmo tema.