Você está na página 1de 156

IRC5

Programação
Avançada
IRC5 Programming Basic
IRC5 Advanced Programming

Bem-vindos!

Sejam Bem-vindos ao primeiro Centro de


Treinamento ABB em Automação e Robótica da
América Latina!
© ABB Inc. -2
IRC5 Advanced Programming

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
© ABB Inc. -3

Contatos ABB 151


Avaliação do Curso 153
IRC5 Advanced Programming

Introdução

 Apresentações ABB
 Robótica ABB
 Treinamento ABB
© ABB Inc. -4
IRC5 Advanced Programming

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
© ABB Inc. -5
IRC5 Advanced Programming

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
© ABB Inc. -6

sustentável.
IRC5 Advanced Programming

ABB - Portifólio

Como estamos organizados


5 Divisões Globais

Discrete
Produtos de Sistemas de Produtos de Automação de
Automation
Potência Potência Baixa Tensão Processos
and Motion
$11.2 bilhões $6.5 bilhões $5.4 bilhões $4.1 bilhões $7.8 bilhões
33.500 16.000 18.000 19.000 28.000
funcionários funcionários funcionários funcionários funcionários
Faturamento em 2009 (US$; valores pró-forma para as divisões de automação)

 Portfólio ABB:
 Equipamentos elétricos,  Soluções de distribuição
automação, controle e
instrumentação para  Produtos de baixa-
geração de energia e tensão
© ABB Inc. -7

processos industriais  Robótica e sistemas


 Transmissão de energia robotizados
IRC5 Advanced Programming

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,

nos trens em que viajamos e nas


instalações que processam nossa água,

nas usinas que geram nossa


© ABB Inc. -8

energia e em nossas casas.


IRC5 Advanced Programming

ABB - Inovação
Pioneira em tecnologia desde 1883
Os fundadores Turbina a vapor Turbochargers Turbina
a gás
1900 1920 1930 1940

Painéis isolados Motor sem redutor


Robôs industriais HVDC
a gás
1950

1970 1960
1980

Acionamentos e Sistemas de Sistemas de


inversores de frequência controle distribuído Ultra-alta tensão
propulsão elétrica

1990 2000
© ABB Inc. -9
IRC5 Advanced Programming

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
© ABB Inc. -10
IRC5 Advanced Programming

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
© ABB Inc. -11
IRC5 Advanced Programming

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
© ABB Inc. -12
IRC5 Advanced Programming

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
© ABB Inc. -13

sobre o procedimento.
 Estacionamento:
A Utilização será orientada na Portaria.
IRC5 Advanced Programming

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!!!
© ABB Inc. -14
IRC5 Advanced Programming

Objetivos do Curso
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:

 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;
© ABB Inc. -15

 Utilizar instruções de Controle de Movimento.


Segurança IRC5 Programming Basic
IRC5 Programação
Avançada
IRC5 Advanced Programming

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
© ABB Inc. -17

deste treinamento.
IRC5 Advanced Programming

Segurança - Revisão

 Evitar Colisões
 Travamento (Lock Outs)
 Parada de Emergência (ES)
 Modo de Operação
 Auto
 Manual < 250 mm/s
 Manual 100%

Enablingdevice
Enabling device
 Botão Enabling device
(Dead mans grip)

 Botão Hold-to-run Botão de Hold-to-run


(para destros ou canhotos)
 Cadeia de Segurança
(Safeguard stop/ Run-Chain)
© ABB Inc. -18

 Limite de Área de Trabalho


IRC5 Advanced Programming

Procedimentos de Segurança ABB


© ABB Inc. -19
IRC5 Advanced Programming

Procedimentos de Segurança ABB


© ABB Inc. -20
IRC5 Advanced Programming

Procedimentos de Segurança ABB


© ABB Inc. -21
IRC5 Advanced Programming

Procedimentos de Segurança ABB


© ABB Inc. -22

ABB - Osasco
Robot Studio Online & IRC5 Programação
Avançada
Sistema Operacional
IRC5 Advanced Programming

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).
© ABB Inc. -24
IRC5 Advanced Programming

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)

LAN
(Local Area Network)

Service
© ABB Inc. -25
IRC5 Advanced Programming

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).
© ABB Inc. -26
IRC5 Advanced Programming

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.
© ABB Inc. -27
IRC5 Advanced Programming

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.
© ABB Inc. -28

Este diretório é protegido e não está disponível para o usuário.


IRC5 Advanced Programming

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.
© ABB Inc. -29
IRC5 Advanced Programming

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.
© ABB Inc. -30
IRC5 Advanced Programming

