Você está na página 1de 12

N.

0 - Linguagens de Programação

Linguagem de programação é um conjunto de símbolos e regras que


formam um código capaz de permitir a comunicação entre o usuário e um
determinado equipamento ou sistema. É a forma de representação do programa
de controle.
Existem cinco linguagens de programação de CLP padronizadas. A norma
que deve ser adotada pelos fabricantes de CLP´s é a IEC 1131 – 3.
Para melhor compreensão dos recursos e características de cada uma
delas, mediante uma situação/problema, apresenta-se a solução nas cinco
linguagens padronizadas. Segue abaixo a descrição do processo a ser
implementado, a lista de alocação correspondente e as soluções propostas.

N.1 Situação/Problema:

Deve-se automatizar o “elevador de caixas” ilustrado na figura n.1. Quando


uma caixa acionar o sensor fim de curso S0, o cilindro A avança, elevando o
conjunto até o cilindro B, posteriormente este atuador empurra a caixa para que a
mesma continue seu percurso pela esteira. A seqüência lógica dos movimentos
está ilustrada na figura n.2 através do diagrama trajeto-passo.

B1 B0

CAIXA

A1
S0

A0
A
Figura n.1 – Elevador de Caixas Automatizado

A+ B+ B A
A1
A
A0
B1
B
B0

Figura n.2 – Diagrama Trajeto-Passo

1
Tabela n.1 - Lista de Alocação
Elemento Descrição Endereço
Entradas Digitais
S1 Sensor da caixa %I0.0
A0 Sensor cilindro A recuado %I0.1
A1 Sensor cilindro A avançado %I0.2
B0 Sensor cilindro B recuado %I0.3
B1 Sensor cilindro B avançado %I0.4
Saídas Digitais
A+ Cilindro A avança %Q0.0
A- Cilindro A recua %Q0.1
B+ Cilindro B avança %Q0.2
B- Cilindro B recua %Q0.3

N.2 Diagrama de Contatos (Ladder - LD)

N.2.1 Introdução

O ladder utiliza símbolos gráficos semelhantes àqueles encontrados em


diagramas elétricos, por que estes são muito semelhantes aos diagramas da
lógica de relés, na qual os CLP´s foram criados inicialmente para substituí-los,
esta é a linguagem mais popular e utilizada pelos fabricantes.

N.2.2 Elementos Básicos

A linguagem ladder possui três elementos básicos, vide figura n.3, descritos
a seguir:
 Contato normalmente aberto (NA) – geralmente representa o estado
lógico de uma entrada digital. Quando a entrada está inativa (nível lógico 0), o
contato apresenta-se aberto e quando a entrada está ativa (nível lógico 1), o
contato apresenta-se fechado.
 Contato normalmente fechado (NF) – também pode representar o estado
lógico de uma entrada digital. Quando a entrada está ativa (nível lógico “1”), o
contato apresenta-se aberto e quando a entrada está inativa (nível lógico “0”), o
contato apresenta-se fechado.
 Bobina – a bobina geralmente representa os sinais de saída digital.
Quando ela está inativa, a saída correspondente apresenta-se desligada (nível
lógico “0”) e quando ela está ativa, a saída correspondente apresenta-se ligada
(nível lógico “1”).
Existem ainda outros elementos associados a instruções de contagem,
temporização, comparação, atribuição, entre outras.

contato NA contato NF bobina


( )

Figura n.3 – Elementos básicos da linguagem Ladder

2
N.2.3 Lógicas Básicas

 Lógica “E”: corresponde a uma associação em série de dois ou mais contatos.


Para acionarmos a saída %Q0.0, na figura n.4, a entrada %I0.0 “E” a entrada
%I0.1 devem estar ligadas.

%I0.0 %I0.1 %Q0.0


( )

Figura n.4 – Lógica “E”

 Lógica “OU”: corresponde a uma associação em paralelo de dois ou mais


contatos. Para acionarmos a saída %Q0.0, na figura n.5, a entrada %I0.0 “OU” a
entrada %I0.1 deve estar ligada.

%I0.0 %Q0.0
( )

%I0.1

Figura n.5 – Lógica “OU”

 Auto-retenção: ao acionarmos a entrada %I0.0, a saída %Q0.0, através do seu


contato, se auto-reterá e ficará ligada até que a entrada %I0.1 seja acionada,
desfazendo a auto-retenção.

%I0.0 %I0.1 %Q0.0


( )

%Q0.0

Figura n.6 – Auto-retenção

 Intertravamento: o intertravamento garante que as saídas %Q0.0 e %Q0.1 nunca


sejam acionadas ao mesmo tempo, como mostra a figura n.7.

%I0.0 %Q0.1 %Q0.0


( )

%I0.1 %Q0.0 %Q0.1


( )

3
Figura n.7 – Intertravamento

N.2.4 Solução Problema Proposto

Com base na análise do diagrama de tempo e movimento do sistema a ser


automatizado, elaborou-se o software de controle. A lógica abaixo mostra a
solução elaborada em linguagem Ladder. Para melhor entendimento, deve-se
utilizar a lista de alocação dos elementos de entrada e saída, com seus
respectivos endereços. Os elementos com endereço %MX são flags auxiliares
internos ao CLP.

%I0.0 %M2 %M1


( )

%M1

%M1 %Q0.0
( )

%M1 %I0.2 %Q0.2


( )

%M1 %I0.4 %I0.1 %M2


( )

%M2

%M2 %Q0.3
( )

%M2 %I0.3 %Q0.1


( )

N.3 Lista de Instruções (Statment List – STL, Instruction List – IL)

N.3.1 Introdução

4
Esta é uma linguagem textual e utiliza mnemônicos representativos das
associações e operações lógicas. As instruções são dispostas de maneira a
formar uma lista e possuem a seguinte estrutura básica:

LD %I0.0
AND %M10
ST %Q0.5

Código da Operando
Instrução

Por se tratar de uma linguagem textual, os recursos de visualização do


programa “on line” são limitados ou inexistentes.

N.3.2 Solução Problema Proposto

Abaixo segue a solução do problema elaborado em lista de instruções.

LD %I0.0
OR %M1
ANDN %M2
ST %M1

LD %M1
ST %Q0.0

LD %M1
AND %I0.2
ST %Q0.2

LD %M1
AND %I0.4
OR %M2
ANDN %I0.1
ST %M2

LD %M2
ST %Q0.3

LD %M2
AND %I0.3
ST %Q0.1

N.4 Diagrama de Blocos (Funcional Block Diagram – FDB)

5
N.4.1 Introdução

Nesta linguagem utiliza-se símbolos gráficos semelhantes àqueles


adotados pela lógica digital em sistemas eletrônicos. Os principais “blocos
funcionais” existentes são os seguintes:
 Lógica “E”;
 Lógica “OU”;
 Temporização;
 Contagem;
 Set e Reset.

N.4.2 Solução Problema Proposto

Abaixo segue a solução do problema elaborado em Diagrama de Blocos.

%I0.0
>=1
%M1 &
%M1
%M2

%M1
&
%Q0.0

%M1
&
%I0.2 %Q0.2

%I0.0
&
%M1
>=1
%M2 &
%I0.1 %M2

%M2
&
%Q0.3

6
%M2
&
%I0.3 %Q0.1

N.5 Texto Estruturado (Structured Text - ST)

N.5.1 Introdução

Como o nome já diz, esta é uma linguagem textual e trabalha com


comandos de decisão parecidos com os utilizados em linguagem “C”.

N.5.2 Comandos Básicos

 Comando “IF”:

IF condição THEN

ação;

END_IF;

IF condição 1 THEN

ação 1;

ELSEIF condição 2 THEN

ação 2;

ELSE

ação 3;

END_IF

 Comando “WHILE”

WHILE condição THEN

ação;

END_WHILE;

7
 Comando “REPEAT”

REPEAT

ação;

UNTIL condição END_REPEAT;

 Comando “FOR”

FOR palavra:=valor_inicial TO valor_final DO

ação;

END_FOR;

Nesta linguagem existem apenas as instruções de set e reset das saídas e


flags auxiliares, não há instrução correspondente a da bobina, utilizada em
Ladder.

N.5.2 Solução Problema Proposto

Utilizando-se das ferramentas da linguagem em Texto Estruturado


elaborou-se o seguinte programa como solução para o problema proposto.

IF %I0.0 AND NOT %M2 THEN


SET %M1;
END_IF;

IF %M1 THEN
SET %Q0.0;
END_IF;

IF %M1 AND %I0.2 THEN


SET %Q0.2;
END_IF;

IF %M1 AND %I0.4 AND NOT %I0.1 THEN


SET %M2;
RESET %M1;
END_IF;

IF %M2 THEN
RESET %Q0.2;

8
SET %Q0.3;
END_IF;

IF %M2 AND %I0.3 THEN


RESET %Q0.0;
SET %Q0.1;
END_IF;

IF %M2 AND %I0.1 THEN


RESET %M2;
END_IF;

N.6 Grafcet (Sequential Function Chart – SFC)

N.6.1 Introdução

A linguagem Grafcet teve origem em 1975 na França e é semelhante aos


modelos teóricos formados pelas redes de Petry (Petry Net). O nome Grafcet vem
de GRAPH, por se tratar de um ambiente gráfico e AFCET originário da
Associação Francesa de Cibernética Economia e Técnica.
O conceito básico desta linguagem é bastante simples e está dividido em:
 Passos ou etapas;
 Ações associadas a cada passo;
 Transições e condições entre cada passo.
As ações e condições são implementadas utilizando-se as demais
linguagens padronizadas.
A estrutura desta linguagem foi concebida para a fácil implementação de
soluções em sistemas e processos seqüenciais. Outra característica importante é
a fácil visualização do programa de controle de forma “on line” e em tempo real.

N.6.2 Elementos Básicos

 Etapa inicial: corresponde ao primeiro passo.

 Passos ou etapas: corresponde a um comportamento estável do sistema e


geralmente possui uma ação associada.

passo
ação

9
 Transição: a transição é responsável pela passagem de um passo para outro.
Basicamente a condição associada à transição corresponde a um evento
lógico ou temporal.

N.6.3 Solução Problema Proposto

A solução em Grafcet mostra a facilidade da programação nesta linguagem


para resolução de problemas com características seqüenciais.

0 Passo 0

Transição 0

1 Passo 1

Transição 1

2
Passo 2

Transição 2

3 Passo 3

Transição 3

4 Passo 4

Transição 4

Passo 0:

10
%Q0.1
(R)

Transição 0:

%I0.0
(#)

Passo 1:

%Q0.0
(S)

Transição 1:

%I0.2
(#)

Passo 2:

%Q0.0
(R)
%Q0.2
(S)

Transição 2:

%I0.4
(#)

Passo 3:

11
%Q0.2
(R)
%Q0.3
(S)

Transição 3:

%I0.3
(#)

Passo 4:

%Q0.3
(R)
%Q0.1
(S)

Transição 4:

%I0.1
(#)

N.7 Linguagens Não Padronizadas

Existem fabricantes de CLP`s que adotam linguagens não padronizadas,


sendo utilizadas apenas em seus equipamentos. Um exemplo é o caso da BCM
de Porto Alegre RS, cujos CLP`s utilizam uma linguagem descritiva associada ao
fluxo lógico de “máquinas de estados”.

12

Você também pode gostar