Você está na página 1de 156

IRC5

Programação
Avançada
IRC5 Advanced Programming

Bem-vindos!

Sejam Bem-vindos ao primeiro Centro de


Treinamento ABB em Automação e Robótica da
América Latina!

©
AB
B
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 93
erros
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 150
©
AB Programa
151
B
Inc Contatos ABB 153
.
-3 Avaliação do Curso
IRC5 Advanced Programming

Introdução

 Apresentações ABB
 Robótica ABB
 Treinamento ABB

©
AB
B
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
©
AB
B
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
©
AB sustentável.
B
Inc
.
-6
IRC5 Advanced Programming

ABB - Portifólio

Como estamos organizados


5 Divisões Globais

Produtos de Sistemas de Discrete Produtos de Automação de


Potência Potência Automation Processos
Baixa Tensão
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  Soluções de distribuição
elétricos, automação,
controle e  Produtos de baixa-
instrumentação para tensão
©
AB geração de energia e  Robótica e sistemas
B
Inc processos industriais robotizados
.
-7  Transmissão de energia
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,

©
AB
nas usinas que geram nossa
B
Inc
energia e em nossas casas.
.
-8
IRC5 Advanced Programming

ABB - Inovação
Pioneira em tecnologia desde 1883
Os fundadores Turbina
a vapor

Turboch
argers
Turbina
a gás
1900 1920
Painéis isolados Motor sem redutor
1930
Robôs industriais a gás HVDC
1940
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
©
AB
B
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,
©
AB
B
CEO
Inc
.
-1
0
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

©
AB
B
Inc
.
-1
1
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
©
AB
B
Inc
.
-1
2
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
AB instrutor sobre o procedimento.
B
Inc  Estacionamento:
.
-1
A Utilização será orientada na Portaria.
3
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!!!
©
AB
B
Inc
.
-1
4
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;
©
AB
B
 Utilizar instruções de Controle de Movimento.
Inc
.
-1
5
Segurança
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
AB
B
Inc
deste treinamento.
.
-1
7
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)
©
AB
B  Limite de Área de Trabalho
Inc
.
-1
8
IRC5 Advanced Programming

Procedimentos de Segurança ABB

©
AB
B
Inc
.
-1
9
IRC5 Advanced Programming

Procedimentos de Segurança ABB

©
AB
B
Inc
.
-2
0
IRC5 Advanced Programming

Procedimentos de Segurança ABB

©
AB
B
Inc
.
-2
1
IRC5 Advanced Programming

Procedimentos de Segurança ABB

©
AB
B
Inc
.
-2
ABB - Osasco
2
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).

4
2
-
c.
n
I

A
B
B
©
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

©
AB
B
Inc
.
-2
5
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).

©
AB
B
Inc
.
-2
6
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:
 A versão do RW está armazenada no Mediapool que é localizado
5.06.0.0095
por padronização em: C:\Program Files\ABB Industrial IT\Robotics
IT\Mediapool
 RW é carregado para um diretório na Flash Disk do IRC5.

©
AB
B
Inc
.
-2
7
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
AB
B
sistema. Este diretório é protegido e não está disponível para o
Inc usuário.
.
-2
8
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.
AB
B
Inc
.
-2
9
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ãonenhuma
Não modifique únicos para cada robô dos
configuração (Robot System).de
Parâmetros
Sistema a menos que tenha certeza do que está fazendo.

©
AB
B
Inc
.
-3
0
IRC5 Advanced Programming

Métodos para carregar um sistema

 Memória USB
 Porta de Serviço
 Porta LAN

©
AB
B
Inc
.
-3
1
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.
©
AB Sistema somente carregado do
B
Inc
diretório raiz.
.
-3
2
IRC5 Advanced Programming

Carregando sistema utilizando a Porta LAN

Vantagens
 Tudo pode ser controlado através
de um PC
 Todos controladores
LAN podem ser acessados através
conectados a 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

©
AB
B
Inc
.
-3
3
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.
©
AB
B
Inc
.
-3
4
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).

©
AB
B
Inc
.
-3
5
IRC5 Advanced Programming

Telas do Robot Studio Online

Menu
roller
ConttWork
Robo Bare er
Stat
Tool Spac
View Barsus
Explor

