Você está na página 1de 28

CONTROLADORES LGICOS PROGRAMVEIS

PARTE II SOFTWARE

INTRODUO
Qualquer sistema microprocessado precisa ser programado para funcionar

adequadamente. Estes programas so armazenados na memria do sistema na forma de


uma seqncia de cdigos binrios, representando as instrues do programa, que
somente o processador tem capacidade para entender. Estas instrues codificadas so
chamadas cdigo de mquina. Para facilitar o trabalhos dos programadores destes
sistemas, cada fabricante de processador criou cdigos mnemnicos para representar o
conjunto de instrues entendidas pelos seus processadores. Como exemplo o
mnemnico LD pode indicar a operao de armazenamento (carga - load) de um valor
qualquer em um registrador interno do processador. A linguagem de programao que
utiliza diretamente os cdigos mnemnicos de um processador chamada linguagem
Assembly. Pelo fato da linguagem Assembly utilizar diretamente as instrues bsicas de
um processador, ela considerada uma linguagem de baixo nvel.
Mas a tarefa de programar sistemas com processadores pode ser mais fcil para
os seres humanos com o uso das linguagens de alto nvel. As linguagens de alto nvel so
linguagens de programao de processadores que utilizam comandos e instrues muito
prximas das linguagens humanas, e portanto, mais fceis de serem aprendidas e
memorizadas. Como exemplo destas linguagens tem-se as linguagens C, C++, C#, JAVA,
BASIC e outras.
Entretanto, quando os CLPs foram especificados, um dos requisitos bsicos
que a forma de programao do controlador deveria ser simples e de fcil entendimento
pelo pessoal de campo responsvel para instalao e manuteno. Como as linguagens
de programao convencionais no atendiam este requisito, foi necessrio criar uma
linguagem de programao baseada nos diagramas lgicos de contatos eltricos de rels.
Esta linguagem de programao foi chamada linguagem Ladder.
O programa em linguagem Ladder era editado utilizando-se um terminal de
programao, o qual tinha um teclado em que as teclas mostravam smbolos de contato
(normalmente aberto / normalmente fechado), bobinas e ramificaes. A Ilustrao 1
mostra um diagrama lgico usando estes smbolos, com os quais os eletricistas de
manuteno e os engenheiros eletricistas esto bem familiarizados e o programa
equivalente na linguagem Ladder.

Controladores Lgicos Programveis - Parte II

Diagrama lgico de rels

Programa Ladder equivalente

Ilustrao 1: Exemplo de um diagrama lgico de contatos e um programa na


linguagem Ladder
O terminal de programao compilava o diagrama Ladder para o cdigo de
mquina do processador, o qual era posteriormente carregado no CLP para execuo.
Durante a execuo do programa, o terminal de programao permitia a visualizao do
programa de controle, animando os contatos e bobinas energizados para facilitar a
anlise do programa e depurao de erros.
Este mtodo de escrever programas foi adotado pela maioria dos fabricantes de
CLP. Entretanto, a medida que cada fabricante inclua recursos adicionais em seus CLPs,
eles tendiam a criar elementos novos na linguagem Ladder, mas sem seguir nenhum
padro. Assim, cada fabricante acabava tendo sua linguagem Ladder prpria, e
normalmente incompatvel com a linguagem dos demais fabricantes. Este fato criou a
necessidade de se adotar uma norma internacional para padronizar os mtodos,
linguagens e ferramentas de programao de CLPs. Esta norma, publicada em 1993 pela
IEC, a norma IEC 61131-3.

Controladores Lgicos Programveis - Parte II

NORMA IEC 61131-3


A norma IEC 61131 um conjunto de documentos que estabelece padres de

compatibilidade entre CLPs de qualquer fabricante em sistemas de automao baseados


nestes equipamentos.
A terceira parte desta norma (IEC 61131-3) estabelece padres para a sintaxe e
componentes especficos das linguagens de programao para CLPs. Ela detalha vrios
mtodos de programao que devem ser empregados, os tipos de dados que devem
estar disponveis. Alm disto, cria um modelo de software e estabelece padres para a
estruturao de programas em CLPs, definindo tambm funes pr-definidas que tem
que ser disponibilizadas pelas ferramentas de software fornecidas pelos fabricantes de
CLPs.

2.1

LINGUAGENS E INSTRUES
A norma IEC 61131-3 define duas linguagens grficas e duas linguagens

baseadas em texto para a programao de CLPs. As linguagens grficas usam smbolos


para representar as instrues do programa de controle, enquanto as linguagens
baseadas em texto usam palavras como instrues.
As linguagens grficas so:

Diagramas Ladder (LD)

Diagramas de Blocos Funcionais (FBD)

As linguagens baseadas em texto so:

Lista de Instrues (IL)

Texto Estruturado (ST)

Adicionalmente, a norma IEC61131-3 inclui uma estrutura que permite a


programao orientada a objetos, este recurso chamado Grfico Seqencial de
Funes (SFC). O SFC muitas vezes considerado como uma linguagem de
programao da norma IEC 61131-3, mas realmente ele uma ferramenta que permite
criar programas de forma organizada usado as quatro linguagens de programao
definidas pela norma (LD, FBD, IL e ST).

