Você está na página 1de 29

Ladder - O que é e Como Funciona a

Linguagem
Neste artigo vou explicar como funciona a linguagem Ladder, lhe
apresentando um exemplo prático primeiramente. Ao final, você vai entender
através de um exemplo prático como funciona a linguagem Ladder e como ela
se adapta aos grandes fabricantes de CLPs. Então vamos ao nosso primeiro
exemplo:

Um frigorífico de abate de aves tinha um problema intermitente no final da


linha de embalagem. As embalagens de miúdos (asa, coxa, pés) passava pelo
detector de metais antes de serem encaixotadas. Caso o detector verificasse
presença de algum metal na embalagem, ele enviava um sinal que  acionava
uma solenóide que por sua vez ativava um pistão pneumático a fim de
expulsar a embalagem da linha para o devido tratamento. Veja este exemplo
na figura abaixo:

No entanto, ocorreu um problema onde mesmo que algumas embalagens


acusassem metal ao passar pelo detector, elas passavam normalmente pela
esteira sem haver a expulsão. Após algumas investigações foi detectado que
a duração do pulso que detectava o metal era de ¾ de segundos. O CLP, que
faz o reconhecimento deste sinal, controla várias estações e possui um
programa muito extenso. E vasculhando o status do CLP, foi possível
identificar que o tempo de varredura do CLP está ligeiramente inferior a 1
segundo. Então seria muito provável que o pulso enviado pelo detector não
estava sendo detectado pelo CLP. O pulso do detector poderia ser anulado no
inicio do tempo de varredura do CLP, fazendo com que a lógica não
reconhecesse o mesmo e para ele tudo estava normal.

A solução: O técnico examinou o programa em linguagem Ladder e


verificou que a entrada onde chegava o pulso do detector era atualizada a
cada 1/2 segundo. Caso a entrada do detector estivesse atuada, uma bobina
interna ficava ligada por pelo menos 1,5 segundos. O programa foi então
revisado de forma a aumentar o tempo de pulso do detector e armazenar o
sinal na memoria de forma a acionar a solenoide e consequentemente acionar
o cilindro para expulsar a embalagem com metal.

O problema relatado acima é típico de um técnico que trabalha com


automação industrial. Para que você seja capaz de resolver o mesmo, você
deverá compreender a linguagem Ladder, que é a linguagem de
programação mais utilizada nos CLPs de mercado e que se baseia em
diagramas de circuitos eletromecânicos combinados em um esquema de
comando. Vou explicar para você como isso funciona com exemplos a seguir
detalhando contatos, bobinas e blocos lógicos.

A linguagem Ladder foi a primeira linguagem de programação desenvolvida


para os CLPs e, como a criação destes foi uma necessidade de substituição
do controle de sistemas com reles lógicos, nada mais natural que a
linguagem Ladder fosse similar aos diagramas utilizados para documentar a
lógica por relês. Utilizando esta abordagem, os engenheiros e técnicos
responsáveis pela programação dos CLPs não precisariam de treinamentos
extensos para entender ou desenvolver um programa. Desta forma,
a linguagem Ladder se baseia em interruptores simples que se conectam em
linhas com bobinas de maneira a compor circuitos lógicos. Assim, cada
interruptor (entrada) recebe uma identificação (tag) assim como as bobinas
(saídas). Também é possível utilizar memórias internas, temporizadores,
comparadores e blocos lógicos. Veremos todos estes elementos a seguir.
Exemplo 1: Circuito OR (OU). Duas chaves identificadas como A e B são
conectadas em paralelo de forma a controlar uma lâmpada conforme Figura 2.
Devemos implementar esta função em linguagem Ladder no CLP onde as 2
chaves deverão ser entradas individuais.

Figura 2 – Circuito com chaveamento paralelo (a) e tabela verdade (b)

Solução: A ação do circuito proposto pode ser descrita como: “A lâmpada


acende quando a chave A está acionada (fechada) ou a chave B está
acionada (fechada). Todas as possíveis combinações das duas chaves e o
acionamento da lâmpada pode ser visualizado na tabela da Figura 2(b).
Abaixo podemos ver como seria este circuito e sua representação lógica:
Figura 3 – Representação do circuito com reles (a), diagrama com reles em
logica Ladder (b) e linguagem Ladder implementada em CLP (c) para a lógica
OU
Na Figura 3 (a), você pode verificar que os os reles AR, BR e LR possuem
contatos normalmente abertos. As chaves A e B são as entradas do circuito e
quando A ou B estão fechadas, a bobina do rele correspondente AR ou BR é
energizada, fechando o contato e fornecendo energia para a bobina do rele
LR que quando energizado fecha contato fornecendo energia para a lâmpada.
Veja que tanto A quanto B, quando fechadas, energizam a lâmpada
mostrando de fato a lógica OU. A lâmpada por sua vez é acionada pela
bobina do rele LR dando a característica de isolação entre as saídas e
entradas, permitindo assim que as entradas A ou B possam ser utilizadas
várias vezes na lógica.

Um rele típico de controle industrial pode ter até 12 polos ou conjunto de