©
AB
B
Inc
.
-3
6
IRC5 Advanced Programming

RSO System Builder (construção do Sistema)

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

©
AB
B
Inc
.
-3
8
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.

©
AB
B
Inc
.
-3
9
IRC5 Advanced Programming

RSO System Builder (Construindo Sistema)

©
AB
B
Inc
.
-4
0
IRC5 Advanced Programming

Utilizando o Robot Studio Online

Tela inicial do Robot Studio

©
AB
B
Inc
.
-4
1
IRC5 Advanced Programming

Utilizando o Robot Studio Online

Crie um novo robô (robot view).


(Pode utilizar-se de vários robôs)

©
AB
B
Inc
.
-4
2
IRC5 Advanced Programming

Utilizando o Robot Studio Online

Clique com botão


direito no
Controlador

©
AB
B
Inc
.
-4
3
IRC5 Advanced Programming

Adicione um Controlador

Adicione um
controlador para
se comunicar.

©
AB
B
Inc
.
-4
4
IRC5 Advanced Programming

Visualização de Eventos

Visualização de
eventos atuais e
passados no
sistema.

©
AB
B
Inc
.
-4
5
IRC5 Advanced Programming

IRC5 FlexPendant & R.S.O

 O FlexPendant e RobotStudioOnline trabalham juntos

©
AB
B
Inc
.
-4
6
IRC5 Advanced Programming

Utilizando o R.S.O.

 Localizando seu programa Rapid.

©
AB
B
Inc
.
-4
7
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.

©
AB
B
Inc
.
-4
8
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 solicitarescrita “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.
©
AB
B
Inc
.
-4
9
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.

©
AB
B
Inc
.
-5
0
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.

2
5
-
c.
n
I
©
AB
B
IRC5 Advanced Programming

I/O Configurações

3
5
-
c.
n
©
AB
B
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
3. Expandir“+” “Configuration”
4. em frentejanela
Escolha do controlador)
“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”.

©
AB
B
Inc
.
-5
4
IRC5 Advanced Programming

Configurações de Movimento

©
AB
B
Inc
.
-5
5
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)
 - Selecione
usualmentea do tipodigital.
Saída Saída digital (Output)

 Selecione campo
Tecla Pressionada
(Key Pressed).
 Pressione “OK”.

©
AB
B
Inc
.
-5
6
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.

©
AB
B
Inc
.
-5
7
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
©
AB Coordenada de Base (Base coordinates)
B
Inc
.
-5 X
9
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


AB Posicionamento para as demais
B ferramentas
Inc
.
-6
0
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
coordenada de ferramenta. X - Elongator

Z - Elongator

© Ponteira Fixa
AB
B
Inc
.
-6
1
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

©
AB
B
Inc
.
-6
2
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
©
AB
B
Inc
.
-6
3
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

©
AB
B
Inc
.
-6
4
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ô.

©
AB
B
Inc
.
-6
5
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.

©
AB
B
Inc
.
-6
7
IRC5 Advanced Programming

Memória de Sistema

Sistema Pa
Aplicativo de
râ Memória do Usuário
Operacional Software
VXWorks RAPID
m
etr
os
de
Si
st
e
m
a
(S
ys
Pa
r)
©
AB
B
Inc
. Fora de escala. Utilizado somente para fins didáticos.
-6
8
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…
©
AB
B
Inc
.
-6
9
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

©
Data
AB
B
Inc
.
-7
0
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.
AB
B
(Exceto SYSMODULE)
Inc
.
-7
1
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>
<
M
2. Pressione “Program Editor”. </Program> o
3. Selecione “Robot Task”. d
4. Pressione “Tasks and Programs”.
MainModule.mod u
l
5. Selecione uma Task se existem MODULE MainModule e
múltiplos robôss. PROC main() >
6. Pressione “File” M
7. Pressione “Save Program as”. Rotuine1;
8. Escolha o destino para Routine2;
o ModuleA.mod
d
armazenamento e digite o nome MODULE ModuleA
ENDPROC u
desejado. l PROC RoutineA1()
9. Pressione “OK” e MoveL;
PROC Routine1() A
. MoveL;
MoveL;
m ENDPRO
ENDPROC o C
d ENDMODULE
<
PROC Routine2()
/
MoveL; M
ENDPROC o
d
ENDMODULE u
© l
e
AB
B >
SAVING PROCEDURE
Inc
.
-7
2<Module>MainModule.mod</Module>
1. Pressione menu “ABB”.
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;
ENDPRO
C
ENDMODULE
©
AB
B
Inc
.
-7
3
IRC5 Advanced Programming

