23. Tolerância de Altura (Fábrica de Garrafas):
Três sensores ópticos (A, B e C) verificam a altura da garrafa. Sensor A
Base. Sensor B
Limite Inferior
. Sensor
Limite Superior
. A garrafa é considerada reprovada se for “baixa demais” (não atinge B) ou “alta demais” (atinge C). Desenvolva a lógica que acione um cilindro de rejeito sempre que a garrafa estiver fora dos limites quando passar pelo sensor A.
Passo 1
O enunciado nos dá três sensores ópticos e pede que se desenvolva a lógica que acione um cilindro de rejeito sempre que a garrafa estiver fora dos limites no instante em que passar pelo sensor
. Informação relevante fornecida:
- Sensor
: detecta a base da garrafa (ponto de verificação onde a decisão deve ser tomada). - Sensor
: limiar inferior (marca se a garrafa atingiu o mínimo aceitável, isto é, quando a altura é pelo menos o limite inferior; se a garrafa é “baixa demais”). - Sensor
: limiar superior (marca se a garrafa ultrapassou o limite superior; quando a garrafa é “alta demais”). - A garrafa deve ser reprovada (acionar o cilindro de rejeito) quando, no instante em que estiver em
: ela for “baixa demais” (não atinge ) ou “alta demais” (atinge ).
O que é pedido explicitamente:
- Construir a lógica booleana que gera o sinal de rejeito (chamarei esse sinal de
) a partir das entradas , e , de forma que seja ativado só quando a garrafa estiver fora dos limites no momento em que detecta a garrafa.
Passo 2
Definição clara dos sinais binários (modo de pensar para a prova):
-
é um sinal lógico que vale quando a garrafa está na posição do sensor (momento de avaliação) e caso contrário. -
vale quando a garrafa alcançou o limite inferior aceitável; significa “baixa demais”. -
vale quando a garrafa alcançou o limite superior (ou seja, “alta demais”). -
será o sinal de saída que aciona o cilindro de rejeito; queremos somente quando, no instante de , ocorrer (baixa) ou (alta).
Observação de procedimento: a avaliação deve ocorrer no momento em que
. Em aplicações reais costuma-se amostrar
e
quando
muda para
(ou enquanto
), para evitar decisões fora de tempo. Aqui vamos formular a lógica combinacional que responde a essa condição.
Passo 3
Aula rápida e prática de lógica booleana (ferramenta que vamos usar)
- Operador AND (
): a expressão vale só se e . - Operador OR (
): vale se pelo menos um dos ou vale . - Operador NOT (
): vale quando , e vale quando .
Exemplos curtinhos para fixar:
- Se queremos “acionar algo apenas quando o botão
estiver pressionado e a chave estiver ligada”, escrevemos . - Se queremos “acionar quando
estiver desligada” escrevemos . - Se queremos “acionar quando estiver muito baixo OU muito alto”, combinamos com OR.
Esses operadores se combinam para formar a lógica da decisão.
Passo 4
Construção da expressão booleana para o rejeito
- Em palavras: “Rejeitar quando (na presença de
) a garrafa for baixa demais OU a garrafa for alta demais”. - Traduzindo cada condição em booleano:
- “na presença de
” corresponde a exigir ; isso é uma condição necessária (AND com o teste de defeito). - “baixa demais” corresponde a
, ou seja . - “alta demais” corresponde a
.
- “na presença de
- Juntando: dentro do instante de
queremos ativar se ou acontecer, isto é . Como isso só interessa quando , colocamos um AND com .
Portanto a expressão é:
Podemos, se quiseres, expandir usando distributiva (não necessário, só para ver outra forma):
Essa forma mostra explicitamente os dois casos que disparam o rejeito: (1)
e não
ou (2)
e
.
Passo 5
Verificação por tabela de verdade reduzida (só os casos relevantes quando
)
Avaliar nos casos
:
Avaliar
- Se
: então (rejeita — baixa demais). - Se
: e então (aceita). - Se
: mas então (rejeita — alta demais). - Se
: independente de , (não avaliar fora do instante de ).
Isso bate com a especificação: apenas quando
vê a garrafa fazemos a decisão; rejeitamos se ela for baixa ou alta.
Passo 6
Como implementar isso em ladder (prático para prova/PLC) — tradução direta
- Em ladder, série = AND; paralelo = OR; contato normalmente aberto (NO) representa a variável em direto; contato normalmente fechado (NC) representa
da variável. - Rung sugerido:
- Em série: contato NO de
. - Em série com um ramo paralelo contendo:
- ramo 1: contato NC de
(ou seja, ); - ramo 2: contato NO de
.
- ramo 1: contato NC de
- Saída do rung: bobina
(cilindro de rejeito).
- Em série: contato NO de
- Em palavras:
em série com (NC em paralelo com NO ) aciona .
Essa construção implementa exatamente
.
Passo 7
Observações práticas importantes (para a prova e para a bancada)
- Amostragem/tempo: idealmente avaliar
e durante o tempo em que ou disparar na borda de subida de (usar um one-shot) para evitar múltiplos pulsos. Em muitos PLCs usa-se um bloco “rising edge of ” para gerar um pulso que dispara um temporizador ou um latch. - Latching e retração do cilindro: normalmente não se deixa a bobina
permanentemente; usa-se para comandar um pulso ou se seta até que um sensor de posição do cilindro (ex.: ) confirme a posição de rejeito, então resetar . Isso evita manter o cilindro estendido indefinidamente. - Filtragem/debounce: sensores ópticos podem oscilar; recomenda-se um pequeno filtro (por ex. requerer que
ou mantêm estado por alguns ms) antes de tomar decisão, se houver ruído. - Caso extremo: se
e ficarem ambos em (por exemplo uma leitura ambígua), a expressão continua a rejeitar por causa de , o que é coerente (atingiu o limite superior).
Passo 8
Exemplo passo-a-passo num caso prático (para consolidar)
- Suponha uma garrafa passa em
; os sensores leem: (não alcançou o mínimo) e . Então , logo , e como temos → cilindro rejeita. - Suponha agora
. Então e , portanto → deixa passar (aceita). - Suponha
. Então (rejeita por excesso de altura).
Vai dar certo na prova: mostre a expressão e, se pedirem diagrama Ladder, desenhe a versão com
em série e
NC paralelo com
NO.
Resposta
(Implementação em ladder: contato NO de