contatos por bobina. Por exemplo, se o rele AR tiver 6 polos, no nosso
exemplo, somente 1 está sendo utilizado na lógica da Figura 3. Assim, os
outros 5 podem ser usados para continuar compondo uma lógica maior. Antes
do desenvolvimento dos CLPs, era exatamente desta maneira que era
composta uma lógica nos projetos elétricos. O nome dado a este tipo de
implementação foi diagrama com reles em lógica Ladder.
Já a linguagem ladder para o CLP, Figura 3(c), acabou resumindo bastante a
representação do diagrama, pois a lógica implementada no CLP assume que
as entradas (chaves no nosso exemplo) estão conectadas por entradas
discretas (equivalente as bobinas dos reles AR e BR na Figura 3(b)). A saída
também é conectada à uma saída discreta (equivalente ao contato
normalmente aberto de LR na figura 3(a). O nome mostrado em cima do
contato não é o nome do contato e sim o controle para a bobina que aciona o
contato. A saída ou bobina é representada pelo lado direito da linha devido ao
fato de que a energia circula do lado esquerdo para o direito. Assim, podemos
interpretar da seguinte forma: Quando a chave A é acionada, a Lâmpada L
acende ou quando a chave B é ligada, a Lâmpada L também acende,
exatamente como representado no circuito simplificado da Figura 2.

Exemplo 2: Circuito E (AND) – Duas chaves nomeadas A e B são ligadas em


série de forma a controlar uma lâmpada conforme mostrada na Figura 3.
Implementar esta função em programação ladder onde as 2 chaves são
entradas individuais.

Figura 4 – Circuito com chaveamento paralelo (a) e tabela verdade (b)

Solução: A ação no circuito é descrita como: “A lâmpada está ligada quando


a chave A está fechada (ligada) e a chave B está fechada (ligada), Todas as
possíveis combinações entre as chaves A e B podem ser visualizadas na
tabela verdade da Figura 4(b). Para implementar esta função utilizando reles,
a única modificação se comparado com o exemplo 1 é que aqui os contatos
normalmente abertos dos controles dos reles AR e BR foram ligados em série
com o controle da lâmpada (Figura 5(a)). A ligação das chaves A e B e a
ligação da lâmpada não muda. O diagrama com reles em lógica ladder
mostrado na Figura 5(b) é diferente do da Figura 3(b) apenas na terceira linha
e como no exemplo anterior, novamente a linguagem ladder do CLP é
resumida em uma linha apenas com a seguinte interpretação: Quando a
chave A está ligada e a chave B está ligada, a lâmpada deverá ser ligada.
Figura 5 – Representação do circuito com reles (a), diagrama com reles em
logica ladder (b) e linguagem ladder implementada em CLP (c) para a lógica E

Exemplo 3: Neste terceiro exemplo, considere  a implementação da lógica


não (NOT). Suponha que a lâmpada precisa ser ligada quando a chave A está
ligada (fechada) e a chave B está desligada (aberta). Implementar esta função
em linguagem ladder no CLP onde as duas chaves são entradas individuais.
Solução: A Figura  6 mostra a tabela verdade, o diagrama com reles e a
logica ladder para o CLP neste exemplo. A única diferença entre a
implementação em rele da Figura 6(a) e a Figura 5(a) é a ligação dos contatos
do rele BR. A lógica NOT para a chave B é conseguida com o contato
normalmente fechado (NF) do rele BR. A linguagem ladder no CLP da Figura
6(c) comparada à da Figura 5(c) se diferem apenas no segundo contato
podendo ser interpretada como: “Quando a entrada (chave) A está ligada
(fechada) e a entrada (chave B) está desligada (aberta) então a lâmpada será
ligada. Este exemplo em particular é impossível de ser implementado sem a
utilização de reles e com a combinação de apenas duas chaves normalmente
abertas.

Figura 6 – Circuitos com a Lógica Não (NOT); (a) tabela verdade; (b) circuito
equivalente com reles; (c) linguagem ladder no CLP.
Bom, estamos evoluindo no entendimento melhor da lógica de programação e
pelos exemplos que vimos até agora temos os seguintes conceitos:
 Lógica E ou AND – Conexão em série de contatos;
 Lógica OU ou OR – Conexão em paralelo de contatos;
 NA ou NO – Contato Normalmente Aberto (Normally Open). O contato fica
aberto quando não há energia no circuito e se fecha quando recebe energia.
 NF ou NC – Contato normalmente fechado (Normally Closed). O contato fica
fechado quando não há energia no circuito e se abre quando recebe energia.

Estes conceitos são a chave para que você comece a entender e implementar
as lógicas em linguagem ladder. Para muitas pessoas, eles parecem simples,
e para outras, estranho à primeira vista. No entanto, eles começarão a ficar
mais natural quando você trabalhar com as implementações nas soluções.
Será possível observar a facilidade em lidar com esta abordagem devido ao
fato de que a linguagem ladder é uma linguagem gráfica e visual, muito
diferente das linguagens de programação C++, Fortran, Basic e Java. Em
contrapartida a linguagem ladder acaba por apresentar mais limitações se
comparada às linguagens citadas.
Símbolos Básicos da Linguagem Ladder

Agora que você entendeu os exemplos acima, vamos deixar de pensar em


lógica por reles e partir diretamente para a lógica em linguagem ladder. Como
falamos anteriormente, os símbolos básicos da linguagem ladder são:

Simbolo Descrição

-Contato normalmente aberto (NA ou NO).


-Na linguagem ladder, este símbolo transfere
energia se a chave estiver ligada (fechada).
 

-Contato normalmente fechado (NF ou NC).


-Na linguagem ladder, este símbolo transfere
energia se a chave estiver desligada (aberta).
 
-Saída ou Bobina. Se qualquer contato transferir
energia da esquerda para a direita,
a saída é energizada (ligada).
-Caso não houver energia transferida da esquerda
para a direita,
a saída fica desenergizada.
Os símbolos acima, depois de implementados na linguagem ladder, são
scaneados (lidos) e executados pelo CLP, seguindo a ordem da esquerda para
a direta. A Figura 7 é um exemplo em lógica ladder com uma instrução básica:

Figura 7 – Diagrama básico da Linguagem Ladder

A primeira linha (também chamada em inglês de rung) determina o


acionamento da bobina Out1 e pode ser interpretada da seguinte forma: A
saída 1 fica ligada quando a entradas A, B e C estão todas ligadas  ou as
entradas A e C estão ligadas e a entrada D desligada. Veja que para a saída
Out1 estar energizada, deve haver um caminho elétrico contínuo através dos
contatos das chaves de entrada, com a energia fluindo da esquerda para a
direita.
A seguir, vou apresentar a linguagem ladder para os CLPs mais famosos de
mercado. O Modicon da Schneider será apresentado primeiramente por ser
mais próximo à norma IEC 61131-3. Depois mostrarei a lógica em linguagem
Ladder para os CLPs Allen Bradley por serem largamente utilizados nas
indústrias juntamente com o Siemens. Depois de apresentar o padrão
Siemens, apresentarei o padrão da GE.

3 – O Padrão Ladder IEC 61131-3


Abaixo, é possível visualizar uma tabela com os símbolos utilizados na
linguagem ladder padrão IEC 61131-3:

Simbolo Descrição

Contato normalmente aberto (NA ou NO). Transfere


energia se a chave estiver ligada (fechada).

Contato normalmente fechado (NF ou NC). Transfere


energia se a chave estiver desligada (aberta).

Transição positiva. Se o estado do símbolo mudar


de desligado para ligado, este contato transfere
energia na linha até que haja um novo scan do
controlador.

Transição negativa. Se o estado do símbolo mudar


de ligado para desligado, este contato transfere
energia na linha até que haja um novo scan do
controlador.

Bobina ou Saída. Se todos os contatos na linha


transferirem energia, a bobina é energizada (ligada).
Caso contrário, ela permanece desligada.

Bobina ou Saída Negada. Se todos os contatos na linha


transferirem energia, a bobina é desenergizada
(desligada). Caso contrário, ela permanece ligada.

Bobina Set. Se a linha transferir energia para este


elemento, ele fica energizado, mesmo que a linha deixe
de estar energizada.

Bobina Reset. Se a linha transferir energia para este


elemento, ele fica desenergizado e permanece
desenergizado mesmo que ocorra alteração de energia
na linha.

Bobina de Detecção Positiva. Se as condições antes


desta bobina mudar de desligado para ligado, esta bobina
é ligada para um scan do controlador.
Bobina de Detecção Negativa. Se as condições antes
desta bobina mudar de ligado para desligado, esta bobina
é ligada para um scan do controlador.

Bobina de Memória Retentiva. É como a bobina comum


exceto pelo fato de que ela retem o seu estado de ligada
ou desligada mesmo que o CLP pare ou se desnergize.

Bobina Set de Memória. Funciona como a bobina set,


porém ela retem o seu estado mesmo que o controlador
pare ou perca a energia, ficando armazenado na
memória.

Bobina Reset de Memória.  Funciona como a bobina


reset, porém ela retem o seu estado mesmo que o
controlador pare ou perca a energia, ficando armazenado
na memória.
 

Alguns Comentários Sobre as Instruções Básicas na Linguagem Ladder:


 Os contatos e bobinas sensíveis a transição positiva ou negativa geralmente
são utilizados para inicialização e detecção de transições de entrada, como por
exemplo, o aperto de uma botoeira de comando;

 As bobinas de set e reset são utilizadas em conjunto. Podemos visualizar um


exemplo desta utilização na Figura 8 onde A seta um alarme e B reseta o
alarme informando que o mesmo foi reconhecido.

Figura 8 – Exemplo em linguagem ladder de Set e Reset


 As bobinas de memória retentiva são utilizadas em situações onde o estado da
saída deve ser armazenado mesmo que o CLP sofra queda de energia.
Normalmente, as saídas do controlador desligam quando o mesmo para ou
perde a energia e dependendo do sistema, é importante que o estado da saída
fique retido na memória para que o sistema possa operar seguramente após
situações de falha. Alguns fabricantes de CLP fornecem esta função como
parte do módulo de saída discreta.

 Apesar de termos o simbolo da bobina negada, não é recomendado sua


utilização, pois na maioria dos sistemas a posição de segurança é quando as
saídas do CLP estão desligadas. Geralmente os contatos são colocados em
série com a bobina de saída, indicando múltiplas condições que devem ser
satisfeitas antes que a saída seja energizada. Com a saída negada, quando as
condições são feitas, ela desliga e esta regra acaba por ser o oposto do que se
busca na maioria dos conceitos de segurança.

4 – O Padrão Modicon

Os controladores da Schneider M340 e QuantumPLC são programados na


lógica ladder Modicon que descrevemos anteriormente é compatível com a IEC
61131-3. A linguagem ladder no padrão Modicon é a mesma descrita da IEC
61131-3, exceto que o Modicon não suporta as funções de bobina de memória
retentiva, SET de memória retentiva e RESET de memória retentiva. Em
contrapartida, com o padrão Modicon temos as funções call e halt. Veja na
tabela a seguir os símbolos utilizados neste padrão:

Simbolo Descrição
Bobina ou Saída. Se todos os contatos na linha
transferirem energia, a bobina é energizada (ligada). Caso
contrário, ela permanece desligada.

Bobina ou Saída Negada. Se todos os contatos na linha


transferirem energia, a bobina é desenergizada
(desligada). Caso contrário, ela permanece ligada.

Bobina Set. Se a linha transferir energia para este


elemento, ele fica energizado, mesmo que a linha deixe de
estar energizada.

Bobina Reset. Se a linha transferir energia para este


elemento, ele fica desenergizado e permanece
desenergizado mesmo que ocorra alteração de energia na
linha.

Bobina de Detecção Positiva. Se as condições antes desta


bobina mudar de desligado para ligado, esta bobina é
ligada para um scan do controlador.

Bobina de Detecção Negativa. Se as condições antes


desta bobina mudar de ligado para desligado, esta bobina
é ligada para um scan do controlador.

Bobina de Chamada (Call). Se alguma linha transferir


energia para esta bobina, ela chama uma subrotina
(subprogama).

Bobina de Parada (Halt). Se alguma linha transferir energia


para esta bobina, ela para uma subrotina ou subprogama.

5 – O Padrão Allen-Bradley ControlLogix, PLC-5/SLC-500 e Micrologix


Os contatos básicos no padrão Allen Bradley não são tão numerosos quanto os
da IEC 61131-3. Em contrapartida, para a maioria das instruções, simbolos
diferentes são utilizados, embora a função seja a mesma em uma instrução no
padrão IEC 61131-3. Os simbolos utilizados na linguagem ladder pela Allen
Bradley podem ser visualizados na tabela abaixo:

Simbolo Descrição

Contato normalmente aberto (NA ou NO). Transfere


energia se a chave estiver ligada (fechada). Também é
chamado de XIC (eXamine If Closed).

Contato normalmente fechado (NF ou NC). Transfere


energia se a chave estiver desligada (aberta). Também é
chamado de XIO (eXamine If Open).

One-Shot Contact. Se o estado do símbolo mudar


de desligado para ligado, este contato transfere energia na
linha até que haja um novo scan do controlador.
É encontrado no ControlLogix, PLC-5 e alguns Micrologix
apenas).
É parecido com a detecção de transição positiva da IEC
exceto que este elemento segue o contato onde a
transição ocorre.
Ele armazena uma booleana que retem o estado prévio do
contato de entrada.
One-Shot Rising Contact. Se o estado do símbolo mudar
de desligado para ligado, este contato transfere energia na
linha até que haja um novo scan do controlador.
É encontrado no SLC-500 e alguns Micrologix). e deve
preceder imediatamente uma bobina de saída.
É parecido com a detecção de transição positiva da IEC
exceto que este elemento segue o contato onde a
transição ocorre.
Ele armazena uma booleana que retem o estado prévio do
contato de entrada.
Bobina ou Saída. Se todos os contatos na linha
transferirem energia, a bobina é energizada (ligada). Caso
contrário, ela permanece desligada.
Também chamada de OTE (OuTput Energize).
Bobina Latch. Se esta bobina é energizada, ela fica e
permanece energizada, mesmo que a linha em que ela
esteja seja desenergizada de forma análoga ao SET do
IEC.
Também chamada de OTL (OuTput Latch).
Bobina Unatch. Se esta bobina é energizada, ela fica e
permanece desenergizada, mesmo que a linha em que ela
esteja varie, de forma análoga ao RESET do IEC.
Também chamada de OTU (OuTput Unlatch).
One-Shot Rising Output. Se o estado do símbolo mudar
de desligado para ligado, este contato transfere energia na
linha até que haja um novo scan do controlador.
É encontrado no PLC-5 ControlLogix.
Apesar de parecer um bloco de função, é parecido com a
detecção de transição positiva da IEC exceto que este
elemento segue o contato onde a transição ocorre.
Ele armazena uma booleana que retem o estado prévio do
contato de entrada.
One-Shot Falling Output. Se o estado do símbolo mudar
de ligado para desligado, este contato transfere energia na
linha até que haja um novo scan do controlador.
É encontrado no PLC-5 ControlLogix.
Apesar de parecer um bloco de função, é parecido com a
detecção de transição negativa da IEC exceto que este
elemento segue o contato onde a transição ocorre.
Ele armazena uma booleana que retem o estado prévio do
contato de entrada.