Métodos para carregar um sistema

 Memória USB
 Porta de Serviço
 Porta LAN
© ABB Inc. -31
IRC5 Advanced Programming

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
© ABB Inc. -32

diretório raiz.
IRC5 Advanced Programming

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
© ABB Inc. -33
IRC5 Advanced Programming

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.
© ABB Inc. -34
IRC5 Advanced Programming

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).
© ABB Inc. -35
IRC5 Advanced Programming

Telas do Robot Studio Online

Robot MenuSpace
Tool
Controller
Work
View Bar
Bars
Status
Explorer
© ABB Inc. -36
IRC5 Advanced Programming

RSO System Builder (construção do Sistema)


© ABB Inc. -37
IRC5 Advanced Programming

Licença para instalaçã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 Licença do Móduo


Módulo de de Acionamento
Controle
© ABB Inc. -38
IRC5 Advanced Programming

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.
© ABB Inc. -39
IRC5 Advanced Programming

RSO System Builder (Construindo Sistema)


© ABB Inc. -40
IRC5 Advanced Programming

Utilizando o Robot Studio Online

Tela inicial do Robot Studio


© ABB Inc. -41
IRC5 Advanced Programming

Utilizando o Robot Studio Online

Crie um novo robô (robot view).


(Pode utilizar-se de vários robôs)
© ABB Inc. -42
IRC5 Advanced Programming

Utilizando o Robot Studio Online

Clique com botão


direito no
Controlador
© ABB Inc. -43
IRC5 Advanced Programming

Adicione um Controlador

Adicione um
controlador para
se comunicar.
© ABB Inc. -44
IRC5 Advanced Programming

Visualização de Eventos

Visualização de
eventos atuais e
passados no
sistema.
© ABB Inc. -45
IRC5 Advanced Programming

IRC5 FlexPendant & R.S.O

 O FlexPendant e RobotStudioOnline trabalham juntos


© ABB Inc. -46
IRC5 Advanced Programming

Utilizando o R.S.O.

 Localizando seu programa Rapid.


© ABB Inc. -47
IRC5 Advanced Programming

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.
© ABB Inc. -48
IRC5 Advanced Programming

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.


© ABB Inc. -49
IRC5 Advanced Programming

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.
© ABB Inc. -50
Robot Studio Online IRC5 Programação
Avançada
Configurações
IRC5 Advanced Programming

RSO Configurações

Existem 5 tipo de
parâmetros. Com um
duplo clique você
visualizará o conteúdo.
© ABB Inc. -52
IRC5 Advanced Programming

I/O Configurações
© ABB Inc. -53
IRC5 Advanced Programming

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”.
© ABB Inc. -54
IRC5 Advanced Programming

Configurações de Movimento
© ABB Inc. -55
IRC5 Advanced Programming

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”.
© ABB Inc. -56
IRC5 Advanced Programming

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.


© ABB Inc. -57
TCP(s) Complexos IRC5 Programação
Avançada
IRC5 Advanced Programming

Sistema de Coodenadas da Ferramenta

 Sistema de Coordenadas

Coordenada da Ferramenta
Y (Tool coordinates)
Coordenada da Ferramenta (Tool0)

X Z
 Benefícios ao utilizar
uma ferramenta:
 Movimentação
 Reorientação
Z
Y
 Facilidade de alteração
do ponto
© ABB Inc. -59

Coordenada de Base (Base coordinates)

X
IRC5 Advanced Programming

Sistema de Coordenadas

 Veja diferentes exemplos de ferramenta e TCPs (Tool Center Points).

TCP
TCP

TCP

TOOL0
TCP

A Tool0 sempre é a referência de


© ABB Inc. -60

Posicionamento para as demais


ferramentas
IRC5 Advanced Programming

Métodos de TCP

 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
X - Elongator
coordenada de ferramenta.

Z - Elongator

Ponteira Fixa
© ABB Inc. -61
IRC5 Advanced Programming

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
© ABB Inc. -62
IRC5 Advanced Programming

Coordenada de Ferramenta com Elongators

Se o médoto TCP & Z ou


TCP & Z, X é usado, podemos
definir a coordenada da
Ferramenta (orientação).

Z
© ABB Inc. -63
IRC5 Advanced Programming

TCP Estacionário
Um TCP Estacionário é um TCP que não está fixo no robô.

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ô. T_Nozzel

Wobj_Peca
T_Garra
© ABB Inc. -64
IRC5 Advanced Programming

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ô.
© ABB Inc. -65
Módulos, Rotinas e Dados IRC5 Programação
Avançada
IRC5 Advanced Programming

Módulos

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)

