You are on page 1of 109

CONTROLADOR LGICO PROGRAMVEL

ESCOLA SENAI SAMA Mina de Cana Brava, Caixa Postal 04 - CEP 76450-000 Fone: (62) 3379-1039 - Minau - GO e-mail: sama.senai@sistemafieg.org.br

SUMRIO

ESTRUTURA DE UM CONTROLADOR PROGRAMVEL ............................... 03

PROGRAMAO EM LINGUAGEM LADDER .................................................................................................................. 14 LISTA DE INSTRUO ......................................................................................... 44 DIAGRAMA DE BLOCOS ..................................................................................... 82

Controlador programvel

Estrutura de um controlador programvel

importante o entendimento da forma como um controlador programvel colhe, processa e envia sinais num sistema automatizado. Neste captulo isto feito em forma de blocos pois no h necessidade de descer em nvel de detalhes no hardware, alm do fato dos fabricantes no abrirem aos usurios estes detalhes. Dizemos que um CP um computador dedicado pois possui a CPU de um computador convencional com fonte de alimentao interna e memrias, conectada a um terminal de programao e aos mdulos de entrada/sada.

Controlador programvel

Principio de operao de um CP Um CP opera lendo e processando os sinais de entrada provenientes de elementos localizados no processo e fornecendo os sinais de sada para os atuadores e dispositivos de sada. Quando so detectadas mudanas na entrada, o CP reage de acordo com a lgica de programao para a atualizao dos sinais de sada. Este ciclo contnuo denomina-se Ciclo de Varredura.

Tempo de varredura o tempo total requerido por um CP para executar todas as operaes internas do microprocessador, como operao do circuito Co de Guarda (Watch Dog Timer), teste da memria do sistema, varredura das entradas/sadas e execuo das instrues. O tempo de varredura varia de acordo com o nmero de instrues de um programa e pode ser calculado ou monitorado.

Controlador programvel

Componentes do controlador programvel Fonte de alimentao Converte a voltagem da rede eltrica (CA) para voltagem em corrente contnua (CC) e especificada de acordo com a configurao e consumo do sistema.

Em caso de falta de energia eltrica, a bateria de Nquel Cdmio mantm o programa do usurio (memria RAM da CPU) e recarregada automaticamente pelo sistema quando se encontra em operao.

Controlador programvel

Unidade central de processamento (CPU) A Unidade Central de Processamento contm os elementos que compem a inteligncia do sistema. Sua arquitetura pode diferenciar de um fabricante para outro mas em geral seguem a mesma organizao.

Controlador programvel

O microprocessador interage continuamente com o sistema de memrias. Interpreta e executa o programa do usurio que vai controlar uma mquina ou um processo. O sistema de alimentao estabilizado interno prov os nveis de tenso necessrios operao adequada das memrias e microprocessador. O crebro do microprocessador a Unidade Lgica e Aritmtica (ULA) que efetua as operaes lgicas (decises) e aritmticas, alm de manipular dados armazenados no registrador interno com altssima velocidade. As instrues e comandos programados e armazenados na memria do usurio so interpretadas pelo decodificador de instrues do microprocessador e uma seqncia de impulsos eltricos ser enviada para ULA para que se inicie a ao correta de processamento de acordo com a presente instruo.

Memrias Memria do sistema ou executiva Traz a verso atualizada do software responsvel pela operao do Controlador Programvel. Este software tem a capacidade de seqenciar o Programa do Usurio, executando as instrues especficas; controla os procedimentos padres do CP como varredura de entradas/sadas, alm de controlar a comunicao da CPU com o terminal de programao. O programa Executivo gravado na fbrica (EPROM) e no pode ser alterado pelo usurio. Memria do usurio O Programa do Usurio pode ser armazenado por uma memria RAM, atravs de uma EPROM, gravada no prprio terminal de programao, ou por meio de uma FLASHEPROM. Em CLPs que selecionam utilizao de memria RAM ou EPROM, a seleo se d de forma automtica, ou seja, quando o cartucho da memria EPROM inserido no mdulo da CPU, a memria RAM ativada sem perder o contedo.

Controlador programvel

A utilizao da FLASH-EPROM torna o sistema de programao mais prtico e flexvel, uma vez que no existe a necessidade de aparatos de gravao como na programao e apagamento da EPROM. Memria imagem Armazena o estado dos operandos do CP. As imagens de entradas correspondem aos valores binrios obtidos pela varredura de todos os pontos de entrada do CP. As imagens de sada, correspondem aos resultados obtidos considerando o estado das entradas e o programa do usurio. Estas reas de memria esto se alterando constantemente . Memria de dados uma rea reservada para controle do Programa do Usurio. Nesta rea esto os dados relativos ao processamento do programa do usurio como resultado de operaes aritmticas, constantes temporizao e contagem. Mdulos de entrada O subsistema de entrada responsvel pela compatibilizao dos sinais provenientes dos elementos situados no processo para que sejam interpretados adequadamente pela CPU. So interfaces ou cartes eletrnicos com capacidade para receber um certo nmero de variveis. Geralmente, esses mdulos esto localizados junto fonte de alimentao e a CPU e so interconectados atravs de um barramento de dados, endereos, controle e alimentao. De acordo com o diagrama de blocos podemos observar como os sinais provenientes do processo so tratados pelos mdulos de entrada e enviados para CPU.

Representao esquemtica de um mdulo de entrada Os dispositivos de entrada so conectados fisicamente ao mdulo atravs do barramento de entrada. De acordo com a natureza, os sinais (CC, CA, Digital, Analgico, 5 ou 24 Vcc) so tratados adequadamente atravs de circuitos de entrada para garantir nveis baixos de tenso e ativar os sinalizadores.

Controlador programvel

Para manter a isolao eltrica entre a CPU e os elementos de entrada, cada sinal ativar um circuito optoacoplado. Em caso de erro na instalao ou na especificao dos sinais de trabalho, as entradas podem danificar-se sem comprometer o funcionamento da CPU. O sinal produzido pelo acoplador tico ser filtrado e multiplexado em alta freqncia, informando ao processador a imagem das entradas. De acordo com a configurao do sistema e tipo de elementos de entrada encontramos diversos tipos de mdulos de entrada: analgico: 110/127 VCA 1 a 5 Vcc -10 a +10 Vcc 0 20 mA 4 20 mA digital: 0 a 5 Vcc 5 Vcc 12 Vcc 24 Vcc 48 Vcc especiais: Contador Rpido Termopar Termoresistncia Chave Thumbweel Teclado

Mdulos de sada Assim como os mdulos de entrada, os mdulos de sada so interfaces que permitem a comunicao adequada do processador aos elementos de sada, localizados no processo. So tambm instalados de forma modular junto CPU e fonte de alimentao. Podemos observar no diagrama de blocos como os sinais de controle chegam at os elementos de sada. Esquema simplificado de um mdulo de sada

Controlador programvel

Os sinais de comando, provenientes do processador, chegam ao mdulo na forma serial e so direcionados s respectivas sadas. O circuito de reteno (latch) memoriza e retm as imagens j recebidas do bloco anterior. Tambm possuem circuito fotoacoplado para isolar os sinais de controle do circuito de sada. O estgio de potncia converte os nveis lgicos em sinais de potncia, capazes de acionar os dispositivos de sada localizados no processo. Pode ser transistorizado por triac ou por contato de rel. As conexes dos sinais do mdulo com processo feita atravs do barramento de sada onde esto conectadas as vlvulas solenides, contatores, lmpadas, sirenes, etc. Dependendo do tipo de sinal de controle e da natureza do dispositivo atuador, encontramos os seguintes mdulos de sada: analgica: 110/127VCA 1 a 5 Vcc - 10 a + 10 Vcc 0 a 20 mA 4 a 20 mA digital: 0 a 5 VCC 5 Vcc 12 Vcc 24 Vcc 48 Vcc especiais: Contato Seco NA ou NF Motor de Passo Display

Configurao ou parametrizao de CLPs Fazer configurao ou parametrizao em sistemas de controle, assim como em informtica, definir para a mquina o tipo de estrutura bsica que ela comportar, com quais dispositivos poder se comunicar e quais sero as especificaes da via e formato dos dados na comunicao. Tambm informa ao aplicativo de edio e monitorao de programao o endereo em que poder encontrar arquivos para operacionalizar seu trabalho; onde dever guardar as informaes de trabalho e arquivos, como deve ser sua interface com o usurio, etc. Para um CLP, essas informaes podem serem divididas em trs categorias principais: Comunicao; Estrutura de I/O (entradas e sadas); Interface e modo de execuo.

10

Controlador programvel

Existem no mercado muitos C.L.P.s que possuem parametrizao automtica, do tipo plug and play. Entretanto, no sendo automtica, necessrio acessar um arquivo de configurao ou o prprio menu do aplicativo no submenu de parametrizao, e colocar os parmetros de trabalho em conformidade com o hardware do equipamento. Este o caso do CLP AL1000 da altus, por exemplo.

Comunicao Normalmente, neste ponto necessrio determinar para o equipamento o padro de estrutura de comunicao de dados com que trabalhar ( RS-232C, RS-485, RS-422, Profibus, Fieldbus, Alnet, Fipway, Modbus, Modbus+, Uni-Telway, etc.). A partir da, especificam-se os parmetros. A velocidade de comunicao pode ser definida como a velocidade com que os dados fluiro entre os equipamentos: o CLP e o sistema programador, ou os C.L.P.s. A velocidade depender do tipo de estrutura de comunicao adotado. Por exemplo No RS-232C, temos as velocidades: 300, 600, 900, 1200, 2400, 4800, 9600, 1920, 28800, 33600 bps (bits por segundo) ou bauds ( baud-rate), que a unidade de taxa de transmisso. O enlace fsico, ou seja, a parte fsica da comunicao pode se dar por cabos de 2 fios, 4 fios, fibra ptica, cabos proprietrios, cabos para Fieldbus, etc. Neste tpico tambm pode ser definido o tipo de comunicao entre os elementos conectados. necessrio o endereo do equipamento na rede, quando se trabalha com vrios equipamentos interligados em rede, para que as informaes trocadas entre os equipamentos e dispositivos no sejam enviadas ou recebidas pelo componente errado, nem perdidas na rede. Com relao ao formato da palavra de dados, em que a comunicao dos dispositivos se d de modo serial, importante determinar o formato dos bytes - palavras de comunicao entre C.L.P.s e Sistema programador, entre C.L.P. e C.L.Ps e entre C.L.P. e dispositivos.

11

Controlador programvel

Nos formatos dos padres seriais temos normalmente: O(s) bit(s) de incio - o start bit; A seqncia de bits de dados; Os bits que conferem a integridade dos dados - bits de paridade; O(s) bit(s) de parada o(s) stop bit(s).

Numa estrutura comum temos os seguintes valores para cada um deles: stop bit: 1, 1,5 ou 2 bits; start bit: 1 ou 2 bits; tamanho da palavra de dados entre 5 e 8 bits; bit de checagem de integridade de dados ou bit de paridade: 1 ou 2 bits.

A estrutura da rede de CLPs e demais equipamentos de Controle pode ser do tipo proprietria (de um nico fabricante) ou estabelecida em norma, portanto, normalizada, como Modbus+, Fieldbus, Profibus, Fipway, etc.

Estrutura de I/O Essa estrutura refere-se aos tipos de Entradas e Sadas do C.L.P. Um CLP pode trabalhar com variveis que mudam de valor continuamente no tempo (variveis analgicas) e variveis que mudam de valor de forma discreta (como as variveis digitais, por exemplo). Para isto acontecer, as entradas do C.L.P. devem ser digitais para trabalhos com valores digitais e analgicas para trabalhos com valores analgicos. Mas apenas isto no basta: em C.L.P.s que precisam ser configurados, necessrio definir se suas entradas ou sadas so digitais ou analgicas e o endereo em que elas se encontram. Este endereo se d, normalmente de duas formas: Modo fsico: necessrio identificar o local fsico no painel ou barramento do C.L.P. que corresponde ao endereo da placa. Isto pode ser feito atravs de bloco de microchaves ou estrapes. Estes endereos normalmente so decodificados de modo binrio, e devem ser nicos para a placa. Modo lgico: no aplicativo de parametrizao ou configurao deve ser assinalado em qual endereo fsico se encontra determinada placa, seu tipo (se trabalha com sinais digitais ou analgicos), funo; especificar se uma entrada ou sada, etc.

