IRC5 Programação Básica IRC5 – Operação e Programação Básica © ABB Inc. -1 IRC5 Programming Basic IRC5 Programação Programming Básica Basic Bem-vindos! © ABB Inc. -2 Sejam Bem-vindos ao primeiro Centro de Treinamento ABB em Automação e Robótica da América Latina! IRC5 Programação Programming Básica Basic Conteúdo © ABB Inc. -3 Introdução 4 Informações Gerais do Curso 13 Objetivos do Curso 15 Robótica - Tipo de Robôs e Aplicações 16 Segurança 20 Descrição do Sistema 40 Mensagem de Eventos 61 Fundamentos da Programação 74 Backup and Restore 97 TCP (Ponto Central da Ferramenta) 115 Robot Studio Online 131 Programação Estruturada 141 Controlando o Fluxo do Programa 164 Trabalhando com numerais 172 Comunicando com o Operador 179 Outras Instruções 189 Work Objects 198 Programando com OffSets 206 Calibração e Sincronismo 214 Exercícios 225 Resumo - Instruções / Funções de Programa 242 Contatos ABB 243 Avaliação do Curso 245 IRC5 Programação Programming Básica Basic © ABB Inc. -4 Introdução Apresentações ABB Robótica ABB Treinamento ABB IRC5 Programação Programming Básica Basic O mundo ABB © ABB Inc. -5 Líder global em tecnologias de potência e automação Posições de liderança de mercado nos principais negócios Cerca de 117.000 funcionários em mais de 100 países Formada em 1988, com a fusão de empresas de engenharia suíça e sueca Empresas precursoras fundadas em 1883 e 1891 Empresa de capital aberto com sede na Suíça IRC5 Programação Programming Básica Basic © ABB Inc. -6 ABB - Visão Como uma das empresas líderes mundiais em engenharia, ajudamos nossos clientes a utilizarem energia elétrica de forma eficiente, aumentarem sua produtividade industrial e diminuírem seu impacto ambiental de forma sustentável. IRC5 Programação Programming Básica Basic ABB - Portifólio Como estamos organizados 5 Divisões Globais Produtos de Potência Sistemas de Potência Discrete Automation and Motion Produtos de Baixa Tensão $11.2 bilhões 33.500 funcionários $6.5 bilhões 16.000 funcionários $5.4 bilhões 18.000 funcionários $4.1 bilhões 19.000 funcionários Automação de Processos $7.8 bilhões 28.000 funcionários Faturamento em 2009 (US$; valores pró-forma para as divisões de automação) Portfólio ABB: © ABB Inc. -7 Equipamentos elétricos, automação, controle e instrumentação para geração de energia e processos industriais Transmissão de energia Soluções de distribuição Produtos de baixatensão Robótica e sistemas robotizados IRC5 Programação Programming Básica Basic ABB Energia e automação estão em torno de nós Você encontrará a tecnologia ABB... funcionando em órbita ao redor do planeta, cruzando oceanos e no fundo do mar, nos campos onde crescem nossas safras e nas embalagens dos nossos alimentos, © ABB Inc. -8 nos trens em que viajamos e nas instalações que processam nossa água, nas usinas que geram nossa energia e em nossas casas. IRC5 Programação Programming Básica Basic ABB - Inovação Pioneira em tecnologia desde 1883 Os fundadores Turbochargers Turbina a vapor 1900 1920 1930 1940 Motor sem redutor Painéis isolados a gás Robôs industriais Turbina a gás HVDC 1950 1960 1970 1980 © ABB Inc. -9 Acionamentos e inversores de frequência 1990 Sistemas de controle distribuído Sistemas de propulsão elétrica 2000 Ultra-alta tensão IRC5 Programação Programming Básica Basic ABB Inovação, paixão e diversidade são as marcas da ABB © ABB Inc. -10 "A ABB é uma equipe dinâmica e multicultural distribuída pelo planeta, trabalhando em um mundo fascinante de alta tecnologia. Nosso portfólio é amplo, mas os benefícios são claros: ajudamos no fornecimento confiável de energia e no aumento da produtividade, ao mesmo tempo em que diminuímos o impacto ambiental." Joe Hogan, CEO IRC5 Programação Programming Básica Basic © ABB Inc. -11 Robótica ABB Robô Produto Robô Automação Robô Serviços Treinamentos Serviços de Campo Peças de Reposição Retrofit e Reparos Projetos de Melhoria Contratos de Manutenção IRC5 Programação Programming Básica Basic Treinamento ABB Centro de Treinamento Osasco – SP Curitiba – PR Treinamentos no cliente Escopos dos Treinamentos © ABB Inc. -12 Centro de Treinamentos na Região Sudeste e Sul Treinamentos Padrão Op e Programação Básica IRC5 e S4 Programação Avançada IRC5 e S4 Op e Manutenção Mecânica IRC5 e S4 Op e Manutenção Elétrica IRC5 e S4 Programação Off-Line via Software de simulação Virtual IRC5 e S4 Treinamentos Personalizado conforme necessidade do cliente IRC5 Programação Programming Básica Basic Informações Gerais do Curso Regulamentos © ABB Inc. -13 Almoço: No horário do almoço, as salas ficarão fechadas. O almoço já está incluso no treinamento,caso deseje almoçar fora, a região oferece outras opções. Durante as aulas: No interior das salas de aula e hall do ABBI, não é permitido fumar, existe uma área externa reservada para fumantes, contamos com sua colaboração. Para evitar interrupções e distrações, bem como incômodos aos outros alunos, o uso de celulares e pagers devem ser evitados durante as aulas. Caso seja extremamente necessário, manter o aparelho celular/pager ligado, deixe-o no modo vibra-call. Visando a qualidade e higiene, nossos sanitários constantemente são vistoriados e limpos. Por este motivo, temos sanitários disponíveis no andar superior também. Guarda do Material Didático: Cada aluno é responsável por seu material de estudo (Kit do Estudante) e pertences pessoais, não cabendo a ABB a responsabilidade por perda ou roubo destes materiais. Recomendamos aos alunos que ao término do curso, levem seu material consigo, pois a ABB não fará a guarda do mesmo. Coffee-breaks: Durante os intervalos será servido um coffee-break no hall do ABBI térreo. Por favor, não leve alimentos e bebidas para as salas de aula e laboratórios, contribuindo desta forma, para a boa conservação do local. Telefones: Estará disponível um ramal para efetuar ligações externas. Gentileza se informar com o instrutor sobre o procedimento. Estacionamento: A Utilização será orientada na Portaria. IRC5 Programação Programming Básica Basic Informações Gerais do Curso Perfil do Aluno: Operadores, técnicos e engenheiros que irão atuar na operação e/ou desenvolvimento de programas robotizados. Duração: 4 dias. (Carga Horária Total de 28 Horas). Horários: 08:30h Início de Aula 10:15 - 10:30h Coffee-break 12:45 – 13:45h Almoço 15:15 – 15:30h Coffee-break 16:30h Final da Aula . © ABB Inc. -14 Bom Curso!!! IRC5 Programação Programming Básica Basic Objetivos do Curso O objetivo deste treinamento é ensinar os princípios básicos de operação com o robô, apresentando de maneira simples e direta os elementos necessários para operadores, técnicos e engenheiros poderem manusear e operacionalizar uma célula de robô em produção, bem como criar, interpretar, efetuar alterações/correções em programas simples, operacionalizando uma célula robotizada. Ao concluir o curso o aluno estará apto a: © ABB Inc. -15 Operar o robô e seus programas com segurança nos seus diversos modos de operação. Interpletar e responder eventos do controlador. Compreender conceitos básicos de Calibração/Sincronismo. Compreender o sistema de Coordenadas juntamente com TCP e WorkObject. Criar, Editar e Analisar programas básicos. Utilizar instruções de movimentação nos programas. Utilizar instruções de Controle de Fluxo nos programas. Utilizar instruções Matemáticas nos programas. Utilizar instruções de I/O nos programas. Utilizar instruções de Interface nos programas. Utilizar instruções de tempo nos programas. Realizar Backup e Restaurar programas. IRC5 Programação Básica Robótica Tipo de Robôs e Aplicações IRC5 Programming Basic IRC5 © ABB Inc. -16 Programação Básica IRC5 Programação Programming Básica Basic © ABB Inc. -17 Tipo de Robôs Robôs Industriais Androide Scara FlexPicker IRC5 Programação Programming Básica Basic © ABB Inc. -18 Aplicações Robotizadas Manipulação Soldagem MigMag Soldagem à Ponto Pintura Lavagem Cola Usinagem Etc… IRC5 Programação Programming Básica Basic © ABB Inc. -19 Vantagens com a Automação Robotizada Segurança Repetibilidade Qualidade Produtividade Competitividade IRC5 Programação Básica Segurança IRC5 Programming Basic IRC5 © ABB Inc. -20 Programação Básica IRC5 Programação Programming Básica Basic © ABB Inc. -21 Introdução O Aluno deve conhecer e entender os procedimentos de segurança descritos no Manual do Operador e Manual do Produto. Adicionalmente as informações de segurança que serão passadas pelo Instrutor, o aluno deverá observar os procedimentos de segurança descrito nos manuais. Compreender Segurança e seus Procedimentos no trabalho com robôs industriais é uma premissa deste treinamento. IRC5 Programação Programming Básica Basic Risco de Acidentes Falha Humana Reparo Mudança de Programa Teste © ABB Inc. -22 Sempre evite a área de risco! IRC5 Programação Programming Básica Basic Travamento (Lock Out) © ABB Inc. -23 Utilize dispositivo de travamento para fontes de energia. IRC5 Programação Programming Básica Basic Recursos de Segurança ABB Parada de Emergência (ES) Modo de Operação Auto Manual < 250 mm/s Manual 100% Dispositivo de Segurança em Manual (Enabling device / Dead mans grip) Dispositivo de Segurança em Manual 100% (Hold-to-run) Cadeia de Segurança (Safeguard stop/ Run Chain) (Auto and Manual) © ABB Inc. -24 Limite Área de Trabalho IRC5 Programação Programming Básica Basic © ABB Inc. -25 Segurança – regulamentos Os robôs ABB cumprem as exigências requeridas na ISO 10218, Jan 1992, segurança de robôs Industriais. Os mesmos também cumprem exigências da ANSI/RIA 15.06-1999. Definição de Segurança função/regulamento: Emergency stop – IEC 204-1, 10.7 Enabling device – ISO 11161, 3.4 Safeguard – ISO 10218 (EN 775), 6.4.3 Reduced speed – ISO 10218 (EN 775), 3.2.17 Interlock – ISO 10218 (EN 775), 3.2.8 Hold to run – ISO 10218 (EN 775), 3.2.7 IRC5 Programação Programming Básica Basic © ABB Inc. -26 Parada de Emergência (Emergency Stop) Os botões de emergência estão localizados no FlexPendant e no Módulo de Controle padrão. Pode-se adicionar botões de Emergência na célula robotizada bastando conectá-los a Cadeia de Segurança do robô (Run Chain). Para reset das falhas de Emergência o botão “Motors On” deverá ser pressionado. IRC5 Programação Programming Básica Basic Modos de Operação Automático © ABB Inc. -27 Modo de Produção (sem limite de velocidade) Manual < 250 mm/s – velocidade máx. 250 mm/s 100 % – Opcional. Robô pode ser testado sem limitação de velocidade. IRC5 Programação Programming Básica Basic © ABB Inc. -28 Enabling Device (Dead Mans Grip) O botão “Enabling device” possui três estágios (posições). Para ativação dos motores o botão precisa necessáriamente estar na posição intermediária. Os movimentos do robô irão parar imediatamente caso o botão seja solto ou pressionado até o final. Enabling device IRC5 Programação Programming Básica Basic Hold-to-Run Opcional (esta função poderá ser utilizada somente no modo manual 100%). No modo de operação manual 100% os motores só serão ativados ao pressionar simultaneamente os botões “Enabling device” e “Hold-to-Run”. © ABB Inc. -29 Enabling device Hold-to-run buttons (for left or right hand) IRC5 Programação Programming Básica Basic Cadeia de Segurança (Safeguard Stop/ Run Chain) As conecções da Cadeia de Segurança (Run Chain) possibilita o intertravamento de equipamentos externos como portas, curtinas de luz, Tapete de Segurança, etc. Existem duas categorias de Cadeia de segurança: © ABB Inc. -30 Manual – A parada de segurança é ativada por qualquer um dos Elos de Segurança com exceção ao “AutoStop” (Emergency Stop, General Stop, Superior Stop) Auto – A parada de segurança é ativada quando o controlador opera no modo automático (Auto Stop) É possível configurar um retardo para atuação da Cadeia de Segurança (Soft Stop). O robô irá parar aproximadamente 1 segundo após acionamento da Cadeia de Segurança sem desviar da trajetória original do programa, isso ocorre devido a um retardo na desabilitação do “Motors On” IRC5 Programação Programming Básica Basic Limitando a Área de trabalho (Workspace) © ABB Inc. -31 Para evitar riscos de colisão entre o robô e equipamentos dentro da área de trabalho do robô, por exemplo o fechamento de segurança, A área de trabalho do robô (Workspace) pode ser limitada: Todos eixos podem ser limitados via software Os eixos 1-3 podem ser limitados mecanicamente através de batentes mecânicos e chaves fimde-curso (Limit Switches) IRC5 Programação Programming Básica Basic © ABB Inc. -32 Segurança – Ferramentas de Manipulação Toda ferramenta de manipulação (Garras -Grip Devices) deveria ser projetada para não soltar a peça em caso pane. Ex.: Falta de alimentação O projeto deverá possibilitar liberação da peça manualmente IRC5 Programação Programming Básica Basic Segurança - Eletricidade Alta tensão de alimentação nos painéis de controle e manipulador Módulo de controle (Control Module) © ABB Inc. -33 Alimentação da Fonte (Power supply) – 230 VAC Outros equipamentos do usuário (Customer equipment) – … Módulo de Drives (Drive Module) Alimentação da Rede (Power Source) – 480 VAC Alimentação da Fonte (Power supply) – 230 VAC Alimentação para motores – 370VDC até 700 VDC IRC5 Programação Programming Básica Basic © ABB Inc. -34 Segurança – Liberando Freios Os freios dos motores do robô podem ser liberados manualmente Antes de liberar o freio, certifique-se que o braço do robô esteja apoiado a fim de não provocar acidentes envolvendo pessoas ou equipamentos IRC5 Programação Programming Básica Basic © ABB Inc. -35 Segurança Pessoal Controle de acesso a Área de Trabalho do robô Posicionando adequadamente os dispositivos que compõem a célula, em função da Área de Trabalho do robô (Work space), pode-se minimizará o risco de contato pessoal com o manipulador IRC5 Programação Programming Básica Basic © ABB Inc. -36 Procedimentos de Segurança ABB IRC5 Programação Programming Básica Basic © ABB Inc. -37 Procedimentos de Segurança ABB IRC5 Programação Programming Básica Basic © ABB Inc. -38 Procedimentos de Segurança ABB IRC5 Programação Programming Básica Basic © ABB Inc. -39 Procedimentos de Segurança ABB ABB - Osasco IRC5 Programação Básica Descrição do Sistema IRC5 © ABB Inc. -40 Programação Básica IRC5 Programação Programming Básica Basic © ABB Inc. -41 Sistema do Robô Controlador IRC5 Manipulador IRB6600 IRC5 Programação Programming Básica Basic Controlador IRC5 FlexPendant Robot Studio Online Chave Geral Módulo de Controle (Control Module) © ABB Inc. -42 Módulo de Acionamento (Drive Module) IRC5 Programação Programming Básica Basic Controlador Flexivel DCX Chave Geral E-Stop Motors On Chave Modo Op. Run Chain Status Porta USB Porta Ethernet © ABB Inc. -43 Horímetro IRC5 Programação Programming Básica Basic © ABB Inc. -44 Exemplo de Robô Industrial – IRB 6600 Manipulator IRB6600 IRC5 Programação Programming Básica Basic © ABB Inc. -45 Movimentos do robô de 6 eixos IRC5 Programação Programming Básica Basic © ABB Inc. -46 Exemplo de Robô Industrial – IRB 140 IRC5 Programação Programming Básica Basic © ABB Inc. -47 Movimentos do robô de 6 eixos IRC5 Programação Programming Básica Basic IRC5 – FlexPendant Tela Colorida ”Touch Screen” 4 Teclas Programáveis © ABB Inc. -48 Joystick 3-direções 4 Teclas para rodar programa Start Passo a Passo (frente/trás) Stop IRC5 Programação Programming Básica Basic IRC5 – FlexPendant © ABB Inc. -49 ABB Menu Main menu Atalho de Janelas abertas (semelhante ao Windows) Barra de Eventos (Status bar) Tecla de Atalho (Quickset or “COG” Menu) IRC5 Programação Programming Básica Basic © ABB Inc. -50 Menu da Tecla de Atalho (Quickset or COG) IRC5 Programação Programming Básica Basic © ABB Inc. -51 Movimentando o robô Para a figura acima, considera-se que o operador encontra-se em frente ao robô IRC5 Programação Programming Básica Basic Movimentando o robô +3 -2 +4 -4 +4 -4 -6 +6 -3 -5 -2 +Z Z Y +Y -X -X © ABB Inc. -52 -6 +1 +1 +3 +5 +5 -1 -1 +6 -3 +2 +2 -5 +Y -Y +Z -Z +X +Y -Y +X -Z +Z +X X IRC5 Programação Programming Básica Basic Coordenadas de Sistema TCPZ Y X Ferramenta (Tool coordinates) Z Y Z X Base (Base coordinates) Z Y Y X © ABB Inc. -53 Mundial (World coordinates) Objeto (WorkObject) X IRC5 Programação Programming Básica Basic Regra da Mão Direita +Z +X © ABB Inc. -54 +Y IRC5 Programação Programming Básica Basic IRC5 – FlexPendant © ABB Inc. -55 Menu Principal ABB IRC5 Programação Programming Básica Basic IRC5 – FlexPendant Entradas e Saídas (I/O Window). © ABB Inc. -56 Output On Output Off IRC5 Programação Programming Básica Basic IRC5 – FlexPendant © ABB Inc. -57 Janela “Colocação em Movimento” (Jogging) IRC5 Programação Programming Básica Basic Log de Eventos (Handling Events) Quando um problema ou um possível problema ocorre no robô, uma Mensagem de Evento é mostrada e armazenada no Log de Eventos (Event Log). © ABB Inc. -58 Para Limpar o evento pressione “Confirmar”/ “Acknowledge” Se um evento é ignorado a mensagem aparecerá na Barra de Eventos (Status bar). IRC5 Programação Programming Básica Basic © ABB Inc. -59 IRC5 – FlexPendant Habilidade para construir aplicações customizadas com uso de gráficos e controle de informações. Tecnologia Microsoft poderosa com padrões e ferramentas de desenvolvimento. Desenvolvimento OnLine e OffLine através do Virtual IRC5. IRC5 Programação Programming Básica Basic © ABB Inc. -60 IRC5 – FlexPendant Possibilidade de configurar diferentes níveis de acesso para grupos de usuários (User Authentication system Hot Plug – Possibilidade de conectar e desconectar a FlexPendant durante operação Proteção a ambientes severos – IP54 (Projecão dágua / Pó) Múltiplos comprimentos de cabo Tela “Touch Screen”: 7.7 inch 640 x 480 pixels Usuários destros e canhotos Mútiplos Idiomas IRC5 Programação Básica Mensagem de Eventos IRC5 © ABB Inc. -61 Programação Básica IRC5 Programação Programming Básica Basic Introdução I Existem 3 tipos de Mensagem de Eventos: Informação (Information) Ex.: Botão “Hold to run” precisa ser pressionado. Informação de como proceder Alarme (Warning) Ex.: Movimento Manual velocidade 100% selecionado. O operador é informado sobre o risco. Erro (Error) Ex.:: Falha do “Motor On” por Parada de Emergência. © ABB Inc. -62 O sistema não pode operar antes do restabelecimento do estado atual (Emergency Stop). IRC5 Programação Programming Básica Basic Mensagem de Informação © ABB Inc. -63 Ex.: Informação para rodar o programa no modo manual 100%: IRC5 Programação Programming Básica Basic Mensagem de Alarme © ABB Inc. -64 Quando o sistema detecta uma situação que pode causar problemas ou risco de segurança IRC5 Programação Programming Básica Basic Mensagem de Erro Quando o sistema detecta um problema ou possibilidade de problema é gerado uma mensagem de erro com descrição e ação. Ex.: Mensagem “Unacknowledged” é mostrada em vermelho na Barra de Eventos (Status bar). © ABB Inc. -65 “Unacknowledged” Mensagem Não Reconhecida IRC5 Programação Programming Básica Basic Conteúdo das Mensagens de Eventos Uma Mensagem de Eventos consiste em: Descrição Consequências (opcional) Possíveis Causas (opcional) Ação (opcional) © ABB Inc. -66 Pressionar as teclas “setas amarelas” para visualizar todo conteúdo! IRC5 Programação Programming Básica Basic Visualizando Logs de Eventos na FlexPendant Menu Principal – Menu ABB Barra de Eventos – Atalho Pressionar sobre a barra para visualizar os eventos. © ABB Inc. -67 Ou pressionar “Menu ABB” e “Event Log”. IRC5 Programação Programming Básica Basic Log de Eventos (Event Log) © ABB Inc. -68 Ícone Código Título Horário do Registro IRC5 Programação Programming Básica Basic © ABB Inc. -69 Log de Eventos (Event Log) Visualize a lista completa através das setas amarelas Selecione a mensagem para visualização dos detalhes Resolução do Horário de Registro em centésimos de segundo IRC5 Programação Programming Básica Basic Log de Eventos (Event Log) Os Logs são divididos em Tópicos Pressionar ”Exibir” (View) e selecionar o Tópico desejado © ABB Inc. -70 O Tópico ”Comum” (Common) consiste nos últimos Logs que ocorreram IRC5 Programação Programming Básica Basic © ABB Inc. -71 Categoria de Eventos Categoria Núm. do Erro Area___________ Operacional (Operational) 10xxx Falha Operacional (Operational Status) Sistema (System) 20xxx Falha de Sistema (Panel unit) Hardware 30xxx Falha de Placas (Board Failure) Programa (Program) 40xxx Programação (Programming) Movimentos (Motion) 50xxx Problema de Movimento (Movement problem) Operação (Operation) 60xxx Operação FlexPendant (Flex Pendant Handling) E/S (I/O communication) errors 70xxx Falha Comunicação (I/O board communication) Solda à Arco (ArcWeld) 11xxx Processo (Process) Solda à Ponto (SpotWeld) 12xxx Processo (Process) Pintura (Paint) 13xxx Processo (Process) Quando necessário suporte para resolução da falha, verifique o número do erro! IRC5 Programação Programming Básica Basic © ABB Inc. -72 Logs – Eventos no R.S.O Os Logs estão disponíveis no R.S.O Selecionar ”RobotView” e ”Events”. IRC5 Programação Programming Básica Basic © ABB Inc. -73 Exercício 1 1. Movimente o robô nos modos Eixo-à-Eixo, Linear e Reorientação utilizando o botão “Quick Set” e o Joystick. Quais são as diferenças entre os tipos de movimentos possíveis? 2. O que acontece quando você pressiona a barra superior na tela do FlexPendant? 3. Visualize o Log de Eventos. Qual foi o último evento que ocorreu? 4. Pratique explorando os botões do FlexPendant, se você tiver alguma dúvida questione o instrutor. IRC5 Programação Básica Fundamentos da Programação IRC5 © ABB Inc. -74 Programação Básica IRC5 Programação Programming Básica Basic © ABB Inc. -75 Tópicos Estrutura de Programa IRC5 Criando, Editando e Salvando um programa Instruções de Movimento Utilização de Velocidade e Zona Execução Passo-a-passo (step-by-step) Rodando no modo Manual IRC5 Programação Programming Básica Basic Estrutura de Programa IRC5 Diretório Exemplo_Programa Exemplo_Programa.pgf <?xml version="1.0" encoding="ISO-8859-1" ?> <Program> <Module>ModuleA.mod</Module> <Module>MainModule.mod</Module> MainModule.mod MODULE MainModule CONST robtarget home:=[[....]]; VAR num reg1:=0; PROC main() Rotina_1; Rotina_2; ENDPROC PROC Rotina_1() MoveL; ENDPROC </Program> Declaração de Dados Constantes e Variáveis Rotinas ModuleA.mod MODULE ModuleA PROC Rotina_A1() MoveL; © ABB Inc. -76 MoveL; PROC Rotina_2() MoveL; ENDPROC ENDMODULE ENDPROC ENDMODULE Instruções IRC5 Programação Programming Básica Basic © ABB Inc. -77 Exemplo de Programa IRC5 Programação Programming Básica Basic Salvando e Carregando um programa Para criar um novo programa, carregar programa existente ou salvar: •Pressione “ABB” •Pressione “Editor do Programa” (Program Editor) •Selecionar o “Robo Task” (caso utilize Multimove) •Pressionar “Tarefas e Programas” (Task and Program) •Selecionar a Tarefa/Programa desejado •Pressione “Arquivo”(File) •Pressione “Novo Programa” (New Program) •Para criar novo programa © ABB Inc. -78 •Pressione “Carregar Programa” (Load Program) •Para carregar um programa •Pressione “Salvar Programa como” (Save Program as) •Para salvar um programa IRC5 Programação Programming Básica Basic Salvando um programa Um diretório com o nome do programa é criado Módulo: MainModule (todos programas possuem) Extensão do Arquivo: pgf © ABB Inc. -79 O mesmo nome É um arquivo XML que aponta para MainModule e outros módulos de programa. IRC5 Programação Programming Básica Basic Criando um Programa Para criar um novo Programa: (se não existir) Pressione “ABB” Pressione “Editor do Programa” © ABB Inc. -80 (Program Editor) Selecionar o “Robot Task” Pressione “Novo” (New). Nomear o programa Pressione “OK” IRC5 Programação Programming Básica Basic Adicionando Instruções de Movimento Para adicionar instruções de movimento: Pressione “Adicionar Instrução” © ABB Inc. -81 (Add Instruction) Mover o Robô para posição desejada Pressione “MoveJ” ou “MoveL” Mover o robô para próxima posição Repetir o procedimento acima IRC5 Programação Programming Básica Basic MoveJ ou MoveL? MoveJ Movimento “Joint” (Joint interpolation) frequententemente é o caminho mais rápido para mover de um ponto a outro quando não é necessário trajetória linear. O eixos do robô e eixos externos se moverão ao longo de uma trajetória não linear e alcançarão o ponto de destino todos ao mesmo tempo. Utilize-o em espaços abertos como deslocamento de um dispositivo para outro. © ABB Inc. -82 MoveL Movimento “LINEAR” (Linear interpolation) é utilizado para mover linearmente o robô do seu ponto inicial ao ponto de destino (referência ao TCP). Se não for possível a realização do movimento um evento será gerado e mostrado na FlexPendant. Utilize-o quando necessário mover o robô próximo a objetos como dispositivos ou peças. IRC5 Programação Programming Básica Basic Instruções de Movimento MoveJ pHome, v500, z5, tGripper MoveL pHome, v500, z5, tGripper Na instrução acima temos: pHome O Robô movendo para ___________________ v500 Com velocidade de ______________________ © ABB Inc. -83 Com uma Zona de _______________________ z5 tGripper E um TCP declarado como _________________ IRC5 Programação Programming Básica Basic Velocidade e Zona z MoveL p40, v1000, z40, tool0; © ABB Inc. -84 MoveL p30, v300, z30, tool0; Velocidade - tipo de dado “speeddata” Zona - tipo de dado “zonedata” IRC5 Programação Programming Básica Basic Alterando um Argumento de Programa Selecione o item a ser alterado com “2 cliques” © ABB Inc. -85 Selecione o novo valor e pressione “OK” IRC5 Programação Programming Básica Basic Modificando uma Posição Selecione o ponto a ser modificado. Mova o robô para nova posição. © ABB Inc. -86 Pressione “Modificar Posição” (Modify Position) IRC5 Programação Programming Básica Basic Depurando o programa (Debug) Ponteiro do Programa - PP © ABB Inc. -87 (Program Pointer) IRC5 Programação Programming Básica Basic Checando Calibração (Robot Calibration) © ABB Inc. -88 MoveAbsJ Criar uma nova rotina (GotoCalib) Inserir a instrução MoveAbsJ Selecionar o ponto da instrução “*”, pressionar “Depurar” (Debug), “Exibir Valor” (View Value) e inserir nos campos de cada um dos eixos o valor zero “0”. IRC5 Programação Programming Básica Basic Instruções de Movimento o - position O posiçãoin noairespaço x –position X posiçãoon nopaper papel ROBOT ROBÔ o pHome p40 x o p60 x p10 x p50 © ABB Inc. -89 p30 x x p20 IRC5 Programação Programming Básica Basic Rodando Programas em modo Manual Procedimento Passo Ação 1 Posisione a chave seletora no modo Manual. Informação/Ilustração Você encontará maiores informações sobre o Modo de operação dos robôs no Manual de Operação. Referência. Manual de Operação (Operator’s manual) IRC5 with FlexPendant M2004 Document ID: 3HAC 16590-1 2 © ABB Inc. -90 ATENÇÃO! Antes de rodar o robô, por favor observar as informações de segurança na pagina 4 Risco – Manipuladores em movimento são potencialmente letais IRC5 Programação Programming Básica Basic Rodando Programas em modo Manual Procedimento Passo Ação Informação/Ilustração 3 Se o programa não está aberto pressione menu “ABB”, “Editor do Programa” (Program Editor) e selecione o programa desejado Como carregar um programa existente é detalhado na secção 6.7.1 Trabalhando com programas (Handling of Programs) 4 Selecione o modo de operação do robô Como selecionar modo de operação e iniciar é detalhado no secção 6.9 Testando (Testing) 5 Pressione o botão de inicialização do programa no Flex Pendant (“Start” / “Passo a Passo”) Todos botões do FlexPendant são mostrados na secção 2.2 O que é FlexPendant? (What is a FlexPendant?) © ABB Inc. -91 Start Passo a Passo (frente/trás) Stop IRC5 Programação Programming Básica Basic Iniciando Execução (Starting Execution) Procedimento Passo Ação © ABB Inc. -92 1 Para rodar o programa utilize a botão na FlexPendant correspondente ao modo de execução desejado Info/Ilustração Modo de execução detalhado na secção 6.9.4 Executar instrução por instrução (Stepping instructions by instructions) IRC5 Programação Programming Básica Basic Execução Passo a Passo No modo Manual, o programa poderá ser executado passo a passo (stepby-step) onde podemos rodar uma instrução de cada vez, a próxima instrução ou a anterior Existem teclas dedicadas na FlexPendant Tecla Programável 1. Como definir esta função é detalhado na secção 12.2.6 Alterando teclas Pprogramáveis (Changing programmable Keys) Tecla Programável 2. Como definir esta função é detalhado na secção 12.2.6 Alterando teclas Pprogramáveis (Changing programmable Keys) Tecla Programável 3. Como definir esta função é detalhado na secção 12.2.6 Alterando teclas Pprogramáveis (Changing programmable Keys) Tecla Programável 4. Como definir esta função é detalhado na secção 12.2.6 Alterando teclas Pprogramáveis (Changing programmable Keys) Roda o programa - conjunto de instruções do programa (Start) © ABB Inc. -93 Roda instrução anterior – somente uma instrução Roda próxima instrução – somente uma instrução Para o programa (Stop) IRC5 Programação Programming Básica Basic Execução Passo a Passo Selecione modo de passo Passo 1 Info/Ilustração Selecionar o modo de Passo - Atalho Quickset Menu Detalhes na secção 4.6.5 MenuQuickset, Modo Passo a Passo Execução do próximo passo Passo 1 Ação Ação Pressione na FlexPendant a tecla correspondente a figura ao lado Execução do passo anterior Passo Ação 1 © ABB Inc. -94 Info/Ilustração Pressione na FlexPendant a tecla correspondente a figura ao lado Info/Ilustração IRC5 Programação Programming Básica Basic Parando o Programa Procedimento © ABB Inc. -95 Passo Ação Info/Ilustração 1 Durante operação no modo Manual 100%, libere o botão “Hold-to-Run” Todos botões do FlexPendant são mostrados na secção 2.2 O que é FlexPendant? (What is a FlexPendant?) 2 Durante operação no modo Manual com velocidade reduzida, pressione a tecla “Stop” na FlexPendant Todos botões do FlexPendant são mostrados na secção 2.2 O que é FlexPendant? (What is a FlexPendant?) 3 Quando rodarmos o programa no modo Passo a Passo o robô irá parar após a execução de cada instrução Execute a próxima instrução pressionando uma das teclas abaixo IRC5 Programação Programming Básica Basic © ABB Inc. -96 Exercício 2 1. Crie através da FlexPendant do robô um programa simples como descrito neste capítulo e teste seu programa. Cada aluno deverá criar seu programa. (Utilize somente as instruções de movimentação explicadas em aula.) 2. O que ocorre quando você pressiona o botão de emergência enquanto o robô está rodando? É possível reiniciar o programa a partir do mesmo ponto que parou? 3. Salve o programa na FlashDisk. 4. Pratique explorando os botões do FlexPendant, se você tiver alguma dúvida questione o instrutor. IRC5 Programação Básica © ABB Inc. -97 Backup & Restore IRC5 Programação Programming Básica Basic Tópicos © ABB Inc. -98 Backup Porque? Quando? Como? Precauções O que é guardado? IRC5 Programação Programming Básica Basic Backup Possuir um backup perfeito é de suma importância para uma rápida recuperação das configurações perdidas: Quando fazê-lo… Se há suspeitas do sistema atual Após UpGrades de Software ou © ABB Inc. -99 troca do mesmo. Pressione “ABB” Pressione “Backup and Restore” Pressione “BackUp Current System” IRC5 Programação Programming Básica Basic Backup © ABB Inc. -100 O que contém no backup? Todos arquivos/pastas armazenadas no diretório Home do sistema atual localizado na FlashDisk do robô. Parâmetros de Sistema (ex. Declarações de sinais – I/O). Programas, módulos e tarefas (Task) atuais na FlashDisk. As informações do Backup permite restaurar as condições anteriores do seu sistema. IRC5 Programação Programming Básica Basic Backup © ABB Inc. -101 O que fazer antes do Backup! No Controlador IRC5 assim como no S4C Plus podemos ter vários sistemas instalados! Sempre verifique qual sistema está ativo. IRC5 Programação Programming Básica Basic Backup © ABB Inc. -102 Sempre Dê ao backup um nome coerente Guarde a data que o backup foi criado Guarde o backup final num lugar seguro IRC5 Programação Programming Básica Basic Restore © ABB Inc. -103 Lembre-se Um backup criado no controlador S4 não pode ser restaurado no controlador IRC5. Sempre verifique se está restaurando o sistema correto. IRC5 Programação Programming Básica Basic Backup © ABB Inc. -104 Recomendamos realizar o backup: Antes da instalação de novo RobotWare Antes de realizar alterações significativas de programa e/ou parâmetros Após realização de alterações de instruções e/ou parâmetros e testá-lo, desejar guardar as novas alterações realizadas. IRC5 Programação Programming Básica Basic Backup Procedimento Passo Ação 1 Pressione “ABB”. 2 Pressione “Backup and Restore”. © ABB Inc. -105 xx0300000469 Info/Ilustração IRC5 Programação Programming Básica Basic Backup Procedimento Passo Ação 3 Pressione “Backup”. © ABB Inc. -106 Xx0300000440 O Diretório do Backup será mostrado. Info/Ilustração IRC5 Programação Programming Básica Basic Backup Procedure Passo Ação © ABB Inc. -107 4 O diretório mostrado é o correto? Se sim: Pressione “Backup” e será criado o Backup conforme configuração visualizada (nome do diretório). Se não: Pressione … botão à direita e siga o procedimento abaixo. xx0300000441 Um backup nomeado de acordo com a data atual é criado. Info/ Ilustração IRC5 Programação Programming Básica Basic Backup Procedimento © ABB Inc. -108 Passo Ação 5 Selecione o diretório desejado. 6 Quando o diretório desejado for mostrado, pressione “OK”. xx0300000443 Info/ Ilustração IRC5 Programação Programming Básica Basic Restore © ABB Inc. -109 Recomendamos restaurar o backup: Se por alguma razão, suspeitar que o programa apresenta problemas Se alguma alteração de programa e/ou parâmetros não promover o resultado esperado e a condição anterior for desejada Durante o procedimento de restore, todos parâmetros de sistema serão trocados e todos módulos do diretório de backup serão carregados O diretório Home do backup é copiado para o novo diretório Home de sistema durante o “Warm Start” IRC5 Programação Programming Básica Basic Restore Procedimento Passo Ação 1 Pressione “ABB”. 2 Pressione “Backup and Restore”. © ABB Inc. -110 Xx0300000439 Info/Ilustração IRC5 Programação Programming Básica Basic Restore Procedimento Passo Ação 3 Pressione “Restore”. © ABB Inc. -111 Xx0300000440 O diretório do backup será mostrado. Info/Iustração IRC5 Programação Programming Básica Basic Restore Procedimento Passo © ABB Inc. -112 4 Ação O diretório mostrado é o correto? Se sim: Pressione “Restore” e será restaurado o Backup selecionado. Se não: Pressione … botão à direita do campo e siga o procedimento abaixo. xx0300000441 Info/ Ilustração IRC5 Programação Programming Básica Basic Restore Procedure © ABB Inc. -113 Passo Ação 5 Selecionar o diretório desejado. 6 Quando o diretório desejado é mostrado, selecione o backup correto e pressione “OK”. xx0300000444 A iniciar a restauração, o procedimento de “Warm Started” ocorre automaticamente. Info/ Ilustração IRC5 Programação Programming Básica Basic © ABB Inc. -114 Exercício 3 1. Crie o Backup do sistema existente. 2. Salve o Backup no diretório de Backups na FlashDisk e se estiver disponível, salve o mesmo em uma pen drive. IRC5 Programação Básica TCP Ponto Central da Ferramenta © ABB Inc. -115 IRC5 Programming IRC5 Basic Programação Básica IRC5 Programação Programming Básica Basic Sistema de Coodenadas da Ferramenta Sistema de Coordenadas Coordenada da Ferramenta Y (Tool coordinates) Coordenada da Ferramenta (Tool0) X © ABB Inc. -116 Z Y Z Benefícios ao utilizar uma ferramenta: Movimentação Reorientação Facilidade de alteração do ponto Coordenada de Base (Base coordinates) X IRC5 Programação Programming Básica Basic Sistema de Coordenadas Veja diferentes exemplos de ferramenta e TCPs (Tool Center Points). TCP TCP TCP © ABB Inc. -117 TOOL0 TCP A Tool0 sempre é a referência de Posicionamento para as demais ferramentas IRC5 Programação Programming Básica Basic Definindo e usando uma Ferramenta T_Caneta © ABB Inc. -118 Tool 0 IRC5 Programação Programming Básica Basic © ABB Inc. -119 Definindo e usando uma Ferramenta IRC5 Programação Programming Básica Basic Definição de Ferramenta © ABB Inc. -120 Crie uma Tooldata no FlexPendant Pressione “ABB” -> “Dados do Programa” (Program Data) -> Tooldata -> “Mostrar Dados” (Show Data) -> “Novo” (New) Nomeie a ferramenta. Pressione “Valor Inicial” (Initial Value). Preencha o campo Mass com o peso da ferramenta em Kg. Preencha o campo COG X com o centro de Massa em mm. Pressione OK : OK : OK IRC5 Programação Programming Básica Basic Definindo um TCP – Método dos 4 pontos © ABB Inc. -121 Selecione a nova ferramenta e pressione “Editar” (Edit). Pressione “Definir” (Define). Selecione Ponto1 (Point1). Mova o robô para o ponto de referência. Pressione “Modificar Posição” (Modify Position). Reposicione o robô com nova orientação. Pressione “Modificar Posição” (Modify Position). Repita a sequência para todos os pontos. Pressione “OK”. IRC5 Programação Programming Básica Basic Definindo um TCP – Método dos 4 pontos T_Caneta Ponta Fixa © ABB Inc. -122 Fixed point IRC5 Programação Programming Básica Basic Definindo Ferramenta T_Garra Tool 0 © ABB Inc. -123 TCP T_Garra IRC5 Programação Programming Básica Basic Definindo Carga de Ferramenta (Tool Load) Todo Controlador IRC5 possui uma rotina de serviço chamada LoadIdentify. Ela é utilizada para definir a masa e o centro de gravidade da Ferramenta e/ou Carga (Payload or Loaddata). Carga no Braço Superior (Arm Load) Carga (PayLoad) © ABB Inc. -124 Carga da Ferramenta (Tool Load) ManLoadIdentify é uma rotina utilizada para definir _________________ carga dos eixos externos. IRC5 Programação Programming Básica Basic Definindo Carga de Ferramenta (Tool Load) Vá para rotina LoadIdentify pressionando “Depurar” (Debug ) -> “Chamar Rotina” (Call Service Rout). Selecione LoadIdentify e pressione “Ir para” (Go to). Pressione o botão “Enable device” e inicie o programa. © ABB Inc. -125 Siga as instruções que irão aparecer na tela. IRC5 Programação Programming Básica Basic Lembre-se Antes de utilizar o Load Identification (LoadID) certifique-se que as condições abaixo sejam verdadeiras: A Ferramenta está montada corretamente. Lembre-se: O Eixo 6 não esteja próximo dos limites. O Eixo 4 esteja próximo de 0 (zero). A Carga do Braço Superior esteja definida. Criar um dado de Ferramenta (Tooldata) antes de um dado de Carga de Ferramenta (Tool Load). Criar um dado de Carga (LoadData) antes de definir a carga (PayLoad). © ABB Inc. -126 Parâmetro de Velocidade configurado em 100%. IRC5 Programação Programming Básica Basic Identificação de Carga (Load Identification) Quando o programa perguntar sobre rodar em velocidade baixa, responda NÃO (NO) porque nada é calculado em velocidade baixa. Entretanto, se não há certeza sobre o comprimento dos cabos da ferramenta, então a velocidade baixa deverá ser utilizada e as trajetórias deverão ser observadas a fim de evitar acidentes. Siga todas as instruções recomendadas pelo programa. © ABB Inc. -127 Quando o programa perguntar sobre o ângulo que o eixo 6 moverá durante o programa, é recomendável selecionar +90 ou -90 graus para obter-se resultados de maior resolução. Se a ferramenta é incapaz de mover-se 90 graus, escolha outra opção. No mínimo 30 graus deverá ser especificado. IRC5 Programação Programming Básica Basic Identificação de Carga (Load Identification) Ao final do procedimento de Identificação de Carga (Load Identification) as seguintes informações aparecerão: © ABB Inc. -128 Massa (Mass) – kg = Centro de Gravidade (Centrer of Gravity) - mm X= Centro de Gravidade (Centrer of Gravity) - mm Y= Centro de Gravidade (Centrer of Gravity) - mm Z= Resolução Mensurada (Measurement Accuracy) = (Deverá ser maior que 80%, caso contrário deverá rodar novamente a rotina). IRC5 Programação Programming Básica Basic Teclas Programáveis © ABB Inc. -129 Configuranto uma tecla Programável. Pressione “ABB” -> “Painel de Controle” (Control Panel) -> “ProgKeys” Selecione a tecla para configuração. Selecione o “Tipo” (Type) - usualmente do tipo Saída digital (Output) Selecione a Saída digital. Selecione campo Tecla Pressionada (Key Pressed). Pressione “OK”. IRC5 Programação Programming Básica Basic Exercício 4 1. Crie um TCP para a Caneta fixada ao robô utilizando o método de 4 pontos. 2. Escreva a resolução dos valores de TCP para sua ferramenta criada: © ABB Inc. -130 • • • Erro Mínimo (Min Error) ________________ Erro Médio (Mean Error) ________________ Erro Máximo (Max Error) ________________ 3. Defina a carga da ferramenta. 4. Ative a nova ferramenta e teste utilizando o movimento de Reorientação. 5. Configure uma tecla programável para Habilitar e Desabilitar uma saída digital. 6. Se houver tempo disponível crie um novo TCP utilizando nova ferramenta. 7. Salve o programa na FlashDisk. IRC5 Programação Básica © ABB Inc. -131 Robot Studio Online IRC5 Programming IRC5 Basic Programação Básica IRC5 Programação Programming Básica Basic O que é Robot Studio Online? Robot Studio Online (R.S.O.) é uma ferramenta de software utilizada para todos robôs ABB e é entregue ao cliente na aquisição do robô ABB. R.S.O. possui três funções principais © ABB Inc. -132 Instalar/ Criar um novo sistema operacional (system builder) Modificar ou criar um novo sistema operacional para o controlador. Carregar um sistema existente para o controlador ou memorystick. Configuração/ Manutenção de sistemas de robôs existentes Backup e Restore Modificar e configurar parâmetros de sistema Leitura de Eventos, status e Logs de Eventos. Manipular programas RAPID Criar um programa RAPID. Editar um programa RAPID existente (editor de texto). IRC5 Programação Programming Básica Basic © ABB Inc. -133 Conectando R.S.O ao Controlador Utilize um cabo Ethernet crossover. Conecte através do cabo, a saída Ethernet do PC a porta de entrada Ethernet do controlador. IRC5 Programação Programming Básica Basic IRC5 FlexPendant & R.S.O © ABB Inc. -134 A FlexPendant e o RobotStudioOnline trabalham juntos IRC5 Programação Programming Básica Basic © ABB Inc. -135 Inicializando o R.S.O. Inicializando o Robot Studio Online. Start -> Program -> ABB Industrial IT -> Robot Studio Online. Crie uma nova visualização de robô. File -> New Robot View. IRC5 Programação Programming Básica Basic Utilizando o R.S.O. © ABB Inc. -136 Nomeie e guarde sua nova configuração criada. IRC5 Programação Programming Básica Basic Utilizando o R.S.O. © ABB Inc. -137 Adicionando controlador. Robot View -> Add Controller OU Right click -> Add Controller. IRC5 Programação Programming Básica Basic Utilizando o R.S.O. © ABB Inc. -138 Localize seu programa Rapid. IRC5 Programação Programming Básica Basic © ABB Inc. -139 Utilizando o R.S.O. Solicite acesso de escrita ao controlador (Request Write access), lembre-se de autorizar acesso através do FlexPendant (grant). Pressione “Enable Edit”. Lembre-se que o R.S.O é uma ferramenta de edição OnLine. IRC5 Programação Programming Básica Basic Exercício 5 © ABB Inc. -140 1. Faça modificações no seu programa utilizando o Robot Studio OnLine. Altere parâmetros de Velocidade e Zona e teste o programa. IRC5 Programação Básica Programação © ABB Inc. -141 Estruturada IRC5 Programming IRC5 Basic Programação Básica IRC5 Programação Programming Básica Basic © ABB Inc. -142 Tópicos Programação Estruturada Estrutura de Programa IRC5 Conceitos Programando instruções de I/O Criando um programa utilizando método JSP Adicionando Rotinas IRC5 Programação Programming Básica Basic Programação Estruturada © ABB Inc. -143 Programação estruturada é uma forma de programação que preconiza que todos os programas possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e iteração, desenvolvida por Michael A. Jackson no seu livro "Principles of Program Design" de 1975 (Método JSP). Tendo, na prática, sido transformada na Programação modular, a Programação estruturada orienta os programadores para a criação de estruturas simples em seus programas, usando as subrotinas e as funções. Foi a forma dominante na criação de software anterior à programação orientada por objetos POO. Apesar de ter sido sucedida pela programação orientada por objetos, pode-se dizer que a programação estruturada ainda é muito influente, uma vez que grande parte das pessoas ainda aprendem programação através dela. Além disso, por exigir formas de pensar relativamente complexas, a programação orientada a objetos até hoje ainda não é bem compreendida ou usada pela maioria. IRC5 Programação Programming Básica Basic Programação Estruturada © ABB Inc. -144 Programação Estruturada Sequência. Decisão. Iteração – Processo chamado na programação de repetição de uma ou mais ações. IRC5 Programação Programming Básica Basic Estrutura de Programa IRC5 Diretório Exemplo_Programa Exemplo_Programa.pgf <?xml version="1.0" encoding="ISO-8859-1" ?> <Program> <Module>ModuleA.mod</Module> <Module>MainModule.mod</Module> MainModule.mod MODULE MainModule CONST robtarget home:=[[....]]; VAR num reg1:=0; PROC main() Rotina_1; Rotina_2; ENDPROC PROC Rotina_1() MoveL; ENDPROC </Program> Declaração de Dados Constantes e Variáveis Rotinas ModuleA.mod MODULE ModuleA PROC Rotina_A1() MoveL; © ABB Inc. -145 MoveL; PROC Rotina_2() MoveL; ENDPROC ENDMODULE ENDPROC ENDMODULE Instruções IRC5 Programação Programming Básica Basic © ABB Inc. -146 Conceito de Variáveis Na programação, uma variável é um objeto (uma posição, freqüentemente localizada na memória) capaz de reter e representar um valor ou expressão. As variáveis são associadas a "nomes", chamados identificadores. Quando nos referimos à variável, do ponto de vista da programação, estamos tratando de uma “região de memória (FlashDisk) previamente identificada cuja finalidade é armazenar os dados ou informações de um programa”. A memória de programa se organiza tal qual um armário com várias divisões. Sendo cada divisão identificada por um endereço diferente, em uma linguagem que o programa entende. O computador do robô armazena os dados nessas divisões, sendo que em cada divisão só é possível armazenar um dado e toda vez que o computador do robô armazenar um dado em uma dessas divisões, o dado que antes estava armazenado é eliminado. O conteúdo pode ser alterado, mas somente um dado por vez pode ser armazenado naquela divisão. O computador do robô identifica cada divisão por intermédio de um endereço no formato hexadecimal, e a linguagem de programação RAPID permitem nomear cada endereço ou posição de memória, facilitando a referência a um endereço de memória. Uma variável é composta por dois elementos básicos: o conteúdo (valor da variável) e identificador (um nome dado à variável para possibilitar sua utilização). IRC5 Programação Programming Básica Basic Conceito de Constantes & Variáveis Constantes Na programação, uma constante é um valor que no decorrer do algoritmo ou processamento sempre terá o mesmo valor. Perceba que a idéia de constante é a mesma seja onde for o local que a constante será utilizada. No robô ABB as constantes se classificam na categoria de tipo de armazenamento definida como Constante. Veja abaixo exemplo: CONST num reg7:=0; reg7 é um tipo de dado que não sofre alteração de valor ao longo da execução do programa. © ABB Inc. -147 Constante X Variável A diferença primordial entre estes dois conceitos é que constantes são valores inalterados e variável é uma entidade capaz de manifestar diferenças em valor, assumindo, inclusive, valores numéricos. Diz-se que a variável possui qualquer valor dentro de um campo determinado, ele atua como uma "gaveta", onde nessa "gaveta" nós podemos guardar qualquer valor. IRC5 Programação Programming Básica Basic Variáveis & Tipo de Armazenamento Variáveis No robô ABB os dados variáveis se classificam em duas categorias distintas pelo tipo de armazenamento do dado que são a Variável e a Persistente. Conforme mensionado anteriormente, existe outra categoria de tipo de armazenamento utilizada para dados constantes chamada Constante. As diferenças entre Variável e Persistente é que o dado (que pode sofrer alteração de valor durante a execução do programa em ambos casos), em caso do término da execução de um ciclo de programa (main) o valor atual do dado persistirá (continuará com o último valor) para o tipo de armazenamento Persistente. Já para o tipo de armazenamento Variável o último valor será perdido. Veja abaixo exemplo de declarações de dados com armazenamento Variável e Persistente. © ABB Inc. -148 PERS num reg8:=0; VAR num reg10:=0; IRC5 Programação Programming Básica Basic Tipo de Armazenamento © ABB Inc. -149 O tipo de armazenamento de um dado é definido durante a declaração do mesmo. IRC5 Programação Programming Básica Basic Tipo de Dados © ABB Inc. -150 Podemos dizer que as variáveis e constantes são posições de memória criadas com objetivo de armazenamento de dados, porém, os dados podem se diferenciar entre si no que diz respeito a sua estrutura. Para que haja diferenciação entre os tipos de dados, o computador do robô proporciona uma biblioteca com padrões diferenciados para os tipos de dados. Veja alguns tipos de dados abaixo. robtarget (posição cartesiana) Jointtarget (posição de juntas) tooldata (coordenada ferramenta) wobjdata (coodenada objeto) speedata (velocidade) zonedata (zona) signaldi (entrada digital) signaldo (saída digital) num (registrador numérico) Bool (booleano) Byte (byte) clock (tempo) IRC5 Programação Programming Básica Basic Tipo de Dados © ABB Inc. -151 Os Tipo de Dados (biblioteca de dados), podem ser visualizados no FlexPendant pressinando o menu “ABB” e “Dados do Programa” (data type). IRC5 Programação Programming Básica Basic Antes de iniciar o programa Quatro atividades deverão ser realizadas antes de criar um novo programa. 1. _______________________________________ RODAR ROTINA DE CALIBRAÇÃO 2. _______________________________________ VERIFICAR ALINHAMENTO DO ROBÔ DEFINIR TCP E WORK OBJECT 3. _______________________________________ © ABB Inc. -152 PLANEJAR O PROGRAMA PREVIAMENTE 4. _______________________________________ IRC5 Programação Programming Básica Basic Instruções básicas de I/O As duas instruções mais utilizadas para acionar uma saída digital são _________ e __________. Set SetDO As duas instruções mais utilizadas para desacionar uma saída digital são _________ SetDO Reset and __________. Para inverter o status de uma saída digital utilize a InvertDO instrução _______________. © ABB Inc. -153 Para acionar uma saída digital durante um intervalo de tempo e depois desacioná-la, utilize a instrução PulseDo _____________. Para alterar a duração do pulso digital utilize Opt. Arg. ____________. (Argumento Opcional). IRC5 Programação Programming Básica Basic Instruções básicas de I/O A instrução ______________ WaitDI é utilizada para aguardar um sinal de uma entrada digital. WaitUntil A instrução ______________ é utilizada para aguardar uma condição. © ABB Inc. -154 Waittime A instrução ______________ é utilizada para aguardar um tempo. IRC5 Programação Programming Básica Basic © ABB Inc. -155 Instruções de I/O IRC5 Programação Programming Básica Basic Instruções de I/O p10 p40 p30 p20 © ABB Inc. -156 DT DT indica um tempo variável em função da carga do processador. IRC5 Programação Programming Básica Basic Instruções de I/O p10 P40 P30 © ABB Inc. -157 P20 IRC5 Programação Programming Básica Basic © ABB Inc. -158 Programação Estruturada - JSP Desenhando um quadrado no papel. IRC5 Programação Programming Básica Basic Jackson Structured Programming (JSP) Método JSP: Programa Estruturado Rotinas bem definidas - Fácil para testar - Fácil para alterar - Fácil para identificar falhas Instrução ProcCall Facilidade para leitura e compreensão Main routine (proc main) © ABB Inc. -159 MAIN rPickUp rSquare rDropOff IRC5 Programação Programming Básica Basic Criando Rotinas © ABB Inc. -160 Como criar rotinas de programa ? Na tela de Edição de Programas (Program Editor). Pressione: “Rotinas” -> “Arquivo” (File) -> “Nova Rotina” (New routine) Pressione: “ABC…” para renomear. Pressione: “OK”. Selecione a Rotina. Pressione: “Mostrar Rotina” (Show routine). IRC5 Programação Programming Básica Basic Exercício 6 © ABB Inc. -161 1. Crie um novo programa. Este novo programa irá simular uma aplicação de manipulação e deverá atender as seguintes solicitações: • • O programa deverá iniciar a partir de uma posição de Home. O programa deverá estar bem estruturado com base em rotinas. • Utilize a saída digital ___________ para controlar a garra. • Quando o sinal ___________ for atuado o robô deverá pegar a peça no Alimentador 1 (Infeeder1) - (utilize sua imaginação). • O Robô deverá colocar a peça no Torno (Lathe) e mover-se para uma posição segura. • Com o robô numa posição segura, a saída _________ deverá ser acionada por 1 segundo que acionará o torno (Lathe). O Trabalho do torno estará finalizado quando o sinal __________ for atuado. • Após sinal __________ o robô pegará a peça acabada e colocará a mesma na esteira de saída (Exit conveyor). • O robô deve retornar para home e aguardar a próxima peça. • Utilize recursos de Copiar e Colar a fim de implementar o retorno do robô para Home no fim do processo. IRC5 Programação Programming Básica Basic Layout Robô – Exercício 6 Alimentador 1 (Infeeder 1) © ABB Inc. -162 Esteira de Saída (Exit Conveyor) Alimentador 2 (Infeeder 2) Torno (Lathe) IRC5 Programação Programming Básica Basic Exemplo de Programa r_Feeder1; r_Lathe; MoveJ pOvrLathe, v1000, z10, tGripper; MoveL pin_Lathe, v400, fine, tGripper; Reset do9_Grip; MoveL pOvrLathe, v800, fine, tGripper; PulseDO\Plength; = 1, do7_Start_Lathe; Wait DI di7_Lathe_Done, 1; MoveL pin_Lathe, v400, fine, tGripper; Set do9_Grip; MoveJ pOvrLathe, v1000, z10, tGripper; RETURN; MoveJ pOvrPart, v500, z30, tGripper; r_Conveyor MoveL pOnPart, v500, fine, tGripper; MoveJ pOvr_Conveyor, v1000, z60, tGripper; Set do9_Grip; MoveL pOn_Conveyor, v800, fine, tGripper; MoveL pOvrPart, v500, z30, tGripper; Reset do9_Grip; RETURN; MoveL pOvr_Conveyor, v1000, z60, tGripper; MAIN MoveJ pHome, v1000, fine, tGripper; WaitDI di1_Style1, 1; r_Feeder1 r_Lathe; r-Conveyor © ABB Inc. -163 RETURN; RETURN; IRC5 Programação Básica Controlando o © ABB Inc. -164 Fluxo do Programa IRC5 Programming IRC5 Basic Programação Básica IRC5 Programação Programming Básica Basic Controle do Fluxo do Programa – Instruções de Decisão No exercício anterior, a estrutura do programa criado permitia a execução sequencial das linhas de programa. Este tipo de estrutura é extremamente limitada quando necessitamos de programas maiores e mais complexos. IF di1_Style1=1 THEN rFeeder1 ; ELSE return ; ENDIF IF THEN Di1_Style1= 1 rFeeder1 Return ENDIF © ABB Inc. -165 ELSE IRC5 Programação Programming Básica Basic Controle do Fluxo do Programa – Instruções de Decisão Argumento Opcional (Optional Argument) IF di1_Style1=1 THEN rFeeder1 ; ELSEIF di2_Style2=1 THEN rFeeder2 ; ELSE return ; ENDIF IF THEN Di1_Style1= 1 ELSEIF rFeeder1 THEN ELSE Di2_Style2=1 © ABB Inc. -166 rFeeder2 ENDIF Return IRC5 Programação Programming Básica Basic Instrução de Controle do Fluxo - IF Selecione o tipo de dados (data type) O botão “+” adiciona argumentos da expressão © ABB Inc. -167 Filtro é utilizado para limitar dados e funções a serem visualizados. IRC5 Programação Programming Básica Basic Controlando com sinais de I/O Rotina House keeping. Rotina de Verificação de Calibração. Seleção de Alimentador (Feeder). rHousekeeping rPickUp1 di1=1 © ABB Inc. -168 rGotoCalib rFeeder1 MAIN rLathe di2=1 rFeeder2 rDropOff IRC5 Programação Programming Básica Basic © ABB Inc. -169 Exercício 7 1. Implemente seu programa atual considerando que o sinal _________ seja utilizado para Alimentador 1(Feeder 1) e que o sinal _________ seja utilizado para Alimentador 2 (Feeder 2). 2. Adicione uma rotina de inspeção para todas as peças. Todas as peças após processo de torneamento, deverão ser levadas a estação de inspeção. Se após levar a peça a estação de inspeção o sinal ________ for acionado significa que a peça está ok. Caso o robô espere por mais de 5 segundos, a peça deverá ser rejeitada depositando a mesma no barril de refugos. (Dica: Verifique o argumento opcional da instrução WaitDI ). 3. Adicione uma rotina de verificação de Calibração “rGotoCalib” utilizando a insrução MoveAbsJ que irá mover o robô para posição de calibração. IRC5 Programação Programming Básica Basic Exemplo de Programa – Exercício 7 MAIN MoveJ pHome, v1000, fine, tGripper; IF di1_Style1=1 THEN r_Feeder1; ELSEIF di2_Style2=1 THEN r_Feeder2; ELSE; RETURN; ENDIF; r_Lathe; r_Inspect; RETURN; r_Feeder1; MoveJ pOvrpart, v500, z30, tGripper; © ABB Inc. -170 MoveL pOnPart, v500, fine, tGripper; Set do9_Grip; MoveL pOvrPart, v500, z30, tGripper; RETURN; r_Feeder2; MoveJ pOvrPart2, v500, z30, tGripper; MoveL pOnPart2, v500, fine, tGripper; Set do9_Grip; MoveL pOvrPart2, v500, z30, tGripper; RETURN; r_Lathe; MoveJ pOvrLathe, v1000, z10, tGripper; MoveL pin_Lathe, v400, fine, tGripper; Reset do9_Grip; MoveL pOvrLathe, v800, fine, tGripper; PulseDO\Plength;=1, do7_Start_Lathe; WaitDI di7_Lathe_Done, 1; MoveL pin_Lathe, v400, fine, tGripper; Set do9_Grip; MoveJ pOvrLathe, v1000, z10, tGripper; RETURN; IRC5 Programação Programming Básica Basic Exemplo de Programa – Exercício 7 r_Inspect; MoveJ p_near_insp, v1000, fine, tGripper; MoveJ p_at_insp, v1000, fine, tGripper; WaitUntil di5_GoodPart=1\MaxTime=5, TimeFlag=bTimeout; IF bTimeout=true THEN MoveL p_Overeject, v500, z30, tGripper; MoveL p_Onreject, v500, fine, tGripper; Reset do9_Grip; MoveL p_Overeject, v500, z30, tGripper; ELSE r_Conveyor; ENDIF RETURN; r_Conveyor; MoveL pOvr_Conveyor, v1000, z60, tGripper; © ABB Inc. -171 MoveL pOn_Conveyor, v800, fine, tGripper; Reset do9_Grip; MoveI pOvr_Conveyor, v1000, z60, tGripper; RETURN; IRC5 Programação Básica © ABB Inc. -172 Trabalhando com Numerais IRC5 Programação Básica IRC5 Programação Programming Básica Basic Trabalhando com Numerais num Quando trabalhar com números utilize o tipo de dados (data type)________. Variável Você fará uso de uma ______________ deste tipo de dados. reg n ou _____ Este tipo de dados geralmente é designado pelas letras ____ antes do nome. Examplo: nCount, reg1, reg2, nCycles, nParts O robô tem as seguintes instruções que podem ser usadas quando trabalhamos com numerais: ADD, Clear, Incr, Decr := (Atribui) _______________________ Exemplo: nCounter := nCounter+1; © ABB Inc. -173 Incr nCount; nCount:=0; Clear nCount; Add nCount, 1; IRC5 Programação Programming Básica Basic Trabalhando com Numerais A Instrução de atribuição (:=) pode também fazer outras operações matemáticas como: Adição, ___________________ Subtração, ___________________ Multiplicação, etc. ___________________ Para tomada de decisão utilizando numerais, utilize as instruções Compact IF . IF ___________ ou __________ © ABB Inc. -174 Exemplo: IF nCount>=10 rTipClean; ou IF nCount>=10 THEN rTipClean ENDIF; IRC5 Programação Programming Básica Basic Inspecionando toda terceira peça Inspecione toda terceira peça produzida. MAIN rLathe Quench nCount>=3 rInspect di2=1 di1=1 rFeeder1 rFeeder2 © ABB Inc. -175 Peça boa rGotoCalib rDropOff Peça Ruim rReject © ABB Inc. -176 IRC5 Programação Programming Básica Basic Exercício 8 1. Adicione uma rotina de Resfriamento da Peça (Quench) – processo de tempera - após a rotina de Torneamento (Lathe). 2. Adicione uma rotina para inspeção de peça no programa existente de forma que a verificação só ocorra na terceira peça produzida. IRC5 Programação Programming Básica Basic © ABB Inc. -177 Exemplo de Programa – Exercício 8 MAIN MoveJ pHome, v1000, fine, tGripper; IF di1_Style1=1 THEN r_Feeder1; ELSEIF di2_Style2=1 THEN r_Feeder2: ELSE RETURN; ENDIF r_Lathe; r_Quench; IF nCount>=3 THEN r_Inspect; ELSE r_Conveyor; ENDIF RETURN; r_Feeder1; MoveJ pOvrpart, v500, z30, tGripper; MoveL pOnPart, v500, fine, tGripper; Set do9_Grip; WaitTime .5; MoveL pOvrPart, v500, z30, tGripper; RETURN; r_Feeder2; MoveJ pOvrPart2, v500, z30, tGripper; MoveL pOnPart2, v500, fine, tGripper; Set do9_Grip; WaitTime .5; MoveL pOvrPart2, v500, z30, tGripper; RETURN; r_Lathe; MoveJ pOvrLathe, v1000, z10, tGripper; MoveL pin_Lathe, v400, fine, tGripper; Reset do9_Grip; WaitTime .5; MoveL pOvrLathe, v800, fine, tGripper; PulseDO\Plength; =1, do7_Start_Lathe; WaitDI di7_Lathe_Done, 1; MoveL pin_Lathe, v400, fine, tGripper; Set do9_Grip; WaitTime .5; MoveJ pOvrLathe, v1000, z10, tGripper; RETURN; r_Inspect; nCount :=0; MoveJ p_near_insp, v1000, fine, tGripper; MoveJ p_at_insp, v1000, fine, tGripper; WaitUntil di5_GoodPart=1/MaxTime=5, /TimeFlag=bTimeout; IF bTimeout=true THEN MoveL p_Overeject, v500, z30, tGripper; MoveL p_Onreject, v500, fine, tGripper; Reset do9_Grip; MoveL p_Overeject, v500, z30, tGripper; ELSE r_Conveyor; ENDIF RETURN; IRC5 Programação Programming Básica Basic Exemplo de Programa – Exercício 8 r_Conveyor MoveL pOvr_Conveyor, v1000, z60, tGripper; MoveL pOn_Conveyor, v800, fine, tGripper; Reset do9_Grip; MoveL pOvr_Conveyor, v1000, z60, tGripper; Incr nCount; RETURN; r_QUENCH MoveJ pOvrQuen, v500, z30, tGripper; MoveL pOnQuen, v500, fine, tGripper; MoveL pOvrQuen, v500, z30, tGripper; © ABB Inc. -178 RETURN; IRC5 Programação Básica © ABB Inc. -179 Comunicando com o Operador IRC5 Programação Básica IRC5 Programação Programming Básica Basic Comunicando com o Operador © ABB Inc. -180 Mensagens podem ser escritas na tela de forma a propiciar um programa mais amigável. IRC5 Programação Programming Básica Basic © ABB Inc. -181 Comunicando com o Operador A instrução TPWrite é utilizada para escrever mensagens na tela. Valores de dados podem ser escritos também. A instrução TPErase é utilizada para limpar mensagens da tela. IRC5 Programação Programming Básica Basic © ABB Inc. -182 Comunicando com o Operador O Operador/ Inspetor pode tomar decisões interagindo com o programa. IRC5 Programação Programming Básica Basic Comunicando com o Operador Instrução TPReadFK TPReadFK nFigure, “Is this a GOOD or BAD part?”, stEmpty, “GOOD”, stEmpty, “BAD”, stEmpty; © ABB Inc. -183 (1) 2 (3) 4 (5) IRC5 Programação Programming Básica Basic Comunicando com o Operador © ABB Inc. -184 Selecione um dado numérico ou uma escreva uma expressão pressionando o botão virtual “Expressão” (Insert Expression). IRC5 Programação Programming Básica Basic Comunicando com o Operador O alimentador a ser utilizado no processo será escolhido pelo Operador via FlexPendant. Rodar a rotina de Calibração também será uma decisão do operador. MAIN Quench rLathe nCount>=3 Decisão do Operador rGotoCalib rFeeder1 rInspect rFeeder2 © ABB Inc. -185 Peça Boa rDropOff Peça Ruim rReject IRC5 Programação Programming Básica Basic © ABB Inc. -186 Comunicando com o Operador IRC5 Programação Programming Básica Basic Comunicando com o Operador Instrução TPReadNum © ABB Inc. -187 TPReadNum nfigures, “How many figures do you want? © ABB Inc. -188 IRC5 Programação Programming Básica Basic Exercício 9 1. Adicione ao programa existente. O Operador decidirá qual alimentador deverá ser utilizado e quando deverá ser verificado a calibração. 2. Utilize a FlexPendant para inspeção. Escolha entre “Peça Boa” ou “Peça Ruim”. 3. Adicione mensagens para qualquer hora em que o robô não está se movendo a fim de informar que o robô está esperando. IRC5 Programação Básica Outras Instruções IRC5 © ABB Inc. -189 Programação Básica IRC5 Programação Programming Básica Basic © ABB Inc. -190 Tópicos Instruções de Clock (relógio) Instruções de Controle de Fluxo/ Laços de repetição IRC5 Programação Programming Básica Basic Instruções de Clock Instruções de Clock Quando utilizar um relógio como cronômetro: ClkReset – utilizado para zerar o cronômetro ClkStart – utilizado para iniciar o cronômetro a partir do status atual © ABB Inc. -191 ClkStop – utilizado para parar o cronômetro IRC5 Programação Programming Básica Basic Funções de Clock © ABB Inc. -192 Funções de Clock ClkRead – Lê o valor do cronômetro Cdate - Lê a data atual Ctime - Lê a hora atual Exemplo: IRC5 Programação Programming Básica Basic © ABB Inc. -193 Instruções de repetição - FOR A instrução FOR é utilizada quando alguma Instrução/ Rotina necessita ser repetida um determinado número de vezes, sendo um número fixo de vezes ou variável. A instrução For facilita mudar a quantidade de vezes que determinada Instrução/ Rotina precisa ser repetida. Possui um contador interno que é incrementado automaticamente. IRC5 Programação Programming Básica Basic Instruções de repetição - FOR FOR FOR i FROM 1 TO 5 DO rotina_1; ENDFOR 5 © ABB Inc. -194 8 FOR i FROM 1 TO 8 DO MoveJ ..... ; MoveJ ..... ; WaitTime..... ; MoveJ ..... ; ... ; ENDFOR IRC5 Programação Programming Básica Basic Instruções de repetição - WHILE A instrução WHILE é utilizada quando alguma Instrução/ Rotina necessita ser repetida um determinado número de vezes (fixo ou variável), contudo, somente quando uma dada condição é verdadeira. WHILE significa ENQUANTO, sendo assim, podemos ler a instrução da seguinte maneira: ‘Enquanto a condição for verdadeira faça!’. Veja exemplo da figura 2 onde temos a condição que enquanto o registrador reg1 for menor do que 2 o programa executará a rotina QUADRADO. Observe que para o programa executar a rotina desejada 2 vezes, foi necessário prescrever a condição e incrementar um contador externo diferentemente da instrução FOR. © ABB Inc. -195 IRC5 Programação Programming Básica Basic Instrução GOTO A instrução GOTO é utilizada para desviar o ponteiro de execução do programa (Program Point) para outra linha de programa que é identificada com a instrução Label. Pode-se fazer o uso combinado de instruções Compact IF e GOTO como se pode ver no exemplo abaixo que executa 3 vezes a rotina QUADRADO © ABB Inc. -196 Label IRC5 Programação Programming Básica Basic Instrução TEST © ABB Inc. -197 A instrução TEST é utilizada quando diferentes instruções/ rotinas necessitam ser executadas dependendo do valor de uma expressão ou dado. Veja Exemplo abaixo onde caso o valor de reg1 seja igual a 1, 2 ou 3 a rotina QUADRADO será executada, caso o valor de reg1 seja 4 a rotina TRIÂNGULO será executada, caso reg1 não valha nenhum dos valores mensionados anteriormente, o programa escreverá na tela ‘Escolha Inexistente’ e parará o programa através da instrução STOP. PS. Quando referimos a poucas alternativas, a utilização da instrução IF somado aos argumentos ELSE e ELSEIF podem ser também uma solução. IRC5 Programação Básica Work Object IRC5 © ABB Inc. -198 Programação Básica IRC5 Programação Programming Básica Basic © ABB Inc. -199 Criando um Work Object Figura desenhada com referência a um Work Object IRC5 Programação Programming Básica Basic Work Object e Sistema de Coordenadas Sistema de Coordenada do Usuário Sistema de Coordenada do Objeto Z Y TCP Z Y X Coordenada da Ferramenta (Tool coordinates) Z © ABB Inc. -200 Y X Coordenada de Base (Base coordinates) Coordenada do Objeto (WorkObject) X IRC5 Programação Programming Básica Basic Work Object e Sistema de Coordenadas Definindo um Sistema de Coordenada Object (Objeto) © ABB Inc. -201 User (Usuário) User (Usuário) IRC5 Programação Programming Básica Basic Criando um Work Object Ative a ferramenta correta (T_Caneta) Crie um Work Object Defina as coordenadas Origin y1 Work object axis Y x1 © ABB Inc. -202 x2 Work object axis X wobjA4 IRC5 Programação Programming Básica Basic © ABB Inc. -203 Ativando um Work Object IRC5 Programação Programming Básica Basic Utilizando um Work Object MoveJ pHome, v1000 , z50 , T_Caneta; MoveJ pTri10, v1000, z50, T_Caneta \ WObj := wobjA4; .... ; o pHome o posição fora da folha x posição na folha Origem o pTri10 y1 / work object eixo Y x1 -- x pTri20 pTri40 x x pTri30 x2 -- © ABB Inc. -204 work object work object eixo X © ABB Inc. -205 IRC5 Programação Programming Básica Basic Exercício 10 1. Crie um novo programa para pegar uma caneta de um magazine. 2. Crie um Work Object no canto da folha. Create a Work Object on the pad of paper. 3. Crie uma rotina utilizando o Work Object para desenhar a primeira letra do seu nome no papel. 4. Agora mova o papel, redefina o Work Object e rode o programa novamente. IRC5 Programação Básica Programando com Offsets IRC5 © ABB Inc. -206 Programação Básica IRC5 Programação Programming Básica Basic Movemento Circular MoveC pCircle20 pCircle30 © ABB Inc. -207 pCircle40 IRC5 Programação Programming Básica Basic Movimento Circular Criando uma circunferência com MoveC’s pCircle20 This robtaget can be copied and pasted © ABB Inc. -208 pCircle50 pCircle30 pCircle40 Press Modify pos IRC5 Programação Programming Básica Basic Função Offset Função Offset Na tela de definição de ponto para uma instrução de movimento, escolha Função (Function) para habilitar movimento com deslocamento (offset). A Função Offs permite um deslocamento em referência a um ponto. Exemplo Utilizado para deslocar a partir Tipo de Velocidade da posição original Movimento Precisão C, J, L Move_ Offs(pStart,-100,0,0), v500, fine, toolx; © ABB Inc. -209 Z Offset Dado de Posicionamento para referência de deslocamento Y Offset X Offset IRC5 Programação Programming Básica Basic Trajetória circular Perfeita Para fazer um círculo perfeito MoveL pStart, v500, fine, toolx; MoveC Offs(pStart,-100,-100,0),Offs(pStart,-200,0,0),v500,z1,toolx; MoveC Offs(pStart,-100,100,0), pStart,v500,z1,toolx; Que sentido o círculo será desenhado? © ABB Inc. -210 Horário ou Anti-horário IRC5 Programação Programming Básica Basic Exemplo - Offset © ABB Inc. -211 Exemplo IRC5 Programação Programming Básica Basic Desenhando um Quadrado com Offsets MM Exemplo X 100 75 1 2 Em qual quadrante o quadrado será desenhado? 50 1 25 100 75 50 25 Y 2 3 4 -25 -50 -75 -100 MM -25 3 -50 pSTART 4 -75 -100 © ABB Inc. -212 A partir do exemplo anterior programe: pSTART _____________ é o PRIMEIRO ponto do desenho do ÚLTIMO ponto. quadrado e também é o ___________ IRC5 Programação Programming Básica Basic 1. Exercício 11 Adicione ao seu novo programa três rotinas que desenhem um um círculo, um quadrado e um triângulo utilizando somente um ponto ensinado. © ABB Inc. -213 Extra … Crie uma rotina que desenhe um espiral de 5 mm para 100 mm com passo de 5mm. IRC5 Programação Básica © ABB Inc. -214 Calibração e Sincronismo IRC5 Programação Básica IRC5 Programação Programming Básica Basic © ABB Inc. -215 Tópicos Sincronismo - Atualização do Contador de Revoluções (Revolution Counters Update) Calibração – (Fine Calibration) IRC5 Programação Programming Básica Basic Calibração – IRC5 © ABB Inc. -216 Calibração ou Sincronismo? O sincronismo poder ser realizado facilmente sem necessiadade de ferramentas especiais. Calibração necessita de ferramentas especiais. IRC5 Programação Programming Básica Basic Sincronismo Sincronismo (Rev.Counter) Indica a quantidade de voltas que o motor realizou em relação a posição zero absoluto do eixo. Se o controlador perder o sincronismo, os programas não poderão ser executados. O controlador notifica através de uma mensagem que o sincronismo precisa ser atualizado. (Ex.: Se o controlador for desligado com a bateria da SMB descarregada). © ABB Inc. -217 Se aparecer mensagem de evento do sistema informando diferença de valores: Ao sincronizar o manipulador e o controlador passam a ter os mesmos valores de calibração. IRC5 Programação Programming Básica Basic © ABB Inc. -218 Sincronismo (Updating Rev. Counters) 1. Utilizar o JoyStick para mover o robô para posição de sincronismo (Calibration Position) alinhando as marcas. IRC5 Programação Programming Básica Basic Procedimento de Sincronismo Mova o robô para as marcas de sincronismo. Pressione ABB : Calibração (Calibration) Selecione o robô a ser calibrado. Pressione Atualização do Contador de Rotações (Update Revolution Counter) 5. Pressione SIM (YES) para confirmar a operação. 6. Se necessário selecione os eixos a serem atualizados. 7. Pressione Atualizar (Update) e Atualizar (Update) novamente. © ABB Inc. -219 1. 2. 3. 4. IRC5 Programação Programming Básica Basic Verificando posição de Calibração © ABB Inc. -220 MoveAbsJ Criar uma nova rotina (GotoCalib) Inserir a instrução MoveAbsJ Selecionar o ponto da instrução “*”, pressionar Depurar (Debug), Exibir Valor (View Value) e inserir nos campos de cada um dos eixos o valor zero “0”. IRC5 Programação Programming Básica Basic Calibração (Fine Calibration) Calibração Indica através do resolver, o angulo atual do motor definido como zero absoluto do eixo. É calibrado na ABB ou no site com equipamentos especiais Somente se faz necessário novo ajuste de calibração quando é realizado a troca de motor ou caixa de redução © ABB Inc. -221 Requer ferramentas especiais! Não pode ser feito corretamente ajustando de forma visual. IRC5 Programação Programming Básica Basic © ABB Inc. -222 Editando os valores de calibração (Calibration Offsets) Edite no campo “Valor de desvio” (Offset value) os valores de calibração manualmente Utilize os valores definidos no arquivo moc.cfg (extraído a partir do Backup) ou os valores da etiqueta que está colada no manipulador contendo os valores de calibração dos seis eixos (válido somente para motores que não foram retirados). IRC5 Programação Programming Básica Basic Calibrando o robô com ferramentas especiais Ferramentas Especiais Nível Eletrônico Dispositivo ABB (para eixo 1) © ABB Inc. -223 Base de Nivelamento IRC5 Programação Programming Básica Basic Exercício 12 1. © ABB Inc. -224 2. Compare os valores de calibração configurados no controlador com os valores impressos na etiqueta do manipulador. Os valores conferem? Se não, notifique o instrutor. IRC5 Programação Básica Exercícios IRC5 © ABB Inc. -225 Programação Básica IRC5 Programação Programming Básica Basic Exercício 1 1 – Criar um programa simples que o robô possa atestar sua repitibilidade num ponto de referência ( ex. levar o TCP a uma Ponteira) e adicionalmente uma rotina de serviço para verificação da calibração e sincronismo. 1.1 – A calibração confere com os valores originais? 1.2 – O Sincronismo confere com as referências? 1.3 – Edite os valores de calibração. Após alteração a execução do programa sofreu alguma alteração? Justifique. © ABB Inc. -226 1.4 – Volte os valores anteriores de calibração. Sincronize o manipulador for a das marcas. Após alteração do sincronismo o programa sofreu alguma alteração? Justifique. IRC5 Programação Programming Básica Basic Exercício 2 2 – Crie um TCP utilizando o método dos 4 pontos. 2.1 – Ative a nova ferramenta e responda. Quais são as diferenças de coordenada da ferramenta após a criação do TCP? © ABB Inc. -227 2.2 – Liste 2 vantagens que há quando utilizamos uma ferramenta e fazemos a correta declaração da mesma no robô. IRC5 Programação Programming Básica Basic Exercício 3 3 – Crie um programa conforme pedido no layout (utilize o TCP adequado). O robô deve contornar a folha e voltar p/ posição de Home executando trajetórias que atendam ao exercício. 3.1 - Ajuste as velocidades e zonas de acordo com o processo. (velocidade máxima permitida = 400mm/seg). ROBOT o posição no espaço x posição no papel o pHome o p_aprox © ABB Inc. -228 p40 x p30 x x p10 x p20 IRC5 Programação Programming Básica Basic Exercício 4 4 – Implemente o programa com uma nova rotina chamada “quadrado”seguindo o layout. Utilizando um único ponto gravado (p_quad), o robô deve partir do ponto de aproximação e fazer um quadrado na folha. O quadrado deverá ter 100mm de lado. ROBOT o posição no espaço x posição no papel o pHome o p_aprox o p_aprox_1 p40 x p_quad x p10 © ABB Inc. -229 100mm p30 x x p20 IRC5 Programação Programming Básica Basic Exercício 5 5 – Implemente o programa com uma nova rotina chamada “arco”seguindo o layout. O robô deve partir do ponto de aproximação (p_aprox_2) e fazer um arco na folha passando pelo ponto (p_centro). A rotina termina com o robô no ponto de aproximação (p_aprox_3). ROBOT o posição no espaço x posição no papel o pHome o p_aprox o p_aprox_1 p40 x x p10 p_quad 100mm x p_centro © ABB Inc. -230 p_aprox_2 o p30 x o p_aprox_3 x p20 IRC5 Programação Programming Básica Basic Exercício 6 4 – Implemente o programa com uma nova rotina chamada “circulo”seguindo o layout. Utilizando um único ponto gravado (p_circ), o robô deve partir do ponto de aproximação e fazer um círculo contornando a parte superior da peça. O raio do tubo é de 31mm. ROBOT o posição no espaço x posição no papel/ peça o p_aprox_4 o pHome o p_aprox P_circ x o p_aprox_1 p40 x x p10 p_quad 100mm x p_centro © ABB Inc. -231 p_aprox_2 o p30 x o p_aprox_3 x p20 IRC5 Programação Programming Básica Basic Exercício 7 7 – A rotina main de um programa deve ser um “resumo de gerente”, portanto, deve ser elaborada de forma que possibilite fácil compreensão do programa. A main não possui detalhes do programa, porém, dá uma visão geral do que se trata o mesmo. 7.1 - Baseado nas informações acima reestruture o programa em uma rotina principal (main) e 4 sub-rotinas (retângulo, quadrado, arco, circulo). © ABB Inc. -232 7.2 - Partindo a execução do programa da rotina main, o robô deve ir para home e respectivamente executar o quadrado, circulo, arco, retangulo e após retornar para home. IRC5 Programação Programming Básica Basic Exercício 8 8 – Modifique o programa considerando que o robô está integrado a uma célula controlada por um PLC. O robô comporta-se como escravo (Slave) respondendo as solicitações do PLC. 8.1 - De acordo com a tabela implemente o programa. Escolha uma das entradas digitais configuradas no seu robô para simular o sinal do PLC. © ABB Inc. -233 Sinal do PLC Robô 0 Executar 1 Arco Executar 1 Retângulo 1 Executar 1 Círculo Executar 1 Quadrado IRC5 Programação Programming Básica Basic Exercício 9 9 – Modifique o programa seguindo a nova condição pedida na tabela. Utilize as instruções de controle de fluxo e implemente soluções diferentes entre sinal do PLC=0 e sinal do PLC=1. © ABB Inc. -234 Sinal do PLC Robô 0 Executar 2 Quadrados Executar 3 Retângulos 1 Executar 2 Círculos Executar 1 Arco IRC5 Programação Programming Básica Basic Exercício 10 10 – Crie um programa que interaja com o operador. O robô deverá executar a “peça” que o operador escolher (retângulo, quadrado, arco, circulo). © ABB Inc. -235 10.1 – Modifique o programa considerando que o robô está integrado a uma célula controlada por um PLC. O robô comporta-se como escravo (Slave) respondendo as solicitações do PLC. Ao ser iniciado o robô deve ir para home e aguardar acionamento do sinal do PLC como autorização para continuidade da execução do programa. Escolha uma das entradas digitais configuradas no seu robô para simular o sinal do PLC. Sinal do PLC Robô 0 Parado em Home aguardando autorização 1 Continuidade na execução do programa IRC5 Programação Programming Básica Basic Exercício 11 11 – Implemente o programa. O robô deverá executar a “peça” que o operador escolher (retângulo, quadrado, arco, circulo) e a quantidade de “peça” que o © ABB Inc. -236 operador solicitar. O operador pode solicitar apenas uma peça por vez. IRC5 Programação Programming Básica Basic Exercício 12 12 – Implemente o programa. O robô deverá executar a “peça” que o operador escolher (retângulo, quadrado, arco, circulo) e a quantidade de “peça” que o © ABB Inc. -237 operador solicitar. O operador pode solicitar quantas peças desejar de uma só vez, porém o robô não precisa necessariamente executar na sequência pedida. IRC5 Programação Programming Básica Basic Exercício 13 © ABB Inc. -238 13 – Implemente o programa. A cada 6 “peças” produzidas (independente do modelo) o robô deverá acionar um sinal para o PLC informando que um lote foi finalizado. O sinal que será disponibilizado pelo robô deverá ser mantido por 3 segundos. Após a finalização de um lote o robô continua executando as demais peças solicitadas pelo operador, se houver. IRC5 Programação Programming Básica Basic Exercício 14 14 – Implemente o programa. Após o término da execução das peças solicitadas informe ao operador a quantidade total de “peças” produzidas no dia e por tipo de peça. © ABB Inc. -239 14.1 – Implemente o programa. Informe ao operador qual foi o tempo de ciclo do último lote produzido. IRC5 Programação Programming Básica Basic Exercício 15 © ABB Inc. -240 15 – Implemente o programa. O robô deverá executar as “peças” escolhidas de acodo com as quantidades respeitando a sequência pedida, ou seja, o robô deve executar o programa na sequência exata conforme solicitado pelo operador. IRC5 Programação Programming Básica Basic © ABB Inc. -241 Exercício 16 16 – Em uma célula mestre/escravo onde o robô interage com o PLC programe. O robô deve fazer a leituda dos sinais enviados pelo PLC conforme tabela e manipular as peças da esteira de entrada para esteira de saída. O ciclo é finalizado quando o palete estiver completo através do sinal do robô p/ PLC. Utilize o mapa de sinais discretos descrito na tabela ou os grupos de entrada e saída configurados assim: grupo_entrada -> DI08 – DI13 grupo_saída -> DO08 – DO13 Esteira de Esteira de Entrada A Entrada B 0 1 C/ S/ DI08 Pegar na esteira A Pegar na esteira B A6 A3 LOGO LOGO B3 B6 DI09 Posição (A1/B1) sem Logo Posição (A1/B1) com Logo DI10 Posição (A2/B2) sem Logo Posição (A2/B2) com Logo DI11 Posição (A3/B3) sem Logo Posição (A3/B3) com Logo A5 A2 C6 C3 B2 B5 DI12 DI13 Robô desabilitado Robô habilitado A4 A1 C5 C2 B1 B4 DO01 Desliga Vácuo Liga Vácuo DO08 DO09 C4 C1 DO10 Esteira de DO11 Saída C DO12 Palete Incompleto Pelete Completo DO13 IRC5 Programação Programming Básica Basic Resumo - Instruções / Funções de Programa Instruções de Movimento Instruções de Espera WaitTime WaitDI WaitUntil CDate CTime CLKStart CLKReset CLKStop Funções de Movimento TPWrite TPErase TPReadFK TPReadNum Instruções de Tempo Set Reset SetDO InvertDO PulseDO := ADD Incr Decr Clear Instruções Interface © ABB Inc. -242 Instruções de I/O ProcCall IF Compact IF While For Goto Label Test Stop Instruções de Matemáticas MoveJ MoveL MoveC MoveAbsJ Instruções de Controle de Fluxo OffSet Funções de Clock CLKRead OBS: Para conhecer demais Instruções / Funções consultar manual de Programação RAPID IRC5 Programação Programming Básica Basic Contatos ABB © ABB Inc. -243 Coordenação de Treinamentos Charles Souza charles.souza@br.abb.com 11 3688-8481 Coordenação Técnica Margareth Silva margareth.silva@br.abb.com 11 3688-9223 Suporte Técnico Ricardo Maia ricardo.maia@br.abb.com 11 3688-9032 Plantão 24h ABB plantão.24horas@br.abb.com 0800-12-2500 IRC5 Programação Programming Básica Basic © ABB Inc. -244 Em Branco IRC5 Programação Programming Básica Basic © ABB Inc. -245 Avaliação do Curso IRC5 Programação Programming Básica Basic © ABB Inc. -246 Avaliação do Curso IRC5 Programação Programming Básica Basic © ABB Inc. -247 Em Branco