Lembre-se que não pode haver módulos com nomes iguais.


© ABB Inc. -67
IRC5 Advanced Programming

Memória de Sistema

Parâmetros de Sistema (SysPar)


Sistema Aplicativo de Memória do Usuário
Operacional Software
VXWorks RAPID
© ABB Inc. -68

Fora de escala. Utilizado somente para fins didáticos.


IRC5 Advanced Programming

Memória do Usuário (User Memory)

Task: T_Rob1 Task: T_Rob2 Task: BackGround1

MainModule MainModule MainModule


Main Main Main

Data Data Data

User (system Module) User (system Module)

Data Data

Base (system Module) Base (system Module)

Data Data

More… More…
© ABB Inc. -69
IRC5 Advanced Programming

Tipos de Módulos

Existem dois tipos de Módulo:

Program (.mod)
System (.sys)

Um módulo consiste em:

Rotinas
Dados
MainModule
Main rPickUp rDropOff
© ABB Inc. -70

Data
IRC5 Advanced Programming

Atributo de Módulos

Um módulo pode ter os seguintes atributos:

SYSMODULE
MODULE
NoStepIn modulo1(SYSMODULE,VIEWONLY)
!Declaração de Dados
ViewOnly
!Rotinas
ReadOnly !Instruções
ENDMODULE
NoView

Os Atributos de Modulos podem ser adicionados somente em offline.


© ABB Inc. -71

(Exceto SYSMODULE)
IRC5 Advanced Programming

Estrutura de Arquivo de Programa


Pasta Novo_programa O Backup salvará todas informações
Novo_programa.pgf <?xml version="1.0" encoding="ISO-8859-1" ?>
<Program>
<Module>ModuleA.mod</Module>
SAVING PROCEDURE <Module>MainModule.mod</Module>
1. Pressione menu “ABB”.
</Program>
2. Pressione “Program Editor”.
3. Selecione “Robot Task”.
4. Pressione “Tasks and Programs”.
MainModule.mod
5. Selecione uma Task se existem MODULE MainModule
múltiplos robôss. PROC main()
6. Pressione “File”
7. Pressione “Save Program as”. Rotuine1;
8. Escolha o destino para Routine2;
ModuleA.mod
armazenamento e digite o nome MODULE ModuleA
ENDPROC
desejado. PROC RoutineA1()
9. Pressione “OK” MoveL;
PROC Routine1()
MoveL;
MoveL;
ENDPROC
ENDPROC
ENDMODULE

PROC Routine2()
MoveL;
ENDPROC
ENDMODULE
© ABB Inc. -72
IRC5 Advanced Programming

Salvando Módulos
O Backup salvará todas informações
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”.
ModuleA.mod
MODULE ModuleA
PROC RoutineA1()
MoveL;
MoveL;
ENDPROC
ENDMODULE
© ABB Inc. -73
IRC5 Advanced Programming

Rotinas

rStyle1
Main Routine MoveL p20 . . .
MoveJ p10 . . . rStyle2
.
IF . . . MoveL p210 . . .
.
rStyle1 .
.
ELSEIF . . . .
Return
rStyle2 .
. Return
.
.
Return

P10
DATA: P20
P210

Todo programa precisa ter uma rotina Main.


A instrução ProcCall é utilizada para chamada de outras rotinas.
© ABB Inc. -74
IRC5 Advanced Programming

Rotinas

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.
© ABB Inc. -75
IRC5 Advanced Programming

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
© ABB Inc. -76
IRC5 Advanced Programming

Extensão de Dados

A extensão de um dado pode ser definida como:


MODULE module1(SYSMODULE)
LOCAL Var num nCounter:=0;
Global
PROC routine1()
Var num nLocalCounter;
Task !Instructions
EndProc
Local ENDMODULE

As diferenças entre Dados de Programa e Dados de Rotina são:


Dados de Programa – Pode ser “visto” em qualquer parte do programa.
Dados de Rotina – Pode ser “visto” somente dentro da rotina.
© ABB Inc. -77
IRC5 Advanced Programming

Matriz de Dados

nOffsets

3132 3145 4532 1276 8634

3344 22 1276 11 7886

5569 6 332 556 665

8944 456 11 -677 446


© ABB Inc. -78
IRC5 Advanced Programming

Matriz de Dados

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};

© ABB Inc. -79
IRC5 Advanced Programming

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
(Opcional) 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
© ABB Inc. -80

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.
Interrupções e Traps IRC5 Programação
Avançada
IRC5 Advanced Programming

O que é uma Interrupção?

Definição de Interrupção

Um evento que dispara um salto temporário