Controladores Lgicos Programveis - Parte II

A estrutura do SFC muito semelhante aos fluxogramas utilizados em


programao de computadores. Nele, tarefas de controle diferentes podem ser escritas
utilizando linguagens diferentes. A estrutura bsica do SFC baseada no mtodo de
modelagem de sistemas GRAFCET (IEC 848).
A norma IEC 61131-3 estabelece um mtodo de programao em blocos grfico
ou orientado a objetos, este mtodo aumenta a flexibilidade na criao e depurao de
programas para os CLPs. O mtodo permite que sees de um programa sejam
agrupadas individualmente como tasks, as quais podem ser facilmente interligadas com o
restante do programa. Assim, um programa completo, que siga a norma IEC 61131-3,
pode ser formado por diversas pequenas tasks, representando um bloco grfico dentro de
um SFC. Pela norma IEC 61131-3, possvel a combinao de linguagens durante a
criao de um programa de controle no CLP. Este recurso facilita as tarefas de
programao e depurao nos CLPs, j que torna possvel implementar cada soluo de
controle atravs da linguagem de programao mais apropriada.
A norma IEC 61131-3 define uma grande variedade de funes e blocos
funcionais e todos operam com variveis. Cada varivel em um programa deve poder
armazenar um determinado tipo de dado, e a norma define um grande nmero de tipos de
dados. A Tabela 1 mostra alguns exemplos dos tipos de dados, funes e blocos
funcionais definidos pela norma.
Os tipos de dados esto relacionados com o tipo de informao recebida pelo
CLP, tais como informaes binrias, nmeros reais, informaes de data e hora. J as
funes so operaes que manipulam estes dados, tais como comparao, inverso e
adio. Os blocos funcionais so conjuntos de funes, arranjadas na forma de
instrues, criados para trabalhar com blocos de dados. As variveis, alm de estarem
associadas a um tipo de dado, devem tambm ser associadas a um escopo. O escopo de
uma varivel se refere a caracterstica de utilizar a varivel em uma aplicao. As
variveis globais podem ser usadas por qualquer programa na aplicao, enquanto as
variveis locais podem ser usadas somente por um programa especfico.
A norma IEC 61131-3, alm de definir tipos de variveis, funes e blocos
funcionais padronizados, permite que usurios e fabricantes de CLPs definam seus
prprios elementos de programao. Assim, a norma no especifica um conjunto fixo e
rgido de elementos para programao, mas estabelece um conjunto bsico de elementos
Controladores Lgicos Programveis - Parte II

padronizados, e permite o acrscimo de elementos adicionais conforme as caractersticas


do CLP e da aplicao em que ele ser utilizado.
Tabela 1: Elementos de programao definidos pela norma IEC 61131-3
Tipos de dados de variveis

Funes

Blocos funcionais

Escopo de variveis

Strings baseadas em bits (booleanos ou bit,


byte, word)
Nmeros inteiros (com ou sem sinal)
Nmeros reais
Hora e data
Strings de caracteres ASCII
Definidos pelo usurio ou pelo fabricante
do CLP (simples ou matriz)
Baseadas em bits (booleanas: AND, OR,
NOT, etc.)
Numricas/aritmticas (ADD, SUB, MUL,
DIV, SQR, LOG, LN, SIN, COS, TAN, etc.)
Funes de converso de dados
Funes seletivas (LIMIT, MAX, MIN, etc.)
Comparaes (>, <, =, >=, =<, <>)
Funes de strings ASCII (LEN, LEFT,
RIGHT,INSERT, REPLACE, DELETE, etc.)
Funes definidas pelo usurio ou pelo
fabricante do CLP
Flip-flops
Detectores de bordas (,)
Contadores (crescente, decrescente,
crescente/decrescente)
Temporizadores (TON, TOF)
Blocos definidos pelo usurio ou pelo
fabricante do CLP
Global
Local

A flexibilidade em relao a tipos de dados e funes da norma IEC 61131-3


permite aos fabricantes de CLPs fornecerem instrues que considerem necessrias, as
que no estejam definidas pela norma. Tais instrues podem servir a recursos muito
especficos, como por exemplo, um bloco funcional de controle de posicionamento para
operar um mdulo de controle de servo-motor. Este bloco funcional pode utilizar como
parmetros variveis com os tipos de dados definidos pela norma, mas este bloco
somente estar disponvel para ser usado em programas dos CLPs compatveis com o
mdulo. Outros CLPs, mesmo em conformidade com a norma, no podero utilizar tal
bloco funcional.
Controladores Lgicos Programveis - Parte II

2.2

DECLARAO DE VARIVEIS
Durante a implementao de um programa de controle em um CLP, o usurio

deve nomear, ou declarar, as variveis usadas pelo programa. Esta declarao de


