12.05.2013 Views

Diagramas de Contato - IME

Diagramas de Contato - IME

Diagramas de Contato - IME

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Programação <strong>de</strong> CLPs por<br />

<strong>Diagramas</strong> <strong>de</strong> <strong>Contato</strong><br />

1. <strong>Diagramas</strong> <strong>de</strong> <strong>Contato</strong><br />

2. Um CLP Genérico<br />

3. Instruções <strong>de</strong> Entrada e Saída<br />

4. Instruções Booleanas<br />

5. Circuitos <strong>de</strong> Intertravamento<br />

6. Detecção <strong>de</strong> Borda<br />

7. Temporizadores<br />

8. Contadores<br />

9. Exemplo<br />

1/20


1. <strong>Diagramas</strong> <strong>de</strong> <strong>Contato</strong><br />

Os diagramas <strong>de</strong> contato são uma forma <strong>de</strong> programação <strong>de</strong><br />

CLPs por meio <strong>de</strong> símbolos gráficos, representando contatos<br />

(contacts) e bobinas (coils).<br />

Os contatos e bobinas correspon<strong>de</strong>m a variáveis booleanas<br />

armazenadas na memória intermediária do CLP.<br />

Os contatos e bobinas são conectados por ligações (links) em<br />

ramos (rungs) como num diagrama <strong>de</strong> lógica a relé.<br />

As expressões booleanas calculadas a cada ciclo <strong>de</strong><br />

varredura do CLP correspon<strong>de</strong>m à avaliação lógica<br />

seqüencial do diagrama <strong>de</strong> contatos.<br />

Um contato é representado como abaixo, on<strong>de</strong> se i<strong>de</strong>ntifica<br />

um contato, associado à variável booleana A, interna ao CLP,<br />

e suas ligações.<br />

A<br />

--||--<br />

Os contatos são usados como acesso ao estado <strong>de</strong> uma<br />

variável interna no cálculo <strong>de</strong> expressões booleanas.<br />

<strong>Contato</strong><br />

normalment<br />

e aberto<br />

<strong>Contato</strong><br />

normalment<br />

e fechado<br />

A<br />

--||--<br />

A<br />

--|/|--<br />

O estado da ligação à direita é<br />

copiado para a ligação à esquerda<br />

se o estado <strong>de</strong> A é verda<strong>de</strong>iro. Caso<br />

contrário, o estado da ligação à<br />

direita é falso.<br />

O estado da ligação à direita é<br />

copiado para a ligação à esquerda<br />

se o estado <strong>de</strong> A é falso, caso<br />

contrário, o estado da ligação à<br />

direita é verda<strong>de</strong>iro.<br />

2/20


<strong>Contato</strong><br />

sensível à<br />

transição<br />

positiva<br />

A<br />

--|P|--<br />

O estado da ligação à direita é<br />

verda<strong>de</strong>iro por um ciclo <strong>de</strong><br />

varredura se o estado da ligação à<br />

esquerda é verda<strong>de</strong>iro e uma<br />

transição positiva da variável A é<br />

<strong>de</strong>tectada.<br />

Uma bobina é representada como na figura abaixo, on<strong>de</strong><br />

i<strong>de</strong>ntifica-se uma bobina, associada a uma variável booleana<br />

Q.<br />

Q<br />

--( )--<br />

As bobinas alteram os estados das variáveis associadas.<br />

Bobina<br />

normal<br />

Q<br />

--( )--<br />

Bobina<br />

negativa Q<br />

--(\)--<br />

Bobina<br />

Latch<br />

(Set)<br />

Bobina<br />

Latch<br />

(Reset)<br />

Bobina<br />

sensível<br />

à<br />

transição<br />

positiva<br />

Q<br />

--(S)--<br />

Q<br />

--(R)--<br />

Q<br />

--(P)--<br />

O estado da ligação da esquerda é<br />

copiado para a variável Q e para a<br />

ligação à direita.<br />

O estado da ligação à esquerda é<br />

copiado para a ligação à direita, e a<br />

negação do estado da ligação à<br />

esquerda é copiada para a variável<br />

Q.<br />

O estado <strong>de</strong> Q passa para<br />

verda<strong>de</strong>iro quando a ligação à<br />

esquerda vai para verda<strong>de</strong>iro, e não<br />