para uma rotina Trap.
© ABB Inc. -82
IRC5 Advanced Programming

Instruções de Interrupção
INSTRUÇÃO DESCRIÇÃO

CONNECT Associa uma interrupção com uma específica rotina Trap.


IDELETE Desassocia uma interrupção de uma específica rotina Trap.
ISIGNALDI Atribui um sinal de entrada Digital a uma interrupção.
ISIGNALDO Atribui um sinal de saída Digital a uma interrupção.
ITIMER Ativa uma interrupção APÓS um tempo específico.

IDISABLE Não permite ocorrer interrupções, mas registra eventos de


interrupção em um buffer para processamento posterior.
IENABLE Permite interrupções ocorrerem novamente.
Desativa uma interrupção, e NÃO registra eventos de
ISLEEP interrupção para um processamento posterior.
IWATCH Ativa uma interrupção novamente.
© ABB Inc. -83
IRC5 Advanced Programming

Instruções de Interrupção
INSTRUÇÃO DESCRIÇÃO

IError Ativa um Evento de Interrupção a partir de um erro

IPers Ativa um Evento de Interrupção a partir da mudança de valor


de um dado tipo Persistente

IVarValue Ativa um Evento de Interrupção a partir da mudança de valor


de um dado Variável.
ISignalAI Ativa um Evento de Interrupção a partir de uma AI
ISignalAO Ativa um Evento de Interrupção a partir de uma AO
ISignalGI Ativa um Evento de Interrupção a partir de um GI
ISignalGO Ativa um Evento de Interrupção a partir de um GO
© ABB Inc. -84
IRC5 Advanced Programming

Rotina Trap
Criando uma rotina "TRAP" para utilizar com uma interrupção

Ao criar uma rotina selecionar o campo Type.


Escolher “Trap”.
© ABB Inc. -85
IRC5 Advanced Programming

Exemplo de Interrupção
© ABB Inc. -86
IRC5 Advanced Programming

Interrupção - Connect

Connect

Conecta uma Variável nomeada TRAP rotina


interrupção com para interrupção. nomeada para
uma rotina TRAP interrupção

intFlowFault with trapFAULT


© ABB Inc. -87
IRC5 Advanced Programming

Interrupção - ISignalDI

Associa um INPUT
/Evento com um Interrupção
Sinal Digital
sinal digital

Di6_Flowing, 0, intFlowFault
Valor do sinal para ativar
Evento de disparo da
interrupção deslocando o
programa para TRAP
OPT ARG /Single = Somente uma ocorrência
No OptArg. = Todas ocorrências
© ABB Inc. -88
IRC5 Advanced Programming

Exemplo de Rotina Trap

fine
© ABB Inc. -89
IRC5 Advanced Programming

Event Routines
11a
Existem vários eventos de sistema que podem ser utilizados
na linguagem de prgramação RAPID como:

COMANDO DESCRIÇÃO
POWER ON O robô é ligado.
START Quando o programa é inicializado.
RESTART Quando o robô é inicializado da última posição que estava.
STOP Quando o programa é parado (não cycle stop).
QSTOP Quando o programa é parado bruscamente (ES).
RESET Quando o programa antigo é apagado.
© ABB Inc. -90

20 rotinas podem ser associadas para cada evento.


IRC5 Advanced Programming

Configurando um Evento de Sistema


© ABB Inc. -91
IRC5 Advanced Programming

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.
© ABB Inc. -92
Instruções de Procura e IRC5 Programação
Tratativa de Erros Avançada
IRC5 Advanced Programming

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
© ABB Inc. -94
IRC5 Advanced Programming

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:
© ABB Inc. -95
IRC5 Advanced Programming

Instruções de Procura

SearchL \Stop, di_SearchSensor, pFound, pEndSearch, v100, tSensor

Para Sinal de Variável de Ponto Final Velocidade TCP


quando a disparo ponto que durante
parte é armazena a procura.
encontrada posição
encontrada
(p_Found
precisa ser
uma
variável)
© ABB Inc. -96
IRC5 Advanced Programming

Características de Instruções de Procura

pSearchStart pFound STOP pSearchEnd

escorregamento
Posição onde o Percurso Ponto final para
sinal de disparo foi deslocado após Procura. Pto de
acionado. detecção do sinal destino.
(robtarget data de disparo.
type=Variável)

MOVEJ pSearchStart ,V1000, fine, tSearchSensor;


Utilizado como uma referência inicial para procura
© ABB Inc. -97
IRC5 Advanced Programming

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.
© ABB Inc. -98
IRC5 Advanced Programming

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)
© ABB Inc. -99
IRC5 Advanced Programming

