Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Fundamentos da Programação LADDER, Notas de estudo de Tecnologia Industrial

Fundamentos da Programação LADDER

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 24/09/2009

marlon-oliveira-2
marlon-oliveira-2 🇧🇷

4.6

(68)

129 documentos

1 / 11

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
5. Fundamentos da Programação LADDER
Este capítulo expõe os conceitos básicos da programação ladder. Independente da
complexidade do programa de aplicação, há certos fundamentos da linguagem que são
imprescindíveis para um desenvolvimento adequado e que são válidos genericamente a todos os
PLCs.
DEFINIÇÕES INICIAIS
Mesmo tendo sido a primeira linguagem destinada especificamente à programação de
PLCs, a Linguagem Ladder mantém-se ainda como a mais utilizada, estando presente praticamente
em todos os PLCs disponíveis no mercado. Por ser uma linguagem gráfica, baseada em símbolos
semelhantes aos encontrados nos esquemas elétricos (contatos e bobinas), as possíveis diferenças
existentes entre os fabricantes de PLCs, quanto à representação das instruções, são facilmente
assimiladas pelos usuários, como exemplificado na figura.
Verifique por exemplo o esquema conceitual de um sistema PLC, mostrado na figura
abaixo. As entradas físicas reais estão fixadas a um módulo de entrada (esquerda) enquanto as
saídas estão fixadas a um módulo de saída (direita). No centro, vê-se a representação lógica 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 à representação da linguagem se parecer com uma escada (ladder),
na qual duas barras verticais paralelas são interligadas pela Lógica de Controle, formando os
degraus (rungs) da escada. Portanto, a cada Lógica de Controle existente no Programa de Aplicação
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 Associações, que cada rung pode conter
é determinada pelo fabricante do PLC, podendo variar conforme a CPU utilizada. Em geral, este
limite não representa uma preocupação ao usuário durante o desenvolvimento do Programa de
Aplicação, pois os Softwares de Programação indicam se tal quantidade foi ultrapassada, por meio
de erro durante a compilação do Programa de Aplicação.
pf3
pf4
pf5
pf8
pf9
pfa

Pré-visualização parcial do texto

Baixe Fundamentos da Programação LADDER e outras Notas de estudo em PDF para Tecnologia Industrial, somente na Docsity!

5. Fundamentos da Programação LADDER

Este capítulo expõe os conceitos básicos da programação ladder. Independente da complexidade do programa de aplicação, há certos fundamentos da linguagem que são imprescindíveis para um desenvolvimento adequado e que são válidos genericamente a todos os PLCs.

DEFINIÇÕES INICIAIS

Mesmo tendo sido a primeira linguagem destinada especificamente à programação de PLCs, a Linguagem Ladder mantém-se ainda como a mais utilizada, estando presente praticamente em todos os PLCs disponíveis no mercado. Por ser uma linguagem gráfica, baseada em símbolos semelhantes aos encontrados nos esquemas elétricos (contatos e bobinas), as possíveis diferenças existentes entre os fabricantes de PLCs, quanto à representação das instruções, são facilmente assimiladas pelos usuários, como exemplificado na figura.

Verifique por exemplo o esquema conceitual de um sistema PLC, mostrado na figura abaixo. As entradas físicas reais estão fixadas a um módulo de entrada (esquerda) enquanto as saídas estão fixadas a um módulo de saída (direita). No centro, vê-se a representação lógica 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 à representação da linguagem se parecer com uma escada (ladder), na qual duas barras verticais paralelas são interligadas pela Lógica de Controle, formando os degraus (rungs) da escada. Portanto, a cada Lógica de Controle existente no Programa de Aplicação 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 Associações, que cada rung pode conter é determinada pelo fabricante do PLC, podendo variar conforme a CPU utilizada. Em geral, este limite não representa uma preocupação ao usuário durante o desenvolvimento do Programa de Aplicação, pois os Softwares de Programação indicam se tal quantidade foi ultrapassada, por meio de erro durante a compilação do Programa de Aplicação.