Veja que neste padrão, a linguagem ladder não apresenta a bobina com
memória retentiva. A função retentiva é tratava em módulos com saídas
discretas.

6 – O Padrão Siemens

Os três tipos de processados (S7-200, S7-300/400 e S7-1200) possuem as


mesmas instruções básicas. A única exceção é a bobina de centro de linha que
não é válida para os controladores S7-200 e S7-1200 e as bobinas negada e
de transição que são válidas apenas para o modelo S7-1200. O diagrama
básico aplicado na linguagem ladder para a família Siemens pode ser
visualizado na tabela abaixo:
Simbolo Descrição

Contato normalmente aberto (NA ou NO). Transfere energia


se a chave estiver ligada (fechada).

Contato normalmente fechado (NF ou NC). Transfere energia


se a chave estiver desligada (aberta).

Transição positiva. Se o estado do símbolo mudar


de desligado para ligado, este contato transfere energia na
linha até que haja um novo scan do controlador.
Para o S7-300/400 é um elemento que armazena um
booleano e retem o estado anterior.
Para o S7-200/1200 este contato é representado por barras
verticais ao invés de parênteses.
Para o S7-1200 quando ocorre a transição, este contato
transfere energia para apenas um Scan do processador.
Transição negativa. Se o estado do símbolo mudar de ligado
para desligado, este contato transfere energia na linha até
que haja um novo scan do controlador.
Para o S7-300/400 é um elemento que armazena um
booleano e retem o estado anterior.
Para o S7-200/1200 este contato é representado por barras
verticais ao invés de parênteses.
Para o S7-1200 quando ocorre a transição, este contato
transfere energia para apenas um Scan do processador.
Inverte o Fluxo de Energia. Se chegar energia neste contato,
ela é automaticamente interromPIDa (desligada). Por outro
lado, caso não chegar energia neste contato, ele liga.
Esta função não se aplica ao S7-200.

