Carregando o progresso local…
PLC Gym
Início do PLC GymNível 1, 0 XP · seu progresso
Glossário

CASE em uma máquina real

CASE escolhe uma seção do código em texto para executar, com base em um número. Escreve-se CASE State OF, seguido de ramos numerados, e fecha-se com END_CASE. Só o ramo que combina é executado.

É o jeito usual de escrever uma máquina de estados em SCL ou texto estruturado, porque mantém a lógica de cada estado em um só lugar. Uma cadeia de IF e ELSIF faz o mesmo trabalho, mas fica mais difícil de ler à medida que entram estados.

Um ramo pode listar vários números, então dois estados podem compartilhar o mesmo código. Um ramo ELSE pode pegar um valor que nenhum ramo espera.

CASE: um exemplo resolvido

Uma batelada guarda a sua posição em uma tag chamada State. Com State em 10, o CASE executa o ramo da batelada. Quando o estado passa para 30, só o ramo Held é executado, e esse ramo mantém o equipamento parado.

CASE: um erro comum

Escrever uma saída em apenas um ramo. Um ramo que não é executado deixa as suas tags como estavam. Assim, um comando definido em um estado continua ligado no seguinte, a menos que algo o limpe.

Ainda com dúvida sobre este? Pergunte no Vestiário.