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 X5X4, 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