Buscar

CLP - Apostila Linguagem Lista de Instrucoes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CENTRO UNIVERSITÁRIO ANHANGUERA
CONTROLADORES LÓGICOS PROGRAMÁVEIS
Linguagem de Programação: Lista de Instruções
 
CENTRO UNIVERSITÁRIO ANHANGUERA
DE SANTO ANDRÉ 
 
 
 
 
 
 
CONTROLADORES LÓGICOS PROGRAMÁVEIS
 
Linguagem de Programação: Lista de Instruções
 
 
 
 
 
Prof. Heliliano Carlos Sartori Guedes
1 
CENTRO UNIVERSITÁRIO ANHANGUERA 
CONTROLADORES LÓGICOS PROGRAMÁVEIS 
Linguagem de Programação: Lista de Instruções 
 
Prof. Heliliano Carlos Sartori Guedes 
 
 
2 
 
 
CONTEÚDO 
 
 
1 – Introdução .................................................................................................... 3 
2 - Princípios básicos .......................................................................................... 4 
3 - Sintaxe .......................................................................................................... 4 
4. Rótulo (etiqueta) ............................................................................................ 5 
5 - Modificadores de instruções ......................................................................... 6 
5.1 - Operador LD ............................................................................................ 8 
5.2 - Operador ST ............................................................................................ 8 
5.3. Operador S ............................................................................................ 10 
5.4. Operador R ............................................................................................ 11 
6 – Operações adiadas ..................................................................................... 12 
7 - Mnemônicos de alguns fabricantes ............................................................. 18 
8 – Temporizadores. ......................................................................................... 18 
9 – Contadores ................................................................................................. 21 
 
 
Linguagem de Programação: Lista de Instruções
 
1 – Introdução 
 
A linguagem de Lista de Instruções (LI), também comumente referenciada pelo nome original da 
língua inglesa, Instruction List (IL), define mnemônicos (auxiliar de memória) como é feito na 
linguagem assembly utilizada nos microprocessadores e microcontroladores. Os mnemônicos 
representam operações lógicas booleanas e comandos de transferência de dados.
Em relação as demais linguagens, apresenta as seguintes características:
Vantagens 
• Correspondência entre c
facilitando a estimativa do tempo de execução do programa.
• Documentação mais compacta do que a equivalente com relés.
 
Desvantagens 
• Necessidade de familiarização do operador com álgebra booleana.
• Necessidade de uma certa noção de programação em assembly.
• É normalmente difícil e trabalhoso realizar eventuais alterações no código já 
implementado. 
 
A LI é a linguagem ideal para resolver problemas simples e pequenos em que existem poucas 
quebras no fluxo de execução do programa. É, portanto, particularmente adequada para CLPs de 
pequeno porte. 
Essa linguagem pode ser usada para descrever o comportamento de:
• Funções; 
• Blocos de funções; 
• Programas 
 
Linguagem de Programação: Lista de Instruções 
A linguagem de Lista de Instruções (LI), também comumente referenciada pelo nome original da 
língua inglesa, Instruction List (IL), define mnemônicos (auxiliar de memória) como é feito na 
ly utilizada nos microprocessadores e microcontroladores. Os mnemônicos 
representam operações lógicas booleanas e comandos de transferência de dados. 
Em relação as demais linguagens, apresenta as seguintes características: 
Correspondência entre comandos da linguagem e as instruções assembly do CLP, 
facilitando a estimativa do tempo de execução do programa. 
Documentação mais compacta do que a equivalente com relés. 
Necessidade de familiarização do operador com álgebra booleana. 
idade de uma certa noção de programação em assembly. 
É normalmente difícil e trabalhoso realizar eventuais alterações no código já 
A LI é a linguagem ideal para resolver problemas simples e pequenos em que existem poucas 
execução do programa. É, portanto, particularmente adequada para CLPs de 
Essa linguagem pode ser usada para descrever o comportamento de: 
 
3 
A linguagem de Lista de Instruções (LI), também comumente referenciada pelo nome original da 
língua inglesa, Instruction List (IL), define mnemônicos (auxiliar de memória) como é feito na 
ly utilizada nos microprocessadores e microcontroladores. Os mnemônicos 
omandos da linguagem e as instruções assembly do CLP, 
É normalmente difícil e trabalhoso realizar eventuais alterações no código já 
A LI é a linguagem ideal para resolver problemas simples e pequenos em que existem poucas 
execução do programa. É, portanto, particularmente adequada para CLPs de 
 
Linguagem de Programação: Lista de Instruções
 
2 - Princípios básicos 
 
A linguagem de Lista de Instruções é s
Ela usa o conceito de acumulador para armazenar os resultados intermediários.
• Cada instrução utiliza ou modifica o valor de um único registrador denominado registro 
de resultado ou acumulador.
• As instruções são executadas no conteúdo do acumulador.
• O operador indica o tipo de operação a ser feito entre o resultado atual contido no 
acumulador e o operando.
• O resultado da operação é armazenado no próprio acumulador.
3 - Sintaxe 
 
As regras principais de formação de um programa em linguagem de Lista de Instruções são:
• Cada instrução deve começar em uma nova linha
• Cada instrução pode ser precedida por um rótulo (elemento opcional) que é indicado com 
um nome seguido de dois pontos “:”.
• Uma instrução é com
• O operador pode ou não incluir um modificador.
• Caso seja necessária a inclusão de mais de um operando, estes devem ser separados por 
vírgulas. 
• Se for desejada a inclusão de comentário, ele 
• Um comentário é iniciado pela seqüência de caracteres (* e terminado pela seqüência*).
• Linhas em branco podem ser inseridas entre instruções.
• Um comentário pode ser colocado em linha sem instruções.
 
Esta estrutura pode ser verificada na Figura 1
 
