Protocolos / DNP3 e IEC 60870-5-104

DNP3 vs IEC 60870-5-104: diferenças de arquitetura, eventos, comandos e diagnóstico

Compare DNP3 e IEC 104 em telecontrole: modelo de dados, classes e eventos, polling, espontâneo, timestamps, endereçamento, comandos, TCP e operação de SCADA.

9 min de leituraPublicado em 25/08/2026
Ilustração técnica autoral para DNP3 vs IEC 60870-5-104: diferenças de arquitetura, eventos, comandos e diagnóstico, 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.

IEC 104: APDU, I/S/U e parâmetros que controlam a sessão

Diagrama do IEC 60870-5-104 com APDU, APCI, ASDU, formatos I S U e temporizadores.
Diagrama próprio do Portal da Automação. A IEC 104 usa TCP, mas mantém regras próprias de sessão, numeração e telecontrole.

Como ler esta figura

APCI / Control Field

Controla formato I/S/U, estado lógico e numeração N(S)/N(R).

Na implementação: Sequência travada, ACK atrasado ou TESTFR repetitivo deve ser correlacionado com timers e janelas, não só com TCP.

I-format

Transporta ASDU e usa números de envio e recebimento para acompanhar a sequência.

Na implementação: Compare N(S) e N(R) nos dois sentidos para encontrar a primeira divergência ou ACK ausente.

S-format

Confirma recepção sem transportar uma ASDU.

Na implementação: É diretamente relacionado ao controle de fluxo e ao limiar w/t2.

U-format

Executa STARTDT, STOPDT e TESTFR para controlar/testar a transferência.

Na implementação: STARTDT não é comando de processo; é habilitação da transferência de dados IEC 104.

ASDU

Type ID, VSQ, COT, CA e IOA dão significado às medidas, estados, eventos e comandos.

Na implementação: TCP saudável com CA/IOA/COT errados continua sendo uma integração quebrada.

t0, t1, t2, t3, k e w

Definem estabelecimento, confirmações, ociosidade e janelas de mensagens.

Na implementação: Dimensione usando RTT real, carga e requisitos da aplicação; não copie defaults entre fabricantes sem validar.

Classes DNP3 e comportamento do master

ClasseConteúdo típicoTeste de campo
Class 0Dados estáticos atuaisIntegrity/Class 0 poll após conexão/restart e conferência do estado completo.
Class 1Eventos de maior prioridade do projetoGerar evento crítico, observar IIN1.1 e tempo até leitura/ack.
Class 2Eventos operacionais intermediáriosGerar rajada e validar fila, ordem e esvaziamento.
Class 3Eventos de menor prioridadeValidar que não ficam indefinidamente pendentes sob carga.
OverflowCapacidade de evento excedidaCorrelacionar IIN2.3 com lacuna potencial de SOE e revisar polling/buffer.

Dois protocolos para telecontrole, mas com filosofias diferentes

DNP3 e IEC 60870-5-104 ocupam espaço semelhante em arquiteturas de supervisão: ambos transportam medições, estados, eventos e comandos entre centros de controle, front-ends, gateways e equipamentos remotos. Isso não os torna equivalentes campo a campo. DNP3 organiza informação por grupos e variações de objetos, índices e classes de eventos. IEC 104 organiza ASDUs por Type Identification, Cause of Transmission, Common Address e Information Object Address. A engenharia precisa mapear significado, qualidade e tempo, não apenas converter números.

IEC 104 trabalha sobre TCP e usa APCI com quadros I, S e U para controlar transferência e estado da conexão. DNP3 pode operar sobre serial ou IP e mantém mecanismos próprios de enlace, transporte e aplicação. Em DNP3 sobre TCP, o TCP fornece transporte confiável, mas a semântica de objetos, confirmações, classes, eventos e funções continua sendo DNP3. Em ambos os casos, 'porta conectada' não significa aplicação interoperável.

  • DNP3: objetos, variações, índices, classes e funções.
  • IEC 104: ASDU, Type ID, COT, Common Address e IOA.
  • Em gateways, documente o mapeamento semântico dos dois lados.

Eventos, polling e atualização espontânea

Uma das diferenças mais visíveis está no tratamento de eventos. DNP3 separa dados estáticos, frequentemente associados à Class 0, de eventos classificados em Classes 1, 2 e 3. O mestre pode executar integrity poll, class polls ou receber respostas unsolicited, dependendo da configuração e do perfil do equipamento. Isso permite equilibrar carga, criticidade e recuperação de eventos, mas exige atenção a filas, overflow, confirmações e política de polling.

IEC 104 também suporta transmissão espontânea e mecanismos de interrogação geral. A Cause of Transmission informa por que uma ASDU foi enviada, como espontânea, resposta a interrogação ou ativação de comando. A comparação correta não é 'unsolicited igual a espontâneo' de forma literal; são mecanismos com papéis semelhantes, mas regras e estados próprios. Ao migrar entre protocolos, valide o comportamento durante perda de comunicação e reconexão: quais eventos são preservados, em que ordem retornam e como timestamps antigos são tratados.

  • Teste evento durante link indisponível e recuperação posterior.
  • Verifique overflow e profundidade de buffer do equipamento.
  • Não use polling agressivo para mascarar configuração ruim de eventos.