Cada Elemento (contato ou bobina, por exemplo) da Lógica de Controle representa uma Instrução da Linguagem Ladder sendo alocada em um endereço específico e consumindo uma quantidade determinada de memória (word) disponível para armazenamento do Programa de Aplicação, conforme a CPU utilizada. Um mesmo símbolo gráfico da Linguagem Ladder (Contato Normalmente Aberto, por exemplo) pode representar Instruções diferentes, dependendo da localização na Lógica de Controle. A figura seguinte apresenta a equivalência entre o Programa de Aplicação em Linguagem Ladder e o mesmo Programa em Linguagem de Lista de Instruções (Linguagem de Máquina - mnemônicos). Como pode ser visto, cada Instrução utilizada na Linguagem Ladder ocupou apenas um endereço de memória, o que é verificado pelo incremento simples de endereço em Linguagem de Lista de Instruções. Porém, há instruções que ocupam mais de um endereço de memória, conforme a CPU utilizada.

A relação entre o símbolo gráfico da Linguagem Ladder e a Instrução a ser executada pode ser verificada nos Endereços 0 e 1 do Programa em Linguagem de Lista de Instruções. Neste caso, a representação em Linguagem Ladder para os Elementos XO e X2 são Contatos Normalmente Abertos idênticos. Porém, a localização de cada um na Lógica de Controle determina Instruções diferentes, ou seja, o Contato Normalmente Aberto de XO, por iniciar o rung, determina a Instrução 'Store' (STR XO) e o Contato Normalmente Aberto de X2 (com representação gráfica idêntica à de XO), por estar em paralelo com XO, determina a Instrução 'Or' (OR X2). Esta característica da Linguagem Ladder normalmente facilita o desenvolvimento do Programa de Aplicação, uma vez que o usuário precisa certificar-se apenas se a associação desejada é aceita pela CPU utilizada, não se prendendo à Instrução propriamente dita.

CONCEITOS BÁSICOS DA PROGRAMAÇÃO EM LINGUAGEM LADDER

Os conceitos apresentados em seguida são necessários para o correto desenvolvimento de Programas de Aplicação em Linguagem Ladder Eles são aplicados a todos os PLCs, independente de fabricante e de recursos disponíveis na CPU utilizada.

Instrução END

Todo programa em Linguagem Ladder deve ter uma Instrução END, indicando o seu final. Trata-se de uma bobina e é classificada como Instrução de Controle do Programa. É uma Instrução

necessidade de construção de rungs similares. A Lógica de Controle implementada apresentada a seguir determina que, ao ser atuada a Entrada XO, as Saídas YO, Y1 e Y2 serão acionadas simultaneamente.

É possível, também, implementar a Lógica de Controle utilizando derivações nas Linhas de um determinado rung. A Lógica de Controle apresentada em seguida determina que a Saída YO é acionada a partir da condição da Entrada XO apenas (YO = XO), a Saída Y1 é acionada a partir da condição das Entradas XO e X1 (Y11 = XO. XII) e a Saída Y2 é acionada a partir da condição das Entradas XO, X1 e X2 (Y2 = XO. X1. X2). Com este recurso, evita-se a implementação de três Lógicas de Controle, em três rungs distintos.

Algumas CPUs podem apresentar restrições quanto à utilização desta forma de implementação da Lógica de Controle. Por exemplo, as CPUs Automationdirec.com não permitem que após a derivação, em qualquer Linha da Lógica de Controle, haja outro Elemento além da(s) Saída(s) controlada(s). Se isto ocorrer, haverá indicação de “Erro” após a compilação do Programa de Aplicação. A figura abaixo ilustra esta situação, na qual a Saída YO é acionada a partir da condição da Entrada XO apenas (YO = XO), a Saída Y1 é acionada a partir da condição das Entradas XO e X1 (Y1 XO. X1) e a Saída Y2 é acionada a partir da condição das Entradas XO e X2 (Y2 = XO X2).

Uma forma de implementar esta mesma Lógica de Controle, nas CPUs que apresentem tal restrição, é ilustrada :

Relação o “Dispositivos de Entrada” x “Lógica de Controle”

A relação entre a condição do dispositivo de entrada (acionado ou não) e o Elemento utilizado na Lógica de Controle (Contato Normalmente Aberto ou Normalmente Fechado) pode causar certa confusão inicial ao usuário durante a implementação de Programas de Aplicação para PLCs.