Tipo de Dados - Errnum


Name Cause of error Name Cause of error
ERR_ACC_TOO_LOW Too low acceleration/deceleration specified in ERR_DIVZERO Division by zero
instruction "2or 2 ERR_EXCRTYMAX Maximum number of retries exceeded.
ERR_ALRDYCNT The interrupt variable is already connected to a TRAP ERR_EXECPHR An attempt was made to execute an instruction using a
routine place holder
ERR_ALRDY_MOVING The robot is already moving when executing a , ERR_FILEACC A file is accessed incorrectly
!+,!+instruction ERR_FILEEXIST A file already exists
ERR_AO_LIM ,2 analog signal value outside limit in 0& ERR_FILEOPEN A file cannot be opened
0/K or0, ERR_FILNOTFND File not found
ERR_ARGDUPCND More than one present conditional argument for the ERR_FNCNORET No return value
same parameter ERR_FRAME Unable to calculate new frame
ERR_ARGNAME Argument is expression, not present or of type switchERR_ILLDIM Incorrect array dimension
when executing ArgName ERR_ILLQUAT Attempt to use illegal orientation (quaternion) valve
ERR_ARGNOTPER Argument is not a persistent reference ERR_ILLRAISE Error number in RAISE out of range
ERR_ARGNOTVAR Argument is not a variable reference ERR_INOMAX No more interrupt numbers available
ERR_AXIS_ACT Axis is not active ERR_IODISABLE Timeout when executing IODisable
ERR_AXIS_IND Axis is not independent ERR_IODN_TIMEOUT Timeout when executing IODNGetAttr or IODNSetAttr
ERR_AXIS_MOVING Axis is moving ERR_IOENABLE Timeout when executing IOEnable
ERR_AXIS_PAR Parameter axis in instruction TestSign and SetCurrRef ERR_IOERROR I/O Error from instruction Save
is wrong. ERR_LOADED The program module is already loaded
ERR_BWDLIMIT Limit StepBwdPath ERR_LOADID_FATAL Only internal use in LoadId
ERR_CALLIO_INTER If an IOEnable or IODisable request is interrupted byERR_LOADID_RETRY Only internal use in LoadId
another request to the same unit ERR_LOADNO_INUSE The load session is in use in StartLoad
ERR_CALLPROC Procedure call error (not procedure) at runtime (late ERR_LOADNO_NOUSE The load session is not in use in CancelLoad
binding) ERR_MAXINTVAL The integer value is too large
ERR_CFG_INTERNAL Not allowed to read internal parameter- # ERR_MODULE Incorrect module name in instruction ,+ and /-
ERR_MSG_PENDING The unit is busy
ERR_CFG_ILLTYPE Type mismatch - #, # ERR_NAME_INVALID If the unit name does not exist or if the unit is not allowed
ERR_CFG_LIMIT Data limit - # to be disabled
ERR_CFG_NOTFND Not found - #, # ERR_NEGARG Negative argument is not allowed
ERR_CNTNOTVAR CONNECT target is not a variable reference ERR_NORUNUNIT If there is no contact with the unit
ERR_CNV_NOT_ACT The conveyor is not activated. ERR_NOTARR Data is not an array
ERR_CNV_CONNECT The ? instruction is already active. ERR_NOTEQDIM The array dimension used when calling the routine does
ERR_CNV_DROPPED The object that the instruction ? was waiting not coincide with its parameters
© ABB Inc. -100

for has been dropped. ERR_NOTINTVAL Not an integer value


ERR_DEV_MAXTIME Timeout when executing a ReadBin, ReadNum or a ERR_NOTPRES A parameter is used, despite the fact that the corresponding
ReadStr instruction argument was not used at the routine call
ERR_DIPLAG_LIM Too big 2 in the instruction 0,connected
to current 02-0#-0>
IRC5 Advanced Programming

Tipo de Dados - Errnum


