Protocolos / DNP3 — Cold/Warm Restart

DNP3 Cold Restart e Warm Restart: diferença, Function Codes e teste seguro

Aprenda o que Cold Restart e Warm Restart fazem no DNP3, Function Codes 13/14, impacto operacional, IIN Restart, resposta esperada e como testar sem confundir reinício de protocolo com reinício do equipamento.

7 min de leituraPublicado em 25/08/2026
Ilustração técnica autoral para DNP3 Cold Restart e Warm Restart: diferença, Function Codes e teste seguro, 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.

DNP3 Function Codes úteis em comissionamento

CódigoFunçãoEvidência que fecha o teste
0x01READObjeto solicitado, resposta, flags/qualidade e índice corretos.
0x03 → 0x04SELECT → OPERATEMesmo alvo, janela válida, status positivo e retorno do processo.
0x05DIRECT_OPERATEResposta da outstation e efeito/retorno físico ou simulado.
0x06DIRECT_OPERATE_NREfeito no processo/log, pois não há resposta de aplicação esperada.
0x0D / 0x0ECOLD / WARM RESTARTReinício observado, IIN Device Restart e recuperação de estado/tempo.
0x14 / 0x15ENABLE / DISABLE UNSOLICITEDEstado da função, eventos espontâneos e confirmações correspondentes.

Comece pelo significado: restart DNP3 não é um botão genérico

Cold Restart e Warm Restart são Function Codes da camada de aplicação DNP3 enviados pelo master a uma outstation. O código 13 (0x0D) solicita um cold restart; o código 14 (0x0E) solicita um warm restart. A distinção conceitual é importante: cold restart pede uma reinicialização completa do hardware e software conforme a implementação do equipamento, enquanto warm restart reinicializa apenas partes do dispositivo. O detalhe exato do que reinicia é dependente do fabricante e deve ser confirmado no manual do IED/RTU.

Para quem está começando, a regra é simples: nunca use “cold” ou “warm” como tentativa de corrigir comunicação sem antes saber o que o fabricante faz. Em um relé, RTU ou gateway, o efeito pode envolver aplicação, interfaces, base de dados, lógica ou reinicialização completa. Para quem já tem experiência, o ponto crítico é documentar o boundary da função: quais serviços param, quais estados persistem e qual é o tempo até a outstation voltar a responder.

O que observar na transação e no retorno da outstation

Um pedido de restart não deve ser avaliado apenas pelo desaparecimento momentâneo do ping. Capture a solicitação DNP3, confirme Destination/Source, Function Code e a resposta prevista pelo dispositivo. Algumas implementações informam um atraso estimado para reinício; outras simplesmente aceitam a solicitação e a comunicação cai. Após o retorno, observe o IIN Restart e a sequência de inicialização realizada pelo master.

O IIN Restart é especialmente útil porque transforma “acho que reiniciou” em evidência de protocolo. O master normalmente precisa executar sua política pós-restart: integridade, sincronismo de tempo quando necessário, reconstrução de eventos e eventualmente habilitação de unsolicited. O estado pós-restart deve ser tratado como parte do teste e não como detalhe administrativo.

Como testar sem colocar a operação em risco

Faça o ensaio primeiro em bancada ou equipamento fora de serviço. Registre firmware, configuração, alimentação, caminho de comunicação e estado de todos os serviços. Meça o tempo entre a solicitação e a primeira resposta válida após o retorno. Depois confirme Class 0, classes de evento, horário, permissões de controle e qualquer sessão redundante com outro master.

Em produção, restart remoto deve obedecer procedimento operacional e análise de consequência. Não basta saber que o protocolo permite a função. Verifique se o equipamento controla processo ativo, se existe redundância, se a perda temporária de telecontrole é aceitável e se o IED pode voltar em modo local, bloqueado ou com lógica transitória. A engenharia precisa definir quem tem permissão para emitir esses Function Codes.

Diagnóstico: quando restart vira sintoma, não solução

Se o master registra restart repetidamente sem ninguém emitir Function Code 13/14, investigue alimentação, watchdog, firmware, falha de aplicação, manutenção e reinicialização espontânea. Preserve logs do equipamento e IIN antes de reiniciar novamente. Um ciclo de restart pode esvaziar buffers, alterar timestamps e apagar justamente a evidência necessária para encontrar a causa.

Se a outstation retorna mas o SCADA fica incompleto, verifique se o master executou a sequência pós-restart: integrity poll, coleta das classes, time sync e reenable de unsolicited. O canal “online” não garante que o estado operacional foi reconstruído.

Sequência pós-restart: o que o master deve reconstruir

O teste de restart só termina quando o sistema volta a um estado operacional conhecido. Depois que a outstation reaparece, o master precisa reconhecer que houve reinicialização e executar a política definida para aquele projeto. Em uma implementação típica isso inclui confirmar o estado interno indicado pelo IIN, executar leitura de integridade para reconstruir os valores estáticos, recuperar eventos das classes configuradas, sincronizar o relógio quando necessário e restabelecer mecanismos que não sobrevivem ao restart, como a habilitação de Unsolicited Response em implementações que exigem novo ENABLE_UNSOLICITED. A ordem exata deve ser confirmada no Device Profile e no manual do equipamento.

Esse ponto é importante porque “voltou a comunicar” e “voltou a operar” são afirmações diferentes. Um canal pode aceitar READ depois do restart e ainda estar com horário incorreto, eventos pendentes, unsolicited desabilitado ou permissões de controle em estado diferente do esperado. No comissionamento, crie uma tabela com cada estado que deve ser reconstruído, o comando ou mensagem que o comprova e o tempo máximo aceitável para a recuperação. Preserve uma captura completa desde o Function Code de restart até a estabilização do canal; ela se torna um baseline extremamente útil para troubleshooting futuro.

  • Confirmar o IIN Restart e registrar quando ele deixa de ser reportado conforme o comportamento do dispositivo.
  • Executar a política de integridade e confirmar valores, flags de qualidade e classes de evento.
  • Verificar Need Time e a política de sincronização de relógio antes de confiar em SOE posterior ao restart.
  • Confirmar se Unsolicited permanece habilitado ou precisa ser habilitado novamente pelo master.
  • Testar um comando permitido e seu feedback apenas quando o procedimento operacional autorizar.

Diferenças de fabricante e critérios de aceite

A norma define a função protocolar, mas não transforma todos os equipamentos em implementações idênticas. Um fabricante pode associar Warm Restart à reinicialização da aplicação de comunicação sem desligar funções críticas; outro pode reinicializar um conjunto maior de serviços. Cold Restart pode provocar reboot completo em um produto e ter restrições adicionais em outro. Alguns equipamentos rejeitam a função por configuração ou privilégio; outros devolvem uma informação de atraso antes da reinicialização. Por isso o artigo e o procedimento de campo precisam separar claramente o que é comportamento DNP3 padronizado do que é comportamento específico do equipamento.

O critério de aceite deve declarar versão de firmware, configuração, alimentação, papel da unidade e resultado esperado para Cold e Warm. Meça tempo até perda da sessão, tempo até primeira resposta válida, tempo até reconstrução da base e tempo até retomada de eventos/controles. Repita com uma fila de eventos pendente para saber se eles são preservados. Quando houver redundância de master, verifique se ambos interpretam o restart de forma coerente e se o failover não provoca uma sequência concorrente de inicialização. Esses dados são muito mais úteis do que registrar apenas “restart OK”.

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. Fonte mantenedora do DNP3/IEEE 1815 para arquitetura, interoperabilidade e documentação pública.
  • 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.

Ver todas as trilhas de estudo →