variveis no nada mais que mapear os endereos fsicos das entradas e sadas do
CLP, indicando qual dispositivo de campo est conectado a qual entrada ou sada do
CLP. A Ilustrao 2(a) mostra uma chave fim de curso (LS1) ligada a uma entrada de um
CLP. Nesta configurao, o dispositivo identificado pelo programa de controle por seu
endereo (010). Entretanto, pela norma IEC 61131-3, o dispositivo pode ser identificado
atravs de um nome alfanumrico, composto por letras, dgitos e o caractere sobrescrito
(_). Assim, a chave fim de curso pode ser declarada como uma varivel chamada
Limit_Switch_1, ou qualquer outro nome apropriado, como na Ilustrao 2(b). A partir
do momento que uma varivel declarada, ela ser conhecida pelo mesmo nome por
todo o programa de controle, independente da linguagem de programao IEC 61131-3
usada. O nome associado varivel no sensvel a caso, ou seja, no existe distino
entre letras maisculas e minsculas.

Ilustrao 2: Ligao de um dispositivo e sua identificao em um CLP,


conforme a norma IEC 61131-3
Controladores Lgicos Programveis - Parte II

Tabela 2: Tipos de dados para declarao de variveis


Classe
Discreto

Tipo de Varivel

Descrio

Exemplo

Booleano

TRUE (1)
FALSE (0)

Chaves fim de
curso, motores,
botoeiras

Inteiro

128
+3764

Valores de
temporizadores,
valores de
contadores,
resultados de
clculos inteiros

Real (ponto flutuante)

34.573
+1.35x103

E/S analgica,
clculos gerais

Analgico

String ASCII Strings de mensagens Temperatura

Mostrar
informaes em
um monitor ou
impressora

Rels de controle
(Booleanos)

Bobinas e
contatos de
rels internos,
sadas de
temporizadores

Variveis inteiras
Variveis reais

Clculos
aritmticos
internos

Entrada

Variveis conectadas
s interfaces de
entrada

Entradas discretas
ou analgicas

Sada

Variveis conectadas Sadas discretas


s interfaces de sada ou analgicas

Interno
Sistema

Quando declara uma varivel, o usurio deve especificar o tipo da varivel, alm
do seu nome. Isto permite que o CLP conhea que tipo de informao o dispositivo ir
transmitir para a varivel correspondente. A norma IEC 61131-3 suporta muitos tipos de
dados para variveis locais e globais, como pode ser visto na Tabela 2. Entretanto, os trs
tipos mais comuns so:

Booleano

Inteiro

Real

Controladores Lgicos Programveis - Parte II

As variveis booleanas so variveis que ocupam um nico bit, significando que


os dados transmitidos e recebidos por elas esto na forma de 0s e 1s. As variveis de E/S
discretas pertencem a esta categoria, ento elas devem ser especificadas como variveis
Bool no programa de controle. Muitas variveis no discretas, tais como os sinais
analgicos de entrada que so lidos atravs de um carto de entrada analgico, so
variveis inteiras, porque elas transmitem a informao na forma de nmeros inteiros
(202, -127). Assim, elas devem ser especificadas no programa de controle como variveis
inteiras. Variveis internas que transmitam informao na forma de fraes ou de
nmeros em ponto flutuante (2.7x102) so variveis reais.

2.3

LINGUAGENS DE PROGRAMAO
Apesar da norma de programao IEC 61131-3 oferecer diversos recursos

avanados de programao para os usurios de CLPs, ela est realmente baseada na


lgica dos diagramas lgicos de rels (Ladder) devido a simplicidade de uso e de grande
penetrao entre os engenheiros e tcnicos de manuteno da rea eltrica. Entretanto, a
norma reduz a necessidade de intertravamentos de circuitos complexos, muito comuns
nos diagramas lgicos de rels.
A seguir ser feita uma descrio detalhada de cada uma das linguagens de
programao definidas pela norma IEC 61131-3. importante notar que, quando se
programar um CLP que respeite a norma IEC 61131-3, qualquer uma das linguagens
pode ser utilizada, tanto de forma nica, como agrupadas. Quando usadas de forma
agrupada, normalmente utiliza-se o SFC para estruturar as seqncias lgicas do
programa.

2.3.1

DIAGRAMAS LADDER (LD)

Os CLPs foram desenvolvidos para serem facilmente programados, usando os


smbolos e expresses dos diagramas lgicos de rels (Ladder) para representar o
programa de controle de mquinas ou processos. A linguagem de programao resultante
desta idia, a qual usa os smbolos bsicos dos diagramas lgicos de rels, foi chamada
de linguagem Ladder.

Controladores Lgicos Programveis - Parte II

Funcionamento bsico

A linguagem Ladder um conjunto de instrues representadas por smbolos


grficos. Estes smbolos so ligados de tal forma a se obter uma lgica de controle, a qual
armazenada na memria de aplicao do CLP.
A funcionalidade principal de um programa em linguagem Ladder controlar as
sadas de um CLP atravs da anlise lgica de suas entradas. Os diagramas Ladder
usam degraus (rungs) para atingir este objetivo. A Ilustrao 3 mostra a estrutura bsica
de um rung. Geralmente um rung consiste em um conjunto de condies de entrada,
representadas por instrues de contatos, e uma instruo de sada no final do rung, esta
representada por um smbolo de bobina (coil).

