Você está na página 1de 11

5.

Fundamentos da Programao LADDER


Este captulo expe os conceitos bsicos da programao ladder. Independente da
complexidade do programa de aplicao, h certos fundamentos da linguagem que so
imprescindveis para um desenvolvimento adequado e que so vlidos genericamente a todos os
PLCs.
DEFINIES INICIAIS
Mesmo tendo sido a primeira linguagem destinada especificamente programao de
PLCs, a Linguagem Ladder mantm-se ainda como a mais utilizada, estando presente praticamente
em todos os PLCs disponveis no mercado. Por ser uma linguagem grfica, baseada em smbolos
semelhantes aos encontrados nos esquemas eltricos (contatos e bobinas), as possveis diferenas
existentes entre os fabricantes de PLCs, quanto representao das instrues, so facilmente
assimiladas pelos usurios, como exemplificado na figura.
Verifique por exemplo o esquema conceitual de um sistema PLC, mostrado na figura
abaixo. As entradas fsicas reais esto fixadas a um mdulo de entrada (esquerda) enquanto as
sadas esto fixadas a um mdulo de sada (direita). No centro, v-se a representao lgica que a
CPU deve processar, na linguagem Ladder. Neste caso, se o Input 1 (interruptor normalmente
aberto) for fechado, a Output 1 (campainha) ligada.
O nome Ladder deve-se representao da linguagem se parecer com uma escada (ladder),
na qual duas barras verticais paralelas so interligadas pela Lgica de Controle, formando os
degraus (rungs) da escada. Portanto, a cada Lgica de Controle existente no Programa de Aplicao
d-se o nome de rung, a qual composta por Colunas e Linhas, conforme apresentado na figura a
seguir.
A quantidade de Colunas e Linhas, ou Elementos e Associaes, que cada rung pode conter
determinada pelo fabricante do PLC, podendo variar conforme a CPU utilizada. Em geral, este
limite no representa uma preocupao ao usurio durante o desenvolvimento do Programa de
Aplicao, pois os Softwares de Programao indicam se tal quantidade foi ultrapassada, por meio
de erro durante a compilao do Programa de Aplicao.
Cada Elemento (contato ou bobina, por exemplo) da Lgica de Controle representa uma
Instruo da Linguagem Ladder sendo alocada em um endereo especfico e consumindo uma
quantidade determinada de memria (word) disponvel para armazenamento do Programa de
Aplicao, conforme a CPU utilizada. Um mesmo smbolo grfico da Linguagem Ladder (Contato
Normalmente Aberto, por exemplo) pode representar Instrues diferentes, dependendo da
localizao na Lgica de Controle.
A figura seguinte apresenta a equivalncia entre o Programa de Aplicao em Linguagem
Ladder e o mesmo Programa em Linguagem de Lista de Instrues (Linguagem de Mquina -
mnemnicos). Como pode ser visto, cada Instruo utilizada na Linguagem Ladder ocupou apenas
um endereo de memria, o que verificado pelo incremento simples de endereo em Linguagem
de Lista de Instrues. Porm, h instrues que ocupam mais de um endereo de memria,
conforme a CPU utilizada.
A relao entre o smbolo grfico da Linguagem Ladder e a Instruo a ser executada pode
ser verificada nos Endereos 0 e 1 do Programa em Linguagem de Lista de Instrues. Neste caso, a
representao em Linguagem Ladder para os Elementos XO e X2 so Contatos Normalmente
Abertos idnticos. Porm, a localizao de cada um na Lgica de Controle determina Instrues
diferentes, ou seja, o Contato Normalmente Aberto de XO, por iniciar o rung, determina a Instruo
'Store' (STR XO) e o Contato Normalmente Aberto de X2 (com representao grfica idntica de
XO), por estar em paralelo com XO, determina a Instruo 'Or' (OR X2). Esta caracterstica da
Linguagem Ladder normalmente facilita o desenvolvimento do Programa de Aplicao, uma vez
que o usurio precisa certificar-se apenas se a associao desejada aceita pela CPU utilizada, no
se prendendo Instruo propriamente dita.
CONCEITOS BSICOS DA PROGRAMAO EM LINGUAGEM LADDER
Os conceitos apresentados em seguida so necessrios para o correto desenvolvimento de
Programas de Aplicao em Linguagem Ladder Eles so aplicados a todos os PLCs, independente
de fabricante e de recursos disponveis na CPU utilizada.
Instruo END
Todo programa em Linguagem Ladder deve ter uma Instruo END, indicando o seu final.
Trata-se de uma bobina e classificada como Instruo de Controle do Programa. uma Instruo
incondicional, no admitindo qualquer tipo de Elemento em sua Lgica de Controle. Toda
Instruo localizada aps a Instruo END no ser executada pelo Programa de Aplicao, com
exceo das Instrues de Interrupo, Sub-Rotinas e Controles Especficos (Mensagens, por
exemplo). A no-existncia da Instruo END no Programa de Aplicao gera um 'Erro Fatal',
fazendo com que a CPU no permanea em Modo de Execuo (RUN).
Corrente Lgica Fictcia
Para que uma bobina (ou outro Elemento de Sada - temporizador, contador ou bloco de
funo, por exemplo) seja acionada (Instruo executada), faz-se necessrio energiz-la
logicamente. Assim, utiliza-se o conceito de Corrente Lgica Fictcia, ou seja, supondo que entre
as barras verticais que 'sustentam' toda a Lgica de Controle haja uma diferena de potencial (a
barra da esquerda com potencial positivo e a barra da direita com potencial negativo, por exemplo),
haver a circulao de corrente da esquerda para a direita se a Lgica de Controle der condies
para tal. A este conceito d-se o nome de Corrente Lgica Fictcia.
Na figura acima pode-se observar que se o Contato de XO (Normalmente Aberto) estiver
acionado - condio para que haja o fluxo de corrente entre as extremidades da Lgica de Controle,
a bobina de Y0 ser energizada, atuando tal Sada (por meio da Instruo OUT). Caso contrrio, a
bobina de YO no ser energizada (no sendo submetida a uma 'ddp lgica'), mantendo a Sada
desligada. O sentido da Corrente Lgica Fictcia sempre, e to somente, da esquerda para a direita,
no existindo a possibilidade de fluxo em sentido contrrio. No exemplo hipottico da figura
abaixo, a bobina de YO poderia ser acionada apenas por meio de XO-X1-X2, ou XO-X3-X4, ou X5-
X4, devidamente acionados. Porm, nunca por meio de X5-X3-X1-X2, mesmo que devidamente
acionados.
Implementao da Lgica de Controle
A Linguagem Ladder permite o acionamento de vrios Elementos de Sada bobinas,
temporizadores, contadores, etc.) simultaneamente, por meio da mesma Lgica de Controle, sem
necessidade de construo de rungs similares. A Lgica de Controle implementada apresentada a
seguir determina que, ao ser atuada a Entrada XO, as Sadas YO, Y1 e Y2 sero acionadas
simultaneamente.
possvel, tambm, implementar a Lgica de Controle utilizando derivaes nas Linhas de
um determinado rung. A Lgica de Controle apresentada em seguida determina que a Sada YO
acionada a partir da condio da Entrada XO apenas (YO = XO), a Sada Y1 acionada a partir da
condio das Entradas XO e X1 (Y11 = XO . XII) e a Sada Y2 acionada a partir da condio das
Entradas XO, X1 e X2 (Y2 = XO . X1 . X2). Com este recurso, evita-se a implementao de trs
Lgicas de Controle, em trs rungs distintos.
Algumas CPUs podem apresentar restries quanto utilizao desta forma de
implementao da Lgica de Controle. Por exemplo, as CPUs Automationdirec.com no permitem
que aps a derivao, em qualquer Linha da Lgica de Controle, haja outro Elemento alm da(s)
Sada(s) controlada(s). Se isto ocorrer, haver indicao de Erro aps a compilao do Programa
de Aplicao. A figura abaixo ilustra esta situao, na qual a Sada YO acionada a partir da
condio da Entrada XO apenas (YO = XO), a Sada Y1 acionada a partir da condio das
Entradas XO e X1 (Y1 XO . X1) e a Sada Y2 acionada a partir da condio das Entradas XO e
X2 (Y2 = XO X2).
Uma forma de implementar esta mesma Lgica de Controle, nas CPUs que apresentem tal
restrio, ilustrada :
Relao o Dispositivos de Entrada x Lgica de Controle
A relao entre a condio do dispositivo de entrada (acionado ou no) e o Elemento
utilizado na Lgica de Controle (Contato Normalmente Aberto ou Normalmente Fechado) pode
causar certa confuso inicial ao usurio durante a implementao de Programas de Aplicao para
PLCs.
Normalmente, faz-se a associao direta entre o Elemento utilizado na Lgica de Controle
e a condio do dispositivo de entrada, o que gera tal confuso. Ou seja, ao se deparar com um
programa que tenha Lgica de Controle semelhante apresentada abaixo, acredita-se inicialmente
que a Sada YO estar acionada quando a Entrada XO estiver aberta, tal qual indicado na
Linguagem Ladder A verdade exatamente oposta a esta idia, ou seja, a Sada YO s estar
acionada quando a Entrada XO estiver fechada.
A relao existente entre a condio dos dispositivos de entrada e o Elemento utilizado na Lgica de
Controle pode ser definida da seguinte maneira:
Se o dispositivo de entrada estiver fechado (Ponto de Entrada / Tabela de Imagem das
Entradas = 1), o Elemento utilizado na Lgica de Controle atuado, ou seja o Contato
Normalmente Aberto torna-se fechado (dando condio ao fluxo da Corrente Lgica
Fictcia) e o Contato Normalmente Fechado torna-se aberto (impedindo o fluxo de tal
corrente). Caso contrrio, se o dispositivo de entrada estiver aberto (Ponto de Entrada /
Tabela de imagem das Entradas = 0), o Elemento utilizado na Lgica de Controle
mantm seu estado natural (ou de repouso), sendo que o Contato Normalmente Aberto
permanece aberto (impedindo o fluxo da Corrente Lgica Fictcia) e o Contato
Normalmente Fechado permanece fechado (dando condio ao fluxo desta corrente).
Esta definio resumida na tabela abaixo.
Conforme visto, independente das caractersticas do dispositivo conectado ao Mdulo de
Entrada (Contato Normalmente Aberto - NA, ou Normalmente Fechado NF), a Lgica de Controle
pode ser implementada com Contatos NA elou NF referenciados ao mesmo Ponto de Entrada.
Por exemplo, a Lgica de Controle mplementada a seguir determina que se XO = 1
(entrada atuada), ser acionada a Sada YO. Caso contrrio, se XO = 0 (entrada no atuada), ser
acionada a Sada Y1. Embora a cada Ponto de Entrada, no caso XO, possa ser conectado apenas
um tipo de contato do dispositivo de entrada (NA ou NF), a Lgica de Controle pode ser
implementada de tal forma que realize operaes distintas, conforme a atuao ou no do
dispositivo de entrada, no caso acionando YO ou Y1.
Cada Ponto de Entrada tem apenas um nico endereo a ele relacionado (XO, X1, ... ),
porm pode ser utilizado tantas vezes quantas forem necessrias para a implementao da Lgica de
Controle, ora como Contato NA, ora como Contato NF, tendo como nico limite a quantidade de
memria disponvel ao armazenamento do Programa de Aplicao.
TIPOS DE DADOS
Alm dos Pontos de Entrada e Sada Discretas, h outros Elementos (ou Tipos de Dados)
utilizados na implementao da Lgica de Controle. Embora cada PLC utilize nomenclatura,
representao grfica (Linguagem Ladder) e forma de endereamento prprias, a equivalncia entre
os Tipos de Dados disponveis em CPUs distintas proporciona rpida adaptao ao usurio.
Os Tipos de Dados apresentados em seguida referem-se s CPUs Automationdirect.com.
Porm, eles esto presentes, com as possveis diferenas citadas acima, na maioria dos PLCs
disponveis no mercado.
Entradas Discretas Tipo de Dado: X
As Entradas Discretas so identificadas por X (Dado Tipo X), e cada Ponto endereado
em base octal (XO, X1, X2,..., X7, X10, X11,..., X77, X100, X101, ... ). Normalmente, esto
associadas s Instrues Booleanas de Entrada (Contatos NA ou NF).
Sadas Discretas - Tipo de Dado: Y
As Sadas Discretas so identificadas por Y (Dado Tipo Y), e cada Ponto endereado em
base octal (YO, Y1, Y2,..., Y7, Y10, ... ). Embora estejam, normalmente, associadas s Instrues
Boolenas de Sada (Bobinas de diversas funes), podem ser utilizadas tambm em Instrues
Boolenas de Entrada (Contatos NA ou NF), conforme a necessidade.
Na Lgica de Controle implementada em seguida, pode-se observar a utilizao do Dado
Tipo Y (YO) associado a uma Instruo de Entrada (Contato NF). Neste caso, a Sada YO
acionada a partir da condio das Entradas XO e X1 (XO = 1 e X1 = 0). Caso esta condio no
seja satisfeita, a Sada YO no acionada (mantendo-se desligada), ocasionando o acionamento da
Sada Y1 (YO = 0).
Rels de Controle - Tipo de Dado: C
Trata-se de bits internos CPU, utilizados como Rels de Controle (ou Auxiliares), no
tendo conexo a dispositivos externos de entrada ou sada. So identificados por C (Dado Tipo C), e
cada Rel de Controle endereado em base octal (CO, C1, C2,.... C7, C10, ... ). So associados s
Instrues Booleanas de Entrada ou de Sada. A Lgica de Controle implementada exemplifica a
utilizao dos Rels de Controle:
Temporizadores (Timers) e Bits de Status - Tipo de Dado: T
Normalmente, so utilizados para temporizao de condies e/ou eventos controlados
pelo Programa de Aplicao. Cada Temporizador identificado por T (Dado Tipo T), e endereado
em base octal (TO, T1, T2,...,T7, T10, ... ). H um Bit de Status (Bit de Condio) relacionado a
cada Temporizador (com mesmo endereo), o qual ativado quando o Valor Atual do
Temporizador for igual ou superior ao Valor de Preset (Valor Pr-Configurado). A razo do
incremento de tempo depende do Tipo de Temporizador utilizado.
Na Lgica de Controle implementada na figura anterior, ao ser atuada a Entrada XO,
iniciada a temporizao de TO, o qual tem Valor de Preset fixo em 3,0 segundos (o Temporizador
apresentado possui incremento de tempo de 0,1s, portanto K30 equivale a 30 x 0,1 s). Ao ser
atingido o Valor de Preset, ativado o Bit de Status de TO, acionando a Sada YO. 0 Bit de Status
de To permanece ativado at que o Temporizador seja desativado (XO = 0, Valor Atual de TO = 0).
Este bit pode ser associado a um Contato NA ou NF, conforme a necessidade.
Valor Atual dos Temporizadores - Tipo de Dado: V (TA)
Alm de monitorar se o Temporizador atingiu o Valor de Preset, por meio do Bit de Status,
possvel ter acesso ao Valor Atual de cada Temporizador durante a execuo do Programa de
Aplicao, por meio de um endereo especfico da Tabela de Dados. Por exemplo, o endereo 0 (ou
VO) contm o Valor Atual de TO, o endereo 1 (ou V1) contm o Valor Atual de T1, e assim
sucessivamente. Estes endereos podem ser utilizados na implementao da Lgica de Controle,
proporcionando flexibilidade no desenvolvimento do Programa de Aplicao. 0 Software de
Programao da Autornationdirect.com (DirectSOFT) permite que, em vez do endereo (VO, V1,
V2, ... ), seja utilizada uma representao mais apropriada (TAO para TO, TA1 para T1, TA2 para
T2, ... ) como indicao do Valor Atual de cada Temporizador.
Na Lgica de Controle implementada adiante, ao ser atuada a Entrada XO, iniciada a
temporizao de TO. Ao atingir 1s, a Sada YO acionada (Valor Atual de TO >= K10); ao atingir
2s, a Sada Y1 acionada (Valor Atual de TO >= k(20); e ao atingir 2s, a Sada Y2 acionada
(Valor Atual de TO >= K30).
Contadores (Counters) e Bits de Status - Tipo de Dado: CT
Normalmente, so utilizados para contagem de condies e/ou eventos controlados pelo
Programa de Aplicao. Cada Contador identificado por CT (Dado Tipo CT), e endereado em
base octal (CTO, CT1, CT2,...,CT7, CT10, ... ). H um Bit de Status (Bit de Condio) relacionado
a cada Contador (com mesmo endereo), o qual ativado quando o Valor Atual do Contador for
igual ou superior ao Valor de Preset (Valor Pr-Configurado).
Na Lgica de Controle implementada abaixo, a cada transio de 0 para 1 (off -> on) da
Entrada XO, o Valor Atual de CTO incrementado em uma unidade, o qual tem Valor de Preset
fixo em 10. Ao ser atingido o Valor de Preset, ativado o Bit de Status de CTO, acionando a Sada
YO. 0 Bit de Status de CTO permanece ativado at que o Contador seja reinicializado (resetado) por
meio da atuao da Entrada X1 (Valor Atual de CTO = 0). Este bit pode ser associado a um
Contato NA ou NF, conforme a necessidade.
Valor Atual dos Contadores - Tipo de Dado: V (CTA)
Alm de monitorar se o Contador atingiu o Valor de Preset, por meio do Bit de Status,
possvel ter acesso ao Valor Atual de cada Contador durante a execuo do Programa de Aplicao,
por meio de um endereo especfico da Tabela de Dados. Por exemplo, o endereo 1000 (ou VI 000)
contm o Valor Atual de CTO, o endereo 1001 (ou V1001) contm o Valor Atual de CT1, e assim
sucessivamente. Estes endereos podem ser utilizados na implementao da Lgica de Controle,
proporcionando flexibilidade no desenvolvimento do Programa de Aplicao. 0 Software de
Programao da Automationdirect.corn (DirectSOFT) permite que, em vez do endereo (VI 000, VI
001, VI 002, ... ), seja utilizada uma representao mais apropriada (CTAO para CTO, CTA1 para
CT1, CTA2 para CT2, ... ) como indicao do Valor Atual de cada Contador.
Na Lgica de Controle implementada em seguida, a cada transio de 0 para 1 da Entrada
XO, o Valor Atual de CTO incrementado em uma unidade. Ao atingir o valor de contagem igual a
3, a Sada YO acionada (Valor Atual de CTO >= K3); ao atingir o valor de contagem igual a 6, a
Sada Y1 acionada (Valor Atual de CTO >= K6); e ao atingir o valor de contagem igual a 9, a
Sada Y2 acionada (Valor Atual de CTO >= K9).
Variveis (Words) - Tipo de Dado: V
So posies de memria de 16 bits geralmente utilizadas para armazenamento ou
manipulao de dados e valores. Cada Word identificada por V (Dado Tipo V), e endereada em
base octal (V2000, V2001,..., V2007, V2010, ... ). Alguns endereos tm funes predefinidas, como,
por exemplo, VO (armazena o Valor Atual de TO) ou V1000 (armazena o Valor Atual de CTO),
sendo que a rea livre disponvel para o usurio determinada pela CPU utilizada.
Todas as CPUs Automationdirect.com possuem acumulador de 32 bits. Assim, quando
necessrio, podem-se utilizar Instrues Duplas (que manipulam 32 bits) para operar com duas
Words consecutivas de memria (V2000 e V2001, por exemplo).
Na Lgica de Controle implementada acima, ao ser atuada a Entrada XO, o valor 1234 (em
formato BCD/HEX) carregado no acumulador (LD / Load - Carregar) e ento enviado para a
Word V2000 (OUT).
Estgios e Bit de Status - Tipo de Dado: S
Os Estgios so usados no desenvolvimento de Programas de Aplicao estruturados,
permitindo a traduo da Descrio realizada em SFC (Captulo 1) para Linguagem ladder por meio
de Instrues RLL/plus (Relay Ladder Logic Plus) disponvel na maioria das CPUs
Automationdirect. com.
So identificados por S (Dado Tipo 5), e endereados em base octal (SO, S1,---, S7, S10, ...).
Cada Estgio representa um segmento do Programa de Aplicao e contm a Lgica de Controle
referente a este, que ser executada apenas se o Estgio estiver ativo. Caso contrrio, a CPU 'salta'
para o prximo Estgio que atenda a esta condio. H tambm um Bit de Status (Bit de Condio)
relativo a cada Estgio (com mesmo endereo), que pode ser associado s Instrues Booleanas de
Entrada (para indicar se o Estgio est ativo ou no - Contatos NA ou NF) ou de Sada (para
determinar o acionamento ou no do Estgio - Instrues de Jump, Set ou Reset).
A Lgica de Controle implementada nesta ltima figura determina que, ao iniciar a
execuo do Programa de Aplicao, mesmo que a Entrada X1 seja atuada (X1 = 1), a Sada Y1
no ser acionada, pois o Estgio que contm a Lgica de Controle (S2) no estar ativo. Neste
momento, apenas o Estgio Inicial (SO) estar e permanecer ativo, at que a Entrada XO seja
atuada (XO = 1), dando condio de Jump para o Estgio 52, o que ocasiona a desativao de SO e
a ativao de S2 (SO = 0 e S2 = 1), permitindo que a Entrada X1 acione a Sada Y1.
Rels Especiais (Special Relays) - Tipo de Dado: SP
Trata-se de bits internos CPU com funes predefinidas pelo fabricante, como Indicao
de Status do Acumulador da CPU, Monitoramento do Sistema, Indicao de Erros e Base de
Tempo-Real, por exemplo. So identificados por SP (Dado Tipo SP), endereados em base octal e
s podem ser associados s Instrues Booleanas de Entrada (Contatos NA ou NF). A tabela a
seguir apresenta alguns exemplos de Rels Especias.
Na Lgica de Controle implementada, ao ser atuada a Entrada XO, a Sada YO
permanecer acionada por 0,5s e desligada por 0,5s (tempo determinado por SP4).
MAPEAMENTO DE MEMRIA
Todos os Tipos de Dados apresentados tm uma rea de memria (Word ou VMemory)
reservada para este fim. A quantidade de cada um dos Tipos de Dados disponveis depende da CPU
utilizada, porm o endereo inicial dessas reas (Mapeamento) sempre o mesmo, conforme
apresentado nas tabelas seguintes.
Os Dados Tipo TA (Valor Atual dos Temporizadores) tm endereo inicial em V0 e os
Dados Tipo CTA (Valor Atual dos Contadores) tm endereo inicial em V1000, conforme
apresentado anteriormente. j os Dados Tipo V (Word) tm endereo inicial dependente da CPU
utilizada. Porm, o endereo V2000 referncia para a maioria dos modelos.

Você também pode gostar