12

Controlador programvel

Deve-se ter o cuidado de nunca colocar duas placas ou mdulos com o mesmo nmero lgico ou fsico, evitando-se, assim, o conflito de endereos.

Modos de execuo Os CLPs podem executar um programa que est em sua memria e no aceitar outro programa ou alteraes do programa em execuo enquanto no se alterar o seu estado para o modo de programao. Esta forma de programao chama-se OFF- LINE. Quando o CLP aceita um novo programa ou alteraes no programa em execuo, com o processo de varredura em andamento damos o nome de programao ON-LINE. importante salientar que quando se programa ON-LINE, qualquer alterao ocorrer de forma imediata, sendo necessrio ter absoluta certeza dos resultados das alteraes que esto sendo implementadas.

13

PROGRAMAO EM LINGUAGEM LADDER LINGUAGEM DE RELS

INTRODUO
O processamento interno do CLP digital e pode-se, assim, aplicar os conceitos de lgica digital para compreen8 der as tcnicas e as linguagens de programao. Antes do estudo da linguagem Ladder e para compreender como funciona um CLP, importante conhecer alguns conceitos: Estados ou nveis lgicos Funes lgicas Operaes lgicas

Estados ou nveis lgicos Em sistemas digitais, trabalha-se com dois estados ou nveis lgicos, pois a eletrnica digital apoia-se no princpio da lgica que considera uma proposio ou verdadeira ou falsa. Assim, um ponto qualquer do circuito digital pode assumir apenas um de dois estados: Ligado ou desligado alto ou baixo fechado ou aberto saturado ou cortado com pulso ou sem pulso acionado ou desacionado

Imagine, por exemplo, um circuito em que uma lmpada acionada por um interruptor. Nesse caso, a lmpada pode assumir os dois estados: ligado ou desligado. Um rel, dentro de um circuito, assume os estados energizado ou

14

desenergizado. Do mesmo modo, um transistor ligado como chave num circuito pode assumir os estados saturado ou em corte. Os sistemas digitais processam apenas os nmeros binrios 1 (um) e 0 (zero). Isso significa que se associarmos o valor binrio 1 a um estado ou nvel lgico, associaremos o valor binrio 0 ao outro estado. Funo lgica A funo lgica (f) uma varivel dependente e binria. Seu valor o resultado de uma operao lgica em que se inter-relacionam duas ou mais variveis binrias. As funes lgicas operam com variveis independentes (elementos de entrada em um circuito) e com variveis dependentes (elementos de sada). Veja os circuitos a seguir. Conveno: A e B = Variveis independentes (de entrada) Y ou S = Varivel dependente (de sada)

Normalmente, as variveis lgicas independentes (de entrada) so representadas por letras maisculas A, B, C... N; as variveis dependentes (de sada), por S ou Y. As funes lgicas tm apenas dois estados: o estado 0 e o estado 1.

15

Operaes lgicas A relao entre duas ou mais variveis que representam estados estabelecida atravs de operaes lgicas. As operaes lgicas so: Produto ou multiplicao lgica. Soma lgica. Inverso. Essas operaes, nos circuitos ou sistemas lgicos, so efetuadas por blocos denominados portas lgicas, e que nos CLPs, so chamadas tambm de funes lgicas.

Diagrama de Contatos Ladder Diagram A linguagem LADDER baseada no princpio de contatos eltricos. Cada um dos componentes pode possuir um nmero infinito de contatos que so limitados pela capacidade de memria do controlador programvel. Ladder uma palavra inglesa que quer dizer escada e este nome est associado representao grfica dos contatos: ela feita horizontalmente, em linhas paralelas, que lembram os degraus de uma escada.

16

Estrutura de um programa em Ladder As linhas que representam os contatos correspondem, na programao, a duas partes: a condio (se...) e a soluo (ento...).

Linha de programa em Ladder Na parte que se refere condio, temos os contatos, ou seja, as condies para o funcionamento das sadas. As condies podem mudar de CLP para CLP, mas a maioria deles oferece possibilidades para ligaes em srie e em paralelo, funes bsicas e avanadas, definidas pelos limites de cada CLP. Na parte que se refere soluo, temos as sadas, que podem ser, por exemplo, bobinas, saltos, rtulos, FFs (biestveis).

17

Um CLP ideal seria um grande painel eltrico com infinitos componentes de comando (rels, temporizadores, contadores, chaves, botes, etc.) e cada elemento de comando teria infinitos contatos.

CONSIDERAES INICIAIS
Ao considerarmos um contato levamos em conta que: est em nvel lgico 1, se permitir a passagem de corrente eltrica, no importando se o mesmo NF (Normalmente Fechado) ou NA (Normalmente Aberto). Se um NF estiver em nvel 1 no estar acionado e se um NA estiver em nvel 1estar acionado; uma sada em nvel 1 considerada acionada; respectivamente, sero considerados NA, NF e SADA:

NA

NF

sada

Smbolos da Linguagem Ladder

Comandos Bsicos Formato dos comandos Bsicos Os comandos bsicos so chamados de funes e so todas baseadas na lgebra de Boole (Boole, G. 1858) A lgebra booleana opera com variveis que s podem assumir dois valores lgicos, usando para isso nmeros binrios. Assim, por exemplo, tanto a varivel A como a B e a Y s podem assumir os valores 0 ou 1.

18

A lgebra booleana aplicada aos sistemas digitais que tambm trabalham com dois estados ou nveis lgicos. Assim, para operar matematicamente dentro dos princpios da lgebra booleana, basta associar o valor binrio 1 a um dos estados lgicos e o valor binrio 0 ao outro estado.

Funo ou Porta E (And) A funo lgica E (And) uma lgica de contatos em srie. A sada s ativada (nvel 1) se, e somente se, todas as entradas estiverem ativadas (nvel 1). Observe que a Lgica E tem como produto lgico, as entradas.

Funo ou Porta E
Veja Animao Funo ou Porta E

Unidade 2: Linguagem Ladder > Animaes > E Diagrama Eltrico

Assim, em formato de lgica de contatos, tem-se:

Funo E em Ladder
Veja Animao Funo E em Ladder

Unidade 2: Linguagem Ladder > Animaes > E Ladder

19

Funo ou Porta OU (Or) A funo lgica OU uma lgica de contatos em paralelo. Assim, a sada s estar ativada (nvel 1) se, e somente se, qualquer das entradas estiver ativada (nvel 1). Observe que a Lgica OU tem como resultado a adio lgica das entradas.

Funo OU

Veja Animao Funo OU

Unidade 2: Linguagem Ladder > Animaes > OU Diagrama Eltrico

Assim, em formato de lgica de contatos, tem-se:

Funo OU em Ladder

Memria A funo lgica OU freqentemente utilizada em linguagem Ladder para memorizar o acionamento de uma determinada sada, que pode ser fsica (comanda diretamente um elemento externo ao CLP) ou no (estado interno do CLP, que no comanda diretamente nenhum elemento externo ao CLP).

20

Exemplo

Funcionamento Ao ser acionada a entrada E1.1, estando a entrada E1.2 desacionada, a sada S1.1 ser acionada e levar o estado (contato) S1.1 em paralelo com a entrada E1.1 ao acionamento. Com isto se garante que ao desacionar a entrada E1.1, a sada E1.1 continue acionada at o acionamento da entrada E1.2, que abrir a linha de comando desligando a referida sada.
Veja Animao Funo OU em Ladder

Unidade 2: Linguagem Ladder > Animaes > OU Ladder

Funo ou Porta NO (Not) A funo lgica NO (Not) ou Inversora, inverte, na sada, o valor lgico de entrada. Se na entrada temos um 0 lgico, na sada teremos um nvel 1 lgico. Na lgica de contatos, temos um rel com contato NF acionando a sada.

Funo NO

Veja Animao Funo NO

Unidade 2: Linguagem Ladder > Animaes > NO Diagrama Eltrico

21

No formato de lgica de Contatos, tem-se:

Funo NO em Diagrama de Ladder


Veja Animao Funo NO em Diagrama de Ladder

Unidade 2: Linguagem Ladder > Animaes > NO Ladder

A partir das portas bsicas, possvel gerar as portas derivadas que so associaes das portas estudadas (bsicas) com um funcionamento particular.

Funo NO E

Funo NO OU

22

Funo OU EXCLUSIVO (Xor)

FUNES ESPECIAIS

Biestveis
Um dos circuitos mais importantes num CLP o circuito Biestvel, que tem como caracterstica principal a funo de memria. O circuito Biestvel, tambm conhecido como FLIP-FLOP, ou FF, ao ter sua sada ativada assume e permanece num determinado estado indefinidamente ou at surgir nova ativao na entrada, o que caracteriza a funo memria. Observe, na representao de lgica de rels, o circuito Biestvel:

Circuito Biestvel a partir de um comando eltrico Pulsando-se S1, ativa-se K1 e K3 e a sada Y1 ativada; ao soltar-se o boto S1, K1 desativado e K3 impede que novamente K1 entre, mesmo aps um novo pulso de

23

S1. Ao pulsar S1 novamente, K2 ativado e ativa K4; K4 que desativa K3, desaciona Y1, ou seja, num segundo pulso de S1, Y1 desativado. As ilustraes a seguir mostram o funcionamento detalhado do circuito do biestvel. 1. Ao pulsar S1:

2. Ao soltar S1:

3. - Ao pulsar S1 novamente:

24

4 - Ao soltar S1:

Observe que o circuito volta situao inicial.


Veja Animao Circuito do Biestvel

Unidade 2: Linguagem Ladder > Animaes > Biestvel Diagrama Eltrico

O circuito para LADDER faz uma apresentao de forma mais simplificada.

Biestvel a partir do programa Ladder

25

Funcionamento O CLP faz a varredura e atua lendo as entradas e atualiza as sadas conforme os resultados. Na tabela imagem, para cada varredura (scan) todas as entradas e sadas esto em zero. Pulsando-se L1, na primeira varredura temos M1 em 1, M2 em 1; mas, como o contato NF de M2 que abre M1 est na linha anterior, ele s atuar a partir do prximo scan. Observe o que ocorre ao pulsar L1 na primeira varredura:

Na terceira linha, M3 est em 1 por meio de M1. Note que em srie est seu prprio contato que s ser considerado na tabela imagem na prxima varredura, isto , s atuar abrir no prximo scan. Ao terminar o programa, o CLP volta a ler a primeira linha e os valores da tabela imagem so alterados com M2 em 1. Observe, agora, o que ocorre na segunda varredura:

26

Assim, M1 desligado e M3 mantido selado por si mesmo e energiza Q1. Soltandose L1, tem-se que M2 tambm desenergizado. Observe o que ocorre com a liberao de L1.

Com o novo pulso em L1, processa-se novamente a energizao de M1 na primeira linha, M2 na segunda. Como o selo de M3 est em srie com um contato de M1 abridor, tem-se a desenergizao de M3 que desliga Q1.

27

Novo pulso em L1 na primeira varredura:

Na prxima varredura, M2 desenergizar M1 e M3 continuar desligado. Soltando-se L1, tem-se a automtica desenergizao de M2 e o fim do processo. Observe, agora, o que ocorre quando L1 pulsado na segunda varredura:

Observe que foram usados contatos internos auxiliares, chamados de flags ou memrias e somente a sada Q1 tem acesso ao mundo externo ao CLP, ou seja, comanda um dispositivo externo ao CLP.