Bobina ou Saída. Se todos os contatos na linha transferirem


energia, a bobina é energizada (ligada). Caso contrário, ela
permanece desligada.

Bobina ou Saída Negada. Se todos os contatos na linha


transferirem energia, a bobina é desenergizada (desligada).
Caso contrário, ela permanece ligada.
 Bobina de Linha (Midline Output Coil). Pode ser colocada no
centro da linha possibilitando que outra lógica possa ser
implementada no lado direito da bobina.

Bobina Set. Se a linha transferir energia para este elemento,


ele fica energizado, mesmo que a linha deixe de estar
energizada.

Bobina Reset. Se a linha transferir energia para este


elemento, ele fica desenergizado e permanece desenergizado
mesmo que ocorra alteração de energia na linha.

Bobina de Detecção Positiva. Se as condições antes desta


bobina mudar de desligado para ligado, esta bobina é ligada
para um scan do controlador.

Bobina de Detecção Negativa. Se as condições antes desta


bobina mudar de ligado para desligado, esta bobina é ligada
para um scan do controlador.
 

7 – O Padrão GE (General Electric)

Finalmente, vamos visualizar os simbolos da linguagem ladder para os CLPs


da GE, temos o seguinte padrão:

Simbolo Descrição

Contato normalmente aberto (NA ou NO). Transfere


