← a sala de CLP · CLP do zero · aula 00

A última linha manda

No painel de relés, tudo acontece ao mesmo tempo. No CLP, não: ele lê, executa uma linha de cada vez e só no fim escreve. Quem esquece disso escreve a mesma bobina duas vezes e perde uma.

começar

antes do erro

Um computador que só sabe dar uma volta

CLP quer dizer Controlador Lógico Programável. Ele nasceu no fim dos anos 1960, na indústria de carros dos Estados Unidos, pra aposentar os armários de relés: cada mudança na linha de montagem era um painel inteiro pra refazer. Com o CLP, muda-se o programa. Por isso a linguagem mais usada até hoje, o Ladder, é desenhada igual a um diagrama de comando — foi feita pra eletricista ler.

o coração

Ler, executar, escrever — e de novo

enquanto o CLP estiver em RUN:
  1. ler       copia todas as entradas pra memória      (a foto)
  2. executar  roda as linhas de cima pra baixo, olhando só a foto
  3. escrever  copia a memória das saídas pros bornes

Cada volta é uma varredura (em inglês, scan). Num programa pequeno ela leva poucos milissegundos — rápido o bastante pra parecer que o CLP reage na hora. Mas não reage: entre uma leitura e a próxima, o mundo pode mudar sem o CLP ficar sabendo.

E se uma volta demorar demais, por um laço que não termina, por exemplo, um vigia interno (o watchdog) derruba a CPU pra STOP e as saídas desligam. No S7-1200 da Siemens esse limite vem de fábrica em 150 ms.

00 Duas bobinas com o mesmo nome

ciclo de varredura · memória das saídas · bobina dupla

1 · o erro

Um painel tem uma lâmpada de alarme H1 que acende por dois motivos: o botão de teste S1, ou o sensor B1 avisando que a porta abriu. No diagrama de relés, isso são dois caminhos chegando na mesma lâmpada. Passado pro Ladder linha por linha, fica assim:

linha 1   ──┤ ├ S1 I0.0 ─────────────( ) H1 Q0.0
linha 2   ──┤ ├ B1 I0.1 ─────────────( ) H1 Q0.0

Abre a porta: a lâmpada acende. Aperta o teste: nada. O botão está bom, o fio está bom — e o S1 não funciona.

2 · o porquê

No painel de relés os dois caminhos existem ao mesmo tempo, então somam. No CLP as linhas rodam uma depois da outra, escrevendo na mesma memória:

aperto S1, com a porta fechada

  fase 1    foto:  S1 = 1 · B1 = 0
  linha 1   S1 = 1   →  Q0.0 = 1   na memória
  linha 2   B1 = 0   →  Q0.0 = 0   por cima do que a linha 1 escreveu
  fase 3    borne Q0.0 = 0         →  a lâmpada fica apagada

A linha 1 funciona, mas ninguém vê: antes de chegar ao borne, a linha 2 passa por cima. Com a porta aberta é a linha 2 que escreve 1 por último — por isso o sensor parece funcionar e o botão não. É a regra que dá nome à aula: a última linha manda.

3 · a correção

Cada saída é escrita por uma bobina só. Os dois motivos viram dois ramos em paralelo antes dela — e paralelo é OU:

linha 1   ──┬──┤ ├ S1 I0.0 ──┬──────────( ) H1 Q0.0
            └──┤ ├ B1 I0.1 ──┘

H1 = S1 + B1

Alguns programas de fabricante têm uma verificação de bobina dupla, mas o CLP roda o programa assim mesmo. Quem avisa, no fim, é o sintoma.

4 · a prova

O simulador abaixo segue o mesmo ciclo: lê, executa e escreve, nessa ordem. No programa com o erro, segure o S1: a lâmpada não acende. Depois troque pra câmera lenta ou passo a passo e segure de novo — dá pra ver o Q0.0 virar 1 na linha 1 e voltar a 0 na linha 2, sem nunca chegar ao borne.

Um segundo experimento, no mesmo simulador: em câmera lenta, dê um toque bem rápido no S1 longe da fase 1. O dedo apertou e soltou entre duas leituras, e o CLP nunca soube. Na velocidade normal a varredura é tão curta que com dedo isso quase não acontece — mas acontece com sensor rápido, como um encoder. Pra isso existem as entradas rápidas e as interrupções, que não esperam a volta terminar.

o exemplo da lâmpada foi montado para esta aula. Eu ainda não tenho um CLP físico: a prova roda no simulador do site, que segue o ciclo de ler, executar e escrever descrito acima.

para levar

O CLP tira uma foto das entradas, executa as linhas de cima pra baixo e só depois escreve as saídas. Se duas linhas escrevem a mesma saída, vale a última. Dois motivos pra ligar a mesma coisa são dois ramos em paralelo, numa bobina só.

CLP do zero · aula 00 · simulado no navegador — ainda sem CLP físico