Rotinas

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

P10
DATA: P20
P210

Todo programa precisa ter uma rotina Main.


A instrução ProcCall é utilizada para chamada de outras rotinas.
©
AB
B
Inc
.
-7
4
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.

©
AB
B
Inc
.
-7
5
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

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

©
AB
B
Inc
.
-7
7
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

©
AB
B
Inc
.
-7
8
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};

©
AB
B
Inc
.
-7
9
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
(Opcional) peças inspecionadas na rotina rInspecao aguarde o sinal de entrada
acionado. ser

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
AB offset. Crie uma nova rotina de estilo (rStylexx) que desenhe circulos no papel através
B de offset e arrays.
Inc
. B. Para o programa que simula (MH). Crie 2 matrizes simples representando configuração
-8 de offset de um palete. Substitua a Esteira por um Palete que utiliza valores de uma
0 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.

©
AB
B
Inc
.
-8
2
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.
-83

©
AB
B
Inc
.
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

©
AB
B
Inc
.
-8
4
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”.

©
AB
B
Inc
.
-8
5
IRC5 Advanced Programming

Exemplo de Interrupção

©
AB
B
Inc
.
-8
6
IRC5 Advanced Programming

Interrupção - Connect

Connect

Conecta uma Variável nomeada TRAP rotina


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

intFlowFault with trapFAULT

©
AB
B
Inc
.
-8
7
IRC5 Advanced Programming

Interrupção - ISignalDI

Associa um INPUT
/Evento com um
Sinal Digital Interrupção
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
©
AB
B
Inc
.
-8
8
IRC5 Advanced Programming

Exemplo de Rotina Trap

fine

©
AB
B
Inc
.
-8
9
IRC5 Advanced Programming

Event Routines

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.

©
AB
B 20 rotinas podem ser associadas para cada evento.
Inc
.
-9
0
IRC5 Advanced Programming

Configurando um Evento de Sistema

©
AB
B
Inc
.
-9
1
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
2. Adicione uma
ponto que Event Routine que:
parou.

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
AB do ciclo acione a saída . Após reinício do ciclo desacione a mesma.
B
Inc
.
-9
2
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

©
AB
B
Inc
.
-9
4
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:

©
AB
B
Inc
.
-9
5
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)
©
AB
B
Inc
.
-9
6
IRC5 Advanced Programming

Característica de Instruções de Procura


s

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
©
AB
B
Inc
.
-9
7
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.

©
AB
B
Inc
.
-9
8
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)

