Buffers no IEC 104: filas de eventos, janela k/w, overflow e recuperação
Dimensione buffers IEC 104 da origem ao SCADA, diferenciando eventos, APDUs pendentes, TCP, gateway e historiador, com testes de overflow e reconexão.
Filas em uma cadeia IEC 104
| Camada | Unidade | Sinal de saturação |
|---|---|---|
| IED/RTU | eventos | overflow ou perda de SOE |
| IEC 104 | I-frames pendentes | k/t1 e N(R) parado |
| TCP | bytes/segmentos | zero window/retransmissão |
| Gateway | mensagens por origem | queue depth e drops |
| SCADA/historiador | registros | idade de ingestão |
Toda fila precisa de capacidade, alarme e política de descarte documentados.
Buffer existe em várias camadas
Uma arquitetura IEC 104 pode ter fila de eventos no IED, fila de ASDUs no servidor, APDUs I-frame não confirmadas, buffers TCP, filas do gateway e ingestão do SCADA. “Aumentar o buffer” sem identificar a camada pode deslocar atraso ou esconder perda. Desenhe a cadeia e registre capacidade, política de descarte, persistência e alarmes. Cada fila protege contra uma causa e possui unidade diferente: eventos, bytes, mensagens ou tempo.
Fila de eventos preserva transições
Quando a comunicação falha, a estação precisa guardar eventos se o requisito assim determina. Dimensione pela taxa máxima plausível e indisponibilidade suportada, incluindo tempestades. Deadband inadequada e chatter digital elevam volume. Overflow deve ser sinalizado até o operador, pois o valor atual não recompõe a história. Teste próximo e além do limite em bancada, contando mudanças geradas, recebidas e perdidas.
k limita I-frames não confirmados
A janela k controla quantos I-frames o transmissor mantém pendentes de confirmação no nível IEC 104. Ela interage com processamento, latência e capacidade do receptor. Valor pequeno pode limitar throughput em caminho de alta latência; grande pode acumular trabalho e memória. Observe N(S), N(R) e quantidade pendente durante rajadas. Aumentar k não corrige receptor lento nem perda de S-frames; pode apenas ampliar o backlog antes da falha.
w e t2 governam reconhecimento
O receptor confirma antes de atingir condições definidas por w e t2, usando S-frame ou reconhecimento em I-frame. Se o reconhecimento demora, o transmissor aproxima-se de k e t1. Valores precisam ser coerentes nas implementações e com RTT. Capture rajada controlada, marque cada N(S)/N(R) e calcule tempo até ACK. A análise deve separar confirmação IEC 104 de ACK TCP, pois são mecanismos distintos.
TCP aplica seu próprio fluxo
Janela TCP, retransmissão e zero window podem limitar a sessão antes do IEC 104. Buffers do sistema operacional podem aceitar bytes enquanto a aplicação está parada, criando atraso sem perda imediata. Monitore RTT, retransmissões, receive window e filas do processo. Se N(S) deixa de avançar mas TCP continua ativo, investigue aplicação; se segmentos não chegam ou janela fecha, investigue transporte e capacidade do host.
Gateway multiplica filas e traduções
Concentradores recebem várias RTUs e entregam uma ou mais sessões. Um canal de saída lento pode acumular dados de dezenas de origens. Defina prioridade, isolamento por origem e comportamento quando uma fila excede limite. Um equipamento não deve deixar uma RTU ruidosa consumir toda a memória. Registre queue depth, drops e idade da mensagem. No failover, esclareça se filas são compartilhadas, replicadas ou perdidas.
Recuperação é o maior pico
Após retorno, eventos, GI, clock sync e dados cíclicos competem. O sistema precisa drenar backlog sem bloquear informação nova nem comandos. Priorize conforme filosofia e preserve timestamps. Meça taxa de entrada, saída e tempo até fila zero. Se a indisponibilidade foi longa, aplicação pode escolher alarme de lacuna e recomposição controlada. Reconectar repetidamente durante saturação piora o problema e deve ser evitado por política de backoff.
Teste mede capacidade e degradação
Gere carga normal, rajada e falha prolongada, observando memória, CPU, queue depth, N(S)/N(R), TCP e SCADA. Interrompa confirmações e depois o caminho. Conte eventos e valide ordem, qualidade e overflow. Repita com failover. O baseline inclui ocupação e idade máximas, não apenas percentual de link. Um buffer bem dimensionado absorve o transitório previsto, sinaliza excedente e retorna ao regime sem perda silenciosa.
Critério de engenharia e governança
O dimensionamento deve usar curvas de chegada e serviço. Meça quantos eventos por segundo cada origem pode produzir, quanto o gateway processa e quanto o SCADA ingere. A diferença acumulada define crescimento da fila. Inclua rajadas e períodos de indisponibilidade, não apenas médias. Defina limite de idade além do qual um dado perde utilidade, mesmo que ainda caiba na memória. Algumas informações devem ser preservadas; outras podem ser substituídas pelo valor mais recente conforme política aprovada. Separe filas por criticidade e origem para evitar bloqueio global. Monitore ocupação absoluta, percentual, taxa de crescimento e mensagem mais antiga. Alarmes precoces permitem ação antes do overflow. Em redundância, teste replicação e deduplicação; duas filas completas não significam continuidade se o takeover perde posição. O relatório de capacidade apresenta cenário, entrada, saída, pico, tempo para saturar e tempo para normalizar. Assim memória deixa de ser argumento abstrato e passa a sustentar uma garantia operacional quantificável.
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.
- IEC 60870-5-104:2006+AMD1:2016 CSV — Network access for IEC 60870-5-101 — IEC. Companion standard consolidado do IEC 104; inclui o corrigendum publicado em 2023.
- IEC 60870-5-101:2003+AMD1:2015 CSV — Basic telecontrol tasks — IEC. Companion standard consolidado do IEC 101 para telecontrole serial.
- IEC 60870-5-1:1990 — Transmission frame formats — IEC. Formatos de quadro e requisitos de integridade usados pela família IEC 60870-5.
- IEC 60870-5-2:1992 — Link transmission procedures — IEC. Procedimentos de transmissão da camada de enlace, especialmente pertinentes ao IEC 101.
- IEC 60870-5-3:1992 — General structure of application data — IEC. Regras para estruturar unidades de dados de aplicação.
- IEC 60870-5-5:1995 — Basic application functions — IEC. Funções básicas de aplicação, incluindo aquisição, comandos e sincronização.
- IEC 60870-5-6:2006 — Guidelines for conformance testing — IEC. Método para ensaios de conformidade dos companion standards IEC 60870-5.
- IEC TS 60870-5-601:2015 — Conformance test cases for IEC 101 — IEC. Casos de ensaio de conformidade para implementações IEC 101.
- IEC TS 60870-5-604:2016 — Conformance test cases for IEC 104 — IEC. Casos de ensaio positivos e negativos para implementações IEC 104.
- IEC TS 60870-5-7:2025 — Security extensions for IEC 101/104 — IEC. Extensões de segurança alinhadas à série IEC 62351 para autenticação, integridade e RBAC.
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.