Ilustrao 3: Estrutura bsica de um rung na linguagem Ladder


Um rung considerado ativo (TRUE), ou seja, apresenta a sua sada energizada,
quando ele apresenta continuidade lgica. A continuidade lgica existe quando existir o
fluxo de corrente atravs do rung, da esquerda para a direita. A execuo de eventos
lgicos que habilitam a sada que determina esta continuidade. Em um rung da
linguagem Ladder, a linha vertical mais esquerda simula uma linha de energia com um
potencial eltrico positivo, enquanto a linha vertical mais direita simula uma linha de
energia com potencial eltrico negativo. A continuidade ocorre quando existe um caminho
fechado que permite a circulao de corrente entre as linhas de energia. A Ilustrao 4
mostra diversos caminhos, para um mesmo rung, que oferecem continuidade. Pode-se
notar que em cada caminho, as condies dos contados de entrada so diferentes.

Controladores Lgicos Programveis - Parte II

10

Ilustrao 4: Exemplos de continuidade lgica em um rung


Uso de blocos funcionais

A evoluo, ao longo dos anos, da linguagem Ladder original adicionou a ela um


poderoso conjunto de novas instrues. Estas novas instrues so normalmente
representadas atravs de blocos funcionais. O uso de blocos funcionais aumenta a
flexibilidade e o poder de programao da linguagem Ladder bsica. A Ilustrao 5 mostra
o uso de blocos funcionais, juntamente com smbolos bsicos da linguagem Ladder.
Quando um programa Ladder contm um bloco funcional, as instrues de
contato so usadas para representar as condies de entrada que selecionam ou
habilitam o bloco. Um bloco funcional pode ter uma ou mais entradas que controlam sua
operao. Alm disso, os blocos funcionais podem ter uma ou mais bobinas de sada, que
representam o estado da funo que est sendo executada pelo bloco.

Controladores Lgicos Programveis - Parte II

11

Ilustrao 5: Exemplos do uso de blocos funcionais na linguagem Ladder


Caminho reverso

Uma regra, presente em quase todos os CLPs, previne o caminho reverso (da
direita para a esquerda) do fluxo de energia em um rung. A lgica dos CLPs no permite o
fluxo reverso de energia para evitar caminhos falsos. Um caminho falso ocorre quando o
fluxo de energia segue por uma direo inversa indesejada, atravs de algum dispositivo
de campo. Assim, uma continuidade no verdadeira ocorre. Se uma lgica de controle
implementada em CLP necessitar de um caminho reverso, o usurio deve reprogramar o
rung, para que haja somente caminhos diretos. A Ilustrao 6 mostra um exemplo de rung
com caminho reverso.

Ilustrao 6: Exemplo de rung com caminho reverso


Instrues de rels

As instrues de rels so as instrues mais bsicas dentro do conjunto de


instrues da linguagem Ladder. Estas instrues representam o estado ON/OFF das
entradas e sadas do CLP. As instrues de rels usam dois tipos de smbolos: contatos e
Controladores Lgicos Programveis - Parte II

12

bobinas. Os contatos representam as condies de entrada que devem ser avaliadas, em


um determinado rung, para controlar uma sada. As bobinas representam uma sada de
um rung. A Tabela 3 lista as instrues de rels mais comuns.
Em um programa, cada contato e bobina tem um endereo numrico, o qual
identifica o que est sendo avaliado e o que est sendo controlado. Este endereo se
refere a localizao na tabela de E/S onde os dispositivos fsicos de E/S esto conectados
ao CLP, ou a bits internos utilizados pelo programa de controle. Um contato,
independente se representa uma conexo de entrada ou sada ou um bit interno, pode ser
utilizado por todo o programa de controle, sempre que a condio que ele representa
precisar ser avaliada.
O formato dos contatos de um rung em um programa de CLP depende da lgica
de controle desejada. Os contatos podem ser colocados em qualquer configurao srie,
paralelo ou srie/paralelo necessria para controlar uma determinada sada. Quando a
continuidade lgica existir em pelo menos um caminho de contatos, sempre da esquerda
para a direita, a condio do rung considerada verdadeira (TRUE), e as sadas
controladas pelo rung so ativadas. A condio do rung considerada falsa (FALSE)
quando no existir nenhum caminho com continuidade lgica, ento as sadas
controladas pelo rung so desativadas.

Controladores Lgicos Programveis - Parte II

13

Tabela 3: Instrues bsicas de rels da linguagem Ladder


Instrues de Rels
Instruo

Smbolo

Funo

Avaliar contato
normalmente aberto

Testa por uma condio ON em um


determinado endereo

Avaliar contato
normalmente fechado

Testa por uma condio OFF em um


determinado endereo

Ativar bobina de sada

Liga uma sada ou um bit interno


quando a lgica do rung for verdadeira
(TRUE)

Desativar bobina de
sada

Desliga uma sada ou um bit interno


quando a lgica do rung for verdadeira
(TRUE)

Ativar bobina de sada


com reteno (SET)

Liga uma sada ou um bit interno


