Escolar Documentos
Profissional Documentos
Cultura Documentos
CONTROLADORES LGICOS
PROGRAMVEIS (CLPs)
Linguagem de Lista de Instrues
1 Introduo
A linguagem de Lista de Instrues (LI), tambm comumente referenciada pelo nome original da
lngua inglesa, Instruction List (IL), define mnemnicos (auxiliar de memria) como feito na
linguagem assembly utilizada nos microprocessadores e microcontroladores. Os mnemnicos
representam operaes lgicas booleanas e comandos de transferncia de dados.
Em relao as demais linguagens, apresenta as seguintes caractersticas:
Vantagens
Desvantagens
A LI a linguagem ideal para resolver problemas simples e pequenos em que existem poucas
quebras no fluxo de execuo do programa. , portanto, particularmente adequada para CLPs de
pequeno porte.
Essa linguagem pode ser usada para descrever o comportamento de:
Funes;
Blocos de funes;
Programas
2 - Principos bsicos
A linguagem de Lista de Instrues semelhante ao cdigo assembly com comandos load e store.
Ela usa o conceito de acumulador para armazenar os resultados intermedirios.
O operador indica o tipo de operao a ser feito entre o resultado atual contido no
acumulador e o operando.
3 - Sintaxe
As regras principais de formao de um programa em linguagem de Lista de Instrues so:
Cada instruo pode ser precedida por um rtulo (elemento opcional) que indicado com
um nome seguido de dois pontos :.
Caso seja necessria a incluso de mais de um operando, estes devem ser separados por
vrgulas.
Se for desejada a incluso de comentrio, ele deve ser o ltimo elemento da linha.
Exemplo 1:
Rtulo
Incio
Operador
LD
AND
Operando
% IX1
% MX3
Comentrio
(* boto pressionado?*)
(* comando vlido*)
3
ST
% QX1
(* liga o motor)
O valor da entrada % IX1 carregado para o acumulador, em seguida feita um operao lgica
AND entre o contedo do acumulador e da memria % MX3. O resultado transferido para a sada
%QX1.
4. Rtulo (etiqueta)
Cada instruo pode ser precedida por um rtulo, que um nome seguido do caractere :. Ele
tambm pode ser colocado em uma linha que no contenha nenhuma instruo. Os rtulos so
utilizados como operandos PR certas instrues tais como saltos. A sua nomenclatura deve obedecer a
seguintes regras:
5 - Modificadores de instrues
A lista a seguir representa os modificadores permitidos para as instrues da linguagem. Devem ser
anexados aps o nome da instruo, sem caractere separador.
( = operao adiada;
C = operao condicional.
O Modificador N indica que o operando deve ser invertido antes de ser utilizado pela instruo.
Por exemplo, a instruo ANDN % IX1 interpretada como o contedo de %IX1 invertido e com o
valor de resultado feita ma operao lgica AND com o acumulador.
O Modificador abrir parnteses ( indica que a avaliao da instruo deve ser adiada at que seja
encontrado o prximo fechar parnteses ).
O modificador C indica que a instruo deve ser executada somente se o contedo atual do
acumulador tiver lgico verdadeiro (ou diferente de zero para tipos no booleanos). O modificador
C pode ser combinado com o modificador N para indicar que a instruo no deve ser executada,
a menos que o resultado seja falso (ou 0 para tipos no booleanos).
A tabela 1.1 apresenta os principais comandos da linguagem de Lista de Instrues.
Operador Modificador
LD
N
ST
N
Operando
S
R
AND
&
OR
XOR
ADD
SUB
MUL
DIV
GT
GE
BOOL
BOOL
(
(
(
(
(
(
(>=)
Comparao (Equl to) igual a (=)
Comparao (Not Equal) diferente de (< >)
Comparao (Less Than) menor que (<)
Comparao (Less or Equal) menor ou igual que
N, (
N, (
N, (
N, (
EQ
NE
LT
LE
Descrio/ significado
Carrega o operando para o acumulador
Armazena o contedo do acumulador no local
(<=)
JMP
C, N
Nome do rtulo
Desvia para o rtulo Nome_do_Rtulo
CAL
C, N
Nome da Funo Invoca a execuo de um bloco de funes
RET
C, N
Retorna de uma funo ou bloco de funo.
Tabela 1 Principais operadores da linguagem de Lista de Instrues.
5.1 - Operador LD
Mnemnico da palavra inglesa LOAD
Modificador: N
5.2 - Operador ST
5
Modificador: N
Exemplo 2: Implemente um programa em Ladder e em Lista de instrues (LI) que tenha a tarefa de
acender a lmpada L sempre que a chave CH fechar.
Soluo: Um programa simples no qual a atuao de uma entrada causa a atuao de uma sada, isto
, utiliza as duas instrues principais que so leitura de varivel (LD) e atribuio de valor (ST), ter
o seguinte aspecto , em Ladder e LI.
Ladder
Lista de Instrues
LD
I1
ST
Q1
O processador efetua a leitura de I1 continuamente e executa um programa que atribui o valor lido
sada Q1. Assim, se a chave CH for fechada, far com que I1 passe ao nvel lgico 1, o que vai faze
com que L tambm passe ao nvel lgico 1, atuando sobre a sada e, conseqentemente, acedendo a
lmpada L.
Exemplo 3: Para um contato A do tipo NF, preciso fazer a leitura de varivel negada LDN,
conforme visto a seguir:
Ladder
Lista de Instrues
LDN
I1
ST
Q1
Neste caso, a partir da instruo LDN, o processador efetua a leitura de complemento lgico de I1 e
atribui o valor lido sada Q1.
Exemplo 4: Operao E (AND) Dada a equao lgica L= I1. I2. I3, implemente a funo lgica
no diagrama Ladder e em Lista de Instrues.
Soluo:
Lista de Instrues
Ladder
LDN
I1
AND
I2
AND
I3
ST
Q1
Exemplo 5: Operao OU (OR) Dada a equao lgica Q1= I1+ I2+ I3, implemente a funo
lgica no diagrama Ladder e em Lista de Instrues.
Soluo:
Ladder
Lista de Instrues
LD
I1
OR
I2
ORN
I3
ST
Q1
5.3. Operador S
uma instruo de memorizao. A letra S mnemnico da palavra inglesa set.
Operao: Fora uma varivel booleana a ir para o estado lgico 1 se o acumulador estiver com o
valor VERDADEIRO (nvel Lgico 1). Nenhuma operao realizada se o operador estiver com o
valor lgico FALSO (nvel lgico 0).
Modificador: nenhum.
Exemplo 6: Faa o diagrama Ladder e a lista de Instrues correspondentes a dois contatos I1 e I2,
NA e NF respectivamente, em paralelo, e um contato I3, NF, em srie com ambos. O outro lado do
contato I3 est conectado bobina do tipo set de um rel Q1 de auto reteno.
Lista de Instrues
Ladder
LD
I1
ORN
I2
ANDN
I3
Q1
5.4. Operador R
um opeador que serve para limpar o contedo da memria. Faz com que o contedo da
memria v para o valor zero. A letra R um mnemnico da palavra inglesa reset.
Operao: fora uma varivel booleana a ir para o valor lgico 0 se o valor do acumulador for
VERDADEIRO ( nvel lgico 1). Nenhuma operao realizada se o valor do acumulador for FALSO
(nvel lgico 0).
Modificador: Nenhum.
Ladder
LD
I.1
ORN
I.2
ANDN
I.3
Q.1
6 Operaes adiadas.
8
Como a linguagem LI s possui um registrador, certas operaes podem ser adiadas para alterar a
ordem natural da execuo das instrues. Os parnteses so utilizados para representa as operaes
adiadas.
Exemplo 8:
Ladder
Lista de Instrues
LD
I.1
AND(N
I.2
ORN
I.3
)
ST
Q.1
%IX1
(%IX2
Acumulador: %IX2
Na terceira linha feita a operao OR %IX3 com o contedo atual do acumulador, neste caso
%IX2.
Na quarta linha, ao encontrar o operador ), retirado o contedo da pilha (%IX1) e executada a
operao adiada (AND) com o resultado atual do acumulador. Finalmente o resultado transferido
para a sada pela instruo: ST
%QX1.
Existem duas maneiras vlidas para implementar a operao adiada do exemplo anterior:
carregamento explcito do operador ou forma simplificada.
Num
1
Descrio/exemplo
Carregamento explcito do operador
AND (N
LD
%IX1 (nota1)
ORN %IX3
2
)
Forma simplificada
AND (N
%IX2
ORN
%IX3
)
Nota 1: No formato 1 o operador LD pode ser modificado ou substitudo por outra operao ou
chamada de funo.
Figura 9: Duas maneiras de programa instrues adiadas.
Exemplo 9:
Deseja-se avaliar o resultado da seguinte expresso lgica:
Res:= a1+(a2(a3+a4) a5) + a6
Como pode ser observado, algumas expresses so avaliadas antes das outras, especificadas com a
utilizao de parntese para indicar a maior prioridade. Uma implementao em LI pode ser:
LD
a1
(*acumulador = a1; *)
(*pilha: {}; *)
OR(
LD
(*OR adiado*)
a2
(*acumulador =a2*)
10
A(*AND adiado*)
a3
(*acumulador = a3*)
(*pilha: {a1 OR; A2 AND};*)
OR
a4
(*resultado = a3 OR a4; *)
(*executa o ltimo elemento da pilha (a2 AND)*)
(*com o contedo atual do acumulador*)
(*acumulador = a2 AND (a3 OR a4;*)
(*pilha: {a1 OR}*)
AND
a5
ST
resultado
(*pilha: {};*)
OR
a6
(*acumulador = a1+(a2(a3+a4)a5)+a6;*)
ST
resultado
(*resultado = acumulador*)
Exemplo 10: Dada a equao lgica Q1= (I1. I2) + (I3. I4), implemente, em Ladder e em Lista de
Instrues.
Ladder
Lista de Instrues
LD
I.1
AND
I.2
OR(
I.3
ANDN
I.4
)
ST
Q.1
Este mesmo programa pode ser reescrito utilizando rels auxiliares, isto , regies de memria
interna utilizadas para armazenamento temporrio de informaes identificadas como M1, M2, M3 e
assim sucessivamente. vantajoso, quanto clareza do programa, porm desvantajoso em relao ao
uso da quantidade de memria.
Desta maneira, o programa anterior pode ser refeito apresentando o mesmo comportamento sob o
ponto de vista lgico, conforme ilustra a Figura.
11
Ladder
Lista de Instrues
LD
I1
AND
I2
ST
M1
LD
I3
ANDN
I4
OR
M1
ST
Q1
Lista de Instrues
LD
I1
ORN
I2
AND(N
I3
OR
I4
)
ST
Q1
12
Lista de Instrues
LD
I1
ORN
I2
ST
M1
LDN
I3
OR
I4
AND
M1
ST
Q1
Exemplo 12: Dada a equao lgica Q1 = I1.I2 + I3(I4+I5), implemente em Ladder e LI.
Soluo: A figura 14 mostra a soluo.
Ladder
Lista de Instrues
LD
I1
AND
I2
OR(N
I3
AND(N
I4
OR
I5
)
)
ST
Q1
Lista de Instrues
LD
I1
AND
I2
ST
M1
LDN
I4
OR
I5
ANDN
I3
OR
M1
ST
Q1
exemplo
13
Ladder
Mitsubishi
LD
LDI
AND
ANI
OR
ORI
OUT
OMRON
LD
LD NOT
AND
AND NOT
OR
OR NOT
OUT
SIEMENS S7-200
LD
LDN
A
AN
O
ON
=
8 Temporizadores.
A Figura 16 encontra se a implementao de um temporizador no CLP IPC PS1 (Festo).
Ladder
14
Lista de Instrues
CAL T1 (IN:=%IX1, PT:= T#20s)
LD
T1.Q
ST
%QX1
A figura 17 mostra outra implementao em controlador que segue a norma IEC 61131-3
Ladder
Lista de Instrues
(*Network 0*)
LD
%I0.0
TON
T1, 100
ST
%Q0.0
Figura 17 Implementao de um temporizador TON no CLP que segue a norma IEC 61131-3
I0.0
TON
T1, 100
(*Network 1*)
LD
T1
Q0.0
15
%TM1
LD
%I0.1
IN
OUT_BLK
LD
ST
%Q0.3
END_BLK
Figura 19 CLPs da famlia Twido Ladder e Lista de Instruo
As instrues podem conter todos os tipos de operador de entrada padro, tais como:
9 Contadores.
Os blocos podem ser chamados de vrias maneiras e os fabricantes tm alguma liberdade de
implementao.
Pela norma IEC 61131-3 as funes podem ser chamadas diretamente, sem a necessidade de um
operador que as preceda. De fato, o nome da funo pode ser considerado um operador. Os parmetros
passados so: o endereo do contador, o contato que est ligado entrada reset e o valor de PV.
Ladder
Lista de Instrues
CAL T1 (IN:=%IX1, PT:= T#20s)
LD
T1.Q
ST
%QX1
Figura 20 Implementao de um contador crescente em um CLP que segue a norma IEC 61131-3
16
Outra forma ainda seguida pela Siemens na sua linha de CLPs de pequeno porte (S7-200). A
figura 21 ilustra uma possvel implementao nesses controladores.
Ladder
Lista de Instrues
(*Network 0*)
LD
I0.0
LD
I0.1
CTU C2, 20
(*Network 1*)
LD
C2
Q0.0
A figura 22 exibe a implementao dos CLPs da famlia Twido para um contador de ordem
crescente.
BLK
Lista de Instrues
%C8
LD
%I1.1
R
LD
%I1.2
AND
%M0
CU
END_BLK
LD
%C8.D
ST
%Q0.0
17