Normalmente, faz-se a associação direta entre o Elemento utilizado na Lógica de Controle e a condição do dispositivo de entrada, o que gera tal confusão. Ou seja, ao se deparar com um programa que tenha Lógica de Controle semelhante à apresentada abaixo, acredita-se inicialmente que a Saída YO estará acionada quando a Entrada XO estiver aberta, tal qual indicado na Linguagem Ladder A verdade é exatamente oposta a esta idéia, ou seja, a Saída YO só estará acionada quando a Entrada XO estiver fechada.

A relação existente entre a condição dos dispositivos de entrada e o Elemento utilizado na Lógica 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 Lógica de Controle é atuado, ou seja o Contato Normalmente Aberto torna-se fechado (dando condição ao fluxo da Corrente Lógica Fictícia) e o Contato Normalmente Fechado torna-se aberto (impedindo o fluxo de tal corrente). Caso contrário, se o dispositivo de entrada estiver aberto (Ponto de Entrada / Tabela de imagem das Entradas = 0), o Elemento utilizado na Lógica de Controle mantém seu estado natural (ou de repouso), sendo que o Contato Normalmente Aberto permanece aberto (impedindo o fluxo da Corrente Lógica Fictícia) e o Contato Normalmente Fechado permanece fechado (dando condição ao fluxo desta corrente).”

Esta definição é resumida na tabela abaixo.

Na Lógica de Controle implementada em seguida, pode-se observar a utilização do Dado Tipo Y (YO) associado a uma Instrução de Entrada (Contato NF). Neste caso, a Saída YO é acionada a partir da condição das Entradas XO e X1 (XO = 1 e X1 = 0). Caso esta condição não seja satisfeita, a Saída YO não é acionada (mantendo-se desligada), ocasionando o acionamento da Saída Y1 (YO = 0).

Relés de Controle - Tipo de Dado: C

Trata-se de bits internos à CPU, utilizados como Relés de Controle (ou Auxiliares), não tendo conexão a dispositivos externos de entrada ou saída. São identificados por C (Dado Tipo C), e cada Relé de Controle é endereçado em base octal (CO, C1, C2,.... C7, C10, ... ). São associados às Instruções Booleanas de Entrada ou de Saída. A Lógica de Controle implementada exemplifica a utilização dos Relés de Controle:

Temporizadores (Timers) e Bits de Status - Tipo de Dado: T

Normalmente, são utilizados para temporização de condições e/ou eventos controlados pelo Programa de Aplicação. Cada Temporizador é identificado por T (Dado Tipo T), e endereçado em base octal (TO, T1, T2,...,T7, T10, ... ). Há um Bit de Status (Bit de Condição) relacionado a cada Temporizador (com mesmo endereço), o qual é ativado quando o Valor Atual do Temporizador for igual ou superior ao Valor de Preset (Valor Pré-Configurado). A razão do incremento de tempo depende do Tipo de Temporizador utilizado.

Na Lógica de Controle implementada na figura anterior, ao ser atuada a Entrada XO, é iniciada a temporização 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 Saída 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)