Linguagem de Programação: Lista de Instruções 
 
A linguagem de Lista de Instruções é semelhante ao código assembly com comandos load e store. 
Ela usa o conceito de acumulador para armazenar os resultados intermediários. 
Cada instrução utiliza ou modifica o valor de um único registrador denominado registro 
de resultado ou acumulador. 
struções são executadas no conteúdo do acumulador. 
O operador indica o tipo de operação a ser feito entre o resultado atual contido no 
acumulador e o operando. 
O resultado da operação é armazenado no próprio acumulador. 
de formação de um programa em linguagem de Lista de Instruções são:
Cada instrução deve começar em uma nova linha 
Cada instrução pode ser precedida por um rótulo (elemento opcional) que é indicado com 
um nome seguido de dois pontos “:”. 
Uma instrução é composta de operador e operandos ( instrução = operador + operandos).
O operador pode ou não incluir um modificador. 
Caso seja necessária a inclusão de mais de um operando, estes devem ser separados por 
Se for desejada a inclusão de comentário, ele deve ser o último elemento da linha.
Um comentário é iniciado pela seqüência de caracteres (* e terminado pela seqüência*).
Linhas em branco podem ser inseridas entre instruções. 
Um comentário pode ser colocado em linha sem instruções. 
ser verificada na Figura 1 e no Exemplo 1. 
4 
emelhante ao código assembly com comandos load e store. 
Cada instrução utiliza ou modifica o valor de um único registrador denominado registro 
O operador indica o tipo de operação a ser feito entre o resultado atual contido no 
de formação de um programa em linguagem de Lista de Instruções são: 
Cada instrução pode ser precedida por um rótulo (elemento opcional) que é indicado composta de operador e operandos ( instrução = operador + operandos). 
Caso seja necessária a inclusão de mais de um operando, estes devem ser separados por 
deve ser o último elemento da linha. 
Um comentário é iniciado pela seqüência de caracteres (* e terminado pela seqüência*). 
 
Linguagem de Programação: Lista de Instruções
 
Figura 1 –
 
Exemplo 1: 
Rótulo Operador
Início 
 
 
 
O valor da entrada % IX1 é carregado para o acumulador, em seguida 
AND entre o conteúdo do acumulador e da memória % MX3. O resultado é transferido para a saída 
%QX1. 
4. Rótulo (etiqueta) 
 
Cada instrução pode ser precedida
também pode ser colocado em uma linha que não contenha nenhuma instrução. Os rótulos são 
utilizados como operandos PR certas instruções tais como saltos. A sua nomenclatura deve obedecer 
a seguintes regras: 
• O comprimento não deve exceder 16 caracteres.
• O primeiro caractere deve ser uma letra.
• Os caracteres restantes podem ser letras, números ou símbolo “_” (sublinhado).
• Não pode haver no mesmo programa dois rótulos iguais.
 