se altera em caso contrário.<br />

O estado <strong>de</strong> Q passa para falso<br />

quando a ligação à direita vai para<br />

verda<strong>de</strong>iro, e não se altera em caso<br />

contrário.<br />

O estado <strong>de</strong> Q passa para<br />

verda<strong>de</strong>iro por um ciclo <strong>de</strong><br />

varredura cada vez que a ligação à<br />

esquerda vai <strong>de</strong> falso para<br />

verda<strong>de</strong>iro.<br />

3/20


2. Um CLP genérico<br />

Para fins <strong>de</strong> ilustração <strong>de</strong> diversos aspectos da programação<br />

por diagramas <strong>de</strong> contato, introduz-se um CLP ilustrativo:<br />

Informações sobre o CLP:<br />

I0 I1 I2 I3 I4 I5 I6 I7 GND<br />

CLP<br />

Genérico<br />

Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 GND<br />

• 8 entradas a relé, en<strong>de</strong>reçadas pelas variáveis I0 a I7<br />

• 8 saídas a relé, en<strong>de</strong>reçadas pelas variáveis Q0 a Q7<br />

• Variáveis auxiliares, en<strong>de</strong>reçadas por F0, F1, ...<br />

• Temporizadores, en<strong>de</strong>reçados por T0, T1, ...<br />

• Contadores, en<strong>de</strong>reçados por C0, C1, ...<br />

4/20


3. Instruções <strong>de</strong> entrada e saída<br />

I0 I1 I2 I3 I4 I5 I6 I7 GND<br />

CLP<br />

Genérico<br />

Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 GND<br />

Programa básico <strong>de</strong> entrada e saída<br />

Leitura <strong>de</strong> variável negada<br />

Atribuição <strong>de</strong> valor invertido<br />

| I0 Q0 |<br />

|--||------( )--|<br />

| |<br />

| I0 Q0 |<br />

|--|/|-----( )--|<br />

| |<br />

| I0 Q0 |<br />

|--||------(/)--|<br />

| |<br />

5/20<br />

CH<br />

Lam<br />

p<br />

- +<br />

Vc<br />

R S<br />

~


Lógica duplamente invertida<br />

| I0 Q0 |<br />

|--|/|-----(/)--|<br />

| |<br />

As entradas po<strong>de</strong>m também ser <strong>de</strong> natureza invertida, como<br />

contatos e botoeiras normalmente fechadas (NF).<br />

O uso <strong>de</strong> contatos NF no diagrama <strong>de</strong> contatos facilita a<br />

manutenção quando pela disponibilida<strong>de</strong> <strong>de</strong> LEDs no painel<br />

do CLP.<br />

6/20


4. Instruções Booleanas<br />

Operação ‘E’<br />

Operação ‘OU’<br />

Lógica elaborada<br />

| I1 I2 I3 Q0 |<br />

|--||----||----||----( )--|<br />

| |<br />

| I1 Q1 |<br />

|--||--|--( )--|<br />

| I2 | |<br />

|--||--| |<br />

| I3 | |<br />

|--||--| |<br />

| I0 I1 I4 I5 Q0 |<br />

|--||-----||--|--||--|--||----( )--|<br />

| I2 I3 | | |<br />

|--||-----||--| | |<br />

| I1 I2 | |<br />

|--||--|--||--|------| |<br />

| I6 | I7 | |<br />

|--||--|--||--| |<br />

| |<br />

7/20


Programa implementado com flags ou relés auxiliares<br />

| I0 I1 F0 |<br />

|--||----||----------( )--|<br />

| I2 I3 F1 |<br />

|--||----||----------( )--|<br />

| F0 I4 F2 |<br />

|--||------|---||----( )--|<br />

| F1 | |<br />

|--||------| |<br />

| I1 F3 |<br />

|--||------|---------( )--|<br />

| I6 | |<br />

|--||------| |<br />

| I2 F4 |<br />

|--||------|---------( )--|<br />

| I7 | |<br />

|--||------| |<br />

| F3 F4 F5 |<br />

|--||----||----------( )--|<br />

| F2 I5 Q0 |<br />

|--||------|---||----( )--|<br />

| F5 | |<br />

|--||------| |<br />

| |<br />

8/20


5. Circuitos <strong>de</strong> memorização ou intertravamento<br />