©
AB
B
Inc
.
-9
9
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 RAP ERR_EXECPHR An attempt was made to execute an instruction using a
T place holder
ERR_ALRDY_MOVING routine ERR_FILEACC A file is accessed incorrectly
The robot is already moving when executing a , ERR_FILEEXIST A file already exists
ERR_AO_LIM ,2 !+,!+instruction ERR_FILEOPEN A file cannot be opened
analog signal value outside limit in 0& ERR_FILNOTFND File not found
ERR_ARGDUPCND 0/K
Moreor0,
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)
ERR_ARGNOTPER Argument is not a persistent reference ERR_ILLRAISE valve
ERR_ARGNOTVAR Argument is not a variable reference ERR_INOMAX Error number in RAISE out of range
ERR_AXIS_ACT Axis is not active ERR_IODISABLE No more interrupt numbers available
ERR_AXIS_IND Axis is not independent ERR_IODN_TIMEOUT Timeout when executing IODisable
ERR_AXIS_MOVING Axis is moving ERR_IOENABLE Timeout when executing IODNGetAttr or IODNSetAttr
ERR_AXIS_PAR Parameter axis in instruction TestSign and SetCurrRefERR_IOERROR I/O Timeout when executing IOEnable
is wrong. ERR_LOADED Error from instruction Save
ERR_BWDLIMIT Limit StepBwdPath ERR_LOADID_FATAL The program module is already loaded
ERR_CALLIO_INTER If an IOEnable or IODisable request is Only internal use in LoadId
byERR_LOADID_RETRY
interrupted another request to the same unit ERR_LOADNO_INUSE Only internal use in LoadId
ERR_CALLPROC e ERR_LOADNO_NOUSE
Procedure call error (not procedure) at runtime (lat The load session is in use in StartLoad
binding) ERR_MAXINTVAL The load session is not in use in CancelLoad
ERR_CFG_INTERNAL Not allowed to read internal parameter- # ERR_MODULE The integer value is too large
ERR_MSG_PENDING Incorrect module name in instruction ,+
ERR_CFG_ILLTYPE Type mismatch - #, # ERR_NAME_INVALID and /- The unit is busy
ERR_CFG_LIMIT Data limit - # If the unit name does not exist or if the unit is not
ERR_CFG_NOTFND Not found - #, # ERR_NEGARG allowed to be disabled
ERR_CNTNOTVAR CONNECT target is not a variable reference ERR_NORUNUNIT Negative argument is not allowed
ERR_CNV_NOT_ACT The conveyor is not activated. ERR_NOTARR If there is no contact with the unit
ERR_CNV_CONNECT The ? instruction is already active. ERR_NOTEQDIM Data is not an array
ERR_CNV_DROPPED The object that the instruction ? was waiting The array dimension used when calling the routine does
© for has been dropped. ERR_NOTINTVAL not coincide with its parameters
AB ERR_DEV_MAXTIME Timeout when executing a ReadBin, a ERR_NOTPRES Not an integer value
B ReadNum or A parameter is used,
ReadStr instruction despite the fact that
Inc ERR_DIPLAG_LIM
Too big 2 in the instruction 0,connected the corresponding
.
to current 02-0#-0> argument was not
-1
used at the routine
00 call
IRC5 Advanced Programming

Tipo de Dados - Errnum


Name
ital
Cause of error
Name Cause of error ERR_TP_DIBREAK A TPRead instruction was interrupted by a dig ital
ERR_NOTSAVED Module has been changed since it was loaded into the input
system. ERR_TP_DOBREAK n
A
dFK
TPRead instruction was interrupted by a dig
ERR_OUTOFBND The array index is outside the permitted limits output
ERR_OVERFLOW Clock overflow ERR_TP_MAXTIME Timeout when executing a TPRead
instructio ERR_PATH Missing destination path in instruction Save ERR_TP_NO_CLIENT No client to interact with when using
TPRea ERR_PATHDIST Too long regain distance for ,!+ or ,!+ instruction n
instruction ERR_TRUSTLEVEL Not allowed to disable IO unit ERR_PATH_STOP Stop of the movement because of
ERR_PROGSTOP
some process error ERR_UI_INITVALUE The robot Initial
is program
valuestop
errorstate when executing
in function a
UINumEntry ERR_UI_NOTINTOnly internal use in LoadId
ERR_PID_MOVESTOP Value is not a integer when specified that
ERR_UI_MAXMIN Minan
,!+ or ,!+ instruction integer
value is greater then max value in functio ERR_PID_RAISE_PP Error from ParIdRobValid or ParIdPosValid UINumEntry
ERR_RANYBIN_CHK Check sum error detected at data transfer with should be used when using UINumEntry
instruction ERR_UNIT_PAR Parameter Mech_unit in TestSign and SetCurrRef
ERR_RANYBIN_EOF ReadAnyBin is wrong
End of file is detected before all bytes are read in ERR_UNKINO Unknown interrupt number
ERR_RCVDATA instruction ReadAnyBin ERR_UNKPROC Incorrect reference to the load session in
An attempt was made to read non numeric data with instruction WaitLoad
ERR_REFUNKDAT ReadNum ERR_UNLOAD Unload error in instruction UnLoad or WaitLoad
ERR_REFUNKFUN Reference to unknown entire data object ERR_WAITSYNCTASK Time-out from WaitSyncTask
ERR_REFUNKPRC Reference to unknown function ERR_WAIT_MAXTIME Timeout when executing a WaitDI or WaitUntil
Reference to unknown procedure at linking time or instruction
ERR_REFUNKTRP at run time (late binding) ERR_WHLSEARCH No search stop
ERR_ROBLIMIT Reference to unknown trap
Axis outside working area or limits exceeded for at
ERR_SC_WRITE least one coupled joint
ERR_SIGSUPSEARCH Error when sending to external computer
The signal has already a positive value at the beginning
ERR_STARTMOVE of the search process
The robot is in hold state when executing a ,!+
ERR_SOCK_CLOSED or ,!+ instruction
ERR_SOCK_CONNREF The socket is closed, or is not created
© ERR_SOCK_ISCON The connection was refused by the remote computer
ABERR_SOCK_TIMEOUT The socket is already connected
B The connection was not established within the time
IncERR_STRTOOLNG out time
. ERR_SYM_ACCESS The string is too long
-1 ERR_SYNCMOVEOFF Symbol read/write access error
01 ERR_SYNCMOVEON Timeout from SyncMoveOff
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.
102

