Você está na página 1de 11

Disciplina de CLP – Controladores Lógicos Programáveis

Prof. Filipe Trindade

Linguagens de Programação

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 padronizações mundiais de linguagens adotadas pelos
fabricantes de CLP`s, conforme a norma IEC 1131:
 Diagrama de contatos (Ladder Diagram – Ladder Logic): utiliza símbolos gráficos
semelhantes àqueles utilizados em diagramas elétricos.

 Lista de instruções (Statement List - STL - Instruction List – IL): utiliza


mnemônicos representativos das associações e operações lógicas.

 Diagrama de blocos (Control System Flowchart - CSF - Functional Block


Diagrams ): utiliza símbolos gráficos iguais àqueles adotados pela lógica digital em
sistemas eletrônicos.

 Texto estruturado (Structured Text): utiliza funções semelhantes àquelas


utilizadas na linguagem “C”.

 Grafcet (Sequential Function Chart - SFC): é uma linguagem semelhante aos


modelos teóricos formados pelas redes de Petry. O grafcet uItiliza as demais
linguagens para compor o programa.

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 cujo seus CLP`s utilizam uma linguagem descritiva associada ao
fluxo lógico de “máquinas de estados”.
Lista de Instruções (Statement List – STL - Instruction List – IL)

LD %I1.0 N  Negação
AND %M10 R  Borda de subida (rising)
ST %Q2.5 F  Borda de descida (falling)
[  Comparação

Código Operando
Instrução

Exemplo 1:

| I1.0 I1.1 Q2.0 |


A |---| |---| |---+--------------------------------------------------------( )-------- |
| I1.2 | |
|---| |----------+ |
| |
| I1.0 I1.1 Q2.0 |
B |---| |--+--| |---+-----------------------------------------------------( )-------- |
| | I1.2 | |
| +--| |---+ |
| |
| I1.0 I1.1 Q2.0 |
C |---| |---| / |---+--------------------------------------------------------( )-------- |
| I1.2 I1.3 | |
|---| / |---| |---+ |
| |

A LD I1.0
AND I1.1
OR I1.2
ST Q2.0

B LD I1.0
AND( I1.1
OR I1.2
)
ST Q2.0

C LD I1.0
ANDN I1.1
OR(N I1.2
AND I1.3
)
ST Q2.0
Exemplo 2: Comparação com linguagem ladder

I1.0
LD I1.0 |---| |------------

LD TRUE |-------------------

I1.0
LDN I1.0 |---| / |------------
OR I1.1 | I1.1
|---| |------------

LDF I1.0 I1.0 I1.1


ANDN I1.1 |---| N |---| |-----

LDR I1.0 I1.0 I1.1


ANDN I1.1 |---| P |---| / |-----

Q2.0
ST Q2.0 -----------( )-----|

Q2.0
STN Q2.0 -----------( )-----|

Q2.0
S Q2.0 -----------( S )---|

Q2.0
R Q2.0 -----------( R )---|

LD I1.0 I1.0 SR5


SR5 |---| |---------------------------( C )---|

LD I1.0
AND( [MW0>10] I1.0 Q2.0
) |---| |------ MW0>10 ------( )---|
ST Q2.0

Exemplo 3: tratamento lógico para bobinas

| I1.0 I1.1 I1.2 Q2.0 |


|---| |---| |---+---| |-------------------------------------------------( )-------- |
| | I1.3 Q2.1 |
| MPS +---| |-------------------------------------------------( )-------- |
| | I1.4 Q2.2 |
| +---| |-------------------------------------------------( )-------- |
| MRD | I1.5 Q2.3 |
| +---| |-------------------------------------------------( )-------- |
| |
MPP
LD I1.0
AND I1.1
MPS MPS (Memory PuSh)
AND I1.2
ST Q2.0
MRD MRD (Memory ReaD)
AND I1.3
ST Q2.1
MRD
AND I1.4
ST Q2.2
MPP MPP (Memory PoP)
AND I1.5
ST Q2.3

Temporizadores:

TM1
| I1.0 Q2.2 |
|---| |--------------- IN TM Q -------------------------( )-----|
| |
| MODE: TON |
| TB: 1S |
| |
| TM.P: 10 |
| |

LD I1.0
IN TM1
LD Q
ST Q2.3

Contadores:

C0
| I1.0 |
|---| |-------------- R |
| E |
| S |
| I1.1 I1.2 D |
|---| |---| |------- CU |
| F |
| CD |
| |
| C0.D Q2.0 |
|---| |-----------------------------------------------------------( )-------- |

LD I1.0 CU C0
R C0 LD C0.Q
LD I1.1 ST Q2.0
AND I1.2
Diagrama de Blocos (Control System Flowchart – CSF - Functional Block
Diagrams)

Lógica “E”

I1.0 | I1.0 I1.1 I1.2 Q2.0 |


I1.1  |---| |---| |---| |------------------------------( )----- |
I1.2 Q2.0 | |

Lógica “OU”

| I1.0 Q2.0 |
I1.0 |---| |-----+--------------------------------------( )---- |
I1.1 >=1 | I1.1 | |
Q2.0 |---| |-----+ |
| |

Exemplos:

I1.0
 | I1.0 I1.1 Q2.0 |
I1.1 |---| / |---| |----+---------+--( )------ |
>=1 | I1.2 I1.3 | | Q2.1 |
Q2.0 |---| |---| |----+ +--( )------|
I1.2
 Q2.1
I1.3

I1.1 I1.0 | I1.0 Q2.0 |


>=1 >=1 |---| |-------------+----( )---- |
I1.2 Q2.0 | I1.1 I1.3 | |
|---| |---+--| |--+ |
 | I1.2 | |
I1.3 |---| |---+ |
| |

Setar e Resetar:
| I1.0 Q2.0 |
I1.0 S |---| |-----------------------------------( S )---- |
M1 R Q Q2.0 | M1 Q2.0 |
|---| |-----------------------------------( R )---- |
Borda:

I1.0 | I1.0 I1.1 Q2.0 |


 |---| |---| / |---| P |---+--------( )--- |
I1.1 (#) | I1.2 | |
>=1 |---| |-------------------+ |
I1.2 Q2.0 | |

Temporizadores:

TM1
TM1 | I1.0 Q2.2 |
I1.0 Q2.0 |---| |------ IN TM Q -------------------------( )----- |
| |
| MODE: TON |
| TB: 1S |
| |
| TM.P: 10 |
| |

Contadores:

C0
| I1.0 |
I1.0 |---| |-------------- R |
| E |
I1.1 Q2.0 | S Q2.0 |
| I1.1 D -------------------( )--- |
|---| |-------------- CU |
| F |
| CD |
| |
Texto Estruturado (Structured Text)

Comando “IF”:

IF condição THEN

ação;

END_IF;

IF condição THEN

ação 1;

ELSEIF condição THEN

ação 2;

ELSE ação 3;

END_IF;

IF I1.0 AND I1.1 THEN


RESET Q2.0;
SET M1;
MW1:=MW2+10;
END_IF;

Comando “WHILE”:

WHILE condição DO

ação;

END_WHILE

WHILE MW4<12 DO
INC MW4;
SET Q2.0;
END_WHILE
Comando “REPEAT”:

REPEAT

ação;

UNTIL condição END_REPEAT;

REPEAT
INC MW4;
SET Q2.0;
UNTIL MW4>12 END_REPEAT;

Comando “FOR”:

FOR palavra := valor _inicial TO valor_final DO

ação;

END_FOR

FOR MW4:=0 TO 5 DO
SET Q2.0;
END_FOR

Sub-rotina:

IF I1.0 THEN
SR4;
END_IF;

RETURN;

Comando EXIT:

WHILE MW1<30 DO
MW2:=0;
REPEAT
IF I1.0 THEN
MW5:=MW5+1;
END_IF;
IF MW5>20 THEN
EXIT;
END_IF;
INC MW2;
UNTIL MW2<10 END_REPEAT;
INC MW1;
END_WHILE;

Obs: o comando EXIT é utilizado com os comandos WHILE, REPEAT e FOR


Temporizadores:

IF I1.0 THEN
START TM1;
END_IF;

IF NOT I1.0 THEN


DOWN TM1;
END_IF;

Contadores:

IF I1.0 THEN
RESET C0;
END_IF;

IF I1.1 THEN
SET C0;
END_IF;

IF I1.2 THEN
UP C0;
END_IF;

IF I1.3 THEN
DOWN C0;
END_IF;

IF C0.D THEN
SET Q2.0;
END_IF;

IF NOT C0.D THEN


RESET Q2.0;
END_IF;
Grafcet

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


utilizadas nas redes de Petry. O nome Grafcet vem de <graph> porque é um
ambiente gráfico e AFCET (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, transições e condições associadas às ações. Sendo que
cada ação e transição pode ser implementada através das demais linguagens
padronizadas.

Elementos Básicos do Grafcet:

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


geralmente possui uma ação associada.

 Etapa inicial: corresponde ao primeiro passo.

 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.
Exemplo:

Você também pode gostar