Memorização ou auto-retenção <strong>de</strong> uma variável<br />

| I0 Q0 |<br />

|--||--|--( )--|<br />

| Q0 | |<br />

|--||--| |<br />

¿É possível com lógica <strong>de</strong> relés físicos?<br />

Aplicação - acionamento por botoeiras <strong>de</strong> liga e <strong>de</strong>sliga:<br />

I0 I1 I2 I3 I4 I5 I6 I7 GN<br />

D<br />

CLP<br />

Genérico<br />

Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 GN<br />

D<br />

Programa <strong>de</strong> liga-<strong>de</strong>sliga com priorida<strong>de</strong> para o<br />

<strong>de</strong>sligamento<br />

| I0 I1 Q0 |<br />

|--||--|--|/|---( )--|<br />

| Q0 | |<br />

|--||--| |<br />

9/20<br />

K<br />

Lig<br />

Desl<br />

- +<br />

Vc<br />

R S<br />

~


Programa <strong>de</strong> liga-<strong>de</strong>sliga com priorida<strong>de</strong> para o ligamento<br />

Usando bobinas <strong>de</strong> set-reset<br />

| Q0 I1 Q0 |<br />

|--||----|/|--|--( )--|<br />

| I0 | |<br />

|--||---------| |<br />

| I0 Q0 |<br />

|--||------(S)--|<br />

| I1 Q0 |<br />

|--||------(R)--|<br />

| |<br />

| I1 Q0 |<br />

|--||------(R)--|<br />

| I0 Q0 |<br />

|--||------(S)--|<br />

| |<br />

Qual é a priorida<strong>de</strong> nos circuitos acima?<br />

10/20


6. Circuito <strong>de</strong> Detecção <strong>de</strong> Borda<br />

Existem situações no controle discreto em que o estado <strong>de</strong><br />

uma variável não é suficiente como informação, mas sim o<br />

instante <strong>de</strong> transição <strong>de</strong> um estado a outro.<br />

Diferença entre a extração <strong>de</strong> uma condição ou <strong>de</strong> um<br />

evento <strong>de</strong> um sinal.<br />

Exemplo <strong>de</strong> um programa que realiza <strong>de</strong>teção <strong>de</strong> borda <strong>de</strong><br />

subida em uma variável <strong>de</strong> um CLP. Utiliza-se o conceito <strong>de</strong><br />

ciclo <strong>de</strong> varredura:<br />

I0<br />

F0<br />

F1<br />

| I0 F1 F0 |<br />

|--||----|\|----( )--|<br />

| I0 F1 |<br />

|--||-----------( )--|<br />

| |<br />

¿Como se implementa tal circuito com lógica <strong>de</strong> relés pura?<br />

¿Como seria um circuito <strong>de</strong>tetor <strong>de</strong> borda <strong>de</strong>scen<strong>de</strong>nte?<br />

11/20


Exemplo <strong>de</strong> circuito <strong>de</strong> liga-<strong>de</strong>sliga com uma só botoeira<br />

I0 I1 I2 I3 I4 I5 I6 I7 GND<br />

CLP<br />

Genérico<br />

Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 GND<br />

Programa correspon<strong>de</strong>nte:<br />

| I0 F1 F0 |<br />

|--||--|\|---------( )--|<br />

| I0 F1 |<br />

|--||--------------( )--|<br />

| F0 Q0 Q0 |<br />

|--||--|\|--|------( )--|<br />

| F0 Q0 | |<br />

|--|/|--||--| |<br />

| |<br />

¿Seria possível fazê-lo com lógica a relés pura?<br />

12/20<br />

K<br />

Boto<br />

- +<br />

Vc<br />

R S<br />

~


7. Temporizadores<br />

Seguindo o mo<strong>de</strong>lo dos antigos relés <strong>de</strong> tempo, o tipo <strong>de</strong><br />

temporização mais comum em CLPs é o retardo na<br />

energização.<br />

Exemplo<br />

I0<br />

T0<br />

Q0<br />

t < 3s<br />

| I0 3 T0 |<br />

|--||----( )--|<br />

| |<br />

| T0 Q0 |<br />

|--||----( )--|<br />

| |<br />

Exemplo <strong>de</strong> uso do temporizador – circuito Estrela-Triângulo<br />

para acionamento <strong>de</strong> motor.<br />

