Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DE MINAS GERAIS ESCOLA DE ENGENHARIA DEPARTAMENTO DE ENGENHARIA MECÂNICA PROJETO DE SISTEMAS SEQÜENCIAIS DE AUTOMAÇÃO UTILIZANDO CLPS DR. EDUARDO JOSÉ LIMA II Belo Horizonte, Janeiro de 2007 1 Sumário 1. INTRODUÇÃO ................................................................................................................................................. 5 2. SISTEMAS DE AUTOMAÇÃO ...................................................................................................................... 6 2.1 - TIPOS DE AUTOMAÇÃO .................................................................................................................................... 6 2.2 - SISTEMAS SEQÜENCIAIS DE AUTOMAÇÃO ...................................................................................................... 7 2.3 - COMANDOS ELÉTRICOS BÁSICOS ................................................................................................................... 8 2.3.1 - Elementos de entrada de sinais ..................................................................................................... 8 2.3.2 - Elementos de processamento de sinais ...................................................................................... 9 2.3.3 - Elementos de saída de sinais ....................................................................................................... 12 2.4 - CIRCUITOS SEQÜENCIAIS ELETROPNEUMÁTICOS ......................................................................................... 17 2.5 - EXERCÍCIOS ................................................................................................................................................... 18 3. CONTROLADORES LÓGICOS PROGRAMÁVEIS................................................................................. 21 3.1 - ESTRUTURA ................................................................................................................................................... 21 3.2 - EXECUÇÃO .................................................................................................................................................... 22 3.3 - LINGUAGENS DE PROGRAMAÇÃO................................................................................................................. 24 3.3.1 - Ladder ................................................................................................................................................. 25 3.3.2 - SFC....................................................................................................................................................... 34 3.4 - EXERCÍCIOS ................................................................................................................................................... 44 4. PROGRAMAÇÃO DE SISTEMAS SEQÜENCIAIS EM CLPS................................................................ 46 4.1 - AUTOMAÇÃO PNEUMÁTICA UTILIZANDO LADDER......................................................................................... 46 4.2 - AUTOMAÇÃO PNEUMÁTICA UTILIZANDO SFC .............................................................................................. 48 4.3 - EXERCÍCIOS ................................................................................................................................................... 53 5. CONVERSÃO DE PROGRAMAS EM SFC PARA LADDER .................................................................. 55 5.1 - REPRESENTAÇÃO DOS PASSOS .................................................................................................................... 55 5.2 - REPRESENTAÇÃO DAS TRANSIÇÕES ............................................................................................................ 62 5.3 - ORGANIZAÇÃO DO PROGRAMA ..................................................................................................................... 64 5.4 - EXERCÍCIOS ................................................................................................................................................... 69 REFERÊNCIAS BIBLIOGRÁFICAS .................................................................................................................... 71 2 Lista de Figuras Figura 2.1 – Elemento de entrada de sinal (botoeira). Fonte: [Parker, 2001]. ...................9 Figura 2.2 – Representação de Sensores. Fonte: [Parker, 2001] ........................................9 Figura 2.3 – Relé auxiliar. .........................................................................................................10 Figura 2.4 – Relé auxiliar com contatos comutadores. ........................................................10 Figura 2.5 – Relé temporizador com retardo na energização.............................................11 Figura 2.6 – Relé temporizador com retardo na desenergização. .....................................11 Figura 2.7 – Relé contador. ......................................................................................................12 Figura 2.8 – Elementos de saída de sinal. .............................................................................12 Figura 3.1 – Ligações de um CLP. ..........................................................................................22 Figura 3.2 – Ciclo de execução de um CLP. .........................................................................23 Figura 3.3 – Representação em diagrama Ladder de contatos NA, NF e bobinas.........25 Figura 3.4 – Exemplo de programa em Ladder.....................................................................25 Figura 3.5 – Analogia entre uma memória e um relé auxiliar. ............................................26 Figura 3.6 – Lógicas E e OU em Ladder. ...............................................................................28 Figura 3.7 – Auto-retenção em linguagem Ladder. ..............................................................28 Figura 3.8 – Bobinas com retenção em linguagem Ladder.................................................29 Figura 3.9 – Equivalência entre programas utilizando bobinas com retenção ................29 Figura 3.10 – Contatos sensíveis à borda..............................................................................30 Figura 3.11 – Temporizador TON. ...........................................................................................31 Figura 3.12 – Temporizador TOFF. .........................................................................................31 Figura 3.13 – Contador CTU. ...................................................................................................32 Figura 3.14 – Contador CTD. ...................................................................................................32 Figura 3.15 – Contador CTUD..................................................................................................33 Figura 3.16 – Ligações entre passos e transições ...............................................................35 Figura 3.17 – Exemplo de SFC. ...............................................................................................36 Figura 3.18 – Divergência e convergência OU......................................................................37 Figura 3.19 – Divergência e convergência E. ........................................................................38 Figura 3.20 – Evolução de um SFC. .......................................................................................39 Figura 3.21 – SFC com conflito (divergência E sem convergência). .................................40 Figura 3.22 – Bloco de ações associado a um passo ..........................................................41Figura 3.23 – Exemplos de ações. ..........................................................................................42 Figura 3.24 – Exemplo de condições lógicas associadas transições................................43 Figura 3.25 – Divisor de freqüência por 2. .............................................................................43 Figura 5.1 – Programação em Ladder de ação com qualificador S...................................56 Figura 5.2 – Programação em Ladder de ação com qualificador R. .................................56 Figura 5.3 – Programação em Ladder de ação com qualificador N. .................................57 Figura 5.4 – Programação em Ladder de uma mesma ação N acionada em dois passos diferentes. ............................................................................................................................57 Figura 5.5 – Execução da ação com qualificador D. ............................................................58 Figura 5.6 – Programação em Ladder de ação com qualificador D. .................................58 Figura 5.7 – Execução da ação com qualificador L. .............................................................58 Figura 5.8 – Programação em Ladder de ação com qualificador L. ..................................59 Figura 5.9 – Programação em Ladder de ação com qualificador P...................................59 Figura 5.10 – Programação em Ladder de ação com qualificador SD..............................60 Figura 5.11 – Programação em Ladder de ação com qualificador DS..............................60 Figura 5.12 – Programação em Ladder de ação com qualificador SL. .............................61 Figura 5.13 – Programação em Ladder de ação com qualificadores P1 e P0.................61 Figura 5.14 – Programação em Ladder de transição disparada por um sinal de entrada do CLP. ................................................................................................................................62 3 Figura 5.15 – Programação em Ladder de transição disparada por um sinal de entrada do CLP. ................................................................................................................................62 Figura 5.16 – Programação em Ladder de transição temporizada. ...................................63 Figura 5.17 – Programação em Ladder de divergência E. ..................................................64 Figura 5.18 – Programação em Ladder de convergência E................................................64 Figura 5.19 – Utilização de bit de memória para evitar que mais de uma transição seja disparada em um mesmo ciclo de varredura.................................................................66 Figura 5.20 – Linha de inicialização do programa. ...............................................................66 4 Lista de Tabelas Tabela 3.1 – Qualificadores de ações.....................................................................................41 5 1. Introdução Essa apostila faz parte do material utilizado na disciplina “Automação Aplicada à Engenharia Mecânica” do Departamento de Engenharia Mecânica da Universidade Federal de Minas Gerais. Inicialmente serão apresentados alguns conceitos fundamentais sobre automação, bem como sobre circuitos de comandos elétricos. Serão mostrados os aspectos fundamentais do funcionamento dos Controladores Lógicos Programáveis (CLPs), necessários ao entendimento dos recursos disponíveis e de suas limitações. Os fundamentos da linguagem Ladder serão apresentados, bem como os diagramas seqüenciais (SFCs). Por ser a linguagem mais comum de programação de CLPs, será apresentada uma metodologia de geração de programas em Ladder a partir de programas feitos em SFCs. Ao final de cada parte da apostila são apresentados exemplos resolvidos e exercícios a serem feitos pelos alunos. 6 2. Sistemas de Automação Automação é o conjunto das técnicas baseadas em máquinas e programas com objetivo de executar tarefas previamente programadas pelo homem e de controlar seqüências de operações sem a intervenção humana. Através de intertravamentos (seqüências de programação) do sistema, o usuário consegue maximizar com qualidade e precisão seu processo produtivo, controlando, assim, variáveis diversas (temperatura, pressão, nível e vazão) e gerenciando à distância toda a cadeia produtiva [Gomes, 2004]. 2.1 - Tipos de automação Pode-se classificar sistemas de automação em três tipos: automação fixa, automação programável e automação flexível. Automação fixa utiliza equipamentos concebidos para a produção de determinado tipo de peça. É utilizada para volumes de produção muito altos. Possui um custo relativamente baixo, porém os equipamentos ficam obsoletos quando há mudanças no tipo de peça produzida, já que são capazes de fabricar apenas determinados produtos. A automação programável é utilizada para volumes mais baixos de produção e com grande variedade de produtos. O funcionamento dos equipamentos pode ser programado para fabricar diferentes tipos de peças. Dessa forma, as peças podem ser fabricadas em lotes, entre os quais os equipamentos devem ser reprogramados. São exemplos de sistemas de automação programável robôs, máquinas CNC etc. Os sistemas flexíveis de manufatura (FMS) se caracterizam por permitir o processamento de produtos com diferentes especificações por meio da troca automática de programas dos equipamentos, bem como da alteração da seqüência de equipamentos e processos a serem utilizados. Dessa forma, tal tipo de sistema pode reunir equipamentos de automação fixa e programável. Toda a produção é integrada por computador, que coordena as tarefas a serem realizadas. 7 2.2 - Sistemas seqüenciais de automação Sistemas de automação são compostos basicamente por um equipamento de controle e pelo sistema controlado. Esses sistemas se comunicam por meio de sinais elétricos. Os comandos são enviados pelo equipamento de controle aos atuadores do sistema controlado, que convertem tais comandos em ações como forças, movimentos, correntes elétricas etc. O estado e as respostas do sistema controlado são medidos por meio de sensores, que convertem as grandezas físicas em sinais elétricos que são enviados ao equipamento de controle. O equipamento de controle deve possuir uma lógica (programável ou fixa) para realizar o comando para o sistema controlado de acordo com os sinais recebidos dos sensores. A lógica de comando pode ser combinacional ou seqüencial. Em sistemas combinacionais, o valor atual dos comandos (saídas - O) depende apenas do valor atual dos sensores (entradas - I): O(k) = f (I(k)). Por exemplo, considerando três sensores S1, S2 e S3, um sistema combinacional poderia ser representado pela equação: 3211 SSSO += Nesse caso, a saída depende apenas do estado atual das entradas. Em sistemas seqüenciais, o valor atual das saídas (O) depende do valor das entradas (I) e do estado atual do sistema (E(k)). O estado seguinte do sistema depende, por sua vez, do estado atual e do valor das entradas, ou seja: O(k) = f (E(k),I(k)); E(k+1) = g (E(k),I(k)). Dessa forma, um elemento essencial em um sistema seqüencial é a memória. Em um sistema seqüencial de automação, o controlador deve gerar sinais em uma determinada seqüência de forma a fazer o sistema evoluir da maneira desejada. Esses sinais podem possuir uma seqüência fixa ou podem possuir seqüências dependentes de seleções feitas pelo usuário ou de condições do sistema em determinado momento (diferenças entre peças por exemplo). Antes do advento dos controladores programáveis (CLPs, microcontroladores, PCs etc.), um dos métodos maiscomuns de geração de sinais para automação de um processo eram os circuitos de comandos elétricos. Para aplicações mais simples e que não necessitem de reprogramação, o método ainda é bastante utilizado, porém torna- 8 se menos atraente à medida que o número de elementos de memória necessários aumenta, já que isso representa um aumento do custo de implantação. 2.3 - Comandos elétricos básicos Os circuitos de comandos elétricos são compostos basicamente por três tipos de elementos [Parker, 2001]: • elementos de entrada de sinais; • elementos de processamento de sinais; • elementos de saída de sinais. Os diagramas de comandos elétricos são também chamados de diagramas de contatos. 2.3.1 - Elementos de entrada de sinais Os elementos de entrada de sinais são responsáveis por fornecer informações ao circuito de comando para o processamento. Essas informações podem ser comandos fornecidos pelo usuário (botoeiras, pedais, chaves seletoras etc.) ou informações sobre o processo, obtidas por meio de sensores (chaves fim de curso, sensores de proximidade, pressostatos etc.). A Figura 2.1 mostra um botão com um contato normalmente aberto (NA) e um contato normalmente fechado (NF) e sua simbologia utilizada em diagramas de contatos. Ao se pressionar o botão, o contato NA se fecha, permitindo a passagem de corrente elétrica entre os terminais 13 e 14, enquanto o contato NF se abre, impedindo a passagem de corrente entre os terminais 11 e 12. É importante lembrar que, em circuitos elétricos, um contato fechado permite a passagem de sinal, ao contrário de sistemas pneumáticos e hidráulicos, em que uma válvula fechada impede a passagem de fluido, e vice-versa: um contato aberto impede a passagem do sinal enquanto uma válvula aberta permite a passagem do fluido. 9 (a) Estrutura 13 11 14 12 (b) Simbologia Figura 2.1 – Elemento de entrada de sinal (botoeira). Fonte: [Parker, 2001]. Na Figura 2.2 são mostrados outros elementos de entrada de sinal, como rolete e sensores capacitivo, indutivo e óptico. (a) rolete (b) capacitivo (c) indutivo (d) óptico Figura 2.2 – Representação de Sensores. Fonte: [Parker, 2001] 2.3.2 - Elementos de processamento de sinais Os elementos de processamento de sinais são responsáveis por manipular os sinais de entrada, de forma a fornecer os sinais de saída de acordo com a especificação do sistema de comando. Um dos principais elementos de processamento de sinais são os relés auxiliares (Figura 2.3). Os relés auxiliares são contatos elétricos acionados por uma bobina eletromagnética. Ao se energizar a bobina, os contatos elétricos são comutados, ou 10 seja, os contatos NA são fechados e os contatos NF são abertos. Geralmente os relés auxiliares são compostos de quatro contatos, que podem ser NA, NF ou combinações. Na Figura 2.3(b), ao se energizar os contatos A1 e A2, os contatos NA 13-14, 23-24 e 33-34 são fechados, enquanto o contato NF 41-42 é aberto. (a) K A2 A1 14 24 34 42 13 23 33 41 K A2 A1 14 24 34 42 13 23 33 41 (b) Figura 2.3 – Relé auxiliar. Como se pode observar, os quatro pares de contatos do relé mostrado na Figura 2.3 são independentes entre si, ou seja, podem ser utilizados em partes diferentes do circuito de comando, bem como ser acionar circuitos diferentes com tensões diferentes. Um outro tipo de relé auxiliar possui contatos comutadores (Figura 2.4). Nesse relé, quando a bobina é energizada, o terminal 11 é desconectado do terminal 12 e conectado ao terminal 13, o mesmo ocorrendo com os terminais 21, 22 e 23. Esse relé pode ser utilizado, por exemplo, para energizar alternadamente duas máquinas diferentes (a fonte de energia poderia ser conectada ao terminal 11 e a alimentação de cada uma das máquinas conectadas aos terminais 12 e 13, respectivamente). K A2 A1 12 13 22 23 11 21 K A2 A1 12 13 22 23 11 21 Figura 2.4 – Relé auxiliar com contatos comutadores. Relés auxiliares especialmente projetados para o acionamento de circuitos de potência são chamados de contatores de potência. 11 Os relés temporizadores são utilizados para causar um atraso de tempo Ton pré- determinado por meio de um potenciômetro em algum acionamento ou desacionamento no sistema. O relé temporizador com retardo na energização (Figura 2.5), após acionado, realiza um retardo de tempo para que os contatos sejam comutados (Figura 2.5(b)). Quando desenergizado, os contatos retornam imediatamente para a posição normal. K A2 A1 12 13 11 K A2 A1 12 13 11 (a) simbologia A1-A2 11-12 Ton A1-A2 11-12 A1-A2 11-12 Ton (b) diagrama de acionamento Figura 2.5 – Relé temporizador com retardo na energização. Já os relés temporizadores com retardo na desenergização (Figura 2.6), quando energizados, realizam imediatamente a comutação dos contatos auxiliares. Porém, quando desenergizados, é aguardado um período de tempo Toff pré-determinado para que ocorra o retorno dos contatos para a posição normal. K A2 A1 12 13 11 K A2 A1 12 13 11 (a) simbologia A1-A2 11-12 Toff (b) diagrama de acionamento Figura 2.6 – Relé temporizador com retardo na desenergização. Relés contadores registram a quantidade de pulsos elétricos recebidos e comutam seus contatos quando a contagem atingir um valor pré-determinado. O contador pode ser reiniciado por meio de um botão no painel do relé ou por meio de um 12 sinal elétrico de reset. A Figura 2.7(a) mostra a simbologia de um relé contador e a Figura 2.7(b) mostra o diagrama de acionamento para uma contagem de 3 pulsos. K A2 A1 12 13 11 K A2 A1 12 13 11 (a) simbologia A1-A2 11-12 Reset A1-A2 11-12 Reset (b) diagrama de acionamento Figura 2.7 – Relé contador. 2.3.3 - Elementos de saída de sinais Após realizado o processamento, o resultado pode ser utilizado para acionar atuadores e máquinas ou exibir informações para o operador. Como sinais de saída tem-se os sinais sonoros (Figura 2.8(a)) e luminosos (Figura 2.8 (b)) e os solenóides de válvulas (Figura 2.8 (c)), entre outros. (a) sonoro (b) luminoso (c) solenóide Figura 2.8 – Elementos de saída de sinal. Os próprios contatos dos relés auxiliares podem ser utilizados como elementos de saída de sinal, caso estejam conectados à alimentação de máquinas e outros equipamentos. 13 Exemplo 2.1: Acionamento direto de um solenóide. + - B Y Y Ao ser acionado o botão B, seu contato NA será fechado, permitindo a passagem de corrente elétrica. O solenóide Y será então alimentado, acionando a válvula direcional. O ar comprimido alimentará o cilindro, provocando seu avanço. Ao ser liberado o botão B, a mola provocará o retorno da válvula à sua posição normal, permitindo o recuo do cilindro. Exemplo 2.2: Acionamento direto de um solenóide por dois botões (lógica OU). + - B1 Y B2 Y Nesse exemplo, se qualquer um dos botões B1 ou B2 for acionado, o solenóide Y será alimentado, acionando a válvula. Como os contatos dos botões estão em paralelo, tem-se uma lógica OU, ou seja: o solenóide Y será acionado caso o botão B1 OU o botão B2 seja acionado. 14 Exemplo 2.3: Acionamento direto de um solenóide por dois botões (lógica E). + - B1 Y B2 Y Para que o solenóide seja alimentado, é necessário que os botões B1 e B2 sejam acionados simultaneamente.Como os contatos dos botões estão em série, tem- se uma lógica E, ou seja: o solenóide Y será acionado caso o botão B1 E o botão B2 sejam acionados. Exemplo 2.4: Acionamento indireto de um solenóide. + - B1 K K Y Y Ao ser acionado o contato NA do botão B, o relé auxiliar K será alimentado, fechando o contato NA de K, que, por sua vez, alimentará o solenóide Y, acionando a respectiva válvula. 15 Exemplo 2.5: Acionamento com memória de um solenóide – auto-retenção ou selo (reset prioritário). + - B1 K K Y B2 K Y Ao ser pressionado o botão B1, seu contato NA é fechado e o relé auxiliar K é alimentado, fechando os dois contatos auxiliares K. O solenóide Y é então alimentado provocando o avanço do cilindro. Quando o botão B1 é liberado, a bobina do relé K continua a ser alimentada pelo próprio contato auxiliar de K. Nesse ponto, só é possível interromper a alimentação de K pressionando-se o botão B2 provocando a abertura de seu contato NF. Os contatos auxiliares de K retornam então para sua posição inicial (NA), desenergizando o solenóide Y. Pode-se dizer que esse sistema representa uma memória do tipo set-reset, com o botão B1 representando o set e o botão B2 representando o reset. Caso os botões B1 e B2 sejam pressionados simultaneamente, a bobina do relé K não é energizada. Por essa razão se diz que essa é uma memória com reset prioritário. 16 Exemplo 2.6: Acionamento com memória de um solenóide – auto-retenção ou selo (set prioritário). + - B1 K K Y B2 K Y Nesse caso, ao se pressionar os botões B1 e B2 simultaneamente, o sistema é acionado (set). Por isso tem-se um sistema com set prioritário. Exemplo 2.7: Acionamento de um cilindro de dupla ação utilizando uma vávula 5/2 vias acionada por duplo solenóide. + - B2 Y2 B1 Y1 Y1 Y2 Nesse sistema, a própria válvula funciona como uma memória. Ao ser pressionado o botão B1, o solenóide Y1 é alimentado e o carretel da válvula se desloca. Mesmo ao ser liberado o botão, a válvula permanece nessa posição, provocando o avanço do cilindro. O botão B2, por sua vez, provoca o acionamento de Y2, causando o retorno do cilindro. 17 Exemplo 2.8: Acionamento de um cilindro de dupla ação utilizando uma vávula 5/2 vias acionada por duplo solenóide com retorno automático após o avanço. + - Y2Y1 B A1 A1 Y1 Y2 O contato NA de A1 é comutado pelo rolete posicionado no final do curso do atuador. Dessa forma, ao chegar ao final do avanço, o cilindro aciona A1, que energiza o solenóide Y2, provocando o recuo do cilindro. 2.4 - Circuitos seqüenciais eletropneumáticos Na seção anterior foi mostrado um circuito eletropneumático com retorno automático do atuador. Nomeando o atuador como A, pode-se dizer que tem-se a seqüência: A+ A- Pelo método intuitivo, pode-se implementar, de maneira simples, circuitos eletropneumáticos com mais de um cilindro, desde que a seqüência desejada seja direta. Para verificar se uma seqüência é direta, basta dividi-la ao meio e verificar se os atuadores aparecem na mesma ordem e sem repetições. Por exemplo, a seqüência: A+ B+ A- B- é direta, já que dividindo-a ao meio, tem-se A+ B+ e A- B-. Já a seqüência: A+ B+ B- A- não é direta. Nesse caso, o método intuitivo não é aplicável, já que o sinal que comanda o avanço de B (fim de curso de A) continua existindo no momento em que se comandaria o retorno de B, já que o cilindro A ainda não retornou. No Capítulo 4 é mostrada uma metodologia para a programação em CLPs de seqüências indiretas. O método intuitivo consiste em, ao final de cada movimento, utilizar o sinal do sensor de fim de curso para comandar diretamente o movimento seguinte. 18 Exemplo 2.9: Seqüência A+ B+ A- B-. Para essa seqüência, observa-se que o sensor fim de curso de A (A1) deve comandar o avanço de B. O sensor fim de curso de B (B1) deve comandar o retorno de A. Um sensor posicionado no início do curso de A (A0) deve comandar o retorno de B. Dessa forma, observa-se que são necessárias, no mínimo, três chaves de fim de curso, sendo necessária uma quarta chave caso se deseje confirmar o retorno de B antes de aceitar o comando de reinício da seqüência gerado, por exemplo, por um botão (ST). A1A0 A+ A- B1B0 B+ B- + - B0 ST A+ A1 B+ B1 A- A0 B- 2.5 - Exercícios Exercício 2.1: Faça os diagramas de contatos para acionar uma lâmpada quando as lógicas a seguir forem verdadeiras. Considere A, B e C como três botões. a) ABC 19 b) CBA ++ c) CAB +)( d) )( CBA + e) CBA Exercício 2.2: Faça os diagramas de contatos para acionar uma lâmpada quando as lógicas a seguir forem verdadeiras. Considere A, B e C como três botões que possuem apenas um contato NA cada. a) BCA b) )()( ACCBA + c) )(ABC Exercício 2.3: Refaça o exercício anterior considerando que cada botão possui apenas um contato NF cada. Exercício 2.4: Um cilindro pneumático deve iniciar seu avanço quando dois botões forem pressionados simultaneamente. O cilindro deve retornar quando chegar ao final de seu curso ou quando um terceiro botão (emergência) for acionado. Faça o diagrama de contatos e o pneumático que implemente essa lógica. Considere uma válvula 3/2 vias com retorno por mola. Exercício 2.5: Um sistema hidráulico de acionamento de um cilindro deve permitir paradas intermediárias. Seu acionamento deve se dar da seguinte maneira: Botão Av: inicia o avanço do cilindro Botão Re: inicia o retorno do cilindro Botão P: provoca a parada do cilindro, aliviando a pressão da bomba. Ao terminar o avanço ou recuo, a válvula direcional deve aliviar a pressão da bomba. Faça o diagrama hidráulico e o de contatos elétricos para acionamento do sistema. 20 Exercício 2.6: Faça o diagrama elétrico para o comando da seguinte seqüência de movimentos de atuadores pneumáticos: A+ C+ B+ A- C- B- 21 3. Controladores Lógicos Programáveis Controladores Lógico Programáveis (CLPs), também conhecidos como PLCs (Programmable Logic Controller), são dispositivos desenvolvidos para substituir circuitos elétricos baseados em relés para o controle de máquinas. O CLP trabalha monitorando suas entradas (que podem ser analógicas, digitais ou dados recebidos por uma rede industrial), processando-as de acordo com o programa e definindo valores para saídas (que também podem ser analógicas, digitais ou valores a serem enviados pela rede). As vantagens da substituição dos circuitos de comandos elétricos por CLPs estão na flexibilidade de programação (o CLP pode ser reprogramado via software, enquanto os circuitos elétricos podem exigir uma nova montagem de todas as conexões do sistema), na economia de espaço físico (o limite do tamanho de um programa em CLP é determinado apenas pela memória do mesmo, ou seja, um pequeno CLP substitui circuitos elétricos que poderiam ocupar vários gabinetes) e, a depender da complexidade do sistema, o CLP pode ter um custo mais baixo que o material necessário para a montagem do circuito elétrico. 3.1 - Estrutura O CLP consiste basicamente de uma CPU (unidade central de processamento), memórias, circuitos de entradas e saídas de sinais e dispositivos para conexão via redes industriais. De acordo com o modelo do CLP, esses dispositivos podem ser fixos ou configuráveis, pela inserção de cartões de entrada, saída e comunicação. A grande maioria das funçõesdo CLP (funções lógicas, contadores, temporizadores etc.) não existem fisicamente, mas são simuladas em software, e são executadas de acordo com a programação do usuário. Alguns CLPs dispõem de contadores de alta velocidade, utilizados para contabilizar pulsos em freqüências maiores que a capacidade de processamento da CPU, como os pulsos de um encoder. A Figura 3.1 mostra como são realizadas as interligações entre um CLP de 8 entradas e 8 saídas e os elementos externos, como sensores e atuadores. 22 24Vcc24Vcc C O M C O M IN 0 IN 0 IN 1 IN 1 IN 2 IN 2 IN 3 IN 3 IN 4 IN 4 IN 5 IN 5 IN 6 IN 6 IN 7 IN 7 C O M C O M O U T0 O U T0 O U T1 O U T1 O U T2 O U T2 O U T3 O U T3 O U T4 O U T4 O U T5 O U T5 O U T6 O U T6 O U T7 O U T7 Figura 3.1 – Ligações de um CLP. Na figura, o CLP é alimentado por uma fonte externa de 24Vcc (em muitos casos, a fonte é encapsulada no próprio corpo do CLP). Para que uma entrada seja sensibilizada é necessário aplicar +24Vcc entre o respectivo terminal e o terminal comum. Por esse motivo, o terminal comum é ligado no terminal negativo da fonte e cada chave é conectada ao terminal positivo e a respectiva entrada. Dessa forma, quando a chave se encontra aberta (não é aplicado +24Vcc ao terminal), a entrada correspondente realizará uma leitura de “falso”. Quando a chave estiver fechada (aplicando +24Vcc ao terminal) será realizada uma leitura de “verdadeiro”. Ao ser escrito um valor “verdadeiro” em uma saída, o CLP aplica +24Vcc ao respectivo terminal. Dessa forma, para que uma saída acione, por exemplo, o solenóide de uma válvula, seus terminais devem ser ligados à saída e ao terminal negativo da fonte. 3.2 - Execução O ciclo de execução de um CLP é representado na Figura 3.2. Após ligado, o CLP executa uma rotina de inicialização e entra em um ciclo chamado ciclo de 23 varredura. Primeiramente é realizada a leitura dos sinais de entrada, e os valores desses sinais são armazenados em uma região de memória denominada imagem de entrada. Durante a execução do programa do usuário, quaisquer leituras realizadas nas variáveis de entrada na realidade são lidas da imagem de entrada. Esse artifício é utilizado pois uma leitura em uma posição de memória é muito mais rápida que uma leitura realizada na entrada em si. Após a leitura dos sinais de entrada, o programa do usuário é executado instrução por instrução. Todos os valores escritos pelo programa nas saídas do CLP na realidade são armazenados em uma área de memória chamada de imagem de saída. Após a completa execução do programa é realizado o procedimento de atualização das saídas a partir da imagem de saída. Leitura das entradas InicializaçãoInicialização Execução do programa Atualização das saídas Figura 3.2 – Ciclo de execução de um CLP. Como o ciclo de execução do CLP normalmente é mais rápido que as constantes de tempo do sistema controlado, e já que as saídas são atualizadas apenas no final do ciclo de varredura, pode-se dizer que o CLP simula, com fidelidade, os circuitos de comandos elétricos, em que o processamento é realizado em paralelo por todos os dispositivos. É importante salientar algumas conseqüências da utilização de imagens de entrada e saída pelo CLP. Por exemplo, caso o valor de uma saída seja alterada mais de uma vez durante a execução do programa, apenas o último valor será realmente escrito na saída do CLP. Por outro lado, caso o valor de alguma entrada for alterado durante a execução, essa alteração somente será percebida no ciclo de varredura seguinte. 24 Alguns modelos de CLPs dispõem de comandos de leitura e escrita imediatas em dispositivos de entrada e saída. Nesses casos, a leitura do sinal e a escrita do resultado são realmente realizados no momento da execução do comando. Porém, é importante salientar que a execução desses comandos é mais lenta que a leitura e escrita nas imagens de entrada e saída. O tempo do ciclo de varredura depende do tamanho do programa e das instruções utilizadas. Esse tempo pode ser fixo em programas que não utilizem variação no controle de fluxo (instruções condicionais etc.), porém em muitos casos pode ser variável. Caso o tempo de execução ultrapasse um valor pré-determinado, o CLP acusa um sinal de erro e interrompe a execução do programa. 3.3 - Linguagens de Programação As linguagens de programação de CLPs são definidas pela norma IEC 61131-3. A norma define 2 linguagens textuais e duas gráficas: Linguagens textuais: • IL (Instruction List), ou lista de instruções; • ST (Structured Text), ou texto estruturado. Linguagens gráficas: • LD (Ladder Diagram), ou diagrama escada, ou de contatos; • FDB (Function Block Diagram), ou diagrama de blocos funcionais. Uma quinta forma de representação é definida pela norma como SFC (Sequential Function Chart). O SFC é uma forma de representação gráfica utilizada para programação de eventos seqüenciais, cujos elementos podem ser utilizados em conjunto com quaisquer das quatro linguagens definidas. Neste texto serão utilizadas as linguagens Ladder, por ser a mais utilizadas na programação de CLPs, bem como o SFC, por ser a representação mais apropriada para a programação de sistemas seqüenciais de automação. Será apresentado também um método para a conversão de diagramas representados por SFC para a linguagem Ladder, já que o SFC não está disponível em todos os CLPs comerciais, como a linguagem Ladder. 25 3.3.1 - Ladder A linguagem Ladder é derivada dos diagramas de contatos elétricos. Por esse motivo, é a linguagem mais popular de programação de CLPs. Além dos elementos de entrada, saída e processamento de sinais presentes nos diagramas de contatos elétricos (tipicamente sinais discretos, 0 ou 1, falso ou verdadeiro), a linguagem Ladder permite trabalhar também com outros tipos de dados, como inteiros e reais e entradas e saídas analógicas, tornando-a uma poderosa forma de programação da automação e controle de processos. O elemento básico de um diagrama Ladder são os barramentos de energização, representados por duas linhas verticais. Eles representam os terminais da fonte existente nos diagramas de contatos elétricos. Os elementos da lógica da programação (Figura 3.3) são representados entre os barramentos como os degraus de uma escada (daí o nome Ladder, escada em inglês), como mostrado na (Figura 3.4). O programa é executado pela CPU do CLP executando a lógica de cada degrau, da esquerda para a direita e varrendo degrau por degrau de cima para baixo. (a) Contato NA (b) Contato NF ( )( )( ) (c) Bobina Figura 3.3 – Representação em diagrama Ladder de contatos NA, NF e bobinas. ( )( )( ) E0E0 S0 ( )( )( ) E1 S1E2E2 E0E0 E2E2 ( )( )( ) S2 Figura 3.4 – Exemplo de programa em Ladder. 26 Cada contato e bobina devem ser endereçados de modo a identificar a correspondência com os sinais de entrada, saída e memórias. Durante a execução do programa, caso o valor associado a um contato NA seja verdadeiro, o contato se fecha, “permitindo a passagem de corrente elétrica” (considerando a analogia com os diagramas de contatos elétricos). Caso o valor associado seja falso, o contato NA permanece aberto. O contrário acontece para o contato NF, que se abre quando o valor associado é verdadeiro e se fecha quando o valor associado é falso. Quando a lógica à esquerda de uma bobina é verdadeira (analogamente à bobina energizada),é atribuída à saída ou posição de memória associada o valor 1. Caso a lógica seja falsa, é atribuído o valor 0. Caso essa posição de memória corresponda ao espelho de saída, o valor armazenado será atribuído à saída correspondente no final do ciclo de execução. Caso essa posição seja uma memória auxiliar, o valor será simplesmente armazenado, podendo ser utilizado em outras partes do programa. Dessa forma, pode-se fazer uma analogia com um relé: quando um valor é armazenado em uma posição de memória significa que se está energizando ou desenergizando a bobina do relé; ao se utilizar o valor armazenado na memória está se utilizando os contatos do relé (Figura 2.1). Ao contrário do relé físico, em que existe um número limitado de contatos, no programa do CLP a posição de memória pode ser utilizada um número indeterminado de vezes. + - B1 Y B2 K K K L1 (a) Relé auxiliar B1B1 ( ) K ( )( )( ) K ( ) L1 ( )( )( ) L1KK B2B2 KK ( ) Y ( )( )( ) Y (b) Memória Figura 3.5 – Analogia entre uma memória e um relé auxiliar. A forma de endereçamento das entradas, saídas e memórias depende de cada fabricante de CLP, mas normalmente é composta de três campos: • Tipo de memória • Endereço do byte 27 • Número do bit dentro do byte (0 a 7) Em programas que utilizem apenas sinais discretos, os tipos de memória utilizados são: imagem da entrada, imagem da saída, memória auxiliar. Nessa apostila serão utilizados os seguintes símbolos: E para imagem da entrada, S para imagem da saída e M para memória auxiliar. O campo endereço do byte identifica a posição na respectiva memória em que se encontra o byte que contém o bit referenciado. Normalmente o endereço vai de 0 até um valor que depende do número de entradas e saídas e do tamanho da memória auxiliar. Por último, o campo número do bit identifica, dentre os 8 bits do byte, qual o bit referenciado. Considerando o modo de endereçamento utilizado nessa apostila, são exemplos de identificadores: • E0.3 – Bit 3 do byte 0 de entrada; • S2.0 – Bit 0 do byte 2 de saída; • M10.7 – Bit 7 do byte 10 da memória auxiliar. Para simplificar a representação, no caso de programas pequenos que utilizem no máximo 8 bits de entrada, saída e de memória auxiliar, serão utilizados apenas os campos de memória e de bit (ex.: E0, S5, M3). Alguns fabricantes de CLPs permitem a associação de símbolos (ex: VALVULA1, BOTAO3 etc.) a determinadas posições de memória e de espelho de entrada e saída de forma a tornar mais fácil a programação por parte do usuário. Ao se compilar o programa, os símbolos são automaticamente convertidos para os respectivos identificadores. Assim como em circuitos de comandos elétricos, dois contatos em série representam uma lógica “E”, enquanto dois contatos em paralelo representam uma lógica “OU” (Figura 3.6). 28 E0E0 ( ) S0 ( )( )( ) S0 E1E1 (a) S0=E0+E1 E0E0 ( ) S1 ( )( )( ) S1E1E1 (b) S1=E0×E1 Figura 3.6 – Lógicas E e OU em Ladder. A auto-retenção ou selo pode ser utilizada para acionar e manter o estado de uma saída, assim como no diagrama de contatos elétricos. A Figura 3.7 mostra um exemplo em que, quando é acionada a entrada E0 (set), a saída S0 é acionada, permanecendo nesse estado mesmo que E0 seja desacionada. S0 apenas é desacionada quando E1 (reset) é acionada (abrindo o contato NF). Na Figura 3.7(a) tem-se reset prioritário (a saída é desacionada quando E0 e E1 são acionadas simultaneamente), enquanto na Figura 3.7(b) tem-se set prioritário (a saída é acionada quando E0 e E1 são acionadas simultaneamente). E0E0 ( ) S0 ( )( )( ) S0E1E1 S0S0 (a) reset prioritário E0E0 ( ) S0 ( )( )( ) S0 E1E1 S0S0 (b) set prioritário Figura 3.7 – Auto-retenção em linguagem Ladder. A linguagem Ladder prevê, ainda comandos de bobinas com retenção (set e reset). A Figura 3.8 mostra uma lógica equivalente à da Figura 3.7, utilizando bobinas com retenção. Observe que, como a saída somente é atualizada após o término do ciclo de execução do programa, caso as entradas E0 e E1 sejam acionadas simultaneamente, apenas a última instrução executada tem influência no valor real da saída, determinando assim o reset ou set prioritário. 29 E0E0 E1 ( ) S0 R( ) S0 ( )( )( ) S0 R ( ) S0 S( ) S0 ( )( )( ) S0 S (a) reset prioritário E0E0 ( ) S0 ( )( )( ) S0 ( ) S0 ( )( )( ) S0E1 R S (b) set prioritário Figura 3.8 – Bobinas com retenção em linguagem Ladder. É importante observar uma diferença fundamental entre as bobinas normais e as bobinas com retenção. Nas bobinas normais, o resultado da lógica à esquerda da bobina, quer seja falso ou verdadeiro, é sempre escrito na memória (auxiliar ou espelho de saída) referenciada. No caso das bobinas com retenção, seu valor é setado ou resetado apenas se o resultado da lógica for verdadeiro. Isso significa que, caso um programa possua várias linhas que acionem uma bobina normal referenciando uma saída, apenas a última terá efeito real na saída, já que o resultado de sua lógica é que será utilizado na atualização das saídas. Porém, caso várias linhas utilizem bobinas com retenção, o efeito será equivalente a uma única linha com uma lógica OU entre as lógicas de cada linha (Figura 3.9). E1E1 E2 ( ) S0 R( ) S0 ( )( )( ) S0 R ( ) S0 S( ) S0 ( )( )( ) S0 S ( ) S0 S( ) S0 ( )( )( ) S0 S E5 ( ) S0 R( ) S0 ( )( )( ) S0 R E3E3 E4 E1E1 E2 ( ) S0 R( ) S0 ( )( )( ) S0 R ( ) S0 S( ) S0 ( )( )( ) S0 S E5 E3E3 E4 Figura 3.9 – Equivalência entre programas utilizando bobinas com retenção . A norma IEC 61131-3 prevê, também, a utilização de contatos sensíveis à borda de subida ou de descida de um sinal. No caso do contato sensível à borda de subida, seu valor é verdadeiro durante um ciclo de execução caso o valor da variável associada sofra uma transição de falso para verdadeiro durante o ciclo de execução 30 anterior. O contato sensível à borda de descida possui valor verdadeiro durante um ciclo de execução quando a variável associada sofre uma transição de valor verdadeiro para falso. A Figura 3.10(a) mostra um programa utilizando contatos sensíveis à borda de subida e descida, enquanto a Figura 3.10(b) mostra os estados das saídas em função de variações da entrada (Texec é o tempo do ciclo de execução). N ( ) S0 ( )( )( ) S0 ( ) S1 ( )( )( ) S1 E0 P E0 (a) programa E0 S0 TexecTexec S1 (b) estado das saídas em função da entrada Figura 3.10 – Contatos sensíveis à borda. Assim como em diagramas de contatos, em Ladder é também possível se utilizar temporizadores com retardo na energização e na desenergização. Dependendo do fabricante, a representação do temporizador pode variar. O temporizador com retardo na energização, também chamado de TON, provoca um atraso entre a condição de ativação e o acionamento de uma saída ou memória. A Figura 3.16(a) mostra a representação de um temporizador conforme a norma IEC 61131-3. A condição de ativação deve ser ligada à entrada IN, enquanto a saída a ser acionada (ou o restante de uma condição lógica) deve ser ligada à saída Q. O valor de tempo do atraso é representado por uma variável numérica ou por uma constante, e deve ser configurada na entrada PT (preset time). A saída ET (elapsed time) pode ser armazenada em uma variável numérica para ser utilizada em outra parte do programa. 31 E3E3 ( ) S0 ( )( )( ) S0TON IN 3s PT Q ET (a) representação IN Q PT IN Q IN QPT (b) estado da saída em função da entrada Figura 3.11 – Temporizador TON. O temporizador com retardo na desenergização (TOFF) aciona a saída no momento em que a condição de entrada é satisfeita, porém provoca um atraso na desenergização da saída a partir do momento em que a entrada é desenergizada (Figura 3.12). A representação em Ladder é semelhante ao temporizador TON, com o indicador substituído por TOFF. E3E3 ( ) S0 ( )( )( ) S0TOFF IN 3s PT Q ET (a) representação IN Q PT (b) estado da saída em função da entrada Figura 3.12 – Temporizador TOFF. Contadores são utilizados para contar o número de pulsos de determinado sinal ou função lógica e acionar uma saída quando tal número atingir um valor pré- determinado. A norma prevê três tipos básicos de contadores: counter up (CTU), counter down (CTD) e counter up-down (CTUD). O counter up (Figura 3.13) faz a contagem de pulsos em sentido crescente. São utilizados 2 sinais de entrada CU (counter up), sinal a ser contado e R (reset), sinal que provoca o reinício da contagem. É necessário fornecer ainda um valor inteiro PV (preset value), correspondente ao número de pulsos a serem contados. Como saídas tem-se um inteiro CV (current value) que corresponde ao número de pulsos contabilizados e um sinal lógico Q, que é acionado quando CV atinge o valor de PV. 32 E3E3 ( ) S0 ( )( )( ) S0CTU CU R Q CV3 PV E4E4 (a) representação CU Q R (b) estado da saída em função da entrada Figura 3.13 – Contador CTU. Já o counter down (Figura 3.14) faz a contagem de pulsos em sentido decrescente. São utilizados 2 sinais de entrada CD (counter down), sinal a ser contado e LD (load), sinal que provoca o reinício da contagem a partir do valor PV (preset value), correspondente ao número de pulsos a serem contados. Como saídas tem-se um inteiro CV (current value) que corresponde ao valor atual do contador e um sinal lógico Q, que é acionado quando CV atinge o valor 0. E3E3 ( ) S0 ( )( )( ) S0CTD CD LD Q CV3 PV E4E4 (a) representação CD Q LD (b) estado da saída em função da entrada Figura 3.14 – Contador CTD. Considerando-se apenas a relação entre os sinais de entrada CU e CD e de saída Q, o efeito dos contadores CTU e CTD é o mesmo. Por último, tem-se o contador CTUD (counter up-down). Esse contador pode contar pulsos de modo crescente, quando acionada a entrada CU ou decrescente quando acionada a entrada CD. Possui sinais de reset (R), que reinicia a contagem do 33 zero e load (LD), que carrega o valor de PV em CV. Como saídas, possui QU, que é acionada quando o valor de CV atinge PV e QD que é acionada quando CV atinge 0. E1E1 ( ) S0 ( )( )( ) S0CTUD CU CD QU CV3 PV E2E2 E3E3 R LD E4E4 ( ) S1 ( )( )( ) S1 QD Figura 3.15 – Contador CTUD Exemplo 3.1: Utilizando apenas contatos simples, faça um programa que substitua o programa abaixo. N ( ) S0 ( )( )( ) S0 ( ) S1 ( )( )( ) S1 E0 P E0 34 Resolução: Utiliza-se uma memória para armazenar o valor anterior de E0, ao final do ciclo de execução. Os contatos sensíveis à borda podem então ser substituídos por uma lógica que verifique o valor atual e o anterior da entrada (armazenado na memória): E0E0 ( ) M0 ( )( )( ) M0 E0E0 M0M0 M0M0E0E0 ( ) S0 ( ) S0 ( ) S1 ( ) S1 3.3.2 - SFC Como mencionado anteriormente, o diagrama Ladder simula um diagrama de contatos elétricos. Por esse motivo, simula-se um ambiente de processamento paralelo, ou seja, cada linha seria processada em paralelo com as outras. Esse efeito é conseguido pela utilização do ciclo de execução, que é realizado normalmente em um tempo menor que as constantes de tempo do sistema. Dessa forma, essa linguagem é apropriada para intertravamento e monitoramento de várias máquinas ao mesmo tempo. Por outro lado, para sistemas seqüenciais de automação, a programação em linguagem Ladder pode se tornar uma tarefa tediosa e propensa a erros, já que as linhas e condições devem ser intertravadas com outras. Nesses casos, a forma de programação mais adequada é o SFC (Sequential Function Chart), por ser orientada a estados e eventos do sistema. O SFC é uma linguagem de programação gráfica baseada no GRAFCET. O GRAFCET foi inicialmente desenvolvido na França sob o nome de GRAphe Functionnel de Commande Etape/Transition e é baseado nas redes de Petri interpretadas. Em 1988 foi publicado o padrão IEC 848: “Preparation of function charts for control system”, baseado na linguagem GRAFCET. Posteriormente, a norma IEC 61131-3 introduziu modificações no GRAFCET de forma a adequá-lo às outras linguagens definidas na norma, definindo então o SFC. 35 Um SFC é baseado em passos e transições, interligados por arcos direcionados. Os passos são representados por retângulos e as transições por traços horizontais. Cada transição deve estar ligada, no mínimo, a um passo de entrada e um passo de saída, por meio de arcos direcionados. Os passos podem estar ativos ou inativos. A cada instante de tempo, pelo menos um passo deve estar ativo. A cada passo ativo corresponde um conjunto de ações a serem executadas, que na prática são sinais de saída que devem ser acionados ou desligados. Esse conjunto de ações podem ser desde simples atribuições de valores de saída até programas escritos em uma das linguagens de programação de CLPs. Todo SFC deve possuir, no mínimo, um passo inicial, que estará ativo no início da execução do programa (representado por um retângulo de linhas duplas). Os passos são ligados a transições por meio de arcos direcionados (Figura 3.16). Os arcos de saída de um passo são conectados em sua borda inferior. Os arcos de entrada são ligados a sua borda superior. 11 22 Arco de entrada do passo 2 Arco de saída do passo 2 1 2 Arco de entrada da transição 1 Arco de saída da transição 1 Figura 3.16 – Ligações entre passos e transições As transições determinam as mudanças de passos. Um passo ativo habilita a transição ligada a seu arco de saída. Quando as condições de disparo de uma transição habilitada são satisfeitas, ela é disparada, desativando o passo ligado a seu arco de entrada e ativando o passo ligado a seu arco de saída. A (Figura 3.17) mostra um exemplo de SFC com três passos (sendo um inicial) e três transições. No início da execução do programa, o passo 1 está ativo, habilitando a transição 1. Ao ser pressionado o botão de início, a transição é disparada, desativando o passo 1 e ativando o passo 2. No passo 2, é realizada a ação “Liga lâmpada”. Após decorridos 5 segundos, a transição 2 é disparada, desativando o passo 2 e ativando o passo 3, que realiza a ação “Desliga lâmpada”. Após decorridos 3 segundos, a transição 3 é disparada, desativando o passo 3 e reativando o passo 1. 36 11 22 Liga lâmpadaLiga lâmpada Botão Início T=5seg T=3seg 33 Desliga lâmpadaDesliga lâmpada 1 2 3 Figura 3.17 – Exemplo de SFC. Há casos em que duas transições podem estar ligadas a arcos de saída de um lugar ou dois lugares estarem ligados aos arcos de saída de uma transição. Nesses casos, tem-se as divergências e convergências E e OU. Divergência e convergência OU A divergência/convergência OU é utilizada quando se deseja que uma dentre duas ou mais seqüências seja executada. No caso de uma divergência OU, um passo ativo habilita duas transições ao mesmo tempo, porém apenas uma delas pode ser disparada. Será disparada a transição cujas condições de disparoforem satisfeitas primeiro. Esse caso é identificado quando mais de uma transição é ligada a arcos de a saída de um passo. No exemplo da Figura 3.18, o processo é iniciado quando é pressionado o botão “Início”, ativando o passo 2. O passo 2 habilita as transições 2 e 4 (divergência OU). Caso o botão 1 seja pressionado, a transição 2 é disparada, desativando o passo 2 e ativando o passo 3. Caso o botão 2 seja pressionado, a transição 4 é disparada, desativando o passo 2 e ativando o passo 4. Tanto o disparo da transição 3 como o da transição 5 ativam o mesmo passo (5). Nesse caso, tem-se uma convergência OU. 37 11 22 Botão Início Botão 1 T=3seg 33 1 2 3 Botão 24 T=5seg 44 5 55 Divergência OU Convergência OU Figura 3.18 – Divergência e convergência OU. Divergência e convergência E A divergência/convergência E é utilizada quando se deseja que mais de uma seqüência seja executada simultaneamente. No caso de uma divergência E, o disparo de uma transição ativa mais de um passo ao mesmo tempo. As ações relacionadas aos passos ativados são, então, executadas simultaneamente. Esse caso é identificado quando mais de um passo é ligado a arcos de saída de uma transição. É utilizada uma barra horizontal dupla para indicar a divergência. A transição associada à convergência (também identificada por barras horizontais duplas) somente é habilitada se todos os passos conectados aos seus arcos de entrada estiverem ativos. Ao ser disparada a transição, todos esses lugares são então desativados e o passo conectado ao arco de saída da transição é ativado. No exemplo da Figura 3.19, o disparo da transição 2 ativa os passos 3 e 5. As duas seqüências (passo 3, transição 3, passo 4 e passo 5, transição 4, passo 6) são então executadas paralelamente. A transição 5 apenas é habilitada quando as duas seqüências forem finalizadas, ou seja, passos 4 e 6 ativos. 38 11 22 33 1 2 3 55 4 Divergência E Convergência E 44 66 77 5 Figura 3.19 – Divergência e convergência E. Na Figura 3.20 é mostrada a evolução do SFC para a seguinte seqüência de disparo de transições: 1, 2, 3, 4 e 5. 39 1 2 3 1 2 3 5 4 4 6 7 5 11 22 33 1 2 3 55 4 44 66 77 5 (a) passo 1 ativo 1 2 3 1 2 3 5 4 4 6 7 5 11 22 33 1 2 3 55 4 44 66 77 5 (b) passo 2 ativo 1 2 3 1 2 3 5 4 4 6 7 5 11 22 33 1 2 3 55 4 44 66 77 5 (c) passos 3 e 5 ativos 1 2 3 1 2 3 5 4 4 6 7 5 11 22 33 1 2 3 55 4 44 66 77 5 (d) passos 4 e 5 ativos 1 2 3 1 2 3 5 4 4 6 7 5 11 22 33 1 2 3 55 4 44 66 77 5 (e) passos 4 e 6 ativos 1 2 3 1 2 3 5 4 4 6 7 5 11 22 33 1 2 3 55 4 44 66 77 5 (f) passo 7 ativo Figura 3.20 – Evolução de um SFC. 40 No caso da ocorrência de uma divergência E, deve necessariamente existir uma ou mais convergências E de modo que torne a existir apenas um passo ativo no ramo do programa. A Figura 3.21 mostra um SFC com uma divergência E sem a respectiva convergência. Nesse caso, a transição 2 ativa os passos 3 e 5 simultaneamente. Conforme a evolução do sistema, os passos 1 e 2 podem estar ativados simultaneamente, o que causaria um conflito, já que são dois passos que deveriam ser executados em seqüência. 11 22 33 1 2 3 55 5 44 66 4 6 Figura 3.21 – SFC com conflito (divergência E sem convergência). Representação de ações A cada passo de um SFC, podem corresponder uma ou mais ações a serem executadas enquanto o passo estiver ativo. Essas ações devem ser representadas por um retângulo posicionado ao lado direito do passo, como mostrado na (Figura 3.22). O campo “a” é o qualificador da ação. Indica, por exemplo, se um sinal somente é ligado enquanto o passo estiver ativo, ou se é ligado e permanece assim até que seja executado um comando que o desligue. O campo “b” corresponde à descrição da ação executada, normalmente indicando qual sinal será acionado, por exemplo. O campo “c”, chamado de indicador lógico, corresponde a qual sinal lógico indica o término de 41 execução da ação. Esse sinal pode ser um sinal externo, como uma válvula fim de curso ou uma variável setada pela própria ação. Em grande parte das vezes, a transição que faz o programa avançar para o próximo passo é disparada pela própria variável indicada nesse campo. O campo “d” contém o programa relacionado à ação. Esse programa pode ser escrito em qualquer uma das quatro linguagens definidas pela norma (IL, ST, LD ou FDB). Quando o campo “b” indica uma variável lógica, não é necessário se definir o campo “d”, já que a ação já está completamente definida. 22 a b caa bb cc dd Figura 3.22 – Bloco de ações associado a um passo Os qualificadores de ações são definidos na (Tabela 3.1). Tabela 3.1 – Qualificadores de ações Qualificador Descrição (Nenhum) Não armazenada N Não armazenada R Reset S Set L Limitada no tempo (equivalente a Toff) D Atrasada no tempo (equivalente a Ton) P Pulso SD Setada e com atraso de tempo. A ação é ativada após um tempo estipulado mesmo se o passo associado for desativado antes do tempo de atraso. DS Atrasada no tempo e setada. Caso o passo associado seja desativado antes de completado o tempo de atraso, a ação não é setada. SL Armazenada apenas durante um período de tempo. P1 Pulso (borda de subida) P0 Pulso (borda de descida) 42 Observe as diferenças entre os qualificadores D, SD e DS e entre os qualificadores L e SL. Nos casos de SD e SL, as ações continuam ativas mesmo após a desativação do passo correspondente, assim como a S. As ações D, DS e L são imediatamente interrompidas quando o passo é desativado. Segundo a norma, a ação é sempre executada novamente quando o passo é desativado, porém, isso depende da implementação do fabricante. Na Figura 3.23 são mostrados alguns exemplos de representações de ações. 77 SS Abrir válvulaAbrir válvula 33 PP Iniciar programa CNCIniciar programa CNC 99 NN Fechar portaFechar porta E3E3 44 L T#20s Furar peçaFurar peça Figura 3.23 – Exemplos de ações. Representação de Transições Uma transição representa as condições a serem satisfeitas para que o controle do programa seja transferido de um ou mais passos ativos para outro(s). Como mencionado anteriormente, uma transição está habilitada se todos os passos cujos arcos estejam ligados a essa transição estiverem ativos. A transição habilitada é disparada caso as condições relacionadas a ela sejam satisfeitas. As condições de disparo de uma transição podem ser definidas em quaisquer das linguagens definidas pela norma IEC 61131-3. Nessa apostila as condições serão definidas como funções lógicas (Figura 3.24). Essas funções podem ser traduzidas para qualquer uma das linguagens de programação. 43 2 E2 E E3 3 5 22 E2 E E3 33 5 88 99 9 ( )CBA ×+ Figura 3.24 – Exemplo de condições lógicas associadas transições. As condições de disparo podem também envolver condições de mudança de estado de uma variável (borda de subida ou de descida). Na Figura 3.25 são mostrados dois programas equivalentes que implementam um divisor de freqüência por 2. Observe que,no segundo caso, a utilização da condição de borda de subida reduz significativamente o tamanho do programa. Observe também que no segundo caso utilizou-se o qualificador de ação N. Nesse caso, o valor da saída S0 é verdadeiro apenas no passo 2, não sendo necessário especificar seu valor no passo 1. 11 22 33 44 E0 E0 E0 E0 SS S0S0 RR S0S0 11 22 E0↑ NN S0S0 E0↑ Figura 3.25 – Divisor de freqüência por 2. 44 3.4 - Exercícios Exercício 3.1: Descreva o funcionamento do programa abaixo. Qual o resultado efetivo do programa? Como alterá-lo de modo a funcionar como seria esperado? E0E0 ( ) S0 ( )( )( ) S0 ( ) S0 ( )( )( ) S0E0E0 Exercício 3.2: Dada a lógica de comando digital abaixo, escreva um programa equivalente para CLP em linguagem Ladder. (Questão do Exame Nacional de Cursos de 1998) E1 E2 E3 E4 S1 S2 Exercício 3.3: O início de operação de uma máquina depende da condição de três sensores, S1, S2 e S3. O início da seqüência se dá somente quando uma das seguintes condições é satisfeita: S1 S2 S3 0 0 1 0 1 0 0 1 1 1 0 0 1 1 0 Em todas as outras condições a operação da máquina não deve ser iniciada. 45 Pede-se: a) Mapa de Karnaugh do comando de acionamento de início da operação. b) Equação booleana baseada no mapa de Karnaugh. c) Diagrama elétrico da equação booleana. Considere que os sensores possuam apenas um contato NA disponível. d) Diagrama Ladder da equação booleana. Exercício 3.4: Considere um sistema de produção de peças com um buffer de entrada alimentado por uma esteira. Enquanto houver peças no buffer, o CLP deve manter um robô em funcionamento por meio de um sinal de saída RB. Quando o número de peças no buffer chegar a 10, a esteira deve ser desligada. A entrada de peças no buffer é detectada por um sensor ENT. Sempre que o robô retira uma peça do buffer, sinaliza para o CLP com um sinal SAI. Faça um programa em Ladder para controlar esse sistema. Exercício 3.5: Faça, utilizando SFC, um divisor de freqüência por 4. 46 4. Programação de sistemas seqüenciais em CLPs 4.1 - Automação pneumática utilizando Ladder Por se basear na representação de contatos elétricos, a lógica de programação em Ladder de sistemas seqüenciais pneumáticos é bastante semelhante aos diagramas de contatos. Para seqüências diretas de acionamento, utiliza-se o método intuitivo para especificação da lógica, em que a conclusão de cada movimento comanda diretamente o início do movimento seguinte. O exemplo a seguir mostra o programa em Ladder para uma seqüência direta. Exemplo 4.1: Seqüência A+ B+ A- B-. A seguir é mostrado o diagrama pneumático do sistema. São utilizadas duas válvulas de 5/2 vias (5 vias e 2 posições) acionadas por duplo solenóide, dois cilindros de dupla ação e 4 sensores de fim de curso (contatos NA acionados por roletes). A-A+ A1A0 A-A+ A1A0 B0 B-B+ B1B0 B-B+ B1 As tabelas a seguir mostram a equivalência entre os sinais de entrada e saída do CLP e os sensores e solenóides. 47 E0 Botão de início (ST) S0 Solenóide A+ E1 Fim de curso A0 S1 Solenóide A- E2 Fim de curso A1 S2 Solenóide B+ E3 Fim de curso B0 S3 Solenóide B- E4 Fim de curso B1 O diagrama a seguir mostra as ligações realizadas no CLP. 24Vcc24Vcc C O M C O M IN 0 IN 0 IN 1 IN 1 IN 2 IN 2 IN 3 IN 3 IN 4 IN 4 IN 5 IN 5 IN 6 IN 6 IN 7 IN 7 C O M C O M O U T0 O U T0 O U T1 O U T1 O U T2 O U T2 O U T3 O U T3 O U T4 O U T4 O U T5 O U T5 O U T6 O U T6 O U T7 O U T7 ST A0 A1 B0 B1 A+ A- B+ B- O programa em Ladder é semelhante ao diagrama de contatos elétricos do Exemplo 2.9: 48 E0E0 ( ) S0 ( )( )( ) S0 ( ) S2 ( )( )( ) S2 E4E4 E2E2 E1E1 ( ) S1 ( )( )( ) S1 ( ) S3 ( )( )( ) S3 E3E3 O início da seqüência (avanço de A, S0) se dá com o comando do botão de início (E0), desde que o atuador B esteja recuado (rolete B0, E3). Quando A chega ao fim de curso e aciona o rolete A1 (E2), o avanço de B é comandado (S2). Quando B chega ao fim de curso e aciona o rolete B1 (E4), é comandado o recuo de A (S1). Finalmente, quando A aciona o rolete A0 (E1), é comandado o recuo de B. Para seqüências indiretas, pode-se utilizar o método de maximização de contatos ou de minimização de contatos [Parker, 2001] para geração do programa em Ladder. Nessa apostila será mostrada a utilização da representação em SFC, por ser mais poderosa no sentido de permitir uma mais fácil representação de seqüências alternativas e eventuais alterações na seqüência de acionamento. No Capítulo 5 é mostrada uma metodologia para conversão de programas representados em SFC para a linguagem Ladder. 4.2 - Automação pneumática utilizando SFC Como mencionado anteriormente, a representação SFC permite a programação de movimentos seqüenciais de uma forma por meio de uma linguagem gráfica e de fácil interpretação. Para seqüências pneumáticas indiretas, uma das soluções mais simples é a utilização de SFC. Cada um dos movimentos da seqüência deve ser representada por um passo do SFC, e cada confirmação de movimento (sensores fim de curso) dispara uma transição. 49 O exemplo a seguir mostra a programação de uma seqüência simples. Exemplo 4.2: O SFC a seguir mostra a programação da seqüência A+ B+ B- A-. 11 22 ST A1 33 NN Recuar ARecuar A A0A0 NN Recuar BRecuar B B0B0 B0A0× NN Avançar AAvançar A A1A1 B1 44 NN Avançar BAvançar B B1B1 B0 55 NN Recuar BRecuar B B0B0 A0 66 NN Recuar ARecuar A A0A0 2 3 4 5 6 1 O passo inicial, 1, comanda o recuo dos cilindros A e B de modo a levar o sistema a sua posição inicial. A transição 1 é disparada quando os sensores A0 e B0 confirmam essa posição. No passo 2, nenhuma ação é executada. Apenas é aguardado que seja pressionado o botão ST para o disparo da transição 2. Os passos 3, 4, 5 e 6 executam cada um dos movimentos da seqüência. A cada passo aguarda-se a confirmação do término do movimento indicado pelo respectivo sensor. Ao término da seqüência, após o recuo do atuador A, o programa retorna para o passo 2, em que se aguarda um novo comando pelo botão ST. 50 Exemplo 4.3: O SFC a seguir mostra a programação da seqüência A+ B+ A- A+ A- B-. 11 22 ST A1 33 NN Recuar ARecuar A A0A0 NN Recuar BRecuar B B0B0 B0A0× NN Avançar AAvançar A A1A1 B1 44 NN Avançar BAvançar B B1B1 B0 88 NN Recuar BRecuar B B0B0 A0 55 NN Recuar ARecuar A A0A0 2 3 4 8 5 1 A1 66 NN Avançar AAvançar A A1A1 6 A0 77 NN Recuar ARecuar A A0A0 7 Seqüências em que dois ou mais movimentos ocorrem simultaneamente são representados da seguinte forma: A+ B+ (A- B-) C+ C-. Nesse caso, após o avanço de B, o recuo de A e B ocorrem simultaneamente. É importante observar que, como o recuo de A não tem necessariamente a mesma duração do recuo de B, é necessária a confirmação de ambos os movimentos antes que seja comandado o avanço de C. 51 Exemplo 4.4: Seqüência A+ B+ (A- B-) C+ C-. 11 22 ST A1 33 NN Recuar ARecuar A A0A0 NN Recuar BRecuar B B0B0 C0B0A0 ×× NN Avançar AAvançar A A1A1 B1 44 NN Avançar BAvançar B B1B1 2 3 4 1 NN Recuar CRecuar C C0C0 55 5 NN Recuar ARecuar A A0A0 NN Recuar BRecuar B B0B0 B0A0×C1 66 NN Avançar CAvançar C C1C1 6 C0 77 NN Recuar CRecuar C C0C0 7 52 Exemplo 4.5: Após pressionado um botão ST, um sistema pneumático deve avançar um cilindro A. Após o término desse avanço, dois cilindros B e C devem avançar e recuar, não necessariamente sincronizadamente. Após o recuo de ambos, o cilindro A deve recuar. 11 22 ST A1 33 NN Recuar ARecuar A A0A0 NN Recuar BRecuar B B0B0 C0B0A0 ×× NN Avançar AAvançar A A1A1 2 3 1 NN Recuar CRecuar C C0C0 44 4 66 5 55 77 6 NN Avançar BAvançar B B1B1 NN Recuar BRecuar B B0B0 NN Avançar CAvançar C C1C1 NN Recuar CRecuar C C0C0 88 7 NN Recuar ARecuar A A0A0 B1 C1 C0B0× A0 53 Exemplo 4.6: Após pressionado um botão ST, um sistema pneumático deve avançar um cilindro A. Após o término desse avanço, a posição de uma chave seletora CH determinará qual das seqüências B+ B- ou C+ C- será realizada. Após o término dessa seqüência, o cilindro A deve recuar. CHA1× 11 22 ST 33 NN Recuar ARecuar A A0A0 NN Recuar BRecuar B B0B0 C0B0A0 ×× NN Avançar AAvançar A A1A1 2 1 NN Recuar CRecuar C C0C0 44 4 66 7 55 77 NN Avançar BAvançar B B1B1 NN Recuar BRecuar B B0B0 NN Avançar CAvançar C C1C1 NN Recuar CRecuar C C0C0 88 9 NN Recuar ARecuar A A0A0 B1 C1 A0 3 6 CHA1× B05 8 C0 4.3 - Exercícios Exercício 4.1: Faça um programa em Ladder para o comando da seguinte seqüência de acionamento de cilindros pneumáticos: A+ C+ B+ A- C- B- Pede-se: (a) Diagrama pneumático (b) Diagrama de ligações de sensores e atuadores no CLP (c) Tabela de sinais (d) Programa em Ladder 54 Exercício 4.2: Faça um programa em SFC para o comando da seguinte seqüência de acionamento de cilindros pneumáticos: A+ C+ C- B+ A- B- 55 5. Conversão de Programas em SFC para Ladder Apesar de alguns ambientes de programação de CLPs possuírem a opção de se programar diretamente em SFC (ou Graphcet), essa opção pode não ser atraente, já que seria necessária a aquisição de uma licença para a utilização de tal ambiente. Como a linguagem Ladder é normalmente a mais utilizada, pode ser interessante realizar o projeto do sistema em SFC e depois convertê-lo para Ladder. Esse capítulo mostra uma metodologia objetiva para realizar tal conversão, o que minimiza ou extingue a possibilidade de erros. 5.1 - Representação dos passos Cada passo de um SFC pode, em um determinado momento, estar ativo ou inativo. Dessa forma, para cada passo é utilizado um bit de memória para representar seu estado. É conveniente representar cada passo por um bit de memória com a mesma numeração de seu endereço, ou seja, passo 1 como M1, passo 2 como M2 etc. Para SFCs com mais de 8 passos, é conveniente numerá-los segundo a base de numeração octal. Na base octal, cada dígito de um número pode possuir valores de 0 a 7, ou seja, o número sucessor de 7 é 10, o de 17 é 20, e assim por diante. Assim, se tem a seguinte relação: Passo Memória Passo Memória Passo Memória 0 M0.0 10 M1.0 20 M2.0 1 M0.1 11 M1.1 21 M2.1 2 M0.2 12 M1.2 22 M2.2 3 M0.3 13 M1.3 23 M2.3 4 M0.4 14 M1.4 24 M2.4 5 M0.5 15 M1.5 25 M2.5 6 M0.6 16 M1.6 26 M2.6 7 M0.7 17 M1.7 27 M2.7 Para cada ação, deve ser criada uma linha no programa Ladder, que deve ser executada apenas quando o respectivo passo estiver ativo. A forma de se programar cada ação depende de seu qualificador. 56 Qualificadores S e R (set e reset) Os qualificadores S e R devem setar ou resetar um sinal de saída quando o passo correspondente estiver ativo. Utilizam-se então bobinas com retenção (S e R) que são ativadas pelas memórias correspondentes aos passos em que são realizadas as ações. A Figura 5.1 mostra a programação em Ladder de uma ação com qualificador S e a Figura 5.2 mostra a programação de uma ação com qualificador R. 33 SS S3.2S3.2 M0.3 ( ) S3.2 S Figura 5.1 – Programação em Ladder de ação com qualificador S. 77 RR S3.2S3.2 M0.7 ( ) S3.2 R Figura 5.2 – Programação em Ladder de ação com qualificador R. Caso dois passos diferentes referenciem uma mesma saída com o mesmo qualificador (por exemplo, uma saída pode ser setada em dois pontos diferentes do programa), pode-se utilizar uma lógica ou entre as memórias correspondentes aos dois passos, com o objetivo de se diminuir o tamanho do programa. Porém, dada a característica das bobinas S e R de serem executadas apenas se a condição de ativação for verdadeira, não há problema em se programarem duas linhas em Ladder que referenciem a mesma saída com bobinas S e R (ver Figura 3.9). Qualificador N (ou nenhum) O qualificador N (ou nenhum qualificador especificado) realiza ações que somente são válidas enquanto o passo correspondente está ativo. Portanto, nesse caso, utiliza-se bobinas comuns (sem retenção), como mostrado na Figura 5.3. 57 1515 NN S2.1S2.1 M1.5 ( ) S2.1 Figura 5.3 – Programação em Ladder de ação com qualificador N. Diferentemente das bobinas com retenção (S e R) que são executadas somente quando a condição de ativação é verdadeira, as bobinas comuns são sempre executadas, escrevendo na saída valor verdadeiro caso a condição seja verdadeira, e falso caso a condição seja falsa. Dessa forma, caso uma mesma ação com qualificador N seja executada em mais de um passo, deve ser utilizada uma condição de acionamento OU entre as memórias correspondentes aos passos em que a ação é executada (Figura 5.4). 88 NN S2.5S2.5 1414 NN S2.5S2.5 M0.8 ( ) S2.5 M1.4 Figura 5.4 – Programação em Ladder de uma mesma ação N acionada em dois passos diferentes. Qualificador D O qualificador D determina que a ação deve ser iniciada após decorrido um intervalo de tempo especificado desde a ativação do passo, e finalizada quando o passo é desativado. Caso o passo seja desativado antes de a ação ser iniciada, a mesma não é executada (Figura 5.5). 58 Passo ativo t Ação Passo ativo t Ação Figura 5.5 – Execução da ação com qualificador D. A programação dessa ação em Ladder é feita pela utilização de um temporizador TON acionado pela memória correspondente ao passo em que a ação pe executada. 14 D T#8s S5.3 M1.4 ( )( )( ) S5.3TON IN 8s PT Q ET Figura 5.6 – Programação em Ladder de ação com qualificador D. Qualificador L O qualificador L determina que a ação deve ser iniciada e mantida enquanto o passo estiver ativo e enquanto o tempo especificado não tiver sido atingido, ou seja: Passo ativo t Ação Passo ativo t Ação Figura 5.7 – Execução da ação com qualificador L. A programação em Ladder deve utilizar uma memória auxiliar que é acionada quando decorrido o tempo t após o passo acionado. A execução da ação depende do 59 passo estar acionado e a memória auxiliar não estar ativa, como mostrado na Figura 5.8. 10 L T#4s S3.2 M1.0 ( )( )( ) M9.0TON IN 4s PT Q ET M1.0 M9.0 ( ) S3.2 Figura 5.8 – Programação em Ladder de ação com qualificador L. Qualificador P O qualificador P (pulso) determina que a ação deve ser executada durante um intervalo de tempo muito pequeno, ou seja, durante um ciclo de varredura do programa. 2323 PP S2.7S2.7 ( )( )( ) S2.7M2.3 P Figura 5.9 – Programação em Ladder de ação com qualificador P. Qualificador SD O qualificador SD determina que
Compartilhar