energia se a chave estiver ligada (fechada).
Contato normalmente fechado (NF ou NC). Transfere
energia se a chave estiver desligada (aberta).

Transição positiva (POSCON). Se o estado do símbolo


mudar de desligado para ligado, este contato transfere
energia na linha até o novo scan do controlador.
Válido para os processadores PACSystems e 90-70.
Transição positiva (PTCON). Se o estado do símbolo
mudar de desligado para ligado, este contato transfere
energia na linha até o novo scan do controlador.
Válido para apenas para os processadores
PACSystems.
Transição negativa (NEGCON). Se o estado do símbolo
mudar de ligado para desligado, este contato transfere
energia na linha até o novo scan do controlador.
Válido para os processadores PACSystems e 90-70.
Transição negativa (NTCON). Se o estado do símbolo
mudar de ligado para desligado, este contato transfere
energia na linha até o novo scan do controlador.
Válido para apenas para os processadores
PACSystems.

Bobina ou Saída. Se todos os contatos na linha


transferirem energia, a bobina é energizada (ligada).
Caso contrário, ela permanece desligada.

Bobina ou Saída Negada. Se todos os contatos na linha


transferirem energia, a bobina é desenergizada
(desligada). Caso contrário, ela permanece ligada.

Bobina Set. Se a linha transferir energia para este


elemento, ele fica energizado, mesmo que a linha deixe
de estar energizada.

Bobina Reset. Se a linha transferir energia para este


elemento, ele fica desenergizado e permanece
desenergizado mesmo que ocorra alteração de energia
na linha.

Bobina de Detecção Positiva (POSCOIL). Se as


