Physical Layer no DNP3: conceito, função e onde se aplica
Physical Layer 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 — Physical Layer / 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 “Physical Layer” e pela lente “fundamentos”; referências normativas e limites de fabricante continuam prevalecendo.
SCADA/IED — campos obrigatórios para “Physical Layer”
| 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. |
Mapa técnico de Physical Layer: quem produz, quem consome e o que pode falhar
A camada física do DNP3 é o meio que transporta os octetos: serial, rádio, modem, fibra por conversor ou Ethernet quando o protocolo é encapsulado em IP. O DNP3 não corrige defeitos elétricos, ópticos ou de RF existentes abaixo da camada de enlace.
Para aprender Physical Layer 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 timestamp na origem, precisão do relógio, ordem cronológica. 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 Physical Layer: o que muda e onde observar
Em serial, registre baud rate, bits de dados, paridade, stop bit, controle de fluxo, pinagem e modo RS-232/RS-485. Em IP, registre interface, velocidade/duplex, VLAN, MTU e caminho de rede.
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 resolução temporal, timestamp na origem, precisão do relógio, ordem cronológica 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.
- resolução temporal — defina primeiro o que representa em DNP3 e qual elemento produz ou consome essa informação; depois identifique em que condição ele muda.
- timestamp na origem — relacione o valor ou estado ao efeito sobre Physical Layer; registre também qual campo permite confirmar que a interpretação está correta.
- precisão do relógio — 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.
- ordem cronológica — 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.
- sincronismo entre IEDs — 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 Physical Layer
O fundamento de Physical Layer aparece nas transições. Acompanhe uma operação normal do início ao fim e marque quando resolução temporal e timestamp na origem 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 Physical Layer, trate resolução temporal, timestamp na origem e precisão do relógio 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 Physical Layer
- Descrever uma exceção sem recorrer a “reiniciar e testar”
- Identificar o papel de resolução temporal
- Identificar o papel de timestamp na origem
Physical Layer em projeto real: como decidir sem copiar configuração
Imagine uma integração nova em que Physical Layer precisa funcionar entre equipamentos de fabricantes diferentes dentro de DNP3. Comece por uma transação mínima e observável nas duas pontas. Acompanhe resolução temporal, timestamp na origem e precisão do relógio, 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 Physical Layer precisa responder quem inicia a transação, qual resposta confirma resolução temporal, como timestamp na origem se comporta em exceção e qual log ou captura prova precisão do relógio. 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 Physical Layer e salvar a evidência associada a resolução temporal.
- Escolher uma única variável relacionada a timestamp na origem e prever o efeito antes de alterar.
- Repetir o mesmo teste e comparar precisão do relógio nas mesmas medições ou campos.
- Registrar o critério que permite aceitar, rejeitar ou reverter a configuração de Physical Layer.
Como demonstrar que Physical Layer foi implementado corretamente
Valide sinal e contadores físicos antes de analisar objetos DNP3. Em serial, confirme TX/RX e referência elétrica; em Ethernet, verifique link, erros, drops e aprendizado de MAC.
Defina evidência antes de testar Physical Layer. 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 resolução temporal em condição normal
- Forçar uma condição degradada ligada a timestamp na origem
- 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 Physical Layer: onde procurar antes de alterar parâmetros
CRC físico/Ethernet, framing serial, ruído, polaridade RS-485, duplex incorreto e conversores com packing time inadequado podem produzir timeouts DNP3 que parecem falhas do protocolo.
Não conclua a partir do sintoma sozinho. Para Physical Layer, cruze pelo menos duas fontes de evidência e procure a primeira divergência. Se resolução temporal, timestamp na origem, precisão do relógio 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.
- resolução temporal: registre um caso saudável, um caso com falha e a diferença objetiva em estado.
- timestamp na origem: registre um caso saudável, um caso com falha e a diferença objetiva em sequência.
- precisão do relógio: registre um caso saudável, um caso com falha e a diferença objetiva em timestamp.
- ordem cronológica: registre um caso saudável, um caso com falha e a diferença objetiva em qualidade.
Physical Layer: dados exclusivos deste recorte (fundamentos)
Uma captura de Physical Layer 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 Physical Layer, 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.
Physical Layer: objeto DNP3 em Group/Variation, qualifier e índice — Physical Layer / fundamentos
Nos fundamentos de Physical Layer, trate Class 2 — eventos 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 Physical Layer em fundamentos é obter o mesmo resultado em novo teste de Class 2 — eventos, mantendo o ponto de medição e a condição inicial.
O mecanismo de Physical Layer deve ser lido a partir de eventos operacionais → Class 2; observe qual estado antecede a mudança e qual confirmação prova que ela terminou. No diagnóstico de Physical Layer, 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 Physical Layer, a evidência ligada a eventos operacionais → Class 2 deve ser armazenada com horário, origem e condição de teste, permitindo comparação posterior.
- Physical Layer · fundamentos · Class 2 — eventos: Exemplo: G1/G2 separa Binary Input estático de evento; G30/G32 faz o mesmo para Analog Input.
- Physical Layer · fundamentos · Class 3 — eventos: Conferir se a Variation usada no evento inclui flags e/ou tempo conforme a necessidade de SOE.
- Physical Layer · fundamentos · alarmes críticos → Class 1: Registrar qualifier e range porque eles definem como índices/contagens são codificados.
- Physical Layer · fundamentos · eventos operacionais → Class 2: Em multivendor, validar objetos efetivamente suportados no Device Profile.
Physical Layer: valor, qualidade, tempo e ciclo de comando ponta a ponta — Physical Layer / fundamentos
O mecanismo de Physical Layer deve ser lido a partir de Binary Output Status; observe qual estado antecede a mudança e qual confirmação prova que ela terminou. Um ponto SCADA não é apenas um valor. Para Physical Layer, 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 Binary Output Status não reproduzir o comportamento esperado em Physical Layer, a hipótese deve ser revista antes de alterar outra camada do sistema.
Para explicar por que Physical Layer funciona, use Analog Input 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 Physical Layer em fundamentos é obter o mesmo resultado em novo teste de Analog Input, mantendo o ponto de medição e a condição inicial.
- Physical Layer · fundamentos · Binary Input: Telemetria: raw → scaling → engineering unit → quality → source timestamp → SCADA timestamp.
- Physical Layer · fundamentos · Double Bit Binary: SOE: comparar timestamp de origem e sequência recebida em uma rajada de eventos.
- Physical Layer · fundamentos · Binary Output Status: Comando: request → protocol confirmation → physical action → indication/return.
- Physical Layer · fundamentos · Counter: 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.