Tempo, qualidade e sequência de eventos

Em automação elétrica, um valor sem qualidade e tempo pode ser enganoso. DNP3 possui flags de qualidade e objetos de evento que podem carregar timestamps. IEC 104 também associa qualidade a tipos de informação e pode usar formatos temporais como CP56Time2a em ASDUs apropriadas. A origem do timestamp deve ser conhecida: IED, RTU, gateway ou SCADA. Se um gateway recalcula a hora na chegada, a sequência de eventos pode deixar de representar a ordem real de campo.

Para SOE, teste transições rápidas e eventos com horários próximos, não apenas pontos estáticos. Verifique resolução, sincronismo e comportamento quando o relógio do remoto perde qualidade. Em DNP3, observe time synchronization e IINs relacionados ao estado do outstation. Em IEC 104, observe ASDUs de sincronização de relógio quando aplicáveis e qualidade temporal do sistema. A precisão final depende tanto do protocolo quanto da fonte de tempo e da implementação.

  • Correlacione captura de rede com SOE do IED e do SCADA.
  • Registre timezone e política de UTC/local time.
  • Teste qualidade inválida, offline e substituída quando suportadas.

Comandos e controles

Nos dois protocolos, comando deve ser tratado como uma transação operacional, não como simples escrita. DNP3 oferece mecanismos como Direct Operate e Select Before Operate, além de CROB para saídas binárias com funções pulse, latch on e latch off conforme objeto e implementação. IEC 104 possui tipos de comando simples, duplo, setpoint e outros, com causas de transmissão e confirmações de ativação/terminação.

A equivalência funcional depende do equipamento. Um gateway pode receber SBO em DNP3 e emitir uma sequência IEC 104 diferente, ou o contrário. O teste deve confirmar seleção, execução, timeout, rejeição por intertravamento, estado final e feedback de posição. Nunca valide somente a resposta positiva de protocolo: o resultado elétrico ou lógico precisa ser confirmado pelo ponto de retorno e, quando aplicável, por registro do IED.

  • Teste comando aceito, rejeitado e expirado.
  • Valide feedback de posição separado do comando.
  • Confirme política de pulse, tempo e double command quando existente.

Qual escolher e como diagnosticar

A escolha é frequentemente determinada pelo ecossistema da concessionária, centro de controle, fabricante, região e requisitos de interoperabilidade. DNP3 é muito forte em telecontrole e distribuição em vários mercados; IEC 104 é amplamente usado em utilities e centros de controle baseados na família IEC 60870. Tecnicamente, ambos podem atender supervisão robusta quando projetados corretamente. O diferencial real aparece na compatibilidade com ativos existentes, ferramentas, perfis, segurança e competência operacional.

No diagnóstico, comece por transporte e sessão, depois avance para semântica. Em IEC 104, confira TCP, STARTDT, números de sequência I/S, timers e ASDUs. Em DNP3, confira endereços de enlace, funções, objetos, qualifiers, IINs, classes e confirmações. Se um ponto está 'errado', capture o frame e compare o identificador recebido com o cadastro do SCADA. Essa disciplina reduz muito o tempo perdido procurando defeito de rede quando a causa é mapeamento.

  • IEC 104: observe APCI, números de sequência e COT.
  • DNP3: observe funções, objetos, índices, qualifiers e IINs.
  • Em ambos: preserve PCAP, logs e tabela de pontos da mesma ocorrência.

Migração e gateways: onde surgem as diferenças difíceis

Quando um gateway converte DNP3 para IEC 104, ele não transforma somente endereços. Precisa decidir como uma variação DNP3 corresponde a um Type ID, como flags de qualidade são representadas, como timestamps são preservados, como eventos antigos são enviados e como comandos com Select Before Operate se relacionam com a sequência IEC. Essas decisões devem estar em uma tabela de mapping controlada por versão. Se o gateway for substituído e o mapping for recriado manualmente, pequenas diferenças podem alterar operação sem quebrar a comunicação.

Também é importante testar saturação e reconexão do gateway. Uma fila de eventos pode existir no IED, outra no gateway e outra no front-end. Durante uma indisponibilidade longa, qual delas enche primeiro? Há descarte dos eventos mais antigos ou mais novos? A qualidade muda para overflow? O centro recebe uma avalanche na reconexão? Esses cenários distinguem uma integração realmente projetada de uma conversão que só foi testada com alguns pontos estáticos.

  • Mantenha tabela de mapping DNP3↔IEC 104 como documento controlado.
  • Teste indisponibilidade longa e retorno de comunicação.
  • Confirme política de filas e overflow em cada camada.

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 →