quando a lgica do rung for verdadeira
(TRUE), e mantm assim mesmo
quando a lgica do rung tornar-se
falsa (FALSE)

Desativar bobina de
sada com reteno
(RESET)

Desliga uma bobina ativada pela


instruo SET quando a lgica do rung
for verdadeira (TRUE)

Deteco de bordas
subida

Contato que fecha por um ciclo de


varredura quando a entrada
referenciada sofrer uma transio
positiva (0 1)
Contato que fecha por um ciclo de
varredura quando a entrada
referenciada sofrer uma transio
negativa (1 0)

Estas instrues de rels so as instrues mais bsicas da linguagem Ladder.


Com estas instrues possvel criar programas de controle que examine os estados
ON/OFF de bits endereados na memria do CLP e controle o estado de sadas internas
e externas.
Avaliao de contatos normalmente abertos

Uma instruo de avaliao de contatos normalmente abertos (NA) testa a


condio ON em um endereo de referncia. Este endereo de referncia pode ser um bit
da tabela de entradas, representando um dispositivo ligado a uma entrada fsica do CLP;
Controladores Lgicos Programveis - Parte II

14

um bit interno, armazenado na rea de armazenamento da tabela de dados; ou um bit da


tabela de sadas, representando um dispositivo ligado a uma sada fsica do CLP.
Durante a execuo da instruo de avaliao de contato NA no programa de
controle, o processador examina o endereo de referncia por uma condio ON. Se o
valor do bit no endereo de referncia for 0 (OFF), o processador considera que no
existe continuidade lgica por aquele contato do rung, conforme a Ilustrao 7(a).
Entretanto, se o valor do bit no endereo de referncia for 1 (ON), o processador
considera que existe continuidade lgica por aquele contato do rung, conforme a
Ilustrao 7(b).

Ilustrao 7: Exemplo da execuo da instruo de avaliao de contatos NA


Avaliao de contatos normalmente fechados

Uma instruo de avaliao de contatos normalmente fechados (NF) testa a


condio OFF em um endereo de referncia. Da mesma forma que na instruo de
avaliao de contato NA, os endereos de referncia nesta instruo podem ser bits da
tabela de entradas, da tabela de sadas ou um bit interno.
Durante a execuo da instruo de avaliao de contato NF no programa de
controle, o processador examina o endereo de referncia por uma condio OFF. Se o
valor do bit no endereo de referncia for 0 (OFF), o processador considera que existe
Controladores Lgicos Programveis - Parte II

15

continuidade lgica por aquele contato do rung, conforme a Ilustrao 8(a). Entretanto, se
o valor do bit no endereo de referncia for 1 (ON), o processador considera que no
existe continuidade lgica por aquele contato do rung, conforme a Ilustrao 8(b). Esta
instruo pode ser associada a funo lgica NOT, ou seja, se o endereo de referncia
no est ligado (NOT ON), a continuidade lgica existe.

Ilustrao 8: Exemplo da execuo da instruo de avaliao de contatos NF


Acionamento de bobinas de sada

Uma instruo de acionamento de bobina de sada controla tanto uma sada fsica
(um dispositivo atuador ligado uma interface de sada do CLP) como uma sada interna
(um bit interno). Esta instruo usa um bit de bobina endereado na rea de
armazenamento ou na tabela de sadas como endereo de referncia. O smbolo ( )
tambm pode ser usado para representar uma instruo de acionamento de bobina.
Durante a execuo de uma instruo de acionamento de bobina, o processador
avalia todas as condies de entrada (contatos) no rung. Se no existir a continuidade
lgica no rung, o processador escreve o valor 0 (OFF) no bit do endereo de referncia da
instruo, conforme a Ilustrao 9(a). Isso indica que a sada dever ser desligada
quando da varredura de atualizao de sadas, no caso de uma sada fsica. Agora, se o

Controladores Lgicos Programveis - Parte II

16

processador detectar uma continuidade lgica por qualquer caminho em um rung, ele
escreve o valor 1 (ON) no bit do endereo de referncia da instruo, conforme a
Ilustrao 9(b). Este valor 1 no endereo de referncia, caso este represente uma sada
fsica, faz com que a sada correspondente seja ligada durante a varredura de atualizao
de sadas. importante lembrar que esta varredura ocorre somente quando todos os
rungs do programa de controle forem avaliados.

Ilustrao 9: Exemplo da execuo de uma instruo de acionamento de


bobina de sada
Quando a bobina de sada endereada um bit interno, quando a bobina
acionada, o bit interno na memria de armazenamento recebe o valor lgico 1. E quando
a bobina desacionada, o bit interno recebe o valor lgico 0. Estes bits internos so
usados quando o programa de controle necessita de seqncias de intertravamento ou
quando sadas fsicas no so necessrias.
Desligamento de bobinas de sada

Uma instruo de desligamento de bobina de sada , essencialmente, a


instruo oposta a de acionamento de bobina de sada. Se no existir continuidade nos
contatos de um rung, a instruo faz com que o bit da sada endereada receba o valor
lgico 1 (ON). Assim sendo, quando existir continuidade lgica no rung, a instruo
Controladores Lgicos Programveis - Parte II

