Baixe o app para aproveitar ainda mais
Prévia do material em texto
INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E GESTÃO Notas de Apoio à Disciplina de Automação e Robótica Engenharia Informática Paulo Jorge Pinto Leitão Bragança, Setembro de 2004 Automação e Robótica 2 Índice 1 AUTOMAÇÃO DE PROCESSOS 5 1.1 Introdução aos Autómatos Programáveis 6 1.2 Arquitectura dos Autómatos Programáveis 7 1.2.1 Unidade Central de Processamento 8 1.2.2 Memória 9 1.2.3 Unidade de programação 11 1.2.4 Módulos de Entrada e Saída 12 1.2.5 Fonte de Alimentação 13 1.2.6 Cartas Especiais 13 1.3 Funcionamento 14 1.4 Aplicações dos Autómatos Programáveis 15 2 PROGRAMAÇÃO BÁSICA DE AUTÓMATOS PROGRAMÁVEIS 17 2.1 Escrita de programas 17 2.1.1 Fluxogramas e Algoritmia 17 2.1.2 Linguagens de Programação para Autómatos 20 2.1.3 Procedimentos básicos para a escrita de um programa 20 2.2 Endereçamento da memória 21 2.3 Instruções Básicas 22 2.3.1 LOAD 22 2.3.2 OUTPUT 22 2.3.3 AND 23 2.3.4 OR 24 2.3.5 END 24 2.3.6 Instruções Lógicas de Bloco 26 2.3.7 Combinação de instruções AND LOAD e OR LOAD 27 2.3.8 Execução de Várias saídas 29 2.3.9 SET e RESET 29 2.3.10 DIFFERENTIATE UP, DIFFERENTIATE DOWN 30 2.3.11 Instruções de Bifurcação 30 2.3.12 KEEP 31 2.4 Temporizadores 34 2.4.1 Temporizador ao Impulso 36 2.4.2 Temporizador após a operação 37 2.4.3 Temporizador de alta velocidade 38 2.5 Contadores 38 2.5.1 CNT 38 2.5.2 Contador reversível CNTR 39 2.5.3 Exemplo de aplicação 40 2.6 Instruções de Manipulação de Dados 41 Automação e Robótica 3 2.6.1 MOVE 41 2.6.2 MOVE NOT 42 2.6.3 Instruções Diferenciais 42 2.6.4 Endereçamento Indirecto 43 2.7 Interrupções 43 2.8 Subrotinas 45 3 MODELAÇÃO DE SISTEMAS COMPLEXOS CONDUZIDOS POR EVENTOS 47 3.1 Introdução ao Grafcet 47 3.2 Especificação Funcional e Tecnológica 48 3.2.1 Especificação Funcional 48 3.2.2 Especificação Tecnológica 48 3.3 Conceitos Básicos do Grafcet 48 3.3.1 Etapas 48 3.3.2 Transições 49 3.4 Princípio de Funcionamento 49 3.4.1 Inicialização 50 3.4.2 Validação 50 3.4.3 Disparo de uma transição 50 3.5 Representação de Sequências Simultâneas e Alternativas 53 3.5.1 Sequências Simultâneas - Paralelismo Estrutural (Nó AND) 53 3.5.2 Sequências Alternativas - Paralelismo Interpretado (Nó OR) 54 3.6 Conceitos Complementares 56 3.6.1 Acção Condicional 56 3.6.2 Temporização 56 3.7 Cooperação entre Processos 57 3.7.1 Sincronização 57 3.7.2 Partilha de Recursos 60 3.7.3 Subtarefas 62 3.8 Análise e Validação de Grafcet 65 3.8.1 Introdução à Análise de Grafcet 66 3.8.2 Grafcet Autónomo 66 3.8.3 Gráfico das situações acessíveis 66 3.8.4 Análise de Grafcet 67 4 INTRODUÇÃO À ROBÓTICA INDUSTRIAL 72 4.1 Introdução 72 4.2 Estrutura e Configuração de Robôs 73 4.2.1 Robôs Cartesianos ou Rectangulares 74 4.2.2 Robôs Cilíndricos ou Esféricos 74 4.2.3 Robôs Articulados 75 4.2.4 Movimento do Robô 76 4.2.5 Accionamento dos Robôs 77 Automação e Robótica 4 4.2.6 Tipos de Controlo de Movimento 78 4.3 Sensores e Actuadores para Robôs 78 4.3.1 Sensores de Tacto 79 4.3.2 Sensores de proximidade 79 4.3.3 Sistemas de visão artificial 80 4.3.4 Garras Mecânicas 80 4.3.5 Garras Magnéticas 81 4.3.6 Garras de Sucção 81 4.3.7 Garras com outros princípios de funcionamento 81 4.3.8 Ferramentas para robôs 82 4.4 Segurança na Robótica 82 4.4.1 Medidas de Protecção passivas 83 4.4.2 Medidas de Protecção Activas 83 4.5 Operação e Programação de Robôs Industriais 84 4.5.1 Métodos de Programação de Robôs 84 4.5.2 Programação “on-line” 84 4.5.3 Programação “off-line” 85 4.6 Aplicações Industriais 85 4.6.1 Manuseamento de materiais 85 4.6.2 Pintura 86 4.6.3 Soldadura 87 4.6.4 Operações de Montagem 87 5 REFERÊNCIAS BIBLIOGRÁFICAS 89 ANEXO - REPRESENTAÇÃO DA INFORMAÇÃO 90 Sistemas de Numeração 90 Sistema Decimal 91 Sistema Binário 91 Sistema Hexadecimal 92 Conversão entre Bases 93 Conversão de Decimal para Outra Base 93 Conversão de Outra Base para Decimal 94 Sistemas de Codificação Avançados 94 BCD (Binary Coded Decimal) 94 Código GRAY 95 Código ASCII 95 Álgebra de Boole 96 Operadores 96 Teoremas 97 Leis de Morgan 97 Automação e Robótica 5 1 AUTOMAÇÃO DE PROCESSOS Nos últimos anos, tem-se assistido a uma mudança drástica dos esquemas de produção. Isto deve-se, por um lado à crescente competição entre as empresas, por outro, ao enorme desenvolvimento das tecnologias que envolvem micro- controladores, robôs, máquinas de controlo numérico, redes de comunicação, inteligência artificial, etc. Em abstracto, todas as estratégias de produção visam um conjunto de objectivos, que na realidade corresponde a um só mais lato: o aumento da competitividade. Não é correcto dizer-se que o objectivo é o aumento da produtividade, pois de que serve produzir mais se não houver clientes para os produtos? Assim, automatização industrial poderá ser definida pelo conjunto de tecnologias relacionadas com a aplicação de equipamentos (mecânicos, electrónicos, baseados em computador, etc.) em sistemas industriais de produção, e que com ela é conseguido um aumento de competitividade (em termos de custos, qualidade, disponibilidade e inovação). Um sistema automatizado pode contribuir para o aumento da competitividade da empresa através da: − Redução de custos de pessoal: a redução de custos de pessoal obtém-se, por exemplo, com a automatização das máquinas (tem o seu custo...) ou com a automatização do controlo e planeamento da produção. − Redução de custos de stock (intermédios e terminais): devido ao controlo e planeamento da produção, que visa, entre outros aspectos, atingir stocks intermédios mantidos ao mínimo (stock zero), disponibilidade de produtos (atraso zero), optimização de compras graças ao controlo de produção em tempo real, etc. − Aumento da qualidade dos produtos: utilização de máquinas mais precisas do que o homem, o que garantem melhores características de repetibilidade (qualidade constante, não dependente de turnos particulares). − Maior disponibilidade dos produtos: redução do número de avarias. − Aumento da evolutibilidade: menos tempo necessário para o projecto, planeamento e fabrico de novos produtos, associado à utilização de máquinas programáveis aptas a desempenhar diferentes operações. − Aumento da flexibilidade da produção: resposta rápida às solicitações do mercado e capacidade de operar diferentes variantes de produtos. Um dos dispositivos mais importantes num sistema automatizado é o autómato programável (PLC - Programmable Logic Controller), que pode ser definido como um dispositivo electrónico e programável, destinado a comandar e controlar, em ambiente industrial e em tempo real, processos produtivos. O PLC surgiu com o objectivo de substituir os sistemas de controlo, desenvolvidos em lógica cablada, vulgarmente utilizados na indústria. Esta lógica cablada recorre à utilização de relés electromecânicos e de blocos lógicos interligados entre si, que apresenta algumas desvantagens, como sejam a complexidade de expansão e de alteração nas funções a desempenhar, os custos envolvidos na concepção do sistema Automação e Robótica 6 de controlo e a complexidade de realizar manutenção (por exemplo, detectar o estado de um sistema que engloba 1000 sensores e actuadores, é bastante complexo em lógica cablada, pois é necessário verificar localmente cada um dos dispositivos). 1.1 INTRODUÇÃO AOS AUTÓMATOS PROGRAMÁVEIS O PLC foi inicialmente concebido por um grupo de engenheiros da General Motors em 1968, tendo em mente algumas especificações básicas [Simpson, 94; Warnock, 88]: • Facilidade de programação e reprogramação; • Facilidade de manutenção e reparação, de preferência utilizando módulos plug-in; • Redução de dimensões em relação a um sistema equivalente em lógica cablada; • Redução de custos. Estes controladores programáveispretendiam, na altura em que foram concebidos, fornecer alguma flexibilidade de controlo, baseada na programação e modularidade de funções, além de reduzir o tempo de concepção e de instalação de sistemas de controlo. Figura 3.1 – Exemplo de um Autómato Programável O sucesso que se seguiu à introdução de PLCs no controlo de processos, provocou um incremento de grupo de engenheiros a estudar esta tecnologia emergente. Naturalmente e rapidamente, foi necessário criar funcionalidades adicionais aos PLCs. O conjunto de instruções disponíveis para a sua programação cresceu rapidamente desde as simples instruções lógicas (E, Ou, Negação, etc) para instruções avançadas, que incluíam contadores e temporizadores, e posteriormente, para instruções matemáticas avançadas. O desenvolvimento a nível do hardware também se verificou com o aumento das capacidades de memória e o aumento do número de entradas e saídas disponíveis. As possibilidades de comunicação surgiram aproximadamente em 1973. O primeiro sistema foi o Modbus da Modicon. Esta funcionalidade, permite que um PLC possa comunicar com outro PLC para trocar e partilhar informações, além de poderem estar afastados do processo que controlam. A falta de estandardização associada à mudança Automação e Robótica 7 contínua da tecnologia e aos protocolos de comunicação incompatíveis, faz com que as comunicações entre PLC´s sejam um pesadelo. Nos anos 80 houve um esforço para normalizar as comunicações entre PLCs, com a General Motors a desenvolver um protocolo standard para a indústria da manufactura, o MAP (Manufacturing Automation Protocol). Mais tarde, tentou-se desenvolver um novo protocolo não tão pesado do que o anterior, designado por Fieldbus, mas a falta de normalização deu origem a vários standards de facto, desenvolvidos por diferentes fabricantes de tecnologia de automação. Nos anos 90 a grande novidade foi a tentativa de normalizar as várias linguagens de programação de PLC´s. Deste modo, existe a possibilidade de programar PLCs utilizando diagramas de blocos, lista de instruções, C e texto estruturado ao mesmo tempo. Actualmente existem mais de 50 fabricantes diferentes de autómatos programáveis, cada um dos quais apresenta diferentes gamas de autómatos com diferentes funcionalidades, diferentes linguagens de programação e diferentes protocolos de comunicação. Dos diversos fabricantes de autómatos programáveis, destacam-se: Siemens, Omron, Schneider, Rockwell, Mitsubishi, Telemecanique, AEG, Allen-Bradley, Fagor, Saia e Fatrónica. O rápido crescimento do mercado (principalmente a partir da década de 80), associado à grande variedade de PLCs disponíveis, fez com que os sistemas de controlo previamente utilizados na indústria, se tornassem rapidamente obsoletos, principalmente devido ao facto de apresentarem pouca flexibilidade. Actualmente, os autómatos programáveis são os componentes fulcrais no desenvolvimento de aplicações de automação industrial, dadas as suas características, das quais se destacam: • Baixo custo e um vasto domínio de aplicações; • Instalação e manutenção simples e barata; • Substituição directa de automatismos baseados em tecnologias cabladas; • Linguagens de programação adaptadas aos automatismos e de simples percepção; • Elevada flexibilidade: reprogramável, modular, etc; • Adaptação a ambiente industrial, sendo robusto contra a humidade, choque, poeiras e ruído electromagnético. Uma última característica e vantagem é o facto das dimensões de um PLC serem cada vez mais reduzidas, necessitando de um menor espaço físico para a sua implementação. 1.2 ARQUITECTURA DOS AUTÓMATOS PROGRAMÁVEIS Independentemente do fabricante, um PLC possui um conjunto de módulos comuns e um conjunto de características similares. Genericamente, a arquitectura de um autómato programável assenta nos seguintes blocos funcionais: unidade central de Automação e Robótica 8 processamento, memória, módulos de entrada e saída, fonte de alimentação e unidade de programação. Basicamente, o módulo de entrada adquire o estado do mundo exterior e armazena esses valores na memória. A execução do programa, também ele armazenado na memória, permite de acordo com os valores das entradas tomar decisões de acções a realizar, através do módulo de saída. O programa de software que gere o funcionamento do sistema de controlo que se pretenda que o PLC realize, é criado utilizando uma linguagem de programação adequada e transferido para o PLC através de uma unidade de programação. A potencialidade de cada autómato programável pode ser analisada atrás da capacidade de endereçamento, conjunto de instruções, número de entradas e saídas, número de cartas especiais, assim como o tempo de ciclo, as suas capacidades de comunicação e a facilidade de utilização. Memória Fonte de Alimentação CPU E nt ra da s S aí da s Unidade de Programação Mundo Exterior Mundo Exterior Figura 3.2 - Arquitectura de um PLC Cada um destes blocos será abordado mais aprofundadamente nos pontos que se seguem, sendo para cada um deles referidas as suas principais funcionalidades. 1.2.1 Unidade Central de Processamento A Unidade Central de Processamento, designada por CPU, é o cérebro do PLC, tendo por função o controlo e supervisão de todas as suas actividades, assim como a gestão do fluxo de informação no seu interior, a partir da execução de um programa que se encontra armazenado em memória (normalmente EEPROM). O CPU é constituído genericamente por um microprocessador e por uma pequena memória interna. Este microprocessador é controlado por um programa especial, designado por sistema operativo, e que é armazenado de forma permanente na memória. As funções do sistema operativo são criar uma plataforma de trabalho que permita ao microprocessador, entre outras funções, o controlo, o processamento e a comunicação. Durante a execução do programa de controlo sobre o sistema operativo, o CPU realiza a gestão da memória, a monitorização das entradas e a actualização das saídas. Um CPU tem tipicamente as seguintes funções: Automação e Robótica 9 • Operação de entrada e saída, que permitem ao PLC comunicar com o mundo exterior, através da transferência de dados para os módulos de entrada e saída; • Operações aritméticas e lógicas, que são executadas na Unidade de Lógica Aritmética (ALU). A ALU é capaz de executar, entre outras, as operações de adição, subtracção e comparação. Para efectuar uma operação, a ALU necessita que lhe sejam fornecidos dois operandos e um operador, sendo os resultados armazenados na memória temporária ou utilizados de imediato para o processamento, conforme as instruções do programa; • Leitura e actualização do conteúdo da memória, que podem ser dados sobre o estado do sistema ou instruções contidas no programa; • Operação de salto, que permitem que na execução de um programa, seja possível saltar algumas porções desse programa sem que estas sejam executadas. Adicionalmente, ao CPU existe um relógio que gera uma frequência a partir de um oscilador externo, que irá determinar a velocidade de operação do PLC e fornece a sincronização para todos os elementos do sistema. Alguns PLCs, normalmente os de gama alta, destinados a tarefas de controlo complexas, possuem CPUs com mais de um microprocessador. A vantagem é a possibilidade de multiprocessamento, o que permite uma maior velocidade de processamento, através da divisão das tarefas de controlo e de comunicação. Uma condicionante a que os CPUs devem estar preparados é a imunidade ao ruído eléctrico proveniente por exemplo de motores trifásicos. Além de serem fisicamente robustos para suportarem ambientes hostis, os PLCs já possuem, actualmente, rotinas que verificam que a memória do PLC não foi corrompida por ruído ou outros problemas, permitindo assim o bom funcionamento do equipamento. 1.2.2 Memória O PLC necessita de armazenar a informaçãoque recebe do exterior através das unidades de aquisição de informação e guardá-la para posterior processamento, assim como toda a informação resultante do processamento. Como é implementada esta possibilidade de armazenamento de informação? Num PLC é possível encontrar dois tipos de memórias quanto à tarefa a realizar: memória de sistema e memória do utilizador [Almeida, 93]. A primeira contém todo o programa que permite ao PLC realizar o conjunto de operações que caracterizam o seu funcionamento e assegurar a comunicação entre o utilizador e o processador e ainda traduzir a linguagem do utilizador para linguagem máquina. A memória do utilizador destina-se ao armazenamento do programa de controlo e da informação que circulará no PLC. A capacidade de memória é expressa em termos do número de grupos de 8 bits (Binary Digits), designados por bytes, que possui. É vulgar dizer que um PLC possui 48 Kbytes de memória, o que significa que poderá armazenar 48 mil bytes de informação ou 384000 bits. Automação e Robótica 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Figura 3.3 -Representação da memória de um computador A memória pode ser comparável a um conjunto de gavetas ou registos, cada uma das quais bem definida por um rótulo ou endereço, onde é possível colocar ou ir buscar informação binária (estrutura sequencial e ordenada de células onde é possível guardar e manipular toda a espécie de informação). Cada célula de memória tem um endereço que indica a sua posição relativa, permitindo referenciarmos a informação armazenada numa célula de memória como o conteúdo dessa posição. Assim, a indicação do endereço de uma posição de memória permite ler o seu conteúdo e/ou modifica-lo. O acesso a estas células de memória é do tipo aleatório, isto é, não é preciso ler o conteúdo de todas as gavetas anteriores a uma que contém a informação pretendida, o que permite uma velocidade de acesso bastante grande. As memórias podem ser classificadas de acordo com diferentes parâmetros. Assim, existem dois tipos de memórias, quanto à possibilidade de armazenamento da informação após se desligar a alimentação: as memórias que retém o seu conteúdo mesmo que não exista alimentação são designadas por memórias não voláteis. Por outro lado, existem as memórias voláteis, que apenas armazenam a informação enquanto estiver alimentada, perdendo-a quando for desligada a alimentação. Por outro lado, as memórias podem ser classificadas quanto à possibilidade de alteração do seu conteúdo, sendo de seguida descritos os principais tipos de memória [Simpson, 94]. Read Only Memory (ROM) A ROM (Read Only Memory) é uma memória apenas de leitura, isto é, a informação nela armazenada durante o processo de fabrico é permanente, não se perdendo quando se desliga a alimentação. Este tipo de memória é utilizada pelos fabricantes para armazenar de forma permanente dados estáticos e programas que irão ser necessários ao funcionamento do PLC. Geralmente, os PLCs raramente utilizam memória ROM nas suas aplicações, a não ser PLCs dedicados, que tem por objectivo o controlo de apenas um pequeno grupo de tarefas. Random Acess Memory (RAM) Esta memória permite a leitura e escrita da informação, apresentando no entanto a desvantagem de perder toda a informação quando se desliga. Esta memória é utilizada para armazenar temporariamente a informação que circula no PLC e os dados que reflectem o mundo exterior e a execução do programa. Endereço Informação Automação e Robótica 11 Programmable Read Only Memory (PROM) É um tipo especial de ROM que pode ser programada. Normalmente é utilizada para guardar de forma permanente os dados armazenados na RAM. Erasable Programmable Read Only Memory (EPROM) Este tipo de memória armazena os dados de forma permanente, mas diferencia-se das memórias anteriores pelo facto de ser possível reprogramar o seu conteúdo. As EPROM possuem uma pequena janela sobre o array de memória, que exposto a uma fonte de luz ultra-violeta apaga todo o conteúdo da memória. Esta operação tem uma duração média de 20 minutos. Após a EPROM ter sido apagada, é possível voltar a escrever dados para a memória, normalmente através da transferência de programas para o seu interior, utilizando um dispositivo electrónico adequado. Electrically Erasable Programmable Read Only Memory (EEPROM) O conteúdo deste tipo de memória pode ser de novo programado, utilizando um terminal de programação de PLC, e após todo o seu conteúdo ter sido eliminado, operação que demora 10 milisegundos. É utilizada para armazenar o programa de controlo que se pretende realizar. 1.2.3 Unidade de programação As unidades de programação têm por objectivo a escrita off-line e online de programas, a monitorização e a modificação do estado do PLC. A programação dos PLC pode ser realizada utilizando consolas de programação ou utilizando PCs com acesso à rede. As consolas de programação estão a ser progressivamente substituídas pela programação através de PC, e a sua aplicação resume-se fundamentalmente à programação on-line em ambiente industrial. Computador Figura 3.4 - Dispositivos de Programação Ambos os dispositivos permitem a programação off-line dos PLCs, o que significa que o programa pode ser escrito sem que o dispositivo esteja conectado ao PLC, sendo o programa transferido para o PLC quando for necessário. As consolas de programação estão a ser abandonadas, porque é necessário um dispositivo de programação para cada PLC, além de apenas programar uma gama restrita de autómatos programáveis. A sua utilização resume-se a tarefas de manutenção, programação dedicada e modificação de dados do sistema; por exemplo, Automação e Robótica 12 se o protocolo de comunicação do PLC com o PC falhar é necessário o uso da consola para estabelecer de novo o protocolo. 1.2.4 Módulos de Entrada e Saída Os módulos de entrada e saída têm como objectivo, a interface entre o PLC e o mundo exterior, devendo igualmente implementar o condicionamento e isolamento do sinal. Os módulos de entrada têm por objectivo a aquisição de informação do mundo real, para posterior tratamento. Por outro lado, o controlo de um processo requer a actualização de equipamentos, pelo que é necessário ligar os dispositivos a controlar ao módulo de saída. Todos os módulos de entradas e saídas possuem isolamento eléctrico do processo a controlar, utilizando acoplamento óptico. D is po si tiv o de En tra da Saída para o CPU Isolamento Óptico Figura 3.5 - Isolamento das entradas Este isolamento garante que não existe ligação eléctrica entre o mundo exterior e o CPU. Um isolamento óptico consiste num díodo emissor de luz e num fototransistor, formando um acoplador óptico, que permite a transmissão de sinais de pequena tensão e o isolamento de sinais de elevados valores de tensão. Por exemplo, a entrada fornece um sinal eléctrico que é transformado em luz. A luz emitida é recebida pelo receptor que é de novo transformada num sinal eléctrico. O isolamento óptico é usado para entradas e saídas. Cada entrada/saída possui um endereço que o identifica univocamente, e que é utilizado ao longo do programa de controlo, sempre que se pretende manipular essa entrada/saída. Normalmente, os módulos de E/S possuem a indicação do estado de cada entrada/saída através de leds, o que torna simples a verificação do estado do processo. As entradas/saídas estão disponíveis através de cartas de expansão que comunicam com o CPU através de um barramento, designado de bus, de dados e de endereços. Existem dois tipos de entradas/saídas: digitais e analógicas. As entradas e saídas digitais apresentam apenas dois valores: ON e OFF (1 e 0). Por exemplo, se um sensor de proximidade detectar a presença de um objecto, na entrada aparecerá o sinal lógico 1; caso contrário estará o valor 0. Quando o sinal a adquirir pode tomaruma gama de valores determinada e de forma contínua, está-se na presença de sinais analógicos, que requerem o uso de módulos de entrada/saída analógicos. Por exemplo, um sensor de luminosidade pode ser considerado como sendo uma entrada analógica, porque produz uma tensão que é proporcional à luz que detecta. Automação e Robótica 13 Um módulo de entradas analógicas executa a conversão analógico-digital (A/D), ficando o sinal em formato digital e disponível para ser processado pelo CPU. O módulo de saída analógico efectua o processo inverso e converte o sinal digital para um valor analógico (D/A). A resolução da conversão é um factor importante para a precisão de controlo quando se utilizam PLCs. Os conversores que usam palavras de 8 bits terão uma resolução de 1:128. Desta forma, um sinal de valor máximo 5V pode ser convertido num valor digital com um intervalo entre valores de 0,02V. O aumento da resolução passa pelo aumento do numero de bits utilizados pelo conversor. Módulo de Entrada Este módulo interliga o PLC ao mundo exterior, adquirindo sinais que reflectem o estado do mundo exterior, através da utilização de sensores, interruptores, etc. O módulo de entrada converte o nível lógico do mundo real para o nível lógico requerido pelo CPU, ao mesmo tempo que executa o isolamento. Existem no mercado uma vasta gama de sensores que poderão implementar as entradas de um PLC, das quais se destacam os sensores indutivos, capacitivos, fins de curso, células fotoeléctricas, etc. Módulo de Saída O módulo de saída disponibiliza uma conexão ao mundo real, permitindo a actualização do processo, de acordo com a informação obtida pelas entradas e com a execução do programa. As saídas podem ser disponibilizadas através de relé, transístor ou triac. Os dispositivos de saída vulgarmente utilizados no controlo de processos são os motores passo a passo, lâmpadas, válvulas pneumáticas, etc. 1.2.5 Fonte de Alimentação A fonte de alimentação tem por objectivo o fornecimento das várias tensões de alimentação requeridas para o funcionamento de todos os componentes do PLC. Esta unidade converte a tensão de alimentação exterior (220 V) numa tensão continua requerida pelo CPU, memória e módulo de entradas e saídas (normalmente 5 ou 24 V). 1.2.6 Cartas Especiais Existem dispositivos auxiliares ao PLC que não se enquadram na sua arquitectura genérica, pois são específicos para o tipo de aplicação. Neste grupo de cartas especiais, encontramos entre outras, os leitores de códigos de barras, as cartas ASCII e as cartas fuzzy logic. • Fuzzy Logic A lógica fuzzy foi desenvolvida para criar uma lógica que melhorasse a tradicional lógica binária que apenas admite dois valores lógicos: 0 e 1. A Automação e Robótica 14 lógica fuzzy pretende copiar o raciocínio humano e desenvolver processos lógicos a partir de expressões pouco precisas ou difusas que variam entre dois valores lógicos (0 e 1). Por exemplo, utilizando lógica fuzzy não se diz que uma pessoa é alta ou baixa, mas sim que essa pessoa tem uma determinada probabilidade de ser alta. • Carta ASCII Este módulo é utilizado para manipulação e transmissão de dados alfanuméricos entre o PLC e dispositivos periféricos, tais como impressoras, monitores, etc. • PID Utilizadas para solucionar problemas complexos, em que é necessário implementar controlo integral, derivativo e proporcional. • Leitores de códigos de barras Muito utilizadas na industria para identificação dos produtos que circulam num processo. 1.3 FUNCIONAMENTO O funcionamento de um PLC resume-se à execução contínua do programa carregado na sua memória. Na figura que se segue, estão ilustradas as três fases mais importantes do ciclo de funcionamento de um autómato programável. Verificação do estado das entradas Execução do programa Actualização do estado das saídas Figura 3.6 - Ciclo de funcionamento de um PLC Inicialmente, o PLC analisa o estado de todas as entradas e armazena-os na memória, para serem usadas durante a execução do programa. Na fase que se segue, o PLC executa o programa, executando uma linha de instrução de cada vez. Finalmente, as saídas são actualizadas de acordo com o estado das entradas e das instruções do programa. Este ciclo repete-se continuamente enquanto o PLC estiver em funcionamento. Quando se analisa o funcionamento de um PLC, através da performance do seu tempo de resposta, é necessário considerar três tempos distintos: Automação e Robótica 15 • Tempo de resposta de entrada; • Tempo de processamento; • Tempo de resposta de saída. Consideremos a situação de detectar quando o copo está cheio de água, para se fechar a torneira, e façamos a analogia com o funcionamento de um PLC. Os olhos da pessoa estão sempre a receber informação e a envia-la para o cérebro. Figura 3.7 - Tempo de Resposta Quando a água chegar ao nível pretendido, os olhos enviam essa informação para o cérebro que a deverá processar. O tempo que o cérebro demora a receber a informação proveniente dos olhos é designada por tempo de resposta de entrada. O cérebro tendo a informação de que a água está num determinado nível irá processar a informação e decidir qual a acção ou acções a tomar. Este tempo é designado por tempo de processamento. Finalmente, o cérebro irá dar ordens às mãos para fechar a torneira. O tempo que decorre até que as mãos recebam a ordem é designado por tempo de resposta de saída. 1.4 APLICAÇÕES DOS AUTÓMATOS PROGRAMÁVEIS Os PLCs apresentam um vasto domínio de aplicações, das quais se destacam: • Aplicações de robótica • Controlo de máquinas CNC Automação e Robótica 16 • Controlo de células de fabrico ou montagem • Sistemas de transporte e manuseamento de materiais. • Controlo e monitorização de processos industriais, etc. Automação e Robótica 17 2 PROGRAMAÇÃO BÁSICA DE AUTÓMATOS PROGRAMÁVEIS A linguagem de programação, assim como a estrutura e definição de endereços e mapeamento da memória difere de fabricante para fabricante, o que associado com a vasta diversidade de fabricantes de autómatos existentes no mercado, torna limitativo o estudo genérico que se pretende efectuar. Apesar de ser intenção deste texto fornecer os princípios básicos da programação de autómatos programáveis, irá utilizar-se como referência o autómato programável CPM1 da Omron para testar e desenvolver todas as aplicações referidas neste texto. 2.1 ESCRITA DE PROGRAMAS 2.1.1 Fluxogramas e Algoritmia Os computadores, infelizmente, só fazem aquilo que mandamos e não aquilo que desejamos que eles façam. O computador tomará sempre um dos caminhos possíveis nas suas acções e por isso é preciso assegurar que o computador siga pelo único caminho correcto possível que leve aos resultados desejados. Uma afirmação como calcule a média das notas neste teste é muito imprecisa, apesar de parecer especificar aquilo que desejamos. Muitos detalhes foram omitidos, como por exemplo, onde estão as notas, quantas são, etc. A programação de computadores em alguns casos pode ser difícil, razão pela qual os bons programadores recebem altos salários. Tal dificuldade deve-se à complexidade inerente, combinando muitos processos mentais. Entretanto, podemos torná-la muito mais fácil se dividirmos o problema sistematicamente em partes menos complexos (a abordagem do dividir para conquistar). Problema Solução em forma de algoritmo Solução como programa de computador Passo difícil Fase da implementação Fase da resolução do problema Figura 5.1 - Resolução de um problema Primeiro, é importante separarmos a fase de resolução do problema da tarefa da fase da implementação. Na fase de resolução do problema, é necessário a elaboração Automação e Robótica 18 de um algoritmo ou fluxograma para resolver o problema proposto. Apenas, quando a formulação de um algoritmo adequado e satisfatório,é que se passa para a implementação do algoritmo numa qualquer linguagem de programação. Dado um algoritmo suficientemente preciso, a codificação num programa de computador é quase directa. Um algoritmo pode ser definido como uma sequência ordenada e sem ambiguidade, de passos elementares que levam à solução de um dado problema. Apesar de o termo ser novo em si, o conceito é bastante familiar. As indicações dadas para se chegar até uma determinada rua constituem um algoritmo para se encontrar essa rua. Uma receita de cozinha é uma forma muito familiar de fluxograma. É necessário que os algoritmos cumpram algumas regras. Assim, os passos de um algoritmo devem ser simples e sem ambiguidade e devem estar numa ordem cuidadosamente definida. Como exemplo, vamos elaborar um algoritmo para realizar uma tarefa bastante familiar, a substituição de uma lâmpada queimada. A operação básica pode ser expressa em dois passos simples: • remova a lâmpada queimada • coloque a nova lâmpada Apesar de esta solução parecer resolver o problema, de facto estes passos não são suficientemente claros para um robot, pois cada um dos passos envolve alguns pressupostos que um robot não conhece. Assim, é necessário especificar cada um dos passos anteriores. Em primeiro lugar, o que é necessário para remover a lâmpada queimada? Vamos admitir que ela esteja pendurada num tecto. Este facto envolve uma escada, posicioná-la correctamente e subi-la. De seguida é necessário remover a lâmpada. Para a remoção, é necessário girar a lâmpada no sentido anti-horário até que se solte. Assim, o simples passo remova a lâmpada queimada foi expandido nos seguintes passos: • Posicione a escada debaixo da lâmpada queimada • suba na escada até que a lâmpada possa ser alcançada • rode a lâmpada queimada no sentido anti-horário até que se solte Para colocar uma lâmpada nova, é necessário seleccionar uma outra de mesma potência (o que deve ser feito antes de se subir na escada), posicionar a lâmpada, girá-la no sentido horário até que esteja completamente colocada e finalmente descer da escada. Deste modo, o passo coloque a nova lâmpada foi expandido para: • escolha uma nova lâmpada de mesma potência da queimada • posicione a nova lâmpada • rode a lâmpada no sentido horário até estar colocada • desça da escada Automação e Robótica 19 Apesar do algoritmo ter já sete passos, ainda não tem uma especificação suficientemente precisa. Por exemplo, o passo escolha uma nova lâmpada de mesma potência da queimada deve ser melhor especificado. Suponhamos que temos uma caixa com lâmpadas novas. Devemos examiná-las uma a uma até encontrarmos uma com a mesma potência da queimada. Isto exige as seguintes operações: • seleccione uma lâmpada candidata à substituição • se a potência não é a mesma, repita o processo até encontrar uma que sirva, − deite fora a lâmpada seleccionada − seleccione uma nova lâmpada São introduzidos aqui dois conceitos importantes: o da decisão (se) e o da repetição (repita). A capacidade de decisão permite-nos adiar a selecção real de um caminho até à execução do programa. Neste caso, não podemos determinar o que fazer até que a potência de uma lâmpada real tenha sido examinada. É possível especificar que uma operação básica seja repetida muitas vezes; neste caso a selecção de uma lâmpada é efectuada até se encontrar uma lâmpada de potência adequada. Usando estes conceitos para os restantes passos, passamos a ter o seguinte algoritmo: • posicione a escada debaixo da lâmpada queimada • seleccione uma nova lâmpada para a substituição • se a potência não for a mesma da queimada, repita o processo até encontrar uma que sirva − deite fora a lâmpada seleccionada − seleccione uma lâmpada nova • repita até que a lâmpada possa ser alcançada − suba num degrau da escada • repita até que a lâmpada fique solta − rode a lâmpada no sentido anti-horário • posicione a nova lâmpada • repita até que a lâmpada esteja colocada − rode a lâmpada no sentido horário • desça a escada As operações indicadas simples sem ambiguidade, as decisões necessárias são imediatas e a ordem na qual os passos devem ser seguidos é claramente expressa. A escrita de programas para computadores ou autómatos, passa pelo assentar de ideias na forma de um fluxograma ou algoritmo e depois transpor esse algoritmo para a linguagem de programação adequada. Automação e Robótica 20 2.1.2 Linguagens de Programação para Autómatos A programação de PLCs pode ser realizada utilizando várias linguagens genéricas, seguindo a norma IEC 61133, das quais se destacam os seguintes dois tipos: • lista de instruções; • diagrama de blocos (ladder). A lista de instruções é caracterizada por existir uma sequência de instruções para realizar cada uma das tarefas. Essas instruções são escritas sob a forma de mnemónicas. LD I 0.1 AND I 0.2 SET O 1.0 Cada fabricante utiliza mnemónicas diferentes para programar os seus autómatos assim como designações diferentes para endereçar a memória. Este facto, faz com que cada fabricante possua uma linguagem de programação própria para os seus autómatos. O diagrama de contactos (ladder) é caracterizado pela existência de sequências de contactos (normalmente abertos ou fechados) que irão provocar a actualização das saídas. 0.0 10.0 O diagrama de contactos é uma linguagem genérica de programação de autómatos, a menos de algumas funções específicas de alguns autómatos e do endereçamento de memória. Dado que vai ser utilizado o PLC CPM1 da Omron nas experiências laboratoriais, iremos utilizar os diagramas de ladder como linguagem de programação, que é disponibilizada pela Omron através do seu software de programação SYSWIN. 2.1.3 Procedimentos básicos para a escrita de um programa A elaboração de programas para autómatos tendo em vista a solucionar problemas, passa pela definição de um conjunto de passos básicos, dos quais se destacam os seguintes: • Obter a lista de todos os dispositivos de Entradas e Saídas, criando uma tabela de memória que ilustre os bits E/S alocados a cada dispositivo. • Determinar quais as palavras disponíveis para serem utilizadas dentro do programa. Automação e Robótica 21 • Criar tabelas de endereços de temporizadores e contadores, assim como endereços de salto a usar no programa (apenas se podem usar de 01 a 99). • Desenhar o diagrama de contactos. • Verificar o programa da existência de erros de sintaxe e tentar corrigi-los. • Transferir o programa para o autómato. • Executar o programa no autómato. Se durante a execução do programa se verificarem erros ou anomalias, deve-se corrigir esses erros e verificar o programa de novo, sendo por vezes necessário redesenhar o diagrama de contactos. 2.2 ENDEREÇAMENTO DA MEMÓRIA A memória de um PLC, tal como já foi referido, divide-se normalmente em dois grandes blocos: memória do sistema e memória do utilizador. A memória do sistema armazena todos os parâmetros de configuração do PLC, enquanto que a memória do utilizador armazena dados temporários de entrada e de saída, assim como dados auxiliares à execução do programa. Cada fabricante de autómatos tem uma forma de endereçamento da memória muito própria, e que normalmente difere do endereçamento utilizado noutros autómatos. Por exemplo, para codificar as entradas e saídas, é vulgar utilizar-se a letra I para as entradas e a letra O para as saídas; no entanto, também existem autómatos que utilizam as letras X e Y, para codificar as entradas e saídas, respectivamente. Na figura 5.3 está representado o endereçamento da memória utilizada pelo autómato CPM1 da Omron. Verifica-se que a codificação de entradas e saídas é realizada pelo prefixo IR. Área de Dados Palavras Função Área IR (Relés internos) Área de Entrada Área de Saída Área de Trabalho IR 000 a IR 009 IR 010 a IR 019 IR 200 a IR 231 Estes bitspodem ser alocados aos terminais E/S externos. Os bits de trabalho podem ser usados livremente dentro do programa. Área SR (Relés especiais) SR 232 a SR 255 Estes bits servem funções específicas, tais como flags e bits de controlo. Área TR (Relés temporários) TR 0 a TR 7 (só se trabalha com os 8 bits) Estes bits são utilizados para guardar temporariamente o estado ON/OFF da secção do programa (mnemónicas). Área HR (Relés retenção) HR 00 a HR 19 Estes bits guardam informação e mantém o seu estado ON/OFF após a alimentação ser desligada. Área AR (Relés auxiliares) AR 00 a AR 15 Estes bits são semelhantes a SR mas mantém o seu valor após a alimentação ser desligada. Automação e Robótica 22 Área LR (Relés ligação) LR 00 a LR 15 Utilizado para ligações 1:1 a outro PLC. Área Contadores e Temporizadores TC 000 a TC 127 Os mesmos endereços são utilizados para os temporizadores e contadores. Leitura/Escrita DM00 a DM 099 DM 1022 a DM 1023 Podem ser usados livremente no programa. Área DM Log de erros DM 1000 a DM 1021 Utilizados para guardar o tempo e o código de erro da ocorrência. (Módulo de Dados) Apenas leitura DM 6144 a DM 6599 Não podem ser escritos a partir do programa. Setup PC DM 6600 a DM 6655 Utilizados para guardar os vários parâmetros que controlam a comunicação com o PC. Figura 5.2 - O endereçamento da memória no CPM1 2.3 INSTRUÇÕES BÁSICAS Os operandos utilizados como entradas e saídas possuem dois valores de identificação: endereço físico e mnemónica. O endereço físico é a designação directa do bit ou byte de uma área específica de memória. A mnemónica é utilizada para simplificar a escrita e a leitura do programa. Uma condição normalmente aberta é Verdadeira (ON) se a entrada é ON e Falsa (OFF) se o operando é OFF. Uma condição normalmente fechada é Verdadeira se o operando é OFF e Falsa de o operando é ON. normalmente fechado . . . normalmente aberto No estudo que se segue, apenas se vai considerar entradas e saídas normalmente abertas. No entanto, para trabalhar com lógica normalmente fechada, deve-se colocar o sufixo NOT a seguir à instrução para a lógica normalmente aberta. 2.3.1 LOAD A primeira condição que inicia qualquer bloco lógico corresponde à instrução LOAD, cuja mnemónica é LD. Se esta instrução é a única na linha de instruções então a saída é ON se o operando for ON e OFF se o operando for OFF. O resultado desta instrução pode ser conjugada com outra entrada através de uma relação lógica ou imediatamente transferida para o exterior, actualizando uma saída. 2.3.2 OUTPUT A forma mais simples de transferir para a saída os resultados da combinação da execução de instruções é utilizando a instrução OUT. Automação e Robótica 23 Esta instrução pode actualizar saídas do autómato, mas também flags internas, tais como as áreas SR, AR, HR, etc. 0.0 10.0 0.0 10.0 ON OFF ON OFF 0.0 10.0 0.0 10.0 ON OFF OFF ON Figura 5.3 - Tabela de Verdade das Instruções OUT e OUT NOT Vamos considerar o seguinte caso de aplicação: existe uma bomba de tirar água que funciona de acordo com o estado de um botão de accionamento, isto é premindo o botão a bomba funciona, e libertando o botão a bomba deixa de funcionar. Pretende-se elaborar um programa que execute o controlo da bomba. Assim, supondo que o botão está associado à entrada 0.0 e que a bomba está associada à saída 10.1, é possível realizar o programa de controlo, utilizando listra de instruções. LD 0.0 OUT 10.0 Este programa coloca a saída 10.0 (bomba) em funcionamento de acordo com o estado da entrada 0.0 (botão). Se o botão estiver premido, isto é a entrada 0.0 está ON, então a bomba será colocada em funcionamento. Caso o botão não esteja premido então a bomba deixa de estar em funcionamento. 2.3.3 AND A manipulação de operandos lógicos requer por vezes a utilização do operador lógico AND. Este operador permite activar uma saída apenas quando todos os operandos de entradas forem Verdadeiros. Num conjunto de instruções que implemente o AND de mais do que duas entradas, a primeira das instruções será a instrução LD; e as restantes condições as instruções AND. 0.0 10.10.11.0 Na figura anterior a linha de instrução representada por um diagrama de contactos, implementa a seguinte expressão lógica: Automação e Robótica 24 10.0 = 0.0 AND 1.0 AND 0.1 A saída 10.0 será activada, apenas se as três condições forem verdadeiras, isto é, quando 0.0 é ON, 1.0 é OFF e 0.1 é ON. A aplicação da instrução AND pode ser analisada no seguinte exemplo: A utilização de maquinaria pesada, como por exemplo, quinadoras ou máquinas de corte, requer a instalação de sistemas de segurança, para precaver a integridade física dos operadores que trabalham com essas máquinas. O sistema de segurança mais vulgar nesses casos é a implementação de dois botões de início de funcionamento (um para cada mão do operador). Desta forma, a máquina só executa a tarefa, por exemplo o corte de chapa, se os dois botões estiverem premidos. LD 0.0 AND 0.1 OUT 10.0 Neste caso, temos duas entradas, 0.0 e 0.1, e uma saída 10.0, que representa o accionamento da máquina para executar a sua tarefa. 2.3.4 OR No ponto anterior referiu-se a instrução lógica AND. No entanto, existe uma outra instrução lógica básica, designada por OR, que é fundamental na manipulação de operandos lógicos. Quando duas ou mais condições estão separadas em linhas de instruções diferentes e a correr em paralelo, a primeira condição corresponde à instrução LD; as restantes condições correspondem à instrução OR. 1.1 10.0 0.1 1.0 A saída 10.0, para o caso da figura anterior, será ON quando uma das três condições for ON, isto é, quando 1.1 é OFF ou 1.0 é OFF ou 0.1 é ON. 2.3.5 END No fim de um programa é necessário adicionar a instrução END. Durante a execução do programa, o CPU executa todas as instruções até à instrução END, antes de voltar ao início do programa e voltar a executá-lo. Aliás, o autómato funciona em ciclo executando ciclicamente o programa carregado no autómato. Automação e Robótica 25 END 0.0 10.00.1 Se não existir a instrução END no fim do programa, este não poderá ser executado. Exemplo de aplicação Pretende-se controlar o funcionamento de um dispositivo que efectua a mistura de dois líquidos, utilizando dois botões: • Movimento - se premido, o dispositivo deve funcionar; se não, deve estar parado. • Emergência - se caso seja premido, o dispositivo deve parar o seu funcionamento. Líquido A Líquido B Figura 5.4 - Misturador de líquidos O primeiro passo na escrita do programa é a escolha das E/S do autómato para a aplicação em causa: • botão de movimento - IR 0.0 movimento; • botão de emergência - IR 0.1 emergência; • motor do dispositivo - IR 10.0 motor. Então a linha de instruções que implemente o funcionamento pretendido está ilustrado na figura que se segue. 0.0 10.00.1 Vamos supor agora, que o botão de movimento é substituído por dois outros botões distintos, que representam a presença de diferentes tipos de líquidos no dispositivo, e que se pretende que o misturador inicie o seu funcionamento sempre que exista pelo menos um dos líquidos no dispositivo (um dos botões premido). Desta forma iremos ter entradas e uma saída: • botão para o liquido A - IR 0.3 líquido_a; • botão para o liquido B - IR 0.4 líquido_b; Automação e Robótica 26 • botão de emergência - IR 0.1 emergência; • motor do dispositivo - IR 10.0 motor. A implementação do programa para este caso é semelhante ao anterior, diferindo apenas no facto do funcionamento do misturador depender da existência de pelos menos um dos botões associados aos líquidos estar activado. 0.3 10.00.1 0.4 A instrução lógica que implementa esta funcionalidade é o OR, pelo que basta efectuaro OR entre as entradas líquido_A e líquido_B, seguido do AND com a entrada de emergência negada. 2.3.6 Instruções Lógicas de Bloco A elaboração de diagramas mais complexos do que aqueles analisados até ao momento, requer a introdução dos conceitos de AND LOAD e OR LOAD. Vamos supor que pretendemos implementar a seguinte expressão lógica: 10.0 = (0.0 OR 0.1) AND (0.2 OR 0.3) A implementação através de diagramas de contactos é directa, e está ilustrada na figura que se segue. 0.0 10.00.2 0.1 0.3 No entanto, se pretendermos utilizar a programação em lista de instruções, é impossível implementar a expressão lógica utilizando as instruções lógicas básicas, uma vez que o valor da execução da condição 0.0 OR 0.1 é perdido quando se inicia a execução da condição seguinte (0.2 OR NOT 0.3). Existem então as instruções AND LOAD e OR LOAD para armazenar as condições intermédias. Assim, é possível escrever o diagrama anterior em lista de instruções utilizando AND LOAD. LD 0.0 OR 0.1 LD 0.2 OR NOT 0.3 AND LD Automação e Robótica 27 A instrução AND LD permite armazenar o resultado da primeira condição e realizar o AND com a segunda condição. Vamos considerar agora o caso de se pretender implementar a seguinte expressão lógica: 10.0 = (0.0 AND 0.1) OR (0.2 AND 0.3) Tal como o exemplo anterior, a sua implementação em diagramas de contactos é extremamente simples, mas complica-se se o pretendido for a utilização de lista de instruções. 0.0 10.00.1 0.2 0.3 Neste caso não se trata de realizar o AND de duas condições constituídas por mais do que uma condição, mas sim o OR, pelo que a instrução adequada é o OR LD. LD 0.0 AND NOT 0.1 LD 0.2 AND 0.3 OR LD ← executa o OR dos dois blocos OUT 0.0 2.3.7 Combinação de instruções AND LOAD e OR LOAD As instruções AND LOAD e OR LOAD podem ser combinadas, caso o número de blocos seja superior a 2 mas não exceda os 8 blocos. 0.0 10.00.1 0.50.4 0.30.2 Bloco 3 Bloco 2Bloco 1 Considerando o diagrama de contactos, representado atrás, é possível traduzi-lo para lista de instruções. LD NOT 0.0 AND 0.1 LD 0.2 AND NOT 0.3 Automação e Robótica 28 LD NOT 0.4 AND 0.5 OR LD AND LD OUT 10.3 É de referir que neste caso, primeiro é executada a instrução OR LOAD e só depois a instrução AND LD. Exemplo de aplicação Pretende-se escrever em lista de instruções o programa equivalente ao representado pelo seguinte diagrama de contactos. 0.0 10.00.1 0.50.40.3 0.2 Bloco 5 Bloco 2Bloco 1 0.70.6 Bloco 4 Bloco 3 O programa em lista de instruções é como se representa de seguida. LD 0.0 LD 0.1 AND 0.2 LD 0.3 AND 0.4 LD 0.5 LD 0.6 AND 0.7 OR LD ← blocos 4 e 5 AND LD ← bloco 3 com resultado anterior OR LD ← bloco 2 com resultado anterior AND LD ← bloco 1 com resultado anterior OUT 10.0 É de salientar que apenas se põe o problema de utilização de instruções de bloco, se não se programar em diagramas de contactos. Além disso, é sempre possível não utilizar as instruções de bloco, se utilizarmos flags internas para armazenar dados temporários e intermédios. Automação e Robótica 29 2.3.8 Execução de Várias saídas Existem situações em que é necessário executar mais do que uma acção, para as mesmas condições de entrada. Neste caso, as saídas são codificadas sucessivamente a seguir à última instrução da linha. 0.1 HR0.10.3 0.2 0.4 10.0 10.7 Ou utilizando lista de instruções, LD 0.1 OR 0.2 AND 0.3 OUT HR0.1 OUT 10.0 AND 0.4 OUT 10.7 2.3.9 SET e RESET Estas instruções são similares às de OUTPUT e OUTPUT NOT, diferindo no facto do seu estado apenas ser alterado quando a condição for ON. Quando a condição de entrada for Verdadeira, o bit de saída é ON ou OFF, caso se trate de um SET ou RESET, respectivamente. A particularidade desta instrução, é que mantém o seu estado após a condição de entrada passa a Falsa. SET (saída) Condição Condição RESET (saída) Figura 5.5 - Evolução temporal para as instruções SET e RESET Vamos considerar o caso de pretendermos controlar o funcionamento de um motor, através de dois botões: o botão verde para o colocar em funcionamento e o botão vermelho para o parar. Neste caso, não se pode utilizar a instrução OUT, porque com esta instrução logo que libertássemos o botão verde, o motor parava, e o que se pretende é que o motor continue a funcionar mesmo que se liberte o botão e até que se prima o botão vermelho. Automação e Robótica 30 Para implementar esta funcionalidade é necessário utilizar as instruções SET para por o motor em funcionamento quando se prime o botão verde, e a instrução RSET para parar o motor quando se prime o botão vermelho. RSET 10 Botão verde Botão vermelho SET 10.0 Assim quando se pressiona o botão verde, este vale o estado lógico ON, pelo que o motor inicia o seu funcionamento; quando se pressiona o botão vermelho, a instrução RSET é executada, parando de imediato o motor. 2.3.10 DIFFERENTIATE UP, DIFFERENTIATE DOWN As instruções DIFU e DIFD são utilizadas para forçar um bit a ON durante apenas um ciclo de funcionamento. Sempre que é executado, DIFU compara a condição corrente com a condição anterior. Se a condição anterior era OFF e a condição corrente é ON, então DIFU tornará o bit a ON. Se a condição anterior é ON e a condição corrente é ON ou OFF, então DIFU tornará o bit a OFF ou manterá o bit a OFF (com esta instrução o bit apenas se manterá em ON durante um ciclo). Quando executada, DIFD compara a execução corrente com a condição anterior. Se a condição anterior era ON e a condição corrente é OFF, a instrução DIFD tornará o bit a ON. Se a condição anterior é OFF e a corrente é ON ou OFF, DIFD tornará o bit a OFF ou manterá o bit a OFF. DIFD 10. 1.0 1.1 DIFU 10. 2.3.11 Instruções de Bifurcação Quando uma linha de instrução se divide em mais do que 2 linhas, é necessário usar bits temporais para armazenar o resultado da condição na bifurcação. 0.0 10.00.1 0.2 10.1 TR 0 Automação e Robótica 31 É necessário no ponto de bifurcação colocar um bit TR, de modo a manter temporariamente o resultado da última condição, e assim ser utilizada posteriormente. LD 0.0 OUT TR 0 AND 0.1 OUT 10.0 LD TR 0 AND 0.2 OUT 10.1 2.3.12 KEEP A instrução KEEP é usada para manter o estado do bit, baseado em duas condições. Para tal, a instrução é conectada a duas linhas de instrução. Quando a condição da primeira linha é ON, o bit operando torna-se igual a ON. Quando a condição da segunda linha é ON, o bit operando da instrução KEEP torna-se OFF. O bit operando para a instrução KEEP manterá o seu estado (ON ou OFF) mesmo quando colocado numa secção diferente do diagrama. 0.2 0.3 0.4 KEEP (1 HR 0000 0.5 Exemplo de aplicação (1) Pretende-se elaborar um sistema de controlo para o comando de um motor e de uma bomba, que apresenta as seguintes características: • Após ser premido o botão de arranque, a bomba é ligada; • O funcionamento efectivo da bomba é detectado pelo medidor de caudal. O motor é ligado depois de detectada a entrada em funcionamento da bomba; • A actuação do botão de paragem provoca o desligar da bomba e do motor. Implementação do sistema de controlo pode recorrer à lógica digital. arranque paragem caudal motor ON bomba O R S R S Automação e Robótica 32 No entanto, para a implementação em autómato programável, é necessário efectuar a atribuição de endereços: IR 00.00 - arranque IR 00.01 - paragem IR 00.02 - caudal IR 10.00 - motor ON IR 10.01 - bomba ON A representação da evolução temporal das várias variáveis em jogo, ajuda a apreender o problema e a conceber uma solução. Para este caso, a evolução temporal está ilustrada na figura que se segue. Arranque Paragem Caudal Bomba ON Motor ONA implementação da solução, utilizando as instruções SET e RESET está representada na figura que se segue. Arranque Caudal Paragem Bomba ON SET Bomba ON RSET Motor RSET Bomba ON SET Motor Paragem Paragem No entanto, é possível implementar a mesma solução utilizando a instrução KEEP. Arranque Paragem KEEP (11 Bomba ON Bomba ON Paragem Caudal KEEP (1 Motor ON Automação e Robótica 33 Nesta última solução, a entrada Arranque coloca a Bomba em funcionamento enquanto a activação do botão Paragem desliga a Bomba. Para que o Motor funcione é necessário que a Bomba esteja em funcionamento e que já exista Caudal a alimentar o Motor. Exemplo de aplicação (2) Pretende-se realizar o controlo de uma electroválvula, com as seguintes características: • possibilidade de três acções de comando: abrir, fechar e parar; • uma saída do autómato comanda a abertura da válvula e outra o seu fecho. Estas duas saídas não podem tomar em simultâneo o valor lógico 1; • quando a válvula atinge uma das posições extremas (totalmente aberta ou fechada), a respectiva saída do PLC é desactivada; • a válvula pode ser comandada em modo manual e automático; • em modo manual as ordens são iniciadas a partir de 3 botões de pressão: abrir, fechar e parar; • em modo automático, a válvula é comandada por três flags geradas por outro módulo do programa; • está previsto um sinal exterior de inibição, que quando está activo, inibe as duas saídas de comando da válvula. O primeiro passo na elaboração do programa é a atribuição de endereços às variáveis que irão ser utilizadas no programa: IR 00.00 a IR 00.02 - abrir, fechar e parar IR 00.03 a IR 00.04 - aberto e fechado IR 00.05 - inibição IR 10.00 a IR 10.01 - act_abrir e act_fechar IR 200.00 a IR 200.01 - flag_abrir e flag_fechar IR 00.06 - manual (1- manual e 0 - automático) O programa que solucione este problema está ilustrado na figura que se segue. Automação e Robótica 34 ent_abrir modo modo flag_abrir SET abrir RSET abrir RSET fecha SET fechar RSET abrir RSET fechar ent_fechar modo fechado RSET abrir RSET fechar fechado inibiçãoaberto inibição flag_parar inibição abriraberto fechar fechado ent_parar modo modo modo 2.4 TEMPORIZADORES Os temporizadores são utilizados sempre que se pretenda realizar uma determinada acção ao fim de um determinado período de tempo ou durante um período de tempo. No autómato CPM1 da Omron, os temporizadores estão disponíveis através dos endereços TC 000 a TC 127. TIM N VT Condição A em que N é o numero do temporizador e VT contém o valor do tempo que se pretende contar. O temporizador é activado quando a condição de execução vai a ON e é desactivado quando a condição de execução vai a OFF. Se quando VT tiver sido esgotado e a condição A for ON, então o temporizador virá a ON. Condição A Temporizador TIM N VT < VT VT Figura 5.7 - Evolução temporal de um temporizador As unidades de medida nesta instrução de temporização são as décimas de segundo (0,1 segundo). Automação e Robótica 35 Exemplo de aplicação O elevador representado na figura desloca-se entre dois pisos. O seu movimento é comandado (subir, descer e parar) a partir dos comandos dados pelos operadores (botões de chamada bot_ch1 e bot_ch2) e das informações provenientes dos detectores de fim de curso (piso1 e piso2). piso2 bot_ch2 bot_ch1 piso1 Figura 5.8 - Elevador entre dois pisos A atribuição de endereços é a seguinte: IR 00.00 - bot_ch1 IR 00.01 - bot_ch2 IR 00.02 - piso1 IR 00.03 - piso2 IR 10.00 - motor_up IR 10.01 - motor_down O programa que controle o movimento do elevador entre os dois pisos é o seguinte. bot_ch2 RSET motor_u RSET motor_down piso1 piso2bot_ch1 piso1 piso2 SET motor_u SET motor_down Adicionalmente, pretende-se controlar a porta do elevador. Esta deverá abrir 5 segundos após ter chegado ao piso desejado. Sempre que o elevador seja requisitado, a porta deverá ser fechada. A nova atribuição de endereços é como se representa: IR 00.04 - porta_aberta IR 00.01 - porta_fechada IR 10.02 - abre_porta Automação e Robótica 36 IR 10.03 - fecha_porta O novo programa em diagrama de contactos está ilustrado na figura que se segue. bot_ch2 piso1 SET motor_u SET fecha_porta porta_aberta RSET motor_ RSET motor_down piso1 piso2 porta_abertaTIM 000 bot_ch1 piso2 motor_up motor_down piso2 SET motor_down SET fecha_porta SET abre_po RSET abre_porta TIM 000 #50 piso1 NOTA: Pensar em melhorar o sistema incorporando a possibilidade de no interior do elevador se poder fechar a porta e ir para um outro piso. Adicionalmente, pensar no caso de existirem mais do que dois andares? 2.4.1 Temporizador ao Impulso Neste tipo de configuração, pretende-se que a saída esteja activa durante o período de tempo especificado no temporizador. 0.0 10.2 TIM 16 #20 10.2TIM 16 Para o caso da figura anterior, a saída 10.2 estará ON apenas durante o tempo especificado, neste caso 2 segundos. Automação e Robótica 37 2.4.2 Temporizador após a operação Pretende-se com esta configuração que a saída esteja activa apenas durante um determinado período de tempo, especificado no temporizador, após a entrada de controlo tenha deixado de estar activa. Um exemplo da necessidade deste tipo de configuração do temporizador é caso do controlo de uma luz de um parque automóvel subterrâneo. Neste caso, pretende-se que a luz que ilumina o parque, apenas esteja acesa 30 segundos após o carro ter entrado no parque. 10.0 0.0 TIM 10 #50 10.0 TIM 10 10.0 0.0 Neste caso, a saída 10.0 ficará no estado OFF após 5 segundos a condição de execução ter ficado OFF. Na figura que se segue, é possível verificar a evolução temporal da entrada e da saída e concluir que a saída 10.0 apenas permanece em ON 5 segundos após a entrada ter passado a OFF. 5 seg. 10.0 0.0 Exemplo de aplicação Uma lâmpada de sinalização deve permanecer a piscar, com período de 20 segundos, durante todo o tempo em que um carro se movimenta. O carro é comandado a partir de um botão premido continuadamente durante todo o movimento. A atribuição de endereços é a seguinte: IR 00.00 - carro IR 10.08 - lâmpada TIM 000 e 001 - temporizadores para a onda quadrada A representação dos estados que os temporizadores para formar a onda quadrada deverão tomar está ilustrada na figura que se segue. Automação e Robótica 38 TIM 000 TIM 001 Na figura que se segue, encontra-se representado o programa que implementa a onda quadrada. TIM 000 TIM 000 #100 carro lampada TIM 001 TIM 001 #100 TIM 000 2.4.3 Temporizador de alta velocidade Este temporizador, designado por TIMH, é semelhante ao TIM, exceptuando o facto daquele ter como unidades de medida as centésimas de segundo (0,01 s). TIM 000 TIM H 000 #150 10.0 0.0 Na figura anterior, a saída 10.0 estará a ON após 1,5 segundos a entrada 0.0 ter passado a ON. 2.5 CONTADORES Os contadores são utilizados para contar o número de eventos associados a uma determinada condição. 2.5.1 CNT A instrução CNT é usada para contar de forma decrescente desde um valor pré- definido (VC), quando a condição de execução em CP passa de OFF para ON, isto é, o valor corrente (PV) será decrementado de 1 unidade sempre que CNT é executado, com CP=ON, e que a condição de execução tenha sido OFF na última execução. Automação e Robótica 39 CNT N VC CP R em que N é o numero do contador e VC é o valor inicial do contador. O contador é desactivado com a entrada de reset R. Quando R passa de OFF para ON, o valor actual passa a valer VC. O valor presente nunca é decrementado quando R é ON. CNT 001 CNT 001 #700 10.0 0.0 255.02 0.1 R CP O contador 001 conta o número de vezes que oclock (SR 25502) vai de OFF a ON. A entrada 0.0 é utilizada para controlar o tempo quando o contador está em operação (1seg x 700 =11 minutos e 40 segundos). 2.5.2 Contador reversível CNTR O contador reversível, designado por CNTR, permite contar de forma crescente ou decrescente, isto é, é utilizado para contar entre 0 e VC de acordo com duas condições de execução, na entrada incremental (EI) e na entrada decremental (ED). O valor corrente será incrementado de uma unidade quando a condição de execução para EI é ON e a última condição de execução é OFF. CNTR N VC EI R ED Se simultaneamente as entradas EI e ED passarem a ON, o valor corrente não se alterará. O contador é desactivado através da entrada R. Quando chegar a zero, o contador fica a ON. Este tipo de contador é circular, pois se o valor actual do contador coincidir com o valor pré-definido do contador, e se a entrada EI passar a ON, então o próximo valor do contador passará a ser 0. 0 VC. . . Automação e Robótica 40 2.5.3 Exemplo de aplicação Considere um posto de embalamento de produtos. Os produtos chegam ao posto através de um tapete rolante. Co nt en to r Figura 5.9 - Sistema de embalamento com peças semelhantes Existe um sensor no referido posto, que permite a detecção dos produtos. Sempre que existam 100 produtos no contentor deve ser colocado um novo contentor utilizando um actuador pneumático. Atribuição de endereços: IR 00.00 - detector IR 10.00 - actuador TC 120 - contador O diagrama de contactos para este problema é o representado de seguida. CNT 120 CNT 120 #100 detector CNT 120 R CP DIFU actuad Pretende-se efectuar algumas melhorias no sistema: • se uma peça estiver mais de 5 segundos em frente ao posto, então gera alarme; • quando chega a 100, o tapete deve parar, para dar tempo à mudança de contentor; • após 10 segundos, o tapete deve voltar a funcionar; • possibilidade de detectar dois tipos de peças A e B (contentor A - 100 peças e contentor B - 50 peças), tal como se mostra na próxima figura. Automação e Robótica 41 Actuador pneumático A B Figura 5.10 - Selecção de diferentes tipos de peças 2.6 INSTRUÇÕES DE MANIPULAÇÃO DE DADOS A solução de determinados problemas requer a necessidade de manipular não apenas um bit mas sim um conjunto de bits agrupados numa palavra (word), constituída por dois bytes, ou seja 16 bits. 2.6.1 MOVE Esta instrução permite copiar o conteúdo de uma palavra origem para uma palavra destino, sempre que a condição de execução for verdadeira. MOV S D em que S é a palavra origem, que pode pertencer às áreas IR, SR, AR, DM, HR, TC, LR ou ser um valor numérico, e D é a palavra destino, que pode pertencer às áreas IR, SR, AR, DM, HR e LR. É preciso ter em atenção que os DM 6144 a DM6655 não poderão ser utilizados para a palavra destino, pois pertencem a uma área de memória reservada apenas a leitura. Palavra Origem . . . Palavra Destino . . . MOV O estado dos bits da palavra origem é preservado durante a realização da instrução MOV. MOV 001 HR 05 0.0 Neste caso, quando a entrada 0.0 estiver em ON, o conteúdo de IR 001 é copiado para HR05. Por exemplo se IR 001 contiver o valor 01101011111, então HR05 passará a conter esse valor. Automação e Robótica 42 IR 000 : 0110 1011 111 ... ⇓ ⇓ ⇓ HR 05 : 0110 1011 111 ... 2.6.2 MOVE NOT Esta instrução é semelhante ao MOV, com a diferença de quando a condição de execução for verdadeira, é copiado para a palavra destino o conteúdo invertido da palavra origem. Se a palavra origem for um valor numérico, então deverá estar no formato hexadecimal. MVN #F8C5 DM 001 0.0 Uma vez que # F8C5 em hexadecimal é semelhante a 111 1000 1100 0101 em binário, então o valor que será transferido para o DM 0010 será 0000 0111 0011 1010, que é o complementar de #F8C5. 2.6.3 Instruções Diferenciais Algumas instruções permitem tanto a forma não diferencial como a diferencial. As instruções são distinguidas através da colocação do símbolo @ imediatamente antes da mnemónica da instrução. Uma instrução não diferencial é executada sempre que a condição de execução é ON. Uma instrução diferencial é executada apenas após a condição de execução passar de OFF a ON. Se a condição de execução não se alterou ou se mudou de ON para OFF, a instrução não será executada. @MOV HR 10 DM 000 0.0 Diagrama A Diagrama B MOV HR 10 DM 0000 0.0 No diagrama A, que apresenta a instrução MOV não diferencial, o conteúdo de HR10 é copiado para DM 0000 sempre que o programa execute a linha de instrução. Se o tempo de ciclo é 80 ms e 0.0 permanece em ON por 2,0 segundos então a operação MOV é executada 25 vezes, sendo apenas preservado o último valor que é copiado para DM 0000. No diagrama B, a instrução diferencial @MOV move o conteúdo de HR 10 para DM 0000 apenas quando 00.00 passa a ON. Mesmo que 00.00 se mantenha em ON durante Automação e Robótica 43 2 segundos com o mesmo tempo de ciclo (80 ms), a instrução só será executada uma vez, aquando do primeiro ciclo, no qual 00.00 passa de OFF para ON. 2.6.4 Endereçamento Indirecto Quando a área DM é especificada para um operando, um endereço indirecto poderá ser utilizado, vulgarmente designado por apontador. Um apontador diferencia-se de um endereço normal por ter um asterisco antes do prefixo DM: *DM XXXX. Quando se utilizam apontadores, o DM especificado conterá o endereço da palavra DM que contém a informação que será usada como operando da instrução. MOV *DM 0001 LR 00 4C59 1111 F35A 5555 2506 D541 . . . DM 0000 o valor 5555 é copiado para LR00 indica DM 1111 DM 1113 DM 1112 DM 1111 DM 0002 DM 0001 Figura 5.11 - Utilização de apontadores no endereçamento de memória No exemplo anterior, *DM 0001 é utilizado como 1º operando da instrução MOV, sendo o seu conteúdo o apontador para a posição de memória DM 1111, cujo conteúdo será copiado para o segundo operando, neste caso, o LR 00. Importante: Quando se trabalha com endereços indirectos, o conteúdo do DM que irá especificar a palavra que contém a informação, deverá estar em formato BCD e compreendido entre 0000 e 1999. 2.7 INTERRUPÇÕES Uma interrupção é um tipo de entrada especial que permite o tratamento imediato do acontecimento, deixando por instantes de executar o programa principal. Após ter sido tratada a interrupção, o ciclo de execução volta ao programa principal. O autómato programável CPM1 possui três tipos de interrupções, descritas de seguida: • Entradas de interrupção - o processamento da interrupção é executada quando uma das entradas de interrupção passa a ON a partir de uma fonte externa. • Interrupções temporizadas - o processamento da interrupção é executado a partir de um temporizador com precisão de 0,1 ms. • Interrupções de contadores - o processamento da interrupção é executado quando o contador atinge o valor especificado no contador. Automação e Robótica 44 As entradas de interrupção tem prioridade sobre os outros dois tipos de interrupção. Quando 2 entradas de igual prioridade são actuadas simultaneamente, é executada a entrada de interrupção 0, no que se segue a entrada de interrupção 1, etc. O CPM1 possui as entradas 0003 a 0006 como entradas de interrupção, que podem ser definidas como entradas de interrupção utilizando o DM 6628. Palavra Valores DM 6628 0 : entrada normal 1: entrada interrupção 2: entrada de resposta rápida Figura 5.12 - Configuração das interrupções As interrupções das entradas 00.03 a 00.06 são alocadas às interrupções 00 a 003 e às subrotinas 000 a 003. Se as entradas de interrupção não estiverem a ser utilizadas, as subrotinas de interrupção 000 a 0003 podem ser utilizadas como subrotinas normais. Quando uma entrada de interrupção é recebida, o programa principal éinterrompido e o programa de interrupção é executado imediatamente. O sinal de interrupção deverá estar a ON durante pelo menos 200 µs, de forma a ser detectado. Programa de Interrupção Programa Principal Programa Principal Entrada de interrupção Figura 5.12 - Funcionamento de uma interrupção Para activar as entradas de interrupção é necessário utilizar a instrução INT. INT CC 000 D em que CC é o código de controlo e D são os dados de controlo. Se pretendermos configurar as entradas que se pretendem que sejam interrupções, deveremos utilizar o valor 000 no parâmetro CC (permite colocar uma máscara nas entradas de interrupção). No parâmetro D deverá ser colocado o valor que corresponda à activação das entradas de interrupção; por exemplo, se pretendermos configurar a entrada 0.4 como entrada de interrupção, devemos colocar o valor #D (1 1 0 1). DM 6628 0003 0004 0005 0006 Bit 0Bit 15 Automação e Robótica 45 Exemplo de aplicação Vamos considerar o diagrama que se segue, em que se representa a activação de uma interrupção a partir da entrada 0.3. . . . INT 000 000 #000E SBN 000 RET Programa de interrupção 0.3 Quando a entrada 00.03 (interrupção numero 0) vai a ON, o controlo passa imediatamente para o programa de interrupção com a subrotina 000. As entradas de interrupção foram configuradas no DM 6628 com o valor 0001. 0. 6 0. 5 0. 4 0. 3 1 1 1 0 O valor #E colocado na instrução INT, permite o enable da interrupção da entrada 0.3. 2.8 SUBROTINAS As subrotinas permitem dividir as tarefas complexas de controlo em pequenos módulos. Quando o programa principal invoca a subrotina, o controlo é transferido para a subrotina, sendo as instruções da subrotina executadas. Quando todas as instruções da subrotina estiverem concluídas o controlo regressa ao programa principal. em que N é o numero da subrotina. Na figura que se segue é possível verificar que a instrução SBS 000 permite realizar um salto no programa principal para a subrotina 0, representada pela instrução SBN 00. SBS N Automação e Robótica 46 Programa Principal SBS 00 Programa Principal SBN 00 Subrotina RET END Figura 5.13 - Principio de funcionamento das subrotinas O final da subrotina é representado pela instrução RET, que retorna a execução do programa para a instrução seguinte a da chamada da subrotina. Automação e Robótica 47 3 MODELAÇÃO DE SISTEMAS COMPLEXOS CONDUZIDOS POR EVENTOS 3.1 INTRODUÇÃO AO GRAFCET O GRAFCET (Graphe de Commande Etape-Transition) foi estabelecido em 1977 pela “Association Française pour la Cybernétique Economique et Technique”, e é uma linguagem gráfica utilizada para representar o algoritmo de controlo, com respeito às suas interacções com o mundo exterior. A linguagem GRAFCET fornece aos utilizadores a possibilidade de implementar projectos de automação simples ou complexos, com eficiência e baixo custo. De uma forma simples, o GRAFCET consiste em: • Dois elementos gráficos: ETAPAS e TRANSIÇÕES. • Dois elementos de controlo: ACÇÕES para as Etapas e Receptividades para as transições. Uma etapa é ligada sempre a uma transição e uma transição é sempre ligada a uma etapa, através de ligações orientadas. SOBE_BROCA SE /BROCA_UP1 LIGA_BROCA; BAIXA_BROCA SE T/X2/3s/2 LIGA_BROCA; SOBE_BROCA3 t1 INICIO.BROCA_UP t2 BROCA_BAIXO t3 BROCA_UP Acção Etapa InicialLigação Etapa Transição Receptividade Figura 6.1- Exemplo de um Grafcet A utilização da ferramenta Grafcet oferece algumas vantagens, das quais se destacam as seguintes: • Suportado por um Standard - suportado pelo standard IEC 848 da International Electrotechnical Commission, representativo de todas as empresas que suportam o Grafcet de modo a manter a sua integridade e universalidade. • Gráfico Orientado ao Processo - desenvolvido para aplicações de processo, o Grafcet possui características que não são suportadas pelas outras ferramentas similares, tais como processamento paralelo. Automação e Robótica 48 • Desenvolvimento independente do autómato programável - o trabalho de especificação realizado com o Grafcet é completamente independente do tipo de autómato programável que será utilizado na aplicação de automação. • Tarefa de concepção facilitada - o formato gráfico torna mais fácil a tarefa de identificação de erros de concepção. Mais importante, o Grafcet diminui o custo dos erros de interpretação, quer sejam originários de construtores, fornecedores ou equipas de concepção. • Redução do tempo de desenvolvimento de aplicações - o Grafcet o desenvolvimento de um método para a implementação de código para autómatos programáveis. Actualmente, o GRAFCET é a linguagem mais produtiva e flexível desenvolvida para automação de processos. 3.2 ESPECIFICAÇÃO FUNCIONAL E TECNOLÓGICA A especificação de automatismos industriais requer a consideração dos seguintes pontos: funcional e tecnológico [Novais, 94]. 3.2.1 Especificação Funcional A especificação funcional engloba as seguintes características: • Descreve as interacções entre as partes de Comando e Operativa. • Define as funções, informações e comandos implicados no automatismo. • É independente das opções tecnológicas. 3.2.2 Especificação Tecnológica A especificação tecnológica engloba as seguintes características: • Descreve fisicamente as trocas de informação entre as partes operativas e de comando. • Define os meios de comunicação entre o operador e o automatismo. 3.3 CONCEITOS BÁSICOS DO GRAFCET 3.3.1 Etapas O princípio fundamental do Grafcet é a redução do processo de controlo a etapas simples. Uma etapa corresponde a uma situação do sistema, ou de parte dele, em que o comportamento permanece invariante. A etapa é representada por um quadrado com Automação e Robótica 49 um número no interior. A entrada é efectuada na parte superior do quadrado e a saída na parte inferior. LIGA_BROCA; BAIXA_BROCA SE T/X2/3s/2 Figura 6.2 - Etapa e Acção Uma etapa está activa ou inactiva. Uma etapa activa é assinalada com um ponto (.) na parte inferior do seu símbolo. LIGA_BROCA; SOBE_BROCA2 • Figura 6.3 - Etapa activa ou validada O estado actual do sistema é caracterizado pelo conjunto das etapas activas. A cada etapa estão associadas acções. As acções são executadas enquanto a etapa está activa, e controlam as saídas que tem por objectivo a execução de diversas funções. Quando uma etapa está activa, são executadas as acções associadas à etapa. As várias acções estão separadas pelo símbolo “;” ou então por um traço horizontal. 3.3.2 Transições As etapas do gráfico são separadas por transições. As transições representam a possibilidade de evolução entre etapas. 1 1 INICIO.BROCA_UP Figura 6.4 - Transição e Receptividade A cada transição está associada uma condição lógica denominada por receptividade. A evolução no GRAFCET requer que a etapa esteja activa e a receptividade associada à transição seja 1. A utilização de operadores lógicos AND e OR representa-se na receptividade pelo uso dos símbolos “•“ e “+”. Assim, a condição lógica é verdadeira se INICIO e BROCA_UP são condições verdadeiras. 3.4 PRINCÍPIO DE FUNCIONAMENTO Na definição do Grafcet existem várias regras que governam o seu comportamento, e que serão descritas de seguida. Automação e Robótica 50 3.4.1 Inicialização As etapas activas após a inicialização são assinaladas duplicando o contorno dos respectivos símbolos. SOBE_BROCA SE /BROCA_UP1 Figura 6.5 - Etapa Inicial Neste caso, a acção da etapa 1 contém apenas um elemento de controlo: furação. 3.4.2 Validação Uma transição está validada ou não validada. Está validada se todas as etapas de entrada estiverem activas. 3.4.3 Disparo de uma transição Uma transição é disparada se estiver validada (a etapa anterior está activada) e a
Compartilhar