OpenCyber Academy
Engenharia · Capítulo 3 · Português
Código do curso: OCA-137Capítulo 03: OCA-137-C003

Capítulo 3 — Física para computação

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

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

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.

Respostas comentadas

EX007. 120 × 10 = 1.200 bits; 1.200 / 19.200 = 0,0625 s = 62,5 ms.

EX008. Taxa necessária = 244 × 10 bits / 0,050 s = 48.800 bit/s. A próxima taxa padrão igual ou acima disso é 57.600 bit/s; 38.400 estouraria o orçamento.

EX009. (1) Injeção de corrente numa malha de 4–20 mA → sensor redundante com verificação cruzada. (2) Aquecer ou resfriar uma sonda de temperatura → verificação de plausibilidade por modelo físico em relação ao ciclo de trabalho do aquecedor. Invólucros e lacres com evidência de violação também são controles aceitáveis.