Name Cause of error
Name Cause of error ERR_TP_DIBREAK A TPRead instruction was interrupted by a digital
ERR_NOTSAVED Module has been changed since it was loaded into the input
system. ERR_TP_DOBREAK A TPRead instruction was interrupted by a digital
ERR_OUTOFBND The array index is outside the permitted limits output
ERR_OVERFLOW Clock overflow ERR_TP_MAXTIME Timeout when executing a TPRead instruction
ERR_PATH Missing destination path in instruction Save ERR_TP_NO_CLIENT No client to interact with when using TPReadFK
ERR_PATHDIST Too long regain distance for ,!+ or ,!+ instruction
instruction ERR_TRUSTLEVEL Not allowed to disable IO unit
ERR_PATH_STOP Stop of the movement because of some process error ERR_UI_INITVALUE Initial value error in function UINumEntry
ERR_PID_MOVESTOP Only internal use in LoadId ERR_UI_MAXMIN Min value is greater then max value in function
ERR_PID_RAISE_PP Error from ParIdRobValid or ParIdPosValid UINumEntry
ERR_PROGSTOP The robot is program stop state when executing a ERR_UI_NOTINT Value is not a integer when specified that an
,!+ or ,!+ instruction integer
ERR_RANYBIN_CHK Check sum error detected at data transfer with instruction should be used when using UINumEntry
ReadAnyBin ERR_UNIT_PAR Parameter Mech_unit in TestSign and SetCurrRef
ERR_RANYBIN_EOF End of file is detected before all bytes are read in is wrong
instruction ReadAnyBin ERR_UNKINO Unknown interrupt number
ERR_RCVDATA An attempt was made to read non numeric data with ERR_UNKPROC Incorrect reference to the load session in
ReadNum instruction WaitLoad
ERR_REFUNKDAT Reference to unknown entire data object ERR_UNLOAD Unload error in instruction UnLoad or WaitLoad
ERR_REFUNKFUN Reference to unknown function ERR_WAITSYNCTASK Time-out from WaitSyncTask
ERR_REFUNKPRC Reference to unknown procedure at linking time or at ERR_WAIT_MAXTIME Timeout when executing a WaitDI or WaitUntil
run time (late binding) instruction
ERR_REFUNKTRP Reference to unknown trap ERR_WHLSEARCH No search stop
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
© ABB Inc. -101

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
IRC5 Advanced Programming
Exemplo de Tratativa de Erro (Error Handling)

Cuidado ao utilizar o argumento ELSE, no caso abaixo, controla todos demais erros.
© ABB Inc. -102
IRC5 Advanced Programming

Instruções de Error Handling


EXIT Termina a execução do programa. O programa poderá ser
1. _________
reiniciado somente do começo, ou seja, rotina Main.
RAISE Cria um erro no programa causando um salto na execução do
2. _________
mesmo para o Error Handler da rotina. Também pode ser utilizado
no Error Handler para saltar para rotina específica que trata erros.

RETRY Reinicia a execução do programa a partir da mesma instrução que


3. _________
causou o erro.
RETURN Finaliza a execução da rotina.
4. _________
STOP or
5. _________
BREAK Para a execução do programa.

TRYNEXT Reinicia a execução do programa a partir da próxima instrução que


6. __________
causou o erro.
© ABB Inc. -103
IRC5 Advanced Programming

Tratativa de Erros
Exemplo de Tratativa de Erro
Main O erro pode ser tratado no Error Handler e o
programa pode ser reiniciado automaticamente
como mostrado abaixo.

rSearchPart rSearchPart

SearchL …
ERROR

ERROR
If ERRNO=ERRWHLSEARCH Then

Retry
TryNext
© ABB Inc. -104

Return
Raise
IRC5 Advanced Programming

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.
© ABB Inc. -105
Deslocamento de Programa IRC5 Programação
(PDisp) Avançada
IRC5 Advanced Programming

Instruções de deslocamento de Programa

Existem três instruções referentes a deslocamento de


programa.
São elas:
1. PDispOn
2. PDispOff
3. PDispSet
© ABB Inc. -107
IRC5 Advanced Programming

Instrução PdispOn

SearchL \Stop, di_SearchSensor, pFound, pEndSearch, v100, tSensor;


PdispOn pSearchStart, tSensor;
MoveL P3, v1000, fine, tSensor;
PdispOff;

No exemplo, o deslocamento total é determinado pela


diferença entre a Posição Atual do robô e o
pSearchStart.
P3 (ORIGINAL) P3 (DESLOCADO)
pSearchStart pFound STOP pSearchEnd

MOVEL pSearchStart, V100, Fine, tSensor;


© ABB Inc. -108

Utilizado como uma referência inicial para procura


IRC5 Advanced Programming

Argumento Opcional PdispOn


SearchL \Stop, di_SearchSensor, pFound, pEndSearch, v100, tSensor;
PdispOn \Exep:=pFound, pSearchStart, tSensor;
MoveL P3, v1000, fine, tSensor;
PdispOff;

No exemplo, o deslocamento total é determinado pela


diferença entre o ponto pFound e o ponto pSearchStart.
P3 (ORIGINAL) P3 (DESLOCADO)
pSearchStart pFound STOP pSearchEnd

MOVEL pSearchStart, V100, Fine, tSensor;