condições antes desta bobina mudar de desligado para
ligado, esta bobina é ligada para um scan do
controlador.
Bobina de Detecção Positiva (PTCOIL). Se as condições
antes desta bobina mudar de desligado para ligado
em um scan. Utilizada nos processadores PACSystems.

Bobina de Detecção Negativa (NEGCOIL). Se as


condições antes desta bobina mudar de ligado para
desligado em um scan. Utilizada nos processadores
PACSystems.

Bobina de Detecção Negativa (NTCOIL). Se as


condições antes desta bobina mudar de ligado para
desligado, esta bobina é ligada para um scan do
controlador.

Continuação de Contato. Transfere energia se a bobina


precedente na linha estiver ligada.

Continuação de Contato. Transfere energia para a


bobina subsequente na linha.

Referências:

 Basic Ladder Logic Programming de Javier Ruiz Thorrens;


 Website http://www.allaboutcircuits.com/;
 Website http://www.personal.kent.edu/;

A Função dos Contadores na Lógica LADDER


Um contador é um componente simples aplicado para contar pulsos. São
utilizados para indexar, incrementar ou decrementar valores. Usá-lo, no
entanto, às vezes pode ser um desafio, porque cada fabricante de CLP (por
qualquer motivo) parece usá-los de forma diferente. No entanto, tenho certeza
de que as informações a seguir vão lhe fornecer um melhor entendimento
sobre este componente de forma que você será capaz de programar CLPs
facilmente utilizando este recurso.

Quais os Tipos de Contadores que Existem?


