Baixe o app para aproveitar ainda mais
Prévia do material em texto
23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d&… 1/58 ROBÓTICAROBÓTICA PROGRAMAÇÃO DEPROGRAMAÇÃO DE ROBÔS INDUSTRIAISROBÔS INDUSTRIAIS Au to r ( a ) : M e . R u b e m N e ro G o m e s X av i e r R ev i s o r : B r u n o H e n r i q u e O l i ve i ra M u l i n a Tempo de leitura do conteúdo estimado em 1 hora e 50 minutos. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d&… 2/58 Introdução Olá, caro(a) estudante! A programação de um robô industrial consiste na de�nição de como o robô irá trabalhar mediante uma sequência de ações que ele deverá cumprir durante a realização de uma determinada tarefa. Existe uma normalização para os procedimentos de programação em robôs industriais, de�nidos pela Norma Internacional ISO/TR 10562. Cada fabricante, no entanto, desenvolveu o seu próprio método, válido unicamente para os seus próprios robôs. Em geral, classi�camos os métodos de programação como programação por aprendizagem (on-line), em que o robô é ensinado, guiando-o por meio da trajetória desejada pelo usuário; dessa forma, gera-se um código de programação ou programação textual (off-line), já que temos a possibilidade de indicar a tarefa a ser realizada pelo robô por intermédio de uma linguagem de programação de alto nível, com funções prontas e simulação por um ambiente tridimensional (3D). Neste material, serão apresentados: os princípios básicos da criação de programas para robôs industriais; as principais ferramentas utilizadas no planejamento da programação de robôs; as funções utilizadas na programação textual dos robôs industriais; as aplicações técnicas da programação de robôs industriais para diferentes fabricantes. A partir desses pontos, é possível veri�car as diferenças na programação entre fabricantes de robôs industriais e as principais funcionalidades comuns na utilização dos manipuladores robóticos. Bons estudos! 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d&… 3/58 Segundo Antunes (2015), o programa de um manipulador robótico é onde estão armazenados, de forma sequencial, todos os dados necessários para o manipulador realizar a tarefa na qual foi designado. Nos programas, são registradas as instruções de movimentação, instruções lógicas, instruções de entradas e saídas, criação de elementos e limites de movimento, dentre outras funções especiais. Quando tratamos a robótica industrial, temos uma grande di�culdade quanto à padronização da programação, visto que os principais fabricantes de robôs, no mercado internacional, não seguem uma norma internacional referente à padronização da programação. Assim, cada fabricante de robôs industriais tem sua linguagem de programação proprietária e alguns poucos fabricantes utilizam as mesmas linguagens ou linguagens com grandes similaridades, de acordo com Henriques (2002). Dessa forma, as particularidades de cada linguagem de programação para robôs industriais apenas são apresentadas a partir dos manuais técnicos dos respectivos fabricantes. A seguir, temos alguns exemplos de fabricantes e suas respectivas linguagens de programação (Quadro 4.1). É importante ressaltar que, mesmo com linguagens de programação diferentes, as linguagens de programação dos robôs industriais em fabricantes distintos têm grande parte de suas funções com sintaxes diferentes, mas funcionalidade equivalente, um fato que possibilita a conversão entre Criação de um Programa 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d&… 4/58 diferentes linguagens de programação, conforme pontua Souza (2021). Analisemos o quadro na sequência. Algumas ferramentas de planejamento de programação manuais auxiliam na realização do planejamento da programação e do raciocínio lógico do programa a ser desenvolvido. Dessa forma, o processo de programação se torna mais dinâmico e com uma elaboração mais sistemática, de acordo com Craig (2012). Na robótica, o mapa de pontos é uma ferramenta de planejamento de programação antiga, muito utilizada em aplicações com grande Quadro 4.1 - Fabricantes e linguagens de programação para robôs industriais Fonte: Elaborado pelo autor. #PraCegoVer: o quadro, dividido em 2 colunas e 6 linhas, resume alguns dos principais fabricantes e linguagens de programação para robôs industriais. Seguindo as colunas, da esquerda para a direita, temos, na primeira linha, os itens “Fabricante” e “Linguagem”. Na segunda linha, na coluna Fabricante, está ABB; na coluna Linguagem, RAPID. Na terceira linha, na coluna Fabricante, está FANUC; na coluna Linguagem, KAREL. Na quarta linha, na coluna Fabricante, está KUKA; na coluna Linguagem, KRL. Na quinta linha, na coluna Fabricante, está YASKAWA; na coluna Linguagem, INFORM. Na sexta linha, na coluna Fabricante, está NACHI; na coluna Linguagem, SLIM. Fabricante Linguagem ABB RAPID FANUC KAREL KUKA KRL YASKAWA INFORM NACHI SLIM 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d&… 5/58 complexidade de movimento, pois possibilita a previsão da quantidade de pontos e dos tipos de movimentos necessários na trajetória elaborada em uma programação, conforme destaca Romano (2002). O manipulador robótico trabalha ligando pontos no espaço, de acordo com a orientação e sentido do mapa desenvolvido. O mapa de pontos pode ser desenvolvido em 2D ou 3D, sendo 2D para operações realizadas de forma planar, e 3D quando existe grande variação de movimentos no espaço. Figura 4.1 - Mapa de pontos em 3D Fonte: boris15 / 123RF. #PraCegoVer: a �gura apresenta um braço articulado de seis graus de liberdade, na cor azul, com uma ferramenta de cor marrom alocada na �ange do robô. A �gura mostra a trajetória do robô por meio de um mapa de pontos, a partir de linhas tracejadas em rosa, indicando, com uma seta, a ordem dos movimentos, onde movimentos aéreos sem contato com a peça são realizados (com movimento ponto a ponto) e onde há contato para pegar a peça e soltá-la (movimentos lineares). De acordo com Craig (2012), o �uxograma é uma ferramenta muito utilizada na programação em geral; basicamente, ele demonstra a representação 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d&… 6/58 grá�ca da sequência das etapas de um processo. O �uxograma é estruturado por símbolos geométricos que indicam as direções a serem seguidas. Essa ferramenta deu origem a outras ferramentas e técnicas que auxiliam na programação e controle, como as Redes de Petri. Tal ferramenta, aliás, é extremamente relevante, pois, no intuito de realizar melhorias em um processo, é necessário efetuar o seu mapeamento, sendo essa a principal função do �uxograma. Existem inúmeros símbolos que podem ser utilizados no desenvolvimento de um �uxograma, com o objetivo de representar ações e decisões a serem tomadas durante seu processo. Quando trabalhamos com a programação de robôs industriais, de forma simpli�cada, temos quatro símbolos principais que podem orientar o planejamento de uma programação (Figura 4.2). 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d&… 7/58 Figura 4.2 - Principais símbolos utilizados em �uxogramas Fonte: Elaborada pelo autor. #PraCegoVer: a �gura apresenta, de forma sintetizada, os quatro símbolos utilizados em �uxograma. O primeiro símbolo, da esquerda para a direita, é o de “Terminação”; o formato é de um oblongo, na cor amarela. Abaixo, está descrito que o símbolo é utilizado nos �uxogramas para marcar o início e �m de um processo. Como exemplo, tem-se a “PosiçãoHOME” de um robô. O segundo símbolo, da esquerda para a direita, é o de “Ação”; o formato é de um retângulo, na cor amarela. Abaixo, está descrito que o símbolo é utilizado nos �uxogramas para representar a execução de um paço ou ação. Como exemplo, tem-se a “execução de um programa”. O terceiro símbolo, da esquerda para a direita, é o de “Decisão”; o formato é de um losango, na cor amarela. Abaixo, está descrito que o símbolo é utilizado nos �uxogramas para marcar uma decisão existente dentro do processo. Como exemplo, tem-se a “função IF (SE)”. O quarto e último símbolo, da esquerda para a direita, é o de “Entrada manual”; o formato é de um quadrilátero, na cor amarela. Abaixo, está descrito que o símbolo é utilizado nos �uxogramas para representar quando o programa aguarda uma entrada manual de dados. Como exemplo, tem-se “aguarda acionamento de um botão ou chave”. Ao analisar um caso prático, vê-se que um robô industrial, a partir do fechamento de uma garra pneumática, irá retirar peças de uma pilha vertical, de forma automática, quando receber um sinal de start vindo de um 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d&… 8/58 Controlador Lógico Programável (CLP). Após isso, a peça é levada até um sensor óptico para identi�car qual é a cor, podendo ser vermelha ou azul, além de depositá-la na caixa correspondente à sua cor (Figura 4.3). Figura 4.3 - Aplicação de seleção por cor Fonte: cheskyw / 123RF. #PraCegoVer: a �gura apresenta um braço articulado de 6 graus de liberdade de cor laranja, centralizado na imagem, apoiado sobre uma base cilíndrica de cor cinza e com uma garra de cor prateada alocada na �ange do robô. A �gura mostra, à esquerda, peças empilhadas em formato retangular, sendo elas azuis e vermelhas; abaixo do robô, é demonstrado um sensor óptico de cor cinza, indicando, a partir de um triângulo, o local de veri�cação da peça. Por �m, à direita do robô, existem duas caixas retangulares para depósito das peças, sendo, da esquerda para a direita, a caixa de peças vermelhas, seguida da caixa de peças azuis. No caso de nenhuma das duas cores serem identi�cadas pelo sensor óptico, deve ser acionado um alarme sonoro de erro. Dessa forma, teremos um �uxograma representativo do processo, conforme ilustra a Figura 4.4: 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d&… 9/58 Figura 4.4 - Fluxograma da aplicação de seleção por cor Fonte: Elaborada pelo autor. #PraCegoVer: a �gura apresenta um �uxograma no qual as conexões são realizadas na cor preta, e os elementos, na cor amarela. O �uxograma apresenta o funcionamento de um robô que, partindo da posição HOME, elemento de início, veri�ca a existência de um sinal externo de um botão, elemento de decisão. Caso não seja acionado, ele permanece na posição HOME; se o botão tiver sido pressionado, o programa direciona o robô para ir até a peça e levá-la até o sensor de cor. Após a veri�cação do sensor de cor sobre a peça, se esta for vermelha, o programa é direcionado a solicitar que o robô leve a peça até a caixa de peças vermelhas. Caso a peça não seja vermelha, mas seja azul, o programa é direcionado a solicitar que o robô leve a peça até a caixa de peças azuis. Caso a peça não seja vermelha nem azul, o programa é direcionado a solicitar que seja ativada uma saída como alarme de erro. O �uxograma não nos entrega diretamente a programação �nalizada, no entanto nos possibilita uma visão global sobre o processo e sua sequência de funcionamento. Isso facilita a elaboração do algoritmo de programação, conforme alude Santos (2015). 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 10/58 Com o intuito de realizar a comunicação do controlador do robô industrial com os periféricos internos ou externos à célula de atuação do manipulador robótico, podem ser usadas entradas e saídas, de acordo com Henriques (2002). Segundo Abreu (2002), em geral, os robôs industriais devem realizar o acionamento de alguns equipamentos externos, como fontes de solda, garras, posicionadores, dispositivos, válvulas, dentre outros. Esses acionamentos são realizados por meio do uso de instruções de saída no programa do robô industrial. Existem instruções de comutação simples, as quais operam apenas uma saída digital por vez, sendo utilizadas a qualquer hora que um dispositivo externo, como um sinaleiro, cilindro pneumático, garra ou outro atuador que deve ser ligado ou desligado pelo robô. Quando temos uma saída alterada com a instrução de comutação simples, esta permanecerá nesse estado até que seja alterada por outra instrução ou manualmente, conforme destacam Lopes e Freitas (2021). Funções Lógicas de Programação 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 11/58 As instruções de comutação pulsada também operam apenas uma saída digital por vez, no entanto, na saída alterada com a instrução de comutação pulsada, o estado será alterado durante um período programado, sendo que, após esse tempo, a saída retorna para o valor que estava anteriormente. Em geral, todos os fabricantes de robôs industriais têm uma função de espera, a qual objetiva parar a varredura do programa por um período determinado, em uma determinada linha, ou seja, tem a função de um temporizador que retarda o processo. Nos robôs da fabricante alemã Kuka, a função de espera é chamada de ‘Wait Time’; já nos robôs da Nachi, fabricante chinesa, a mesma função recebe o nome de 'Times'; nos robôs Motoman, da empresa japonesa Yaskawa, a mesma função tem o nome de ‘Delay’. Em todos os três fabricantes distintos o valor do tempo de espera é dado em segundos. Dessa forma, podemos concluir que a função em si trabalha do mesmo modo, ou seja, apenas com sintaxe diferente de acordo com o fabricante, segundo Moussa (2011). Saltos na Programação de Robôs Para Madaleno (2011), os saltos são funções que podem ser divididas, basicamente, em duas categorias completamente distintas: incondicionais e condicionais. Os saltos incondicionais servem para pular determinados segmentos do programa; dessa forma, funcionam como uma ordem direta. A instrução GOTO, por exemplo, proporciona um salto no programa e serve para: 1) pular uma parte do programa (salto para linha abaixo); 2) criar um loop no programa, tornando a varredura cíclica, de modo a retornar para alguma parte especí�ca do programa (salto para linha acima). Sintaxe: GOTO NOMELABEL 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 12/58 (GOTO, seguido do nome label para qual se deseja realizar o salto). Podemos utilizar pontos especí�cos do programa como referência e destino para as instruções de saltos incondicionais. Esses pontos especí�cos podem ser representados a partir da criação de Labels, nomes únicos e sem espaços que representam o destino de uma função. Sintaxe: NOMELABEL: (Nome desejado para label, seguido de dois-pontos). Em alguns fabricantes de robôs industriais, não temos a possibilidade de criar Labels, como no robô Nachi. Nesse caso, já existe a criação de labels que podem executar a função. Os saltos condicionais servem para controlar a execução do programa, o que possibilita que segmentos do programa sejam executados somente sob uma determinada condição. Assim, há uma funcionalidade semelhante a uma pergunta, conforme pondera Romano (2002). A instrução mais conhecida é a IF THEN, amplamente utilizada quando há a necessidade de dividir o programa em mais de uma rotina possível. Essa função permite a tomada de decisão sobre a execução ou não de linhas que estão entre as representações IF THEN e ENDIF de acordo com a condição especi�cada.A função tem o benefício de permitir diversas aplicações de acordo com a necessidade do programador. Cabe destacar que, em alguns robôs, a função possibilita estruturação, permitindo, mais especi�camente, o encadeamento, que signi�ca utilizar um IF THEN interno a outro, tornando as condições dependentes entre si. Robôs industriais mais antigos não permitem o encadeamento de funções; mesmo quando trabalhamos com robôs de controladores mais modernos, devemos conferir quais possibilidades a programação nos proporciona. Os robôs Yaskawa e Kuka têm a função IF THEN estruturada, ao propiciar o encadeamento. Todavia, 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 13/58 nos robôs da Yaskawa, o encadeamento máximo é de três funções e, nos robôs Kuka, o encadeamento pode chegar até a dez funções. Na sintaxe da função IF THEN, enfatizam-se dois elementos principais, sendo: argumentos: entradas ($IN[nºentrada]), variáveis ou constantes; tipos de comparação: ==, <, >, <=, >= A instrução IF THEN pode ser utilizada acompanhada da instrução ELSE ou não, a depender do que se deseja realizar. Quando a função IF não acompanha a função ELSE, ela apenas veri�ca a existência de uma condição; quando temos a função IF acompanhada da função ELSE, temos a veri�cação em um mesmo elemento da existência e da não existência de uma condição, conforme ilustra a Figura 4.5: 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 14/58 Figura 4.5 - Função IF com e sem o ELSE Fonte: Elaborada pelo autor. #PraCegoVer: a �gura apresenta, de forma colorida, duas estruturas possíveis para a função IF, sendo que, à esquerda, é mostrada a função IF sem o acompanhamento da função ELSE, em que se declara IF condição THEN, na primeira linha, representando que, se uma condição for verdadeira, deve ser executado o que está declarado abaixo. À direita, temos a função IF com o acompanhamento da função ELSE, em que se declara IF condição THEN, na primeira linha, representando que, se uma condição for verdadeira, deve ser executado o que está declarado abaixo. Após as instruções, temos o ELSE, representando que, se a condição for falsa, deve ser executado o que está abaixo do ELSE. Nas duas formas, está inserida a �nalização da função, por meio da instrução ENDIF. Em geral, quando há muitas alternativas de escolhas, utilizar várias vezes a função IF THEN encadeada não é tão viável devido à complexidade da programação; nesses casos, a instrução SWITCH CASE possibilita uma simpli�cação da programação. Na instrução SWITCH CASE, o valor de uma variável INT (número inteiro) é veri�cado; após isso, o caso que corresponder a esse valor é executado, e os demais não são executados. Como exemplo, temos um robô que recebe a informação de um controlador lógico programável referente a qual produto 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 15/58 ele deve selecionar na linha de produção. Tenho um SWITCH CASE com a variável produto; de acordo com o valor dessa variável, é executado o determinado produto, conforme representado a seguir (Figura 4.6). Argumento: INT (variáveis inteiras) Figura 4.6 - Representação SWITCH CASE Fonte: boris15 / 123RF. #PraCegoVer: a �gura apresenta, à esquerda, um braço articulado de 6 graus de liberdade de cor azul, com uma ferramenta de cor marrom alocada na �ange do robô. Na frente do robô, existem quatro caixas retangulares, sendo elas, da esquerda para a direita, amarela para o produto A, verde para o produto B, azul para o produto C e vermelha para o produto D. À direita da �gura, existe um retângulo na parte superior representando um CLP, de cor cinza. Abaixo do CLP, existe uma função switch case escrita, representando que, para cada produto selecionado, a programação irá direcionar um caso que será acionado. Sendo o case 1 o produto A, case 2 o produto B, case 3 o produto C e, por �m, case 4 o produto D. Ao �nal, está inserida a �nalização da função, por meio da instrução ENDSWITCH. A função SWITCH CASE tem como vantagem, em relação à função IF THEN, a possibilidade da veri�cação direta de mais de uma situação em um mesmo elemento. Mas é importante destacar que, nos controladores de robôs 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 16/58 industriais, existem algumas limitações lógicas de processamento, de forma que o programador deve de�nir qual é a melhor função para ser utilizada de acordo com o processo proposto. Um robô industrial antigo e de instruções simples, sem a estruturação, como o XR320, proveniente da fabricante japonesa Yaskawa, tem mais de 300 instruções para a programação, enquanto um robô mais moderno, como o FS 100, da mesma fabricante, tem mais de 900 instruções para a programação. Dessa forma, destacamos as instruções principais de programação para os mais diversos robôs industriais, no entanto o conhecimento profundo a respeito de cada fabricante vem a partir de uma profunda pesquisa e uma constante prática de programação. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 17/58 Conhecimento Teste seus Conhecimentos (Atividade não pontuada) Leia o excerto a seguir. “Para um dado problema de programação, existem diversas formas de implementarmos um algoritmo para solucioná-lo; destas, escolhemos uma em função do índice de desempenho adotado, de forma a minimizá-lo ou que seja a mais próxima do ideal. Eis aí a motivação precípua da programação e, consequentemente, para a programação de robôs”. HENRIQUES, R. V. B. Programação e simulação de robôs. In: ROMANO, V. F. et al. (org.). Robótica industrial: aplicação na indústria de manufatura e de processos. São Paulo: Edgard Blücher, 2002. p. 2. A respeito das principais instruções utilizadas na programação de robôs industriais, assinale a alternativa correta. a) A instrução GOTO proporciona um salto condicional no programa e serve para pular uma parte do programa e/ou criar um loop. b) É possível registrar pontos especí�cos do programa para utilizarmos como referência e destino para as instruções de saltos. Esses são chamados de cases. c) Utilizar vários IF THEN encadeados, muitas vezes, é viável, pois não existem limites no encadeamento da função. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 18/58 d) A instrução IF THEN pode ser utilizada quando há a necessidade de dividir o programa em mais de um caminho. e) A instrução SWITCH CASE tem a capacidade de realizar uma seleção múltipla, sendo necessária a utilização em sua criação de um argumento do tipo booleano. Um recurso importante no desenvolvimento da programação em robôs industriais é a utilização de subprogramas, em que é possível dividir as tarefas do robô em etapas distintas, o que facilita e organiza a programação. Dessa forma, por meio de um programa principal, é possível chamar outros programas para serem executados como subprogramas, conforme expõem Alciatore e Histand (2014). O programa principal é nomeado, usualmente, como “Programa Pai”; os subprogramas são chamados de “Programas Filhos”. Após o término do “Programa Filho”, a varredura retorna ao “Programa Pai”, executando a próxima linha. Quanto à utilização de subprogramas, podemos considerar algumas vantagens: Subprogramas 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 19/58 - a estrutura do programa principal �ca mais clara e facilmente legível; - subprogramas podem ser reutilizados várias vezes no contextode uma mesma aplicação. A sintaxe, para chamar um subprograma nos robôs da Kuka, deve ser digitada por meio do teclado da seguinte forma: NOME DO PROGRAMA ( ) Para poder digitar instruções nos programas do robô Kuka, o usuário deverá estar logado com o nível de usuário Perito, e a mesma regra é válida para os robôs do fabricante Hiwin de Taiwan. A grande maioria dos fabricantes de robôs industriais, como Fanuc, Nachi e Yaskawa, tem, no entanto, nomes prontos em seus respectivos sistemas para os subprogramas e funções especí�cas para a chamada de um subprograma. É importante destacar que os níveis de usuário determinam o quanto um programador ou operador pode acessar do sistema do robô. Cada fabricante tem uma quantidade, nomenclatura e permissões diferentes quanto aos níveis de usuários. Em geral, diversos robôs industriais, como os robôs Kuka, Hiwin e Yaskawa, têm o nível de usuário perito ou engenheiro, o qual permite acesso total às interfaces de comunicação e programação do controlador, permitindo até alterações dos elementos sensores do robô. O nível de usuário operador, na maioria dos robôs industriais, é o mais limitado quanto ao acesso sobre o controlador. Ao trabalharmos com um fabricante desconhecido, devemos consultar o manual técnico, com a intenção de veri�car os níveis de usuários existentes no robô em questão e quais são as permissões de cada nível. Ao considerar uma aplicação de seleção de posição manual, veri�ca-se que o robô pode estar habilitado para abastecer ou desabastecer (Pick In Place), sendo que a chave conectada à entrada quatro do controlador, ao ser acionada, habilita o robô para abastecimento e, ao estar desacionada, habilita o robô para desabastecimento. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 20/58 Assim, no desabastecimento, o robô deverá partir de HOME, pegar a peça da posição correspondente ao botão que for acionado (independentemente da ordem), depositá-la na rampa e retornar para HOME. De forma semelhante, no abastecimento, o robô deverá partir de HOME, pegar a peça na rampa, depositar na posição correspondente ao botão que for acionado (independentemente da ordem) e retornar para HOME. As trajetórias de pegar as peças em cada uma das três posições – e a trajetória de depositar as peças na rampa – deverão ser subprogramas. Abertura e fechamento da garra pneumática devem ser subprogramas. Deverá ter 3 botões de seleção, um para cada posição do palete. Ao acionar um dos botões, um LED deverá ser ligado e permanecer ligado até o robô soltar a peça na rampa. Deverá ter um LED para cada botão. Deverá ter um programa principal (MASTER) para gerenciar todo o processo. Os dois modos devem rodar no mesmo programa MASTER, apenas tendo a chave como seleção entre eles. Diante do exposto, destacam-se as entradas e saídas do sistema, conforme a relação a seguir. Entradas 1 2 3 4 Botão para selecionar posição 1. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 21/58 Saídas Assim, teremos o seguinte �uxograma representativo do processo: 1 2 3 LED para indicar “posição 1 selecionada”. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 22/58 Figura 4.7 - Fluxograma representativo Fonte: Elaborada pelo autor. #PraCegoVer: a �gura apresenta uma um �uxograma cujas conexões são realizadas na cor preta, e os elementos, na cor amarela. O �uxograma apresenta o funcionamento de um robô que, partindo da posição HOME, elemento de início, veri�ca a existência de um sinal externo de um botão, elemento de decisão. Caso não seja acionado, ele direciona o robô para o ciclo de desabastecimento; se o botão tiver sido pressionado, o programa direciona o robô para o ciclo de abastecimento. No ciclo de desabastecimento, são veri�cadas as entradas, elementos de decisão, representadas pelos botões 1, 2 e 3. A entrada acionada direciona o programa para o subprograma de pegar a peça na posição desejada e depositar na rampa. No ciclo de abastecimento, são veri�cadas as entradas, elementos de decisão, representadas pelos botões 1, 2 e 3. A entrada acionada direciona o programa para o subprograma de pegar a peça na rampa e depositar na posição desejada. Dessa forma, se formos realizar a programação do sistema apresentado, são necessários vários programas para o desenvolvimento de, ao menos, onze programas, sendo: um programa principal (MASTER); dois subprogramas: um para abastecimento, e outro para desabastecimento; três subprogramas para 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 23/58 abastecer em cada posição; e três subprogramas para desabastecer em cada posição. Além desses dois subprogramas, deverá ter um para abertura da garra, e outro para o fechamento da garra pneumática. Sintetizando a estrutura para um robô Motoman FS100, teremos uma estrutura de programação, conforme a mostrada na sequência. MASTER *INI IFTHEN IN#(4)=ON CALL JOB: ABASTECER ENDIF IFTHEN IN#(4)=OFF CALL JOB: DESABASTECER ENDIF JUMP *INI ABASTECER IFTHEN IN#(1)=ON CALL JOB: PEGA_RAMPA_E_DEPOSITA_POS1 ENDIF IFTHEN IN#(2)=ON CALL JOB: PEGA_RAMPA_E_DEPOSITA_POS2 ENDIF 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 24/58 IFTHEN IN#(3)=ON CALL JOB: PEGA_RAMPA_E_DEPOSITA_POS3 ENDIF DESABASTECER IFTHEN IN#(1)=ON CALL JOB: PEGA_POS1_E_DEPOSITA_RAMPA ENDIF IFTHEN IN#(2)=ON CALL JOB: PEGA_POS2_E_DEPOSITA_RAMPA ENDIF IFTHEN IN#(3)=ON CALL JOB: PEGA_POS3_E_DEPOSITA_RAMPA ENDIF PEGA_RAMPA_E_DEPOSITA_POS1 CALL JOB: PEGA_RAMPA ... MOVIMENTOS DEPOSITAR PÇ NA POS 1 PEGA_POS1_E_DEPOSITA_RAMPA ... MOVIMENTOS PEGAR PÇ NA POS 1 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 25/58 .... CALL JOB: DEPOSITA_RAMPA Da mesma forma, realizando a aplicação a partir de um robô Nachi, teríamos a seguinte base de estrutura para a programação: MASTER *[INI] IF I4=1 CALLP [3200] (abastecer) ENDIF IF I4=0 CALLP [3201] (desabastecer) ENDIF GOTO [*INI] ABASTECER IF I1=1 CALLP [3202] (pega rampa e deposita pos1) ENDIF IF I2=1 CALLP [3203] (pega rampa e deposita pos2) 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 26/58 ENDIF IF I3=1 CALLP [3204] (pega rampa e deposita pos3) ENDIF DESABASTECER IF I1=1 CALLP [3205] (pega pos1 e deposita rampa) ENDIF IF I2=1 CALLP [3206] (pega pos2 e deposita rampa) ENDIF IF I3=1 CALLP [3207] (pega pos3 e deposita rampa) ENDIF PEGA_RAMPA_E_DEPOSITA_POS1 CALLP [3208] (pega rampa) ... MOVIMENTOS DEPOSITAR PÇ NA POS 1 PEGA_POS1_E_DEPOSITA_RAMPA ... 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 27/58 MOVIMENTOS PEGAR PÇ NA POS 1 .... CALLP [3209] (deposita rampa) Nos robôs da fabricante alemã Kuka, analisando a mesma aplicação, teríamos a seguinte estrutura para os principais programas: MASTER INI: IF $IN[4]==TRUE THEN ABASTECER ( ) ENDIF IF $IN[4]==FALSE THEN DESABASTECER ( ) ENDIF GOTO INI ABASTECER IF $IN[1]==TRUE THEN PEGA_RAMPA_E_DEPOSITA_POS1 ( ) ENDIF IF $IN[2]==TRUE THEN PEGA_RAMPA_E_DEPOSITA_POS2 ( ) ENDIF IF $IN[3]==TRUE THEN PEGA_RAMPA_E_DEPOSITA_POS3 ( ) ENDIF DESABASTECER IF $IN[1]==TRUE THEN PEGA_POS1_E_DEPOSITA_RAMPA ( ) ENDIF 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d…28/58 IF $IN[2]==TRUE THEN PEGA_POS2_E_DEPOSITA_RAMPA ( ) ENDIF IF $IN[3]==TRUE THEN PEGA_POS3_E_DEPOSITA_RAMPA ( ) ENDIF PEGA_RAMPA_E_DEPOSITA_POS1 PEGA_RAMPA ( ) ... MOVIMENTOS DEPOSITAR PÇ NA POS 1 .... PEGA_POS1_E_DEPOSITA_RAMPA ... MOVIMENTOS PEGAR PÇ NA POS 1 .... DEPOSITA_RAMPA ( ) Ao analisar a programação, sendo esta desenvolvida em um robô com controlador mais antigo, em que não temos a programação estruturada, e sim apenas as funções próprias, utilizando o robô iMate 200, da japonesa Fanuc, teremos os seguintes programas-base: MASTER LBL[1] IF DI[104]=ON, CALL ABASTECER IF DI[104]=OFF, CALL DESABASTECER JUMP LBL[1] 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 29/58 ABASTECER IF DI[101]=ON, CALL PEGA_RAMPA_E_DEPOSITA_POS1 IF DI[102]=ON, CALL PEGA_RAMPA_E_DEPOSITA_POS2 IF DI[103]=ON, CALL PEGA_RAMPA_E_DEPOSITA_POS3 DESABASTECER IF DI[101]=ON, CALL PEGA_POS1_E_DEPOSITA_RAMPA IF DI[102]=ON, CALL PEGA_POS2_E_DEPOSITA_RAMPA IF DI[103]=ON, CALL PEGA_POS3_E_DEPOSITA_RAMPA PEGA_RAMPA_E_DEPOSITA_POS1 CALL PEGA_RAMPA ... MOVIMENTOS DEPOSITAR PÇ NA POS 1 .... PEGA_POS1_E_DEPOSITA_RAMPA ... MOVIMENTOS PEGAR PÇ NA POS 1 .... CALL DEPOSITA_RAMPA Ao analisar outro controlador antigo de robô industrial, referente ao XRC da Yaskawa, temos a seguinte programação para a mesma aplicação: MASTER 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 30/58 *INI CALL JOB: ABASTECER IF IN#(4)=ON CALL JOB: DESABASTECER IF IN#(4)=OFF JUMP *INI ABASTECER CALL JOB: PEGA_RAMPA_E_DEPOSITA_POS1 IF IN#(1)=ON CALL JOB: PEGA_RAMPA_E_DEPOSITA_POS2 IF IN#(2)=ON CALL JOB: PEGA_RAMPA_E_DEPOSITA_POS3 IF IN#(3)=ON DESABASTECER CALL JOB: PEGA_POS1_E_DEPOSITA_RAMPA IF IN#(1)=ON CALL JOB: PEGA_POS2_E_DEPOSITA_RAMPA IF IN#(2)=ON CALL JOB: PEGA_POS3_E_DEPOSITA_RAMPA IF IN#(3)=ON] PEGA_RAMPA_E_DEPOSITA_POS1 CALL JOB: PEGA_RAMPA ... MOVIMENTOS DEPOSITAR PÇ NA POS 1 .... PEGA_POS1_E_DEPOSITA_RAMPA ... MOVIMENTOS PEGAR PÇ NA POS 1 .... CALL JOB: DEPOSITA_RAMPA A partir da análise dos algoritmos de diferentes robôs, fabricantes e gerações, é possível observar que as estruturas de programação são muito semelhantes para uma mesma aplicação. A propósito, diversas funções têm equivalência, como a função de chamada de subprogramas, sendo ela: “CALL JOB: Nome do programa”, para os robôs Motoman; “CALLP [número do 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 31/58 programa]”, para os robôs Nachi; “Nome do programa ()”, para os robôs Kuka; e “CALL Nome do programa”, para os robôs Fanuc. Da mesma forma, as funções de comparação quanto às entradas (botões) do sistema e saltos incondicionais (JUMP ou GOTO) apresentam os mesmos princípios de funcionamento. Ao serem desenvolvidos subprogramas, podemos reutilizá-los em outra lógica de programação futura; assim, podemos, em um sistema produtivo, trabalhar com os processos �xos, como subprogramas, e os processos variáveis, como programas principais. Isso gera uma �exibilidade maior no aspecto do sistema produtivo a partir da programação. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 32/58 praticar Vamos Praticar Existem diversos sistemas de seleção na indústria, desde a veri�cação de conformidades de peças até sistemas de separação de resíduos. Mesmo com a evolução diária das tecnologias, alguns sistemas de seleção utilizam o ser humano como elemento sensor, visto que alguns sentidos do corpo, como visão, audição e tato, são muito complexos de serem encontrados em sensores industriais. Analisemos o sistema de seleção manual de cor, representado a seguir. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 33/58 Figura - Sistema de seleção de cor manual Fonte: cheskyw / 123RF. #PraCegoVer: a �gura apresenta um braço articulado de seis graus de liberdade, na cor laranja, apoiado sobre uma base cilíndrica de cor cinza e com uma garra de cor prateada alocada na �ange do robô. Ademais, a �gura mostra a trajetória do robô por linhas tracejadas em vermelho, indicando, com uma seta, a ordem dos movimentos, onde movimentos aéreos sem contato com a peça são realizados (com movimento ponto a ponto) e onde há contato para pegar a peça e soltá-la (movimentos lineares). As peças são retiradas de uma rampa, à esquerda do robô, e podem ser depositadas em duas caixas retangulares de cor amarela, que estão na frente do robô, sendo, da esquerda para a direita, a caixa de peças pretas, seguida da caixa de peças vermelhas. O robô irá pegar a peça na rampa e parar em um ponto intermediário para aguardar o destino de acordo com a cor da peça. Logo, o robô deverá depositar as peças nas caixas respectivas ao botão que for acionado. Requisitos O robô deverá pegar as peças na rampa somente enquanto a chave estiver na posição ligada. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 34/58 Deverá ter dois botões de seleção, um para cada cor de peça. Deverá ter um LED para cada cor de peça que �que aceso durante a trajetória de depósito, indicando qual cor foi selecionada. Abertura e fechamento da garra deverão ser subprogramas. A trajetória de pegar a peça na rampa e a trajetória de depositar em cada caixa deverão ser subprogramas. Considere as seguintes entradas do controlador do robô: chave para manter o processo em contínuo (Entrada 3); botão para selecionar cor 1 (Entrada 1); botão para selecionar cor 2 (Entrada 2). O funcionamento da programação robô na aplicação descrita deve ser de acordo com o �uxograma a seguir. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 35/58 Figura - Fluxograma do sistema de seleção de cor manual Fonte: Elaborada pelo autor. #PraCegoVer: a �gura apresenta um �uxograma cujas conexões são realizadas na cor preta, e os elementos, na cor amarela. O �uxograma apresenta o funcionamento de um robô que, partindo da posição HOME, elemento de início, veri�ca a existência de um sinal externo de um botão, elemento de decisão. Caso não seja acionado, ele permanece na posição HOME; se o botão tiver sido pressionado, o programa direciona o robô para ir até a peça e retirá-la da rampa. Após a retirada da peça da rampa, dois elementos de decisão, losangos amarelos, veri�cam qual entrada foi acionada: se o botão 1 ou 2. Se o botão 1 foi acionado, o programa é direcionado ao subprograma para depositar a peça na cor 1; se o botão 2 foi acionado, o programa é direcionado ao subprograma para depositar a peça na cor 2. Desenvolva o esquema do programa principal (MASTER) para a aplicação descrita aos dois modelos diferentes dos robôs apresentados no decorrer do material (Kuka, Nachi, Motoman FS100, Fanuc e XRC Motoman). 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 36/58 Uma variável de usuário é um espaço de memória no robô de�nido pelo programador, que pode ser identi�cado por meio de um nome. O conteúdo de uma variável pode ser alterado por um comando de atribuição durante a execução do programa; a partir da utilização de variáveis, é possível realizar operações e armazenar valores, de acordo com Dumba (2017) e Craig (2012). Em geral, cada fabricante de robô chama as variáveis de usuário por um nome diferente. No caso da fabricante alemã KUKA,o nome é propriamente variável usuário e esta deve ser criada no programa. A fabricante chinesa NACHI e a japonesa YASKAWA trabalham, contudo, apenas com variáveis já existentes no controlador do robô. Da mesma forma, os robôs da outra fabricante japonesa, FANUC, têm variáveis de usuário pré-criadas no seu controlador, nessa circunstância, chamadas de registradores. Conforme postula Santos (2015), as variáveis de usuário podem ser classi�cadas como global ou local. A variável global pode ser utilizada em todos os programas do robô, independentemente de onde foi declarada, de forma que todos os programas conseguem acessá-la e modi�cá-la. Já uma variável local pode ser utilizada somente no programa onde ela foi declarada. Os outros programas não conseguem acessá-la, tampouco modi�cá-la. Variáveis na Programação 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 37/58 Realizar operações com as variáveis de usuário permite ao programador criar uma in�nidade de possibilidades e proporcionar autonomia para o robô tomar decisões importantes no processo. Ao analisar uma aplicação de pintura de chapas, veri�camos as orientações na sequência. Assim, teremos um �uxograma sintetizado representando o processo de pintura, conforme apresentado a seguir (Figura 4.8). O robô deverá pulverizar 3 demãos de tinta sobre a chapa com um intervalo de 5s entre as demãos. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 38/58 Figura 4.8 - Fluxograma representativo do processo de pintura Fonte: Elaborada pelo autor. #PraCegoVer: a �gura apresenta uma um �uxograma cujas conexões são realizadas na cor preta, e os elementos, na cor amarela. O �uxograma apresenta o funcionamento de um robô que, partindo da posição HOME, elemento de início, veri�ca a existência de um sinal externo de um botão, elemento de decisão. Caso não seja acionado, ele permanece na posição HOME; se o botão tiver sido pressionado, o programa direciona o robô para executar o programa de PINTURA. Após a realização da PINTURA, um elemento de decisão, losango amarelo, veri�ca a quantidade de demãos de PINTURA realizados com intervalo de cinco segundos. Após serem �nalizados os três ciclos, o robô volta à posição HOME. Nessa aplicação, teremos como entrada apenas o botão de início (START) e, como saídas, a pistola de pintura e o Led indicando a sua �nalização. Nesse caso, serão necessários dois programas: o programa principal (MASTER), que irá gerenciar todo o processo, e um subprograma apenas com a trajetória da pintura a ser realizada. Com o intuito de veri�car a quantidade de demãos de tinta sobre a peça, é necessário utilizar uma variável do tipo inteira correspondente à quantidade 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 39/58 de demãos. Destarte, teremos a estrutura de programa MASTER para a aplicação de pintura utilizando variáveis. Vejamos na sequência. No robô Kuka: DECL INT CONTAGEM (DECLARAÇÃO) INICIO: Posição HOME CONTAGEM = 0 (ZERA CONTAGEM) WAIT FOR ( IN 1 ) (BT. START) RET: PINTURA ( ) (MOVIMENTAÇÃO DA PINTURA) CONTAGEM = CONTAGEM + 1 (INCREMENTO) IF CONTAGEM < 3 THEN WAIT Time= 5 sec GOTO RET ENDIF Posição HOME GOTO INICIO No robô Nachi: *[INICIO] Posição HOME LETVI [V1% , 0] (ZERA CONTAGEM) WAITI [I1] (BOTÃO START) *[RET] CALLP [3200] (MOVIMENTAÇÃO DA PINTURA) ADDVI [V1%, 1] (INCREMENTO) IF V1% < 3 DELAY [5] GOTO *RET ENDIF Posição HOME 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 40/58 GOTO *INICIO No robô Motoman FS 100: *INICIO Posição HOME SET I001 0 (ZERA CONTAGEM) WAIT IN#(1)=ON (BOTÃO START) *RET CALL JOB: PINTURA(MOVIMENTAÇÃO DA PINTURA) INC I001 (INCREMENTO) IF I001 < 3 THEN TIMER T=5.00 JUMP *RET ENDIF Posição HOME JUMP *INICIO No robô Motoman XRC: *INICIO Posição HOME SET I001 0 (ZERA CONTAGEM) WAIT IN#(1)=ON (BOTÃO START) *RET CALL JOB: PINTURA (MOVIMENTAÇÃO DA PINTURA) INC I001 (INCREMENTO) TIMER T=5.00 JUMP *RET IF IOO1 < 3 Posição HOME JUMP *INICIO No robô Fanuc: 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 41/58 LBL [1] Posição HOME R[1] = 0 (ZERA CONTAGEM) WAIT DI [101] = ON (BOTÃO START) LBL [2] CALL PINTURA (MOVIMENTAÇÃO DA PINTURA) R[1] = R[1] + 1 (INCREMENTO) WAIT 5.00 (sec) IF R[1] < 3, JMP LBL [2] Posição HOME JMP LBL [1] A escolha do tipo de variável a ser utilizada na programação de um manipulador robótico depende, diretamente, da proposta de trabalho do robô dentro do sistema, sendo que o robô industrial tem uma capacidade de processamento da programação e um espaço limite de memória, que deve ser respeitado. Conforme o robô é utilizado e novas programações são salvas, por muitas vezes, é necessário deletar programas inutilizados, com o intuito de evitar travamentos. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 42/58 Fonte: Adaptada de Lopes e Freitas (2021). #PraCegoVer: o infográ�co é do tipo estático e contém o seguinte título na parte superior: “Tipos de instruções na programação de robôs industriais”. Logo abaixo, há um esquema, apresentando um retângulo com o texto “Instruções”. Abaixo dele, há uma seta direcionada para baixo. Na sequência, na linha de baixo, o esquema divide-se em seis colunas. Na primeira coluna, temos os seguintes itens, de cima para baixo: “Movimento, IO; PTP; PTP_REL; LIN; LIN_REL; CIRC; CIRC_REL e SPLINE..SPL..ENDSPL”. Na segunda coluna, temos os seguintes itens: “Comandos de registro; $C[#]; $DI[#]; $DO[#]; $PR[#]; $RI[#]; $RO[#]; $T[#]; $T_STOP[#] e $V[#]”. Na terceira coluna, temos os seguintes itens: “Variáveis; BOOL; CHAR; E6AXIS; E6POS; FRAME; INT e REAL”. Na quarta coluna temos os seguintes itens: “Cálculo matemático; ACOS; ASIN; ATAN; ATAN2; COS; SIN e TAN”. Na quinta coluna, temos os seguintes itens: “Funções de controle; FOR....ENDFOR; GOTO; IF....ENDIF; LOOP...ENDLOOP; REPEAT....UNTIL; SWITCH...ENDSHITCH e SWITCH...ENDSHITCH”. Na sexta coluna, temos os seguintes itens: “Simulação; ADDTOOL; SHOW_TOOL; ADDOBJ; SHOW_OBJ; MOVEFLOOR; AXISON e AXISOFF”. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 43/58 Exemplos de Estruturas de Funções de Controle Algumas funções de controle facilitam a descrição da estrutura de programação. Dentre essas funções, podemos destacar as funções FOR, REPEAT, LOOP e WHILE. A função FOR permite a execução de um ciclo em laços, sendo que, nela, é necessário utilizar uma variável previamente declarada, conforme o exemplo a seguir. INT PASSO FOR PASSO=0 TO 4 STEP1 Instruções ENDFOR No exemplo, temos as instruções sendo realizadas em laços ou ciclos, até que a variável PASSO esteja em 4. A função REPEAT permite a execução de um ciclo até um evento predeterminado, sendo que, nela, é necessário utilizar uma variável previamente declarada, conforme o exemplo na sequência. INT PASSO REPEAT Instruções PASSO=PASSO+1 UNTIL PASSO>3 No exemplo, temos as instruções sendo realizadas em ciclos ou laços; a cada ciclo realizado, a variável é atualizada, até que a variável PASSO esteja maior que 3. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d…44/58 A função LOOP permite a execução de um ciclo in�nitamente, sendo que, nessa função, não existe a necessidade de uma variável previamente declarada, conforme o exemplo a seguir. LOOP Instruções ENDLOOP No exemplo, temos as instruções sendo realizadas em ciclos ou laços – in�nitamente, apenas em ciclos sequenciais. A função WHILE permite a execução de um ciclo enquanto uma situação for verdadeira, sendo que, nela, é necessário utilizar uma variável previamente declarada, conforme o exemplo na sequência. INT PASSO WHILE PASSO<4 Instruções PASSO=PASSO+1 ENDWHILE No exemplo, temos as instruções sendo realizadas em ciclos ou laços; a cada execução do WHILE, a variável PASSO é atualizada, enquanto a variável PASSO estiver menor que 4. Conhecimento Teste seus Conhecimentos (Atividade não pontuada) 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 45/58 Leia o excerto a seguir. “Em robótica, geralmente, utilizam-se dois tipos básicos de juntas para compor um par cinemático formado por dois elos adjacentes: junta de rotação ou junta prismática (translação). O uso dessas juntas visa tornar mais simples o processo de montagem e/ou fabricação dos componentes mecânicos que compõem uma junta. Outra vantagem se refere ao controle do movimento relativo entre os elos que depende apenas de uma variável de posição”. ROMANO, V. F.; DUTRA, M. Introdução à robótica industrial. Robótica Industrial: aplicação na indústria de manufatura e de processo. São Paulo: Edgard Blücher, 2002. p. 3. Assinale a alternativa que apresenta corretamente as duas instruções de variáveis de posição existentes nos robôs HIWIN. a) IF e ELSE. b) E6POS e E6TOOL. c) AXISON e AXISOFF. d) E6POS e E6AXIS. e) FRAME e INT. praticar Vamos Praticar O sensor óptico retrorre�exivo consiste em um tipo de sensor que tem um LED emissor, o qual projeta uma luz não visível ao olho humano. Essa luz 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 46/58 re�ete no objeto e retorna para um LED receptor. Dependendo da intensidade e quantidade de luz que retorna ao LED receptor, o sensor aciona sua saída ou não, ao indicar a detecção do objeto, de forma que a cor e o tipo da superfície do objeto interferem, diretamente, na intensidade e quantidade de luz que retorna ao LED receptor. Figura - Sensor óptico difuso re�exivo Fonte: Elaborada pelo autor. #PraCegoVer: a �gura apresenta uma ilustração colorida, representando um sensor difuso re�exivo, em que, à esquerda, temos o sensor detectando uma peça de per�l circular vermelha, na qual o sensor envia um sinal e o recebe retornando da peça, de forma que aciona o sensor. À direita, temos o sensor detectando uma peça de per�l circular preta; o sensor envia um sinal e não o recebe retornando da peça, de modo que não aciona o sensor. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 47/58 Figura - Seleção de cor automática Fonte: cheskyw / 123RF. #PraCegoVer: a �gura apresenta um braço articulado de seis graus de liberdade, na cor laranja, apoiado sobre uma base cilíndrica de cor cinza e com uma garra de cor prateada alocada na �ange do robô. Ademais, a �gura mostra a trajetória do robô por linhas tracejadas em vermelho, indicando, com uma seta, a ordem dos movimentos, onde movimentos aéreos sem contato com a peça são realizados (com movimento ponto a ponto) e onde há contato para pegar a peça e soltá-la (movimentos lineares). As peças são retiradas de uma rampa à esquerda do robô e podem ser depositadas em duas caixas retangulares de cor amarela, que estão na frente do robô, sendo, da esquerda para a direita, a caixa de peças pretas, seguida da caixa de peças vermelhas. Considere estes aspectos: o robô irá pegar a peça na rampa, levar ao sensor para identi�car o tipo da peça e, por �m, depositar na caixa respectiva. É preciso sempre seguir os requisitos; o robô deverá pegar as peças na rampa somente enquanto a chave “ciclo contínuo / único” estiver na posição ligada; 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 48/58 deverá ter um LED para cada tipo de peça que �que aceso desde o momento em que o robô identi�ca o tipo da peça, até o robô soltá- la na caixa correspondente; as trajetórias de pegar a peça e levar ao sensor e as trajetórias de depositar em cada caixa deverão ser subprogramas; programar pontos de aproximação e saída com movimento linear e velocidade baixa ao colocar e retirar a peça da base dos sensores; utilizar um timer (1s) antes de realizar a veri�cação da leitura da peça para estabilizar a leitura do sensor. Considere, também, que o sistema trabalha de acordo com o �uxograma apresentado a seguir. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 49/58 Figura - Fluxograma da seleção de cor automática Fonte: Elaborada pelo autor. #PraCegoVer: a �gura apresenta uma um �uxograma cujas conexões são realizadas na cor preta, e os elementos, na cor amarela. O �uxograma apresenta o funcionamento de um robô que, partindo da posição HOME, elemento de início, veri�ca a existência de um sinal externo de uma chave, elemento de decisão. Caso não seja acionado, ele permanece na posição HOME; se o botão tiver sido pressionado, o programa direciona o robô para executar o programa de PEGAR PEÇA E FAZER LEITURA, por meio do sensor. Após a realização da leitura do sensor, se o sensor óptico ativar a entrada do robô, o programa é direcionado para o subprograma de DEPOSITAR PEÇA CLARA e o �naliza retornando à posição HOME. Caso o sensor óptico não ative a entrada do robô, o programa é direcionado para o subprograma de DEPOSITAR PEÇA ESCURA e o �naliza com o retorno à posição HOME. Ao ter em vista a chave para deixar o ciclo em contínuo ou único correspondente à entrada 3 do controlador e o sensor óptico à entrada 1 do controlador do robô, desenvolva o esquema do programa principal (MASTER) para a aplicação descrita aos dois modelos diferentes dos robôs apresentados no decorrer do material (Kuka, Nachi, Motoman FS100, Fanuc e XRC Motoman). 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 50/58 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 51/58 Material Complementar F I L M E Como funcionam os robôs industriais? | Robôs KUKA Ano: 2020 Comentário: a robótica consiste em uma das tecnologias habilitadoras da Indústria 4.0, conceito que surgiu, em 2012, na Alemanha, e que pretende revolucionar a visão do mundo sobre a indústria produtiva. Neste documentário do canal Reverse Engineering, é possível compreender a importância da robótica, seus fundamentos e tecnologias, além do papel importante na Indústria 4.0. Para conhecer mais sobre o �lme, consulte o trailer disponível em: TRA I LER 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 52/58 L I V R O Robótica Autor: John J. Craig Editora: Pearson Capítulo: 13 – Sistemas de programação off-line Ano: 2012 ISBN: 978-85-8143-128-4 Comentário: o livro apresenta diversos conceitos importantes para a programação off-line para robôs industriais, como funções de simulação, montagem de ambiente de simulação virtual 3D, modelagem física dos sistemas, emulação cinemática e emulação dinâmica. Por �m, abordam-se a simulação de sensores e os sinais internos do controlador para a de�nição de um ambiente que permita a simulaçãode um sistema de multiprocessos. A obra está disponível na Biblioteca Virtual. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 53/58 Conclusão Caro(a) estudante, neste material, você pôde ver as principais características da programação de robôs industriais, a partir do estudo das linguagens de programação de alguns dos principais fabricantes mundiais de robôs industriais. Veri�camos a importância do estudo das estruturas de programação para cada robô industrial, a importância da consulta aos manuais disponibilizados por cada fabricante e como as ferramentas manuais, por exemplo, o mapa de pontos e o �uxograma, podem nos auxiliar no planejamento de uma programação para robôs industriais. Atualmente, a maior parte dos manipuladores robóticos já tem suas funções de programação textual de�nidas e estruturadas, no entanto é importante compreender que controladores mais antigos não expressam funções de programação estruturadas, o que exige, por parte do programador, a utilização de chamadas para subprogramas. Veri�camos a importância da utilização e aplicação de sinais de entrada e saída com o intuito de que o controlador do robô consiga realizar o controle de processos com maior precisão e velocidade. Por �m, cabe destacar que os estudos relacionados à programação de robôs industriais, ainda que muito desenvolvidos atualmente, podem ser elaborados no desenvolvimento de novos manipuladores. Usualmente, na programação de robôs industriais, não são utilizados algoritmos de inteligência arti�cial e programação orientada a objeto; porém, com o advento do conceito de Indústria 4.0, estão sendo desenvolvidas estruturas para a programação de robôs industriais mais complexas, com uma quantidade maior de bibliotecas e, assim, uma maior abstração de funções, além de uma maior capacidade de processamento. Até a próxima! 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 54/58 Referên cias ABREU, P. Robótica industrial: aplicações industriais de robôs. 2002. 29 f. Dissertação (Mestrado em Automação, Instrumentação e Controlo) – Universidade do Porto, Porto, 2002. Disponível em: http://paginas.fe.up.pt/~aml /maic_�les/aplicacoes.pdf. Acesso em: 20 maio 2022. ALCIATORE, D. G.; HISTAND, M. B. Introdução à mecatrônica e aos sistemas de medições. 4. ed. Porto Alegre: AMGH, 2014. (Disponível na Minha Biblioteca). ANTUNES, J. P. M. D. Programação de robôs industriais em operações de maquinagem. 2015. 98 f. Dissertação (Mestrado Integrado em Engenharia Mecânica) – Universidade do Porto, Porto, 2015. Disponível em: https://repositorio- aberto.up.pt/bitstream/10216/80838/2/36839.pdf. Acesso em: 20 maio 2022. COMO funcionam os robôs industriais? | Robôs KUKA. [S. I.: s. n.], 2021. 1 vídeo (13 min.). Publicado pelo canal Reverse Engineering. Disponível em: https://www.youtube.com/watch?v=pSdjIQxII2s&t=28s. Acesso em: 21 maio 2022. http://paginas.fe.up.pt/~aml/maic_files/aplicacoes.pdf https://repositorio-aberto.up.pt/bitstream/10216/80838/2/36839.pdf https://www.youtube.com/watch?v=pSdjIQxII2s&t=28s 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 55/58 CRAIG, J. J. Robótica. [S. l.]: Pearson, 2012. (E-book). (Disponível na Biblioteca Virtual). DUMBA, R. Braço robótico. In: DUMBA, R. Robótica industrial. São Paulo: Uniban Automação, 2017. p. 1-24. HENRIQUES, R. V. B. Programação e simulação de robôs. In: ROMANO, V. F. et al. (org.). Robótica industrial: aplicação na indústria de manufatura e de processos. São Paulo: Edgard Blücher, 2002. ISO – INTERNATIONAL ORGANIZATION FOR STANDARDIZATION. ISO/TR 10562. Manipulating industrial robots – Intermediate Code for Robots (ICR). [S. I.]: ISO, 1995. LOPES, J. S. B.; FREITAS, J. C. de A. Robótica industrial: conhecendo o simulador HRSS. Parnamirim: Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte, 2021. MADALENO, P. D. T. Simulação e programação off-line de robôs industriais afectos a tarefas de lixagem. 2011. 89 f. Tese (Doutorado em Engenharia Electrotécnica) – Instituto Superior de Engenharia do Porto, Porto, 2011. MOUSSA, S. Robótica industrial: mecatrônica. São Paulo: Moussa Simhon, 2011. ROMANO, V. F.; DUTRA, M. Introdução à robótica industrial. Robótica Industrial: aplicação na indústria de manufatura e de processo. São Paulo: Edgard Blücher, 2002. p. 1-19. SANTOS, W. E. dos. Robótica industrial: fundamentos, tecnologias, programação e simulação. São Paulo: Érica, 2015. (Disponível na Biblioteca Virtual). SOUZA, A. C. de et al. Geração automática de trajetórias em robôs colaborativos. 2021. 63 f. Trabalho de Conclusão de Curso (Graduação em Engenharia de Controle e Automação e Computação) – Universidade Federal de Santa Catarina, Blumenau, 2021. 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 56/58 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 57/58 23/10/2022 18:43 E-book https://student.ulife.com.br/ContentPlayer/Index?lc=YyY5AGN2jrB%2foPqF%2bC7MCA%3d%3d&l=53dvfNRpEsi%2bYRobnkg%2f7g%3d%3d… 58/58
Compartilhar