28

Ao soltar L1, o circuito retorna a situao inicial:

Veja Animao Diagrama Funcionamento do Biestvel

Unidade 2: Linguagem Ladder > Animaes > Funcionamento Biestvel Ladder

Observe, agora, uma outra forma de representar um biestvel (FLIP-FLOP) , atravs de sadas biestveis padronizadas por FFs Set e Reset.

Biestvel em Diagrama Ladder utilizando o bloco RS

29

Funcionamento Ao pulsar a entrada L1, a memria auxiliar M1 setada (ligada) energizando, na linha 3, a sada Q1, permanecendo assim com a ausncia do pulso de L1. O desligamento de Q1 ocorre ao pulsar a entrada L2, pois reseta a memria auxiliar M1. A programao dos FLIP FLOP apresentada muito utilizada para pequenos CLPs; a norma IEC 61131-3 especifica a sua utilizao em forma de bloco de funo de biestvel e pode ser do tipo SR ou RS como na ilustrao a seguir.

Diagrama em bloco funcional do biestvel tipo SR e RS

Funcionamento Observe que a ilustrao procura deixar claro que ao tornar a linha da entrada S ou S1 verdadeira, a sada Q1 ser ligada e permanecer nesta condio mesmo depois desta linha deixar de ser verdadeira. Ao tornar a linha da entrada R ou R1 verdadeira, a sada Q1 ser desligada e permanecer nesta condio, mesmo depois da linha deixar de ser verdadeira. A indicao S1 e R1 significa que as mesmas possuem prioridade sobre as entradas S e R respectivamente.

Veja Animao Diagrama em bloco funcional do biestvel tipo SR e RS

Unidade 2: Linguagem Ladder > Animaes > Biestvel SR RS

30

Adequao de Contatos para linhas repetitivas Observe a representao de um circuito eletromecnico:

Circuito Eletromecnico Embora no seja regra, alguns CLPs no permitem a conexo de vrias sadas em um mesmo ponto (conexo em paralelo), assim como a limitao do nmero de contatos na linha do programa. Para facilitar a criao via circuito LADDER, pode-se utilizar um artifcio em que todos os contatos, que devam ser repetidos, podem acionar um flag auxiliar AX.X que acionar os contatos e sadas, que esto em srie com a linha original. Observe no exemplo a seguir.

Representao em Linguagem Ladder Onde o contato AXX substituiria os contatos repetidos.

31

Temporizadores Os temporizadores so elementos que funcionam com atrasos de tempo (delays). Podem funcionar de vrias maneiras, sendo que as mais comuns so: Acionamento aps a energizao (TON):

Dessa maneira, os contatos s mudam aps a contagem de tempo com a sada energizada.

Funcionamento do Temporizador (Ton) Acionamento aps a desenergizao (TOFF):

Nesse caso, os contatos s mudam de tempo com a sada desenergizada.

32

Funcionamento do Temporizador (Toff) Em termos de linguagem de contatos, observe como sua representao:

Bloco de Temporizador em Linguagem Ladder O bloco funo Temporizador permite temporizar algumas aes. Se temos as seguintes funes: - uma entrada de reposio a zero RT, - uma entrada de comando TT, - uma sada fim de temporizao T ou t, - um valor de pr-seleo.

33

Tendo como base essas funes, os parmetros podem ser assim definidos: TT: comando utilizado como bobina e este elemento representa a entrada de comando do Bloco funo Temporizao. O seu funcionamento vai depender do tipo que utilizado. RT: reposio a 0 utilizado como bobina e este elemento representa a entrada de reposio a zero. Reset". A excitao da bobina tem como efeito: - repor a zero, resetar o valor corrente da Temporizao; - desativar o contato T, o bloco est pronto para um novo ciclo de temporizao. t=00.00: Valor a ser atingido Este valor tambm chamado valor de pr-seleo. A base de tempo para este valor difere de acordo com o tipo utilizado. S: unidade de tempo do valor de pr-seleo 1/100 de segundos: 00.00 s (mximo : 99.99) 1/10 de segundos: 000.0 s (mximo : 999.9) minutos: segundos : 00 :00 M : S (mximo : 99 :59) horas: minutos : 00 : 00 H : M (mximo : 99 :59)

T (normalmente aberto) ou t (normalmente fechado) utilizado como contato e este elemento do bloco representa a sada do Temporizador e o seu funcionamento vai depender do tipo selecionado.

TIPOS DE TEMPORIZAO

34

Os CLPs possuem diversas maneiras de temporizao, sendo as mais comuns: Temporizao no acionamento, denominado ON DELAY.

Exemplo

Exemplo de ON DELAY Temporizao no desligamento, denominado OFF DELAY Exemplo

Exemplo de OFF DELAY Nas duas situaes (ON DELAY e OFF DELAY), os temporizadores no possuem sadas externas associadas diretamente, o que faz com que seja necessrio que uma sada tpica seja conectada em um dos respectivos contatos. Esta forma ilustrada de programao do temporizador muito utilizada em pequenos CLPs. O bloco funo Temporizador permite temporizar certas aes em um sistema automtico. A norma IEC 1131-3 especifica a utilizao do bloco de funo de temporizador, conforme a ilustrao a seguir.

35

Bloco funo temporizador Ton e Toff

Funes uma entrada de comando IN uma entrada de valor de temporizao desejada PT uma sada fim de temporizao Q uma sada para visualizao do valor de tempo corrente ET

Descrio dos parmetros IN: comando Este elemento representa a entrada de comando do Bloco funo Temporizao, que quando acionado dispara a temporizao PT: Valor a atingir Este valor tambm chamado valor de pr-seleo. A base de tempo deste valor difere de acordo com o tipo utilizado.

36

A unidade de tempo do valor de pr-seleo pode ser __D__H__M__S, sendo que a definio do tempo sempre o de maior valor. Para o simulador de CLP que ser utilizado, este tempo deve ser especificado, por exemplo, da seguinte maneira: T#10.0S (para dez segundos). Q: Sada digital Este elemento do bloco representa a sada do Temporizador. O seu funcionamento depende do tipo de temporizador selecionado. ET: sada que mostra o valor corrente do tempo (tempo real) Como no caso anterior, o bloco funo temporizador pode ser dos tipos Ton ou Tof.

Temporizador Ton

Funcionamento
Observe a figura a seguir, uma representao do retardo da conexo Ton ON DELAY