Linguagem de Programação: Lista de Instruções 
– Estrutura de uma linha de instrução da linguagem LI. 
Operador Operando Comentário
LD % IX1 (* botão pressionado?*)
AND % MX3 (* comando válido*)
ST % QX1 (* liga o mot
O valor da entrada % IX1 é carregado para o acumulador, em seguida é feita um operação lógica 
AND entre o conteúdo do acumulador e da memória % MX3. O resultado é transferido para a saída 
Cada instrução pode ser precedida por um rótulo, que é um nome seguido do caractere “:”. Ele 
também pode ser colocado em uma linha que não contenha nenhuma instrução. Os rótulos são 
utilizados como operandos PR certas instruções tais como saltos. A sua nomenclatura deve obedecer 
O comprimento não deve exceder 16 caracteres. 
O primeiro caractere deve ser uma letra. 
Os caracteres restantes podem ser letras, números ou símbolo “_” (sublinhado).
Não pode haver no mesmo programa dois rótulos iguais. 
5 
 
Comentário 
(* botão pressionado?*) 
(* comando válido*) 
(* liga o motor) 
é feita um operação lógica 
AND entre o conteúdo do acumulador e da memória % MX3. O resultado é transferido para a saída 
por um rótulo, que é um nome seguido do caractere “:”. Ele 
também pode ser colocado em uma linha que não contenha nenhuma instrução. Os rótulos são 
utilizados como operandos PR certas instruções tais como saltos. A sua nomenclatura deve obedecer 
Os caracteres restantes podem ser letras, números ou símbolo “_” (sublinhado). 
 
Linguagem de Programação: Lista de Instruções
 
5 - Modificadores de ins
 
A lista a seguir representa os modificadores permitidos para as instruções da linguagem. Devem 
ser anexados após o nome da instrução, sem caractere separador.
• N = inversão lógica do operando;
• ( = operação adiada; 
• C = operação condicional.
 
O Modificador “N” indica que o operando deve ser invertido antes de ser utilizado pela instrução. 
Por exemplo, a instrução ANDN % IX1 é interpretada como “o conteúdo de %IX1 é invertido e com o 
valor de resultado é feita ma operação lógica AND com o acumulador”.
O Modificador abrir parênteses “
seja encontrado o próximo fechar parênteses “
O modificador “C” indica que a instrução deve ser executada somente se o conteúdo atual do 
acumulador tiver lógico verdadeiro (ou diferente de zero para tipos não booleanos). O modificador 
“C” pode ser combinado com o modificador “N” para indicar que a instrução não deve ser executada, 
a menos que o resultado seja falso (ou 0 para tipos não booleanos). 
A tabela 1.1 apresenta os principais comandos da linguagem de Lista de Instruções.
 
Linguagem de Programação: Lista de Instruções 
Modificadores de instruções 
A lista a seguir representa os modificadores permitidos para as instruções da linguagem. Devem 
ser anexados após o nome da instrução, sem caractere separador. 
N = inversão lógica do operando; 
 
C = operação condicional. 
icador “N” indica que o operando deve ser invertido antes de ser utilizado pela instrução. 
Por exemplo, a instrução ANDN % IX1 é interpretada como “o conteúdo de %IX1 é invertido e com o 
valor de resultado é feita ma operação lógica AND com o acumulador”. 
O Modificador abrir parênteses “(“ indica que a avaliação da instrução deve ser adiada até que 
seja encontrado o próximo fechar parênteses “)”. 
O modificador “C” indica que a instrução deve ser executada somente se o conteúdo atual do 
co verdadeiro (ou diferente de zero para tipos não booleanos). O modificador 
” pode ser combinado com o modificador “N” para indicar que a instrução não deve ser executada, 
a menos que o resultado seja falso (ou 0 para tipos não booleanos). 
1 apresenta os principais comandos da linguagem de Lista de Instruções.
 
6 
A lista a seguir representa os modificadores permitidos para as instruções da linguagem. Devem 
icador “N” indica que o operando deve ser invertido antes de ser utilizado pela instrução. 
Por exemplo, a instrução ANDN % IX1 é interpretada como “o conteúdo de %IX1 é invertido e com o 
“ indica que a avaliação da instrução deve ser adiada até que 
O modificador “C” indica que a instrução deve ser executada somente se o conteúdo atual do 
co verdadeiro (ou diferente de zero para tipos não booleanos). O modificador 
” pode ser combinado com o modificador “N” para indicar que a instrução não deve ser executada, 
1 apresenta os principais comandos da linguagem de Lista de Instruções. 
 
Linguagem de Programação: Lista de Instruções
 
 
Operador Modificador 
LD N 
ST N 
S BOOL
R BOOL
AND N, ( 
& N, ( 
OR N, ( 
XOR N, ( 
ADD 
SUB 
MUL 
DIV 
GT ( 
GE ( 
EQ ( 
NE ( 
LT ( 
LE ( 
JMP C, N Nome do rótulo
CAL C, N Nome da Função
RET C, N 
Tabela 1 – Principais operadores da linguagem de Lista de Instruções.
 
 
Linguagem de Programação: Lista de Instruções 
Operando Descrição/ significado
Carrega o operando para o acumulador 
Armazena o conteúdo do acumulador no local 
especificado pelo operando 
OOL Faz com que o valor do operando seja 1
BOOL Faz com que o valor do operando seja 0
Função booleana AND 
Função booleana AND 
Função booleana OR 
Função booleana OU - Exclusivo 
Soma 
Subtração 
Multiplicação 
Divisão 
Comparação (Greater Than) maior que (>)
Comparação (Greater or Equal) maior ou igual que (>=)
Comparação (Equl to) igual a (=) 
Comparação (Not Equal) diferente de (< >)
Comparação (Less Than) menor que (<)
Comparação (Less or Equal) menor ou igual que (<=)
Nome do rótulo Desvia para o rótulo Nome_do_Rótulo
Nome da Função Invoca a execução de um bloco de funções
Retorna de uma função ou bloco de função.
Principais operadores da linguagem de Lista de Instruções.
 
7 
Descrição/ significado 
Carrega o operando para o acumulador 
Armazena o conteúdo do acumulador no local 
Faz com que o valor do operando seja 1 
Faz com que o valor do operando seja 0 
 
Comparação (Greater Than) maior que (>) 
Comparação (Greater or Equal) maior ou igual que (>=) 
 
Comparação (Not Equal) diferente de (< >) 
) menor que (<) 
Comparação (Less or Equal) menor ou igual que (<=) 
Desvia para o rótulo Nome_do_Rótulo 
Invoca a execução de um bloco de funções 
Retorna de uma função ou bloco de função. 
Principais operadores da linguagem de Lista de Instruções. 
 
Linguagem de Programação: Lista de Instruções
 
5.1 - Operador LD 
 
Mnemônico da palavra inglesa LOAD
• Operação: carrega um valor para o acumulador.
• Modificador: N 
• Operando: expressão constante.
 
5.2 - Operador ST 
 
Mnemônico da palavra inglesa STORE
• Operação: transfere o conteúdo do acumulador para uma variável.
• Modificador: N 
• Operando: variável interna ou de usuário
 
Exemplo 2: Implemente um programa em Ladder e em Lista de instruções (LI) que tenha a tarefa de 
acender a lâmpada L sempre que a chave CH fechar.
Solução: Um programa simples no qual a atuação de 
isto é, utiliza as duasinstruções principais que são leitura de variável (
terá o seguinte aspecto , em Ladder e LI.
 
 Ladder 
O processador efetua a leitura de I1 continuamente e executa 
lido à saída Q1. Assim, se a chave CH for fechada, fará com que I1 passe ao nível lógico 1, o que vai 
faze com que L também passe ao nível lógico 1, atuando sobre a saída e, conseqüentemente, 
acedendo a lâmpada L. 
Linguagem de Programação: Lista de Instruções 
Mnemônico da palavra inglesa LOAD 
: carrega um valor para o acumulador. 
: expressão constante. 
ra inglesa STORE 
: transfere o conteúdo do acumulador para uma variável. 
: variável interna ou de usuário 
Implemente um programa em Ladder e em Lista de instruções (LI) que tenha a tarefa de 
mpre que a chave CH fechar. 
: Um programa simples no qual a atuação de uma entrada causa a atuação de 
isto é, utiliza as duas instruções principais que são leitura de variável (LD) e atribuição de valor (
Ladder e LI. 
 
Figura 2 – Solução exemplo 2 
O processador efetua a leitura de I1 continuamente e executa um programa que atribui o valor 
lido à saída Q1. Assim, se a chave CH for fechada, fará com que I1 passe ao nível lógico 1, o que vai 
faze com que L também passe ao nível lógico 1, atuando sobre a saída e, conseqüentemente, 
Lista de Instruções
LD I1
ST Q1
8 
Implemente um programa em Ladder e em Lista de instruções (LI) que tenha a tarefa de 
causa a atuação de uma saída, 
) e atribuição de valor (ST), 
um programa que atribui o valor 
lido à saída Q1. Assim, se a chave CH for fechada, fará com que I1 passe ao nível lógico 1, o que vai 
faze com que L também passe ao nível lógico 1, atuando sobre a saída e, conseqüentemente, 
Lista de Instruções 
LD I1 
ST Q1 
 
Linguagem de Programação: Lista de Instruções
 
 
Exemplo 3: Para um contato A do tipo NF, é preciso fazer a leitura de variável negada 
conforme visto a seguir: 
 Ladder 
 
Neste caso, a partir da instrução 
e atribui o valor lido à saída Q1. 
 
Exemplo 4: Operação E (AND)
diagrama Ladder e em Lista de Instruções.
Solução: 
 Ladder 
 
 
Linguagem de Programação: Lista de Instruções 
Para um contato A do tipo NF, é preciso fazer a leitura de variável negada 
 
Figura 3 – Solução do exemplo 3. 
Neste caso, a partir da instrução LDN, o processador efetua a leitura de complemento lógico de 
 
E (AND) – Dada a equação lógica L= I1. I2. I3, implemente a 
diagrama Ladder e em Lista de Instruções. 
 
Figura 4 – Solução exemplo 4. 
 
Lista de
LDN I1
ST Q1
Lista de Instruções
LDN 
AND 
AND 
ST 
9 
Para um contato A do tipo NF, é preciso fazer a leitura de variável negada LDN, 
, o processador efetua a leitura de complemento lógico de I1 
I3, implemente a função lógica no 
Lista de Instruções 
LDN I1 
ST Q1 
Lista de Instruções 
LDN I1 
AND I2 
AND I3 
ST Q1 
 
Linguagem de Programação: Lista de Instruções
 
Exemplo 5: Operação OU (OR) –
no diagrama Ladder e em Lista de Instruções.
Solução: 
 Ladder 
 
5.3. Operador S 
 
É uma instrução de memorização. A letra S mnemônico da palavra inglesa set.
Operação: Força uma variável booleana a ir para o estado lógico 1 se o acumulador estiver com o 
valor VERDADEIRO (nível Lógico 1). Nenhuma operaç
lógico FALSO (nível lógico 0). 
• Modificador: nenhum.
• Operando: variável booleana interna ou de saída
 
Exemplo 6: Faça o diagrama Ladder e a lista de Instruções correspondentes a dois contatos I1 e I2, 
NA e NF respectivamente, em paralelo, e um contato I3, NF, em série com ambos. O outro lado do 
contato I3 está conectado à bobina do tipo set de um relé Q1 de auto retenção. 
 
 Ladder 
Linguagem de Programação: Lista de Instruções 
– Dada a equação lógica Q1= I1+ I2+ I3/, implemente a função lógica 
no diagrama Ladder e em Lista de Instruções. 
 
Figura 5 – Solução exemplo 5. 
É uma instrução de memorização. A letra S mnemônico da palavra inglesa set. 
: Força uma variável booleana a ir para o estado lógico 1 se o acumulador estiver com o 
valor VERDADEIRO (nível Lógico 1). Nenhuma operação é realizada se o operador estiver com o valor 
: nenhum. 
: variável booleana interna ou de saída 
: Faça o diagrama Ladder e a lista de Instruções correspondentes a dois contatos I1 e I2, 
respectivamente, em paralelo, e um contato I3, NF, em série com ambos. O outro lado do 
contato I3 está conectado à bobina do tipo set de um relé Q1 de auto retenção. 
 
Lista de Instruções
LD 
OR 
ORN 
ST 
Lista de Instruções
LD 
ORN 
ANDN 
S 
10 
, implemente a função lógica 
: Força uma variável booleana a ir para o estado lógico 1 se o acumulador estiver com o 
ão é realizada se o operador estiver com o valor 
: Faça o diagrama Ladder e a lista de Instruções correspondentes a dois contatos I1 e I2, 
respectivamente, em paralelo, e um contato I3, NF, em série com ambos. O outro lado do 
e Instruções 
 I1 
 I2 
 I3 
 Q1 
Lista de Instruções 
 I1 
 I2 
 I3 
 Q1 
 
Linguagem de Programação: Lista de Instruções
 
5.4. Operador R 
 
É um opeador que serve para “limpar” o c
memória vá para o valor zero. A letra R é um mnemônico da palavra inglesa reset.
Operação: força uma variável booleana a ir para o valor lógico 0 se o valor do acumulador for 
VERDADEIRO ( nível lógico 1). Nenhu
(nível lógico 0). 
• Modificador: Nenhum.
• Operando: Variável lógica binária interna ou de saída.
Ps: 1 – A instrução R (reset) existe apenas em programas de CLP e não em um circuito elétrico de 
chaves ou relés. 
 2 – A instrução R (reset) sempre trabalha com a instrução S (set) e vice versa.
 
Exemplo 7: Faça o diagrama Ladder e
NA e NF respectivamente, em paralelo, e um contato I.3, N
contato I.3 está conectado à bobina do tipo reset de um relé Q.1 de auto retenção.
 
 Ladder 
 
 
Linguagem de Programação: Lista de Instruções 
Figura 6 – Solução exemplo 6 
É um opeador que serve para “limpar” o conteúdo da memória. Faz com que o conteúdo da 
memória vá para o valor zero. A letra R é um mnemônico da palavra inglesa reset. 
Operação: força uma variável booleana a ir para o valor lógico 0 se o valor do acumulador for 
VERDADEIRO ( nível lógico 1). Nenhuma operação é realizada se o valor do acumulador for FALSO 
: Nenhum. 
: Variável lógica binária interna ou de saída. 
A instrução R (reset) existe apenas em programas de CLP e não em um circuito elétrico de 
A instrução R (reset) sempre trabalha com a instrução S (set) e vice versa. 
: Faça o diagrama Ladder e a lista de Instruções correspondentes a dois contatos I.1 e I.2, 
NA e NF respectivamente, em paralelo, e um contato I.3, NF, em série com ambos. O outro lado do 
contato I.3 está conectado à bobina do tipo reset de um relé Q.1 de auto retenção.Figura 7 – Solução exemplo 7. 
 
Lista de Instruções
LD 
ORN 
ANDN 
R 
11 
onteúdo da memória. Faz com que o conteúdo da 
Operação: força uma variável booleana a ir para o valor lógico 0 se o valor do acumulador for 
ma operação é realizada se o valor do acumulador for FALSO 
A instrução R (reset) existe apenas em programas de CLP e não em um circuito elétrico de 
a lista de Instruções correspondentes a dois contatos I.1 e I.2, 
F, em série com ambos. O outro lado do 
 
Lista de Instruções 
 I.1 
 I.2 
 I.3 
 Q.1 
 
Linguagem de Programação: Lista de Instruções
 
6 – Operações adiadas 
 
Como a linguagem LI só possui um registrador, certas operações podem ser ad
ordem natural da execução das instruções. Os parênteses são utilizados para representa as 
operações adiadas. 
• “(” = indica que a instrução anterior deve ser adiada;
• “)” = indica que a operação anteriormente adiada deve agora ser executa
Exemplo 8: 
 Ladder 
 
 
Para análise da execução do exemplo fornecido, é preciso definir o conceito de pilha (stack). Para 
facilitar a compreensão, façamos uma analogia com uma pilha de pratos. Ao empilhar diversos 
pratos, o último empilhado será o primeiro a ser retirado. Este conceito é também conhecido pela 
sua abreviação da língua inglesa LIFO 
Ao encontrar o modificador “(”, o conteúdo do acumulador e o operador são colocados na pilha. 
Da mesma maneira, quando o operador “)” é encontrado, retira
executa-se a operação adiada com o conteúdo atual do acumulador.
 
 
Linguagem de Programação: Lista de Instruções 
 
Como a linguagem LI só possui um registrador, certas operações podem ser adiadas para alterar a 
ordem natural da execução das instruções. Os parênteses são utilizados para representa as 
“(” = indica que a instrução anterior deve ser adiada; 
“)” = indica que a operação anteriormente adiada deve agora ser executa
 
Figura 8 – Solução exemplo 8. 
Para análise da execução do exemplo fornecido, é preciso definir o conceito de pilha (stack). Para 
facilitar a compreensão, façamos uma analogia com uma pilha de pratos. Ao empilhar diversos 
o empilhado será o primeiro a ser retirado. Este conceito é também conhecido pela 
sua abreviação da língua inglesa LIFO – Last Input First Output. 
Ao encontrar o modificador “(”, o conteúdo do acumulador e o operador são colocados na pilha. 
a, quando o operador “)” é encontrado, retira-se o ultimo elemento da pilha e 
se a operação adiada com o conteúdo atual do acumulador. 
 
Lista de Instruções
LD I
AND(N I.2
ORN I
) 
ST Q.1
12 
iadas para alterar a 
ordem natural da execução das instruções. Os parênteses são utilizados para representa as 
“)” = indica que a operação anteriormente adiada deve agora ser executada. 
Para análise da execução do exemplo fornecido, é preciso definir o conceito de pilha (stack). Para 
facilitar a compreensão, façamos uma analogia com uma pilha de pratos. Ao empilhar diversos 
o empilhado será o primeiro a ser retirado. Este conceito é também conhecido pela 
Ao encontrar o modificador “(”, o conteúdo do acumulador e o operador são colocados na pilha. 
se o ultimo elemento da pilha e 
Lista de Instruções 
I.1 
.2 
I.3 
Q.1 
 
Linguagem de Programação: Lista de Instruções
 
É executada da seguinte maneira:
LD %IX1 
O conteúdo da entrada %IX1 é transferido para o acum
A Instrução seguinte é: 
AND (%IX2 
Ao encontrar o operador “AND (”, o conteúdo do acumulador e a operação adiada são movidos 
para a pilha e o operando seguinte (%IX2) é copiado para o acumulador
Então, ao final da segunda linha temos:
• Pilha: %IX1 AND( 
• Acumulador: %IX2 
Na terceira linha é feita a operação OR %IX3 com o conteúdo atual do acumulador, neste caso 
%IX2. 
Na quarta linha, ao encontrar o operador “)”, é retirado o conteúdo da pilha (%IX1) e executada a 
operação adiada (AND) com o r
para a saída pela instrução: ST %QX1.
Existem duas maneiras válidas para implementar a operação adiada do exemplo anterior: 
carregamento explícito do operador ou forma simplificada.
Num Descrição/exemplo 
1 Carregamento explícito 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 substitu
chamada de função. 
Linguagem de Programação: Lista de Instruções 
É executada da seguinte maneira: 
O conteúdo da entrada %IX1 é transferido para o acumulador 
Ao encontrar o operador “AND (”, o conteúdo do acumulador e a operação adiada são movidos 
para a pilha e o operando seguinte (%IX2) é copiado para o acumulador 
Então, ao final da segunda linha temos: 
Na terceira linha é feita a operação OR %IX3 com o conteúdo atual do acumulador, neste caso 
Na quarta linha, ao encontrar o operador “)”, é retirado o conteúdo da pilha (%IX1) e executada a 
operação adiada (AND) com o resultado atual do acumulador. Finalmente o resultado é transferido 
para a saída pela instrução: ST %QX1. 
Existem duas maneiras válidas para implementar a operação adiada do exemplo anterior: 
carregamento explícito do operador ou forma simplificada. 
Carregamento explícito do operador 
Nota 1: No formato 1 o operador LD pode ser modificado ou substituído por outra operaçã
13 
Ao encontrar o operador “AND (”, o conteúdo do acumulador e a operação adiada são movidos 
Na terceira linha é feita a operação OR %IX3 com o conteúdo atual do acumulador, neste caso 
Na quarta linha, ao encontrar o operador “)”, é retirado o conteúdo da pilha (%IX1) e executada a 
esultado atual do acumulador. Finalmente o resultado é transferido 
Existem duas maneiras válidas para implementar a operação adiada do exemplo anterior: 
ído por outra operação ou 
 
Linguagem de Programação: Lista de Instruções
 
Figura 9: Duas maneiras de programa instruções adiadas.
 
Exemplo 9: Deseja-se avaliar o resultado da seguinte expressão lógica:
Res:= a1+(a2(a3+a4) a5) + a6 
Como pode ser observado, algumas expressões são avaliadas antes das outras
a utilização de parêntese para indicar a maior prioridade. Uma implementação em LI pode ser:
 LD a1 
 
 OR( 
 LD a2 
 
 AND( 
 LD a3 
 
 OR a4 
 ) 
 
 
 
 
 AND a5 
 ) 
 
 
 ST resultado
 OR a6 
 ST resultado
 
 
Linguagem de Programação: Lista de Instruções 
Figura 9: Duas maneiras de programa instruções adiadas. 
se avaliar o resultado da seguinte expressão lógica: 
 
Como pode ser observado, algumas expressões são avaliadas antes das outras, especificadas com 
a utilização de parêntese para indicar a maior prioridade. Uma implementação em LI pode ser:
 (*acumulador = a1; *) 
 (*pilha: {}; *) 
 (*OR adiado*) 
 (*acumulador =a2*) 
 (*pilha: {a1 OR};*) 
 A(*AND adiado*) 
 (*acumulador = a3*) 
 (*pilha: {a1 OR; A2 AND};*) 
 (*resultado = a3 OR a4; *) 
 (*executa o último elemento da pilha (a2 AND)*)
 (*com o conteúdo atual do acumulador*) 
 (*acumulador = a2 AND (a3 OR a4;*) 
 (*pilha: {a1 OR}*) 
 (*acumulador = a2 (a3+a4) a5*) 
 (*executa o ultimo elemento da pilha a1 OR*)
 (*com o conteúdo atual do acumulador *) 
 (*acumulador = a1+(a2(a3+a4)a5);*) 
resultado (*pilha: {};*) 
 (*acumulador = a1+(a2(a3+a4)a5)+a6;*) 
resultado (*resultado = acumulador*) 
 
14 
, especificadas com 
a utilização de parêntese para indicar a maior prioridade. Uma implementação em LI pode ser: 
(*executa o último elemento da pilha (a2 AND)*) 
 
(*executa o ultimo elemento da pilha a1 OR*) 
 
Linguagemde Programação: Lista de Instruções
 
Exemplo 10: Dada a equação lógica Q1= (I
Instruções. 
 Ladder 
 
 
Este mesmo programa pode ser reescrito utilizando relés auxiliares, isto é, regiões de memória 
interna utilizadas para armazenamento temporário de informações identificadas como M
assim sucessivamente. É vantajoso, quanto à clareza do programa, porém desv
ao uso da quantidade de memória.
Desta maneira, o programa anterior pode ser refeito apresentando o mesmo comportamento sob 
o ponto de vista lógico, conforme ilustra a Figura.
 
 Ladder 
 
 
Figura 11 – Implementação da equação 
Linguagem de Programação: Lista de Instruções 
Dada a equação lógica Q1= (I1. I2) + (I3. I4/), implemente, em Ladder e em Lista de 
 
Figura 10: Solução do exemplo 10 
programa pode ser reescrito utilizando relés auxiliares, isto é, regiões de memória 
interna utilizadas para armazenamento temporário de informações identificadas como M
assim sucessivamente. É vantajoso, quanto à clareza do programa, porém desvantajoso em relação 
ao uso da quantidade de memória. 
Desta maneira, o programa anterior pode ser refeito apresentando o mesmo comportamento sob 
o ponto de vista lógico, conforme ilustra a Figura. 
 
 
Implementação da equação (I1. I2) + (I3. I4/), em Ladder e LI.
Lista de Instruções
LD I.1
AND 
OR( 
ANDN I.4
) 
ST 
Lista de Instruções
LD 
AND 
ST 
LD I3
ANDN I4
OR M1
ST 
15 
), implemente, em Ladder e em Lista de 
programa pode ser reescrito utilizando relés auxiliares, isto é, regiões de memória 
interna utilizadas para armazenamento temporário de informações identificadas como M1, M2, M3 e 
antajoso em relação 
Desta maneira, o programa anterior pode ser refeito apresentando o mesmo comportamento sob 
em Ladder e LI. 
Lista de Instruções 
LD I.1 
 I.2 
OR( I.3 
ANDN I.4 
 Q.1 
Lista de Instruções 
LD I1 
AND I2 
 M1 
LD I3 
ANDN I4 
OR M1 
 Q1 
 
Linguagem de Programação: Lista de Instruções
 
 
Exemplo 11: Dada a equação lógica Q1 = (I1+I2
 
 Ladder 
 
 
A Figura 13 exibe a solução para o exemplo anterior, utilizando relés auxiliares.
 
 Ladder 
Figura 13 –
 
Linguagem de Programação: Lista de Instruções 
: Dada a equação lógica Q1 = (I1+I2).(I3+I4), implemente em Ladder
 
Figura 12 – Solução do exemplo 11 
A Figura 13 exibe a solução para o exemplo anterior, utilizando relés auxiliares.
 
– Solução do exemplo 11 com o uso de relés auxiliares. 
 
 
Lista de Instruç
LD 
ORN 
AND(N I3
OR I4
) 
ST 
Lista de Instruções
LD 
ORN 
ST M1
LDN I3
OR I4
AND M1
ST 
16 
der e LI. 
A Figura 13 exibe a solução para o exemplo anterior, utilizando relés auxiliares. 
Lista de Instruções 
LD I1 
 I2 
AND(N I3 
OR I4 
 Q1 
Lista de Instruções 
LD I1 
 I2 
ST M1 
LDN I3 
OR I4 
AND M1 
 Q1 
 
Linguagem de Programação: Lista de Instruções
 
Exemplo 12: Dada a equação lógica Q1 = I1.I2 + I3
Solução: A figura 14 mostra a solução.
 
 Ladder 
 
 
A figura 15 descreve outra solução para o exemplo 12, agora utilizando relés auxiliares.
 
 Ladder 
Figura 15 
 
Linguagem de Programação: Lista de Instruções 
: Dada a equação lógica Q1 = I1.I2 + I3(I4+I5), implemente em Ladd
A figura 14 mostra a solução. 
 
Figura 14 – Solução do exemplo 12. 
outra solução para o exemplo 12, agora utilizando relés auxiliares.
 
Figura 15 – Solução do exemplo 12 com relés. 
 
 
Lista de Instruções
LD 
AND 
OR(N 
AND(N I4
OR I5
) 
) 
ST 
Lista de Instruções
LD 
AND 
ST M1
LDN 
OR I5
ANDN I3
OR M1
ST 
17 
Ladder e LI. 
outra solução para o exemplo 12, agora utilizando relés auxiliares. 
Lista de Instruções 
LD I1 
 I2 
 I3 
AND(N I4 
OR I5 
 Q1 
Lista de Instruções 
LD I1 
 I2 
ST M1 
LDN I4 
OR I5 
ANDN I3 
OR M1 
 Q1 
 
Linguagem de Programação: Lista de Instruções
 
7 - Mnemônicos de alguns fabricantes
 
Antes do surgimento IEC 61131
Embora muito parecidos entre si, eram diferentes de um fabricante para outro. Assim, antes de 
implementar um programa em linguagem de LI em uma aplicação real, deve
detalhado do manual do fabricante para determinar os mnemônicos equivalentes à norma IEC 
61131-3. A título de exemplo, na tabela 2 são fornecidos os mnemônicos de al
 
IEC 61131-3 
LD LD 
LDN LDI 
AND AND 
ANDN ANI 
OR OR 
ORN ORI 
ST OUT 
Tabela 2 – Mnemônicos de alguns fabricantes e seus correspondentes na norma 
8 – Temporizadores. 
 
A Figura 16 encontra –se a implementação de um temporizador no CLP IPC PS1 (Festo).
 Ladder 
Figura 16 – Implementação de um temporizador TON no CLP da Festo IPC PS1 Professional
 
Linguagem de Programação: Lista de Instruções 
Mnemônicos de alguns fabricantes 
Antes do surgimento IEC 61131-3, cada fabricante utilizava seu próprio conjunto de mnemônicos. 
Embora muito parecidos entre si, eram diferentes de um fabricante para outro. Assim, antes de 
plementar um programa em linguagem de LI em uma aplicação real, deve-se realizar um estudo 
detalhado do manual do fabricante para determinar os mnemônicos equivalentes à norma IEC3. A título de exemplo, na tabela 2 são fornecidos os mnemônicos de alguns fabricantes. 
Mitsubishi OMRON SIEMENS S7
LD LD 
LD NOT LDN 
AND A 
AND NOT AN 
OR O 
OR NOT ON 
OUT = 
Mnemônicos de alguns fabricantes e seus correspondentes na norma 
se a implementação de um temporizador no CLP IPC PS1 (Festo).
 
 
ntação de um temporizador TON no CLP da Festo IPC PS1 Professional
Lista de Instruções
CAL T1 (IN:=%IX1, PT:= T#20s)
LD T1.Q 
ST %QX1 
18 
3, cada fabricante utilizava seu próprio conjunto de mnemônicos. 
Embora muito parecidos entre si, eram diferentes de um fabricante para outro. Assim, antes de 
se realizar um estudo 
detalhado do manual do fabricante para determinar os mnemônicos equivalentes à norma IEC 
guns fabricantes. 
SIEMENS S7-200 
Mnemônicos de alguns fabricantes e seus correspondentes na norma IEC 61131-3 
se a implementação de um temporizador no CLP IPC PS1 (Festo). 
ntação de um temporizador TON no CLP da Festo IPC PS1 Professional 
Lista de Instruções 
CAL T1 (IN:=%IX1, PT:= T#20s) 
 
Linguagem de Programação: Lista de Instruções
 
A figura 17 mostra outra implementação em controlador que segue a norma IEC 61131
 Ladder 
Figura 17 – Implementação de um temporizador TON no CLP 
 
A figura 18 exibe a implementação nos CLPs S7
 Ladder 
 
Figura 18– Implementação 
 
 
Linguagem de Programação: Lista de Instruções 
A figura 17 mostra outra implementação em controlador que segue a norma IEC 61131
 
Implementação de um temporizador TON no CLP que segue a norma IEC 61131
A figura 18 exibe a implementação nos CLPs S7-200 da Siemens. 
 
Implementação da função TON no CLP S7-200 da Siemens em Ladder e em LI
 
Lista de Instruções
(*Network 0*) 
LD %I0.0 
TON T1, 100 
ST %Q0.0 
Lista de Instruções
(*Network 0*) 
LD I0.0 
TON T1, 100 
(*Network 1*) 
LD T1 
= Q0.0 
19 
A figura 17 mostra outra implementação em controlador que segue a norma IEC 61131-3 
que segue a norma IEC 61131-3 
200 da Siemens em Ladder e em LI 
Lista de Instruções 
Lista de Instruções 
 
Linguagem de Programação: Lista de Instruções
 
A figura 19 exibe a implementação dos CLP’s da família Twido 
 Ladder
Figura 19 
 
As instruções podem conter todos os tipos de operador de entrada padrão,tais como:
 
– TON (Timer On Delay
– TOF (Timer Off Delay
serão executadas segundo o atraso definido no temporizador (opção não regatilhável)
– TP (Timer Pulse) - após a execução da lógica de entrada, as saídas correspondentes se
executadas segundo o atraso definido no temporizador (opção regatilhável).
 
Linguagem de Programação: Lista de Instruções 
A figura 19 exibe a implementação dos CLP’s da família Twido 
Ladder 
 
 
Figura 19 – CLP´s da família Twido – Ladder e Lista de Instrução 
As instruções podem conter todos os tipos de operador de entrada padrão,tais como:
Timer On Delay) – atraso associado a execução da lógica de entrada (opção padrão);
Timer Off Delay) - após a execução da lógica de entrada, as saídas correspondentes 
serão executadas segundo o atraso definido no temporizador (opção não regatilhável)
após a execução da lógica de entrada, as saídas correspondentes se
executadas segundo o atraso definido no temporizador (opção regatilhável).
 
Lista de Instruções
BLK %TM1
LD 
IN 
OUT_BLK 
LD Q
ST 
END_BLK 
20 
As instruções podem conter todos os tipos de operador de entrada padrão,tais como: 
atraso associado a execução da lógica de entrada (opção padrão); 
após a execução da lógica de entrada, as saídas correspondentes 
serão executadas segundo o atraso definido no temporizador (opção não regatilhável) 
após a execução da lógica de entrada, as saídas correspondentes serão 
executadas segundo o atraso definido no temporizador (opção regatilhável). 
Lista de Instruções 
BLK %TM1 
 %I0.1 
IN 
OUT_BLK 
LD Q 
 %Q0.3 
 
Linguagem de Programação: Lista de Instruções
 
9 – Contadores 
 
Os blocos podem ser chamados de várias maneiras e os fabricantes têm alguma liberdade de 
implementação. 
Pela norma IEC 61131-3 as funções podem ser chamadas di
operador que as preceda. De fato, o nome da função pode ser considerado um operador. Os 
parâmetros passados são: o endereço do contador, o contato que está ligado à entrada reset e o 
valor de PV. 
 Ladder 
Figura 20 – Implementação de um contador crescente em um CLP que segue a norma IEC 61131
 
Outra forma ainda é seguida pela Siemens na sua linha de CLPs de
figura 21 ilustra uma possível implementação nesses controladores.
 Ladder 
Figura 21 – Implementação de um contador crescente no CLP S7
Linguagem de Programação: Lista de Instruções 
Os blocos podem ser chamados de várias maneiras e os fabricantes têm alguma liberdade de 
3 as funções podem ser chamadas diretamente, sem a necessidade de um 
operador que as preceda. De fato, o nome da função pode ser considerado um operador. Os 
parâmetros passados são: o endereço do contador, o contato que está ligado à entrada reset e o 
 
Implementação de um contador crescente em um CLP que segue a norma IEC 61131
Outra forma ainda é seguida pela Siemens na sua linha de CLPs de pequeno porte (S7
figura 21 ilustra uma possível implementação nesses controladores. 
 
 
Implementação de um contador crescente no CLP S7-200 da Siemens
Lista de Instruções
CAL T1 (IN:=%IX1, PT:= T#20s)
LD T1.Q 
ST %QX1 
Lista de Instruções
(*Network
LD 
LD I0.1
CTU C2, 20
(*Network
LD C2
= 
21 
Os blocos podem ser chamados de várias maneiras e os fabricantes têm alguma liberdade de 
retamente, sem a necessidade de um 
operador que as preceda. De fato, o nome da função pode ser considerado um operador. Os 
parâmetros passados são: o endereço do contador, o contato que está ligado à entrada reset e o 
Implementação de um contador crescente em um CLP que segue a norma IEC 61131-3 
pequeno porte (S7-200). A 
200 da Siemens 
Lista de Instruções 
T1 (IN:=%IX1, PT:= T#20s) 
Lista de Instruções 
(*Network 0*) 
 I0.0 
LD I0.1 
CTU C2, 20 
(*Network 1*) 
LD C2 
 Q0.0 
 
Linguagem de Programação: Lista de Instruções
 
A figura 22 exibe a implementação dos CLP’s da família Twido para um contador de ordem 
crescente. 
 
 
Figura 22 – Implementação de um contador crescente no CLP Twido da Schneider.
 
 
Linguagem de Programação: Lista de Instruções 
A figura 22 exibe a implementação dos CLP’s da família Twido para um contador de ordem 
 
 
 
Implementação de um contador crescente no CLP Twido da Schneider.
Lista de Instruções
BLK %C8
LD 
R 
LD %I1.2
AND %M0
CU 
END_BLK 
LD 
ST %Q0.0
22 
A figura 22 exibe a implementação dos CLP’s da família Twido para um contador de ordem 
Implementação de um contador crescente no CLP Twido da Schneider. 
Lista de Instruções 
BLK %C8 
 %I1.1 
R 
LD %I1.2 
AND %M0%C8.D 
ST %Q0.0

Outros materiais