13/20<br />

t = 3s<br />

t > 3s


Esquemas <strong>de</strong> temporização<br />

Temporiozador com retardo no <strong>de</strong>sligamento<br />

I0<br />

Q0<br />

Sugestão <strong>de</strong> programa<br />

| Q0 T0 Q0 |<br />

|--||----|\|--|---------( )--|<br />

| I0 | I0 T T0 |<br />

|--||---------|--|\|----( )--|<br />

Temporizador com retardo na energização e no<br />

<strong>de</strong>sligamento<br />

I0<br />

Q0<br />

T T<br />

t < t1 t > t1<br />

14/20<br />

t1 t2


Sugestão <strong>de</strong> programa<br />

| I0 t1 T1 |<br />

|--||-------------------( )--|<br />

| Q0 T2 Q0 |<br />

|--||----|\|--|---------( )--|<br />

| T1 | T1 t2 T2 |<br />

|--||---------|--|\|----( )--|<br />

Temporizador <strong>de</strong> tempo <strong>de</strong>finido<br />

I0<br />

Q0<br />

Sugestão <strong>de</strong> programa<br />

| I0 T T0 |<br />

|--||--|---------( )--|<br />

| Q0 | T0 Q0 |<br />

|--||--|--|\|----( )--|<br />

Temporizador limitado no tempo<br />

I0<br />

Q0<br />

t < T t > T<br />

T T<br />

t < T t > T<br />

15/20<br />

T


Sugestão <strong>de</strong> programa:<br />

| I0 T T0 |<br />

|--||--|---------( )--|<br />

| | T0 Q0 |<br />

| |--|\|----( )--|<br />

Temporizador por tempo t apos o <strong>de</strong>sligamento<br />

I0<br />

Q0<br />

Sugestão <strong>de</strong> programa:<br />

Oscilador astável<br />

Q0<br />

T T<br />

| F0 T0 F0 |<br />

|--||----|\|--|----------( )--|<br />

| I0 | I0 T T0 |<br />

|--||---------|--|\|--|--( )--|<br />

| | Q0 |<br />

| |--( )--|<br />

t1 t2<br />

16/20


Sugestão <strong>de</strong> programa<br />

| T1 t2 T2|<br />

|--|\|----( )--|<br />

| T2 t1 T1|<br />

|--||-----( )--|<br />

| T2 Q0 |<br />

|--||-----( )--|<br />

17/20


8. Contadores<br />

Por intermédio <strong>de</strong> contadores, é possível quantificar a<br />

ocorrência <strong>de</strong> eventos impulsionais no processo controlado.<br />

No contador mais simples possível, o valor da contagem é<br />

atribuído ao contador por uma função SET, a função RESET<br />

pára a contagem, e a i<strong>de</strong>ntificação é feita por uma bobina.<br />

A cada pulso na bobina a contagem é <strong>de</strong>crementada, até<br />

chegar a zero.<br />

Analise o programa abaixo:<br />

| I0 5 C0 |<br />

|--||----(S)--|<br />

| I1 C0 |<br />

|--||----( )--|<br />

| I2 C0 |<br />

|--||----(R)--|<br />

| C0 Q0 |<br />

|--||----( )--|<br />

18/20


I0<br />

I1<br />

I2<br />

Q0<br />

4 3 2 1 0 4 3 4 3<br />

19/20


9. Exemplo<br />

Um vaso misturador possui uma válvula <strong>de</strong> entrada, um<br />

motor misturador e uma única chave <strong>de</strong> <strong>de</strong>tecção <strong>de</strong> nível<br />

(vi<strong>de</strong> figura). Ambas as válvulas são acionadas por<br />

solenói<strong>de</strong>s. A chave <strong>de</strong> nível fecha quando o vaso está cheio<br />

e permanece fechada até que o vaso esteja vazio.<br />

[Figura 12.38 - p. 559]<br />

Desenhe um diagrama <strong>de</strong> contatos para que seja feito o<br />

seguinte:<br />

a) Quando o botão início é pressionado, a válvula <strong>de</strong> entrada<br />

abre até que o vaso fique cheio.<br />

b) O misturador então é ligado por 5 minutos.<br />

c) A válvula <strong>de</strong> saída abre até que o vaso fique vazio.<br />

20/20

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!