Baixe o app para aproveitar ainda mais
Prévia do material em texto
IRC5 Programming Basic IRC5 Programação Avançada IRC5 Advanced Programming © A B B In c. -2 Bem-vindos! Sejam Bem-vindos ao primeiro Centro de Treinamento ABB em Automação e Robótica da América Latina! IRC5 Advanced Programming © A B B In c. -3 Conteúdo Introdução 04 Informações Gerais do Curso 13 Objetivos do Curso 15 Segurança 16 Robot Studio Online, Sistema Operacional 23 Robot Studio Online, Configurações 51 TCP Complexos 58 Modulos, Rotinas e Dados 66 Interrupções e Traps 81 Instruções de Procura e Tratativa de erros 93 Deslocamento de Programa (PDisp) 106 Zonas de Trabalho (World Zones) 113 Instruções Avançadas 118 Work Objects 126 Exercícios de Revisão (Prog. Básica) 133 Resumo - Instruções Básicas/ Funções de Programa 150 Contatos ABB 151 Avaliação do Curso 153 IRC5 Advanced Programming © A B B In c. -4 Introdução Apresentações ABB Robótica ABB Treinamento ABB IRC5 Advanced Programming © A B B In c. -5 O mundo ABB 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 Advanced Programming © A B B In c. -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 Advanced Programming © A B B In c. -7 ABB - Portifólio Como estamos organizados 5 Divisões Globais Produtos de Potência Sistemas de Potência Discrete Automation and Motion Automação de Processos $11.2 bilhões 33.500 funcionários $6.5 bilhões 16.000 funcionários $5.4 bilhões 18.000 funcionários $7.8 bilhões 28.000 funcionários Faturamento em 2009 (US$; valores pró-forma para as divisões de automação) Produtos de Baixa Tensão $4.1 bilhões 19.000 funcionários 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 baixa- tensão Robótica e sistemas robotizados Portfólio ABB: IRC5 Advanced Programming © A B B In c. -8 ABB Energia e automação estão em torno de nós Você encontrará a tecnologia ABB... cruzando oceanos e no fundo do mar, funcionando em órbita ao redor do planeta, nos trens em que viajamos e nas instalações que processam nossa água, nos campos onde crescem nossas safras e nas embalagens dos nossos alimentos, nas usinas que geram nossa energia e em nossas casas. IRC5 Advanced Programming © A B B In c. -9 Pioneira em tecnologia desde 1883 Os fundadores 1900 Robôs industriais Turbochargers HVDC Ultra-alta tensão Painéis isolados a gás Acionamentos e inversores de frequência Turbina a vapor 1920 1930 1940 1990 2000 19601970 Turbina a gás 1950 Motor sem redutor 1980 Sistemas de propulsão elétrica Sistemas de controle distribuído ABB - Inovação IRC5 Advanced Programming © A B B In c. -1 0 ABB Inovação, paixão e diversidade são as marcas da ABB "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 Advanced Programming © A B B In c. -1 1 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 Advanced Programming © A B B In c. -1 2 Treinamento ABB Centro de Treinamento Centro de Treinamentos na Região Sudeste e Sul Osasco – SP Curitiba – PR Treinamentos no cliente Escopos dos Treinamentos 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 Advanced Programming © A B B In c. -1 3 Informações Gerais do Curso Regulamentos 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 Advanced Programming © A B B In c. -1 4 Informações Gerais do Curso Perfil do Aluno: Técnicos e engenheiros que irão atuar no desenvolvimento de programas robotizados. Pré-Requisitos: Possuir o curso de Operação e Programação Básica para robôs IRC5 e/ou comprovar conhecimentos compatíveis com o solicitado. 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 . Bom Curso!!! IRC5 Advanced Programming © A B B In c. -1 5 Objetivos do Curso Operar o robô e seus programas com segurança; Criar, Configurar e carregar software de Sistema; Criar e utilizar Módulos, Rotinas e Dados; Criar TCP complexo; Programar utilizando Instruções de Procura; Programar utilizando Instruções de deslocamento de pontos; Programar utilizando Tratativa de Erros; Programar utilizando de Instruções de Interrupção e Traps; Utilizar instruções de configuração de juntas; Programar utilizando World Zones; Utilizar instruções de Controle de Movimento. O objetivo deste treinamento é ensinar aos participantes elaborar e interpretar programmas de complexidade avançada, bem como atuar na correção/optimização de programmas conforme recursos apresentados. Ao concluir o curso o aluno estará apto a: IRC5 Programming BasicSegurança IRC5 Programação Avançada IRC5 AdvancedProgramming © A B B In c. -1 7 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 Advanced Programming © A B B In c. -1 8 Evitar Colisões Modo de Operação Auto Manual < 250 mm/s Manual 100% Travamento (Lock Outs) Botão Enabling device (Dead mans grip) Botão de Hold-to-run (para destros ou canhotos) Botão Hold-to-run Limite de Área de Trabalho Parada de Emergência (ES) Cadeia de Segurança (Safeguard stop/ Run-Chain) Segurança - Revisão Enabling deviceEnabling device IRC5 Advanced Programming © A B B In c. -1 9 Procedimentos de Segurança ABB IRC5 Advanced Programming © A B B In c. -2 0 Procedimentos de Segurança ABB IRC5 Advanced Programming © A B B In c. -2 1 Procedimentos de Segurança ABB IRC5 Advanced Programming © A B B In c. -2 2 Procedimentos de Segurança ABB ABB - Osasco IRC5 Programação Avançada Robot Studio Online & Sistema Operacional IRC5 Advanced Programming © A B B In c. -2 4 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 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 Advanced Programming © A B B In c. -2 5 Conectando com o Controlador IRC5 Existe dois modos de se conectar ao Controlador IRC5: •Porta de Serviço - Service (DHCP – endereçamento de IP automático) •Porta de Rede - LAN (Configurável)(Necessário opcional de interface com PC) Service LAN (Local Area Network) IRC5 Advanced Programming © A B B In c. -2 6 Carregando o Software no Controlador IRC5 O Robot Studio Online é sempre o ponto inicial para instalação de um novo sistema operacional. O R.S.O. é a ferramenta onde configuramos as características do sistema e como este deverá funcionar, antes de carregá-lo no controlador do robô (Controlador IRC5). O Downloading do sistema poderá ser feito de três formas através do R.S.O.: Via USB (USB-memory). Através da porta de Serviço Ethernet. Através da porta de Rede Ethernet (LAN). IRC5 Advanced Programming © A B B In c. -2 7 O que é RobotWare (RW)? Robotware (system pack, operating system, etc) É o Sistema Operacional do Controlador, poderíamos chamá-lo de “Windons” do Controlador. Existem diferentes versões de RW. Na janeja Propriedades do Sistema (system properties) podemos visualizar a versão atual . Ex: 5.06.0.0095 A versão do RW está armazenada no Mediapool que é localizado por padronização em: C:\Program Files\ABB Industrial IT\Robotics IT\Mediapool RW é carregado para um diretório na Flash Disk do IRC5. IRC5 Advanced Programming © A B B In c. -2 8 O que é um Robot System? Um Robot System é: Um determinado número de arquivos são necessários para que o robô possa funcionar/ operar, estes arquivos são carregados no HardDrive do Controlador IRC5. O arquivo System.xml é o arquivo que aponta par todos demais arquivos de sistema. Diretórios Padrão no Sistema IRC5 O diretório BACKUP pode ser usado para armazenar backups do robô. Atenção! Na execução de um Cold Start todas informações deste diretório serão perdidas. O diretório INTERNAL tem informações específicas de sistema. Este diretório é protegido e não está disponível para o usuário. IRC5 Advanced Programming © A B B In c. -2 9 O que um Robot System contém? Home- Diretório Padrão Este diretório é destinado aos usuários, por exemplo, neste diretório o usuário pode salvar programas e outros arquivos que se deseja acessar diretamente do controlador. Dentro deste diretório usuário poderá ainda criar seus subjacentes diretórios/ estrutura de arquivos. OBSERVE! Este diretório está localizado abaixo do seu Robot System. Exemplo: Se seu Robot System foi nomeado como 14_50048 o diretório Home estará localizado abaixo/ dentro dele. 14_50048/Home. Atenção! Na execução de um Cold Start todas informações deste diretório serão perdidas. IRC5 Advanced Programming © A B B In c. -3 0 O que um Robot System contém? Diretório Padrão SYSPAR Neste diretório são armazenados informações dos parâmetros gerados na criação do sistema (Robot System). Neste diretório encontra-se os Parâmetros de Sistema, estes parâmetros são únicos para cada robô (Robot System). Não modifique nenhuma configuração dos Parâmetros de Sistema a menos que tenha certeza do que está fazendo. IRC5 Advanced Programming © A B B In c. -3 1 Métodos para carregar um sistema Memória USB Porta de Serviço Porta LAN IRC5 Advanced Programming © A B B In c. -3 2 Carregando sistema utilizando Memory stick Vantagens Rápido e seguro comparando-se a utilização de disquetes (Floppy Disk). Desvantagens Não é possível ler/ escrever arquivos uma vez que o é criado e armazenado no Memory Stick. Download lento quando comparado ao uso da porta Ethernet visto que uma etapa adicional é necessária: Carregar do R.S.O para Memorystick e do Memorystick para o Controlador. Sistema somente carregado do diretório raiz. IRC5 Advanced Programming © A B B In c. -3 3 Carregando sistema utilizando a Porta LAN Vantagens Tudo pode ser controlado através de um PC Todos controladores conectados a LAN podem ser acessados através do R.S.O. Rápido Desvantagens Necessita de maiores configurações quando comparado com o uso de Memory Stick Necessário interface de software no PC IRC5 Advanced Programming © A B B In c. -3 4 Carregando sistema através da porta Service Vantagens Configuração de rede que é valida para todos controladores IRC5, dada automaticamente a partir da porta de serviço (Service). Rápido quando comparado ao uso de Memory stick. Desvantagens Necessário conecção Ethernet entre PC e Controlador IRC5. (cabo trançado ou hub/switch) Não pode conectar múltiplos robôs. IRC5 Advanced Programming © A B B In c. -3 5 Antes de carregar um sistema! Para carregar um sistema executar um X-start ou um C-start. Não necessário se carregarmos a partir do R.S.O. Para caregar o sistema a partir do R.S.O. é necessário autorização de escrita (write access). IRC5 Advanced Programming © A B B In c. -3 6 Telas do Robot Studio Online Robot View ExplorerWork SpaceMenu BarController StatusTool Bars IRC5 Advanced Programming © A B B In c. -3 7 RSO System Builder (construção do Sistema) IRC5 Advanced Programming © A B B In c. -3 8 Licença parainstalação do Robot System A Licença (KeyString) é encontrada na folha de especificação do produto que é entregue ao cliente junto com o robô. As chaves de licença (KeyString) irão “desbloquear” os opcionais que o cliente comprou e deseja instalar. As chaves de licença também podem ser encontradas no backup. Licença do Módulo de Controle Licença do Móduo de Acionamento IRC5 Advanced Programming © A B B In c. -3 9 O que um Robot System contém? Software opcionais / preferências Os opcionais de software podem ser diferentes para cada robô. Por exemplo, se você estiver utilizando um manipulador para solda à ponto (Spot welding) provavelmente necessitará de um opcional chamado SpotWare. Existem muitos opcionais disponíveis de acordo com a aplicação que o manipulador terá. A chave de Licença desbloqueia os opcionais adquiridos para o robô. OBSERVE! Não é necessário instalar todos opcionais de software caso não forem utilizados. IRC5 Advanced Programming © A B B In c. -4 0 RSO System Builder (Construindo Sistema) IRC5 Advanced Programming © A B B In c. -4 1 Utilizando o Robot Studio Online Tela inicial do Robot Studio IRC5 Advanced Programming © A B B In c. -4 2 Utilizando o Robot Studio Online Crie um novo robô (robot view). (Pode utilizar-se de vários robôs) IRC5 Advanced Programming © A B B In c. -4 3 Utilizando o Robot Studio Online Clique com botão direito no Controlador IRC5 Advanced Programming © A B B In c. -4 4 Adicione um Controlador Adicione um controlador para se comunicar. IRC5 Advanced Programming © A B B In c. -4 5 Visualização de Eventos Visualização de eventos atuais e passados no sistema. IRC5 Advanced Programming © A B B In c. -4 6 IRC5 FlexPendant & R.S.O O FlexPendant e RobotStudioOnline trabalham juntos IRC5 Advanced Programming © A B B In c. -4 7 Utilizando o R.S.O. Localizando seu programa Rapid. IRC5 Advanced Programming © A B B In c. -4 8 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 Advanced Programming © A B B In c. -4 9 RSO - Relembrando Assista a demonstação do Instrutor. Lembre-se dos seguintes detalhes: •Você está conectado e modificando o robô ao vivo! •É necessário solicitar escrita “Request Write Access” e concedê-la através do FP (grant) antes de realizar quaisquer modificações. •A Autorização de Usuário pode ser utilizada para limitação de acesso (User Authorization). •Feche o aplicativo ao término das modificações. IRC5 Advanced Programming © A B B In c. -5 0 Exercício 1 1. Crie um simples programa de movimentos. 2. Crie um Backup do sistema atual. 3. Localize a Chave de Licença no backup. 4. Crie um novo sistema a partir do backup criado no passo 2. 5. Restaure o Backup. IRC5 Programação Avançada Robot Studio Online Configurações IRC5 Advanced Programming © A B B In c. -5 2 RSO Configurações Existem 5 tipo de parâmetros. Com um duplo clique você visualizará o conteúdo. IRC5 Advanced Programming © A B B In c. -5 3 I/O Configurações IRC5 Advanced Programming © A B B In c. -5 4 Adicionando sinais de I/O Para adicionar um sinal de I/O: 1. Duplo Clique no robô e solicitar acesso de escrita. 2. Expandir a visualização do robô em “árvore”.(pressionar “+” em frente do controlador) 3. Expandir “Configuration” 4. Escolha janela “I/O” através de um duplo clique 5. Clique em “signal”. 6. Clique com botão direito em “signal”. 7. Escolha “Add Signal”. 8. Defina o Nome “Name”, Tipo do Sinal “Type of Signal”, Atrubuindo à Unidade “Assigned to unit” e Endereço “Unit Mapping”. IRC5 Advanced Programming © A B B In c. -5 5 Configurações de Movimento IRC5 Advanced Programming © A B B In c. -5 6 Teclas Programáveis 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 Advanced Programming © A B B In c. -5 7 Exercício 2 1. Configure o sistema de I/O. 2. Configure via software a limitação do eixo1. 3. Configure a Tecla Programável 1 para abrir e fechar uma Garra. IRC5 Programação Avançada TCP(s) Complexos IRC5 Advanced Programming © A B B In c. -5 9 Sistema de Coodenadas da Ferramenta Sistema de Coordenadas Benefícios ao utilizar uma ferramenta: Movimentação Reorientação Facilidade de alteração do ponto Z Y Coordenada de Base (Base coordinates) Z Y X X Coordenada da Ferramenta (Tool coordinates) Coordenada da Ferramenta (Tool0) IRC5 Advanced Programming © A B B In c. -6 0 Sistema de Coordenadas Veja diferentes exemplos de ferramenta e TCPs (Tool Center Points). TCP TCP TCP TCP TOOL0 A Tool0 sempre é a referência de Posicionamento para as demais ferramentas IRC5 Advanced Programming © A B B In c. -6 1 Métodos de TCP Ponteira Fixa Existem três métodos para se definir um TCP: TCP (Sem orientação) TCP & Z TCP & Z, X Através do X e Z “Elongators” podemos definir a orientação de uma coordenada de ferramenta. Z - Elongator X - Elongator IRC5 Advanced Programming © A B B In c. -6 2 Coordenada de Ferramenta sem Elongators Se o método de TCP (Sem orientação) é usado a ferramenta assumirá a coordenada de ferramenta padrão conforme ilustração abaixo. +Z IRC5 Advanced Programming © A B B In c. -6 3 Coordenada de Ferramenta com Elongators X Z Se o médoto TCP & Z ou TCP & Z, X é usado, podemos definir a coordenada da Ferramenta (orientação). IRC5 Advanced Programming © A B B In c. -6 4 TCP Estacionário Um TCP Estacionário é um TCP que não está fixo no robô. T_Nozzel Wobj_Peca T_Garra Um TCP Estacionário é sempre utilizado com um Work Object fixo ao robô. Um TPC Estacionário é ensinado utilizando outroTCP que esteja fixo ao robô. IRC5 Advanced Programming © A B B In c. -6 5 Exercício 3 1. Crie um TCP para a ferramenta fixada ao seu robô utilizando o Método TCP Z ,X. Teste. 2. Crie outro TCP considerando uma ferramenta que não está fixada ao robô. IRC5 Programação Avançada Módulos, Rotinas e Dados IRC5 Advanced Programming © A B B In c. -6 7 Utiliza-se módulos para dividir a Memória de Programa em secções. Facilita Salvar e Restaurar informações de programa. Existem dois tipos de Módulos que são: 1. Módulos de Programa (Program Modules) 2. Módulos de Sistema (System Module) Módulos Lembre-se que não pode haver módulos com nomes iguais. IRC5 Advanced Programming © A B B In c. -6 8 Memória de Sistema Sistema Operacional VXWorks Parâm etros de Sistem a (SysPar) Memória do UsuárioAplicativo de Software RAPID Fora de escala. Utilizado somente para fins didáticos. IRC5 Advanced Programming © A B B Inc. -6 9 Memória do Usuário (User Memory) Task: T_Rob1 MainModule Main Data Data User (system Module) Data Base (system Module) More… Task: T_Rob2 MainModule Main Data Data User (system Module) Data Base (system Module) More… Task: BackGround1 MainModule Main Data IRC5 Advanced Programming © A B B In c. -7 0 Existem dois tipos de Módulo: Program (.mod) System (.sys) Um módulo consiste em: Rotinas Dados Tipos de Módulos MainModule Main Data rPickUp rDropOff IRC5 Advanced Programming © A B B In c. -7 1 MODULE modulo1(SYSMODULE,VIEWONLY) !Declaração de Dados !Rotinas !Instruções ENDMODULE Atributo de Módulos Um módulo pode ter os seguintes atributos: SYSMODULE NoStepIn ViewOnly ReadOnly NoView Os Atributos de Modulos podem ser adicionados somente em offline. (Exceto SYSMODULE) IRC5 Advanced Programming © A B B In c. -7 2 Pasta Novo_programa MODULE MainModule PROC main() Rotuine1; Routine2; ENDPROC PROC Routine1() MoveL; ENDPROC PROC Routine2() MoveL; ENDPROC ENDMODULE <?xml version="1.0" encoding="ISO-8859-1" ?> <Program> <Module>ModuleA.mod</Module> <Module>MainModule.mod</Module> </Program> Novo_programa.pgf MainModule.mod MODULE ModuleA PROC RoutineA1() MoveL; MoveL; ENDPROC ENDMODULE ModuleA.mod Estrutura de Arquivo de Programa O Backup salvará todas informações SAVING PROCEDURE 1. Pressione menu “ABB”. 2. Pressione “Program Editor”. 3. Selecione “Robot Task”. 4. Pressione “Tasks and Programs”. 5. Selecione uma Task se existem múltiplos robôss. 6. Pressione “File” 7. Pressione “Save Program as”. 8. Escolha o destino para armazenamento e digite o nome desejado. 9. Pressione “OK” IRC5 Advanced Programming © A B B In c. -7 3 O Backup salvará todas informações Salvando Módulos 1. Pressione menu “ABB”. 2. Pressione “Program Editor”. 3. Selecione a Task. 4. Pressione “Modules”. 5. Pressione “Module to save”. 6. Pressione “File” and “Save Module As”. 7. Escolha o destino para armazenamento e digite o nome desejado. 8. Pressione “OK”. MODULE ModuleA PROC RoutineA1() MoveL; MoveL; ENDPROC ENDMODULE ModuleA.mod IRC5 Advanced Programming © A B B In c. -7 4 Main Routine MoveJ p10 . . . IF . . . rStyle1 ELSEIF . . . rStyle2 . . . Return rStyle1 MoveL p20 . . . . . . Return rStyle2 MoveL p210 . . . . . . Return P10 DATA: P20 P210 Rotinas Todo programa precisa ter uma rotina Main. A instrução ProcCall é utilizada para chamada de outras rotinas. IRC5 Advanced Programming © A B B In c. -7 5 Rotinas são usadas para: 1. Organizar o Programa. 2. Repetir uma Tarefa. Tipo de Rotinas: 1. PROCEDURE = Para movimentos e processos. 2. FUNCTION = Para cálculos matemáticos. 3. TRAP = Para controle de instruções de Interrupção. Rotinas IRC5 Advanced Programming © A B B In c. -7 6 Dados Existem dois tipos de dados (Data Types): Atomic (Bool, Num, and String) Record (Robtarget, Tooldata, Wobjdata, …) Existem três diferentes tipos de declaração de dados: Variable Constant Persistant IRC5 Advanced Programming © A B B In c. -7 7 Extensão de Dados As diferenças entre Dados de Programa e Dados de Rotina são: Dados de Programa – Pode ser “visto” em qualquer parte do programa. A extensão de um dado pode ser definida como: Global Local MODULE module1(SYSMODULE) LOCAL Var num nCounter:=0; PROC routine1() Var num nLocalCounter; !Instructions EndProc ENDMODULE Dados de Rotina – Pode ser “visto” somente dentro da rotina. Task IRC5 Advanced Programming © A B B In c. -7 8 Matriz de Dados 3132 3145 4532 1276 8634 3344 22 1276 11 7886 5569 6 332 556 665 8944 456 11 -677 446 nOffsets IRC5 Advanced Programming © A B B In c. -7 9 Um tipo de dado ARRAY se constitui uma Matriz, portanto é uma forma de armazenar vários dados em um único local. Uma Matriz pode ser de 1, 2, ou 3 dimensões. Programa exemplo: CONST num reg6{5}:=[3132,3145,4532,1276,8634] For i from 1 to 5 do TPWrite “O valor atual é "\Num:=reg6{i}; … Matriz de Dados IRC5 Advanced Programming © A B B In c. -8 0 Exercício 4 1. Crie um novo Módulo de Sistema. 2. Coloque as declarações de ferramenta do último exercício dentro do novo Módulo. 3. Crie 1 dos programas descritos abaixo: A. Crie um programa que simule dispensing. O Programa deverá usar um TCP fixo ao manipulador ou um TCP estacionário. Crie as seguintes rotinas: Main, rPega, rDeposita, rDispenserOn, rDispenserOff, rStyle1, rStyle2. Programe a rotina Main para executar rPega, rStyle1 e rDeposita quando o sinal de entrada _______ for acionado. Programe a rotina Main para executar rPega, rStyle2 e rDeposita quando o sinal de entrada _______ for acionado. Nas rotinas rStyle1 e 2 mova o robô até a folha e desenhe a inicial de seu nome. Coloque as rotinas rPega e rDeposita em um novo Módulo de Sistema. B. Crie um programa que simule manipulação de Materiais (MH). O Programa deverá usar um tGarra parra o TCP. Crie as seguintes rotinas: Main, rAlimentador1, rAlimentador2, rTorno, rInspecao, rEsteira e rService. Programe a rotina Main para executar rAlimentador1, rTorno, rInspecao e rEsteira quando o sinal de entrada _______ for acionado. Se o sinal de entrada _______ for acionado programe a rotina Main para executar rAlimentador2, rTorno, rInspecao e rEsteira. Programe o robô para a cada 3 peças inspecionadas na rotina rInspecao aguarde o sinal de entrada _______ ser acionado. 4. Adicione Matrizes de Dados (Arrays) no seu programa: (uma matriz com mais de 8 componentes.) A. Para o programa que simula dispensing. Criar 2 matrizes simples para utilizá-la como offset. Crie uma nova rotina de estilo (rStylexx) que desenhe circulos no papel através de offset e arrays. B. Para o programa que simula (MH). Crie 2 matrizes simples representando configuração de offset de um palete. Substitua a Esteira por um Palete que utiliza valores de uma Matriz para gerar os offsets de empilhamento. (Opcional) IRC5 Programação Avançada Interrupções e Traps IRC5 Advanced Programming © A B B In c. -8 2 Definição de Interrupção Um evento que dispara um salto temporário para uma rotina Trap. O que é uma Interrupção? IRC5 Advanced Programming © A B B In c. -8 3 Associa uma interrupção com uma específica rotina Trap. Desassocia uma interrupção de uma específica rotina Trap. Atribui um sinal de entrada Digital a uma interrupção. Atribui um sinal de saída Digital a uma interrupção. Ativa uma interrupção APÓS um tempo específico. Não permite ocorrer interrupções, mas registra eventos de interrupção em um buffer para processamento posterior. Permite interrupções ocorrerem novamente. Desativa uma interrupção, e NÃO registra eventos de interrupção para um processamento posterior. Ativa uma interrupção novamente. Instruções de Interrupção INSTRUÇÃO DESCRIÇÃO CONNECT IDELETE ISIGNALDI ITIMER IDISABLE IENABLE ISLEEP IWATCH ISIGNALDO IRC5 Advanced Programming © A B B In c. -8 4 Ativa um Evento de Interrupção a partir de um erro Ativa um Evento de Interrupção a partir da mudança de valor de um dado tipo Persistente Ativa um Evento de Interrupção a partir da mudança de valor de um dado Variável. Ativa um Evento de Interrupção a partir de uma AI Ativa um Evento de Interrupção a partir de uma AO Ativa um Evento de Interrupção a partir de um GI Ativaum Evento de Interrupção a partir de um GO Instruções de Interrupção INSTRUÇÃO DESCRIÇÃO IError IPers ISignalAI ISignalGI ISignalGO IVarValue ISignalAO IRC5 Advanced Programming © A B B In c. -8 5 Criando uma rotina "TRAP" para utilizar com uma interrupção Rotina Trap Ao criar uma rotina selecionar o campo Type. Escolher “Trap”. IRC5 Advanced Programming © A B B In c. -8 6 Exemplo de Interrupção IRC5 Advanced Programming © A B B In c. -8 7 Interrupção - Connect Conecta uma interrupção com uma rotina TRAP Variável nomeada para interrupção. TRAP rotina nomeada para interrupção intFlowFault with trapFAULT Connect IRC5 Advanced Programming © A B B In c. -8 8 Interrupção - ISignalDI Associa um INPUT /Evento com um sinal digital Sinal Digital Interrupção OPT ARG /Single = Somente uma ocorrência No OptArg. = Todas ocorrências Valor do sinal para ativar Evento de disparo da interrupção deslocando o programa para TRAP Di6_Flowing, 0, intFlowFault IRC5 Advanced Programming © A B B In c. -8 9 Exemplo de Rotina Trap fine IRC5 Advanced Programming © A B B In c. -9 0 Event Routines Existem vários eventos de sistema que podem ser utilizados na linguagem de prgramação RAPID como: 11a POWER ON START RESTART STOP QSTOP RESET O robô é ligado. Quando o programa é inicializado. Quando o robô é inicializado da última posição que estava. Quando o programa é parado (não cycle stop). Quando o programa é parado bruscamente (ES). Quando o programa antigo é apagado. COMANDO DESCRIÇÃO 20 rotinas podem ser associadas para cada evento. IRC5 Advanced Programming © A B B In c. -9 1 Configurando um Evento de Sistema IRC5 Advanced Programming © A B B In c. -9 2 Exercício 5 1. Dependendo do programa que você fez no último exercício faça os seguintes: A. Para o programa que simula dispensing. Adicione rotinas para acionar e desacionar o fluxo. Monitore o fluxo após acionado. Se o fluxo desacionar enquanto o robô executa o desenho o mesmo deverá parar, mover-se para posição de serviço e aguardar o operador pressionar “Continue” na tela do FlexPendant. Após autorização do operador, o robô deverá continuar o programa do mesmo ponto que parou. B. Para o programa que simula (MH). Adicione uma rotina para pegar e soltar a peça. Monitore se há presença de peça na Garra (use a imaginação, simule através de um sinal de entrada). Se a peça cair enquanto o programa estiver rodando o robô deverá parar, mover-se para posição de serviço e aguardar o operador pressionar “Continue”na tela do FlexPendant. Após autorização do operador, o robô deverá continuar o programa do mesmo ponto que parou. 2. Adicione uma Event Routine que: A. Para o programa que simula dispensing. Se o programa for parado enquanto desenha, desacione o fluxo. Quando reiniciado, acione novamente o fluxo. B. Para o programa que simula (MH). Se o programa for parado no meio do ciclo acione a saída ________ . Após reinício do ciclo desacione a mesma. IRC5 Programação Avançada Instruções de Procura e Tratativa de Erros IRC5 Advanced Programming © A B B In c. -9 4 Porque utilizar Instruções de Procura (Searching) ? Instruções de Procura é um modo de adicionar flexibilidade ao Robô. Instruções de Procura podem ser utilizadas para: Inspeção Localizar partes IRC5 Advanced Programming © A B B In c. -9 5 Instruções de Procura SearchL é utilizado para efetuar procura ao longo de uma tragetória linear. SearchC é utilizado para efetuar procura ao longo de uma tragetória em arco. Exemplo: IRC5 Advanced Programming © A B B In c. -9 6 Instruções de Procura SearchL \Stop, di_SearchSensor, pFound, pEndSearch, v100, tSensor Para quando a parte é encontrada Sinal de disparo Variável de ponto que armazena a posição encontrada (p_Found precisa ser uma variável) Ponto Final Velocidade durante procura. TCP IRC5 Advanced Programming © A B B In c. -9 7 Características de Instruções de Procura pSearchStart pFound STOP pSearchEnd escorregamento Posição onde o sinal de disparo foi acionado. (robtarget data type=Variável) Percurso deslocado após detecção do sinal de disparo. Ponto final para Procura. Pto de destino. MOVEJ pSearchStart ,V1000, fine, tSearchSensor; Utilizado como uma referência inicial para procura IRC5 Advanced Programming © A B B In c. -9 8 Tratativa de Erros (Error Handling) Todas rotinas podem ter Tratativa de Erros. Uma Tratativa de Erro (Error Handling) é configurado na declaração de uma rotina. IRC5 Advanced Programming © A B B In c. -9 9 Identificação de Erros A variável “ERRNO” armazena o erro atual do sistema. Esta variável pode ser usada na Tratativa de Erros para identificar que erro ocorreu e programar a apropriada ação para o mesmo. O Tipo de Dados “Errnum” tem uma listagem de todos Erros padrão. (Veja próxima página) IRC5 Advanced Programming © A B B In c. -1 00 Tipo de Dados - Errnum Name Cause of error ERR_ACC_TOO_LOW Too low acceleration/deceleration specified in instruction "2or 2 ERR_ALRDYCNT The interrupt variable is already connected to a TRAP routine ERR_ALRDY_MOVING The robot is already moving when executing a , !+,!+instruction ERR_AO_LIM ,2 analog signal value outside limit in 0& 0/K or0, ERR_ARGDUPCND More than one present conditional argument for the same parameter ERR_ARGNAME Argument is expression, not present or of type switch when executing ArgName ERR_ARGNOTPER Argument is not a persistent reference ERR_ARGNOTVAR Argument is not a variable reference ERR_AXIS_ACT Axis is not active ERR_AXIS_IND Axis is not independent ERR_AXIS_MOVING Axis is moving ERR_AXIS_PAR Parameter axis in instruction TestSign and SetCurrRef is wrong. ERR_BWDLIMIT Limit StepBwdPath ERR_CALLIO_INTER If an IOEnable or IODisable request is interrupted by another request to the same unit ERR_CALLPROC Procedure call error (not procedure) at runtime (late binding) ERR_CFG_INTERNAL Not allowed to read internal parameter- # ERR_CFG_ILLTYPE Type mismatch - #, # ERR_CFG_LIMIT Data limit - # ERR_CFG_NOTFND Not found - #, # ERR_CNTNOTVAR CONNECT target is not a variable reference ERR_CNV_NOT_ACT The conveyor is not activated. ERR_CNV_CONNECT The ? instruction is already active. ERR_CNV_DROPPED The object that the instruction ? was waiting for has been dropped. ERR_DEV_MAXTIME Timeout when executing a ReadBin, ReadNum or a ReadStr instruction ERR_DIPLAG_LIM Too big 2 in the instruction 0,connected to current 02-0#-0> Name Cause of error ERR_DIVZERO Division by zero ERR_EXCRTYMAX Maximum number of retries exceeded. ERR_EXECPHR An attempt was made to execute an instruction using a place holder ERR_FILEACC A file is accessed incorrectly ERR_FILEEXIST A file already exists ERR_FILEOPEN A file cannot be opened ERR_FILNOTFND File not found ERR_FNCNORET No return value ERR_FRAME Unable to calculate new frame ERR_ILLDIM Incorrect array dimension ERR_ILLQUAT Attempt to use illegal orientation (quaternion) valve ERR_ILLRAISE Error number in RAISE out of range ERR_INOMAX No more interrupt numbers available ERR_IODISABLE Timeout when executing IODisable ERR_IODN_TIMEOUT Timeout when executing IODNGetAttr or IODNSetAttr ERR_IOENABLE Timeout when executing IOEnable ERR_IOERROR I/O Error from instruction Save ERR_LOADED The program module is already loaded ERR_LOADID_FATAL Only internaluse in LoadId ERR_LOADID_RETRY Only internal use in LoadId ERR_LOADNO_INUSE The load session is in use in StartLoad ERR_LOADNO_NOUSE The load session is not in use in CancelLoad ERR_MAXINTVAL The integer value is too large ERR_MODULE Incorrect module name in instruction ,+ and /- ERR_MSG_PENDING The unit is busy ERR_NAME_INVALID If the unit name does not exist or if the unit is not allowed to be disabled ERR_NEGARG Negative argument is not allowed ERR_NORUNUNIT If there is no contact with the unit ERR_NOTARR Data is not an array ERR_NOTEQDIM The array dimension used when calling the routine does not coincide with its parameters ERR_NOTINTVAL Not an integer value ERR_NOTPRES A parameter is used, despite the fact that the corresponding argument was not used at the routine call IRC5 Advanced Programming © A B B In c. -1 01 Tipo de Dados - Errnum Name Cause of error ERR_NOTSAVED Module has been changed since it was loaded into the system. ERR_OUTOFBND The array index is outside the permitted limits ERR_OVERFLOW Clock overflow ERR_PATH Missing destination path in instruction Save ERR_PATHDIST Too long regain distance for ,!+ or ,!+ instruction ERR_PATH_STOP Stop of the movement because of some process error ERR_PID_MOVESTOP Only internal use in LoadId ERR_PID_RAISE_PP Error from ParIdRobValid or ParIdPosValid ERR_PROGSTOP The robot is program stop state when executing a ,!+ or ,!+ instruction ERR_RANYBIN_CHK Check sum error detected at data transfer with instruction ReadAnyBin ERR_RANYBIN_EOF End of file is detected before all bytes are read in instruction ReadAnyBin ERR_RCVDATA An attempt was made to read non numeric data with ReadNum ERR_REFUNKDAT Reference to unknown entire data object ERR_REFUNKFUN Reference to unknown function ERR_REFUNKPRC Reference to unknown procedure at linking time or at run time (late binding) ERR_REFUNKTRP Reference to unknown trap ERR_ROBLIMIT Axis outside working area or limits exceeded for at least one coupled joint ERR_SC_WRITE Error when sending to external computer ERR_SIGSUPSEARCH The signal has already a positive value at the beginning of the search process ERR_STARTMOVE The robot is in hold state when executing a ,!+ or ,!+ instruction ERR_SOCK_CLOSED The socket is closed, or is not created ERR_SOCK_CONNREF The connection was refused by the remote computer ERR_SOCK_ISCON The socket is already connected ERR_SOCK_TIMEOUT The connection was not established within the time out time ERR_STRTOOLNG The string is too long ERR_SYM_ACCESS Symbol read/write access error ERR_SYNCMOVEOFF Timeout from SyncMoveOff ERR_SYNCMOVEON Timeout from SyncMoveOn Name Cause of error ERR_TP_DIBREAK A TPRead instruction was interrupted by a digital input ERR_TP_DOBREAK A TPRead instruction was interrupted by a digital output ERR_TP_MAXTIME Timeout when executing a TPRead instruction ERR_TP_NO_CLIENT No client to interact with when using TPReadFK instruction ERR_TRUSTLEVEL Not allowed to disable IO unit ERR_UI_INITVALUE Initial value error in function UINumEntry ERR_UI_MAXMIN Min value is greater then max value in function UINumEntry ERR_UI_NOTINT Value is not a integer when specified that an integer should be used when using UINumEntry ERR_UNIT_PAR Parameter Mech_unit in TestSign and SetCurrRef is wrong ERR_UNKINO Unknown interrupt number ERR_UNKPROC Incorrect reference to the load session in instruction WaitLoad ERR_UNLOAD Unload error in instruction UnLoad or WaitLoad ERR_WAITSYNCTASK Time-out from WaitSyncTask ERR_WAIT_MAXTIME Timeout when executing a WaitDI or WaitUntil instruction ERR_WHLSEARCH No search stop IRC5 Advanced Programming © A B B In c. -1 02 Exemplo de Tratativa de Erro (Error Handling) Cuidado ao utilizar o argumento ELSE, no caso abaixo, controla todos demais erros. IRC5 Advanced Programming © A B B In c. -1 03 Instruções de Error Handling EXIT 2. _________ Cria um erro no programa causando um salto na execução do mesmo para o Error Handler da rotina. Também pode ser utilizado no Error Handler para saltar para rotina específica que trata erros. 6. __________ Reinicia a execução do programa a partir da próxima instrução que causou o erro. RAISE RETRY RETURN STOP or BREAK TRYNEXT 1. _________ Termina a execução do programa. O programa poderá ser reiniciado somente do começo, ou seja, rotina Main. 3. _________ Reinicia a execução do programa a partir da mesma instrução que causou o erro. 4. _________ Finaliza a execução da rotina. 5. _________ Para a execução do programa. IRC5 Advanced Programming © A B B In c. -1 04 Tratativa de Erros Exemplo de Tratativa de Erro O erro pode ser tratado no Error Handler e o programa pode ser reiniciado automaticamente como mostrado abaixo. Main rSearchPartrSearchPart SearchL … ERROR ERROR If ERRNO=ERRWHLSEARCH Then … Retry TryNext Return Raise IRC5 Advanced Programming © A B B In c. -1 05 Exercício 6 1. Crie uma nova rotina chamada rSearch em um novo módulo. Programe o robô para procurar uma peça metálica sobre a mesa, utilize o sinal de entrada _________ do sensor. 2. Se o robô não encontrar a peça o mesmo deverá tentar a procura novamente. Após 2 tentativas, o robô deverá parar, resetar o contador e enviar uma mensagem para que o operador corrija o problema. Com o problema solucionado o operador pressionará “Continue” na tela do FlexPendant para que o robô retorne a procurar a peça novamente. IRC5 Programação Avançada Deslocamento de Programa (PDisp) IRC5 Advanced Programming © A B B In c. -1 07 Existem três instruções referentes a deslocamento de programa. São elas: 1. PDispOn 2. PDispOff 3. PDispSet Instruções de deslocamento de Programa IRC5 Advanced Programming © A B B In c. -1 08 SearchL \Stop, di_SearchSensor, pFound, pEndSearch, v100, tSensor; PdispOn pSearchStart, tSensor; MoveL P3, v1000, fine, tSensor; PdispOff; Instrução PdispOn pFound STOP pSearchEnd MOVEL pSearchStart, V100, Fine, tSensor; Utilizado como uma referência inicial para procura P3 (ORIGINAL) P3 (DESLOCADO) pSearchStart No exemplo, o deslocamento total é determinado pela diferença entre a Posição Atual do robô e o pSearchStart. IRC5 Advanced Programming © A B B In c. -1 09 No exemplo, o deslocamento total é determinado pela diferença entre o ponto pFound e o ponto pSearchStart. A barra “\” indica um ARGUMENTO OPCIONAL. Argumento Opcional PdispOn SearchL \Stop, di_SearchSensor, pFound, pEndSearch, v100, tSensor; PdispOn \Exep:=pFound, pSearchStart, tSensor; MoveL P3, v1000, fine, tSensor; PdispOff; pSearchStart pFound STOP pSearchEnd MOVEL pSearchStart, V100, Fine, tSensor; Utilizado como uma referência inicial para procura P3 (ORIGINAL) P3 (DESLOCADO) IRC5 Advanced Programming © A B B In c. -1 10 Regra do Deslocamento de Programa Ocorre um COLD START-UP Um NOVO PROGRAMA É CARREGADO O programa é REINICIALIZADO do começo. Uma configuração de deslocamento de programa é automaticamente resetada quando: IRC5 Advanced Programming © A B B In c. -1 11 PdispSet pose1; O deslocamento total é dado pelo valor da variável pose1. Existem alguns modos para alterar valores de um tipo de dado pose. São eles: Manualmente Atribuindo Valor Carregando Valor Algumas funções que podem ser utilizadas são: DefDFrame - DefFrame - Requer 3 pontos originais e 3 novos robtargets. Define um frame a partir de 3 robtargets. Instrução PdispSet PERS pose pose1 := [[0,0,0],[1,0,0,0]]; [[X,Y,Z],[Q1,Q2,Q3,Q4]] IRC5 Advanced Programming © A B BIn c. -1 12 Exercício 7 1. Adicione ao programa existente A. Para o programa que simula dispensing. Adicione sua rotina de procura. O Robo deve se mover até a identificação do sinal de procura e então desenhar um quadrado no papel. B. For the program that simulates Material Handling. Adicione sua rotina de procura. O Robô deve se mover até encontrar a peça sobre a mesa. Quando a peça for encontrada o robô deverá pegá-la. IRC5 Programação Avançada Zonas de Trabalho (World Zones) IRC5 Advanced Programming © A B B In c. -1 14 Zonas de Trabalho (World Zones) DEFINIÇÃO – É a monitoração de uma delimitada área de trabalho do robô outrora definida. Para prevenir que o robô não entre numa área indesejada Veja dois exemplos de aplicações para o World Zones Para obter indicativo de quando o robô estiver próximo a determinado ponto. Ex. Home. No máximo 10 World Zones podem ser utilizadas ao mesmo tempo. IRC5 Advanced Programming © A B B In c. -1 15 Instruções de World Zone Shape Instruções utilizadas para definir World Zones: WZBoxDef [\Inside][\Outside], Shape, Low Point*, High Point*; WZCylDef [\Inside][\Outside], Shape, Center Point*, Radius, Height; WZSphDef [\Inside][\Outside], Shape, Center Point*, Radius; WZHomeJointDef [\Inside][\Outside], Shape, MiddleJointVal, DeltaVal; WZLimJointDef [\Temp][\Stat], Shape, LowJointVal, HighJointVal; • \Inside & \Outside = escolha de definição de área. *Low, High, e Center Point são tipo de dados POS. (Definidos como Constante ou Persistente) • Valores das Juntas utilizado em tipo de dados JointTarget. IRC5 Advanced Programming © A B B In c. -1 16 Instruções de World Zone Action Instruções utilizadas para acionamento de monitoração de uma World Zone: WZLimSup [\Temp][\Stat], World Zone**, Shape; WZDOSet [\Temp][\Stat], World Zone**, [\Inside][\Outside],[\Before]Shape, Signal, SetValue; \Temp = Uma WorldZone que pode ser ativada e desativada no programa. \Stat = Uma WorldZone que somente pode ser ativada em evento de PowerOn dentro de uma rotina. **World Zone é um tipo de dado WZtemporary ou WZstationary Quando utilizar \Stat e WZDOSet a saída precisa ser definida como acesso “Internal". Instruções utilizadas para Ativar e Desativar uma World Zones: WZDisable WorldZone; _____________________ WZEnable WorldZone; _____________________ WZFree WorldZone; _______________________ Desativa uma Temp. World Zone Reativa uma Temp. World Zone Apaga uma Temp. World Zone IRC5 Advanced Programming © A B B In c. -1 17 Exercício 8 1. Adicione um contador de ciclos no programa. Conte o número de ciclos realizados. Após 4 ciclos o robô deve ir para posição de serviço. O robô aguardará o operador pulsar o sinal de entrada ___________ para continuar a execução do programa. 3. Crie uma World Zone que não permitirá o robô se mover a menos que o TCP esteja sobre a mesa. 2. Crie uma Zona Esférica em torno da posição de serviço com raio de 50mm. Sempre que o robô estiver dentro da zona definida o sinal de saída ___________ deverá ser acionado. Esta zona deverá ser habilitada sempre que o robô for ligado (PowerOn). IRC5 Programação Avançada Instruções Avançadas IRC5 Advanced Programming © A B B In c. -1 19 VelSet é utilizado para aumentar ou diminuir a velocidade programada para todas as subsequêntes instruções de movimentação. Esta instrução é também utilizada para limitar a velocidade máxima. Esta instrução pode ser utilizada na task Main ou, caso utiliza-se Multimove, nas tasks de movimentação. Instruções de Performance AccSet -AccSet 100,50; VelSet -VelSet 100,5000; GripLoad -GripLoad IoPart1; % Limite de Aceleração % Rampa de Aceleração % Configura porcentagem de Velôcidade Define velôcidade MAX. em mm/sec. Nome definido para carga. AccSet é utilizado quando manipula-se cargas frágeis, permitindo uma aceleração lenta resultando numa movimentação mais suave. Esta instrução pode ser utilizada na task Main ou, caso utiliza-se Multimove, nas tasks de movimentação. GripLoad é utilizada para definir qual carga será manipulada pela ferramenta do robô. Esta instrução pode ser utilizada na task Main ou, caso utiliza-se Multimove, nas tasks de movimentação. IRC5 Advanced Programming © A B B In c. -1 20 Instruções de Performance SoftAct -Softact 3,30; SoftDeact -SoftDeact; Eixo Complacência/ Suavidade em % SoftAct é utilizado para ativar uma complacência “soft” de um eixo do robô ou eixo externo. Esta instrução pode ser utilizada na task Main ou, caso utiliza-se Multimove, nas tasks de movimentação. SoftDeact é utlizado para desativar uma complacência “soft” de um eixo do robô ou eixo externo. Esta instrução pode ser utilizada na task Main ou, caso utiliza-se Multimove, nas tasks de movimentação. Observação: O valor de complacência varia percentualmente de 0 -100% sendo que 100 denota a complacência máxima e 0 denota a intolerância máxima. IRC5 Advanced Programming © A B B In c. -1 21 Instruções Avançadas de I/O TriggIO -TriggIO trigg1,10\Dop:=doGun,1; TriggEquip -TriggEquip trigg2,10,0.1\Dop:=doGun,1; TriggIO é utilizado para definir condições e modelo de acionamento de um sinal digital, um grupo de digitais ou um sinal analógico que está correlacionado a uma posição fixa ao longo de uma trajetória do robô. O dado definido é utilizado para implementação de uma ou mais instruções de movimentação como TriggL, TriggJ, ou TriggC. TriggEquip é utilizado para definir condições e modelo de acionamento de um sinal digital, um grupo de digitais ou um sinal analógico que está correlacionado a uma posição fixa ao longo de uma trajetória do robô ainda possibilitando temporização para compensação de atraso no equipamento externo. O dado definido é utilizado para implementação de uma ou mais instruções de movimentação como TriggL, TriggJ, ou TriggC. TriggInt -Trigg2,5,IntWeld; TriggInt é utilizado para definir condições e ações para “rodar” uma rotina de interrupção que está correlacionado a uma posição fixa a longo de uma trajetória do robô. O dado definido é utilizado para implementação de uma ou mais instruções de movimentação como TriggL, TriggJ, ou TriggC. IRC5 Advanced Programming © A B B In c. -1 22 Instruções Avançadas de I/O TriggL/TriggJ -TriggJ p1,v500,trigg1,fine,tPen; TriggC -TriggC p1, p2,v500,trigg2,fine,tPen; TriggCheckIO -TriggCheckIO checkgrip, 100, airok, EQ, 1, intno1; TriggCheckIO é utilizado para definir condições para teste de um valor digital, um grupo digital, uma entrada ou saída analógica que está correlacionado a uma posição fixa ao longo de uma trajetória do robô. Se a condição for atendida não haverá nenhuma ação específica, porém se não for atendida, provocará o acionamento de uma rotina de interrupção que rodará após a parada do robô (parada acrescentada com argumento opcional -> \StopMove). O dado definido é utilizado para implementação de uma ou mais instruções de movimentação como TriggL, TriggJ, ou TriggC. TriggL e TriggJ são utilizados para acionar sinais de saída e/ou rodar rotinas de interrupção em uma determinada posição de uma trajetória enquanto que o robô executa uma trajetória linear ou livre (joint). TriggC é utilizado para acionar sinais de saída e/ou rodar rotinas de interrupção em uma determinada posição de uma trajetória enquanto que o robô executa uma trajetória circular. IRC5 Advanced Programming © A B B In c. -1 23 Instruções Avançadas de I/O Distância ou tempo TriggIO trigg1,10\Dop:=doGun,1; … … TriggJ p1,v500,trigg1,fine,tPen; A saída digital doGun é acionada quando o TCP estiverneste ponto. IRC5 Advanced Programming © A B B In c. -1 24 Instruções de Configuração Conf J [\on] | [\off] ConfJ (Configuração Joint) é utilizado para especificar se a configuração do robô será controlada ou não durante o movimento Joint. Se não for controlada, o robô pode algumas vezes utilizar diferentes configurações que não foram programadas. Conf L [\on] | [\off] ConfL (Configuração Linear) é utilizada para especificar se a configuração do robô será monitorada durante movimento linear ou circular. Se não for monitorada, a configuração durante a execução pode ser diferente da programada. Isso pode também resultar num inesperado movimento quando o tipo de movimento for trocado para Joint. SingArea [\Wrist] | [\off] SingArea é utilizado para definir como o robô moverá quando próximo a posições de singularidade. Singarea é também utilizado para definir interpolação linear e circular para robôs com menos de 6 eixos. IRC5 Advanced Programming © A B B In c. -1 25 Exercício 9 1. Crie uma nova rotina para praticar as instruções vista neste capítulo. IRC5 Programação Avançada Work Objects IRC5 Advanced Programming © A B B In c. -1 27 Work Object Work Object Um Work Object pode ser usado para: 1. ________________________________ 2. ________________________________ 3. ________________________________ DESLOCAMENTO DO PROGRAMA PROGRAMAÇÃO OFF-LINE FACILITAR MOVIMENTAÇÃO DO ROBÔ IRC5 Advanced Programming © A B B In c. -1 28 Work Object Use a janela _______________ para ativar um work object. Um work object consiste em _____________________ e _____________________. JOGGING COORDENADA DE OBJETO COORDENADA DE USUÁRIO Work Object IRC5 Advanced Programming © A B B In c. -1 29 Work Object Quando definir um work object, é importante utilizar um preciso _________________________. Exemplo: MoveL p1,v1000,z5,tGripper,/Wobj:=ob_fix TCP (TOOL CENTER POINT) No programa, um work object é utilizado com instruções de ______________. MOVIMENTO Work Object IRC5 Advanced Programming © A B B In c. -1 30 Work Object Criando um Work Object ABB : Program Data : wobjdata : Show Data : New IRC5 Advanced Programming © A B B In c. -1 31 Work Object Definindo um Work Object Pressione “Edit” : Define IRC5 Advanced Programming © A B B In c. -1 32 Work Object - Exercício 1. Crie um work object no canto de uma folha retangular. Utilize as arestas da folha para definir os pontos de referência. 2. Crie uma rotina onde o robô se desloque para dois pontos específicos da folha. (grave os pontos utilizando work object) 3. Desloque a folha, regrave o work object e teste o programa. Exercícios de Revisão Programação Básica IRC5 Programação Avançada IRC5 Advanced Programming © A B B In c. -1 34 Exercício de Revisão - 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. 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 Advanced Programming © A B B In c. -1 35 Exercício de Revisão - 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? 2.2 – Liste 2 vantagens que há quando utilizamos uma ferramenta e fazemos a correta declaração da mesma no robô. IRC5 Advanced Programming © A B B In c. -1 36 Exercício de Revisão - 3 o posição no espaço x posição no papel ROBOT x p10 x p20p30 x p40 x o p_aprox o pHome 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). IRC5 Advanced Programming © A B B In c. -1 37 Exercício de Revisão - 4 o posição no espaço x posição no papel ROBOT x p10 x p20p30 x p40 x o p_aprox o pHome p_quad 100mm o p_aprox_1 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. IRC5 Advanced Programming © A B B In c. -1 38 Exercício de Revisão - 5 o posição no espaço x posição no papel ROBOT x p10 x p20p30 x p40 x o p_aprox o pHome p_quad 100mm x p_centro o p_aprox_1 o p_aprox_3p_aprox_2 o 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). IRC5 Advanced Programming © A B B In c. -1 39 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. Exercício de Revisão - 6 o posição no espaço x posição no papel/ peça ROBOT x p10 x p20 p30 x p40 x o p_aprox o pHome p_quad 100mm x p_centro o p_aprox_1 o p_aprox_3p_aprox_2 o o p_aprox_4 P_circ x IRC5 Advanced Programming © A B B In c. -1 40 Exercício de Revisão - 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). 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 Advanced Programming © A B B In c. -1 41 Exercício de Revisão - 8 Sinal do PLC Robô 0 Executar 1 Arco Executar 1 Retângulo 1 Executar 1 Círculo Executar 1 Quadrado 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. IRC5 Advanced Programming © A B B In c. -1 42 Exercício de Revisão - 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. Sinal do PLC Robô 0 Executar 2 Quadrados Executar 3 Retângulos 1 Executar 2 Círculos Executar 1 Arco IRC5 Advanced Programming © A B B In c. -1 43 Exercício de Revisão - 10 10 – Crie um programa que interajacom o operador. O robô deverá executar a “peça” que o operador escolher (retângulo, quadrado, arco, circulo). 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 Advanced Programming © A B B In c. -1 44 Exercício de Revisão - 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 operador solicitar. O operador pode solicitar apenas uma peça por vez. IRC5 Advanced Programming © A B B In c. -1 45 Exercício de Revisão - 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 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 Advanced Programming © A B B In c. -1 46 Exercício de Revisão - 13 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 Advanced Programming © A B B In c. -1 47 Exercício de Revisão - 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. 14.1 – Implemente o programa. Informe ao operador qual foi o tempo de ciclo do último lote produzido. IRC5 Advanced Programming © A B B In c. -1 48 Exercício de Revisão - 15 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 Advanced Programming © A B B In c. -1 49 Exercício de Revisão - 16 0 1 DI08 Pegar na esteira A Pegar na esteira B 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 DI12 DI13 Robô desabilitado Robô habilitado DO01 Desliga Vácuo Liga Vácuo DO08 DO09 DO10 DO11 DO12 Palete Incompleto Pelete Completo DO13 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 Entrada A Esteira de Entrada B A6 A3 C/ LOGO S/ LOGO B3 B6 A5 A2 C6 C3 B2 B5 A4 A1 C5 C2 B1 B4 C4 C1 Esteira de Saída C IRC5 Advanced Programming © A B B In c. -1 50 Resumo - Instruções Básicas / Funções de Programa Instruções de Movimento MoveJ MoveL MoveC MoveAbsJ Instruções de Controle de Fluxo ProcCall IF Compact IF While For Goto Label Test Stop Instruções de I/O Set Reset SetDO InvertDO PulseDO Instruções de Espera WaitTime WaitDI WaitUntil Instruções de Matemáticas := ADD Incr Decr Clear Instruções Interface TPWrite TPErase TPReadFK TPReadNum Instruções de Tempo CDate CTime CLKStart CLKReset CLKStop Funções de Movimento OffSet Funções de Clock CLKRead OBS: Para conhecer demais Instruções / Funções consultar manual de Programação RAPID IRC5 Advanced Programming © A B B In c. -1 51 Contatos ABB Coordenação de Treinamentos Charles Souza 11 3688-8481 charles.souza@br.abb.com Coordenação Técnica Margareth Silva 11 3688-9223 margareth.silva@br.abb.com Suporte Técnico Ricardo Maia 11 3688-9032 ricardo.maia@br.abb.com Plantão 24h ABB plantão.24horas@br.abb.com 0800-12-2500 IRC5 Advanced Programming © A B B In c. -1 52 Crie uma rotina que simule o processo de pintura em uma folha. -O robô deverá ligar a saída de fluxo de tinta assim que entrar na folha. -O robô deverá desligar a saída de fluxo de tinta assim que sair na folha. -Caso o robô seja parado no meio do processo, a saida de fluxo de tinta deve ser desligada. Ela deve ser religada quando o robô for reiniciado. -Caso a entrada de falta de tinta seja ligada, o robô deverá parar imediatamente e aguardar o sinal ser desligado para continuar o movimento. -O operador deve ser capaz de mudar o plano da folha. IRC5 Advanced Programming © A B B In c. -1 53 Avaliação do Curso IRC5 Advanced Programming © A B B In c. -1 54 Avaliação do Curso IRC5 Advanced Programming © A B B In c. -1 55 Em Branco IRC5 Advanced Programming © A B B In c. -1 56
Compartilhar