Programação de CLPs por Diagramas de Contato 1. Diagramas de Contato 2. Um CLP Genérico 3. Instruções de Entrada e Saída 4. Instruções Booleanas 5. Circuitos de Intertravamento 6. Detecção de Borda 7. Temporizadores 8. Contadores 9. Exemplo 1/20 1. Diagramas de Contato Os diagramas de contato são uma forma de programação de CLPs por meio de símbolos gráficos, representando contatos (contacts) e bobinas (coils). Os contatos e bobinas correspondem a variáveis booleanas armazenadas na memória intermediária do CLP. Os contatos e bobinas são conectados por ligações (links) em ramos (rungs) como num diagrama de lógica a relé. As expressões booleanas calculadas a cada ciclo de varredura do CLP correspondem à avaliação lógica seqüencial do diagrama de contatos. Um contato é representado como abaixo, onde se identifica um contato, associado à variável booleana A, interna ao CLP, e suas ligações. A --||-Os contatos são usados como acesso ao estado de uma variável interna no cálculo de expressões booleanas. Contato normalment e aberto A --||-- Contato normalment e fechado A --|/|-- O estado da ligação à direita é copiado para a ligação à esquerda se o estado de A é verdadeiro. Caso contrário, o estado da ligação à direita é falso. O estado da ligação à direita é copiado para a ligação à esquerda se o estado de A é falso, caso contrário, o estado da ligação à direita é verdadeiro. 2/20 Contato sensível à transição positiva A --|P|-- O estado da ligação à direita é verdadeiro por um ciclo de varredura se o estado da ligação à esquerda é verdadeiro e uma transição positiva da variável A é detectada. Uma bobina é representada como na figura abaixo, onde identifica-se uma bobina, associada a uma variável booleana Q. Q --( )-As bobinas alteram os estados das variáveis associadas. Bobina normal Bobina negativa Q --( )-Q --(\)-- Bobina Latch (Set) Q --(S)-- Bobina Latch (Reset) Q --(R)-- Bobina sensível Q à --(P)-transição positiva O estado da ligação da esquerda é copiado para a variável Q e para a ligação à direita. O estado da ligação à esquerda é copiado para a ligação à direita, e a negação do estado da ligação à esquerda é copiada para a variável Q. O estado de Q passa para verdadeiro quando a ligação à esquerda vai para verdadeiro, e não se altera em caso contrário. O estado de Q passa para falso quando a ligação à direita vai para verdadeiro, e não se altera em caso contrário. O estado de Q passa para verdadeiro por um ciclo de varredura cada vez que a ligação à esquerda vai de falso para verdadeiro. 3/20 2. Um CLP genérico Para fins de ilustração de diversos aspectos da programação por diagramas de contato, introduz-se um CLP ilustrativo: I0 I1 I2 I3 I4 I5 I6 I7 GND Q6 Q7 GND CLP Ge né rico Q0 Q1 Q2 Q3 Q4 Q5 Informações sobre o CLP: • • • • • 8 entradas a relé, endereçadas pelas variáveis I0 a I7 8 saídas a relé, endereçadas pelas variáveis Q0 a Q7 Variáveis auxiliares, endereçadas por F0, F1, ... Temporizadores, endereçados por T0, T1, ... Contadores, endereçados por C0, C1, ... 4/20 3. Instruções de entrada e saída CH I0 I1 I2 I3 I4 I5 I6 I7 - GND + Vc CLP Ge né rico Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 R GND Lam p Programa básico de entrada e saída | I0 Q0 | |--||------( )--| | | Leitura de variável negada | I0 Q0 | |--|/|-----( )--| | | Atribuição de valor invertido | I0 Q0 | |--||------(/)--| | | 5/20 ~ S Lógica duplamente invertida | I0 Q0 | |--|/|-----(/)--| | | As entradas podem também ser de natureza invertida, como contatos e botoeiras normalmente fechadas (NF). O uso de contatos NF no diagrama de contatos facilita a manutenção quando pela disponibilidade de LEDs no painel do CLP. 6/20 4. Instruções Booleanas Operação ‘E’ | I1 I2 I3 Q0 | |--||----||----||----( )--| | | Operação ‘OU’ | I1 Q1 | |--||--|--( )--| | I2 | | |--||--| | | I3 | | |--||--| | Lógica elaborada | I0 I1 I4 I5 Q0 | |--||-----||--|--||--|--||----( )--| | I2 I3 | | | |--||-----||--| | | | I1 I2 | | |--||--|--||--|------| | | I6 | I7 | | |--||--|--||--| | | | 7/20 Programa implementado com flags ou relés auxiliares | I0 I1 F0 | |--||----||----------( )--| | I2 I3 F1 | |--||----||----------( )--| | F0 I4 F2 | |--||------|---||----( )--| | F1 | | |--||------| | | I1 F3 | |--||------|---------( )--| | I6 | | |--||------| | | I2 F4 | |--||------|---------( )--| | I7 | | |--||------| | | F3 F4 F5 | |--||----||----------( )--| | F2 I5 Q0 | |--||------|---||----( )--| | F5 | | |--||------| | | | 8/20 5. Circuitos de memorização ou intertravamento Memorização ou auto-retenção de uma variável | I0 Q0 | |--||--|--( )--| | Q0 | | |--||--| | ¿É possível com lógica de relés físicos? Aplicação - acionamento por botoeiras de liga e desliga: Lig Des l I0 I1 I2 I3 I4 I5 I6 I7 - GN D + Vc CLP Ge né rico Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 R GN D ~ S K Programa de desligamento liga-desliga com prioridade | I0 I1 Q0 | |--||--|--|/|---( )--| | Q0 | | |--||--| | 9/20 para o Programa de liga-desliga com prioridade para o ligamento | Q0 I1 Q0 | |--||----|/|--|--( )--| | I0 | | |--||---------| | Usando bobinas de set-reset | I0 Q0 | |--||------(S)--| | I1 Q0 | |--||------(R)--| | | | I1 Q0 | |--||------(R)--| | I0 Q0 | |--||------(S)--| | | Qual é a prioridade nos circuitos acima? 10/20 6. Circuito de Detecção de Borda Existem situações no controle discreto em que o estado de uma variável não é suficiente como informação, mas sim o instante de transição de um estado a outro. Diferença entre a extração de uma condição ou de um evento de um sinal. Exemplo de um programa que realiza deteção de borda de subida em uma variável de um CLP. Utiliza-se o conceito de ciclo de varredura: | I0 F1 F0 | |--||----|\|----( )--| | I0 F1 | |--||-----------( )--| | | I0 F0 F1 ¿Como se implementa tal circuito com lógica de relés pura? ¿Como seria um circuito detetor de borda descendente? 11/20 Exemplo de circuito de liga-desliga com uma só botoeira Bot o I0 I1 I2 I3 I4 I5 I6 I7 - GND + Vc CLP Ge né rico Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 R GND ~ K Programa correspondente: | I0 F1 F0 | |--||--|\|---------( )--| | I0 F1 | |--||--------------( )--| | F0 Q0 Q0 | |--||--|\|--|------( )--| | F0 Q0 | | |--|/|--||--| | | | ¿Seria possível fazê-lo com lógica a relés pura? 12/20 S 7. Temporizadores Seguindo o modelo dos antigos relés de tempo, o tipo de temporização mais comum em CLPs é o retardo na energização. Exemplo | I0 3 T0 | |--||----( )--| | | | T0 Q0 | |--||----( )--| | | t > 3s t < 3s I0 t = 3s T0 Q0 Exemplo de uso do temporizador – circuito Estrela-Triângulo para acionamento de motor. 13/20 Esquemas de temporização Temporiozador com retardo no desligamento I0 T T Q0 Sugestão de programa | Q0 T0 Q0 | |--||----|\|--|---------( )--| | I0 | I0 T T0 | |--||---------|--|\|----( )--| Temporizador com retardo na energização e no desligamento t < t1 t > t1 I0 Q0 t1 14/20 t2 Sugestão de programa | I0 t1 T1 | |--||-------------------( )--| | Q0 T2 Q0 | |--||----|\|--|---------( )--| | T1 | T1 t2 T2 | |--||---------|--|\|----( )--| Temporizador de tempo definido t < T t > T I0 Q0 T T Sugestão de programa | I0 T T0 | |--||--|---------( )--| | Q0 | T0 Q0 | |--||--|--|\|----( )--| Temporizador limitado no tempo t < T t > T I0 Q0 T 15/20 Sugestão de programa: | I0 T T0 | |--||--|---------( )--| | | T0 Q0 | | |--|\|----( )--| Temporizador por tempo t apos o desligamento I0 T T Q0 Sugestão de programa: | F0 T0 F0 | |--||----|\|--|----------( )--| | I0 | I0 T T0 | |--||---------|--|\|--|--( )--| | | Q0 | | |--( )--| Oscilador astável t1 t2 Q0 16/20 Sugestão de programa | T1 t2 |--|\|----( | T2 t1 |--||-----( | T2 |--||-----( 17/20 T2| )--| T1| )--| Q0 | )--| 8. Contadores Por intermédio de contadores, é possível quantificar a ocorrência de eventos impulsionais no processo controlado. No contador mais simples possível, o valor da contagem é atribuído ao contador por uma função SET, a função RESET pára a contagem, e a identificação é feita por uma bobina. A cada pulso na bobina a contagem é decrementada, até chegar a zero. Analise o programa abaixo: | I0 5 C0 | |--||----(S)--| | I1 C0 | |--||----( )--| | I2 C0 | |--||----(R)--| | C0 Q0 | |--||----( )--| 18/20 I0 4 3 2 1 0 4 3 I1 I2 Q0 19/20 4 3 9. Exemplo Um vaso misturador possui uma válvula de entrada, um motor misturador e uma única chave de detecção de nível (vide figura). Ambas as válvulas são acionadas por solenóides. A chave de nível fecha quando o vaso está cheio e permanece fechada até que o vaso esteja vazio. [Figura 12.38 - p. 559] Desenhe um diagrama de contatos para que seja feito o seguinte: a) Quando o botão início é pressionado, a válvula de entrada abre até que o vaso fique cheio. b) O misturador então é ligado por 5 minutos. c) A válvula de saída abre até que o vaso fique vazio. 20/20