17

escreve o valor lgico 0 (OFF) no bit da sada endereada. O smbolo ( / ) tambm


representa a instruo de desligamento de bobina de sada em alguns CLPs.
Operaes de bobinas de sada com reteno (SET/RESET)

Existem duas instrues que podem operar de forma retentiva sobre as bobinas
de sada, a instruo de acionamento e desligamento das bobinas, normalmente
chamadas por SET e RESET.
Uma instruo de acionamento de bobina de sada com reteno (SET) tem a
caracterstica de ligar uma sada, quando existir uma continuidade lgica no rung, e
mant-la ligada mesmo quando cessar a continuidade lgica do rung que a acionou. A
sada permanecer ligada at que uma instruo de desligamento de bobina de sada
com reteno (RESET) for executada pelo programa de controle.
Uma instruo de desligamento de bobina de sada com reteno (RESET) a
nica forma de desligar uma bobina de sada acionada por uma operao SET. Quando
existir no rung algum caminho com continuidade lgica, esta instruo desliga a bobina do
endereo de referncia. A Ilustrao 10 mostra o uso das instrues SET e RESET.

Ilustrao 10: Exemplo do uso das instrues SET e RESET


Deteco de bordas

As instrues de deteco de bordas fornecem uma condio de continuidade


lgica temporria (pelo tempo de um nico ciclo de varredura) ao contato associado
quando ocorrer uma transio positiva (0 1) ou uma transio negativa (1 0) no bit
do endereo de referncia associado instruo. O endereo de referncia para estas
instrues podem ser tanto entradas ou sadas fsicas (bits das tabelas de entradas e
sadas) como bits internos. A Ilustrao 11 mostra dois exemplos utilizando estas
instrues e como o comportamento dos contatos destas instrues.
Controladores Lgicos Programveis - Parte II

18

Ilustrao 11: Comportamento das instrues de deteco de bordas


Varredura de avaliao de um programa Ladder

A varredura de avaliao um conceito importante, j que ela define a ordem na


qual o processador executa um programa Ladder. O processador comea a executar um
programa Ladder logo aps a leitura dos estados de todas as entradas e armazena estas
informaes na tabela de entradas (varredura de atualizao das entradas). A execuo
comea pelo primeiro rung do programa, e prossegue, executando um rung de cada vez,
de cima para baixo. A medida que o processador executa o programa de controle, ele
examina o endereo de referncia de cada instruo, assim ele pode avaliar a
continuidade lgica para cada rung. Mesmo que as condies de sada de um rung
avaliado afete as condies de rungs avaliados anteriormente, o processador no
retornar a eles para reavali-los.
Para tornar isto claro, observe o diagrama da Ilustrao 12, o qual apresenta
quatro rungs simples. O contato NA, identificado pelo nmero 10, o qual se assume que
corresponda a uma botoeira ligada a uma entrada fsica do CLP, ativa o primeiro rung
quando a botoeira for pressionada. Se o contato 10 fechar, a sada 100 ser ligada. No
prximo rung, o contato de estado da sada 100 ligar a sada 101, o contato 101 ligar a
sada 102 e por fim, o contato 102 ligar a sada 103. Mesmo estando em rungs
diferentes, todas as sadas sero ligadas no mesmo ciclo de varredura, j que o programa
executivo faz a varredura de atualizao das sadas somente ao final da varredura do
Controladores Lgicos Programveis - Parte II

19

programa de controle. Este comportamento est ilustrado na Ilustrao 12.

Ilustrao 12: Comportamento do acionamento de sadas devido varredura


de atualizao do programa de controle
J a Ilustrao 13 apresenta o mesmo programa de controle da Ilustrao 12,
mas com a ordem dos rungs invertida. Assumindo-se que a botoeira ligada entrada 10
pressionada no primeiro ciclo de varredura do CLP, o CLP somente ter as quatro sadas
(100, 101, 102 e 103) acionadas aps quatro ciclos completos de varredura.

Ilustrao 13: Comportamento do acionamento de sadas devido varredura


de atualizao do programa de controle, com a ordem dos rungs invertida
A lgica que o processador usa no primeiro ciclo de varredura a seguinte:
1. O processador detecta o nvel lgico 1 na entrada 10 e escreve este valor
no bit correspondente na tabela de entradas.
2. O processador comea o ciclo de avaliao do programa pelo primeiro
rung, verificando que o contato 102 est desligado (OFF), e portanto, a sada 103
deve permanecer desligada (OFF).

Controladores Lgicos Programveis - Parte II

20

