05a A escala de 0 a 20 mA
4–20 mA · zero vivo · escala linear
Um tanque de água tem um transmissor de nível LT de 4–20 mA: 4 mA vazio, 20 mA cheio. A bomba enche o tanque quando o nível cai abaixo de 15% e para acima de 90%. A escala foi feita “de cabeça”, do zero ao fundo do cartão:
nivel := bruto / 27648 * 100;
IF nivel < 15 THEN bomba := TRUE; END_IF;
IF nivel > 90 THEN bomba := FALSE; END_IF;
Cheio, o supervisório mostra 100%, certinho. O consumo vai baixando o nível, e ele para em 20% — e fica. O tanque seca, e a bomba não liga.
A conta trata 0 mA como vazio. Mas vazio é 4 mA:
| nível de verdade | no fio | bruto | 0 a 20 (errado) | 4 a 20 (certo) |
|---|---|---|---|---|
| 0% | 4 mA | 5530 | 20% | 0% |
| 50% | 12 mA | 16589 | 60% | 50% |
| 100% | 20 mA | 27648 | 100% | 100% |
O erro é zero no topo e cresce até 20 pontos embaixo. Com o tanque cheio tudo parece certo — por isso passa no teste de bancada de quem só enche e olha.
A reta tem que passar pelos dois pontos de verdade do transmissor, 4 mA e 20 mA:
nivel := (bruto - 5530) / (27648 - 5530) * 100;
Pra achar os dois números, a conta é a do cartão: 4 ÷ 20 × 27648 = 5529,6, e o CLP guarda 5530. Se o cartão estiver configurado em 4–20 mA, o número de baixo é 0 — e aí a conta “de cabeça” do ① é que estaria certa.
O consumo está aberto e o tanque começa em 50%. No ①, compare o “nível de verdade” com o que o programa calcula, e espere o tanque secar (o ⏩ tempo 4× ajuda). No ②, a bomba liga nos 15% e para nos 90%.
a escala de 0 a 20 mA num transmissor de 4–20 é tropeço clássico, montado para esta aula; os 27648 são o fundo de escala nominal da Siemens, e o cartão que lê de 0 a 20 mA é uma escolha da aula. Eu ainda não tenho um CLP físico: a prova roda no simulador do site.