Prévia do material em texto
Área Tecnológica de Mecatrônica. ROBÓTICA BÁSICA ROBÔ FANUC Área Tecnológica de Mecatrônica. ROBÓTICA BÁSICA ROBÔ FANUC SALVADOR 2 0 0 3 Copyright 2003 por SENAI CIMATEC. Todos os direitos reservados. Área Tecnológica de Mecatrônica Elaboração: Eduardo José Lima II Marise Carvalho Mota Arnaldo Helder Lacerda de Araújo Revisão Técnica: Milton Souza Bastos Revisão Pedagógica: Maria Célia Calmon Santos Normalização: Maria do Carmo Oliveira Ribeiro Catalogação na fonte (Núcleo de Informação Tecnológica - NIT) ________________________________________________________ SENAI-BA CIMATEC – Centro Integrado de Manufatura e Tecnologia. Robótica Básica: robô FANUC. Salvador, 2003. 67.p. il. (Rev.00) I. Robótica I. Título CDD 629 ________________________________________________________ SENAI CIMATEC Av. Orlando Gomes, 1845 - Piatã Salvador – Bahia – Brasil CEP 416050-010 Tel.: (71) 462-9500 Fax. (71) 462-9599 http://www.cimatec.fieb.org.br http://www.cimatec.fieb.org.br/ MENSAGEM DO SENAI CIMATEC O SENAI CIMATEC visa desenvolver um programa avançado de suporte tecnológico para suprir as necessidades de formação de recursos humanos qualificados, prestação de serviços especializados e promoção de pesquisa aplicada nas tecnologias computacionais integradas da manufatura. Com uma moderna estrutura laboratorial e um corpo técnico especializado, o CIMATEC desenvolve programas de intercâmbio tecnológico com instituições de ensino e pesquisa, locais e internacionais. Tudo isso sem desviar a atenção das necessidades da comunidade, atendendo suas expectativas de formação profissional, suporte tecnológico e desenvolvimento, contribuindo para uma constante atualização da indústria baiana de manufatura e para a alavancagem do potencial das empresas existentes ou emergentes no estado. APRESENTAÇÃO Neste trabalho, o convidamos a entrar no mundo fascinante da robótica. Aqui você encontrará os conceitos básicos necessários à compreensão do funcionamento dos robôs, desde os aspectos construtivos aos fundamentos básicos de programação. Não se pretende aqui esgotar o assunto, mas sim fornecer subsídios básicos para aqueles que pretendem ter um contato inicial com a área e para aqueles que pretendem se aprofundar posteriormente. SUMÁRIO 1. IntroduÁão à Robótica.........................................................................................7 1.1 HISTÓRICO..................................................................................................................................................7 1.2 DEFINIÇÃO..................................................................................................................................................7 2. Arquitetura.............................................................................................................8 3. ClassificaÁão.........................................................................................................9 4. Graus de Liberdade............................................................................................13 5. Volume de Trabalho...............................................................................................14 6. Acessórios...........................................................................................................15 6.1 GARRAS:..................................................................................................................................................15 6.2 FERRAMENTAS ESPECIALIZADAS....................................................................................................................16 7. Capacidade de Carga.........................................................................................16 8. AplicaÁões Industriais de Robôs......................................................................16 8.1 SOLDAGEM................................................................................................................................................17 8.1.1 SOLDAGEM A PONTO..................................................................................................................................17 8.1.2 SOLDAGEM A ARCO....................................................................................................................................18 8.2 APLICAÇÃO DE FLUIDOS..............................................................................................................................19 8.3 MONTAGEM...............................................................................................................................................20 8.4 CARREGAMENTO / MOVIMENTAÇÃO..............................................................................................................21 9. SeguranÁa...........................................................................................................21 10. Tipos e dispositivos de ProgramaÁão.............................................................23 10.1 PROGRAMAÇÃO MANUAL............................................................................................................................25 10.2 REPETIÇÃO................................................................................................................................................26 11. Terminal de ProgramaÁão (Teach Pendant).....................................................26 12. Linguagens de ProgramaÁão.............................................................................29 12.1 GERAÇÕES DE LINGUAGENS DE PROGRAMAÇÃO..............................................................................................29 12.2 COMANDOS DE PROGRAMAÇÃO...................................................................................................................31 12.3 SIMULAÇÃO...............................................................................................................................................35 12.4 SISTEMA DE MOVIMENTAÇÃO DO ROBÔ.........................................................................................................35 12.5 MODO AUTOMÁTICO..................................................................................................................................36 12.6 CRIAÇÃO E EDIÇÃO DE PROGRAMAS.............................................................................................................36 12.7 SALVAMENTO DE PROGRAMAS......................................................................................................................37 12.8 VISUALIZAÇÃO DE ERROS............................................................................................................................37 12.9 TROCA DE FERRAMENTAS............................................................................................................................37 12.10 ETAPAS DA PROGRAMAÇÃO......................................................................................................................38 12.11 PLANEJAMENTO DE PROGRAMAS...............................................................................................................38 12.12 DOCUMENTAÇÃO DE PROGRAMAS..............................................................................................................40 12.13 INTERRUPÇÕES.......................................................................................................................................40 13. Elementos de ProgramaÁão(robô FANUC).....................................................40 13.1 INSTRUÇÕES DE MOVIMENTO........................................................................................................................40 13.2 REGISTRADORES.........................................................................................................................................42 13.3 ESTRUTURAS DE CONTROLE DE FLUXO...........................................................................................................42 13.3.1 CHAMADA DE PROGRAMAS......................................................................................................................43 13.3.2 SALTOS DENTRO DE UM PROGRAMA...........................................................................................................43 13.3.3 ESTRUTURA CONDICIONAL.......................................................................................................................44 13.3.4 REPETIÇÃO COM CONTAGEM.....................................................................................................................44 13.3.5 SELEÇÃO DE CONDIÇÕES.........................................................................................................................45 13.4 COMANDO DE ATRASO.................................................................................................................................45 13.5 COMANDO DE MENSAGEM............................................................................................................................45 13.6 ENTRADAS E SAÍDAS...................................................................................................................................45 13.6.1 FORÇANDO E SIMULANDO SINAIS..............................................................................................................46 ANEXO I – Robô Industrial da FANUC (ARC Mate 50 iL)......................................48 A1.1 SEGURANÇA..............................................................................................................................................48 A1.1.1 CONSIDERAÇÕES DE SEGURANÇA PARA A INSTALAÇÃO DO ROBÔ..................................................................48 A1.1.2 EXTINÇÃO DO FOGO..............................................................................................................................49 A1.1.3 USO DE DISPOSITIVOS DE AUMENTO DE SEGURANÇA.................................................................................49 A1.1.4 CRIANDO UM CÉLULA DE TRABALHO SEGURA..........................................................................................49 A1.1.5 PARADAS DE EMERGÊNCIA......................................................................................................................50 A1.2 APLICAÇÕES:.............................................................................................................................................50 A1.3 GRAUS DE LIBERDADE:...............................................................................................................................50 A1.4 EIXOS:.....................................................................................................................................................51 A1.4.1 EIXOS INTERNOS :..................................................................................................................................51 A1.4.2 EIXOS EXTERNOS :.................................................................................................................................51 A1.5 ABERTURA DE PROGRAMAS.........................................................................................................................51 A1.6 INICIANDO O PROGRAMA.............................................................................................................................52 ANEXO II – Roteiros de Aulas Práticas...................................................................53 PRÁTICA 1 – MOVIMENTAÇÃO DO ROBÔ (JOGGING)......................................................................................................53 PRÁTICA 2 - MARCAÇÃO DE PONTOS..........................................................................................................................55 PRÁTICA 3 - EDIÇÃO DE POSIÇÃO DE PONTOS...............................................................................................................58 PRÁTICA 4 - FUNÇÕES DE CHAMADAS DE PROGRAMAS...................................................................................................60 PRÁTICA 5 - COMANDO DE MOVIMENTO CIRCULAR.......................................................................................................61 PRÁTICA 6 - REPETIÇÃO DE PROGRAMA UM NÚMERO INDETERMINADO DE VEZES...............................................................63 PRÁTICA 7 - REPETIÇÃO DE PROGRAMA UM NÚMERO DETERMINADO DE VEZES..................................................................64 Referências Bibliográficas.......................................................................................66 1. IntroduÁão à Robótica 1.1 Histórico Desde o início da humanidade busca-se o desenvolvimento de equipamentos que possibilitem melhorar a forma de sobrevivência e/ou interação com o meio ambiente. O termo robô tem sua origem datada no início do século XX através da imaginação de escritores de ficção científica como Karel Capek que introduziu o termo em 1921 em sua peça Rossum´s Universal Robots (RUR). Este termo provem do checo e significa trabalho árduo ou trabalho forçado. Já o termo robótica foi introduzido por Isaac Asimov, no início dos anos 40 para descrever a arte e a ciência que envolve a tecnologia de robôs. Na concepção de Capek os robôs podiam se tornar malevolentes e dispostos a conquistar o mundo, enquanto que na de Asimov os robôs seriam sempre benevolentes para a humanidade. O conceito de robô industrial foi patenteado em 1954 por G.C. Devol. Ele descreve como construir um braço mecânico controlado para realizar tarefas na indústria. Porém somente em 1961 foi instalado o primeiro robô industrial pela Unimation na General Motors em uma máquina de fundição. Três tecnologias que nasceram durante ou após a II Guerra Mundial que foram cruciais para o sucesso da robótica: A tecnologia de servo-mecanismos; a computação digital; e o desenvolvimento de componentes eletrônicos. É interessante notar que no princípio a eletrônica representava 75% do custo de fabricação do robô, enquanto que 25% referia-se ao custo hidromecânico. Hoje essas taxas se inverteram. Os robôs industriais são considerados convenientes para trabalhos considerados repetitivos, desagradáveis, arriscados ou insalubres para o homem. As principais vantagens dos robôs são as seguintes: • Flexibilidade • Alta produtividade • Melhor qualidade dos produtos • Aumento da qualidade de vida humana, uma vez que realizam trabalhos indesejáveis. Muita discussão se forma ao redor dos robôs e sob seu uso em detrimento as mãos-de-obra humana. Obviamente a implantação de robôs extingue algumas atividades humanas, aquelas que são repetitivas e braçais, mas em contra-partida desloca postos de trabalho para atividades de maior valor agregado, substituindo assim a mão-de-obra pela mente-de-obra. 1.2 DefiniÁão A Divisão Internacional de Robótica da Society Manufacturing Engineers (SME) define o robô industrial como “manipulador multifuncional reprogramável projetado para mover materiais, peÁas, ferramentas ou aparelhos especializados através de movimentoprogramados variável para a realizaÁão de diversas tarefas”. As palavras chaves dessa definição são multifuncionais, mostrando que o robô pode possuir mais do que uma função sendo que às vezes pode possuir somente uma, reprogramável, mostrando que o robô pode ser programado sempre e mover materiais, peças e ferramentas que definem as tarefas do manipulador. Além dessas pode-se incluir as seguintes palavras chaves: 7 movimento sobre diversas direções (graus de liberdade), end effector (ferramenta do robô anexada ao pulso do robô que exercerá a função desejada). 2. Arquitetura Os sistemas robóticos consistem de, no mínimo, duas partes principais: • Manipulador - Consiste na estrutura mecânica móvel que realiza a função de movimento em um robô. Ele é composto por uma estrutura principal (main frame), braço mecânico, que consiste de diversos ligamentos mecânicos rígidos conectados por juntas que permitem o movimento relativo entre ligamentos vizinhos. As juntas são dotadas normalmente de sensores de posição que permitem medir o deslocamento relativo entre os ligamentos. Ao pulso do robô (flange) se conectam ferramentas específicas que variam segundo a aplicação. • Controlador - Controla e armazena o programa tarefa, bem como atua nas juntas do manipulador As partes de um robô correspondem a algumas das partes de uma pessoa (e outros animais), pois os problemas de percepção, movimento e controle que os robôs devem resolver são análogos aos muitos problemas que os humanos e outras criaturas vivas também enfrentam. De fato, a fim de descobrir como solucionar esses problemas para os robôs os engenheiros freqüentemente preferem estudar como a natureza tentou solucioná-los. 9 3. ClassificaÁão A primeira classificação diferencia os diversos tipos de robô pela sua forma de locomoção: 1. Tartarugas (turtlebots): São robôs dotados de características que os assemelham a uma tartaruga. 2. Estacionários: São braços dotados de mãos ou garras que normalmente ficam fixos em mesas e pedestais. 3. Andróides: Robôs que possuem formas baseadas na anatomia do corpo humano. Os sistemas robóticos classificam-se também segundo a configuração das juntas utilizadas, incluindo as características cinemática e estrutural, o número de graus de liberdade, a faixa de trabalho e o tipo de controle do robô. Para permitir a compreensão desta classificação, caracterizaremos os tipos de junta como: • Prismáticas: que podem ser de estágio simples e estágio múltiplo (juntas telescópicas), as de estágio simples são feitas de uma superfície móvel que desliza linearmente sobre uma superfície fixa; as de estágio múltiplo são na verdade um conjunto de juntas de estágio simples (à semelhança de uma antena de carro). Produzem deslocamentos lineares entre os ligamentos. 10 • De movimento Rotativo: projetadas para permitir rotação pura com o mínimo de movimentos axiais e radiais. Produzem deslocamentos angulares entre os ligamentos. São também chamadas de juntas angulares. Há, ainda, juntas especiais, como as juntas esféricas: • Esféricas: projetadas para combinar três juntas de rotação, realizando a rotação em torno de três eixos. No corpo humano existem algumas juntas esféricas como a junta entre o ombro e o braço, o braço e o punho, o tronco e as pernas. Assim, estruturalmente os robôs podem ser classificados de acordo com o sistema de coordenadas adotado pela sua estrutura principal, ou seja, seus três primeiros eixos a contar a partir da base: Cartesiano (três eixos lineares - PPP): possuem uma estrutura principal que consiste em três linhas ortogonais (prismáticas ou deslizantes). Em robôs cartesianos, o hardware do manipulador e o programa de controle são similares aos das máquinas ferramentas CNC. O pulso de um robô cartesiano pode ser programado para traçar uma trajetória linear simplesmente controlando cada um dos eixos com velocidade constante. Outra importante característica dos robôs cartesianos é sua resolução espacial constante, isto é sua resolução é fixa em todas as direções da trajetória. Não é tão popular na indústria devido a sua deficiente flexibilidade mecânica, não conseguindo alcançar objetos no chão ou alcançar pontos invisíveis da sua base. Além disso, a velocidade de operação no plano horizontal é inferior aos robôs que possuem uma base rotacional. Cilíndricos (um eixo angular e dois eixos lineares RPP): consistem em um braço horizontal montado sobre uma coluna vertical que é inserida em uma base rotacional. Seu volume de trabalho é um cilindro de base anular. Sua resolução não é constante e depende da distância r entre a coluna e a garra inserida no braço horizontal. A resolução do braço sobre a base possui uma ordem de grandeza duas vezes maior que nos robôs cartesianos, além disso, possui maior velocidade no fim do braço. Entretanto essa velocidade é limitada em muitos robôs devido à variação do momento de inércia do braço do robô 11 que depende da carga da ferramenta inserida no braço do robô e a posição do próprio braço. Porém uma boa performance dinâmica é difícil de ser alcançada, pois o torque que o motor que está na base deve fornecer depende da posição, velocidade e aceleração das outras juntas e causa variação que reflete no torque e momento de inércia. O momento de inércia depende da massa do objeto carregado pela garra e também da distância entre o eixo da base e o objeto manipulado. Esta distância é função da posição instantânea da garra e das outras juntas durante o movimento, logo o momento de inércia varia com a posição e o tempo. Esféricos (dois angulares e um linear RRP): consistem em uma base rotatória, um eixo elevado e um braço telescópico. Seu volume de trabalho é de uma casca esférica. Sua desvantagem em relação aos robôs cartesianos é que os robôs esféricos possuem dois eixos com resolução relativamente baixa que varia com o comprimento do braço. Sua vantagem em relação aos robôs cartesianos e cilíndricos é sua melhor flexibilidade mecânica, seu eixo elevado permite acesso aos pontos no nível da base ou abaixo dela. SCARA (dois angulares e um linear RRP): A sigla SCARA provém do inglês e significa “Selective Compliant Assembly Robot Arm''. A principal vantagem desta configuração é que os atuadores das duas primeiras juntas estão livres de suportar os pesos do próprio manipulador e da carga e podem ser alocados na base do manipulador, podendo então ser relativamente grandes, o que garante altas velocidades de movimento. Como o próprio nome indica, esta configuração é indicada para tarefas de montagem, tais como inserir pinos em buracos ou componentes de circuitos eletrônicos em soquetes. Articulados (três eixos angulares RRR): consistem em três membros rígidos conectados por duas juntas de revolução e apoiados sobre uma base rotatória. Os robôs articulados possuem três eixos angulares e sua resolução espacial depende da posição do braço. Sua precisão é pobre pois os erros das juntas são acumulados no fim do braço. Por outro lado podem mover-se em altas velocidades e possuem uma excelente flexibilidade mecânica, o que torna o seu uso mais comum em robô de tamanho pequenoou médio. Geralmente, além dos três eixos mencionados, os robôs articulados possuem mais três eixos que têm o objetivo de orientar a ferramenta, são eles o roll, o pitch e o yaw. 12 • Yaw é uma rotação ao redor de um eixo vertical que vai da parte superior à parte inferior através do punho. Isto produz um movimento da direita para a esquerda, assim como aquele usado para dizer “não”. • Pitch é uma rotação ao redor de um eixo horizontal que vai da esquerda para à direita através do punho. . Isto produz um movimento de sobe e desce da mão, assim como aquele usado para dizer “até logo”. • Roll é uma rotação ao redor de um eixo horizontal que vai de trás para frente através do punho. Isto produz um balanço lateral da mão, assim como aquele usado para dizer “mais ou menos”. Alguns robôs utilizam outra configuração para os eixos de orientação da ferramenta. Nestes robôs temos dois eixos de roll e um eixo de picth/yaw. Desta forma obtemos também a orientação da ferramenta em roll, pitch e yaw. A figura seguinte mostra como a ferramenta pode ter várias orientações na mesma posição: 4. Graus de Liberdade Braços de robôs são freqüentemente descritos como tendo um certo número de graus de liberdade ou um certo número de eixos de movimento. Em robótica, o número de graus de liberdade é o número de movimentos distintos que o braço pode realizar. Normalmente o número de graus de liberdade iguala-se ao número de juntas, de forma que um robô de cinco graus de liberdade possui cinco juntas, e um robô com seis eixos tem seis juntas. Porém, em certos casos é possível que duas juntas não tenham movimentos independentes, como, por exemplo, em um compasso com engrenagens. Nesses casos apenas um grau de liberdade é contado para as duas juntas. A noção de graus de liberdade tem limites definidos. Por exemplo, uma junta não possui apenas uma direção de movimento, mas também limites a este movimento. Essa faixa de movimento permitido, que não tem nada a ver diretamente com graus de liberdade, é muito importante. Por exemplo, quando seguramos uma bola de tênis na mão, a seguramos mantendo a palma da mão em contato com ela. Isto ocorre porque as juntas de nossos dedos só dobram na direção da palma da mão e não em direção às costas desta. Caso nossas juntas tivessem uma faixa de 13 movimento que lhes permitisse dobrar nas duas direções, seríamos capazes de pegar uma bola de tênis tanto com a palma como com as costas da mão. Assim, usamos os graus de liberdade adicionais das juntas de nossos punhos, cotovelo e ombro para mover nossa mão de tal forma que a palma fique de frente para a bola. Portanto ter mais juntas (punho, cotovelo e ombro) e em conseqüência mais graus de liberdade, ajuda-nos a compensar o fato de ter uma faixa de movimentos um tanto limitada em nossos dedos. Um robô precisa de apenas dois ou três graus de liberdade para ser útil, mas às vezes mais que seis graus são necessários para estendê-lo a realizar manobras, como, por exemplo, no interior de um automóvel. 5. Volume de Trabalho Uma das características mais importantes dos manipuladores é o seu volume de trabalho, ou seja, a região do espaço que o mesmo consegue alcançar com seu órgão terminal. A superfície desse volume depende do sistema de coordenadas empregado e o tamanho depende das dimensões físicas do braço do robô. Robôs em movimento especialmente de grande porte, acumulam uma grande energia. Os robôs podem aparentar estarem desligados, mas podem mover-se repentinamente e sem advertência, pois pode estar esperando por sinais de entradas que vem de outras máquinas ou mesmo esperando um período de tempo passar. A segurança do usuário depende do respeito ao volume de trabalho do robô. É importante observar também que o acoplamento de uma ferramenta no flange do robô aumenta esse volume de trabalho. Volume de Trabalho do homem e de um robô 14 Volume de Trabalho do FANUC ARC Mate 50 iL 6. Acessórios A junta terminal do robô é também conhecida como punho ou flange. A ela podem ser acoplados acessórios efetuadores ou ferramentas apropriadas para diferentes aplicações. As ferramentas podem ser classificadas em dois grandes grupos: garras e ferramentas especializadas, respectivamente usadas para mover objetos e para executar tarefas especiais. 6.1 Garras: • Garras de dois dedos: É o tipo de garra mais comum, variando em tamanho e/ou movimento dos dedos. A desvantagem básica da garra de dois dedos é a sua limitação de abertura, impossibilitando o manuseio de objetos maiores que sua abertura total. • Garras de três dedos: É similar à garra de dois dedos, mas permite maior segurança no agarrar objetos, podendo segurar formas esféricas, triangulares, etc. • Garras para objetos cilíndricos: Consiste de dois dedos, cada um deles possuindo três ou mais depressões circulares, possibilitando a pega de objetos cilíndricos de diversos tamanhos. 15 • Garras para objetos frágeis: Projetadas para pegar um objeto frágil sem quebrá-lo, através da distribuição do ponto de força ao longo da peça. • Garras de Juntas: Apropriadas para pegar objetos de vários tamanhos e de superfícies irregulares. As conexões são movidas por pares de cabos. Um cabo de cada par flexiona a junta, e o outro a estende. Para pegar um objeto, as juntas dos dedos envolvem-no e seguram-no firmemente. Quanto menor o tamanho das juntas dos dedos, maior é a firmeza e a capacidade de pegar objetos irregulares. • Garra Eletromagnética ou a Vácuo: Projetadas para pegar objetos lisos e chatos através de um vácuo criado nas suas ventosas. Já as Garras Eletromagnéticas são designadas para pegar objetos metálicos através de campo magnético. Ambos os tipos de garras são eficientes, já que elas podem pegar objetos de diversos tamanhos, e não requerem grande precisão na localização do objeto. As garras a vácuo são usadas para pegar objetos de superfície plana, como chapas de metal e caixas de papelão. Geralmente cada garra a vácuo possui um determinado número de ventosas conforme sua aplicação, isto para reduzir o risco de escorregamento, bem como para aumentar a capacidade de transporte. 6.2 Ferramentas especializadas As ferramentas especializadas que os robôs podem usar nas diversas operações que executam incluem pistolas de pintura e de solda a ponto, tochas de solda a arco, cortadores a jato d’água e a laser e rebitadeiras automáticas. Pistola de Pintura Tocha Ponteadeira de Solda Cortadora Laser 16 7. Capacidade de Carga Como vimos previamente, existem diferentes tipos de robôs para a execução das mais variadas funções. Logo a capacidade de carga irá diferir a depender da tarefa a ser executada pelo robô. Robôs podem chegar a ter uma capacidade de carga de até mais de uma tonelada. Os Robôs da FANUC, o ARC Mate 50 iL e o 120 possuem uma capacidade de carga de 3 kg e de 130 kg respectivamente. 8. AplicaÁões Industriais de Robôs A principal vantagem da utilização de robôs na indústriase refere a sua capacidade de executar tarefas repetitivas e com grande precisão (repetibilidade). Com isso pode-se conseguir um aumento na produtividade e na qualidade dos produtos. Além disso, há casos onde há risco para os operários e a utilização de robôs se faz por questões de segurança. São apresentadas a seguir uma série de aplicações de robôs na indústria. 8.1 Soldagem 8.1.1 Soldagem a Ponto Este tipo de soldagem se caracteriza pela união das peças apenas em determinados pontos sem que haja inclusão de material novo. O calor necessário à soldagem provém da corrente elétrica que passa por dois eletrodos permanentes. Os principais parâmetros que influenciam a qualidade da solda são: corrente elétrica, pressão entre os eletrodos, tempo de duração da corrente e espessura do material. As operações do processo de solda a ponto, integrando o robô, são: • Movimento rápido do braço do robô, com a pistola de solda fixa, para se aproximar do ponto a ser soldado; • Aproximação dos eletrodos da pistola de solda a ambos os lados da parte a ser soldada e posicionamento destes exatamente em frente a ponto de solda; • Fixação dos eletrodos no ponto a ser soldado; • Envio de corrente elétrica através dos eletrodos e do material a ser soldado; • Espera; • Abertura dos eletrodos; • Movimentação do braço do robô para se aproximar do novo ponto de solda. 17 Podemos concluir que este tipo de trabalho é ideal para a utilização de robôs, afinal estes podem repetir com grande precisão os valores dos três primeiros parâmetros, durante todo o trabalho. Nestas aplicações o robô usa como ferramenta a pistola de solda que geralmente é pesada ( 10 a 80 Kg ), por isso, são geralmente usados robôs com fonte de potência hidráulica. A precisão de posição não é um ponto crítico. Sem dúvida a utilização de robôs na área de soldagem se mostra muito maior na linha de montagem de automóveis. Os primeiros robôs do setor foram instalados pela General Motors em 1969. Neste tipo de aplicação ocorrem muitos pontos de solda (300) em cada estrutura e, além disso, os pontos são próximos uns dos outros o que cria uma grande vantagem na utilização de robôs. Podemos citar ainda outras aplicações deste tipo de robôs na indústria como: estruturas metálicas e produção de eletrodomésticos. 8.1.2Soldagem a Arco Este método de soldagem é utilizado para unir metais ao longo de uma trajetória contínua. O princípio de operação é igual à soldagem de ponto, porém neste caso há introdução de material de solda, geralmente de mesma composição das peças a serem soldadas. Outra diferença está no fato de que neste caso um eletrodo não entra em contato com a peça e a corrente é transmitida por um arco. Nos sistemas robotizados geralmente se utiliza o processo de escudo por gás inerte (IGS) onde a oxidação da solda que é muito intensa àquela temperatura, é inibida pela introdução de gás inerte na região entre o eletrodo e a peça. A ferramenta neste caso não é tão pesada e robôs com servo motores podem ser utilizados. A velocidade de soldagem varia de 0,25 a 3 m/min. O ciclo de soldagem é controlado pelo equipamento de solda que na verdade controla o fluxo do gás inerte, a tarefa do robô é de conduzir a ferramenta na trajetória correta, com a velocidade desejada e com distância constante em relação à base. As operações realizadas pelo robô são: • Rápido movimento para a área de contato a ser soldada; • Transmissão de sinais para causar a dispersão do gás e aplicação de tensão ao eletrodo; • Movimento preciso ao longo do caminho de solda enquanto mantém um constante vão de ar; • Preservar constante a orientação do eletrodo em relação à superfície a ser soldada; 18 • Manter a pistola de solda se movendo a uma velocidade constante; • Habilidade para realizar movimentos de "tecelagem", para se atingir uma boa junção entre os dois corpos de metal e garantir a qualidade da solda. Este tipo de aplicação geralmente requer robôs com quatro ou cinco eixos de movimentação e se constitui numa das mais difíceis tarefas a ser realizadas por robôs na indústria. Porém a maior vantagem da utilização de robôs é a otimização do tempo de trabalho. Quando analisamos o trabalho realizado por um homem verificamos que o tempo gasto efetivamente com a soldagem é aproximadamente 30% do tempo total, sendo que os 70% restantes são despendidos com ajuste do equipamento de proteção ou das peças. Este tempo pode ser eliminado se o operador for um robô. A principal aplicação da soldagem de arco na indústria se encontra na fabricação de cascos de navios e barcos. Além da melhoria no tempo de produção a soldagem de partes internas se torna muito perigosa para um ser humano devido aos gases tóxicos liberados. 8.2 AplicaÁão de Fluidos Os setores de aplicação de fluidos tais como tinta, cola e resina de uma indústria, são ambientes não adequados para o ser humano em função da toxidez dos produtos utilizados e do ruído provocado pelo fluxo de ar. Assim, esses processos se tornam candidatos potenciais ao uso de robôs em substituição a mão- de-obra humana. Neste tipo de aplicação as características desejadas dos robôs são bastante específicas: • Grande “habilidade” para aplicação do fluido em áreas pouco acessíveis; • Elevado volume de trabalho; • Devem ocupar pequeno espaço no solo pois as áreas são geralmente pequenas; • Ferramenta leve e com baixa precisão. 19 Neste tipo de aplicação ocorre também um grande predomínio de robôs no setor de produção de automóveis onde os robôs devem dispor das características citadas acima para alcançar partes internas do veículo. Apresentamos a seguir um exemplo que ilustra a aplicação de robôs no setor de pintura. Os principais problemas da integração de robôs aos processos de aplicação de fluidos são: – Proteção dos robôs de fumaça e sujeira do ambiente externo; – Isolação de fontes de faíscas elétricas durante a operação, durante a manipulação de fluidos inflamáveis; – Necessidade de coordenação entre os movimentos do robô e a localização das partes a serem pintadas; – Necessidade de alcance de áreas difíceis. 8.3 Montagem Esta operação é uma das áreas mais desafiadoras e com maior potencial de crescimento na aplicação de robôs. Ela requer precisão, repetibilidade, grande variedade de movimentos e alto grau de sofisticação das garras. Geralmente o fator mais importante na decisão de substituir uma linha de montagem com mão-de-obra humana por uma automatizada seja a produtividade e os custos. Neste setor o ambiente normalmente não apresenta grandes riscos aos humanos, portanto para ser viável a aplicação de robôs, estes devem ser mais rápidos ou mais precisos que os humanos. A aplicação mais comum de robôs na montagem industrial é encontrada em produtos com dimensões reduzidas, onde a precisão é fator importante, como elementos eletrônicos ou pequenos motores elétricos. Este sistema permite uma solução extremamente econômica para este tipo de montagem. Há uma peculiaridade neste tipo de aplicação. Devido às dimensões serem bastante reduzidas, as trajetórias das ferramentas são, geralmente, muito curtas. Para atingir velocidades consideráveis e diminuir o tempo de montagem, o robô precisa ter acelerações muito altas. A principal desvantagemda utilização de robôs neste tipo de operação está no fato de que as peças a serem montadas precisam estar dispostas de forma correta para o robô funcionar. Isto faz com que em certas aplicações o sistema de alimentação do robô custe mais caro que ele próprio. 20 8.4 Carregamento / MovimentaÁão Este processo é historicamente um dos mais perigosos da indústria, devido às grandes cargas e pressões que normalmente envolvem. A aplicação de robôs neste tipo de operação, normalmente pouco ergonômica, trás vantagens principalmente para a segurança e saúde dos operários. 9. SeguranÁa Um ponto que deve ser analisado com cuidado se refere à segurança dos operários que podem trabalhar próximos aos robôs. Pode parecer antagônico, mas os robôs que em certos casos são utilizados para diminuir os riscos às vidas humanas, podendo se tornar fonte de perigo. Devemos encarar aqui o robô como uma outra máquina qualquer e, portanto deve este ser tratado como um agente perigoso se operado impropriamente. Um fato agravante na utilização de robôs é que seu volume de trabalho não se limita ao volume realmente ocupado por ele, criando assim uma zona de perigo que às vezes pode não ser percebida pelo operador. Há uma série de normas que regem a instalação de robôs no chão e fábrica. Os pontos mais importantes destas normas são: • O volume de trabalho do robô deve estar constantemente isolado da fábrica, impedindo que qualquer pessoa tenha acesso a ele durante a operação do robô • A abertura da proteção do volume de trabalho do robô deve interromper o seu funcionamento • Deve haver uma indicação luminosa para mostrar que o robô está em operação • Botões de emergência devem estar dispostos em locais de fácil acesso • Deve-se tomar especial cuidado durante a manutenção onde o contato com o robô é inevitável 21 Essas são apenas algumas das instruções para instalação do robô no chão de fábrica. Elas devem ser seguidas rigorosamente para que a integração do robô na fábrica traga aumento da segurança aos operários e não o contrário. Os cuidados de segurança são imprescindíveis durante o manuseio de robôs, principalmente os de porte industrial. As velocidades de operação envolvidas aliado à falta de “inteligência” do equipamento, que meramente reproduz os movimentos pré-programados, os tornam verdadeiras armas mortíferas quando as devidas precauções não são tomadas. Colisões com robôs em movimento podem trazer graves danos tanto ao pessoal envolvido quanto aos equipamentos no entorno. Algumas precauções devem então ser tomadas: 1. Área de trabalho - Não entrar na área de trabalho do robô durante a operação no modo automático. 2. Travas de seguranÁa – Uma vez ocorrida uma parada no sistema provocada por uma trava, o programa reinicia de onde parou. Se a trava faz parte do circuito de emergência, precisa reiniciar. Algumas das travas possíveis são: • Cerca com porta, munida de sensor. • Cortina de luz 3. Fim de curso - Limitação da área de trabalho • Via software (todos os eixos. O próprio controlador impede movimentos além dos valores determinados) • Via hardware (stops mecânicos nos eixos 1,2 e 3) É aconselhável o uso de limitação por software em valores inferiores aos bloqueios por hardware pelo esforço e conseqüente desgaste mecânico provocado por estes últimos 4. Modo de operaÁão - Usualmente costuma-se operar o robô de três formas distintas: – Automático – Usado quando se roda programas prontos, em produção. Não é possível movimentar o robô através do “teach pendant” neste modo. – Modo Aprendizado – É utilizado quando se trabalha dentro da área de trabalho do robô e durante a fase de programação e debug. Normalmente deve-se usar velocidades reduzidas. – Manual Pleno – É utilizado para testar o robô à velocidade de programação plena. Nos modos manuais (modos aprendizagem e manual pleno) a energização dos motores se dá através de um botão de um dispositivo de habilitação localizado no teach pendant. 5. Emergency Stop – botão de parada brusca • Terminal de programação • Painel de controle OBS: Deve ser usado apenas em caso de real emergência pelo esforço aplicado nas engrenagens, causando desgaste mecânicos . 22 6. Bom Senso – A execução de qualquer programa deve ser primeiramente realizada com velocidade reduzida. Só após todos os testes, efetuar em velocidade normal. 10. Tipos e dispositivos de ProgramaÁão Os robôs utilizados na indústria atualmente são basicamente mecanismos automáticos projetados para desenvolver determinadas tarefas que podem ser parte ou até mesmo todo o processo produtivo de determinado produto. Quando executa sua tarefa o robô deve ser capaz de perceber certas mudanças no ambiente e de acordo com elas alterar seu ciclo de operações. Além disso, um mesmo tipo ou até mesmo um mesmo robô deve ser capaz de realizar diferentes tarefas de acordo com a utilização que se faz dele. Os modos de programação dos robôs devem ser capazes de atender a essas exigências, ou seja, permitir a variação do ciclo de operação. A combinação de seis graus de liberdade com o sistema de coordenas não cartesiano geralmente utilizado por robôs torna a programação destas máquinas muito mais complexa do que a de outras utilizadas na manufatura. Por isso muitas técnicas tem sido desenvolvidas para auxiliar e tornar mais completa a programação de robôs. Inicialmente devemos entender a diferença entre os sistemas de coordenadas geralmente utilizados na programação de robôs. Há basicamente três sistemas importantes neste tipo de problema: • o sistema de coordenas global, que se refere ao mundo do usuário e é fixo • o sistema de coordenadas das juntas do robô que se refere aos valores assumidos por cada junção do robô • o sistema de coordenadas da ferramenta (TCP) que é solidário ao ponto central da ferramenta. Cada ponto do espaço cartesiano interno ao volume de trabalho do robô pode ser representado por uma família de coordenadas de junção. O mais importante para o usuário é a localização da ferramenta. Esta pode estar disposta em várias direções mesmo que o ponto central da ferramenta esteja no mesmo local. Geralmente é mais importante programar o movimento com referência na ferramenta e não no robô ou em coordenadas cartesianas globais. Neste ponto fica claro que uma característica importante de um sistema de programação de robôs é a capacidade de realizar a transformação das coordenadas entre os diversos sistemas de referência. Essa transformação deve ser realizada em tempo real, principalmente para aplicações mais complexas. Os métodos comercialmente utilizados na programação de robôs são: manual e repetição ( “on-line”) e linguagens de programação ( “of-line” ). O método de programação “on-line” utiliza o robô diretamente na fase de programação. O operador deve guiá-lo e mostrar a ele o que fazer. Ou seja, deve-se de alguma maneira levar o robô até a posição desejada e mandá-lo realizar determinada tarefa, sendo que todos os dados vão sendo armazenados pelo robô. Com os dados armazenados o robô pode repetir a tarefa quantas vezes forem desejadas. 23 Ao contrário, o método “off-line” não utiliza o robô na fase de programação. As ordens são passadas aorobô através de um programa de computador escrito em uma linguagem específica. O programa consiste na verdade de uma seqüência de ordens ao robô para orientá-lo na execução da tarefa. A linguagem usada deve permitir ao programador pensar em termos das coordenadas da ferramenta. Assim ele pode programar mais facilmente sendo que todos os cálculos de transformação para as coordenadas de junção ficam sob responsabilidade do processador. Depois que o programa for escrito ele é compilado e seu código é passado ao robô que pode então executar as tarefas determinadas. No caso da programação off line, as coordenadas dos pontos podem ser fornecidas no próprio programa, caso sejam conhecidas previamente, ou podem ser obtidas posteriormente, movimentando-se o robô para esses pontos. Antes de passarmos ao estudo de cada um destes métodos de programação é interessante apresentar os tipos de sistemas de movimentação utilizados: • Ponto a Ponto (PTP): O robô trabalha apenas em pontos específicos e a trajetória usada para atingir estes pontos não é importante. Este tipo de movimentação é usado, por exemplo, em aplicações de solda a ponto e de movimentação de objetos. • Sistema Contínuo de Trajetórias (CP): Robôs que devem trabalhar sobre trajetórias bem determinadas, onde não apenas os pontos iniciais e finais são importantes. Este tipo de movimentação é usado, por exemplo, em aplicações de solda a arco. 10.1 ProgramaÁão Manual Este método de programação é o mais simples e o mais usado para robôs que utilizam o sistema PTP. A programação é feita movendo-se o robô manualmente em cada eixo até que se obtenha a posição desejada. Os comandos para realizar esta movimentação são dados pelo programador através de uma série de botões geralmente dispostos numa caixa de controle ligada ao robô (teach pendant). Quando a posição desejada é atingida, o programador armazena esta informação na memória do processador. Pode-se com uma seqüência de pontos levar o robô a qualquer posição do seu volume de trabalho e executar a tarefa desejada. Com todos os passos gravados, o robô pode repetir os passos, assim, podemos realizar a tarefa quantas vezes forem necessárias. Teach Pendant da ABB (esquerda) e FANUC (direita) 24 Além da seqüência de operações a serem realizados pelo robô os programadores deve também fornecer os tempos de cada uma destas operações. Para programadores experientes podem-se programar simultaneamente as operações e os tempos de duração. Pode-se por outro lado, programar inicialmente o ciclo de operações e na seqüência ajustar o tempo de cada operação, passo a passo, sendo este método muito útil para programadores inexperientes. Este método dispõe ainda de uma série de ferramentas que auxiliam na programação do robô. Podemos mudar a qualquer instante o sistema de coordenadas utilizado pelo programador. Assim ele pode, de acordo com suas necessidades, entrar com os valores de movimento com referencial global, na ferramenta ou nas juntas. Outra possibilidade é a memorização de operações que serão disparadas pelo simples toque em uma tecla. Podemos concluir que este método de programação é uma ferramenta muito poderosa para programar tarefas simples. Ele é especialmente utilizado para operações de “pegar e soltar”, onde a fonte e o destino do objeto são fixos. Este método não é eficaz para programar caminhos complicados como curvas, por exemplo, e também não dispõe de técnicas mais sofisticadas de programação. 10.2 RepetiÁão Foi visto no item anterior um método eficaz de programação de robôs que utilizam o sistema de movimentação PTP. Porém será que este método é também eficiente para robôs com movimento contínuo CP? Uma rápida análise do processo de movimentação CP mostra que não. Neste caso deve-se armazenar toda a trajetória do robô, afinal não se quer que ele apenas chegue ao ponto final, mas que ele faça isso pelo caminho determinado. Pode-se deduzir que o método mais fácil de se programar um robô para realizar movimentos contínuos (CP) seja conduzir o robô pela trajetória desejada, sendo que o posicionamento em cada eixo seja simultaneamente armazenado. Depois pode-se reproduzir estes dados para que o robô realize a mesma trajetória, desta vez “sozinho”. Há casos onde pode-se desacoplar os mecanismos de transmissão de potência do robô e através de forças externas movimentá-lo através da trajetória desejada. Porém há casos onde isso não é possível, nestes casos geralmente se constrói um mecanismo idêntico ao do robô apenas com os sensores de posicionamento. Este mecanismo pode então ser guiado pela trajetória desejada e os dados podem ser fornecidos ao robô. Apesar da grande facilidade de programação introduzida por este método ele possui grandes desvantagens: • Geralmente é necessário um investimento adicional para construção do simulador • Todos os movimentos, mesmos os indesejados, são gravados e repetidos pelo robô. • A precisão dos movimentos é limitada à precisão do movimento inicial • O armazenamento dos dados requer uma grande quantidade de memória 11. Terminal de ProgramaÁão (Teach Pendant) O “teach pendant”, também chamado de unidade de programação, é um pequeno painel de controle que possibilita realizar várias funções como: 25 • Movimentar o manipulador • programar • Carregar programas • Iniciar e interromper um programa (inclusive parada de emergência) • Alterar sinais de saída e verificar sinais de entrada 26 Teach pendant - FANUC 27 Parada de emergência: O robô pára imediatamente depois que o botão de parada de emergência é pressionado (independente de qual situação ou modo o sistema esteja). Dispositivo de habilitaÁão: É um botão na parte traseira do teach pendant que, só quando pressionado, libera o movimento do robô. Quando o dispositivo de habilitação for solto, o robô para instantaneamente. Teclas de Movimento: Como o próprio nome já diz, essas teclas são usadas para mover o robô manualmente, por exemplo, durante a programação. Tela: Usada para mostrar todas as informações durante a programação, mudar programas, etc. Seletor de Liga/Desliga do TP (Teach Pendant): Este seletor deverá estar em ON para que seja possível a movimentação manual do robô. Reset: Esta tecla é utilizada para o reconhecimento de falhas, habilitando o controle. Seletor de Coordenadas: Tecla de seleção do tipo de coordenada a ser utilizada para movimento manual. NavegaÁão: Estas teclas são utilizadas para acessar funções extras. SeleÁão de FunÁões (select): Tecla utilizada para selecionar ou criar programas. Fwd:Utilize esta tecla para avançar na execução de um programa. Com o TP ligado deverá ser utilizada em conjunto com a tecla SHIFT. Bwd:Utilize esta tecla para retroceder na execução de um programa. Com o TP ligado deverá ser utilizada em conjunto com a tecla SHIFT. Tipo de ExecuÁão: Através desta tecla você determina se a execução do programa será passo a passo ou contínua Hold: Para parar a execução de um programa ou instrução utilize a tecla “HOLD”, parada suave. 28 12. Linguagens de ProgramaÁão Em muitasaplicações o uso de métodos “on-line” de programação pode despender muito tempo. Principalmente em casos onde o trabalho deve ser realizado em um número muito grande de pontos e os dados referentes a esses pontos já sejam conhecidos de alguma fase do projeto, é interessante analisar a possibilidade de utilização de uma linguagem específica para programar o robô. Por exemplo, na indústria aeroespacial as estruturas devem receber milhares de furos e estes devem ser rebitados para fixação das peças. Os processos de programação manual seriam muito tediosos e consumiriammuito tempo, além do que a posição de todos os furos é um dado conhecido do projeto. O principal problema introduzido por este tipo de programação são os erros que ocorrem devido a diferentes situações de uso. O posicionamento de uma ferramenta, por exemplo, pode ser alterado devido às deflexões da estrutura do robô que são diferentes para diferentes cargas aplicadas a ele. Nos método “on-line” de programação este tipo de problema não aparece, afinal as cargas podem ser incluídas no processo de programação. Existe um grande número de linguagens de programação utilizadas comercialmente. São apresentadas aqui algumas das mais utilizadas para ilustrar o processo e as possibilidades deste tipo de programação. 12.1 GeraÁões de Linguagens de ProgramaÁão Como as linguagens de programação para computadores, as linguagens de programação de robôs possuem uma variedade de estruturas e capacidades, surgindo novas linguagens mais evoluídas a cada dia. Linguagem de Primeira GeraÁão As linguagens de primeira geração usam declarações de listagens de comandos e procedimentos de “teach pendant” para desenvolver programas de robôs. Essas linguagens foram principalmente desenvolvidas para implementar controle de movimento com uma linguagem textual de programação e são, às vezes, chamadas de “motion level language”. Características típicas incluem a capacidade de definir movimentos do manipulador (usando as declarações para definir a seqüência dos movimentos e o “tech-pendant” para definir a localização dos pontos), interpolação linear, ramificação e comandos elementares por sensores, envolvendo sinais binários (liga-desliga). A linguagem VAL (“Victor Assembly Language”) é um exemplo de uma linguagem de programação de robôs de primeira geração. As linguagens de programação são uma ferramenta poderosa na solução de problemas complexos, porém apresentam uma série de desvantagens: • Sua utilização é complicada para os trabalhadores da fábrica • Não há padronização entre as linguagens • Erros de posicionamento As limitações comuns das linguagens de primeira geração incluem: incapacidade de especificar cálculos aritméticos complexos para usar durante a execução do programa; incapacidade de usar sensores complexos e dados 29 fornecidos pelos mesmos e uma capacidade de limitada de comunicação com outros computadores. Linguagem de Segunda GeraÁão Essas linguagens foram chamadas de linguagens de programação estruturadas, porque possuem grupos de comandos estruturados, usados em linguagens de programação de computadores. Linguagens de segunda geração comercialmente disponíveis incluem: AML, RAIL. MCL e VAL II. As características e capacidades dessas linguagens são: 1. Controle de movimento: esta característica é, basicamente, a mesma para as linguagens de primeira geração; 2. Capacidade de sensoriamento avançada: os melhoramentos nas linguagens de segunda geração normalmente incluem: a capacidade de manusear muito mais do que simples sinais binários (liga/desliga) e a capacidade de controlar dispositivos através dos dados fornecidos pelos sensores; 3. Inteligência limitada: isto é, a capacidade de utilizar as informações recebidas sobre o ambiente de trabalho para modificar o comportamento do sistema de forma programada; 4. Comunicações e processamentos de dados: linguagens de segunda geração geralmente possuem meios para interagir com computadores e bases de dados de computadores com a finalidade de manter registros, gerar relatórios e controlar atividades nas células de trabalho. Um sistema operacional de um robô contém os três modos básicos de operação, indicados abaixo: 1. Modo monitor 2. Modo execução 3. Modo edição O modo monitoré usado para realizar um controle global de supervisão do sistema. É, às vezes, chamado de modalidade supervisora. Nesse modo de operação, o usuário pode: definir posições no espaço, usando “teach pendant”; ajustar o controle da velocidade do robô; armazenar programas e transferir programas do armazenador de dados na memória de controle ou movimentar-se em vaivém entre outros modos de operação, como edição ou execução. O modo execuÁão é usado para executar um programa robótico. Neste modo, o robô está realizando a seqüência de instruções no programa durante a execução. Quando se testa um novo programa no modo execução, o usuário pode utilizar procedimentos de correção embutidos na linguagem, para ajudar a desenvolver um programa correto. Por exemplo: o programa pode indicar ao usuário que exceda seus limites de articulação ao movimentar o manipulador de um ponto especificado no programa para o próximo. Já que o robô não pode fazer isso, uma mensagem de erro aparece no monitor de vídeo, e o robô para. Essa indicação 30 pode ser corrigida voltando para o modo de edição e ajustando o programa ou o referindo ponto. A maioria dos modernos sistemas operacionais de robôs permite ao usuário voltar para o modo monitor ou edição, enquanto o programa está sendo executado, de modo que um outro programa possa ser escrito. Em alguns casos, é mesmo possível editar o programa em andamento, apesar de existirem perigos inerentes ao fazer isto. O modo ediÁãoproporciona um conjunto de instruções que permite ao usuário escrever novos programas ou editar programas existentes. Apesar da operação do modo edição que pode ser diferente de um sistema de linguagem para outro, os tipos de operações de edição que podem ser realizadas incluem: digitação de novas linhas de instruções em seqüência, anulação ou alteração de instruções existentes e inserção de novas linhas num programa. Como nos casos de linguagem de programação, o programa do robô é pode ser interpretados ou compilados pelo sistema operacional. Um interpretador é um programa no sistema operacional que executa cada instrução do programa-fonte (nessecaso, o programa-fonte é o programa em linguagem de programação de robô), uma de cada vez. A linguagem VAL é um exemplo de linguagem de programação de robôs que é processada por um interpretador. Um compilador é um programa no sistema operacional que passa através do programa-fonte inteiro e traduz todas as instruções em código de máquina, que pode ser lido e executado pelo controlador do robô. Programas compilados resultam finalmente em tempos menores de execução. Por outro lado, um programa-fonte processado por um interpretador pode ser editado com mais facilidade, já que a recompilação do programa inteiro não é necessária. 12.2 Comandos de ProgramaÁão A linguagem de programação utilizada varia de fabricante para fabricante. Marca Linguagem de ProgramaÁão FANUC RJ3 ABB RAPID MITSUBISH MELPHA BASIC Elementos e funções de um sistema de programação de robôs: -Constantes, variáveis e outros tipos de dados; -Comandos de movimento; -Comandos para atuadores esensores -Computação e operações; -Controle do programa e chamadas a sub-rotinas; -Comunicações e processamento de dados; -Comandos no modo monitor. Constantes e variáveis Uma constante é um valor que não muda durante a execução do programa. Uma variável em programação de computadores é um símbolo ou um nome 31 simbólico que pode mudar de valor durante a execução do programa. Constantes e variáveis podem ser números inteiros, números reais contento um ponto decimal ou cadeias que podem ser colocadas entre aspas: Constantes: +8 -289.34 1.56e+4 (exponencial) [23.4;45.98;-34.05] (vetor) Variáveis: E R2UI FOI[3,4] – arranjo com doze elementos. Comando de movimento Uma das funções mais importantes da linguagem e a principal característica que distingue as linguagens robóticas das de programação de computadores é o controle de movimento do manipulador. Basicamente utilizam-se dois tipos de movimentos: • Movimento Junta a Junta – neste caso o robô é orientado a deslocar-se de um ponto a outro e a trajetória utilizada é calculada pelo controlador, de forma a atingir o destino com um mínimo de esforço. • Movimento de Trajetória – neste caso, o robô é orientado a seguir uma trajetória definida que pode ser: ○ Linear – traça um segmento entre dois pontos; ○ Circular – traça um arco entre 3 pontos; DefiniÁões de pontos no espaÁo de trabalho A definição de posições de pontos é, geralmente, feita por meio de um “teach pendant”. O “teach pendant” é usado para movimentar o braço do robô para a posição e orientação desejadas. Em seguida, com um comando digitado no teclado, as coordenadas de posição e orientação de cada articulação são captadas na memória de controle. Por exemplo: <59.43; 235.67; 46.224; 165.34; 44.678; 67.78>, os primeiros três valores são as coordenadas espaciais (x,y,z), e os valores restantes são ângulos de rotação de punho. DefiniÁão de Trajetórias 32 Vários pontos podem ser ligados para definir uma trajetória específica no espaço de trabalho. Comandos de Entrada / Saída Utilizados para monitorar entradas e saídas digitais (on/off) e/ou analógicas (faixa contínua de valores), para comandar eixos externos, ou usados para abrir e fechar garras. Comandos Numéricos Realizar cálculos aritméticos e outros tipos de operação com constantes, variáveis e outros tipos de dados. Faz-se necessário em vários programas de robôs. O conjunto padrão de operadores matemáticos em linguagem de segunda geração é: + adição; - subtração; * multiplicação; / divisão ** potência = igual a A seguir, está exposta uma lista de funções que poderão também ser usadas: Seno de um ângulo A; Cosseno de um ângulo A; Tangente de um ângulo A; Cotangente de um ângulo A; Arco seno de um ângulo A; Arco cosseno de um ângulo A; Arco tangente de um ângulo A; Arco cotangente de um ângulo A; Logarítmo; Valor absoluto de X; Raiz quadrada de X; Entre outros. 33 Além dos operadores aritméticos e trigonométricos, operadores relacionais são usados para avaliar e comparar expressões. Os operadores relacionais mais comuns são indicados abaixo: Igual a; Não igual a; Maior que; Maior ou igual a; Menor que; Menor ou igual a. Comandos de fluxo do programa • Desvio: é um comando que depende de condições para executar o movimento. Caso a condição for verdadeira ele prossegue o movimento, caso seja falsa o robô interrompe o caminho original e percorre um caminho alternativo. • Condicional: como o comando de desvio, o condicional também é um comando que depende de uma condição para que ele seja executado. Caso uma condição seja verdadeira ele executa uma tarefa e caso esta condição esteja falsa ela executa outra tarefa. • Ciclo: é um comando em que o robô repete seus movimentos por uma quantidade pré-determinada de vezes. Chamada a Sub-rotina Algumas vezes, quando um certo grupo de instruções é executado várias vezes durante o programa, pode-seagrupar estas instruções em rotinas. Toda vez que se deseja executar essas instruções, pode-se chamar a rotina. O programa então desviará seu curso, executará as instruções e retornará para a instrução seguinte à chamada da rotina. É possível enviar um número de argumentos para a nova rotina. Eles controlam o comportamento da rotina e tornam possível que a mesma rotina seja utilizada para diversas tarefas. Comandos do modo monitor Geralmente, o modo monitor é usado para funções tais como: entrada de dados de posição por meio do “teach pendant” e ajuste da velocidade inicial para a execução de um programa de robô. Várias funções relacionadas com a supervisão do sistema, processamento de dados e comunicações são também realizadas com os comandos do monitor, ou seja, as instruções da linguagem de comando. Tipicamente, são usados os seguintes comandos: Abertura de um arquivo; Armazenagem de um programa na memória do controlador; Armazenagem de um programa no disco flexível; 34 Leitura do arquivo do disco para a memória Obtenção de uma listagem dos nomes do programas que são armazenados na memória; Execução de um programa; Interrupção da execução e parada do movimento do robô; Apagamento de um programa; 12.3 SimulaÁão Esta ferramenta, cuja aplicação vem crescendo de forma substancial, pode auxiliar muito a programação de robôs pelos métodos anteriores. O modelo do robô pode ser representado no computador e todos os seus movimentos podem ser simulados por processos de animação. O ambiente de trabalho pode também ser incluído, permitindo uma previsão dos principais problemas que poderão ocorrer na aplicação real. Além disso, este tipo de programação possibilita o desenvolvimento e testes preliminares dos programas sem a necessidade de interromper a operação do robô. Um exemplo de software de simulação é o Workspace. 12.4 Sistema de MovimentaÁão do Robô Pode-se mover (jog) o robô usando as teclas de movimento na unidade de programação. Existem Três modos de movimentar o robô: • Coordenadas Base: movimenta-se a ferramenta, fazendo com que o TCP (ponto central da ferramenta) percorra linhas paralelas aos eixos do sistema cartesiano imaginário(x,y,z) com origem na base do robô; • Coordenadas do Usuário: são coordenadas definidas pelo usuário com o objetivo de facilitar o movimento do robô para a atividade a ser executada No robô FANUC, para selecionar o movimento linear deve-se pressionar a tecla: selecionando xyz. O ponto que irá se mover linearmente, ao longo dos eixos do sistema de coordenadas acima é chamado Tool Center Point (TCP). Esse ponto é um ponto da ferramenta definido pelo programador. Quando não há definição de ferramenta, está localizado na frente do braço superior, no centro da placa frontal do robô. 35 12.5 Modo Automático O modo automático é utilizado para executar programas prontos. Movendo o seletor de modo de operação no TP para a posição OFF e segurando o botão CICLE START no Painel do Operador por 3 segundos. QUANDO FOR INICIAR O PROGRAMA, ASSEGURE-SE DE QUE NÃO HÁ NINGUÉM DENTRO DA ÁREA DE SEGURANÇA AO REDOR DO RÔBO. Para parar o programa, pressione o botão HOLD na unidade de programação. 12.6 CriaÁãoe EdiÁão de Programas Através do teach pendant podem-se criar novos programas, assim como editar programas já existentes, adicionando e removendo instruções ou alterando seus argumentos. Para criar ou alterar os pontos de instruções de movimento, tem-se a função F[POINT]. Para isto, coloca-se o robô na posição desejada, movimentando-o através das teclas de movimento e pressiona-se a tecla de função à qual se refere o texto [POINT] na tela to TP, juntamente com a tecla SHIFT. Note que este é o método de programação manual, descrito anteriormente na seção “Tipos e dispositivos de programação”. 12.7 Salvamento de Programas Após criar ou editar um programa, pode-se salvá-lo em disquete ou outro meio de armazenamento, na janela SELECT. 12.8 VisualizaÁão de Erros Um texto visualizado na parte superior da tela mostrando as mensagens de erro aparece sempre que há algum tipo de erro. Esta linha contém: Número do código de erro Um único número para cada erro. Categoria do erro Classifica o erro em grupos relacionados por tipos de erros. Cada categoria de erro tem sua própria série de códigos. Motivo Descreve os motivos do erro em linguagem comum. Para maiores informações a respeito de defeitos no hardware, consultar o Manual do Produto. 36 Quando ocorre um erro o robô bloqueia todos os movimentos e execução de programas. Para continuar deve-se pressionar a tecla RESET. 12.9 Troca de Ferramentas O robô vem ajustado para conhecer o posicionamento do centro do seu flange (punho), ou seja, sem nenhuma ferramenta acoplada. O centro geométrico da ponta de uma dada ferramenta é denominado de TCP (Tool Centre Point). O TCP do flange do robô é normalmente chamado de tool0. Normalmente são instaladas no flange do robô as ferramentas específicas necessárias ao desenvolvimento das aplicações a que se destina. Essas ferramentas deslocam a ponta do robô para outra posição. É necessário que o robô conheça a nova posição e a nova orientação dessa ponta. Devem ser cadastrados os TCPs de todas as ferramentas a serem utilizadas durante as aplicações. Cada ferramenta recebe um novo nome e este fica armazenado na memória do computador. Em alguns robôs, todos os movimentos a serem programados no robô devem informar qual a ferramenta que será utilizada (chamando-a pelo nome de cadastro), pois ela irá indicar qual sistema de coordenadas será utilizado para o cálculo dos movimentos. Em outros robôs, basta informar que a ferramenta foi trocada e a partir daí todos os movimentos são realizados considerando o uso dessa ferramenta. Por questão de segurança, o robô FANUC não permite, usando uma ferramenta, o movimento para um ponto criado utilizando outra ferramenta. 12.10 Etapas da programaÁão O primeiro passo da programação é fazer um esquema do que se deseja que o robô faça. Em seguida, devem-se definir os pontos que serão utilizados para realizar o movimento. (O robô será movimentado, seqüencialmente, de um ponto a outro, na ordem definida no programa.) O próximo passo é escrever o programa, ou seja, traduzir o que se deseja que o robô faça em instruções da linguagem utilizada. Depois deve-se testar, a velocidade baixa, o programa e verificar se o robô está fazendo os movimentos esperados, sem tocar em objetos do ambiente. Deve- se lembrar que o robô não fará nada que não for instruído a fazer, e nem vai “adivinhar” o que o programador quer. Devem-se dar instruções detalhadas informando todos os movimentos. Por último, por segurança, deve-se testar novamente o programa utilizando a velocidade normal de trabalho. 12.11 Planejamento de programas MovimentaÁão JUNTA A JUNTA Deve-se utilizar movimentação junta a junta sempre for possível. Este tipo de coordenada proporciona um tempo de ciclo menor que a movimentação em coordenadas lineares, além de minimizar esforços do robô. 37 LINEAR E CIRCULAR Esses tipos de movimentos devem ser utilizados quando é necessária uma trajetória precisa do robô, por exemplo, durante a realização de um trabalho. TERMINAÇÃO FINA A terminação fina (fine) é utilizada quando é necessário que o robô chegue exatamente ao ponto destino antes de mudar de direção para o próximo ponto. Porém, esse tipo de terminação provoca uma parada do robô antes do próximo movimento. TERMINAÇÃO CONTÍNUA A terminação contínua faz o robô mudar de direção para alcançar o próximo ponto antes de alcançar o ponto desejado. A distância de aproximação pode ser configurada e normalmente é expressa em milímetros. Isso faz com que o robô não pare entre um movimento e outro. Essa terminação pode ser utilizada para se movimentar ao redor de obstáculos, ou quando o trabalho realizado não exige muita precisão. FINA --- CONTÍNUA PLANEJAMENTO DA MOVIMENTAÇÃO • Movimente o robô manualmente em todas as posições do processo, e avalie, eventuais interferências, obstruções e reorientações da ferramenta; • Procure visualizar mentalmente a movimentação do robô durante todo o processo; • Procure identificar possíveis reduções nas trajetórias; • Posicione o robô na primeira posição do trecho, tenha certeza de que o robô está corretamente posicionado e grave a posição; • Leve o robô manualmente até a última posição do trecho a ser considerado. Tenha certeza de que esta posição está correta e que ela represente a primeira posição do trecho seguinte. Grave a posição; • Grave quantas posições você acreditar serem necessárias para se criar a trajetória entre o primeiro ponto e o último ponto; 38 POSIÇÕES PRÉ-DEFINIDAS Posições pré-definidas são posições que irão se repetir inúmeras vezes dentro de seu processo, não necessitando desta forma serem armazenadas diversas vezes. Posições pré-definidas podem ser criadas através de diversos métodos: TRECHOS REPETITIVOS DE LÓGICA Trechos repetitivos na lógica do programa podem ser agrupados em uma sub- rotina tornando assim mais segura a manutenção dos programas. CONDIÇÕES INICIAIS O programador deverá analisar o contexto no qual o programa se insere criando um conjunto de instruções iniciais que garantam a segurança pessoal, de ferramental e de produção. 12.12 DocumentaÁão de programas Programas de aplicações industriais normalmente possuem muitas linhas de código. É conveniente que, quando da elaboração de um programa, sejam colocados bastantes comentários referentes às sub-tarefas que estão sendo realizadas de forma a facilitar a correção de erros (“debug”). 12.13 InterrupÁões Interrupções são utilizadas pelo programa para tornar possível tratar diretamente de um evento, independente de qual instrução estiver sendo executada. Uma interrupção pode ocorrer, por exemplo, quando uma entrada muda de valor (por exemplo, uma peça é colocada no alimentador e identificada por um sensor). Quando esta interrupção ocorre, o programa é interrompido e uma rotina especial é executada. Quando esta tiver sido totalmente executada, o programa continua de onde ele foi interrompido. 13. Elementos de ProgramaÁão (robô FANUC) 13.1 InstruÁões de movimento A instrução de movimento direciona o robô para movimentar-se em um caminho especificado para um local especificado com uma velocidade especificada na célula de trabalho, ou seja, o robô se movimenta de um ponto a outro com um caminho, local e velocidade definidos pelooperador. 1-Tipo de Movimento: Como o robô se movimenta para a posição, (Junta a Junta - Joint, Linear e Circular); 39 Joint (J): O robô irá se mover do ponto inicial para o final sem se preocupar com a trajetória percorrida. Linear (L): O robô irá mover o TCP em uma linha reta do ponto inicial para o final. Circular (C): O robô irá o TCP em um arco do ponto inicial, passando por um ponto intermediário e chegando ao ponto final. CIRCULAR 2-Tipo de PosiÁão: Ponto destino, gravado na memória do robô (P posição, PR registro de posição); 3-Tipo de TerminaÁão: Como o robô termina o movimento na posição final (Fine, CNT contínuo); Fine: O robô pára no ponto de destino antes de ir para a próxima posição; CNT: O robô desacelera ao se aproximar do ponto de destino, mas não pára, mudando de direção para o próximo ponto. 4-Velocidade: A rapidez com que o robô se move para uma posição (%, mm/seg, graus/seg, cm/min); 5-OpÁões de Movimento: Comandos adicionais para executar uma tarefa específica durante o movimento do robô(No option, ACC, Coord, Arc Start [ ], Arc End [ ], Skip, LBL [ ], Offset, Inc, Pth); Skip, LBL [ ]: Esse comando redireciona a execução do programa baseado numa condição predefinida. Se ela for satisfeita, o programa é redirecionado através do comando LABEL (LBL). Se ela não for satisfeita, ele mantém a seqüência. 40 Arc Start [ ]: O robô abre o arco elétrico e inicia o movimento. Arc End [ ]: O robô fecha o arco elétrico ao final do movimento. Exemplos: J P[1] 50% FINE – Movimento junta a junta para o ponto P[1], a 50% da velocidade máxima e terminação fina. L P[2] 200mm/s CNT10 – Movimento linear para o ponto P[2], a 200 mm/seg e terminação contínua. C P[3] P[4] 500mm/s FINE – Movimento circular para o ponto P[4], passando pelo ponto P[3], a 500 mm/seg e terminação fina. 13.2 Registradores Registradores são posições de memória, utilizados para armazenar valores. Esses registradores são numerados, e podem ser acessados por R[n] onde n é o número do registrador. Para atribuir um valor a um registrador utiliza-se a estrutura: R[1]=10 Nessa estrutura, o valor 10 será armazenado no registrador R[1]. Pode-se, por exemplo, somar o valor de dois registradores e armazenar o resultado em um terceiro: R[5]=R[2]+R[7] 13.3 Estruturas de controle de fluxo Normalmente o programa é executado seqüencialmente, isto é, instrução por instrução, na ordem em que elas foram escritas. Algumas vezes, porém, instruções que interrompem esta seqüência e chamam outras instruções são necessárias para o tratamento de diferentes situações que podem ocorrer durante a execução, para: 41 – Chamar outra rotina ou sub-rotina (procedimento) e, quando esta tiver sido executada, retornar o controle do programa para a instrução imediatamente posterior à que chamou a sub-rotina; – Executar uma seqüência ou outra de instruções dependendo se uma dada condição tiver sido ou não satisfeita; – Repetir uma seqüência de instruções um certo número de vezes ou até que uma dada condição seja satisfeita; – Desviar o controle de programa para uma determinada instrução (identificada por um rótulo) dentro da mesma rotina; – Parar a execução do programa. 13.3.1 Chamada de programas Algumas funções de um programa podem ser agrupadas. Isso é útil, por exemplo, quando certos blocos do programa devem ser executados várias vezes e em várias partes do programa. Em muitas linguagens de programação esses grupos de funções são chamados rotinas e são escritos dentro do próprio programa. No robô FANUC, isso deve ser feito através da criação de outro programa. Esse programa é então chamado a partir do programa principal através do comando CALL. Após a execução do programa chamado, a execução volta ao principal no ponto em que ocorreu a chamada. Por exemplo, para chamar um programa chamado GIRAPECA a partir de um programa principal, utiliza-se a estrutura: CALL GIRAPECA 13.3.2 Saltos dentro de um programa Dentro de um mesmo programa pode ser necessário pular certos comandos ou voltar para uma linha anterior. Isso pode ser feito marcando-se uma linha do programa com a instrução label: LBL[n]. Essa intrução vem sempre acompanhada de um número correspondente ao número do label a ser dado àquela linha. Não podem existir em um mesmo programa dois labels com o mesmo número. Pode-se então utilizar o comando jump label: JMP LBL[n] para pular para uma linha marcada, informando o número do label da linha. Uma utilização de tais saltos é quando se deseja fazer um programa cíclico. Marca-se então com um label a primeira do programa e se instrui o programa a pular para esse label no final: LBL[1] (programa) JMP LBL[1] Nesse caso, o robô irá repetir o programa até que um comando externo o faça parar. 42 13.3.3 Estrutura condicional A estrutura condicional indica ao robô que uma instrução deve ser executada se uma condição for verdadeira (por exemplo, se um registrador possuir um determinado valor). Assim, pode-se, por exemplo, selecionar se uma parte do programa deve ser executada se uma condição for satisfeita. No exemplo abaixo, o robô inicialmente vai para o ponto P[1]. Se o registrador R[8] possuir o valor 30, o programa passa pelos pontos P[2] e P[3] antes de ir para o ponto P[4]. Caso contrário o robô salta diretamente para o ponto P[4]. J P[1] 20% FINE IF R[8]=30 JMP LBL[10] J P[2] 20% FINE J P[3] 20% FINE LBL[10] J P[4] 20% FINE 13.3.4 RepetiÁão com contagem Linguagens de programação estruturadas possuem instruções específicas para provocar a repetição de trechos de programa um determinado número de vezes. Como a linguagem do robô FANUC não dispõe de tal recurso, utiliza-se um registrador como contador e uma estrutura de salto condicional para realizar a repetição até que o registrador alcance determinado valor: Esse contador pode começar com o valor 0 e ser incrementado após cada repetição do trecho do programa. Para zerar o contador 1 utiliza-se R[1]=0. Para incrementar seu valor utiliza-se R[1]=R[1]+1, ou seja, o valor de R[1] é determinado por seu valor anterior mais 1. Após incrementar o valor de R[1] deve-se verificar se ele é ainda menor que o número de vezes que o trecho de programa deve ser repetido. Se for, o programa deve retornar ao início do trecho. Para isso utiliza-se, por exemplo, IF R[1]<3 JMP LBL[1]. Isso significa que se o registrador 1 for menor que 3 então o programa deve pular para o label 1. Observe que o contador deve ser zerado antes da instrução LBL[1], do contrário seu valor seria zerado a cada ciclo, e nunca alcançaria o valor desejado. R[1]=0 LBL[1] (trecho de programa) R[1]=R[1]+1 IF R[1]<3 JMP LBL[1] 13.3.5 SeleÁão de condiÁões Selec / Else: Compara o valor de um registro com um de muitos valores e caso uma comparação seja verdadeira, executa uma ação: SELECT R[X] = [Valor 1], [AÁão] [Valor 2], [AÁão] 43 [Valor N], [AÁão] Else [AÁão] A Ação pode ser: JMP LBL [X] ou Call programa. 13.4 Comando de atraso Quando a execução de um programa deve ser atrasada um intervalo de tempo específico, utiliza-se o comando WAIT seguido do tempo em segundos.13.5 Comando de mensagem Message: Mostra na tela do Teach Pendant uma mensagem com no máximo 23 caracteres Message [mensagem] 13.6 Entradas e saídas Entradas e saídas (I/O) são sinais elétricos que habilitam um controlador de comunicar com o robô e com outros dispositivos externos como sensores e atuadores. Para usar uma I/O, você precisa fazer: 1. Identificar o hardware de I/O que precisa; 2. Instalar o hardware se necessário; 3. Conectar o hardware de I/O nos dispositivos necessários; 4. Configurar o I/O usando o “teach pendant”. Isto informará o software controlador que I/O você instalou para que este possa ser usado pelo robô. Os seguintes tipos de I/O estão disponíveis: Analógico, Digital,Grupo, PLC (Controlador Lógico Programável), Painel do Operador(UOP) e Robô. Analógico: Um sinal analógico de entrada ou saída (AI ou AO) são voltagens de entrada ou saídas que tem um valor dentro do limite do módulo usado. As entradas analógicas convertem sinais analógicos para sinais numéricos para uso no controlador. Já as saídas analógicas permitem que sinais analógicos sejam mandados para dispositivos externos. Digitais: Um sinal digital (DI ou DO) é um sinal de controle mandado para ou de um controlador. Sinais Digitais podem ter somente um de dois estados: Ligado ou Desligado. Grupo(Group): Sinais de Gupo I/O (GI ou GO) foram criados para uma seqüência de sinais digitais. Eles são interpretados como inteiros binários. Um grupo de sinais é um grupo de até 16 uns(1) e zeros(0), indicando Ligado e Desligado. 44 Painel do Operador(UOP): O painel do operador disponibiliza 18 sinais de entrada e 20 ou 24 sinais de saída, que podem ser conectados para dispositivos remotos ou para um painel de operador remoto, para controlar o robô. PLC: PLC I/O (PI ou PO) são dispositivos opcionais controlados pelo PLC Robô (Robot): Sinais do Robôs (RI ou RO) consistem de sinais de entrada e saída entre o controlador e o robô. Estes sinais são enviados para o conector EE localizado no robô. O número de sinais do robô de entrada e saída varia de acordo com o número de eixos do sistema. O comando WAIT pode também ser utilizado para aguardar até que uma condição de sinal de entrada seja verdadeira. Por exemplo, deseja-se aguardar até que um sinal de entrada digital esteja em ON para iniciar a execução de um programa. Utiliza-se então a instrução: WAIT DI[3]=ON 13.6.1 ForÁando e simulando sinais Durante a programação é possível forçar sinais de saída para testar dispositivos conectados ao robô. É possível também simular sinais de entrada para se testar a resposta do programa a tais sinais. OBSERVAÇÕES: -Sempre que for forçar uma saída digital lembre-se de que a saída irá ser atuada e que acidentes podem ocorrer. Ex: acionar uma pinça, liberar um dispositivo, etc. -Sempre que for simular um sinal lembre-se que programa do robô irá interpretar o sinal como se o mesmo estivesse presente podendo ocorrer acidentes. Ex: sinal de OK liberando o robô para executar um programa de movimentação PROCEDIMENTO: MENUS -> m[I/O] -> F[TYPE] -> Selecione o tipo de sinal 45 46 ANEXO I – Robô Industrial da FANUC (ARC Mate 50 iL) A1.1 SeguranÁa FANUC Robotics não é e nem se representa como sendo peritos em sistemas de seguranças, equipamentos de segurança ou aspectos específicos de seguranças da sua empresa e/ou da sua força de trabalho. É de responsabilidade do dono, empregado ou usuário fazer todos os passos necessários para garantir a segurança de todos em um ambiente de trabalho. Os níveis apropriados de segurança para suas aplicações e instalação podem ser mais bem determinados por um profissional em segurança do trabalho. FANUC Robotics, portanto, recomenda que cada cliente consulte com um profissional em ordem de ter um ambiente de trabalho que permita uma aplicação, uso e operação segura dos sistemas da FANUC Robotics. De acordo com os padrões industriais ANSI/RiA R15-06, o dono ou usuário deverá consultar os padrões to assegurar um bom uso para o design, usabilidade, operação, manutenção e serviço. Adicionalmente, como dono, empregado ou usuário de um sistema robótico, é sua a responsabilidade de conseguir treinamento para o operador de um sistema robótico reconhecer e responder para danos associados com o seu sistema robótico e estar ciente dos procedimentos de operação recomendados para sua aplicação particular e instalação do robô. FANUC Robotics, portanto, recomenda que todo o pessoal que pretenda operar, programar, reparar ou outros que manipularem o sistema robótico deve ser treinado por um curso de treinamento aprovado pela FANUC Robotics e esteja familiarizado com a forma conveniente de operar o sistema. Pessoas responsáveis por programar o sistema – incluindo o design, a implementação dos programas de aplicação – devem ser familiares com os processos de programação recomendadas para sua aplicação e a instalação do robô. Nas próximas linhas estão contidos materiais para enfatizar a importância da segurança no ambiente de trabalho. A1.1.1 ConsideraÁões de SeguranÁa para a InstalaÁão do Robô Segurança é essencial todas as vezes que os robôs forem usados. Tenha na cabeça os seguintes fatores com consideração à segurança: • A segurança de pessoal e equipamentos; • O uso de dispositivos de aumento de segurança; • Técnicas seguras de ensinamento e operação manual dos robôs; • Técnicas seguras para inspeção do robô e da célula de trabalho; • Manutenção correta do robô. A segurança do pessoal é sempre de primordial importância em qualquer situação. Porém, os equipamentos também devem estar seguros. Quando priorizar como aplicar segurança no seu sistema robótico, você deverá considerar os seguintes: • Pessoas 47 • Dispositivos externos; • Robôs; • Ferramentas; • Trabalho. A1.1.2 ExtinÁão do Fogo USE DIÓXIDO DE CARBONO SE O ROBÔ OU PAINEL DE CONTROLE PEGAR FOGO. A1.1.3 Uso de Dispositivos de Aumento de SeguranÁa Sempre dê uma atenção apropriada para a área de trabalho que envolve o robô. A segurança da área de trabalho pode ser acrescida, instalando alguns ou todos os seguintes dispositivos: • Grades, barreiras ou correntes de seguranças; • Cortinas; • Fechaduras internas; • Marcas no chão; • Paradas mecânicas; • Botões de PARADA DE EMERGÊNCIA; • Alavancas DEADMAN. A1.1.4 Criando um Célula de Trabalho Segura Uma célula de trabalho segura é essencial para proteger pessoas e equipamentos. Observe as linhas seguintes para garantir que uma célula de trabalho segura seja preparada. Essas sugestões foram feitas para complementar e não para substituir leis federais, estaduais ou municipais, regulamentos e guias pertinentes à segurança. • Patrocine seu pessoal um curso de treinamento relacionado à aplicação em um curso aprovado pela FANUC Robotics. Nunca permita pessoas sem treinamento de operar os robôs; • Instale um dispositivo com código de acesso para que pessoas sem autorização de operar o robô; • Use uma lógica “anti-tie-down” para prevenir o operador de ultrapassar as medidas de seguranças; • Arrume a célula de trabalho que operador olhe para a célula de trabalho e possa ver o que se passa dentro da célula. • Identifique claramente a área de trabalho de cadarobô no sistema com marcas no chão, placas e barreiras especiais. A área de trabalho é a 48 área definida pelo alcance máximo de movimento do robô, incluindo qualquer ferramenta anexada no flange que estenda esse alcance. • Posicione todos os controladores fora da área de trabalho do robô; • Nunca confie em um software como sendo o elemento primordial de segurança; • Monte um número adequado de botões de PARADA DE EMERGÊNCIA ou alavancas que esteja de fácil alcance do operador e em pontos críticos dentro e fora da célula de trabalho; • Instale Luzes que piscam e/ou dispositivos de áudio que são ativados enquanto o robô está em funcionamento; • Sempre que possível, instale grades de segurança para se proteger contra entradas não autorizadas de pessoas na área de trabalho; A1.1.5 Paradas de emergência A parada de emergência deve ser ativada se há perigo para alguma pessoa ou equipamento. Os botões para parada de emergência estão localizados no Painel de Operação e na Unidade de Programação. Os dispositivos de parada de emergência externos (botões, etc.) podem ser conectados no elo de segurança pelo usuário (veja Manual do Produto/Instalação). Eles devem ser conectados de acordo com as normas para os circuitos de paradas de emergência. Antes do comissionamento do robô, todos os botões de parada de emergência ou outro equipamento de segurança devem ser verificados pelo usuário para assegurar seu bom funcionamento. A1.2 AplicaÁões: É usado em todo tipo de aplicação industrial de porte exceto para manipulação de líquidos (pintura, colagem etc), por não possuir o molejo necessário nas suas articulações para este tipo de tarefa. A1.3 Graus de Liberdade: O ARC Mate 50 iL possui 6 graus de liberdade. Os três primeiros graus de liberdade possibilitam o posicionamento da ferramenta. Os três seguintes são responsáveis pela sua orientação. 49 A1.4 Eixos: A1.4.1Eixos internos : • Os eixos 1,2 e 3 são conhecidos como eixos inferiores • Os eixos 4,5 e 6 são conhecidos como eixos superiores A1.4.2Eixos externos : É possível se adicionar ao robô eixos externos, como por exemplo, um eixo de translação (trilho) que possibilite aumentar sua área de trabalho, ou uma mesa giratória para posicionamento de peças. 1) Trilho 2)Mesa – Giro de mesa A1.5 Abertura de Programas Quando se abre um programa, este programa substitui o programa existente na memória do robô. A tecla de janela Select é utilizada para mostrar o programa e funções relacionadas a ele. Através desta janela pode-se, entre outras opções, abrir um programa armazenado em disquete, memória ou outro dispositivo de armazenamento. Também podemos criar programas nesta mesma janela. 50 A1.6 Iniciando o Programa Pode-se executar o programa de três maneiras através de teclas de função diferentes: – SHIFT + FWD: roda o programa uma vez; – Com o Led do STEP acionado + SHIFT + FWD: executa uma instrução para frente. – SHIFT + BWD: uma instrução para trás. Pode-se também escolher a velocidade utilizando as teclas de função -%, +% (para decrementos e incrementos de %), QUANDO FOR RODAR UMA INSTRUÇÃO OU O PROGRAMA COMPLETO, ASSEGURE-SE DE QUE NÃO HÁ NINGUÉM DENTRO DA ÁREA DE SEGURANÇA AO REDOR DO ROBÔ. Sempre se lembre de que para iniciar o programa em um dos modos manuais, deve-se pressionar o Deadman e segurar a tecla SHIFT. Para parar o programa deve-se pressionar a tecla HOLD ou o botão de emergência na unidade de programação. 51 ANEXO II – Roteiros de Aulas Práticas Prática 1 – MovimentaÁão do robô (jogging) Objetivos Movimentar o robô manualmente Introdução Para se fazer a programação de um robô é necessário movimentá-lo manualmente e informar ao robô a ordem de movimentação para esses pontos. O robô pode ser movimentado com o uso do teach pendant em vários sistemas de coordenadas. Os mais comuns são o junta a junta e o linear. No movimento junta a junta pode-se movimentar o robô em cada uma de suas juntas por vez. No movimento linear, pode-se movimentá-lo em cada um dos eixos de coordenadas x, y e z e de orientação da ferramenta roll, pitch e yaw. Metodologia Nessa prática o aluno aprenderá a movimentar o robô FANUC nos sistemas de coordenadas de junta e linear. Procedimentos 1 Selecione o tipo de movimento junta a junta a Aperte a tecla COORD várias vezes até aparecer na tela o tipo de movimento JOINT. 2 Selecione a velocidade de movimento do robô para 10% a Pressione as teclas -% e +% até que a velocidade 10% apareça na tela 3 Movimente o robô em cada uma de suas juntas a Mantenha pressionados o dead man e o botão SHIFT. b Pressione as teclas J1- e J1+ para movimentar a junta 1 do robô, pressione as teclas J2- e J2+ para movimentar a junta 2 do robô e assim por diante. 4 Selecione o tipo de movimento linear a Aperte a tecla COORD várias vezes até aparecer na tela o tipo de movimento WORLD. 5 Selecione a velocidade de movimento do robô para 10% a Pressione as teclas -% e +% até que a velocidade 10% apareça na tela 6 Movimente o robô em cada uma das coordenadas cartesianas a Mantenha pressionados o dead man e o botão SHIFT. b Pressione as teclas J1- e J1+ para movimentar o robô no eixo x, as teclas J2- e J2+ para movimentar o robô no eixo y e as teclas J3- e J3+ para movimentar o robô no eixo z. 52 c Pressione as teclas J4-, J4+, J5-, J5+, J6- e J6+ para alterar a orientação da ferramenta. 53 Prática 2 - MarcaÁão de pontos Objetivos Criar um programa novo Nomear o programa Criar linhas de movimentação Marcar pontos Executar o programa Introdução Programas para robôs industriais são constituídos basicamente de comandos de movimentos. Esses comandos informam ao robô para que ponto ir, velocidade e precisão do ponto final. Assim, é necessário que as posições dos pontos utilizados no programa sejam informadas previamente ao robô. Em algumas linguagens, como a utilizada pelos robôs da ABB, os pontos podem ter nomes definidos pelo usuário. Em linguagens como a utilizada pelos robôs da FANUC, os pontos são identificados pelo número. A identificação dos pontos é feita normalmente de duas maneiras: - Levando o robô à posição desejada e “marcando o ponto”. - Informando as coordenadas do ponto, quando essas forem conhecidas. Metodologia Nessa prática será desenvolvido um programa simples com apenas dois movimentos, para demonstrar como marcar pontos no robô FANUC. Procedimentos 1 Crie um novo programa. a Entre na tela de seleção de programas utilizando a tecla SELECT. b Utilize a função CREATE, utilizando a tecla de função corespondente. 2 Nomeie o novo programa com o nome P1Dx, em que x é o número da dupla. a Na lista da parte superior da tela, selecione UPPER CASE (letras maiúsculas), utilizando as setas de navegação. b Escreva o nome do programa utilizando as teclas de função, como em um telefone celular. Por exemplo, pressionando a tecla F1 uma vez, tem-sea letra A. Pressionando a segunda vez, tem-se a letra B. Os números devem ser escritos utilizando as teclas numéricas. Para passar para a letra seguinte pressione a seta para a direita. Para apagar a última letra digitada, pressione a tecla BACK SPACE. c Após escrever o nome do programa, pressione a tecla ENTER duas vezes. 3 Na tela de edição de programas, crie um comando de movimento a Movimente o robô para a posição desejada b Pressione a tecla SHIFT juntamente com a tecla de função correspondente à função POINT. 4 Edite o comando de movimento para a seguinte maneira: J P[1] 40% CNT50 54 a Para alterar o tipo de movimento, leve o cursor utilizando as teclas de navegação até o comando e pressione a tecla de função correspondente à função [CHOICE]. Selecione o movimento JOINT e pressione a tecla ENTER. b Para alterar a velocidade do movimento, leve o cursor até o valor da velocidade e digite o novo valor (40), pressionando em seguida a tecla ENTER. c Para alterar o tipo de terminação do movimento (CNT), leve o cursor até o parâmetro e pressione a tecla de função correspondente à função [CHOICE]. Selecione o tipo de terminação CNT e pressione a tecla ENTER. d Para alterar o valor da terminação do movimento (CNT50) leve o cursor até o valor atual e digite o novo valor (50), pressionando em seguida a tecla ENTER. 5 Movimente o robô para uma nova posição, leve o cursor para a última linha do programa ( [END] ) e crie um novo comando de movimento, como no passo 3. 6 Repita o passo 4 para deixar o comando de movimento da seguinte maneira: L P[2] 500mm/s FINE a No passo 4a, selecione o movimento LINEAR. b Ao se selecionar o movimento linear, a unidade de velocidade passa automaticamente para mm/sec, bastando então alterar o valor da velocidade para 500. c No passo 4c, selecione o tipo de terminação FINE. 7 Execute o programa passo a passo a Leve o cursor para a primeira linha do programa. b Pressione a tecla STEP e verifique se o led correspondente acendeu na parte esquerda do teach pendant. c Regule a velocidade de execução do programa para 10%, com as teclas - % e +%. d Afaste-se do robô para uma posição segura. e Verifique se não há objetos na área de trabalho do robô. f Mantenha pressionados o dead man e a tecla SHIFT. g Para executar o primeiro passo do programa, pressione uma vez a tecla FWD. h Para executar o segundo passo do programa, pressione novamente a tecla FWD. i Para encerrar o programa (comando [END]), pressione mais uma vez a tecla FWD. 8 Execute o programa completo a Leve o cursor para a primeira linha do programa. b Pressione a tecla STEP e verifique se o led correspondente se apagou na parte esquerda do teach pendant. c Mantenha pressionados o dead man e a tecla SHIFT. d Pressione uma vez a tecla FWD. 55 Prática 3 - EdiÁão de posiÁão de pontos Objetivos Atribuir a pontos valores conhecidos de coordenadas Introdução Em muitos casos, os valores das coordenadas de certos pontos são previamente conhecidos, por exemplo, com base no projeto. Nesses casos pode-se editar o ponto e informar o valor de tais coordenadas. As coordenadas dos pontos podem estar em dois sistemas diferentes: junta ou cartesiano. Quando se utiliza o sistema de coordenadas de junta, os valores de giro em graus de cada uma das juntas é informado diretamente. Quando o sistema utilizado é o cartesiano, são informados os valores x, y, z, roll, pitch e yaw do ponto a ser alcançado pelo TCP. O controlador do robô calcula então os valores de giro de cada uma das juntas para que seja alcançado o ponto desejado. Metodologia Nessa prática será utilizado o programa P1Dx criado na prática anterior e serão editados os valores de seus dois pontos, utilizando o sistema de coordenadas de junta e cartesiano. Procedimentos 1 Abra o programa P1Dx, criado na prática anterior. a Entre na tela de seleção de programas utilizando a tecla SELECT. b Localize o programa desejado utilizando as teclas de navegação e pressione a tecla ENTER para abrir o programa. Dica: pressione a tecla SHIFT juntamente com as teclas de navegação para avançar várias linhas da lista de uma só vez. 2 Edite o ponto P[1] para as seguintes coordenadas de juntas: J1 = 0 deg J2 = 0 deg J3 = 0 deg J4 = 0 deg J5 = -90 deg J6 = 0 deg a Movimente o cursor para o ponto P[1] utilizando as teclas de navegação. b Pressione a tecla de função correspondente à função POSITION. c Na parte superior da tela aparecerão os valores das coordenadas cartesianas do ponto. Pressione a tecla de função correspondente à função [REPRE] e selecione o sistema de coordenadas JOINT, pressionando a tecla ENTER em seguida. d Edite cada uma das coordenadas de junta movimentando o cursor para seu valor, digitando o novo valor e pressionando a tecla ENTER ao final de cada uma. e Após feitas todas as alterações pressione a tecla de função correspondente à função DONE. 56 3 Edite o ponto P[2] para as seguintes coordenadas cartesianas: X = 700 mm Y = 100 mm Z = -20 mm W = -180 deg P = 0 deg R = 0 deg a Movimente o cursor para o ponto P[2] utilizando as teclas de navegação. b Pressione a tecla de função correspondente à função POSITION. c Na parte superior da tela aparecerão os valores das coordenadas cartesianas do ponto. Se essas coordenadas estivessem no sistema de junta, deveria ser pressionada a tecla de função correspondente à função [REPRE] e selecionado o sistema de coordenadas CARTESIAN, pressionada em seguida a tecla ENTER. d Edite cada uma das coordenadas de junta movimentando o cursor para seu valor, digitando o novo valor e pressionando a tecla ENTER ao final de cada uma. e Após feitas todas as alterações pressione a tecla de função correspondente à função DONE. 4 Execute normalmente o programa. 57 Prática 4 - FunÁões de chamadas de programas Objetivos Fazer programas que chamem outros programas (comando CALL) Introdução Algumas funções de um programa podem ser agrupadas. Isso é útil, por exemplo, quando certos blocos do programa devem ser executados várias vezes e em várias partes do programa. Em muitas linguagens de programação esses grupos de funções são chamados rotinas e são escritos dentro do próprio programa. No robô FANUC, isso deve ser feito através da criação de outro programa. Esse programa é então chamado a partir do programa principal através do comando CALL. Após a execução do programa chamado, a execução volta ao principal no ponto em que ocorreu a chamada. Metodologia Nessa prática será utilizado criado um programa que chama outros dois programas em sequência. Procedimentos 1 Crie dois programas, um que desenha o retângulo e outro que desenha o losango da bandeira do Brasil. O primeiro deve ter o nome de RETDx e o segundo deve ter o nome de LOSDx. Ambos os programas devem possuir 5 pontos sendo 4 deles os vértices das figuras e o quinto um ponto marcado fora do plano de desenho. Todos os movimentos devem ter terminação FINE. 2 Faça um terceiro programa que faz as chamadas aos dois outros, chamado de BRx: CALL RETDx CALL LOSDx a Para inserir o comando CALL, pressione a tecla NEXT para que apareça na tela a função [INST] (para ver novamente as funções anteriores, pressione novamente a tecla NEXT). Pressione atecla correspondente à função [INST]. b Selecione na lista na parte superior da tela a opção CALL e pressione a tecla ENTER. c Selecione o comando CALL program e pressione ENTER. d Selecione o programa a ser chamado. Se não aparecer na tela, selecione a opção 8 ---next page--- para mostrar mais programas. Pressione ENTER. 5 Execute normalmente o programa. 4 Altere o programa do retângulo para movimentos contínuos (CNT50). E execute novamente o programa BRx. Qual a diferença entre os movimentos das duas figuras? 58 Prática 5 - Comando de movimento circular Objetivos Fazer um programa que desenhe um círculo Introdução Foram vistos em práticas anteriores os comandos de movimentos de junta a junta e linear. Para se fazer movimentos circulares é utilizado o comando C. Os comandos J e L necessitam de apenas um ponto, que é o ponto final do movimento. O comando C necessita de 2 pontos, sendo que um é o ponto final e o outro é um ponto intermediário, pertencente ao arco de círculo. A sintaxe do comando é a seguinte: C P[1] P[2] (velocidade) (terminaÁão) Nesse caso, o ponto P[1] é o ponto intermediário e o ponto P[2] é o ponto final do arco. Para se fazer uma circunferência completa são necessários dois comandos de movimento C e a marcação de 4 pontos: O programa poderia ser o seguinte: J P[1] 30% FINE C P[2] P[3] 100 mm/s FINE C P[4] P[1] 100 mm/s FINE O primeiro comando posiciona a ferramenta no primeiro ponto do desenho. O comando seguinte desenha um arco de círculo iniciando no ponto P[1], passando pelo ponto P[2] e terminando no ponto P[3]. O último comando desenha um arco de círculo iniciando no ponto P[3], passando pelo ponto P[4] e terminando no ponto P[1]. Metodologia Nessa prática será criado um programa que desenha um círculo e será introduzida uma chamada a esse programa no programa da prática anterior (BRx). Procedimentos 1 Crie um novo programa chamado CIRx. 59 2 Leve o robô para o ponto inicial do círculo e insira um comando de movimento. 3 Leve o robô para o ponto intermediário, insira um comando de movimento e o altere para o comando de movimento circular (comando C). O comando deverá ficar da seguinte maneira: C P[2] P[ ... ] (velocidade) (terminaÁão) As reticências significam que o ponto intermediário foi marcado, mas o ponto final ainda não. 4 Leve o robô para o ponto final, posicione o cursor no início da segunda linha do movimento ( P[ ... ] (velocidade) (terminaÁão) ) e pressione a tecla de função correspondente à função TOUCHUP juntamente com a tecla SHIFT. Isso marcará o ponto P[3]. 5 Leve o robô para o ponto P[4] (ponto intermediário do segundo movimento), insira outro comando de movimento e altere para movimento circular. Informe manualmente que o ponto final desse movimento é o ponto P[1], levando o cursor para as reticências (...) e digitando o valor 1 e a tecla ENTER. 6 Execute o programa normalmente 7 Modifique a terminação do primeiro movimento circular para CNT50 e execute o programa. Qual a diferença? 8 Insira no programa BRx a chamada ao programa CIRx. 9) Execute o programa BRx. 60 Prática 6 - RepetiÁão de programa um número indeterminado de vezes Objetivos Aprender as intruções LBL e JMP LBL Fazer um programa que se repita número indeterminado de vezes Introdução Dentro de um mesmo programa pode ser necessário pular certos comandos ou voltar para uma linha anterior. Isso pode ser feito marcando-se uma linha do programa com a instrução label: LBL[n]. Essa intrução vem sempre acompanhada de um número correspondente ao número do label a ser dado àquela linha. Não podem existir em um mesmo programa dois labels com o mesmo número. Pode-se então utilizar o comando jump label: JMP LBL[n] para pular para uma linha marcada, informando o número do label da linha. Para se fazer um programa cíclico deve-se, então, marcar a primeira linha do programa e instruir o robô a pular para aquela linha ao final de sua execução. Metodologia Nessa prática será alterado o programa (BRx) de modo a fazê-lo cíclico. Procedimentos 1 Abra o programa BRx. 2 Insira uma linha antes da primeira linha do programa a Movimente o cursor para o início da primeira linha do programa. b Pressione a tecla NEXT para que apareça na tela a função [EDCMD]. Pressione a tecla correspondente a essa função. c Selecione no menu a opção INSERT e pressione ENTER. d Digite o número de linhas a serem inseridas (1 linha) e pressione ENTER. 3 Insira a intrução LBL[1] na linha recém inserida. a Pressione a tecla de função correspondente a [INST]. b Selecione a opção JMP/LBL e pressione ENTER. c Selecione a opção LBL[ ] e pressione ENTER. d Dê um número para o label criado, por exemplo LBL[1]. 4 Na última linha do programa, insira o comando JMP LBL[1]. a Movimente o cursor para a última linha do programa ( [END] ). b Pressione a tecla de função correspondente a [INST]. c Selecione a opção JMP/LBL e pressione ENTER. d Selecione a opção JMP LBL[ ] e pressione ENTER. e Informe o número do labelpara o qual o programa deve pular, no caso JMP LBL[1] e pressione ENTER. 5 Execute normalmente o programa. Para fazê-lo parar, solte o botão SHIFT. Somente solte o dead man antes do SHIFT em casos de emergência, pois ocorre a parada brusca, levando a desgastes das engrenagens. 61 Prática 7 - RepetiÁão de programa um número determinado de vezes Objetivos Aprender as intruções R[n]=c e IF Fazer um programa que se repita número determinado de vezes Introdução Para se fazer um programa cíclico que pare após a execução de um certo número de cliclos, deve ser usado um contador. O robô FANUC dispõe de um número de variáveis, chamadas registradores. Um desses registradores pode ser utilizado como contador, por exemplo o registrador 1 ( R[1] ). Esse contador pode começar com o valor 0 e ser incrementado após cada ciclo do programa. Para zerar o contador 1 utiliza-se R[1]=0. Para incrementar seu valor utiliza-se R[1]=R[1]+1, ou seja, o valor de R[1] é determinado por seu valor anterior mais 1. Após incrementar o valor de R[1] deve-se verificar se ele é ainda menor que o número de vezes que o programa deve ser repetido. Se for, o programa deve retornar ao início do ciclo. Para isso utiliza-se, por exemplo, IF R[1]<3 JMP LBL[1]. Isso significa que se o registrador 1 for menor que 3 então o programa deve pular para o label 1. Observe que o contador deve ser zerado antes da intrução LBL[1], do contrário seu valor seria zerado a cada ciclo, e nunca alcançaria o valor desejado. Metodologia Nessa prática será alterado o programa (BRx) de modo a fazê-lo repetir 3 vezes. Procedimentos 1 Abra o programa BRx. 2 Insira uma linha antes da linha LBL[1] (como na prática anterior, passo 2). 3 Insira a intrução R[1]=0 na linha recém inserida. a Pressione a tecla de função correspondente a [INST]. b Selecione a opção Registers e pressione ENTER. c Selecione a opção ...=... e pressione ENTER. d Selecione a opção R[ ] e pressione ENTER. e Digite o número do registrador (no caso, registrador 1) e pressione ENTER. f Selecione a opção Constant e pressione ENTER. g Digite o valor da constante (no caso, valor 0) e pressione ENTER. 4) Apague a última linha do programa (linha JMP LBL[1]) a Movimente o cursor para a linha a ser apagada. b Pressione a tecla correspondente à função [EDCMD]. Se necessáriopressione a tecla NEXT. c Selecione no menu a opção DELETE. d Pressione a tecla de função correspondente a YES. 5 Na última linha do programa, insira o comando R[1]=R[1]+1 a Movimente o cursor para a última linha do programa ( [END] ). b Pressione a tecla de função correspondente a [INST]. 62 c Selecione a opção Registers e pressione ENTER. d Selecione a opção ...=..+.... e pressione ENTER. e Selecione a opção R[ ] e pressione ENTER. f Digite o número do registrador (no caso, registrador 1) e pressione ENTER. g Selecione a opção R[ ] e pressione ENTER. h Digite o número do registrador (no caso, registrador 1) e pressione ENTER. h Selecione a opção Constant e pressione ENTER. i Digite o valor da constante (no caso, valor 1) e pressione ENTER. 6 Insira o comando IF R[1]<3, JMP LBL[1] a Movimente o cursor para a última linha do programa ( [END] ). b Pressione a tecla de função correspondente a [INST]. c Selecione a opção IF/SELECT e pressione ENTER. d Selecione a opção IF ...<... e pressione ENTER. e Selecione a opção R[ ] e pressione ENTER. f Digite o número do registrador (no caso, registrador 1) e pressione ENTER. i Selecione a opção Constant e pressione ENTER. j Digite o valor da constante (no caso, valor 3) e pressione ENTER. k Selecione a opção JMP LBL[ ] e pressione ENTER. l Informe o número do labelpara o qual o programa deve pular, no caso JMP LBL[1] e pressione ENTER. 7 Execute normalmente o programa. O programa deverá desenhar a bandeira 3 vezes e parar. 63 Referências Bibliográficas [1] Toss, D.J. Fudamentals of robot technology. [2] Holzbock, Werner G. Robotic technology, principles and pratice . [3] Asfahl, C. Ray. Robots and manufacturing automation . [4] Koren, Yoram. Robotics for engineers. [5] Handbook of industrial robotics. [6] Apostila de Robótica – UFRGS / GCAR]. [7] User´s Guide – ABB. [8] Manual de Referência Rápida – ABB. [9] Polonskii, Mikhail M. Introdução à Robótica e Mecatrônica . Caixias do Sul: EDUSC, 1996. [10] User´s Guide – FANUC. 64 1. Introdução à Robótica 1.1 Histórico 1.2 Definição 2. Arquitetura 3. Classificação 4. Graus de Liberdade 5. Volume de Trabalho 6. Acessórios 6.1 Garras: 6.2 Ferramentas especializadas 7. Capacidade de Carga 8. Aplicações Industriais de Robôs 8.1 Soldagem 8.1.1 Soldagem a Ponto 8.1.2 Soldagem a Arco 8.2 Aplicação de Fluidos 8.3 Montagem 8.4 Carregamento / Movimentação 9. Segurança 10. Tipos e dispositivos de Programação 10.1 Programação Manual 10.2 Repetição 11. Terminal de Programação (Teach Pendant) 12. Linguagens de Programação 12.1 Gerações de Linguagens de Programação 12.2 Comandos de Programação 12.3 Simulação 12.4 Sistema de Movimentação do Robô 12.5 Modo Automático 12.6 Criação e Edição de Programas 12.7 Salvamento de Programas 12.8 Visualização de Erros 12.9 Troca de Ferramentas 12.10 Etapas da programação 12.11 Planejamento de programas 12.12 Documentação de programas 12.13 Interrupções 13. Elementos de Programação (robô FANUC) 13.1 Instruções de movimento 13.2 Registradores 13.3 Estruturas de controle de fluxo 13.3.1 Chamada de programas 13.3.2 Saltos dentro de um programa 13.3.3 Estrutura condicional 13.3.4 Repetição com contagem 13.3.5 Seleção de condições 13.4 Comando de atraso 13.5 Comando de mensagem 13.6 Entradas e saídas 13.6.1 Forçando e simulando sinais ANEXO I – Robô Industrial da FANUC (ARC Mate 50 iL) A1.1 Segurança A1.1.1 Considerações de Segurança para a Instalação do Robô A1.1.2 Extinção do Fogo A1.1.3 Uso de Dispositivos de Aumento de Segurança A1.1.4 Criando um Célula de Trabalho Segura A1.1.5 Paradas de emergência A1.2 Aplicações: A1.3 Graus de Liberdade: A1.4 Eixos: A1.4.1 Eixos internos : A1.4.2 Eixos externos : A1.5 Abertura de Programas A1.6 Iniciando o Programa ANEXO II – Roteiros de Aulas Práticas Prática 1 – Movimentação do robô (jogging) Prática 2 - Marcação de pontos Prática 3 - Edição de posição de pontos Prática 4 - Funções de chamadas de programas Prática 5 - Comando de movimento circular Prática 6 - Repetição de programa um número indeterminado de vezes Prática 7 - Repetição de programa um número determinado de vezes Referências Bibliográficas