3. No segundo rung, o contato 101 est desligado (OFF), ento a sada 102
deve permanecer desligada (OFF).
4. No terceiro rung, o contato 100 est desligado (OFF), ento a sada 101
deve permanecer desligada (OFF).
5. No quarto rung, o contato 10 est ligado (ON), assim a sada 100 deve ser
ligada (ON).
6. Chegando ao final da avaliao do programa de controle, o processador
realiza a varredura de atualizao das sadas, ligando efetivamente a sada 100. O
ciclo deve ento recomear.
No prximo ciclo, estando a botoeira ainda pressionada, a sada 101 ser ligada
porque, no final do ciclo anterior, a sada 100 tinha sido ligada. E esta lgica seguir at o
final do quarto ciclo de varredura, quando todas as sadas estaro ligadas. As sadas
sero desligadas obedecendo a mesma seqncia quando a botoeira 10 for liberada.
Um detalhe importante a se lembrar quando implementar um programa na
linguagem Ladder que, se for necessrio que uma sada de um rung tenha efeito, como
contato de entrada, em outro rung, este segundo deve sempre ser programado aps o
primeiro. Se isso no for respeitado, podem ocorrer problemas durante a execuo do
programa de controle, como mostrado nos exemplos das ilustraes 12 e 13.

2.3.2

DIAGRAMAS DE BLOCOS FUNCIONAIS (FBD)

O diagrama de blocos funcionais (FBD) uma linguagem grfica que permite ao


usurio criar programas para CLPs interligando elementos grficos como se fossem
componentes eltricos. A Ilustrao 14 mostra um exemplo de programa para CLP
usando FBD.
A norma IEC 61131-3 estabelece a forma grfica de como representar os blocos e
as regras para a interligao entre eles. A norma tambm estabelece uma grande
quantidade de blocos padro, que devem ser disponibilizados por qualquer sistema que
permita a programao FBD. Entretanto, a norma deixa livre aos fabricantes de CLPs
disponibilizarem blocos no-padro, que possam controlar recursos especiais disponveis
nos CLPs.

Controladores Lgicos Programveis - Parte II

21

Ilustrao 14: Exemplo de um programa em FBD


Alm dos blocos padro e dos blocos especficos dos fabricantes, a norma IEC
61131-3 permite aos usurios criarem seus prprios blocos, de acordo com os requisitos
dos programas de controle. Isto conhecido como encapsular um bloco funcional. A
vantagem em criar blocos funcionais que eles podem ser construdos a partir da ligao
de outros blocos funcionais, ou utilizando qualquer uma das outras linguagens de
programao para CLPs, o que cria uma grande flexibilidade na programao por blocos
funcionais. O encapsulamento permite que um usurio crie novos blocos funcionais, e os
armazene em uma biblioteca, e os blocos desta biblioteca podem ser utilizados diversas
vezes no mesmo programa de controle, ou at mesmo em outros programas de controle
feitos por outros programadores.
Os blocos personalizados podem ser utilizados em conjunto com os blocos
padro ou com os blocos especficos dos fabricantes, podendo todos estes serem
integrados em programas na linguagem FBD e na linguagem Ladder.

Controladores Lgicos Programveis - Parte II

22

2.3.3

LISTA DE INSTRUES (IL)

A lista de instrues (IL) uma linguagem de programao de baixo nvel, similar


a linguagem de mquina (linguagem assembly) usada pelos microprocessadores. Um
programa de exemplo mostrado na Ilustrao 15. Este tipo de linguagem til para
pequenas aplicaes, bem como em aplicaes que necessitam de otimizao na
velocidade de execuo do programa ou de alguma rotina especfica do programa. Como
mencionado antes, com a linguagem IL possvel criar blocos funcionais.
Instrues

Comentrios

LD

b1

(*resultado corrente:=TRUE*)

AND

b2

(*resultado corrente:=b1 AND b2*)

ANDN

b3

(*resultado corrente:=b1 AND b2 AND NOT b3*)

ST

b0

(*b0:=resultado corrente*)

Nota: O resultado corrente mantido em um registrador de resultado.


A ltima instruo armazena o valor do registrador de resultado
como a varivel b0.
Ilustrao 15: Exemplo de um programa em IL

2.3.4

TEXTO ESTRUTURADO (ST)

O texto estruturado (ST) uma linguagem de programao de alto nvel, que


permite programar CLPs utilizando o paradigma da programao estruturada. Por este
paradigma, para resolver tarefas complexas necessrio divid-las em inmeras tarefas
menores e mais simples. A linguagem ST lembra muito as linguagens de programao de
computadores BASIC e PASCAL, como mostrado na Ilustrao 16. Estas linguagens,
assim como a linguagem ST, usam sub-rotinas para executar diferentes partes de uma
funo de controle, e passam parmetros e valores entre estas diferentes partes do
programa.
Assim com as linguagens LD, FBD e IL, a linguagem ST utiliza a definio de
variveis para identificar os dispositivos de campo de entrada e sada, alm de qualquer
outra varivel criada internamente e usada pelo programa.

Controladores Lgicos Programveis - Parte II

23

IF Manual AND NOT Alarm THEN


Level:=Manual_Level;
Mixer:=Start AND NOT Reset
ELSE_IF Other_Mode THEN
Level:=Max_Level;
ELSE Level:=(Level_Indic 100)/Scale;
END_IF;

Ilustrao 16: Exemplo de um programa em ST