©
AB
B
Inc
.-
IRC5 Advanced Programming

Instruções de Error Handling


1. E_X IT Termina a execução do programa. O programa
poderá ser reiniciado somente do começo, ou seja, rotina
Main.
2. R_A IS E 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
3. R_E_T específica que trata erros.
Reinicia a execução do programa a partir da mesma instrução que
R_Y causou o erro.
4. _R_E Finaliza a execução da rotina.
T_U_R
STOP or
N_
5. Para a execução do programa.

_T__R_N
6. B E_EX
A _ Reinicia a execução do programa a partir da próxima instrução que
R_YKT_ causou o erro.

©
AB
B
Inc
.
-1
03
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
©
AB TryNext
B
Inc
. Return
-1
04 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.
procura novamente. Após 2 tentativas, o robô deverá parar,
2. Se o robô não encontrar a peça o mesmo
para deverá
tentarresetar
a o contador e enviar uma mensagem 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.

©
AB
B
Inc
.
-1
05
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

©
AB
B
Inc
.
-1
07
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
diferença entretotal é
a Posição Atual do robô e o
determinado
pSearchStart.pela
P3 (ORIGINAL) P3 (DESLOCADO)
pSearchStart pFound STOP pSearchEnd

© MOVEL pSearchStart, V100, Fine, tSensor;


AB
B
Utilizado como uma referência inicial para procura
Inc
.
-1
08
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
diferença entretotal é pFound e o ponto pSearchStart.
o ponto
determinado pela
P3 (ORIGINAL) P3 (DESLOCADO)
pSearchStart pFound STOP pSearchEnd

MOVEL pSearchStart, V100, Fine, tSensor;


© Utilizado como uma referência inicial para procura
AB
B
Inc
.
-1
09
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.

©
AB
B
Inc
.
-11
0
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.
©
AB
DefFrame - Define um frame a partir de 3 robtargets.
B
Inc
.
-11
1
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.

©
AB
B
Inc
.
-11
2
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.

©
AB
B
Inc
.
-11
4
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.

5
1
1
-
c.
n
I

A
B
B
©
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;
_D_e_sa_t_iv_a_u_m_a_T_e_m_p_. W o_rld Zo_n_e
©
AB WZEnable WorldZone; _R_e_at_iv_a_u_m_a_T_e_m_
B
Inc p_. _W_o_rl_d _Z_on_e_
.
-11
6
WZFree WorldZone; _A_p_a_g_a p_. or_ld_Z_
_u_m_a_T_em W o_n_e
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
50mm. Sempre Zona
que Esférica
o robô em torno
estiver da posição
dentro da zonade serviço com
definida o sinal de
raio 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.

©
AB
B
Inc
.
-11
7
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,
AB
B
caso utiliza-se Multimove, nas tasks de movimentação.
Inc
.
-11
9
IRC5 Advanced Programming

Instruções de Performance

Eixo

SoftAct -Softact 3,30;


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 -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%


AB
B sendo que 100 denota a complacência máxima e 0 denota a intolerância
Inc
.
máxima.
-1
20
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
©
AB de uma trajetória do robô. O dado definido é utilizado para
B
Inc implementação de uma ou mais instruções de movimentação como
. TriggL, TriggJ, ou TriggC.
-1
21
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
(parada acrescentada
acionamento com argumento
de uma rotina opcional
de interrupção -> \StopMove).
que rodará O dado
após a parada dodefinido
robô é
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
©
AB
trajetória circular.
B
Inc
.
-1
22
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.