Além de monitorar se o Temporizador atingiu o Valor de Preset, por meio do Bit de Status, é possível ter acesso ao Valor Atual de cada Temporizador durante a execução do Programa de Aplicação, por meio de um endereço específico da Tabela de Dados. Por exemplo, o endereço 0 (ou VO) contém o Valor Atual de TO, o endereço 1 (ou V1) contém o Valor Atual de T1, e assim sucessivamente. Estes endereços podem ser utilizados na implementação da Lógica de Controle, proporcionando flexibilidade no desenvolvimento do Programa de Aplicação. 0 Software de Programação da Autornationdirect.com (DirectSOFT) permite que, em vez do endereço (VO, V1, V2, ... ), seja utilizada uma representação mais apropriada (TAO para TO, TA1 para T1, TA2 para T2, ... ) como indicação do Valor Atual de cada Temporizador. Na Lógica de Controle implementada adiante, ao ser atuada a Entrada XO, é iniciada a temporização de TO. Ao atingir 1s, a Saída YO é acionada (Valor Atual de TO >= K10); ao atingir 2s, a Saída Y1 é acionada (Valor Atual de TO >= k(20); e ao atingir 2s, a Saída Y2 é acionada (Valor Atual de TO >= K30).

Contadores (Counters) e Bits de Status - Tipo de Dado: CT

Normalmente, são utilizados para contagem de condições e/ou eventos controlados pelo Programa de Aplicação. Cada Contador é identificado por CT (Dado Tipo CT), e endereçado em base octal (CTO, CT1, CT2,...,CT7, CT10, ... ). Há um Bit de Status (Bit de Condição) relacionado a cada Contador (com mesmo endereço), o qual é ativado quando o Valor Atual do Contador for igual ou superior ao Valor de Preset (Valor Pré-Configurado). Na Lógica de Controle implementada abaixo, a cada transição 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 Saída YO. 0 Bit de Status de CTO permanece ativado até que o Contador seja reinicializado (resetado) por meio da atuação da Entrada X1 (Valor Atual de CTO = 0). Este bit pode ser associado a um Contato NA ou NF, conforme a necessidade.

Estágios e Bit de Status - Tipo de Dado: S

Os Estágios são usados no desenvolvimento de Programas de Aplicação estruturados, permitindo a tradução da Descrição realizada em SFC (Capítulo 1) para Linguagem ladder por meio de Instruções RLL/plus (Relay Ladder Logic Plus) disponível na maioria das CPUs Automationdirect. com. São identificados por S (Dado Tipo 5), e endereçados em base octal (SO, S1,---, S7, S10, ...). Cada Estágio representa um segmento do Programa de Aplicação e contém a Lógica de Controle referente a este, que será executada apenas se o Estágio estiver ativo. Caso contrário, a CPU 'salta' para o próximo Estágio que atenda a esta condição. Há também um Bit de Status (Bit de Condição) relativo a cada Estágio (com mesmo endereço), que pode ser associado às Instruções Booleanas de Entrada (para indicar se o Estágio está ativo ou não - Contatos NA ou NF) ou de Saída (para determinar o acionamento ou não do Estágio - Instruções de Jump, Set ou Reset). A Lógica de Controle implementada nesta última figura determina que, ao iniciar a execução do Programa de Aplicação, mesmo que a Entrada X1 seja atuada (X1 = 1), a Saída Y não será acionada, pois o Estágio que contém a Lógica de Controle (S2) não estará ativo. Neste momento, apenas o Estágio Inicial (SO) estará e permanecerá ativo, até que a Entrada XO seja atuada (XO = 1), dando condição de Jump para o Estágio 52, o que ocasiona a desativação de SO e a ativação de S2 (SO = 0 e S2 = 1), permitindo que a Entrada X1 acione a Saída Y1.

Relés Especiais (Special Relays) - Tipo de Dado: SP

Trata-se de bits internos à CPU com funções predefinidas pelo fabricante, como Indicação de Status do Acumulador da CPU, Monitoramento do Sistema, Indicação de Erros e Base de Tempo-Real, por exemplo. São identificados por SP (Dado Tipo SP), endereçados em base octal e só podem ser associados às Instruções Booleanas de Entrada (Contatos NA ou NF). A tabela a seguir apresenta alguns exemplos de Relés Especias.

Na Lógica de Controle implementada, ao ser atuada a Entrada XO, a Saída YO permanecerá acionada por 0,5s e desligada por 0,5s (tempo determinado por SP4).

MAPEAMENTO DE MEMÓRIA

Todos os Tipos de Dados apresentados têm uma área de memória (Word ou VMemory) reservada para este fim. A quantidade de cada um dos Tipos de Dados disponíveis depende da CPU utilizada, porém o endereço inicial dessas áreas (Mapeamento) é sempre o mesmo, conforme apresentado nas tabelas seguintes.

Os Dados Tipo TA (Valor Atual dos Temporizadores) têm endereço inicial em V0 e os Dados Tipo CTA (Valor Atual dos Contadores) têm endereço inicial em V1000, conforme apresentado anteriormente. já os Dados Tipo V (Word) têm endereço inicial dependente da CPU utilizada. Porém, o endereço V2000 é referência para a maioria dos modelos.