Diferente das linguagens LD, IL e FBD, a linguagem ST apresenta comandos que
permitem iteraes, ou laos, tais como WHILE..DO e REPEAT..UNTIL. Ela tambm
apresenta comandos para execues condicionais, tais como IF..THEN..ELSE. Alm
disso, ela suporta operaes aritmticas (+, -, *, /), booleanas (AND, OR, NOT) e uma
variedade de funes para processamento de diversos tipos de dados, tais como
informaes de datas e horas.
A linguagem ST extremamente til para a execuo de rotinas como gerao de
relatrios, onde as instrues baseadas na lngua inglesa, explicam exatamente o que
est sendo feito. Deve-se lembrar que a linguagem ST pode ser usada para encapsular,
ou criar, um bloco funcional que realizar uma determinada tarefa disparada por uma
lgica de controle, conforme a Ilustrao 17. Este bloco funcional pode ser utilizado
inmeras vezes por todo o programa de controle.
A programao usando linguagem ST particularmente conveniente nas
aplicaes que envolvem manipulao de dados, computao de ordenao e com uso
intensivo de matemtica com valores de ponto flutuante. A linguagem ST tambm a
melhor escolha para a implementao de controles com inteligncia artificial (IA), lgica
fuzzy e controles com tomadas de deciso.

Controladores Lgicos Programveis - Parte II

24

Ilustrao 17: Bloco funcional escrito em ST e acionado por uma lgica LD

2.3.5

GRFICO SEQENCIAL DE FUNES (SFC)

O grfico seqencial de funes (SFC) uma linguagem grfica que fornece


uma representao na forma de diagramas para seqncias de controle em um
programa. Basicamente, o SFC uma estrutura de suporte semelhante a um fluxograma
que ajuda o programador a organizar os sub-programas, ou sub-rotinas (programadas em
LD, FBD, IL ou ST) que formam o programa de controle. O SFC particularmente til em
operaes de controle seqencial, onde um programa executa diversos passos, um aps
outro, quando determinadas condies so satisfeitas.
A estrutura de programao SFC contm trs elementos bsicos que organizam o
programa de controle:

Etapas

Transies

Aes

Controladores Lgicos Programveis - Parte II

25

Ilustrao 18: Exemplo de um SFC


Uma etapa um estgio em um processo de controle. Por exemplo, a aplicao
de mistura mostrada na Ilustrao 18 apresenta trs etapas: a etapa inicial, a etapa de
mistura e a etapa de esvaziamento. Quando o programa de controle recebe uma entrada,
ele executar cada etapa, comeando pela etapa 1. Cada etapa pode ou no ter uma
ao associada a ela. Uma ao um conjunto de instrues de controle que fazem o
CLP executar certas funes de controle durante a etapa. Uma ao pode ser
programada usando qualquer uma das quatro linguagens da norma IEC 61131-3. Aps o
CLP executar uma etapa/ao, ele deve receber uma transio antes de prosseguir para
a prxima etapa. Uma transio pode ocorrer na forma da atuao de uma varivel de
entrada, um resultado de uma ao anterior, ou um comando condicional IF (por exemplo,
IF Temp_1 100). Assim, para a aplicao mostrada na Ilustrao 19, o CLP executar a
ao 2 somente depois da etapa 1 receber uma entrada vlida e a transio 1 ocorrer,
isto , a chave fim de curso LS_Reach disparar. Depois do CLP terminar a ao 2, ele ir
esperar pela transio 2 (IF Temp_1 100) ocorrer e ento passar para a etapa 3.

Controladores Lgicos Programveis - Parte II

26

Ilustrao 19: Transies e aes em um SFC


Como mencionado anteriormente, a linguagem SFC tem sua origem na norma
francesa do Grafcet. O Grafcet tambm usa etapas, transies e aes, e opera da
mesma maneira do SFC. No Grafcet, quando uma etapa est ativa, o processador varre a
lgica de E/S pertinente s aes da etapa, bem como a lgica para a transio
imediatamente posterior a etapa. Assim como no Grafcet, o SFC similar a um
fluxograma na forma como o controle passado de uma etapa para outra. Assim como no
Grafcet, o SFC pode ser programado para trabalhar diretamente com temporizaes e
diagramas de eventos.
A maior diferena entre o Grafcet e o SFC que o Grafcet permite somente
comandos de aes escritos, tais como Abrir vlvula, para ligar ou desligar dispositivos.
O SFC permite implementar aes de diversas maneiras, usando as linguagens LD, IL,
ST e FBD, ou uma combinao entre elas, inclusive permitindo o uso de blocos funcionais
personalizados.

Controladores Lgicos Programveis - Parte II

27

Os SFCs podem ser imaginados como objetos de construo de blocos, usados


para criar a estrutura bsica de todo o programa de controle, enquanto as outras
linguagens so usadas para implementar os detalhes dentro do SFC. De fato, os SFCs
podem ter as chamadas macro-etapas, as quais permitem um SFC principal ter outro SFC
como ao de uma etapa, conforme a Ilustrao 20. Este SFC menor, embutido no maior,
tem suas prprias etapas, transies e aes, e age de forma similar a uma sub-rotina em
um programa de computador.

Ilustrao 20: Uso de um SFC como uma macro-etapa

Controladores Lgicos Programveis - Parte II

28

Você também pode gostar