©
AB
B
Inc
.
-1
23
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
©
AB interpolação linear e circular para robôs com menos de 6 eixos.
B
Inc
.
-1
24
IRC5 Advanced Programming

Exercício 9

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


capítulo.

©
AB
B
Inc
.
-1
25
Work Objects IRC5 Programação
Avançada
IRC5 Advanced Programming

Work Object

Work Object
Um Work Object pode ser usado para:

1. D E_S_L_O_C A_M E_N_T_O


D_O P_R O_G_R A_M A_
2. P R_O_G R_A_M A_Ç_Ã O
O_F_F_-_L_IN E
3. F_A_C IL_I_T_A_R M_O
V_I_M_E_N_T_A Ç_Ã_O D O_R
OBÔ

©
AB
B
Inc
.
-1
27
IRC5 Advanced Programming

Work Object

Work Object

Um work object consiste em


C_O_O_R_D_E_N_A_DA D_E_U_S_U_Á_R_IO
e C_O_O_R_D_E_N_A_D_A .
_D_E_O_B_J_E_T_O
Use a janela J_O_G_ para ativar um
work object. G_IN_G

©
AB
B
Inc
.
-1
28
IRC5 Advanced Programming

Work Object

Work Object

No programa, um work object é utilizado com


instruções de M O_V_I_M_E_N
T_O .
Exemplo:
MoveL p1,v1000,z5,tGripper,/Wobj:=ob_fix

Quando definir um work object, é importante utilizar


©
um preciso _T_C_P (_T_O_O_L
AB
B
C_E_N T_E_R
Inc
. P_O_I_N_T_)_.
-1
29
IRC5 Advanced Programming

Work Object

Criando um Work Object


ABB : Program Data : wobjdata : Show Data : New

©
AB
B
Inc
.
-1
30
IRC5 Advanced Programming

Work Object

Definindo um Work Object


Pressione “Edit” : Define

©
AB
B
Inc
.
-1
31
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.
©
AB
B
Inc
.
-1
32
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.

©
AB
B
Inc
.
-1
34
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ô.

©
AB
B
Inc
.
-1
35
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

© p30 x
AB x p20
B
Inc
.
-1
36
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

© p30 x x p20
AB
B
Inc
.
-1
37
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 pHome x oposição
posiçãono
nopapel
espaço

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

© p30 x x p20
AB
B
Inc
.
-1
38
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/
o p_aprox_4 o pHome peça

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

©
p30 x x
AB
B p20
Inc
.
-1
39
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.

©
AB
B
Inc
.
-1
40
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

©
AB
B
Inc
.
-1
41
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

©
AB
B
Inc
.
-1
42
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

©
AB
B
Inc
.
-1
43
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.

©
AB
B
Inc
.
-1
44
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.

©
AB
B
Inc
.
-1
45
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.

©
AB
B
Inc
.
-1
46
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.

©
AB
B
Inc
.
-1
47
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.

©
AB
B
Inc
.
-1
48
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 C/ S/
Pegar na esteira A Pegar na esteira B
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
© DO10
AB
B DO11 Esteira de
Inc
. DO12 Palete Incompleto Pelete Completo Saída C
-1
49 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
  TPReadFK
While
  TPReadNum
For
 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  Funções de Clock
AB  WaitTime
B  CLKRead
Inc  WaitDI
. 
-1 WaitUntil
50
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
Margareth Silva Técnica 11 3688-9223
margareth.silva@br.abb.com

 Suporte Técnico
Ricardo Maia ricardo.maia 11 3688-9032
@br.abb.com

 Plantão 24h ABB


plantão.24horas@br.abb.com 0800-12-2500

©
AB
B
Inc
.
-1
51
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.

©
AB
B
Inc
.
-1
52
IRC5 Advanced Programming

Avaliação do Curso

©
AB
B
Inc
.
-1
53
IRC5 Advanced Programming

Avaliação do Curso

©
AB
B
Inc
.
-1
54
IRC5 Advanced Programming

Em Branco

©
AB
B
Inc
.
-1
55
IRC5 Advanced Programming

©
AB
B
Inc
.
-1
56

Você também pode gostar