Retardo de conexo Ton-ON DELAY. Por essa figura, observa-se que: (1) quando IN est em nvel lgico 1, iniciada a temporizao interna (ET); (2) quando o tempo interno alcana o valor especificado em PT por exemplo 10 segundos (T#10.0S), a sada Q torna-se nvel lgico 1; (3) quando IN se torna nvel lgico 0, a sada Q se torna nvel lgico 0 e zera o tempo interno; (4) quando IN se torna nvel lgico 0 antes do momento em que o tempo interno tenha sido alcanado, o tempo interno zerado.

37

Veja Animao Retardo de conexo

Unidade 2: Linguagem Ladder > Animaes > Ton On Delay

Temporizador Toff Observe a figura a seguir, a representao da temporizao no desligamento:

Temporizao no desligamento, Toff - OFF DELAY (1) quando a entrada IN se torna nvel lgico 1, a sada Q torna-se nvel lgico 1; (2) quando a entrada IN se torna nvel lgico 0, inicia-se o tempo interno (ET); (3) quando o tempo interno (ET) alcana o valor especificado em PT, a sada Q se torna nvel lgico 0; (4) quando a entrada IN se torna nvel lgico 1 antes que o tempo interno tenha alcanado o valor estipulado em PT, se interrompe o tempo interno que retorna para zero.
Veja Animao Temporizao no desligamento

Unidade 2: Linguagem Ladder > Animaes > Toff Off-Delay

Contador Um contador formado basicamente por linhas em que a entrada de contagem providenciada por um sistema de pulso. importante destacar que a velocidade de leitura do sensor de contagem deve ser pelo menos, em termos de resposta, a metade da velocidade

38

de leitura de todo o programa. Esta velocidade cresce linearmente com o nmero de contagens admitido pelo contador. A velocidade dos elementos a serem contados por unidade de tempo no deve ser maior que a velocidade do SCAN do CLP. O funcionamento do contador depende da estrutura de um contador, uma entrada que se assemelha a uma onda quadrada, com uma borda de subida e uma de descida. A borda de subida corresponde ao acionamento do sensor de contagem. O patamar corresponde sua reteno e permanece neste modo at que a leitura da entrada seja feita. A borda de descida corresponde ao desligamento do sensor e sua leitura. Assim, cada passagem pelo contador possuir uma linha para acionar (setar), um pulso de contagem e outra linha para especificar que a contagem j foi realizada. Os contadores podem realizar a contagem de maneira crescente (up) ou decrescente (down), dependendo do tipo que foi selecionado.

Exemplo:

Bloco Contador em Linguagem Ladder

39

Funcionamento do Bloco Contador Funcionamento Na linha 1, em linguagem ladder, tem-se a entrada de pulso CC1 (a serem contados) e na linha 2, a entrada de reset RC1 do valor efetivo de contagem. Na linha trs, tem-se a sada Q1 que ser acionada ao trmino da contagem. Como no caso do temporizador, a norma IEC 6 1131-3 recomenda a utilizao do bloco funo contador apresentado a seguir. Contador crescente

Bloco funo Contador Crescente - CTU:

Funo das entradas e sadas do bloco de funo contador crescente:


entrada de pulsos a serem contados - CU entrada de estado que quando for verdadeiro zera o valor contado - R valor do nmero de pulsos que sero contados, por exemplo 10, para que o contador mude a situao da sada Q - PV

sada liga quando o valor de contagem atinge o valor especificado em PV - Q valor corrente da contagem, ou seja o nmero de pulsos contados at ento - CV
Veja Animao Bloco Funo Contador Crescente - CTU

40

Unidade 2: Linguagem Ladder > Animaes > Contador CTU

Contador decrescente

Bloco funo Contador Crescente CTD

Funo das entradas e sadas do bloco de funo contador decrescente Entrada de pulsos a serem contados - CD entrada de estado que quando for verdadeiro zera o valor contado - LD valor do nmero de pulsos que sero contados de forma decrescente que quando atinge zero mude a situao da sada Q - PV Sada a qual liga quando o valor de contagem especificado em PV atinge ZERO - Q Valor corrente da contagem em forma decrescente - CV

Veja Animao Bloco Funo Contador Decrescente CTD

Unidade 2: Linguagem Ladder > Animaes > Contador CTD

Entrada de Controle de Temporizadores e contadores EN/ENO:

A norma IEC 61131-3 determina que as funes de Temporizao e Contagem devem ter um terminal de controle de seu funcionamento, este controle feito por uma linha de comando composta por uma entrada e uma sada, ambas booleanas, denominadas EN/ENO do ingls Enable.

41

Quando este recurso no est selecionado, o temporizador tem seu funcionamento normal, como visto anteriormente.

Exemplo:

Quando este recurso est selecionado, o funcionamento do temporizador depende das condies da entrada EM, no nosso exemplo da varivel TEMP1_EN, pois se a mesma estiver em nvel lgico 1 (verdadeira), a sada ENO tambm ser colocada em 1, indicando a habilitao do temporizador, permitindo o funcionamento normal do mesmo. Caso contrrio, se a varivel TEMP1_EN estiver em nvel lgico 0 (falso), a sada ENO ser colocada em nvel lgico 0, nesta situao, mesmo que as condies de funcionamento do temporizador estejam satisfeitas, o mesmo no ser executado. A varivel conectada na entrada EN tambm pode ser uma varivel de sistema, por exemplo, que seja verdadeira na ocorrncia de uma determinada situao como um erro na execuo de algum algoritmo utilizado no programa.

Exemplo

VISO GERAL DE PAINEL ELTRICO COMANDADO POR CLP

42

O CLP comanda os painis eltricos e responsvel pela parte lgica, chamada de comando eltrico nos quadros de comando a rels. O painel comandado pelo CLP conta com toda a parte relativa potncia (contatores tripolares), seccionadores, sinaleiros e chaves de comando, proteo tais como fusveis, disjuntores rels de sobrecarga.

Observe a seguir alguns modelos de painis. CLP CLP

FUSIVEL

DISJUNTOR

BOTES DE COMANDO E SINALEIROS

43

Programao em Linguagem de Lista de Instruo ASPECTOS GERAIS

A Lista de Instruo, usada em 60% dos CLPs existentes no mundo, classificada como linguagem descritiva, pois apresenta-se na forma de um texto. Por exemplo:

45 LDN START

(*switch input read Leitura do Interruptor de entrada *)

Essa linguagem bem semelhante utilizada por programadores assembler e inclui os operadores mais comuns encontrados nos CLPs industriais; formada por instrues de controle compostas por um operador e um ou mais operandos. O exemplo anterior, apresenta como operador LDN e como operando START.

A linguagem por Lista de Instruo (IL) inclui um conjunto de instrues seqenciadas e tem relao com a programao dos microcontroladores. mais complexa que as linguagens Ladder e FBD, mas sua estrutura bsica muito simples e fcil de ser aprendida. Sua maior dificuldade est em ser uma linguagem difcil de ser escrita, lida e entendida, ou seja, o programa resultante difcil de ser entendido, alm de incluir um fluxo difcil de ser acompanhado.

No entanto, trata-se de uma linguagem ideal para resolver problemas de lgica que envolvem pequeno nmero de decises e um nmero limitado de mudanas no fluxo de execuo do programa. Alm disso, comum usar a linguagem IL para a construo de equipamentos controladores do CLP. Dependendo do CLP, o microcontrolador pode ser mais simples como o 8051 ou mais complexo de acordo com o conjunto de instrues.

Com a IL pode-se executar operaes lgicas (AND, p.ex.), aritmticas (ADD, p.ex.), de comparao (GT, p.ex.) e outras (ST, S, R); pode-se tambm executar saltos dentro de uma seo (JMP / JMP C, JMP CN ), bem como dar acesso a funes e blocos de funes (CAL / CAL C, CAL CN).

44

Programao em Linguagem de Lista de Instruo INSTRUES


A IL tem como caracterstica principal a estruturao das instrues; isto a diferencia das demais linguagens de programao de CLPs.

Cada instruo d incio a uma seqncia de processamento e composta de:

um operador; um modificador; em algumas situaes; um ou mais operandos, em alguns casos especiais.

Nos casos em que so utilizados mais de um operando, eles so separados por vrgulas. Antes da instruo, pode-se colocar uma marca tambm denominada labbel que seguida de dois pontos ( : ). Depois da instruo pode-se colocar um comentrio.

Exemplo

Marca Operadores Operandos

START: LD ANDN ST

A B C

(*Sensor 1*) (*Y Sensor 2 *) (* Ventilador ligado *)

Comentrios

45

Programao em Linguagem de Lista de Instruo ESTRUTURA DA LINGUAGEM LISTA DE INSTRUO - IL

A IL uma linguagem orientada para o acumulador (um registrador que nada mais do que um tipo de memria intermediaria interna do CLP), em que cada instruo utiliza e modifica o contedo atual do acumulador. A IEC 6 1131-3 denomina este acumulador de Resultado.

Assim, um programa em IL deve comear sempre com o operando LD (abreviatura do termo ingls LOAD, que significa carregar e que o comando de carga em acumulador).

Exemplo de uma soma em IL

Comando LD 10

Significado O valor 10 carregado no acumulador.

ADD 25

O contedo do acumulador somado com 25.

ST A

O resultado colocado na varivel A. O contedo da varivel A e do acumulador agora 35. Em casos em que no se inicie com LD, uma possvel instruo colocada a seguir opera com o contedo do acumulador a 35.

As operaes de comparao referem-se ao acumulador. O resultado Booleano da comparao armazenado no acumulador, passando a ser o contedo atual do acumulador.

46

Programao em Linguagem de Lista de Instruo


Exemplo de uma comparao

Comando LD B GT 10 ST A

Significado O valor de B carregado no acumulador. O contedo do acumulador comparado com 10. O resultado da comparao colocado na varivel A. Se B igual ou menor que 10, o valor da varivel A e o contedo do acumulador 0 (FALSO). Se B maior que 10,o valor da varivel A e o contedo do acumulador 1 (VERDADEIRO) .

OPERADORES

Introduo Um operador um smbolo usado para executar uma operao aritmtica; executar uma operao lgica; para dar o acesso a uma funo.

Tabelas de operadores Operadores de linguagem de programao IL:


Operador LD Significado do operador Carrega o valor do operando no acumulador Guarda o valor do acumulador no operando Coloca o operando em 1,quando o contedo do acumulador 1 Coloca o operando em Modificador possvel N Operando possvel Literal, (valor Numrico) varivel, direo direta de tipos de dados ANY Varivel, direo direta de tipos de dados ANY varivel, direo direta de tipos de dados BOOL Varivel, direo direta de

ST S

47

Programao em Linguagem de Lista de Instruo


0,quando o contedo do acumulador 1 AND Lgica E N,N(,( tipos de dados BOOL Literal (valor Numrico) varivel, direo direta de tipos de dados ANY_BIT Literal (valor Numrico) varivel, direo direta de tipos de dados ANY_BIT Literal (valor Numrico), varivel, direo direta de tipos de dados ANY_BIT Literal(valor Numrico) varivel, direo direta de tipos de dados ANY_NUM o TIME Literal (valor Numrico) varivel, direo direta de tipos de dados ANY_NUM o TIME Literal (valor Numrico), varivel, direo direta de tipos de dados ANY_NUM o TIME Literal (valor Numrico) de tipos de dados ANY_NUM o TIME Literal(valor Numrico), varivel, direo direta de tipos de dados ANY_ELEM Literal (valor Numrico), varivel, direo direta de tipos de dados ANY_ELEM Literal (valor Numrico) varivel, direo direta de tipos de dados ANY_ELEM Literal (valor Numrico) varivel, direo direta de tipos de dados ANY_ELEM Literal (valor Numrico) varivel, direo direta de tipos de dados ANY_ELEM Literal (valor Numrico), varivel, direo direta de tipos de dados ANY_ELEM Marca

OR

Lgica OU

N,N(,(

XOR

Lgica OU exclusivo

N,N(,(

ADD

Adio

SUB

Subtrao

MUL

Multiplicao

DIV

Diviso

GT

Comparao : > (maior que)

GE

Comparao : > = (maior ou igual) Comparao: = (igual a)

EQ

NE

Comparao :< > (diferente de)

LE

Comparao: < = (menor ou igual) Comparao : < (menor que)

LT

48

JMP

Salta para a marca (Labbel)

C, CN

Programao em Linguagem de Lista de Instruo


CAL FUNCNA ME Acesso a um modulo de funo o DFB Execuo de uma funo Processa as operaes estabelecidas C,CN FBNAME(Nome de exemplo) Literal (valor Numrico), 00 varivel, direo direta (o tipo de dado depende da funo)

MODIFICADOR

Introduo O modificador influencia na execuo dos operadores. Veja, a seguir, como isso acontece.

Modificador N O modificador N utilizado para inverter o valor de um operando por cada bit.

Exemplo Modificador N

LD A ANDN B ST C

Nesse exemplo, C 1; quando A 1; B 0.

Modificador C (Condicional ou Acumulador) O Modificador C utilizado para executar a instruo correspondente, quando o valor do acumulador seja 1 (VERDADEIRO).

O modificador utilizado somente quando o operando do tipo que possui dados BOOL.

49
Exemplo Modificador C

Programao em Linguagem de Lista de Instruo


LD A AND B JMPC START

No exemplo, somente se efetua um salto para START, quando A for 1 (VERDADEIRO) B for 1 (VERDADEIRO).

Modificador CN (Condicional a Negao do Acumulador) Se o modificador C estiver combinado com o modificador N, somente ser executada a instruo correspondente, se o valor do acumulador um 0 booleano (FALSO).

Exemplo: Modificador CN LD A AND B JMPCN START

No exemplo, somente acontece o salto para START, quando: A for 0 (FALSO) e B for 0 (FALSO)

Modificador de parnteses esquerdo ( O Modificador de parnteses esquerdo ( utilizado para estabelecer a avaliao dos operandos, at que aparea o operador de parnteses direito). O nmero de parnteses direito deve ser igual ao nmero do modificador de parnteses esquerdo. Os parnteses podem ser inter-relacionados.

Exemplo: Parnteses esquerdo ( LD A AND B AND ( C

50

Programao em Linguagem de Lista de Instruo


OR D ) ST E

No exemplo, E 1 quando C e/ou D 1, assim como A B tambm so 1.

Nesse exemplo, possvel tambm a seguinte programao:

LD A AND B AND ( LD C OR D ) ST E

Modificador de Parnteses direito ) Com o parnteses direito ) iniciado o processo dos operadores "zeladores". A quantidade de operaes de parnteses direito deve ser igual quantidade de operaes de modificador de parnteses esquerdo. Os parnteses podem se inter-relacionar.

Exemplo LD A AND B AND (C OR D ) ST E

51
No exemplo, E 1,quando C e/ou D 1 assim como A e B so 1.

Programao em Linguagem de Lista de Instruo


OPERANDOS

Introduo Um operando pode ser um(a):

literal (valor numrico); varivel. varivel de elementos mltiplos; elemento de uma varivel de elementos mltiplos; sada FB/DFB; direo direta.

Marca ou Registro (Labbel)

Introduo As marcas servem como destino de salto.

Propriedades As marcas devem ser sempre o primeiro elemento de uma seqncia de processamento. As marcas devem ser declaradas em todo o projeto/DFB. Nas marcas, no se diferencia maiscula de minsculas. As marcas podem ter uma extenso mxima de 32 caracteres. As marcas devem corresponder s convenes determinadas pela norma IEC 61131-3. As marcas so separadas da prxima instruo por dois pontos ( : ) . As marcas aparecem somente no principio de uma instruo, pois assim pode-se colocar um valor indefinido no acumulador.

52

Programao em Linguagem de Lista de Instruo


Destino de salto Os destinos de salto possveis so:

A primeira instruo LD de um acesso FB/DFB como nome de parmetro de entrada (veja no exemplo, start2, apresentado a seguir). Uma instruo normal LD (veja no exemplo, start1, apresentado a seguir). Uma instruo CAL que no opera como nome de parmetro de entrada (veja no exemplo, start3, apresentado a seguir). Uma instruo JMP - salto (veja no exemplo, start4, apresentado a seguir). No final de uma lista de instruo (veja no exemplo, start5, apresentado a seguir).

Exemplo:

Start2: LD A ST counter.CU LD B ST counter.R LD C ST counter.PV CAL counter JMPCN start4

Start1:

LD A AND B OR C ST D JMPC start3 LD A JMPC start5

53
Start3: CAL counter ( CU:= A

Programao em Linguagem de Lista de Instruo


R:=B PV:=C) JMP start1

Start4:

JMPC start1

Start5: continuao do programa

COMENTRIO

Descrio No editor IL, os comentrios comeam e terminam com um asterisco (*). Entre os dois asteriscos pode-se introduzir qualquer comentrio. Os comentrios so representados em cores.

INSTRUO INVERSORA Esta funo utilizada quando se quer inverter um nvel lgico.

Exemplo: >>>>>>>>>>>>>>>>>>Inicio da lista de instruo<<<<<<<<<<<<<<<<<<<<<<<<< LD liga2 (O nvel lgico do operando liga2 carregado no acumulador) NOT_BOOL ST sada2 (O estado lgico do sinal invertido) (O operando sada2 ser o nvel lgico invertido do operando liga2) >>>>>>>>>>>>>>>>>>Final da lista de instrues<<<<<<<<<<<<<<<<<<<<<<<<<

INSTRUES AND BOOLEANO:

A instruo AND BOOLEANO pode ser: AND, AND( ),ANDN,ANDN( )

54

Programao em Linguagem de Lista de Instruo


Descrio de AND

AND tem uma conexo lgica de sentido E entre o contedo do registro acumulador e operador.

Nos casos de tipos de dados BYTE e WORD a conexo se faz em forma de bits.

Exemplo de AND

Comando

Descrio

LD A

O contedo de A se carrega no registro acumulador.

AND B

O contedo deste registro acumulador se vincula ao contedo de B com um conector lgico AND

AND C

O contedo deste registro acumulador (o resultado da vinculao AND de A e B) se vincula ao contedo de C com um conector lgico AND.

ST D

O resultado dessas vinculaes so guardadas em D.

Nesse exemplo, D ser 1 quando o valor de A, B e C forem 1.

A figura seguinte mostra o mesmo exemplo feito no Concept em IL e em LD.

55

Programao em Linguagem de Lista de Instruo

Descrio AND ( )

AND pode utilizar o modificador de parnteses de abertura (o esquerdo) ( , iniciando assim uma seqncia lgica.

Exemplo AND ()

Comando

Descrio

LD A

O contedo de A carregado no registro do acumulador.

AND (

A vinculao AND se restabelece at que alcance o parnteses direito

LD B

O contedo de B carregado no registro do acumulador.

OR C

O contedo de C se vincula ao contedo do registro do acumulador mediante um conector lgico OR.

56

Executa a vinculao AND restabelecida. O contedo do registro

Programao em Linguagem de Lista de Instruo


acumulador (o resultado da vinculao OR de B e C) se vincula ao contedo de A com conector lgico AND.

ST D

O resultado desses vinculadores so guardados em "D".

Nesse exemplo, D ser 1 quando o valor de A for 1 e B ou C tambm forem 1.

A seguir, temos o mesmo exemplo anterior feito em IL e em LD no simulador Concept.

Descrio ANDN

AND pode ser utilizado com o modificador N que tem a mesma funo da funo inversora vista anteriormente.

Exemplo ANDN

Comando LD A

Descrio O contedo de A se carrega no registro acumulador.

57

Programao em Linguagem de Lista de Instruo


ANDN B O contedo de B invertido e se vincula ao contedo do registro acumulador mediante um conector lgico AND.

ANDN C

O contedo de C invertido e se vincula ao contedo do registro acumulador (o resultado da vinculao AND de A e B).

ST D

O resultado desses vinculadores so guardados em "D"

Nesse exemplo, D ser 1 quando o valor de A for 1 e o valor de B e o de C forem 0.

A figura seguinte mostra o mesmo exemplo feito no Concept em IL e em LD.

Descrio de ANDN ( )

AND pode ser utilizada com o modificador N e com o modificador de parnteses de abertura (o esquerdo) ( , iniciando assim uma seqncia lgica.

Exemplo ANDN ()

58
Descrio

Comando

Programao em Linguagem de Lista de Instruo


LD A O contedo de A carregado no registro acumulador.

ANDN (

A vinculao AND se restabelece at alcanar o parnteses direito.

LD B

O contedo de B carregado no registro acumulador.

ORN C

O contedo de C invertido e se vincula ao contedo do registro acumulador mediante um conector lgico OR.

Executa-se a vinculao e AND restabelecida. O contedo de A se inverte e se vincula ao contedo do registro acumulador (o resultado da vinculao OR de B e C)

ST D

O resultado desses vinculadores so guardados em D.

Nesse exemplo, D ser 1 quando o valor de A = 1, B = 0 e C = 1.

A seguir, temos o mesmo exemplo anterior feito em IL e em LD no simulador Concept.

59

Programao em Linguagem de Lista de Instruo

OR BOOLEANO A instruo OR BOOLEANO pode ser: OR, OR( ), ORN, ORN()

Descrio de OR OR tem uma conexo lgica de sentido ou entre o contedo do registro acumulador e o operador.

Nos dados tipo BYTE e WORD, a conexo se faz em forma de bits.

Exemplo de OR

Comando LD A

Descrio O contedo de A carregado no registro acumulador.

OR B

O contedo do registro acumulador se vincula ao contedo de B com um conector lgico OR.

60

Programao em Linguagem de Lista de Instruo


AND C O contedo do registro acumulador (o resultado da vinculao OR de A e B) vinculado mediante um conector lgico AND.

ST D

O resultado dessas vinculaes so guardadas em D.

Nesse exemplo, D ser 1, quando o valor de A ou B for 1 e o de C = 1.

A seguir, temos o mesmo exemplo anterior feito em IL e em LD no simulador Concept.

Exemplo em IL

>>>>>>>>>>>>>>>>>>Inicio da lista de instruo<<<<<<<<<<<<<<<<<<<<<<<<<< LD liga1 OR_BOOL IN2 := liga2 (Carrega o operando liga1) (Estabelece um OR com a varivel IN2 liga2) ST sada (A sada ser ligada quando a condio OR for satisfeita) >>>>>>>>>>>>>>>>>>Final da lista de instrues<<<<<<<<<<<<<<<<<<<<<<<<<

Descrio OR ( )

61

Programao em Linguagem de Lista de Instruo


A funo OR pode ser utilizada com o modificador de parnteses de abertura (ou esquerdo), iniciando assim uma seqncia de processamento (.

Exemplo OR ( )

Comando

Descrio

LD A

O contedo de A carregado no registro acumulador.

OR (

A vinculao OR restabelecida at alcanar o parnteses direito

LD B

O contedo de B carregado no registro acumulador.

AND C

O contedo de C se vincula ao contedo do registro acumulador mediante um conector lgico AND.

executada a vinculao e OR restabelecida. O contedo do registro acumulador (o resultado da vinculao AND de B e C) vinculado ao contedo de A com conector lgico OR.

ST D

O resultado desses vinculadores guardado em D.

Nesse exemplo, D ser 1 quando o valor de A for 1 ou o valor de B e de C for 1.

A seguir, temos o mesmo exemplo anterior feito em IL e em LD no simulador Concept.

62

Programao em Linguagem de Lista de Instruo

Descrio ORN

OR utilizado com o modificador N.

Exemplo ORN

Comando

Descrio

LD A

O contedo de A carregado no registro acumulador.

ORN B

O contedo de B se inverte e se vincula ao contedo do registro acumulador mediante um conector lgico OR.

63

Programao em Linguagem de Lista de Instruo


AND C O contedo de C vinculado ao contedo do registro acumulador (o resultado da vinculao OR de A e B).

ST D

O resultado desses vinculadores so guardados em D.

Nesse exemplo, D ser 1 quando o valor de A for 1 e , B=0 e ou C for 1.

A seguir, temos o mesmo exemplo anterior feito em IL e em LD no simulador Concept.

Descrio de ORN( )

ORN utilizado com o modificador N e com o modificador de parnteses de abertura (ou esquerdo), iniciando assim uma seqncia de processamento (.

Exemplo ORN( )

Comando LD A

Descrio O contedo de A carregado no registro acumulador.

64
ORN ( A vinculao OR se restabelece at alcanar o parnteses direito.

Programao em Linguagem de Lista de Instruo

LD B

O contedo de B carregado no registro acumulador.

AND C

O contedo de C se vincula ao contedo do registro acumulador mediante um conector lgico AND.

Executa a vinculao OR e restabelecida. O contedo do registro acumulador (o resultado da vinculao AND de B e C) vinculado ao contedo de A com um conector lgico OR.

ST D

O resultado desses vinculadores so guardados em D.

Nesse exemplo, D Ser 1 quando o valor de A for 1 ou quando B ou C for 0.

A seguir, temos o mesmo exemplo anterior feito em IL e em LD no simulador Concept.

65

Programao em Linguagem de Lista de Instruo


MDULOS DE FUNO

Mdulos de funo so blocos com funo definida.

Neste texto, sero abordados os mdulos de funo mais comuns na linguagem IL, que so: os biestveis, contadores e temporizadores.

Para programar os mdulos de funo necessrio fazer a declarao dos mdulos que sero utilizados no projeto; essa declarao inicia com a instruo VAR e termina com a instruo END_VAR.

A Instruo VAR serve para declarao dos Mdulos de Funo tais como contadores, temporizadores, bi-estveis e DFBs (Mdulo de Funo Derivado, podem ser vistos na Unidade 1, Programao FBD).

Em VAR no se pode utilizar a declarao de variveis; estas devem ser feitas no editor de variveis, como visto at o momento.

A instruo END_VAR indica o fim da declarao dos mdulos ou DFBs utilizados.

No software Concept, que utilizado no curso, esta declarao feita da seguinte maneira:

66

Programao em Linguagem de Lista de Instruo

BI-ESTVEIS - FLIP-FLOP Os bi-estveis Flip-Flop podem ser do tipo S (Set), R (Reset), SR (Set/Reset), ou ainda, RS (Reset/Set), dependendo apenas da maneira de atuao do mesmo.

REINICIAR - R (RESET)

Descrio

Com a funo R, coloca-se o operando em nvel lgico 0, quando o contedo atual do acumulador um booleano 1.

67

Programao em Linguagem de Lista de Instruo

Exemplo R

Ordem

Descrio

LD A

O valor de A carregado no acumulador.

R OUT

Quando o contedo do acumulador (valor de A) for 1, em OUT coloca-se 0.

ESCREVER - S (SET)

Descrio

Com a funo S se coloca o operando 1, quando o contedo atual do acumulador for de um booleano 1.

Exemplo S:

Comando LD A

Descrio O valor de A carregado no acumulador.

S OUT

Quando o contedo do acumulador (valor de A) for

SR (SET/RESET)

68

Programao em Linguagem de Lista de Instruo


Neste tipo de bi-estvel, o Set dominante, ou seja, quando o mesmo estiver em nvel lgico 1, a sada no ser resetada, mesmo que a entrada reset esteja em nvel lgico 1. Exemplo SR Flip-Flop

Ordem LD A

Descrio O valor de A carregado no acumulador.

R OUT

Quando o contedo do acumulador (valor de A) for 1, em OUT coloca-se 0.

LD C

O valor de C carregado no acumulador.

S OUT

Quando o contedo do acumulador (valor de C) for 1, em OUT coloca-se 1.

Exemplo de Bi_estvel SR no Concept

RS (RESET/SET) Neste tipo de bi-estvel, o reset dominante, ou seja, quando o mesmo estiver em nvel lgico 1, a sada no ser setada, mesmo que a entrada Set esteja em nvel lgico 1.

69

Programao em Linguagem de Lista de Instruo


Exemplo RS Flip-Flop

O exemplo mostra um RS- Flip-Flop (Reset dominante) .

Comando LD A

Descrio O valor de A carregado no acumulador.

S OUT

Quando o contedo do acumulador (valor de A) for 1, em OUT coloca-se 1.

LD C

O valor de C carregado no acumulador.

R OUT

Quando o contedo do acumulador (valor de C) for 1, em OUT coloca-se 0.

Exemplo de Bi_estvel RS no Concept.

BLOCO DE FUNO CONTADOR

O bloco de funo CONTADOR pode ser do tipo CTU, CTD ou CTUD. Como a linguagem Lista de Instruo IL uma linguagem descritiva (texto), ela necessita da configurao de diversas variveis que so:

70

Programao em Linguagem de Lista de Instruo


Entrada de Pulso gerado pela ocorrncia de um evento. Entrada de Comando para zerar o valor contado - Reset Registro (posio de memria), em que se aloca o valor de contagem e que ao ser atingido ir Ligar ou Desligar uma varivel de sada. Registro (posio de memria) que indica qual a varivel de sada que ser comandada (Ligada ou Desligada). Registro (posio de memria) onde ser escrito, pelo sistema, o nmero da contagem realizada.

Observe, a seguir, um exemplo de bloco contador do software Concept Schneider usado neste curso:

A Programao do Bloco de Funo CONTADOR, feita em trs etapas: a) Declarao de variveis b) Chamada da funo c) Nomeao das sadas

No software simulador Concept esta programao feita da seguinte maneira:

1. Declarao das variveis que sero utilizadas, no menu proyetos . Para isso preciso acessar declaracion de variables e declarar as variveis.

71

Programao em Linguagem de Lista de Instruo


2. Declarao Declaracin da funo Contador que se encontra na biblioteca IEC. Nesta declarao, a funo nomeada de forma particular e definida pelo programador. Cria-se, ento, a lista de variveis ou funes que iro ser utilizadas na aplicao.

(* Declaracin *) VAR Inicio da lista de variveis ou funes

Nombre de instancia : CTU;

Nome particular da funo CTU da biblioteca IEC.

END_VAR

Fim da lista de variveis ou funes

3. Faz-se a Chamada (Llamado ) da funo Contador na biblioteca IEC. Coloca-se, ento um rtulo, e a funo transformada em uma sub-rotina (pequeno programa dentro de um outro maior). Ser a partir deste rtulo que a funo ser chamada em qualquer ponto do programa.

(* Llamado *) CAL Nombre de instancia (CU := , (* BOOL *) R := , (* BOOL *) PV := (* INT *)) Chamada da funo com um determinado nome particular.

A indicao (*BOOL*) informa que o operando o responsvel em fornecer os pulsos a serem contatados e o responsvel em zerar o contador que do tipo booleano.

A indicao (*INT*) informa que a varivel responsvel em fornecer o valor a ser contado PV (Valor Prvio); ele do tipo inteiro e serve para indicar os valores em sistema decimal. Os valores podem ser precedidos por (+/-)

72

Programao em Linguagem de Lista de Instruo


Exemplo: -12, 0, 123_456, +986

4. Nomeao das sadas Asignar salidas . Nesta etapa so selecionadas as variveis ou operandos que sero lidos e onde sero armazenados para utilizao na lgica ou visualizao.

(* Asignar salidas *) LD Nombre de instancia.Q A sada Q de uma funo particular ser carregada no acumulador

ST (* BOOL *)

A sada Q ser armazenada em uma varivel do tipo booleana

LD Nombre de instancia.CV

A sada CV (valor corrente), ser carregada no acumulador.

ST (* INT *)

O valor da sada CV (valor corrente), ser

armazenado em uma varivel tipo inteira descrita anteriormente.

Exemplo:

73

Programao em Linguagem de Lista de Instruo

Funcionamento:

A funo CONTADOR UP foi nomeada de conta1. A entrada liga1 responsvel por fornecer os pulsos a serem contados pelo contador conta1. A entrada reseta responsvel por zerar o contador. O valor prvio PV (valor a ser contado) 10. A sada do contador conta1 liga o estado de sada sada quando o valor contado for igual ao valor de PV no caso 10. O valor corrente CV da contagem carregado na varivel CV1;

BLOCO DE FUNO TEMPORIZADOR

O bloco de funo TEMPORIZADOR na linguagem IL, assim como nas linguagens Ladder e FDB, pode ser do tipo Ton, Toff e TP .

Como a linguagem Lista de Instruo uma linguagem descritiva (texto), ela necessita da configurao de diversas variveis, que so: Entrada de comando para iniciar a contagem do tempo.

74

Programao em Linguagem de Lista de Instruo


Registro (posio de memria) onde se aloca o valor do tempo que, ao ser atingido, ir Ligar ou Desligar uma varivel de sada. Registro (posio de memria) que indica qual a varivel de sada que ser comandada (Ligada ou Desligada). Registro (posio de memria) onde ser escrito, pelo sistema, o tempo decorrido.

Observe, a seguir, um exemplo de bloco temporizador do software Concept Schneider usado neste curso:

A Programao do Bloco de Funo CONTADOR feita em trs etapas que so: a) Declarao de variveis b) Chamada da funo c) Nomeao das sadas

No software simulador Concept, esta programao feita da seguinte maneira:

1. Declarao das variveis que sero utilizadas, acessando Proyetos no menu. Em seguida acessar Declaracion de Variables e declarar as variveis que sero utilizadas.

2 . Declarao Declaracin da funo Contador que est na biblioteca IEC. Na declarao, a funo nomeada, definida de forma particular pelo programador. Nesta etapa criada a lista de variveis ou funes utilizadas na aplicao.

75

Programao em Linguagem de Lista de Instruo

(* Declaracin *) VAR => Inicio da lista de variveis ou funes.

Nombre de instancia : TON; => Nome particular da funo TON da biblioteca IEC. END_VAR => Fim da lista de variveis ou funes

3. Chamada Llamado da funo TEMPORIZADOR presente na biblioteca IEC. Aqui colocado um rtulo e a funo transforma-se em uma sub-rotina ( que um pequeno programa dentro de um outro maior). A partir do rtulo a funo chamada em qualquer ponto de um programa.

(* Llamado *) CAL Nombre de instancia (IN := , (* BOOL *) PT := , (*TIME*)) Chamada da funo com um determinado nome particular.

O comentrio (*BOOL*) informa que o operando responsvel pelo pulso de inicializao de temporizao na entrada IN do tipo booleano.

O comentrio (*TIME*) informa que a varivel responsvel em fornecer o valor da temporizao PT (Tempo Prvio) do tipo TIME e as unidades permitidas so dias (D), horas (H), minutos (M), segundos (S) e milisegundos (MS) ou a combinao destas. A durao deve ser identificada com o prefixo t#, T#, time# ou TIME# . Observe o exemplo a seguir.

t#14MS, T#14.7S, time#18M, TIME#19.9H, t#20.4D, T#25H15M, time#5D14H12M18S3.5MS

76
4. Nomeao das sadas Asignar salidas . As variveis ou operandos so selecionados, sero lidos e armazenados para utilizao na lgica ou visualizao.

Programao em Linguagem de Lista de Instruo

(* Asignar salidas *) LD Nombre de instancia.Q A sada Q de uma funo particular carregada acumulador. no

ST (* BOOL *)

A sada Q ser armazenada em uma varivel do tipo booleana

LD Nombre de instancia.ET

A sada ET (tempo decorrido), ser carregada no acumulador.

ST (* TIME*)

O valor da sada ET , ser armazenado em uma varivel tipo TIME, descrita anteriormente.

Exemplo:

Funcionamento:

A funo TEMPORIZADOR TON foi nomeada de tempo1. A entrada liga responsvel em fornecer o sinal para inicializao da temporizao do temporizador tempo1.

77

Programao em Linguagem de Lista de Instruo


O valor prvio PT (valor a ser temporizado) 10.0 segundos. A sada do temporizador tempo1 liga o estado de sada sada1. O valor do tempo decorrido ET ser carregado na varivel efetivo.

78

PROGRAMAO EM LINGUAGEM DE LISTA DE INSTRUO Texto complementar

Introduo

A linguagem de programao Lista de Instruo (IL) se assemelha Assembler e, como ela, uma linguagem textual. O fato de ser textual a torna mais fcil de ser implementada do que as linguagens grficas (Ladder e FBD); no entanto, em relao a estas, ela mais difcil de ser compreendida.

Essa dificuldade pode ser superada elaborando-se o programa IL a partir da linguagem Ladder. Isto : programa-se em Ladder e depois converte-se para IL. Por exemplo:

Q:001/01

I:000/00

I:000/01

I:000/02
Em Ladder

I:000/03

L-se,

O:001/00 = I:000/00 AND (I:000/01 OR I:000/02 AND NOT I:000/03)

Em IL
Marca Operador Operando Comentrio

START:

LD AND( OR( ANDN ) ) ST

I:000/00 I:000/01 I:000/02 I:000/03

(* Carrega entrada 00*) (* Inicia um ramo e carrega entrada 01*) (* Carrega entrada 02*) (* Carrega entrada 03 e inverte*)

79 %Q:001/00 (* Seta a sada 00*)

Como pode-se observar na tabela anterior, a linguagem IL consiste de uma sequncia de instrues (linhas escritas) em que (no mnimo) um operador acompanhado de um operando. O operador, que pode ser complementado por um modificador e com isso ter seu significado alterado, pode tambm ser precedido por uma marca (rtulo de identificao) seguida de dois ponto :. Opcionalmente, cada operando pode ser seguido por um comentrio.

Para programar em IL, deve-se considerar alguns detalhes: uma marca sempre comea com uma letra e escrita com letras e dgitos; termina sempre com dois pontos; os operadores devem ser sempre escritos com maisculas; os modificadores so N (indica negao), C (indica condio) e ( indicando operao suspensa, ou seja, a parte entre os parnteses deve ser avaliada; os operandos podem ser valores booleanos, integrais ou nominais; as marcas e nomes de variveis podem ser escritos em maisculas ou minsculas; os comentrios podem aparecer no incio da instruo com um (* e terminar com um *) e no conter linhas.

No incio da sequncia, num grupo de instrues, uma varivel carregada na memria; as instrues seguintes usam essa varivel ou a modificam. A ordem de execuo do programa de cima para baixo e pode ser alterada por meio de saltos.

Escrever um programa em linguagem IL significa considerar os elementos que a compem. Esses elementos esto na tabela apresentada a seguir.

Operador LD ST S

Modificador N N

Operando qualquer um qualquer um BOOL

Semntica Carrega o operador no registro atual Armazena o registro atual no operando Seta o operando em Verdadeiro se o registro atual for 1

80

BOOL

Reseta o operando para Falso se o registro

atual for 1 AND & OR XOR ADD SUB MUL DIV GT GE EQ NE LE LT JMP CAL RET ) N,( N,( N,( N,( ( ( ( ( ( ( ( ( ( ( N,C N,C N,C BOOL BOOL BOOL BOOL qualquer um qualquer um qualquer um qualquer um qualquer um qualquer um qualquer um qualquer um qualquer um qualquer um LABEL NAME AND lgico AND lgico (equivale ao operador AND) OR lgico OR lgico exclusivo Adio Subtrao Multiplicao Diviso Comparao maior do que Comparao maior ou igual Comparao igual Comparao diferente Comparao menor ou igual Comparao menor do que Salta para a Marca Chama bloco de funo Retorna do bloco de funo Executa o ltimo operador

81

Programao em Linguagem de Diagrama de Blocos Funcionais

INTRODUO
A Linguagem em FBD Function Block Diagram, definida pela Norma Internacional (Internacional Eletrotechnical Commission - IEC 1131-3), classificada como uma linguagem grfica, pois utiliza a representao de funes por meio de figuras geomtricas. Como pode ser observado a seguir, essas figuras so conectadas entre si, formando fluxos de sinais e, por isso, essa linguagem chamada Diagrama de Blocos Funcionais (Figura 1).

uma linguagem constituida por uma simbologia grfica semelhante aos esquemas eletrnicos.

Essa notao dentro do bloco indica a funo lgica OR (que em portugus significa a funo alternativa = ou)

manual_fechar

>=1

porta_fechar

temp
60

>

Figura 1. Exemplo da linguagem FBD.

A linguagem de programao FBD permite a anlise do encadeamento das funes atravs de blocos, no exigindo uma anlise da lgica interna dos mesmos. A FBD, usada em 80% dos CLPs, foi elaborada para atender a competncia j existente de profissionais que

82

Programao em Linguagem de Diagrama de Blocos Funcionais

trabalhavam com projetos e anlise de circuitos lgicos digitais e que passaram a trabalhar com CLPs, por isso sua representao grfica semelhante s utilizadas em lgica digital.

Assim, os blocos utilizados nesta linguagem de programao so conectados entre si e formando uma rede, cujo sentido da esquerda para a direita. Esses blocos so elementos que processam uma determinada lgica interna que define sua funcionalidade. Se, um programa for composto por vrias redes de ligao, essas sero processadas em sequncia, de cima para baixo. A complexidade da lgica interna depende da funo realizada atravs da utilizao de algoritmos: bsica, derivada ou especial.

Uma caracterstica importante desta linguagem o fato de um determinado bloco possuir internamente uma lgica particular, que denominada DFB (Derivactive Function Block, em portugus, Bloco de Funo Derivada) e que no precisa ser escrita necessariamente em FBD.

SISTEMA DE NOTAO
O sistema de representao ou designao da linguagem FBD a que se apresenta a seguir.

83

Programao em Linguagem de Diagrama de Blocos Funcionais

Figura 2. Sistema de notao da linguagem de programao FBD

Pela Figura 2, pode se observar que um bloco funcional descreve uma funo entre variveis de entrada (Parmetros de entrada) e uma ou mais variveis de sada (Parmetro de sada). A porta lgica mostrada na figura 2, tem o seguinte funcionamento: por se tratar de uma porta lgica E , a sada %000017 somente ser verdadeira, ou seja, nvel lgico 1 quando ambas entradas - Lamp Test1 e Lamp Test2 - estiverem verdadeiras, isto , em nvel lgico 1 ao mesmo tempo.

Em resumo, a FDB graficamente representada por um conjunto de blocos funcionais que realizam diferentes funes; esses blocos so retngulos com pontos de conexo de entrada e um ou mais pontos de conexo de sada, em que a funo desempenhada pelo bloco est indicada dentro do retngulo.

As variveis de entrada e de sada so conectadas aos blocos funcionais por linhas de conexo. As variveis entradas so indicadas do lado esquerdo do bloco e as de sada ficam do lado direito do bloco de funo.

84

Programao em Linguagem de Diagrama de Blocos Funcionais

INSTRUO LGICA DE BIT


O bit de instruo tem dois estados lgicos, 1 e 0. Estes dois estados so a base do sistema lgico, chamado de sistema binrio. Os dgitos 1 e 0 so chamados de dgitos binrios, ou de dgitos bin ou, simplesmente, bits.

As instrues lgicas interpretam o sinal dos estados 1 e 0 e a combinao entre eles est de acordo com a lgica de boole (booleana). As combinaes produzem um resultado de 1 ou 0 chamado de resultado lgico de operao (RLO).

FUNES LGICAS BSICAS


A lgebra booleana lida apenas com dados ou sinais na forma binria, por meio das funes lgicas, sendo as bsicas: OR, AND e NOT.

OPERAO LGICA OR

O bloco pode trazer internamente as indicaes: ( > = 1), (OR_BOOL) ou ainda ( / ). Simbolicamente podem ser representados da seguinte maneira:

endereo endereo

>=1

.1.2(1) Entrada A OR_BOOL Sada

85

Entrada B

Programao em Linguagem de Diagrama de Blocos Funcionais

Descrio

A funo OR assume, na sada do bloco, o valor 1 se pelo menos uma de suas variveis de entrada possuir valor 1, ou seja, nessa funo tem-se uma sada verdadeira se pelo menos uma entrada for verdadeira.

Em outras palavras, a instruo OR, permite verificar o estado do sinal de 2 ou mais endereos especficos de entrada na caixa OR.

Se o endereo do estado de um dos sinais for 1, a condio satisfeita e o resultado da instruo 1.

Se o estado do sinal de todos os endereos 0, a condio no satisfeita e o resultado da instruo 0.

Se a instruo OR for a primeira instruo dentro da string (grupo ou seqncia de caracteres) de operao lgica, o resultado salvo e verificado o estado do sinal no bit RLO.

Cada instruo OR, que no seja a 1 instruo na string de operao lgica combinada com o resultado do estado de sinal que verifica o valor armazenado no RLO (Result of Logic Operation) bit.

Esses valores so combinados de acordo com a tabela da verdade do bloco OR. A combinao destes valores feita de acordo com a tabela verdade do bloco OR, ou seja:

Entrada A Entrada B

Sada

86

Programao em Linguagem de Diagrama de Blocos Funcionais

0 1 1

1 0 1

1 1 1

Observe o exemplo a seguir:

Se as entradas 10.0 OR 10.1 estiverem em nvel lgico 1, a sada Q 4.0 ser setada, ou seja, ser colocada em nvel lgico 1. Este bloco tem funcionamento semelhante ao sistema de comando da luz de segurana do automvel, considerado que as entradas 10.0 e 10.1 so os sensores instalados na porta do veculo e a sada Q 4.0 a lmpada interna do mesmo. Caso a entrada 10.0 seja 0, isto , caso a porta direita esteja fechada ou a entrada 10.1 seja 1 - se a porta esquerda estiver aberta a sada ser 1 - a luz interna acender.

Note que a sada Q 4.0 representada sobre um retngulo que, na verdade, simboliza uma instruo de bit, denominada assign e tem as seguintes caractersticas:

Smbolo
endereo

= Descrio

87

Programao em Linguagem de Diagrama de Blocos Funcionais

A instruo Assign gera o resultado de operao lgica. A caixa de operao lgica final tem o sinal 1 ou 0 de acordo com os seguintes critrios:

A sada tem o sinal 1 quando as condies de operaes lgicas antes da caixa de sada forem satisfeitas. A sada tem o sinal 0 quando as condies das operaes lgicas antes da caixa de sada no forem satisfeitas.

A operao lgica anterior instruo assign marca o estado de sinal para a sada que endereada pela instruo. Se as condies de operao lgica anterior instruo forem satisfeitas, o estado de sinal da sada da caixa ser 1. Caso contrario, o estado de sinal 0.

OPERAO LGICA AND

Na operao lgica AND, o bloco pode trazer internamente as indicaes: (&) ou (AND_BOOL).

Smbolo

Descrio

Com a instruo AND possvel verificar o estado do sinal de dois ou mais endereos especificados na caixa AND. Acompanhe, a seguir, como isso pode ser feito.

88

Programao em Linguagem de Diagrama de Blocos Funcionais

Se todos os estados dos sinais das entradas forem 1, a condio satisfeita e a condio produz o resultado 1 na sada.

Se o endereo do estado de um dos sinais for 0, a condio no satisfeita e o resultado da instruo 0 e o sinal de sada 0.

Em outras palavras, uma sada assume o valor 1 se todas as variveis de entrada tiverem valor 1; a sada assume o valor 0 para qualquer outra combinao de valores das variveis de entrada. Em resumo, a sada ser verdadeira (ter valor 1) se todas as variveis de entrada tambm forem verdadeiras.

Se a instruo AND for a primeira instruo dentro da string de operao lgica, o resultado salvo e verificado o estado do sinal no bit RLO.

Se as instrues AND no so as primeiras instrues dentro da string lgica de operao, o resultado das mesmas so combinados de acordo com o resultado do estado de sinal verificado com o valor armazenado no RLO bit.

A combinao destes valores feita de acordo com a tabela verdade do bloco AND, ou seja:

Entrada A Entrada B

Sada

0 0 1 1

0 1 0 1

0 0 0 1

89

Programao em Linguagem de Diagrama de Blocos Funcionais

Exemplo

A sada Q 4.0 setada quando o estado de sinal 1 nas entradas 10.0 AND 10.1. Este bloco tem funcionamento semelhante ao sistema de segurana de movimentao de nibus, considerado que as entradas 10.0 e 10.1 so sensores instalados na porta do veculo e a sada Q 4.0 a bobina de um rel que impede o movimento do nibus com porta aberta. Caso qualquer uma destas estiver aberta ou seja, caso o sensor esteja desativado - em nvel lgico 0 , falso - o rel ser ligado, impedindo o movimento do nibus.

INSTRUO AND ANTES DE OPERAO LGICA OR.

Descrio

Com esta instruo, consegue-se checar o resultado do estado de sinal de acordo com a tabela verdade do bloco OR.

Quando a instruo AND se encontra antes da da operao lgica OR, o estado de sinal 1 se, pelo menos, uma operao lgica AND for satisfeita.

90

Programao em Linguagem de Diagrama de Blocos Funcionais

Exemplo

O estado de sinal 1 na sada Q3.1 se pelo menos uma operao lgica AND satisfeita. O estado de sinal 0 na sada Q3.1 se qualquer uma das operaes lgicas AND no for satisfeita.

INSTRUO OR ANTES DE OPERAO LGICA AND.

Descrio

Com essa instruo, possvel checar o resultado do estado de sinal de acordo com a tabela da verdade do bloco AND.

Com a operao lgica OR antes de Operao Lgica AND, o estado de sinal 1 se pelo menos uma operao lgica OR for satisfeita.

Exemplo

91

Programao em Linguagem de Diagrama de Blocos Funcionais

O estado de sinal 1 na sada Q3.1 quando ambas operaes lgicas OR so satisfeitas. O estado de sinal 0 na sada Q3.1 quando pelo menos uma das operaes lgicas OR no so satisfeitas.

OPERAO LGICA OR EXCLUSIVO - XOR A funo lgica XOR fornece uma sada verdadeira somente quando as duas entradas apresentam a condio lgica oposta. Analogamente, uma porta lgica XOR, fornece um nvel lgico 1 quando uma entrada estiver em nvel lgico 1 e a outra em nvel Lgico0 em qualquer ordem. O bloco pode trazer internamente as indicaes (XOR) ou (XOR_BOOL).

Smbolo

Descrio

A instruo OR Exclusivo permite verificar o resultado do estado de sinal de acordo com a tabela verdade do bloco OR Exclusivo, ou seja:

92

Programao em Linguagem de Diagrama de Blocos Funcionais

Entrada A Entrada B

Sada

0 0 1 1

0 1 0 1

0 1 1 0

Com uma Operao Lgica OR Exclusivo o estado do sinal da sada 1 quando o estado de sinal somente de uma das entradas 1.Pode-se usar a funo OR Exclusivo em diversas vezes. O resultado comum da operao lgica ser 1 se somente uma das entradas for 1.

Exemplo

O estado do sinal 1 na sada Q3.1 quando o estado de sinal for 1 somente em uma das entradas 10.0 ou 10.2.

Este bloco tem funcionamento semelhante ao sistema de controle de altura de uma embalagem, em que dois sensores que so acionados dependendo de sua altura considerando a entrada 10.0, o sensor de altura mnima (S1), a entrada 10.2, o sensor de altura mxima (S2) e a sada Q 43.1 (Sada), indicam a altura da embalagem.

93

Programao em Linguagem de Diagrama de Blocos Funcionais

Situao 1- Estando os dois sensores S1 e S2 desacionados - portanto em nvel lgico 0 a sada ser falsa ou 0, indicando que a embalagem possui altura abaixo do limite desejado.

Situao 2 Estando o sensor S1 acionado (nvel lgico 1) e o sensor S2 desacionado (nvel lgico 0), a sada ser verdadeira (Nvel lgico 1), indicando que a altura da embalagem est dentro dos limites esperados.

Situao 3 Estando os sensores S1 e S2 acionados (nvel lgico 1), a sada ser falsa (nvel Lgico 0), indicando que a altura da embalagem est acima do limite esperado.

A figura seguinte ilustra o funcionamento do sistema:

ENTRADAS / SADA BINARIAS NEGADAS

94

Programao em Linguagem de Diagrama de Blocos Funcionais

Smbolo

Descrio

A entrada/sada binria negada inverte o resultado RLO (Result of Logic Operation), resultado da operao lgica e a mesma pode ser utilizada tanto na entrada de uma funo lgica como numa sada.

Exemplo 1

A sada Q 4.0 ser 1, quando a entrada I 1.0 estiver em 0 e a entrada I1.1 estiver em 1 simultaneamente.

Exemplo 2

A sada Q 4.1 ser 1 sempre que a entrada I1.2 estiver em 0 ou a entrada I1.3 estiver em 1.

Exemplo 3

A sada Q 4.2 ser 1 somente quando as entradas I1.4 e !1.5 estiverem em 0 simultaneamente.

INSTRUO LGICA INVERSORA

Inverte o valor da varivel de entrada, por isso chamada de inversora, sendo que o bloco pode trazer internamente as indicaes: (NOT_BOOL) ou (N)

95

Programao em Linguagem de Diagrama de Blocos Funcionais

Smbolo

Descrio

Quando a varivel Entrada for nvel lgico 1, a varivel Sada ser nvel lgico 0 e se ocorrer o contrrio a sada ser nvel lgico 1.

Este bloco tem funcionamento semelhante ao sistema de comando de luz noturna, que deve ligar a lmpada para iluminao do ambiente sempre estiver escuro, ou seja, sempre que o sensor de luz detectar a ausncia de luz (escuro) - nvel lgico 0 - a lmpada de iluminao ser ligada -, nvel lgico 1; quando detectar presena - nvel lgico 1 (claridade), a lmpada de iluminao ser desligada - nvel lgico 0.

FUNES ESPECIAIS
As Instrues especiais - em outras linguagens Biestveis, Temporizador e Contador apresentam o mesmo funcionamento, porm, com o endereo dos estados pertencentes lgica, como pode ser observado, a seguir.

BIESTVEL SR E RS

Os biestveis so os circuitos seqenciais mais elementares e possuem a capacidade de armazenar a informao neles contida. Representam a unidade elementar de memria, ou seja, funcionam como um elemento de memria por armazenar nveis lgicos temporariamente. So chamados de biestveis porque possuem dois estados lgicos estveis, geralmente representados

96

Programao em Linguagem de Diagrama de Blocos Funcionais

por 0 e 1.

Smbolo
endereo
RS

endereo
SR

R S

S R

No exemplo a seguir tem-se um bi-estvel SR, Nesse exemplo, a sada %000001, ser verdadeira (nvel lgico 1), quando a entrada %100001 for verdadeira (nvel lgico 1); a sada %000001 ser falsa (nvel lgico 0) quando a entrada %100001 for falsa (nvel lgico 0) e a entrada %100002 for verdadeira (nvel lgico 1). Estando a sada %000001 verdadeira (nvel lgico 1) e a entrada %100001 verdadeira (nvel lgico 1), a entrada %100002 no ter efeito na condio de funcionamento da sada, ou seja, no a desligar, pois est em nvel lgico 0 (ou seja, falsa), caracterizando, assim, a prioridade do comando S sobre o comando R

No exemplo a seguir, tem-se um bi-estvel RS. Neste exemplo, sendo a sada %000002 verdadeira (nvel lgico 1) quando a entrada %100003 for verdadeira (nvel lgico 1); a sada %000002 ser falsa (nvel lgico 0), quando a entrada %100003 for falsa (nvel lgico 0) e a entrada %100004 for verdadeira (nvel lgico 1). Estando a sada %000004 verdadeira (nvel lgico 1) e a entrada %100003 verdadeira (nvel lgico 1), a entrada %100003 no ter efeito na condio de funcionamento da sada, ou seja, no a ligar, verdadeira (nvel lgico 1) caracterizando assim a prioridade do comando R sobre o comando S

97

Programao em Linguagem de Diagrama de Blocos Funcionais

TEMPORIZADOR TON e TOF

O temporizador, cronmetro do CLP, determina a durao dos eventos e realiza duas operaes: contar o tempo a partir de uma entrada e ativar a sada associada a ela

Exemplos Temporizador TON:

Funcionamento: Estando a varivel Entrada A em nvel lgico 1, ser cronometrado o tempo especificado em PT no caso 1m30s, aps este tempo a varivel Sada ser levada a nvel lgico 1, verdadeira. O registro Elapsed presente em CV tem a funo de mostrar o tempo sendo cronometrado. Note que o funcionamento do temporizador o mesmo do temporizador visto na programao em linguagem Ladder

Temporizador TOF:

98

Programao em Linguagem de Diagrama de Blocos Funcionais

Funcionamento: Estando a varivel Entrada A em nvel lgico 1, a varivel sada ser levada ao nvel lgico 1(verdadeira), quando a varivel Entrada estiver em nvel lgico 0, ser cronometrado o tempo especificado em PT - no caso 1m30s. Aps este tempo, a varivel Sada ser levada a nvel lgico 0, verdadeira. O registro Elapsed presente em CV tem a funo de mostrar o tempo sendo cronometrado. Note que o funcionamento do temporizador o mesmo do temporizador visto na programao em linguagem Ladder

CONTADOR CRESCENTE E DECRESCENTE - CTU E CTD

O contador usado para controlar o nmero de vezes em que um determinado evento ocorre, executando para isso incrementos ou decrementos de um valor previamente carregado no mesmo. Assim como escrita automtica em uma determinada posio de memria do nmero de eventos contados, esta contagem pode ser interrompida ou zerada atravs de uma lgica. Dependendo do tipo de contador, este classificado como contador crescente UP ou decrescente down.

Exemplo de um contador Crescente

99

Programao em Linguagem de Diagrama de Blocos Funcionais

Funcionamento A cada acionamento da varivel de entrada Evento_A, o valor de varivel Eventos_A_Ocorridos ser acrescido de uma unidade; quando este valor for igual ao valor definido na entrada PV do contador - no caso 15, a varivel de sada Sada_Evento_A ser ligada. Ocorrendo o acionamento da varivel de entrada Zera_Contagem_Evento_A, o valor armazenado em Eventos_A_Ocorridos ser zerado. Exemplo de um contador Decrescente

Funcionamento

Inicialmente o sistema carrega o valor definido na entrada PV do contador; em CV do contador - Eventos_B_Contados - no caso 15, a cada acionamento da varivel de entrada - Evento_B - o valor de varivel - Eventos_B_Contados - ser diminudo de uma unidade e quando este valor for igual a zero, a varivel de sada - Sada_Evento_B - ser ligada. Ocorrendo o acionamento da varivel de entrada - Zera_Contagem_Evento_B, o valor armazenado em Eventos_B_Contados ser atualizado com o valor especificado em PV.

A linguagem FBD, por ser uma linguagem grfica, no permite alguns arranjos na mesma lgica entre as conexes de estados de sada com uma entrada de um bloco anterior. A seguir, apresentado um exemplo desta condio.

ENTRADA DE CONTROLE DE TEMPORIZADORES E CONTADORES EN/ENO:

100

Programao em Linguagem de Diagrama de Blocos Funcionais

A norma IEC 6 1131-3 determina que as funes de Temporizao e Contagem devem ter um terminal de controle de seu funcionamento; este controle feito por uma linha de comando composta por uma entrada e uma sada, ambas booleanas denominadas EN/ENO do ingls Enable.

Quando este recurso no est selecionado, o Temporizador tem seu funcionamento normal, como visto anteriormente.

Controle EN/ENO desabilitada.

Controle EN/ENO habilitada

No exemplo acima, este recurso est selecionado o funcionamento do temporizador. Isto de pende das condies da entrada EN (varivel TEMP1_EN), pois se a mesma estiver em nvel lgico 1 (verdadeira), a sada ENO tambm ser colocada em 1, indicando a habilitao do temporizador e permitindo o funcionamento normal do mesmo. Caso contrrio, se a varivel TEMP1_EN estiver em nvel lgico 0 (falso), a sada ENO ser colocada em nvel lgico 0 e nesta situao, mesmo que as condies de funcionamento do temporizador estejam satisfeitas o mesmo no ser executado.

101

Programao em Linguagem de Diagrama de Blocos Funcionais

A varivel conectada na entrada EN tambm pode ser uma varivel de sistema. Assim, se a varivel for verdadeira na ocorrncia de uma determinada situao, um exemplo disso pode ser um erro na execuo de algum algoritmo utilizado no programa.

REALIMENTAO NO PERMITIDA

A realimentao atravs de conexo no permitida, pois este tipo de conexo pode causar um fluxo indeterminado, entrando em um ciclo de processamento repetitivo, normalmente chamado de loop fechado, no saindo deste trecho do processamento.

Exemplo

Resoluo Atravs De Um Parmetro Atual Uma lgica deste tipo resolvida atravs de parmetros atuais para que se determine, sem erros, o fluxo de dados.

Alternativa1

102

Programao em Linguagem de Diagrama de Blocos Funcionais

Alternativa 2

Alternativa atravs de vrios parmetros atuais.

SALTOS NA EXECUO DE UM PROGRAMA.

A linguagem FBD permite executar uma lgica com incio e fim, na mesma seqncia. Permite, ainda, redirecionar o processamento para uma outra parte do programa atravs de Saltos (Jump ) e Rtulos (Lable ) que marca a instruo de destino. A instruo de destino se localiza acima ou abaixo da instruo de Salto. O Rtulo (Label) dever ser sempre o primeiro elemento de uma linha. O Rtulo dever impedir a ocorrncia de erro, em todo o projeto/DFB; importante considerar que esta instruo no faz distino entre letras maisculas ou minsculas. O Rtulo deve ter no mximo 32 caracteres; estes devem ser separados das demais instrues com dois pontos :.

103

Programao em Linguagem de Diagrama de Blocos Funcionais

Exemplo

Funcionamento: O bloco OR_BOOL 2.3(2) somente ser processado quando a sada ventilao especificada como salto (JUMP) for verdadeira.

FUNES E MDULOS DE FUNES (FFBs)

FFB um termo genrico que inclui:


EFB (Funo e Modulo de Funo Bsica); DFB (Mdulo de Funo Derivado); UDEFB (Funo Elementar Definida pelo Usurio / Mdulo de Funo Elementar Definida pelo Usurio).

EFB FUNO ELEMENTAR / (MDULO DE FUNO ELEMENTAR)

104

Programao em Linguagem de Diagrama de Blocos Funcionais

A programao em FBD permite criar um bloco especfico quando ele no formulado diretamente na biblioteca IEC. So denominados de EFB Funo /Mdulo de Funo e todo o corpo das definies no podem ser modificadas em um editor de DFBs, pois os EFBs so escritos em linguagem C.

Exemplo de uma funo EFB

105

Programao em Linguagem de Diagrama de Blocos Funcionais

DFB - MDULO DE FUNO DERIVADO

A linguagem FBD permite combinaes de blocos para realizar uma determinada lgica ou funo; essas combinaes so chamadas de DFB (Mdulo de Funo Derivado) e normalmente so utilizadas para hierarquizar um programa.

Os DFBs so considerados sub-rotinas com a caracterstica de transferncia ou aceitao de valores definidos de uma para outra sub-rotina. Pode haver vrias chamadas DFB do programa completo, que se constitui um arranjo de diversos EFBs em um nico DFB. Um DFB identificado por linhas verticais duplas nas laterais do bloco.

Os DFBs podem ser construdos utilizando as linguagens de programao Ladder LD, lista de instruo IL e texto estruturado ST.

Construo de um DFB Um DFB representa um bloco vazio com entradas/sadas definidas e lgica programada. A construo hierrquica desta lgica corresponde a um determinado projeto que composto por uma ou vrias sees. As sees contm a lgica verdadeira.

106

Programao em Linguagem de Diagrama de Blocos Funcionais

Exemplo de um DFB composto por um arranjo de EFBs

Estrutura interna do exemplo de DFB dado

107

Programao em Linguagem de Diagrama de Blocos Funcionais

UDEFB (Funo Elementar Definida pelo usurio / Mdulo de Funo elementar definida pelo usurio). UDEFB um termo genrico que inclui:

Funo bsica definida pelo usurio. Mdulo de funo bsica definida pelo usurio.

108

Programao em Linguagem de Diagrama de Blocos Funcionais

UDEFBs so funes e mdulos de funes que so programadas em um programador de EFBs em linguagem C++, com possibilidade de alterao pelo usurio que domine esta linguagem. No existe diferena funcional entre UDEFB e EFB.

109

You might also like