Mapa da aula
Aula 03 publicada. Mapa, exemplo, EX007.
flowchart TD
N0["3.1 Bits num fio"]
N1["3.2 Constantes de tempo do processo"]
N2["3.3 Manipulação da camada física"]
N3["Síntese"]
N0 --> N1 --> N2 --> N3
N3 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX007"]
Desenho lógico
flowchart LR
N0["3.1 Bits num fio"]
N1["3.2 Constantes de tempo do processo"]
N2["3.3 Manipulação da camada física"]
N3["Síntese"]
N0 --> N1 --> N2 --> N3 --> Q["EX007"]
[3.1 Bits num fio]
|
v
[3.2 Constantes de tempo do processo]
|
v
[3.3 Manipulação da camada física]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX007]
Objetivos de aprendizagem
Você vai (1) calcular a temporização de enlaces seriais para a consulta (polling) de barramentos de campo; (2) relacionar a velocidade do processo físico com os tempos de ciclo de controle exigidos; (3) reconhecer que os sinais físicos podem ser manipulados fora da rede.
3.1 Bits num fio
Boa parte da comunicação nas plantas ainda corre sobre RS-485 serial, a taxas como 115.200 bit/s. Com um bit de início, oito bits de dados e um bit de parada, cada byte custa dez tempos de bit. Uma resposta Modbus RTU de 40 bytes leva, portanto, 40 × 10 / 115.200 ≈ 3,5 ms no fio, antes do processamento no dispositivo. Somar todas as consultas de um ciclo diz se o cronograma cabe no orçamento de ciclo do controlador.
"""Lab: does a polling schedule fit the PLC scan/communication budget? (synthetic)"""
link_bps = 115200; bits_per_byte = 10 # RS-485 serial, 8N1 + start bit
polls = [("T-1 level", 8), ("T-2 level", 8), ("R-101 block", 40), ("pump status", 8), ("historian sweep", 120)]
overhead = 12 # bytes of request+framing per poll (assumed)
total = sum(n + overhead for _, n in polls)
t = total * bits_per_byte / link_bps
print(f"bytes per cycle={total} time per cycle={t*1000:.1f} ms")
for target in (100, 50):
print(f"cycle budget {target} ms -> {'fits' if t*1000 <= target else 'OVERRUN'}")
Saída esperada:
bytes per cycle=244 time per cycle=21.2 ms
cycle budget 100 ms -> fits
cycle budget 50 ms -> fits
Lena faz essa soma para o tronco até o PLC-A antes de aprovar qualquer dispositivo de monitoramento nele, e o resultado é o valor de 21 ms que ela usa depois ao longo de todo o programa.
3.2 Constantes de tempo do processo
Uma malha de nível num tanque de 12 m³ varia ao longo de minutos; uma malha de pressão num compressor varia em dezenas de milissegundos. A velocidade de controle e de detecção exigida decorre da física. Um monitoramento de segurança que acrescenta 200 ms de latência é inofensivo no tanque e perigoso no compressor. Pergunte sempre qual é a constante de tempo do processo antes de inserir dispositivos de inspeção em linha.
Na ABP, os tanques de alimentação e o nível do reator são malhas lentas, enquanto um skid de compressor próximo é rápido. Lena lista as malhas de cada tronco com as suas constantes de tempo antes de escolher onde um monitor pode ficar.
3.3 Manipulação da camada física
Os sensores medem física: uma malha de 4–20 mA, a tensão de um termopar, um pulso de um medidor de vazão. Um adversário ou uma falha pode alterar esses sinais sem tocar em nenhum pacote de rede — injetando corrente, aquecendo uma sonda ou fazendo um medidor vibrar. O monitoramento de rede não consegue ver isso; as verificações de plausibilidade física (Capítulo 29) e os invólucros com evidência de violação conseguem.
Caso sintético — Ashford Batch Plant. O orçamento de consulta de Lena para o tronco RS-485 até o PLC-A chegou a 21 ms por ciclo, folgadamente dentro do ciclo de 100 ms. Isso deixou espaço para um monitor serial em linha, que ela só aprovou depois de medir a latência acrescentada numa cópia de bancada.
3.4 Erros e limites
Os cálculos de temporização ignoram o tempo de resposta dos dispositivos e as retransmissões; meça numa bancada antes de se comprometer. Não teste injeção de sinal em malhas ativas.
A cópia de bancada de Lena do tronco RS-485 até o PLC-A é onde o orçamento de consulta e a latência acrescentada pelo monitor serial foram medidos, e é o único lugar em que o trabalho do curso toca a temporização serial. Qualquer experimento de injeção de sinal, mesmo um pequeno viés numa malha de 4–20 mA, pertence a uma bancada com um transmissor sobressalente, nunca à malha ativa do T-1. Registre os resultados de bancada com o equipamento usado, porque um transmissor ou um cabo diferente pode mudar os números.
3.5 Exemplo resolvido — níveis de sinal e o orçamento de tempo (ABP sintética)
O transmissor de nível do T-1 envia um sinal de 4–20 mA por 180 m de par trançado até o PLC-A. Um viés de 0,2 mA injetado num armário de distribuição desloca a leitura em 0,2/16 = 1,25 % da faixa, o que, para a faixa calibrada de 9 m³ do transmissor, é cerca de 0,11 m³ — pequeno o bastante para se esconder no ruído normal. A constante de tempo do tanque (faixa sobre a vazão típica de entrada, 9/1,25 ≈ 7,2 h) diz a Lena por quanto tempo esse viés pode agir antes que o cálculo de autonomia do Capítulo 1 esteja errado por uma margem de segurança inteira. Ela especifica, portanto, uma segunda chave de nível independente no T-1, ligada ao SIS-B, e uma comparação periódica entre o transmissor e a chave, porque um ataque na camada física a uma malha não consegue então derrotar as duas em silêncio.
Exercícios
- EX007 — Tempo no fio. Quanto tempo leva um quadro de 120 bytes a 19.200 bit/s, com 10 bits por byte? Rubrica: 3 = 62,5 ms com o desenvolvimento; 2 = deslize; 1 = método; 0 = nada.
- EX008 — Orçamento. Usando os 244 bytes por ciclo do laboratório, qual é a taxa mais lenta que ainda cabe num orçamento de 50 ms? Rubrica: 3 = 48.800 bit/s (portanto, 57.600 padrão) com o desenvolvimento; 2 = número sem a taxa padrão; 1 = método; 0 = nada.
- EX009 — Física. Dê duas manipulações da camada física que um IDS de rede não consegue detectar e um controle compensatório para cada uma. Rubrica: 3 = duas manipulações mais os controles; 2 = duas sem controles; 1 = uma; 0 = nada.
Síntese
A física define o orçamento de tempo do controle e de qualquer dispositivo de segurança que você ponha na malha.