© ABB Inc. -109

Utilizado como uma referência inicial para procura

A barra “\” indica um ARGUMENTO OPCIONAL.


IRC5 Advanced Programming

Regra do Deslocamento de Programa

Uma configuração de deslocamento de


programa é automaticamente resetada
quando:
 Ocorre um COLD START-UP
 Um NOVO PROGRAMA É CARREGADO
 O programa é REINICIALIZADO do começo.
© ABB Inc. -110
IRC5 Advanced Programming

Instrução PdispSet
PdispSet pose1;
O deslocamento total é dado pelo valor da variável pose1.
PERS pose pose1 := [[0,0,0],[1,0,0,0]];
[[X,Y,Z],[Q1,Q2,Q3,Q4]]
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 - Requer 3 pontos originais e 3 novos robtargets.
DefFrame - Define um frame a partir de 3 robtargets.
© ABB Inc. -111
IRC5 Advanced Programming

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.
© ABB Inc. -112
Zonas de Trabalho IRC5 Programação
(World Zones) Avançada
IRC5 Advanced Programming

Zonas de Trabalho (World Zones)


DEFINIÇÃO –
É a monitoração de uma delimitada área de trabalho do robô outrora definida.
Veja dois exemplos de aplicações para o World Zones
Para prevenir que o robô não entre numa área indesejada
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.
© ABB Inc. -114
IRC5 Advanced Programming

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.
© ABB Inc. -115
IRC5 Advanced Programming

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;

**World Zone é um tipo de dado WZtemporary ou WZstationary


\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.

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; _____________________
Desativa uma Temp. World Zone
© ABB Inc. -116

Reativa uma Temp. World Zone


WZEnable WorldZone; _____________________

Apaga uma Temp. World Zone


WZFree WorldZone; _______________________
IRC5 Advanced Programming

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.

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).
3. Crie uma World Zone que não permitirá o robô se mover a menos que
o TCP esteja sobre a mesa.
© ABB Inc. -117
Instruções Avançadas IRC5 Programação
Avançada
IRC5 Advanced Programming

Instruções de Performance
% Limite de Aceleração
% Rampa de Aceleração
AccSet -AccSet 100,50;
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.
% Configura porcentagem de Velôcidade
VelSet -VelSet 100,5000; Define velôcidade MAX. em mm/sec.

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.
Nome definido para carga.
GripLoad -GripLoad IoPart1;
GripLoad é utilizada para definir qual carga será manipulada pela
ferramenta do robô. Esta instrução pode ser utilizada na task Main ou,
© ABB Inc. -119

caso utiliza-se Multimove, nas tasks de movimentação.


IRC5 Advanced Programming

Instruções de Performance

Eixo
Complacência/ Suavidade em %
SoftAct -Softact 3,30;
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 -SoftDeact;
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%


© ABB Inc. -120

sendo que 100 denota a complacência máxima e 0 denota a intolerância


máxima.
IRC5 Advanced Programming

Instruções Avançadas de I/O

TriggIO -TriggIO trigg1,10\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 -TriggEquip trigg2,10,0.1\Dop:=doGun,1;


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
© ABB Inc. -121

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

Instruções Avançadas de I/O

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/TriggJ -TriggJ p1,v500,trigg1,fine,tPen;
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 -TriggC p1, p2,v500,trigg2,fine,tPen;


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
© ABB Inc. -122

trajetória circular.
IRC5 Advanced Programming

Instruções Avançadas de I/O

TriggIO trigg1,10\Dop:=doGun,1;


TriggJ p1,v500,trigg1,fine,tPen;

Distância ou tempo
A saída digital doGun é
acionada quando o TCP
estiver neste ponto.
© ABB Inc. -123
IRC5 Advanced Programming

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
© ABB Inc. -124

interpolação linear e circular para robôs com menos de 6 eixos.


IRC5 Advanced Programming

Exercício 9

1. Crie uma nova rotina para praticar as instruções vista neste


capítulo.
© ABB Inc. -125
Work Objects IRC5 Programação
Avançada
IRC5 Advanced Programming

Work Object

Work Object
Um Work Object pode ser usado para:

DESLOCAMENTO DO PROGRAMA
1. ________________________________
2. ________________________________
PROGRAMAÇÃO OFF-LINE
FACILITAR MOVIMENTAÇÃO DO ROBÔ
3. ________________________________
© ABB Inc. -127
IRC5 Advanced Programming

Work Object

Work Object
COORDENADA DE USUÁRIO
Um work object consiste em _____________________
COORDENADA DE OBJETO
e _____________________.