Usualmente, temos três tipos de contadores: o primeiro deles é o que conta
ascendente (1,2,3,….) e este tipo pode recebe diferentes nomes, dependendo
do fabricante (CTU, CTN, C ou CTR). Em segundo, temos os que fazem a
contagem descendente (9,8,7,6,…..) que normalmente são chamados de CTD.
Por fim, temos os contadores Up/Down que são capazes de contar ascendente
e/ou descendente sendo tipicamente denominados de UDC (contador up-
down).
Muitos fabricantes têm apenas um ou dois tipos de contadores que como vimos
podem ser utilizados para contar para cima, para baixo ou ambos. Mesmo que
haja diferentes formas de aplicar este componentes dependendo do fabricante,
não se preocupe pois contador é contador e o mais importante é saber o
conceito. A maioria dos fabricantes também incluem um número limitado
de contadores e com relação a velocidade, os contadores podem ser
implementados por hardware ou software. Os contadores de hardware (HSC ou
CTH) não são dependentes do tempo de varredura do CLP e são capazes de
realizar contagens a altas frequências, diferentemente dos contadores
implementados em software que possuem total dependência do tempo de
varredura do CLP.
Se você tiver dúvida sobre qual aplicar, uma boa regra de ouro é simplesmente
usar sempre os contadores normais (software) a menos que os pulsos que
você esteja contando sejam mais velozes do que 2x o tempo de varredura
do CLP. (Ou seja, se o tempo de varredura é de 2 ms, o pulso de contagem
deve ser igual ou superior a 4ms. Caso o tempo de pulso for inferior a 2x o
tempo de varredura do CLP, é recomendado utilizar o contador de hardware.

Os Contadores Padrão Rockwell

Na linguagem Ladder padrão Rockwell, podemos visualizar três


componentes que geralmente são utilizados:

CTU – Contador Ascendente (Count Up): Realiza uma contagem ascendente


até o valor máximo definido (PRE);
CTD – Contador Descendente (Count Down): Realiza uma contagem
descendente a partir do valor acumulado (ACC) até o valor mínimo definido
(PRE);

RES (Reset) – Faz o zeramento da contagem.

Os contadores possuem a função de incrementar valores a cada transição de


falso para verdadeiro e são capazes de reter este valor quando a instrução vai
para falso ou quando não há energia. Vejamos abaixo como funciona o
contador CTU:

Contador CTU

O símbolo do CTU pode ser visualizado abaixo, sendo que ele possui as
seguintes características:

 É uma instrução que conta quando existe transição de falso para verdadeiro (0
para 1). Quando esta transição ocorre, o valor é incrementado de 1 em 1;
 Uma contagem acumulada no CTU pode ser zerada (Resetada) através da
instrução RES;
 Se o valor acumulado ultrapassar o valor máximo definido, então OV fica
setado (1).

Cada endereço de contador é composto por 3 elementos de palavra (WORD)


que se organizam da seguinte forma:
Primeira Palavra – Bits de controle do contador que se organizam conforme
mostrado abaixo:

Bit 0-7 – Uso interno


Bit 10: UA – Atualização do valor acumulado;
Bit 11: UN – Underflow Bit
Bit 11: OV – Overflow Bit
Bit 13: DN – Done
Bit 14: CD – Count Down is enabled
Bit 15: CU – Count Up is enabled

Preset (PRE)

Segunda Palavra – armazena o valor presetado (PRE) e tem as seguintes


características:

 Especifica o valor, o qual o contador deve atingir antes do controlador setar o


bit DN (Done). Quando o valor do acumulador ficar igual ou maior do que o
valor presetado, o status Done vai para 1. Você pode utilizar este bit para
controlar uma saída.
 O valor PRE pode variar de -32.768 a 32.767;
 Se um valor negativo for inserido para o preset, um erro será reportado.

Acumulado (ACC)

Terceira Palavra – armazena o valor acumulado (ACC) e possui a caraterística


de contar armazenar o valor que foi contado a partir do número de vezes em
que ocorreram transições de falso para verdadeiro desde que o contador foi
energizado pela primeira vez.

Reset (RES)

Utiliza a instrução RES para resetar temporizadores e contadores. Quando a


instrução RES é ativada, ela reseta os seguintes componentes, desde que
endereçados corretamente: Timer on Relay, Retentive Timer e Conter Up. O
componente Couner Down tem o mesmo endereço que a instrução RES.
Os Temporizadores e a Lógica LADDER

Neste artigo, você vai aprender como funcionam os temporizadores ou


Timers. O que é temporizador? É exatamente o que a palavra diz… é uma
instrução que espera um tempo definido, antes de fazer algo. Parece simples,
não parece?
Quando nós olhamos para diferentes temporizadores é que a diversão
começa pois existem diferentes Timers disponíveis, dependendo do tipo de
fabricante. Abaixo eu explico alguns deles:

temporizador On-Delay – Este tipo de temporizador simplesmente “atrasa o


processo de ligar”. Em outras palavras, depois que a entrada (que pode ser
um sensor indutivo ou sensor capacitivo) é ativada, este componente espera
X segundos antes de ativar a saída (que poderia ser uma válvula
solenóide por exemplo). Este é o temporizador mais comum, e
frequentemente é chamado na linguagem Ladder de TON (timer on delay),
TIM (timer) ou TMR (timer).

temporizador Off-Delay – Este temporizador é o oposto do on delay timer


explicado acima, em que ele simplesmente “atrasa o desligamento”. Pegando
o mesmo exemplo acima, com este componente, depois que o sensor
indutivo é ativado, a solenoide permanece ligada depois de X segundos antes
de desligar.  Este temporizador pode também ser chamado de TOF (timer on
delay) e é menos comum a sua utilização do que o anterior;

temporizador Retentivo ou Acumulativo – Já este tipo de temporizador


precisa de duas entradas, sendo que uma entrada inicia a contagem de tempo
e a outra reseta ou zera o tempo. O liga/desliga dos temporizadores acima
podem ser reiniciados se a a entrada do sensor não estiver ligada/desligada
constantemente. Portanto, este temporizador, uma vez acionado, retem a
contagem de tempo mesmo que o sensor seja desligado. Por exemplo, nós
queremos saber quanto tempo um sensor permanece ligado durante o
período de 1 hora. Se nós utilizarmos os temporizadores acima, eles ficarão
zerando ou resetando o valor toda vez que o sensor ligar ou desligar. Este
timer no entanto nos fornecerá o tempo acumulado. Frequentemente estes
temporizadores são chamados de RTO (retentive timer) ou TMRA
(accumulating timer).

Tá bom, mas como vamos utilizar os temporizadores? Primeiramente


precisamos saber de duas coisas:
 O que vai habilitar o temporizador? Tipicamente utilizaremos uma das
entradas do CLP;
 Quanto tempo eu preciso esperar antes que o temporizador atue? Vamos
esperar 5 segundos antes de atuar a solenoide?

Quando as instruções antes do componente temporizador forem satisfeitas


como verdadeira, ele se energiza e simplesmente começara a contar. Quando
o programa em linguagem Ladder estiver rodando no CLP, poderemos então
visualizar o tempo decorrido ou o tempo acumulado. Importante dizer que
tipicamente os temporizadores podem contar o tempo de 0 a 9999 ou de 0 a
65535 segundos.
Mas por que estes números estranhos? Porque a maioria dos CLPs
possuem temporizadores de 16 bits e esta quantidade de bits pode
representar em decimais BCD um intervalo de 0 a 9999 ou 65535 em 16 bits
binários.
Com relação a contagem, cada tique do relógio (ou clock do CLP) representa
X segundos e cada fabricante oferece diferentes tiques. A maioria possui
incrementos de 10 a 100ms  que representa 1/10 de segundo. Outros
fabricantes também oferecem temporizadores de 1ms de incremento mas
independentemente dos tipos de incrementos, eles funcionam da mesma
forma apesar de possuírem a contagem mais ráPIDa. Com relação às
denominações destes tipos, podemos encontrar diferentes nomes de
temporizadores no mercado: TMH (high speed timer), TMS (super high speed
timer) ou TMRAF (accumulating fast timer).
Abaixo podemos visualizar um simbolo tipico de temporizador que
encontramos no mercado (dependendo do fabricante que escolhermos).
Neste caso, escolhi um da Allen Bradley (Rockwell). Vou explicar como ele
funciona, mas lembre-se de que independentemente do fabricante, o princípio
é sempre o mesmo e você aprendendo como funciona um, não terá
dificuldades com os demais.

Os Temporizadores Padrão Rockwell

Os CLPs da rockwell possuem dois tipos de temporizadores. Veremos abaixo


as funções do TON, TOF e RTO:
TON (Timer on Delay)

Faz uma contagem em intervalos de tempo quando a instrução é verdadeira;

Os temporizadores Timer on Delay começam a contar intervalos de tempo


quando as condições da linha em que ele se encontra tornam-se verdadeiras.
O tão quanto as condições da linha permanecer verdadeira, o tempo
continuará sendo contado e acumulado na palavra ACC até que o valor atinja
o desejado ou presetado (PRE). O valor acumulado é resetado ou zerado
quando as condições das linhas tornam-se falsas, independentemente se
o contador tenha atingido o valor setado. Cada temporizador TON é composto
por 3 elementos de palavra, sendo que a palavra 1 é a de controle e os bits se
organizam da seguinte forma:

 Bit 0-12: Valor interno


 Bit 13: Done (DN). Este bit torna-se 1 quando o valor acumulado (ACC) atinge
o valor presetado (PRE);
 Bit 14: Timer Timing (TT): Este bit torna-se 1 quando o temporizador está
cronometrando;
 Bit 15: Enabled (EN): Este bit torna-se 1 quando o Temporizador está
energizado.
A palavra 2 armazena o valor presetado (PRE) e tem as seguintes
características:

O programador especifica o seu valor e quando o valor acumulado atinge o


valor presetado, o bit DN do temporizador torna-se 1. Usualmente o valor
presetado varia de 0 a 32.767 e caso for setado um valor de tempo negativo,
o sistema gerará um erro.
A palavra 3 armazena o valor acumulado (ACC) que é o valor descorrido
desde que o timer foi resetado pela última vez. O valor acumulado é
incrementado de acordo com o Time Base que deve ser inserido pelo
programador e varia de 0 a 1.

TOF (Timer Off Delay)

Faz uma contagem em intervalos de tempo quando a instrução é falsa;

Os temporizadores Timer off Delay começam a contar intervalos de tempo


quando as condições da linha em que ele se encontra tornam-se falsas. O tão
quanto as condições da linha permanecerem falsas, o tempo continuará
sendo contado e acumulado na palavra ACC até que o valor atinja o desejado
ou presetado (PRE). O valor acumulado é resetado ou zerado quando as
condições da linha tornam-se verdadeiras, independentemente se
o contador tenha atingido o valor setado. Cada temporizador TON é composto
por 3 elementos de palavra, sendo que a palavra 1 é a de controle e os bits se
organizam da seguinte forma:
 Bit 0-12: Valor interno
 Bit 13: Done (DN). Este bit torna-se 1 quando o valor acumulado (ACC) atinge
o valor presetado (PRE);
 Bit 14: Timer Timing (TT): Este bit torna-se 1 quando o temporizador está
cronometrando;
 Bit 15: Enabled (EN): Este bit torna-se 1 quando o Temporizador está
energizado.

A palavra 2 armazena o valor presetado (PRE) e tem as seguintes


características:

O programador especifica o seu valor e quando o valor acumulado atinge o


valor presetado, o bit DN do temporizador torna-se 1. Usualmente o valor
presetado varia de 0 a 32.767 e caso for setado um valor de tempo negativo,
o sistema gerará um erro.
A palavra 3 armazena o valor acumulado (ACC) que é o valor descorrido
desde que o timer foi resetado pela última vez. O valor acumulado é
incrementado de acordo com o Time Base que deve ser inserido pelo
programador e varia de 0 a 1.

RTO (Retentive Timer)

Faz uma contagem em intervalos de tempo quando a instrução é falsa e retem


o valor acumulado quando a instrução é falsa e mesmo que ocorra uma
variação de energia ele retem o valor. Estes temporizadores começam a
contagem quando as condições da linha tornam-se verdadeiras e retem os
valores em 3 situações:
 As condições da linha são verdadeiras;
 O CLP muda de status de RUN para Test ou modo Programa;
 O processador é desenergizado e a bateria não está em falha.
Para zerar ou resetar o valor do temporizador retentivo, é necessário utilizar a
instrução RES com o mesmo endereço.

Cada temporizador retentivo RTO é composto por 3 elementos de palavra,


sendo que a palavra 1 é a de controle e os bits se organizam da seguinte
forma:

 Bit 0-12: Valor interno


 Bit 13: Done (DN). Este bit torna-se 1 quando o valor acumulado (ACC) atinge
o valor presetado (PRE);
 Bit 14: Timer Timing (TT): Este bit torna-se 1 quando o temporizador está
cronometrando;
 Bit 15: Enabled (EN): Este bit torna-se 1 quando o Temporizador está
energizado.

A palavra 2 armazena o valor presetado (PRE) e tem as seguintes


características:
O programador especifica o seu valor e quando o valor acumulado atinge o
valor presetado, o bit DN do temporizador torna-se 1. Usualmente o valor
presetado varia de 0 a 32.767 e caso for setado um valor de tempo negativo,
o sistema gerará um erro.
A palavra 3 armazena o valor acumulado (ACC) que é o valor descorrido
desde que o timer foi resetado pela última vez. O valor acumulado é
incrementado de acordo com o Time Base que deve ser inserido pelo
programador e varia de 0 a 1.

Você também pode gostar