Baixe o app para aproveitar ainda mais
Prévia do material em texto
AULA 3 AUTOMAÇÃO E CONTROLE INDUSTRIAL Profª Carla Eduarda Orlando de Moraes de Lara 2 CONVERSA INICIAL Continuando nossos estudos sobre os controles industriais, trataremos, nesta aula, dos controladores lógicos programáveis, que surgiram como soluções em termos de flexibilidade de reprogramação de funções. Com os antigos painéis a relés, qualquer mudança na lógica implicava em mudanças físicas, o que implicava em custos e tempo. Neste contexto, surgem os controladores lógicos programáveis, com o objetivo de trazer agilidade e mais versatilidade aos processos industriais. Durante esta aula, conheceremos a história desses controladores, sua arquitetura, suas funções, além de vermos como se dá sua programação. TEMA 1 – INTRODUÇÃO AOS CONTROLADORES LÓGICOS PROGRAMÁVEIS O primeiro Controlador Lógico Programável (CLP) surgiu no final da década de 1960, General Motors, uma indústria do ramo automobilístico ainda em atuação. Nessa indústria havia uma grande necessidade de flexibilizar e otimizar as plantas de produção de veículos. Naquela época, os painéis a relés faziam o papel do CLP, porém, qualquer alteração de projeto ou layout das plantas necessitava de longas e custosas paradas nas linhas de produção. Aproveitando que o primeiro microprocessador havia acabado de ser fabricado pela Intel, a General Motors determinou critérios para o desenvolvimento do CLP, que por sua vez foi desenvolvido pela Gould Modicom, em 1969. Por meio da criação do CLP, não havia mais a necessidade de desmontagem de grandes painéis de comandos elétricos para manutenções, pois os processos se tornaram mais simplificados, reduzindo tempo, mão de obra e obtendo lucros significativos, uma vez que a operação consistia em um computador e uma pessoa para realizar a programação do dispositivo. Como qualquer dispositivo recente, as melhorias vieram rapidamente, agregando, ano após ano, funções novas ao controlador. Entre essas funções podemos mencionar: temporização e contagem, operações aritméticas, comunicação com interfaces homem-máquina, inclusão de controles analógicos e comunicação via rede. Falando especificamente de sua definição, podemos definir o CLP como um computador que faz uso de instruções armazenadas para executar ações de lógicas, temporização e outras funções, por meio de entradas e saídas, que irão 3 controlar os sistemas de produção (Groover, 2011). Embora existam diferentes modelos, ambos contam com a mesma arquitetura, a qual discutiremos na sequência. 1.1 Arquitetura do CLP A arquitetura de um CLP é formada por três elementos fundamentais, sendo estes: Unidade central; Unidade de entrada/saída; Unidade de programação. A Figura 1 ilustra como se relacionam cada uma das unidades. Por meio da causa, podemos verificar que a unidade de entrada/saída, também chamada de unidade I/O, realiza a comunicação entre o CLP e as máquinas ou processos. Além disso podemos verificar que a unidade central recebe as informações da unidade I/O, realizando ações baseadas no programa de instruções que está armazenado na memória. A unidade de programação é a interface que o usuário conta para programação do CLP. Figura 1 – Sistema de controle em malha aberta Fonte: Adaptado de Prudente, 2015 Alimentação também desempenha funções essenciais no CLP, e será discutida na sequência. Ademais, cada uma das unidades também será melhor explorada. 4 1.1.1 Alimentação A fonte de alimentação é responsável pela energização dos módulos internos e externos do CLP, tendo também como objetivo manter a carga das baterias internas do dispositivo, que são responsáveis pelo sistema de horário e pelo sistema de memórias do CLP. Além disso, a fonte de alimentação é responsável por fornecer tensão para a alimentação das entradas e saídas do controlador. No caso de CLPs modulares, se mais módulos de entradas e saídas forem agregados ao sistema, se faz necessário o uso de mais fontes de alimentação. 1.1.2 Unidade de Entrada A unidade de entrada do CLP faz o tratamento dos sinais que entram no dispositivo, para que eles possam ser processados pela unidade Central de Processamento (CPU). A unidade de entrada pode receber sinais digitais ou analógicos. Sinais digitais são aqueles que possuem apenas dois estados possíveis, ligado ou desligado. Alguns exemplos de dispositivos que podem ser ligados nos módulos de entradas digitais são as botoeiras, chaves fim-de-curso, sensores de proximidade e sensores de nível. Além dos sinais digitais, as unidades de entrada também podem receber e tratar dados de forma analógica, que chegam no dispositivo em sinais de corrente ou tensão. Alguns exemplos de entradas analógicas são: sensores de pressão, transmissores de temperatura, transmissores de luminosidade e de umidade relativa. 1.1.3 Unidade de Saída A unidade de saída ou interfaces de saída adequam eletricamente os sinais vindos da CPU para que seja possível atuar nos circuitos controlados. Da mesma forma que a unidade de entrada, a unidade de saída atua com dois tipos de sinais, os digitais e os analógicos. Alguns dispositivos comuns de atuação das unidades de saída digitais são: relés, contatores, solenoides e válvulas. Da mesma forma, algumas saídas analógicas convencionais podem ser exemplificadas como: válvulas proporcionais, motores CC, servomotores CC, inversores de frequência e posicionadores rotativos. 5 1.1.4 Unidade Central A unidade central é a parte mais importante do CLP, pois é responsável pelo gerenciamento de todos os outros dispositivos e ainda abriga a CPU. A central faz o tratamento de dados, gerenciamento da memória e a interface do dispositivo físico com a interface de programação. De forma geral, a unidade central do controlador faz a leitura dos valores lógicos presentes na unidade de entrada, executa as instruções realizadas no programa carregado no dispositivo, e transmite o resultado para a unidade de saída. 1.1.5 Unidade de Programação Alguns modelos de CLP possuem uma interface de programação denominada IHM, que permite o usuário desenvolver uma lógica de programação diretamente em um visor alocado fisicamente no dispositivo. Entretanto, para aplicações mais complexas, se faz o uso de um computador pessoal para realizar a programação e a transferência da mesma para o controlador. TEMA 2 – PRINCÍPIO DE FUNCIONAMENTO Trataremos agora de como ocorre a execução das ações em um CLP, dos seus modos de operação, sua classificação quanto a sua estrutura física e suas capacidades adicionais. 2.1 Ciclo de varredura Podemos definir como princípio fundamental de funcionamento de um CLP como a execução, pela CPU, do programa de instruções armazenado nela. No entanto, para que a execução seja correta, o CLP realiza esse trabalho de forma cíclica. A esse ciclo atribuímos o nome de ciclo de varredura, que também é chamado de scanning (Silveira; Santos, 2009). A Figura 2 apresenta o fluxograma do ciclo de varredura. 6 Figura 2 – Ciclo de varredura de um CLP Fonte: Adaptado de Silveira e Santos, 2009 Analisando a imagem, podemos verificar que esse ciclo começa pela leitura das entradas, ou seja, a cada ciclo a CPU realiza esta leitura como o objetivo de atualizar mudanças nos estados das entradas. Após a leitura das entradas, a CPU passa a executar o programa de instruções. Por meio das informações e da lógica são definidas ações de controle, as quais são enviadas para as saídas, e com isso ciclo se fecha com a atualização das saídas. O tempo de duração do ciclo, que também pode ser definido como tempo total para execução das tarefas, depende de fatores como: características do processador empregado, tamanho do programa de instruções e a quantidade de entradas/saída utilizadas. Podem ocorrer situações em que o CLP não possa esperar o finaldo ciclo de varredura para tratar alguma situação. Quando isso ocorre, entra em ação uma rotina para tratamento de interrupções. A CPU pode operar de quatro maneiras distintas. A seguir, entraremos em detalhes sobre os modos de operação possíveis dentro de um CLP. 2.2 Modos de operação A CPU pode operar conforme a necessidade da situação na qual se encontra. Estes modos são definidos como: 7 Modo de Programação; Modo Stop; Modo Run; Modo Reset. Agora vamos explorar um pouco mais sobre cada um destes modos. Começando com o modo de programação, como o próprio nome já diz, neste modo a CPU permite que seja realizada a programação do CLP. Quando o CLP está no modo programação, ele permite que seja realizado o download do programa de instruções contendo a lógica de programação do processo. Em seguida, após o download do programa, o CLP pode ser colocado em operação, que no caso é o modo RUN. No modo RUN o CLP executa seu ciclo de operação, realizando os procedimentos descritos no ciclo de varredura, realizando ações conforme a lógica implementada. Neste modo, o CLP pode realizar a comunicação com outros dispositivos, como demais CLPs e IHMs. Esta comunicação é realizada por meio das redes industriais, que também serão estudadas nesta disciplina. Enquanto que no modo Stop o CLP fica parado, ou seja, todos as atualizações de saídas são paradas. Nessas condições é possível realizar a verificação das entradas com o objetivo de detectar erros e falhas. Além disso, nesse modo, o CLP não aceita downloads de programa e nem executa programas que já estejam em sua memória. Por fim, o modo Reset é responsável por restaurar as condições de fábrica do CLP, isto é, todas as ações definidas pelos programas de instruções são restauradas para as condições iniciais do CLP. 2.3 Capacidades adicionais do CLP Além das capacidades de controle lógico e sequenciamento, que representam as principais funções do CLP, os mesmos podem apresentar capacidades adicionais. Com a evolução destes controladores, foram aprimorando suas funções, com o objetivo de incrementar suas funções. Segundo Groover (2011), algumas das capacidades adicionais dos CLPs são: Controle analógico: nessa função é possível implementar controle analógico mesmo em controladores digitais, como no caso do CLP. Um exemplo disto é o controle proporcional-integral-derivativo (PID), que 8 originalmente foi desenvolvido por controladores analógicos, porém hoje já é disponibilizado no CLP. Funções aritméticas: o CLP possui capacidade de lidar com operações aritméticas do tipo soma, subtração, multiplicação e divisão. Isto faz com que seja possível a implementação de lógicas mais complexas. Processamento e relatório de dados: é possível obter relatórios das operações, o que é útil nas aplicações de negócios de PCs. TEMA 3 – LINGUAGENS DE PROGRAMAÇÃO E NORMA IEC 61131-3 Para que seja possível a comunicação com a CPU do controlador lógico programável, é necessária implementação de um programa de instruções, que é escrito em forma de código e pode ser compilado, para que vire uma lista de instruções para o CLP. Esse código é escrito respeitando uma linguagem de programação, que é comumente dividida em duas vertentes, linguagens de baixo nível e linguagens de alto nível. As linguagens de baixo nível são as que se mais se assemelham a linguagem de máquina, e tem como objetivo se comunicar com o computador mais rapidamente, de uma forma mais eficaz e otimizada. Por isso, as linguagens de programação de baixo nível atuam diretamente nos bits e bytes do processador sendo programado, encurtando o caminho ao serem traduzidas a linguagem de máquina. Este tipo de linguagem está diretamente relacionado com a arquitetura do processador que é programado, pois se faz necessário conhecer a lista de instruções e registradores específicos de cada componente. A linguagem de programação de baixo nível mais conhecida atualmente é a Assembly. Já as linguagens de alto nível são as que mais se assemelham com a linguagem humana, e tem como objetivo facilitar a maneira de programar, fazendo com que o programador se expresse de maneira mais simples e concisa. Na linguagem de alto nível, as informações de registradores e lista de instruções não são necessárias, pois a própria linguagem já faz interface com processador. Algumas das linguagens de programação de alto nível mais comuns são: Java, C, C++, Python e C#. A evolução dos controladores lógicos programáveis acabou levando a uma grande quantidade de marcas e modelos de equipamentos, e como consequência, gerou uma incompatibilidade em relação a programação dos mesmos. 9 Devido à demanda de uma padronização das linguagens, um grupo de trabalho dentro da International Electrotechnical Comission (IEC) foi formado, para avaliar um projeto completo de CLP, envolvendo hardware, instalação, testes, documentação, programação e documentação. Várias forças-tarefa com empresas especialistas foram criadas para atender a demanda de todas as variáveis a serem discutidas. Dentro da norma, a força-tarefa número três ficou responsável pela padronização das linguagens de programação, estrutura de software e execução de programas do CLP, e está parte da norma que abordaremos na sequência. 3.1 Norma IEC 61131-3 A norma define cinco linguagens de programação, cada uma com suas características, de forma a cobrir a maioria das necessidades de controles atuais. As linguagens definidas são divididas em duas partes, linguagens textuais e linguagens gráficas. São definidas como linguagens textuais: texto estruturado, e lista de Instruções. Enquanto as linguagens gráficas são definidas como: linguagem ladder, diagrama de blocos e sequenciamento gráfico de funções. Trataremos agora de cada uma delas, verificando seu funcionamento e suas características. 3.1.1 Texto estruturado A linguagem texto estruturado, do inglês structured text (ST), é composta por escritas denominadas statements, separados por ponto e vírgula. Esses statements utilizam funções e sub-rotinas pré-definidas para alterar variáveis e colocar o programa em funcionamento. A linguagem estruturada trabalha de uma forma simples com a estrutura de laços de repetição, contadores e lógicas de condição, como if, then e for. É considerada a mais robusta dentre as cinco linguagens de programação do CLP. Isso porque quando um programa, escrito nas outras linguagens, é compilado, o código é convertido para uma linguagem de máquina, que na verdade é o texto estruturado. Logo, todos os demais códigos nas outras linguagens são traduzidos para o texto estruturado, por meio da compilação. 10 3.1.2 Lista de instruções A linguagem denominada lista de instruções, do inglês Instruction List, (IL), se assemelha à linguagem Assembly, utilizando o código através de mnemônicas padronizados na norma IEC 61131-3. Esse tipo de linguagem é mais recomendado para programas pequenos com poucas quebras no fluxo de execução, que são implementados em CLPs de pequeno porte. Pelo fato dessa linguagem ser parecida com a Assembly, ela interage de forma mais rápida com o CPU do controlador. Entretanto, é uma linguagem complexa para programação, pois é necessário ter familiaridade com linguagens de baixo nível. 3.1.3 Linguagem ladder A linguagem ladder foi desenvolvida com base nas lógicas de relés e comandos elétricos, fazendo com que seus diagramas sejam facilmente entendidos pelo pessoal do chão de fábrica, que algumas vezes podem não ter familiaridade com programação. Por ser uma linguagem de alto nível, não é necessário conhecer a estrutura interna do CLP para que um programa seja desenvolvido, é necessário apenas certa familiaridade com a linguagem. Ela recebe esse nome devido a sua estrutura de forma gráfica ser parecida com uma escada(ladder), em que cada linha de código é definida comumente como degrau (Rung). Por ser a linguagem mais utilizada na programação de CLPs, vamos discorrer a respeito dela em um tema adiante. 3.1.4 Diagrama de blocos Os diagramas de blocos, ou blocos de função, são blocos elementares, que também são utilizados dentro das outras linguagens de programação. Esses blocos deixam o código muito mais dinâmico e faz com que as linguagens sejam mais flexíveis. Os principais blocos de função utilizados são: Blocos biestáveis; Blocos contadores; Blocos temporizadores. As outras linguagens normalmente possuem bibliotecas com blocos de função, que são padronizadas, alterando-se apenas os parâmetros de entrada e 11 saída. Pelos blocos de função também serem muito utilizados nas linguagens de programação, também trataremos deles com mais detalhes no próximo tema. 3.1.5 Sequenciamento gráfico de instruções O sequenciamento gráfico de instruções, do inglês sequential function chart (SFC), é baseado em GRAFCET, acrônimo do francês Graphe Fonctionnel de Commande, Étapes Transitions, que é uma metodologia que surgiu com a necessidade da criação de sequências gráficas para processos sequenciais. O SFC possui conceitos básicos que são utilizados para que se forme a sequência de operações, são eles: etapa, ação associada à etapa, transição e condição associada à transição. A conexão entre as etapas é demonstrada na Figura 3. Cada etapa é representada por um quadrado no qual consta o número relacionado à esta. À direita do quadrado são apresentadas as ações que serão executadas naquela etapa. E a transição de uma etapa para outra é representada por um traço, e está relacionada a condição lógica que fará com que o processo avance de uma etapa para outra. Figura 3 – Conexão entre as etapas Fonte: Adaptado de Prudente, 2015 TEMA 4 – BLOCOS DE FUNÇÕES Como discutimos anteriormente, blocos de função são também utilizados nas outras linguagens de programação. A conexão dos blocos de função é orientada, ou seja, os dados entram pela esquerda e saem pela direita, seguindo o fluxo de programação das linguagens gráficas utilizadas no CLP. Falaremos agora sobre os blocos de função mais utilizados. 12 4.1 Blocos biestáveis Os blocos biestáveis, conhecidos por bobinas Set e Reset, realizam a memorização do estado atribuídos a eles, seja ligado ou desligado. As bobinas convencionais alteram seu estado quando energizadas ou desenergizadas. As bobinas com função Set e Reset armazenam um estado em uma variável toda vez que uma borda de subida é identificada. Seu estado permanece, mesmo que a bobina seja desenergizada, até que outra chamada futura faça a alteração de seu valor. As bobinas Set e Reset são representadas Figura 4(a) e 4(b), respectivamente, por meio da qual podemos observar sua simbologia. Figura 4 – Simbologia das bobinas de Set/Reset Crédito: Carla Eduarda Orlando de Moraes de Lara. 4.2 Blocos Contadores Os blocos contadores são muito úteis no desenvolvimento de programas complexos. Os contadores contabilizam eventos, que acionam suas entradas e, após determinada quantidade de eventos, acionam suas saídas. Os contadores são normalmente divididos em crescentes e decrescentes. O contador crescente, do inglês counter up (CTU), é representado na Figura 5. Figura 5 – Representação de um contador crescente Crédito: Carla Eduarda Orlando de Moraes de Lara. 13 Este conta os pulsos em sua entrada e armazena internamente até que o valor máximo programado seja atingido, assim, acionando sua saída e zerando os pulsos já contabilizados. O contador decrescente, do inglês conter down (CTD), é apresentado na Figura 6. Ele tem os mesmos princípios do contador crescente, porém, ao invés de somar o contador com os pulsos, subtrai o valor da variável iniciada como valor inicial. Figura 6 – Representação de um contador decrescente Crédito: Carla Eduarda Orlando de Moraes de Lara. 4.3 Blocos Temporizadores Os blocos temporizadores são os blocos mais utilizados no desenvolvimento de aplicações de CLP. Basicamente tem como função atrasar as ações. São divididos em temporizadores de atraso na subida e temporizadores de atraso na descida. 4.3.1 Temporizadores de atraso na subida Os temporizadores de atraso na subida, também chamados de TON (sigla que representa Turn-on Delay), ao receberem um pulso na entrada do bloco, fazem a contagem do tempo pré-determinado, e ao final da contagem do intervalo de tempo, acionam a saída, até que haja alteração no valor da entrada. Caso o pulso de entrada seja menor que o tempo pré-determinado no bloco, a saída não é acionada. O temporizador de atraso na subida é representado na Figura 7, sendo possível observar os parâmetros deste bloco. 14 Figura 7 – Representação de um temporizador TON Crédito: Carla Eduarda Orlando de Moraes de Lara. 4.3.2 Temporizador de atraso na descida Os temporizadores de atraso na descida, também chamados de TOF (sigla que representa Turn-off Delay), funcionam, de uma forma particular, um pouco diferente do bloco TON. Ao receberem um pulso na entrada, acionam diretamente a saída, e permanece ativo, sem contagem do tempo, até que a entrada seja desativada. Quando a entrada é desativada, o tempo pré-determinado começa a contar, deixando a saída ativa pelo tempo definido no bloco. Este temporizador é ilustrado na Figura 8, também sendo possível observar seus parâmetros. Figura 8 – Representação de um temporizador TOF Crédito: Carla Eduarda Orlando de Moraes de Lara. Exemplos da aplicação de todos os blocos estudados podem ser encontrados no livro de Prudente (2015). TEMA 5 – PROGRAMAÇÃO EM LADDER A linguagem ladder se assemelha muito com a lógica de comandos elétricos que vimos nas aulas anteriores, contando com praticamente os mesmos dispositivos, porém, representados graficamente de forma diferente. Isto é normal pois, como já discutido, essa linguagem é baseada na lógica de relés. O diagrama de ladder é constituído de três componentes, sendo eles: entradas (contatos), saídas (bobinas) e blocos de função. 15 Existem dois tipos de entradas na linguagem Ladder, o contato normalmente aberto (NA) e o contato normalmente fechado (NF), apresentados na Figura 9(a) e 9(b), respectivamente. Figura 9 – Simbologia dos elementos em ladder Crédito: Carla Eduarda Orlando de Moraes de Lara. As saídas são representadas por bobinas, que podem ser bobinas convencionais como a representada na Figura 9(c), ou então bobinas com funções Set e Reset, como já vistas. Os contatos e bobina são associados, juntamente com os blocos de funções, formando assim o programa de instruções do CLP. Os contatos mudam de posição quando energizados, ou seja, se um contato é NA quando é energizado se fecha e passa a conduzir. Já um contato NF quando é energizado se abre e passa a bloquear a passagem de corrente. Isso faz com que contatos NA sejam empregados para ligar bobinas, enquanto contatos NF sejam utilizados para desligar bobinas. Todas as funções lógicas E, ou, inversora, Não-E e Não-OU podem ser implementadas apenas com a associação em série ou em paralelo de contatos NA e NF. Para programar em ladder é necessário conhecer como ocorre seu ciclo de execução do código. Um diagrama ladder é composto por duas linhas verticais, e são ligadas por contatos e bobinas, formando uma espécie de escada, como já mencionado que foi o que originou o nome da linguagem. A execução do código contido no diagrama ocorre de cima para baixo e da esquerda para a direita. A Figura 10 ilustra um exemplo de diagrama ladder. Figura 10 – Exemplo de diagrama em ladder Crédito: Carla Eduarda Orlando de Moraes de Lara. 16 O diagrama apresentado possui duas entradas, I0 e I1, e uma saída Q0. Podemospensar que esse código faz o acionamento de uma lâmpada, por exemplo. Logo, a entrada I0 estaria conectada a um botão de desliga, enquanto a entrada I1 estaria conectada a um botão de ligar, e a saída Q0 estaria conectada à lâmpada. Quando acionado o botão de ligar, o contato da entrada I1 se fecha e a bobina é energizada, já quando é acionado o botão de desligar o contato da entrada I0 é acionado e muda de fechado para aberto. Isso faz com que o circuito se abra e ocorra a desenergização da bobina. Esse é um exemplo bem simples que ilustra um acionamento de uma saída com a possibilidade de desligamento. No entanto, várias lógicas podem ser implementadas seguindo o mesmo raciocínio. Outros exemplos podem ser encontrados nos livros citados durante esta aula, especialmente no livro de Prudente (2015). 17 REFERÊNCIAS GROOVER, M. Automação industrial e sistemas de manufatura. 3. ed. São Paulo: Pearson Prentice Hall, 2011. PRUDENTE, F. Automação industrial PLC: teoria e aplicações: curso básico. Rio de Janeiro: LTC, 2015. SILVEIRA, P. R. da; SANTOS, W. E. Automação e Controle Discreto. 9. ed. São Paulo: Érica, 2009.
Compartilhar