JOGGING
Use a janela _______________ para ativar um
work object.
© ABB Inc. -128
IRC5 Advanced Programming

Work Object

Work Object

No programa, um work object é utilizado com


MOVIMENTO
instruções de ______________.

Exemplo:
MoveL p1,v1000,z5,tGripper,/Wobj:=ob_fix

Quando definir um work object, é importante utilizar


TCP (TOOL CENTER POINT)
um preciso _________________________.
© ABB Inc. -129
IRC5 Advanced Programming

Work Object

Criando um Work Object


ABB : Program Data : wobjdata : Show Data : New
© ABB Inc. -130
IRC5 Advanced Programming

Work Object

Definindo um Work Object


Pressione “Edit” : Define
© ABB Inc. -131
IRC5 Advanced Programming

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.
© ABB Inc. -132
Exercícios de Revisão
IRC5 Programação
Programação Básica
Avançada
IRC5 Advanced Programming

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.
© ABB Inc. -134
IRC5 Advanced Programming

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ô.
© ABB Inc. -135
IRC5 Advanced Programming

Exercício de Revisão - 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
o pHome x posição no papel

o p_aprox

p40 x x p10
© ABB Inc. -136

p30 x x p20
IRC5 Advanced Programming

Exercício de Revisão - 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
o pHome x posição no papel

o p_aprox

o p_aprox_1

p40 x x p10
p_quad

100mm
© ABB Inc. -137

p30 x x p20
IRC5 Advanced Programming

Exercício de Revisão - 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
o pHome x posição no papel

o p_aprox

o p_aprox_1

p40 x x p10
p_quad

100mm
x
p_centro
p_aprox_2 o o p_aprox_3
© ABB Inc. -138

p30 x x p20
IRC5 Advanced Programming

Exercício de Revisão - 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
p_aprox_2 o o p_aprox_3
© ABB Inc. -139

p30 x x
p20
IRC5 Advanced Programming

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.
© ABB Inc. -140
IRC5 Advanced Programming

Exercício de Revisão - 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.

Sinal do PLC Robô


0 Executar 1 Arco Executar 1 Retângulo
1 Executar 1 Círculo Executar 1 Quadrado
© ABB Inc. -141
IRC5 Advanced Programming

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


© ABB Inc. -142
IRC5 Advanced Programming

Exercício de Revisão - 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).

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
© ABB Inc. -143
IRC5 Advanced Programming

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.
© ABB Inc. -144
IRC5 Advanced Programming

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.
© ABB Inc. -145
IRC5 Advanced Programming

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.
© ABB Inc. -146
IRC5 Advanced Programming

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.
© ABB Inc. -147
IRC5 Advanced Programming

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.
© ABB Inc. -148
IRC5 Advanced Programming

Exercício de Revisão - 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
DI08 Pegar na esteira A Pegar na esteira B
C/ S/
DI09 Posição (A1/B1) sem Logo Posição (A1/B1) com Logo A6 A3 LOGO LOGO B3 B6
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
DO01 Desliga Vácuo Liga Vácuo
A4 A1 C5 C2 B1 B4
DO08
DO09 C4 C1
© ABB Inc. -149

DO10
DO11 Esteira de
DO12 Palete Incompleto Pelete Completo Saída C

DO13
IRC5 Advanced Programming

Resumo - Instruções Básicas / Funções de Programa


 Instruções de Movimento  Instruções de Matemáticas
 MoveJ  :=
 MoveL  ADD
 MoveC  Incr
 MoveAbsJ  Decr
 Instruções de Controle de Fluxo  Clear
 ProcCall  Instruções Interface
 IF  TPWrite
 Compact IF  TPErase
 While  TPReadFK
 For  TPReadNum
 Goto  Instruções de Tempo
 Label  CDate
 Test  CTime
 Stop  CLKStart
 Instruções de I/O  CLKReset
 Set  CLKStop
 Reset
 SetDO
 InvertDO  Funções de Movimento
 PulseDO  OffSet
 Instruções de Espera
© ABB Inc. -150

 Funções de Clock
 WaitTime  CLKRead
 WaitDI
 WaitUntil

OBS: Para conhecer demais Instruções / Funções consultar manual de Programação RAPID
IRC5 Advanced Programming

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
© ABB Inc. -151
IRC5 Advanced Programming

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.
© ABB Inc. -152
IRC5 Advanced Programming

Avaliação do Curso
© ABB Inc. -153
IRC5 Advanced Programming

Avaliação do Curso
© ABB Inc. -154
IRC5 Advanced Programming

Em Branco
© ABB Inc. -155
© ABB Inc. -156 IRC5 Advanced Programming