Sei sulla pagina 1di 248

IRC5 Programação Básica

IRC5 – Operação e
Programação Básica
IRC5 Programming
Basic
© ABB Inc. -1
IRC5 Programação
Programming Básica
Basic

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 Programação
Programming Básica
Basic

Conteúdo
Introdução 4
Informações Gerais do Curso 13
Objetivos do Curso 15
Robótica - Tipo de Robôs e Aplicações 16
Segurança 20
Descrição do Sistema 40
Mensagem de Eventos 61
Fundamentos da Programação 74
Backup and Restore 97
TCP (Ponto Central da Ferramenta) 115
Robot Studio Online 131
Programação Estruturada 141
Controlando o Fluxo do Programa 164
Trabalhando com numerais 172
Comunicando com o Operador 179
Outras Instruções 189
Work Objects 198
Programando com OffSets 206
Calibração e Sincronismo 214
Exercícios 225
© ABB Inc. -3

Resumo - Instruções / Funções de Programa 242


Contatos ABB 243
Avaliação do Curso 245
IRC5 Programação
Programming Básica
Basic

Introdução

Apresentações ABB
Robótica ABB
Treinamento ABB

© ABB Inc. -4
IRC5 Programação
Programming Básica
Basic

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 Programação
Programming Básica
Basic

ABB - Visão

Como uma das empresas líderes mundiais


em engenharia, ajudamos nossos clientes a
utilizarem energia elétrica de forma eficiente,
aumentarem sua produtividade industrial e
diminuírem seu impacto ambiental de forma
sustentável.

© ABB Inc. -6
© ABB Inc. -7
IRC5 Programação
Programming Básica
Basic

ABB
Energia e automação estão em torno de nós
Você encontrará a tecnologia ABB...
funcionando em órbita ao redor do planeta,

cruzando oceanos e no fundo do mar,

nos campos onde crescem nossas safras e


nas embalagens dos nossos alimentos,

nos trens em que viajamos e nas


instalações que processam nossa água,

nas usinas que geram nossa


energia e em nossas casas.

© ABB Inc. -8
IRC5 Programação
Programming Básica
Basic

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 Programação
Programming Básica
Basic

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 Programação
Programming Básica
Basic

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 Programação
Programming Básica
Basic

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 Programação
Programming Básica
Basic

Informações Gerais do Curso


Regulamentos

Almoço:
No horário do almoço, as salas ficarão fechadas. O almoço já está incluso no treinamento,caso
deseje almoçar fora, a região oferece outras opções.
Durante as aulas:
No interior das salas de aula e hall do ABBI, não é permitido fumar, existe uma área externa
reservada para fumantes, contamos com sua colaboração. Para evitar interrupções e distrações,
bem como incômodos aos outros alunos, o uso de celulares e pagers devem ser evitados durante
as aulas. Caso seja extremamente necessário, manter o aparelho celular/pager ligado, deixe-o no
modo vibra-call.
Visando a qualidade e higiene, nossos sanitários constantemente são vistoriados e limpos. Por este
motivo, temos sanitários disponíveis no andar superior também.
Guarda do Material Didático:
Cada aluno é responsável por seu material de estudo (Kit do Estudante) e pertences pessoais, não
cabendo a ABB a responsabilidade por perda ou roubo destes materiais. Recomendamos aos
alunos que ao término do curso, levem seu material consigo, pois a ABB não fará a guarda do
mesmo.
Coffee-breaks:
Durante os intervalos será servido um coffee-break no hall do ABBI térreo. Por favor, não leve
alimentos e bebidas para as salas de aula e laboratórios, contribuindo desta forma, para a boa
conservação do local.
Telefones:
Estará disponível um ramal para efetuar ligações externas. Gentileza se informar com o instrutor
sobre o procedimento.
Estacionamento:
A Utilização será orientada na Portaria.

© ABB Inc. -13


IRC5 Programação
Programming Básica
Basic

Informações Gerais do Curso

Perfil do Aluno:
Operadores, técnicos e engenheiros que irão atuar na operação e/ou desenvolvimento de
programas robotizados.
Duração:
4 dias. (Carga Horária Total de 28 Horas).
Horários:
08:30h Início de Aula
10:15 - 10:30h Coffee-break
12:45 – 13:45h Almoço
15:15 – 15:30h Coffee-break
16:30h Final da Aula
.

Bom Curso!!!

© ABB Inc. -14


IRC5 Programação
Programming Básica
Basic

Objetivos do Curso
O objetivo deste treinamento é ensinar os princípios básicos de operação com o
robô, apresentando de maneira simples e direta os elementos necessários para
operadores, técnicos e engenheiros poderem manusear e operacionalizar uma
célula de robô em produção, bem como criar, interpretar, efetuar
alterações/correções em programas simples, operacionalizando uma célula
robotizada.
Ao concluir o curso o aluno estará apto a:
Operar o robô e seus programas com segurança nos seus diversos modos de operação.
Interpletar e responder eventos do controlador.
Compreender conceitos básicos de Calibração/Sincronismo.
Compreender o sistema de Coordenadas juntamente com TCP e WorkObject.
Criar, Editar e Analisar programas básicos.
Utilizar instruções de movimentação nos programas.
Utilizar instruções de Controle de Fluxo nos programas.
Utilizar instruções Matemáticas nos programas.
Utilizar instruções de I/O nos programas.
Utilizar instruções de Interface nos programas.
Utilizar instruções de tempo nos programas.
Realizar Backup e Restaurar programas.

© ABB Inc. -15


IRC5 Programação Básica

Robótica
Tipo de Robôs e Aplicações
IRC5 Programming
Basic
IRC5
Programação Básica

© ABB Inc. -16


IRC5 Programação
Programming Básica
Basic

Tipo de Robôs

Robôs Industriais
Androide
Scara
FlexPicker

© ABB Inc. -17


IRC5 Programação
Programming Básica
Basic

Aplicações Robotizadas

Manipulação
Soldagem MigMag
Soldagem à Ponto
Pintura
Lavagem
Cola
Usinagem
Etc

© ABB Inc. -18


IRC5 Programação
Programming Básica
Basic

Vantagens com a Automação Robotizada

Segurança
Repetibilidade
Qualidade
Produtividade
Competitividade

© ABB Inc. -19


IRC5 Programação Básica

Segurança IRC5 Programming


Basic
IRC5
Programação Básica

© ABB Inc. -20


IRC5 Programação
Programming Básica
Basic

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

deste treinamento.
IRC5 Programação
Programming Básica
Basic

Risco de Acidentes

Falha Humana
Reparo
Mudança de
Programa
Teste

Sempre evite a área de risco!


© ABB Inc. -22
IRC5 Programação
Programming Básica
Basic

Travamento (Lock Out)


Utilize dispositivo de travamento para fontes de energia.

© ABB Inc. -23


IRC5 Programação
Programming Básica
Basic

Recursos de Segurança ABB

Parada de Emergência (ES)


Modo de Operação
Auto
Manual < 250 mm/s
Manual 100%
Dispositivo de Segurança
em Manual (Enabling device /
Dead mans grip)
Dispositivo de Segurança
em Manual 100% (Hold-to-run)
Cadeia de Segurança
(Safeguard stop/ Run Chain)
(Auto and Manual)
Limite Área de Trabalho

© ABB Inc. -24


IRC5 Programação
Programming Básica
Basic

Segurança – regulamentos

Os robôs ABB cumprem as exigências requeridas na


ISO 10218, Jan 1992, segurança de robôs Industriais.
Os mesmos também cumprem exigências da ANSI/RIA
15.06-1999.
Definição de Segurança função/regulamento:
Emergency stop – IEC 204-1, 10.7
Enabling device – ISO 11161, 3.4
Safeguard – ISO 10218 (EN 775), 6.4.3
Reduced speed – ISO 10218 (EN 775), 3.2.17
Interlock – ISO 10218 (EN 775), 3.2.8
Hold to run – ISO 10218 (EN 775), 3.2.7

© ABB Inc. -25


IRC5 Programação
Programming Básica
Basic

Parada de Emergência (Emergency Stop)

Os botões de emergência
estão localizados no
FlexPendant e no Módulo de
Controle padrão.
Pode-se adicionar botões de
Emergência na célula
robotizada bastando
conectá-los a Cadeia de
Segurança do robô (Run
Chain).

Para reset das falhas de Emergência o botão


© ABB Inc. -26

“Motors On” deverá ser pressionado.


IRC5 Programação
Programming Básica
Basic

Modos de Operação

Automático
Modo de Produção (sem limite de velocidade)
Manual
< 250 mm/s – velocidade máx. 250 mm/s
100 % – Opcional. Robô pode ser testado sem
limitação de velocidade.
© ABB Inc. -27
IRC5 Programação
Programming Básica
Basic

Enabling Device (Dead Mans Grip)

O botão “Enabling device” possui três estágios


(posições).
Para ativação dos motores o botão precisa
necessáriamente estar na posição intermediária.
Os movimentos do robô irão parar imediatamente caso
o botão seja solto ou pressionado até o final.
© ABB Inc. -28

Enabling device
IRC5 Programação
Programming Básica
Basic

Hold-to-Run

Opcional (esta função poderá ser utilizada


somente no modo manual 100%).
No modo de operação manual 100% os
motores só serão ativados ao pressionar
simultaneamente os botões “Enabling device”
e “Hold-to-Run”.

Enabling device

Hold-to-run buttons
(for left or right hand)

© ABB Inc. -29


IRC5 Programação
Programming Básica
Basic

Cadeia de Segurança (Safeguard Stop/ Run Chain)

As conecções da Cadeia de Segurança (Run Chain) possibilita o


intertravamento de equipamentos externos como portas, curtinas
de luz, Tapete de Segurança, etc.
Existem duas categorias de Cadeia de segurança:
Manual – A parada de segurança é ativada por qualquer um dos Elos
de Segurança com exceção ao “AutoStop” (Emergency Stop, General
Stop, Superior Stop)
Auto – A parada de segurança é ativada quando o controlador opera
no modo automático (Auto Stop)
É possível configurar um retardo para atuação da Cadeia de
Segurança (Soft Stop). O robô irá parar aproximadamente 1
segundo após acionamento da Cadeia de Segurança sem desviar
da trajetória original do programa, isso ocorre devido a um retardo
na desabilitação do “Motors On”
© ABB Inc. -30
IRC5 Programação
Programming Básica
Basic

Limitando a Área de trabalho (Workspace)

Para evitar riscos de colisão


entre o robô e equipamentos
dentro da área de trabalho do
robô, por exemplo o
fechamento de segurança, A
área de trabalho do robô
(Workspace) pode ser limitada:
Todos eixos podem ser limitados
via software
Os eixos 1-3 podem ser limitados
mecanicamente através de
batentes mecânicos e chaves fim-
de-curso (Limit Switches)
© ABB Inc. -31
IRC5 Programação
Programming Básica
Basic

Segurança – Ferramentas de Manipulação

Toda ferramenta de manipulação (Garras -Grip Devices)


deveria ser projetada para não soltar a peça em caso
pane. Ex.: Falta de alimentação
O projeto deverá possibilitar liberação da peça
manualmente

© ABB Inc. -32


IRC5 Programação
Programming Básica
Basic

Segurança - Eletricidade

Alta tensão de alimentação nos painéis de controle e


manipulador
Módulo de controle (Control Module)
Alimentação da Fonte (Power supply) – 230 VAC
Outros equipamentos do usuário (Customer equipment) –
Módulo de Drives (Drive Module)
Alimentação da Rede (Power Source) – 480 VAC
Alimentação da Fonte (Power supply) – 230 VAC
Alimentação para motores – 370VDC até 700 VDC

© ABB Inc. -33


IRC5 Programação
Programming Básica
Basic

Segurança – Liberando Freios

Os freios dos motores do robô podem ser liberados


manualmente
Antes de liberar o freio, certifique-se que o braço do
robô esteja apoiado a fim de não provocar acidentes
envolvendo pessoas ou equipamentos

© ABB Inc. -34


IRC5 Programação
Programming Básica
Basic

Segurança Pessoal

Controle de acesso a Área de Trabalho do robô


Posicionando adequadamente os dispositivos que compõem a
célula, em função da Área de Trabalho do robô (Work space),
pode-se minimizará o risco de contato pessoal com o manipulador
© ABB Inc. -35
IRC5 Programação
Programming Básica
Basic

Procedimentos de Segurança ABB


© ABB Inc. -36
IRC5 Programação
Programming Básica
Basic

Procedimentos de Segurança ABB

© ABB Inc. -37


IRC5 Programação
Programming Básica
Basic

Procedimentos de Segurança ABB

© ABB Inc. -38


IRC5 Programação
Programming Básica
Basic

Procedimentos de Segurança ABB

ABB - Osasco

© ABB Inc. -39


IRC5 Programação Básica

Descrição do Sistema
IRC5
Programação Básica

© ABB Inc. -40


IRC5 Programação
Programming Básica
Basic

Sistema do Robô

Controlador IRC5 Manipulador IRB6600


© ABB Inc. -41
IRC5 Programação
Programming Básica
Basic

Controlador IRC5

FlexPendant
Robot Studio Online

Chave Geral
Módulo de Controle
(Control Module)

Módulo de Acionamento
(Drive Module)
© ABB Inc. -42
IRC5 Programação
Programming Básica
Basic

Controlador Flexivel DCX


Chave Geral

E-Stop

Motors On
Chave Modo Op.

Run Chain Status


Porta USB
Porta Ethernet

Horímetro
© ABB Inc. -43
IRC5 Programação
Programming Básica
Basic

Exemplo de Robô Industrial – IRB 6600

Manipulator IRB6600

© ABB Inc. -44


IRC5 Programação
Programming Básica
Basic

Movimentos do robô de 6 eixos


© ABB Inc. -45
IRC5 Programação
Programming Básica
Basic

Exemplo de Robô Industrial – IRB 140

© ABB Inc. -46


IRC5 Programação
Programming Básica
Basic

Movimentos do robô de 6 eixos

© ABB Inc. -47


IRC5 Programação
Programming Básica
Basic

IRC5 – FlexPendant
Tela Colorida ”Touch Screen” 4 Teclas Programáveis

Joystick
3-direções
© ABB Inc. -48

4 Teclas para rodar programa


Start
Passo a Passo (frente/trás)
Stop
IRC5 Programação
Programming Básica
Basic

IRC5 – FlexPendant
ABB Menu Barra de Eventos (Status bar)
Main menu
© ABB Inc. -49

Atalho de Janelas
abertas (semelhante Tecla de Atalho
ao Windows) (Quickset or
“COG” Menu)
IRC5 Programação
Programming Básica
Basic

Menu da Tecla de Atalho (Quickset or COG)


© ABB Inc. -50
IRC5 Programação
Programming Básica
Basic

Movimentando o robô
© ABB Inc. -51

Para a figura acima, considera-se que o operador encontra-se em frente ao robô


IRC5 Programação
Programming Básica
Basic

Movimentando o robô
+3 +4
-5 +6

-2
-3
-4 +5 -6
+2
+5
+2
-1 +1
-4 +4
-1 +1
+6 -6
+3 -3
-5
-2

+Z Z
Y
+Y
-X
-X
X
-Y +Y
-Y +Y
+Z -Z
+Z -Z +X
© ABB Inc. -52

+X
+X
IRC5 Programação
Programming Básica
Basic

Coordenadas de Sistema
TCPZ
Y
X
Ferramenta
(Tool coordinates)

Z
Y
X
Base (Base coordinates)
Z Z
Y
Y

X Objeto
Mundial (WorkObject)
(World coordinates) X
© ABB Inc. -53
IRC5 Programação
Programming Básica
Basic

Regra da Mão Direita

+Z

+X

+Y
© ABB Inc. -54
IRC5 Programação
Programming Básica
Basic

IRC5 – FlexPendant

Menu Principal ABB


© ABB Inc. -55
IRC5 Programação
Programming Básica
Basic

IRC5 – FlexPendant

Entradas e Saídas (I/O Window).

Output On Output Off

© ABB Inc. -56


IRC5 Programação
Programming Básica
Basic

IRC5 – FlexPendant

Janela “Colocação em Movimento” (Jogging)

© ABB Inc. -57


IRC5 Programação
Programming Básica
Basic

Log de Eventos (Handling Events)

Quando um problema ou um possível problema ocorre no robô, uma Mensagem de


Evento é mostrada e armazenada no Log de Eventos (Event Log).

Para Limpar o evento pressione “Confirmar”/ “Acknowledge”


Se um evento é ignorado a mensagem aparecerá na Barra de Eventos (Status bar).
© ABB Inc. -58
IRC5 Programação
Programming Básica
Basic

IRC5 – FlexPendant
Habilidade para construir aplicações Desenvolvimento OnLine
customizadas com uso de gráficos e e OffLine através do
controle de informações. Virtual IRC5.
Tecnologia Microsoft poderosa com
padrões e ferramentas de
desenvolvimento.
© ABB Inc. -59
IRC5 Programação
Programming Básica
Basic

IRC5 – FlexPendant

Possibilidade de configurar
diferentes níveis de acesso para
grupos de usuários
(User Authentication system
Hot Plug – Possibilidade de
conectar e desconectar a
FlexPendant durante operação
Proteção a ambientes severos –
IP54 (Projecão dágua / Pó)
Múltiplos comprimentos de cabo
Tela “Touch Screen”:
7.7 inch
640 x 480 pixels
Usuários destros e canhotos
© ABB Inc. -60

Mútiplos Idiomas
IRC5 Programação Básica

Mensagem de Eventos
IRC5
Programação Básica

© ABB Inc. -61


IRC5 Programação
Programming Básica
Basic

Introdução

I Existem 3 tipos de Mensagem de Eventos:

Informação (Information)
Ex.: Botão “Hold to run” precisa ser pressionado.
Informação de como proceder

Alarme (Warning)
Ex.: Movimento Manual velocidade 100% selecionado.
O operador é informado sobre o risco.

Erro (Error)
Ex.:: Falha do “Motor On” por Parada de Emergência.
O sistema não pode operar antes do restabelecimento
do estado atual (Emergency Stop).

© ABB Inc. -62


IRC5 Programação
Programming Básica
Basic

Mensagem de Informação

Ex.: Informação para rodar o programa no modo manual 100%:

© ABB Inc. -63


IRC5 Programação
Programming Básica
Basic

Mensagem de Alarme

Quando o sistema detecta uma situação que pode causar


problemas ou risco de segurança

© ABB Inc. -64


IRC5 Programação
Programming Básica
Basic

Mensagem de Erro

Quando o sistema detecta um problema ou possibilidade de


problema é gerado uma mensagem de erro com descrição e ação.
Ex.: Mensagem “Unacknowledged” é mostrada em vermelho na Barra
de Eventos (Status bar).

“Unacknowledged”
Mensagem Não Reconhecida

© ABB Inc. -65


IRC5 Programação
Programming Básica
Basic

Conteúdo das Mensagens de Eventos


Uma Mensagem de Eventos consiste em:
Descrição
Consequências (opcional)
Possíveis Causas (opcional)
Ação (opcional)

Pressionar as teclas
“setas amarelas” para
visualizar todo conteúdo!

© ABB Inc. -66


IRC5 Programação
Programming Básica
Basic

Visualizando Logs de Eventos na FlexPendant

Menu Principal – Menu ABB


Barra de Eventos – Atalho

Pressionar sobre a barra


para visualizar os eventos.

Ou pressionar “Menu
ABB” e “Event Log”.

© ABB Inc. -67


IRC5 Programação
Programming Básica
Basic

Log de Eventos (Event Log)

Ícone Código Título Horário do Registro

© ABB Inc. -68


IRC5 Programação
Programming Básica
Basic

Log de Eventos (Event Log)

Visualize a lista completa através das setas amarelas


Selecione a mensagem para visualização dos detalhes
Resolução do Horário de Registro em centésimos de
segundo

© ABB Inc. -69


IRC5 Programação
Programming Básica
Basic

Log de Eventos (Event Log)

Os Logs são divididos em Tópicos


Pressionar ”Exibir” (View) e selecionar o Tópico desejado
O Tópico ”Comum” (Common) consiste nos últimos Logs que ocorreram

© ABB Inc. -70


IRC5 Programação
Programming Básica
Basic

Categoria de Eventos
Categoria Núm. do Erro Area___________

Operacional (Operational) 10xxx Falha Operacional (Operational Status)


Sistema (System) 20xxx Falha de Sistema (Panel unit)
Hardware 30xxx Falha de Placas (Board Failure)
Programa (Program) 40xxx Programação (Programming)
Movimentos (Motion) 50xxx Problema de Movimento (Movement problem)
Operação (Operation) 60xxx Operação FlexPendant (Flex Pendant Handling)
E/S (I/O communication) 70xxx Falha Comunicação (I/O board communication)
errors

Solda à Arco (ArcWeld) 11xxx Processo (Process)


Solda à Ponto (SpotWeld) 12xxx Processo (Process)
Pintura (Paint) 13xxx Processo (Process)

Quando necessário suporte para resolução


da falha, verifique o número do erro!

© ABB Inc. -71


IRC5 Programação
Programming Básica
Basic

Logs – Eventos no R.S.O

Os Logs estão disponíveis no R.S.O


Selecionar ”RobotView” e ”Events”.

© ABB Inc. -72


IRC5 Programação
Programming Básica
Basic

Exercício 1

1. Movimente o robô nos modos Eixo-à-Eixo, Linear e Reorientação utilizando o


botão “Quick Set” e o Joystick. Quais são as diferenças entre os tipos de
movimentos possíveis?

2. O que acontece quando você pressiona a barra superior na tela do


FlexPendant?

3. Visualize o Log de Eventos. Qual foi o último evento que ocorreu?

4. Pratique explorando os botões do FlexPendant, se você tiver alguma dúvida


questione o instrutor.

© ABB Inc. -73


IRC5 Programação Básica

Fundamentos da
Programação IRC5
Programação Básica

© ABB Inc. -74


IRC5 Programação
Programming Básica
Basic

Tópicos

Estrutura de Programa IRC5


Criando, Editando e Salvando um programa
Instruções de Movimento
Utilização de Velocidade e Zona
Execução Passo-a-passo (step-by-step)
Rodando no modo Manual

© ABB Inc. -75


IRC5 Programação
Programming Básica
Basic

Estrutura de Programa IRC5


Diretório Exemplo_Programa

<?xml version="1.0" encoding="ISO-8859-1" ?>


Exemplo_Programa.pgf
<Program>
<Module>ModuleA.mod</Module>
<Module>MainModule.mod</Module>
</Program>
MainModule.mod
MODULE MainModule
CONST robtarget home:=[[....]]; Declaração de Dados
Constantes e Variáveis
VAR num reg1:=0;

PROC main()
Rotinas
Rotina_1;
Rotina_2;
ENDPROC
ModuleA.mod
PROC Rotina_1() MODULE ModuleA
MoveL; PROC Rotina_A1()
ENDPROC MoveL;
MoveL;
PROC Rotina_2() ENDPROC
© ABB Inc. -76

MoveL; ENDMODULE
ENDPROC Instruções
ENDMODULE
IRC5 Programação
Programming Básica
Basic

Exemplo de Programa
© ABB Inc. -77
IRC5 Programação
Programming Básica
Basic

Salvando e Carregando um programa


Para criar um novo programa, carregar programa existente ou salvar:

•Pressione “ABB”
•Pressione “Editor do Programa”
(Program Editor)
•Selecionar o “Robo Task”
(caso utilize Multimove)
•Pressionar “Tarefas e Programas”
(Task and Program)
•Selecionar a Tarefa/Programa
desejado

•Pressione “Arquivo”(File)
•Pressione “Novo Programa”
(New Program)
•Para criar novo programa
•Pressione “Carregar Programa”
(Load Program)
•Para carregar um programa
•Pressione “Salvar Programa como”
(Save Program as)
© ABB Inc. -78

•Para salvar um programa


IRC5 Programação
Programming Básica
Basic

Salvando um programa

Um diretório com o nome do programa é criado


Módulo: MainModule (todos programas possuem)
Extensão do Arquivo: pgf
É um arquivo XML que aponta para MainModule e outros módulos
de programa.

O mesmo
nome
© ABB Inc. -79
IRC5 Programação
Programming Básica
Basic

Criando um Programa

Para criar um novo Programa:


(se não existir)
Pressione “ABB”
Pressione “Editor do Programa”
(Program Editor)
Selecionar o “Robot Task”
Pressione “Novo” (New).
Nomear o programa
Pressione “OK”
© ABB Inc. -80
IRC5 Programação
Programming Básica
Basic

Adicionando Instruções de Movimento


Para adicionar instruções de movimento:
Pressione “Adicionar Instrução”
(Add Instruction)
Mover o Robô para posição desejada
Pressione “MoveJ” ou “MoveL”
Mover o robô para próxima posição
Repetir o procedimento acima
© ABB Inc. -81
IRC5 Programação
Programming Básica
Basic

MoveJ ou MoveL?

MoveJ

Movimento “Joint” (Joint interpolation) frequententemente é o caminho mais


rápido para mover de um ponto a outro quando não é necessário trajetória linear.
O eixos do robô e eixos externos se moverão ao longo de uma trajetória não
linear e alcançarão o ponto de destino todos ao mesmo tempo. Utilize-o em
espaços abertos como deslocamento de um dispositivo para outro.

MoveL

Movimento “LINEAR” (Linear interpolation) é utilizado para mover


linearmente o robô do seu ponto inicial ao ponto de destino (referência
ao TCP). Se não for possível a realização do movimento um evento
será gerado e mostrado na FlexPendant. Utilize-o quando necessário

© ABB Inc. -82


mover o robô próximo a objetos como dispositivos ou peças.
IRC5 Programação
Programming Básica
Basic

Instruções de Movimento

MoveJ pHome, v500, z5, tGripper


MoveL pHome, v500, z5, tGripper

Na instrução acima temos:


pHome
O Robô movendo para ___________________
v500
Com velocidade de ______________________
Com uma Zona de _______________________
z5
tGripper
E um TCP declarado como _________________
© ABB Inc. -83
IRC5 Programação
Programming Básica
Basic

Velocidade e Zona

z
MoveL p40, v1000, z40, tool0;

MoveL p30, v300, z30, tool0;

Velocidade - tipo de dado “speeddata”


© ABB Inc. -84

Zona - tipo de dado “zonedata”


IRC5 Programação
Programming Básica
Basic

Alterando um Argumento de Programa

Selecione o item a
ser alterado com
“2 cliques”

Selecione o novo
valor e pressione
“OK”
© ABB Inc. -85
IRC5 Programação
Programming Básica
Basic

Modificando uma Posição

Selecione o ponto
a ser modificado.

Mova o robô para


nova posição.

Pressione
“Modificar Posição”
(Modify Position)

© ABB Inc. -86


IRC5 Programação
Programming Básica
Basic

Depurando o programa (Debug)

Ponteiro do
Programa - PP
(Program Pointer)

© ABB Inc. -87


IRC5 Programação
Programming Básica
Basic

Checando Calibração (Robot Calibration)

MoveAbsJ
Criar uma nova rotina (GotoCalib)
Inserir a instrução MoveAbsJ
Selecionar o ponto da instrução “*”, pressionar “Depurar” (Debug), “Exibir
Valor” (View Value) e inserir nos campos de cada um dos eixos o valor zero “0”.

© ABB Inc. -88


IRC5 Programação
Programming Básica
Basic

Instruções de Movimento

O
o - position
posiçãoinnoair
espaço
X
x –position
posiçãoon
nopaper
papel
ROBOT
ROBÔ

o pHome

o p60
p40 x x p10

x p50

p30 x x p20

© ABB Inc. -89


IRC5 Programação
Programming Básica
Basic

Rodando Programas em modo Manual


Procedimento
Passo Ação Informação/Ilustração

1 Posisione a chave seletora no modo Manual. Você encontará maiores


informações sobre o Modo de
operação dos robôs no Manual
de Operação.
Referência.
Manual de Operação (Operator’s manual)
IRC5 with FlexPendant
M2004
Document ID: 3HAC 16590-1

ATENÇÃO!
Antes de rodar o robô, por favor observar as
informações de segurança na pagina 4
Risco – Manipuladores em movimento são
potencialmente letais

© ABB Inc. -90


IRC5 Programação
Programming Básica
Basic

Rodando Programas em modo Manual


Procedimento

Passo Ação Informação/Ilustração

3 Se o programa não está aberto pressione menu Como carregar um programa existente
“ABB”, “Editor do Programa” (Program Editor) e é detalhado na secção 6.7.1
selecione o programa desejado Trabalhando com programas (Handling
of Programs)

4 Selecione o modo de operação do robô Como selecionar modo de operação e


iniciar é detalhado no secção 6.9
Testando (Testing)

5 Pressione o botão de inicialização do programa Todos botões do FlexPendant são


no Flex Pendant (“Start” / “Passo a Passo”) mostrados na secção 2.2 O que é
FlexPendant? (What is a FlexPendant?)

Start
Passo a Passo (frente/trás)
Stop

© ABB Inc. -91


IRC5 Programação
Programming Básica
Basic

Iniciando Execução (Starting Execution)


Procedimento

Passo Ação Info/Ilustração

1 Para rodar o programa utilize a botão na Modo de execução detalhado na


FlexPendant correspondente ao modo de secção 6.9.4 Executar instrução
execução desejado por instrução
(Stepping instructions by
instructions)

© ABB Inc. -92


IRC5 Programação
Programming Básica
Basic

Execução Passo a Passo


No modo Manual, o programa poderá ser executado passo a passo (step-
by-step) onde podemos rodar uma instrução de cada vez, a próxima
instrução ou a anterior
Existem teclas dedicadas na FlexPendant

Tecla Programável 1. Como definir esta função é detalhado


na secção 12.2.6 Alterando teclas Pprogramáveis
(Changing programmable Keys)
Tecla Programável 2. Como definir esta função é detalhado
na secção 12.2.6 Alterando teclas Pprogramáveis
(Changing programmable Keys)

Tecla Programável 3. Como definir esta função é detalhado


na secção 12.2.6 Alterando teclas Pprogramáveis
(Changing programmable Keys)

Tecla Programável 4. Como definir esta função é detalhado


na secção 12.2.6 Alterando teclas Pprogramáveis
(Changing programmable Keys)

Roda o programa - conjunto de instruções do programa


(Start)
Roda instrução anterior – somente uma instrução

Roda próxima instrução – somente uma instrução

Para o programa (Stop)

© ABB Inc. -93


IRC5 Programação
Programming Básica
Basic

Execução Passo a Passo


Selecione modo de passo
Passo Ação Info/Ilustração
1 Selecionar o modo de Passo - Atalho Quickset Detalhes na secção 4.6.5
Menu MenuQuickset, Modo Passo a Passo

Execução do próximo passo


Passo Ação Info/Ilustração
1 Pressione na FlexPendant a tecla
correspondente a figura ao lado

Execução do passo anterior


Passo Ação Info/Ilustração
1 Pressione na FlexPendant a tecla
correspondente a figura ao lado

© ABB Inc. -94


IRC5 Programação
Programming Básica
Basic

Parando o Programa
Procedimento

Passo Ação Info/Ilustração

1 Durante operação no modo Manual 100%, libere Todos botões do FlexPendant


o botão “Hold-to-Run” são mostrados na secção 2.2 O
que é FlexPendant?
(What is a FlexPendant?)

2 Durante operação no modo Manual com Todos botões do FlexPendant


velocidade reduzida, pressione a tecla “Stop” na são mostrados na secção 2.2 O
FlexPendant que é FlexPendant?
(What is a FlexPendant?)

3 Quando rodarmos o programa no modo Passo a Execute a próxima instrução


Passo o robô irá parar após a execução de cada pressionando uma das teclas
instrução abaixo

© ABB Inc. -95


IRC5 Programação
Programming Básica
Basic

Exercício 2

1. Crie através da FlexPendant do robô um programa simples como descrito


neste capítulo e teste seu programa. Cada aluno deverá criar seu
programa. (Utilize somente as instruções de movimentação explicadas em
aula.)

2. O que ocorre quando você pressiona o botão de emergência enquanto o


robô está rodando? É possível reiniciar o programa a partir do mesmo
ponto que parou?

3. Salve o programa na FlashDisk.

4. Pratique explorando os botões do FlexPendant, se você tiver alguma


dúvida questione o instrutor.

© ABB Inc. -96


IRC5 Programação Básica

Backup &
Restore

© ABB Inc. -97


IRC5 Programação
Programming Básica
Basic

Tópicos

Backup
Porque?
Quando?
Como?
Precauções
O que é guardado?

© ABB Inc. -98


IRC5 Programação
Programming Básica
Basic

Backup
Possuir um backup perfeito é de suma importância para
uma rápida recuperação das configurações perdidas:
Quando fazê-lo
Se há suspeitas do sistema atual
Após UpGrades de Software ou

troca do mesmo.

Pressione “ABB”
Pressione “Backup and Restore”
Pressione “BackUp Current System”

© ABB Inc. -99


IRC5 Programação
Programming Básica
Basic

Backup
O que contém no backup?
Todos arquivos/pastas armazenadas no diretório Home do
sistema atual localizado na FlashDisk do robô.
Parâmetros de Sistema (ex. Declarações de sinais – I/O).
Programas, módulos e tarefas (Task) atuais na FlashDisk.
As informações do Backup permite restaurar as condições
anteriores do seu sistema.

© ABB Inc. -100


IRC5 Programação
Programming Básica
Basic

Backup

O que fazer antes do Backup!


No Controlador IRC5 assim como no S4C Plus podemos ter vários sistemas
instalados!
Sempre verifique qual sistema está ativo.

© ABB Inc. -101


IRC5 Programação
Programming Básica
Basic

Backup
Sempre
Dê ao backup um nome coerente
Guarde a data que o backup foi criado
Guarde o backup final num lugar seguro

© ABB Inc. -102


IRC5 Programação
Programming Básica
Basic

Restore

Lembre-se
Um backup criado no controlador S4 não pode ser restaurado
no controlador IRC5.
Sempre verifique se está restaurando o sistema correto.

© ABB Inc. -103


IRC5 Programação
Programming Básica
Basic

Backup

Recomendamos realizar o backup:


Antes da instalação de novo RobotWare
Antes de realizar alterações significativas de programa e/ou
parâmetros
Após realização de alterações de instruções e/ou parâmetros e
testá-lo, desejar guardar as novas alterações realizadas.

© ABB Inc. -104


IRC5 Programação
Programming Básica
Basic
Backup

Procedimento

Passo Ação Info/Ilustração

1 Pressione “ABB”.

2 Pressione “Backup and Restore”.

xx0300000469

© ABB Inc. -105


IRC5 Programação
Programming Básica
Basic
Backup

Procedimento

Passo Ação Info/Ilustração

3 Pressione “Backup”.

Xx0300000440

O Diretório do Backup será mostrado.

© ABB Inc. -106


IRC5 Programação
Programming Básica
Basic

Backup
Procedure
Info/
Passo Ação
Ilustração
4 O diretório mostrado é o correto?
Se sim: Pressione “Backup” e será criado o Backup
conforme configuração visualizada (nome do diretório).
Se não: Pressione botão à direita e siga o
procedimento abaixo.

xx0300000441

Um backup nomeado de acordo com a data atual é

© ABB Inc. -107


criado.
IRC5 Programação
Programming Básica
Basic

Backup
Procedimento
Info/
Passo Ação
Ilustração
5 Selecione o diretório desejado.

6 Quando o diretório desejado for mostrado, pressione “OK”.

xx0300000443

© ABB Inc. -108


IRC5 Programação
Programming Básica
Basic
Restore

Recomendamos restaurar o backup:


Se por alguma razão, suspeitar que o programa apresenta
problemas
Se alguma alteração de programa e/ou parâmetros não
promover o resultado esperado e a condição anterior for
desejada
Durante o procedimento de restore, todos parâmetros
de sistema serão trocados e todos módulos do diretório
de backup serão carregados
O diretório Home do backup é copiado para o novo
diretório Home de sistema durante o “Warm Start”

© ABB Inc. -109


IRC5 Programação
Programming Básica
Basic
Restore
Procedimento

Passo Ação Info/Ilustração

1 Pressione “ABB”.

2 Pressione “Backup and Restore”.

Xx0300000439

© ABB Inc. -110


IRC5 Programação
Programming Básica
Basic
Restore
Procedimento

Passo Ação Info/Iustração

3 Pressione “Restore”.

Xx0300000440

O diretório do backup será mostrado.

© ABB Inc. -111


IRC5 Programação
Programming Básica
Basic

Restore
Procedimento
Info/
Passo Ação
Ilustração
4 O diretório mostrado é o correto?
Se sim: Pressione “Restore” e será restaurado o Backup
selecionado.
Se não: Pressione botão à direita do campo e siga o
procedimento abaixo.

xx0300000441

© ABB Inc. -112


IRC5 Programação
Programming Básica
Basic
Restore
Procedure
Info/
Passo Ação
Ilustração
5 Selecionar o diretório desejado.

6 Quando o diretório desejado é mostrado, selecione o


backup correto e pressione “OK”.

xx0300000444

A iniciar a restauração, o procedimento de “Warm


Started” ocorre automaticamente.

© ABB Inc. -113


IRC5 Programação
Programming Básica
Basic

Exercício 3

1. Crie o Backup do sistema existente.

2. Salve o Backup no diretório de Backups na FlashDisk e se estiver


disponível, salve o mesmo em uma pen drive.

© ABB Inc. -114


IRC5 Programação Básica

TCP
Ponto Central da Ferramenta

IRC5 Programming
IRC5
Basic
Programação Básica

© ABB Inc. -115


IRC5 Programação
Programming Básica
Basic

Sistema de Coodenadas da Ferramenta

Sistema de Coordenadas

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

X Z
Benefícios ao utilizar
uma ferramenta:
Movimentação
Reorientação
Z
Y
Facilidade de alteração
do ponto
Coordenada de Base (Base coordinates)

© ABB Inc. -116


X
IRC5 Programação
Programming Básica
Basic

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


Posicionamento para as demais
ferramentas

© ABB Inc. -117


© ABB Inc. -118
IRC5 Programação
Programming Básica
Basic

Definindo e usando uma Ferramenta

© ABB Inc. -119


IRC5 Programação
Programming Básica
Basic

Definição de Ferramenta
Crie uma Tooldata no FlexPendant
Pressione “ABB” -> “Dados do Programa” (Program Data) -> Tooldata
-> “Mostrar Dados” (Show Data) -> “Novo” (New)

Nomeie a ferramenta.
Pressione “Valor Inicial” (Initial Value).
Preencha o campo Mass com o peso da ferramenta em Kg.
Preencha o campo COG X com o centro de Massa em mm.

© ABB Inc. -120


Pressione OK : OK : OK
IRC5 Programação
Programming Básica
Basic

Definindo um TCP – Método dos 4 pontos

Selecione a nova ferramenta e


pressione “Editar” (Edit).
Pressione “Definir” (Define).
Selecione Ponto1 (Point1).
Mova o robô para o ponto de
referência.
Pressione “Modificar Posição”
(Modify Position).
Reposicione o robô com nova
orientação.
Pressione “Modificar Posição”
(Modify Position).
Repita a sequência para todos os
pontos.
Pressione “OK”.
© ABB Inc. -121
IRC5 Programação
Programming Básica
Basic

Definindo um TCP – Método dos 4 pontos

T_Caneta

Ponta Fixa
Fixed point

© ABB Inc. -122


© ABB Inc. -123
IRC5 Programação
Programming Básica
Basic

Definindo Carga de Ferramenta (Tool Load)

Todo Controlador IRC5 possui uma rotina de serviço


chamada LoadIdentify. Ela é utilizada para definir a masa
e o centro de gravidade da Ferramenta e/ou Carga
(Payload or Loaddata).
Carga no Braço Superior
(Arm Load)

Carga (PayLoad)

Carga da Ferramenta (Tool Load)

_________________
ManLoadIdentify é uma rotina utilizada para definir
carga dos eixos externos.

© ABB Inc. -124


IRC5 Programação
Programming Básica
Basic

Definindo Carga de Ferramenta (Tool Load)


Vá para rotina LoadIdentify pressionando “Depurar” (Debug )
-> “Chamar Rotina” (Call Service Rout). Selecione
LoadIdentify e pressione “Ir para” (Go to). Pressione o botão
“Enable device” e inicie o programa.
Siga as instruções que irão aparecer na tela.

© ABB Inc. -125


IRC5 Programação
Programming Básica
Basic

Lembre-se

Antes de utilizar o Load Identification (LoadID) certifique-se que as


condições abaixo sejam verdadeiras:

A Ferramenta está montada corretamente.

Lembre-se:
O Eixo 6 não esteja próximo dos limites. Criar um dado de
Ferramenta (Tooldata) antes
de um dado de Carga de
O Eixo 4 esteja próximo de 0 (zero). Ferramenta (Tool Load).

Criar um dado de Carga


A Carga do Braço Superior esteja definida. (LoadData) antes de definir a
carga (PayLoad).

Parâmetro de Velocidade configurado em 100%.

© ABB Inc. -126


IRC5 Programação
Programming Básica
Basic

Identificação de Carga (Load Identification)


Quando o programa perguntar sobre rodar em velocidade baixa,
responda NÃO (NO) porque nada é calculado em velocidade baixa.
Entretanto, se não há certeza sobre o comprimento dos cabos da
ferramenta, então a velocidade baixa deverá ser utilizada e as
trajetórias deverão ser observadas a fim de evitar acidentes.

Siga todas as instruções recomendadas pelo programa.

Quando o programa perguntar sobre o ângulo que o eixo 6 moverá


durante o programa, é recomendável selecionar +90 ou -90 graus
para obter-se resultados de maior resolução. Se a ferramenta é
incapaz de mover-se 90 graus, escolha outra opção. No mínimo 30
graus deverá ser especificado.

© ABB Inc. -127


IRC5 Programação
Programming Básica
Basic

Identificação de Carga (Load Identification)


Ao final do procedimento de Identificação de Carga (Load
Identification) as seguintes informações aparecerão:

Massa (Mass) – kg =
Centro de Gravidade (Centrer of Gravity) - mm X=
Centro de Gravidade (Centrer of Gravity) - mm Y=
Centro de Gravidade (Centrer of Gravity) - mm Z=
Resolução Mensurada (Measurement Accuracy) = (Deverá
ser maior que 80%, caso contrário deverá rodar novamente a rotina).

© ABB Inc. -128


IRC5 Programação
Programming Básica
Basic

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


IRC5 Programação
Programming Básica
Basic

Exercício 4

1. Crie um TCP para a Caneta fixada ao robô utilizando o método de 4


pontos.

2. Escreva a resolução dos valores de TCP para sua ferramenta criada:

• Erro Mínimo (Min Error) ________________


• Erro Médio (Mean Error) ________________
• Erro Máximo (Max Error) ________________

3. Defina a carga da ferramenta.

4. Ative a nova ferramenta e teste utilizando o movimento de Reorientação.

5. Configure uma tecla programável para Habilitar e Desabilitar uma saída


digital.

6. Se houver tempo disponível crie um novo TCP utilizando nova ferramenta.

7. Salve o programa na FlashDisk.

© ABB Inc. -130


IRC5 Programação Básica

Robot Studio Online IRC5 Programming


IRC5
Basic
Programação Básica

© ABB Inc. -131


IRC5 Programação
Programming Básica
Basic

O que é Robot Studio Online?

Robot Studio Online (R.S.O.) é uma ferramenta de software utilizada


para todos robôs ABB e é entregue ao cliente na aquisição do robô
ABB.

R.S.O. possui três funções principais


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


IRC5 Programação
Programming Básica
Basic

Conectando R.S.O ao Controlador


Utilize um cabo Ethernet crossover.
Conecte através do cabo, a saída Ethernet do PC a
porta de entrada Ethernet do controlador.

© ABB Inc. -133


IRC5 Programação
Programming Básica
Basic

IRC5 FlexPendant & R.S.O

A FlexPendant e o RobotStudioOnline trabalham juntos

© ABB Inc. -134


IRC5 Programação
Programming Básica
Basic

Inicializando o R.S.O.
Inicializando o Robot Studio Online.
Start -> Program -> ABB Industrial IT -> Robot Studio
Online.
Crie uma nova visualização de robô.
File -> New Robot View.

© ABB Inc. -135


IRC5 Programação
Programming Básica
Basic

Utilizando o R.S.O.

Nomeie e guarde sua nova configuração criada.

© ABB Inc. -136


IRC5 Programação
Programming Básica
Basic

Utilizando o R.S.O.

Adicionando controlador.
Robot View -> Add Controller OU Right click -> Add
Controller.

© ABB Inc. -137


IRC5 Programação
Programming Básica
Basic

Utilizando o R.S.O.

Localize seu programa Rapid.

© ABB Inc. -138


IRC5 Programação
Programming Básica
Basic

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


IRC5 Programação
Programming Básica
Basic

Exercício 5

1. Faça modificações no seu programa utilizando o Robot Studio OnLine.


Altere parâmetros de Velocidade e Zona e teste o programa.

© ABB Inc. -140


IRC5 Programação Básica

Programação IRC5 Programming


Estruturada
IRC5
Basic
Programação Básica

© ABB Inc. -141


IRC5 Programação
Programming Básica
Basic

Tópicos

Programação Estruturada
Estrutura de Programa IRC5
Conceitos
Programando instruções de I/O
Criando um programa utilizando método JSP
Adicionando Rotinas

© ABB Inc. -142


IRC5 Programação
Programming Básica
Basic

Programação Estruturada

Programação estruturada é uma forma de programação que


preconiza que todos os programas possíveis podem ser reduzidos a
apenas três estruturas: sequência, decisão e iteração,
desenvolvida por Michael A. Jackson no seu livro "Principles of
Program Design" de 1975 (Método JSP).
Tendo, na prática, sido transformada na Programação modular, a
Programação estruturada orienta os programadores para a criação
de estruturas simples em seus programas, usando as subrotinas e
as funções. Foi a forma dominante na criação de software anterior
à programação orientada por objetos POO.
Apesar de ter sido sucedida pela programação orientada por
objetos, pode-se dizer que a programação estruturada ainda é muito
influente, uma vez que grande parte das pessoas ainda aprendem
programação através dela. Além disso, por exigir formas de pensar
relativamente complexas, a programação orientada a objetos até
hoje ainda não é bem compreendida ou usada pela maioria.

© ABB Inc. -143


IRC5 Programação
Programming Básica
Basic

Programação Estruturada

Programação Estruturada
Sequência.
Decisão.
Iteração – Processo chamado na programação de repetição de
uma ou mais ações.

© ABB Inc. -144


IRC5 Programação
Programming Básica
Basic

Estrutura de Programa IRC5


Diretório Exemplo_Programa

<?xml version="1.0" encoding="ISO-8859-1" ?>


Exemplo_Programa.pgf
<Program>
<Module>ModuleA.mod</Module>
<Module>MainModule.mod</Module>
</Program>
MainModule.mod
MODULE MainModule
CONST robtarget home:=[[....]]; Declaração de Dados
Constantes e Variáveis
VAR num reg1:=0;

PROC main()
Rotinas
Rotina_1;
Rotina_2;
ENDPROC
ModuleA.mod
PROC Rotina_1() MODULE ModuleA
MoveL; PROC Rotina_A1()
ENDPROC MoveL;
MoveL;
PROC Rotina_2() ENDPROC
MoveL; ENDMODULE
ENDPROC Instruções
ENDMODULE

© ABB Inc. -145


IRC5 Programação
Programming Básica
Basic

Conceito de Variáveis
Na programação, uma variável é um objeto (uma posição, freqüentemente
localizada na memória) capaz de reter e representar um valor ou expressão. As
variáveis são associadas a "nomes", chamados identificadores.
Quando nos referimos à variável, do ponto de vista da programação, estamos
tratando de uma “região de memória (FlashDisk) previamente identificada cuja
finalidade é armazenar os dados ou informações de um programa”. A memória
de programa se organiza tal qual um armário com várias divisões. Sendo cada
divisão identificada por um endereço diferente, em uma linguagem que o
programa entende.
O computador do robô armazena os dados nessas divisões, sendo que em
cada divisão só é possível armazenar um dado e toda vez que o computador do
robô armazenar um dado em uma dessas divisões, o dado que antes estava
armazenado é eliminado. O conteúdo pode ser alterado, mas somente um dado
por vez pode ser armazenado naquela divisão.
O computador do robô identifica cada divisão por intermédio de um endereço no
formato hexadecimal, e a linguagem de programação RAPID permitem nomear
cada endereço ou posição de memória, facilitando a referência a um endereço
de memória. Uma variável é composta por dois elementos básicos: o conteúdo
(valor da variável) e identificador (um nome dado à variável para possibilitar
sua utilização).

© ABB Inc. -146


IRC5 Programação
Programming Básica
Basic

Conceito de Constantes & Variáveis

Constantes
Na programação, uma constante é um valor que no decorrer do algoritmo
ou processamento sempre terá o mesmo valor. Perceba que a idéia de
constante é a mesma seja onde for o local que a constante será utilizada.
No robô ABB as constantes se classificam na categoria de tipo de
armazenamento definida como Constante. Veja abaixo exemplo:
CONST num reg7:=0;
reg7 é um tipo de dado que não sofre alteração de valor ao longo da execução do
programa.

Constante X Variável
A diferença primordial entre estes dois conceitos é que constantes são
valores inalterados e variável é uma entidade capaz de manifestar
diferenças em valor, assumindo, inclusive, valores numéricos. Diz-se que a
variável possui qualquer valor dentro de um campo determinado, ele
atua como uma "gaveta", onde nessa "gaveta" nós podemos guardar
qualquer valor.

© ABB Inc. -147


IRC5 Programação
Programming Básica
Basic

Variáveis & Tipo de Armazenamento

Variáveis
No robô ABB os dados variáveis se classificam em duas categorias
distintas pelo tipo de armazenamento do dado que são a Variável e
a Persistente. Conforme mensionado anteriormente, existe outra
categoria de tipo de armazenamento utilizada para dados constantes
chamada Constante.
As diferenças entre Variável e Persistente é que o dado (que pode
sofrer alteração de valor durante a execução do programa em ambos
casos), em caso do término da execução de um ciclo de programa
(main) o valor atual do dado persistirá (continuará com o último
valor) para o tipo de armazenamento Persistente. Já para o tipo de
armazenamento Variável o último valor será perdido. Veja abaixo
exemplo de declarações de dados com armazenamento Variável e
Persistente.
PERS num reg8:=0;
VAR num reg10:=0;

© ABB Inc. -148


IRC5 Programação
Programming Básica
Basic

Tipo de Armazenamento

O tipo de armazenamento de um dado é definido


durante a declaração do mesmo.
© ABB Inc. -149
IRC5 Programação
Programming Básica
Basic

Tipo de Dados
Podemos dizer que as variáveis e constantes são posições de memória
criadas com objetivo de armazenamento de dados, porém, os dados
podem se diferenciar entre si no que diz respeito a sua estrutura. Para
que haja diferenciação entre os tipos de dados, o computador do robô
proporciona uma biblioteca com padrões diferenciados para os tipos de
dados. Veja alguns tipos de dados abaixo.

robtarget (posição cartesiana)


Jointtarget (posição de juntas)
tooldata (coordenada ferramenta)
wobjdata (coodenada objeto)
speedata (velocidade)
zonedata (zona)
signaldi (entrada digital)
signaldo (saída digital)
num (registrador numérico)
Bool (booleano)
Byte (byte)
clock (tempo)

© ABB Inc. -150


IRC5 Programação
Programming Básica
Basic

Tipo de Dados

Os Tipo de Dados (biblioteca de dados), podem ser


visualizados no FlexPendant pressinando o menu “ABB”
e “Dados do Programa” (data type).

© ABB Inc. -151


IRC5 Programação
Programming Básica
Basic

Antes de iniciar o programa

Quatro atividades deverão ser realizadas antes de


criar um novo programa.
1. _______________________________________
RODAR ROTINA DE CALIBRAÇÃO
2. _______________________________________
VERIFICAR ALINHAMENTO DO ROBÔ
DEFINIR TCP E WORK OBJECT
3. _______________________________________
PLANEJAR O PROGRAMA PREVIAMENTE
4. _______________________________________

© ABB Inc. -152


IRC5 Programação
Programming Básica
Basic

Instruções básicas de I/O

As duas instruções mais utilizadas para acionar uma saída


digital são _________
Set e __________.
SetDO

As duas instruções mais utilizadas para desacionar uma


saída digital são _________ SetDO
Reset and __________.

Para inverter o status de uma saída digital utilize a


InvertDO
instrução _______________.

Para acionar uma saída digital durante um intervalo de


tempo e depois desacioná-la, utilize a instrução
PulseDo
_____________.
Para alterar a duração do pulso digital utilize
Opt. Arg.
____________. (Argumento Opcional).

© ABB Inc. -153


IRC5 Programação
Programming Básica
Basic

Instruções básicas de I/O

WaitDI
A instrução ______________ é utilizada para
aguardar um sinal de uma entrada digital.

WaitUntil
A instrução ______________ é utilizada para
aguardar uma condição.

Waittime
A instrução ______________ é utilizada para
aguardar um tempo.

© ABB Inc. -154


IRC5 Programação
Programming Básica
Basic

Instruções de I/O
© ABB Inc. -155
IRC5 Programação
Programming Básica
Basic

Instruções de I/O

p10
p40

p30 p20
DT

DT indica um tempo variável em função da carga do processador.

© ABB Inc. -156


IRC5 Programação
Programming Básica
Basic

Instruções de I/O

p10
P40

P30
P20

© ABB Inc. -157


IRC5 Programação
Programming Básica
Basic

Programação Estruturada - JSP

Desenhando um quadrado no papel.

© ABB Inc. -158


IRC5 Programação
Programming Básica
Basic

Jackson Structured Programming (JSP)

Método JSP:
Programa Estruturado
Rotinas bem definidas
- Fácil para testar Instrução
- Fácil para alterar
- Fácil para identificar ProcCall
falhas
Facilidade para leitura e
compreensão
Main routine
(proc main)

MAIN

rPickUp rSquare rDropOff


© ABB Inc. -159
IRC5 Programação
Programming Básica
Basic
Criando Rotinas
Como criar rotinas de programa ?
Na tela de Edição de Programas
(Program Editor).
Pressione: “Rotinas” -> “Arquivo”
(File) -> “Nova Rotina” (New routine)
Pressione: “ABC ”
para renomear.
Pressione: “OK”.
Selecione a Rotina.
Pressione: “Mostrar Rotina”
(Show routine).

© ABB Inc. -160


IRC5 Programação
Programming Básica
Basic

Exercício 6
1. Crie um novo programa. Este novo programa irá simular uma aplicação de
manipulação e deverá atender as seguintes solicitações:

• O programa deverá iniciar a partir de uma posição de Home.


• O programa deverá estar bem estruturado com base em rotinas.
• Utilize a saída digital ___________ para controlar a garra.
• Quando o sinal ___________ for atuado o robô deverá pegar a peça no
Alimentador 1 (Infeeder1) - (utilize sua imaginação).
• O Robô deverá colocar a peça no Torno (Lathe) e mover-se para uma
posição segura.
• Com o robô numa posição segura, a saída _________ deverá ser
acionada por 1 segundo que acionará o torno (Lathe). O Trabalho do
torno estará finalizado quando o sinal __________ for atuado.
• Após sinal __________ o robô pegará a peça acabada e colocará a
mesma na esteira de saída (Exit conveyor).
• O robô deve retornar para home e aguardar a próxima peça.
• Utilize recursos de Copiar e Colar a fim de implementar o
retorno do robô para Home no fim do processo.

© ABB Inc. -161


IRC5 Programação
Programming Básica
Basic

Layout Robô – Exercício 6

Alimentador 1
(Infeeder 1)
Esteira de Saída Alimentador 2
(Exit Conveyor) (Infeeder 2)

Torno
(Lathe)

© ABB Inc. -162


IRC5 Programação
Programming Básica
Basic

Exemplo de Programa
MAIN r_Lathe;
MoveJ pOvrLathe, v1000, z10, tGripper;
MoveJ pHome, v1000, fine, tGripper;
MoveL pin_Lathe, v400, fine, tGripper;
WaitDI di1_Style1, 1; Reset do9_Grip;
r_Feeder1 MoveL pOvrLathe, v800, fine, tGripper;
r_Lathe; PulseDO\Plength; = 1, do7_Start_Lathe;
Wait DI di7_Lathe_Done, 1;
r-Conveyor
MoveL pin_Lathe, v400, fine, tGripper;
RETURN; Set do9_Grip;
MoveJ pOvrLathe, v1000, z10, tGripper;
r_Feeder1; RETURN;
MoveJ pOvrPart, v500, z30, tGripper; r_Conveyor

MoveL pOnPart, v500, fine, tGripper; MoveJ pOvr_Conveyor, v1000, z60, tGripper;

Set do9_Grip; MoveL pOn_Conveyor, v800, fine, tGripper;

MoveL pOvrPart, v500, z30, tGripper; Reset do9_Grip;

RETURN; MoveL pOvr_Conveyor, v1000, z60, tGripper;

© ABB Inc. -163


RETURN;
IRC5 Programação Básica

Controlando o IRC5 Programming


Fluxo do Programa
IRC5
Basic
Programação Básica

© ABB Inc. -164


IRC5 Programação
Programming Básica
Basic

Controle do Fluxo do Programa – Instruções de Decisão

No exercício anterior, a estrutura do programa criado permitia a


execução sequencial das linhas de programa. Este tipo de estrutura
é extremamente limitada quando necessitamos de programas
maiores e mais complexos.

IF di1_Style1=1 THEN
rFeeder1 ;
ELSE
return ;
ENDIF
IF
THEN ELSE
Di1_Style1=
1
rFeeder1 Return
ENDIF

© ABB Inc. -165


IRC5 Programação
Programming Básica
Basic

Controle do Fluxo do Programa – Instruções de Decisão

IF di1_Style1=1 THEN
rFeeder1 ;
Argumento Opcional ELSEIF di2_Style2=1 THEN
(Optional Argument) rFeeder2 ;
ELSE
return ;
ENDIF IF
THEN ELSEIF
Di1_Style1=
1
rFeeder1
THEN ELSE
Di2_Style2=1

rFeeder2 Return

ENDIF

© ABB Inc. -166


IRC5 Programação
Programming Básica
Basic

Instrução de Controle do Fluxo - IF


Selecione o tipo de dados (data type) O botão “+” adiciona
argumentos da expressão

Filtro é utilizado para


limitar dados e funções
a serem visualizados.

© ABB Inc. -167


IRC5 Programação
Programming Básica
Basic

Controlando com sinais de I/O

Rotina House keeping.


Rotina de Verificação de Calibração.
Seleção de Alimentador (Feeder). MAIN

rHousekeeping rPickUp1 rLathe rDropOff

di1=1 di2=1

rGotoCalib rFeeder1 rFeeder2

© ABB Inc. -168


IRC5 Programação
Programming Básica
Basic

Exercício 7

1. Implemente seu programa atual considerando que o sinal


_________ seja utilizado para Alimentador 1(Feeder 1) e que o
sinal _________ seja utilizado para Alimentador 2 (Feeder 2).

2. Adicione uma rotina de inspeção para todas as peças. Todas


as peças após processo de torneamento, deverão ser levadas
a estação de inspeção. Se após levar a peça a estação de
inspeção o sinal ________ for acionado significa que a peça
está ok. Caso o robô espere por mais de 5 segundos, a peça
deverá ser rejeitada depositando a mesma no barril de refugos.
(Dica: Verifique o argumento opcional da instrução WaitDI ).

3. Adicione uma rotina de verificação de Calibração “rGotoCalib”


utilizando a insrução MoveAbsJ que irá mover o robô para
posição de calibração.

© ABB Inc. -169


IRC5 Programação
Programming Básica
Basic

Exemplo de Programa – Exercício 7


MAIN r_Feeder2;
MoveJ pHome, v1000, fine, MoveJ pOvrPart2, v500, z30, tGripper;
tGripper;
IF di1_Style1=1 THEN MoveL pOnPart2, v500, fine, tGripper;
r_Feeder1; Set do9_Grip;
ELSEIF di2_Style2=1 THEN MoveL pOvrPart2, v500, z30, tGripper;
r_Feeder2;
RETURN;
ELSE;
RETURN;
ENDIF; r_Lathe;
r_Lathe; MoveJ pOvrLathe, v1000, z10, tGripper;
r_Inspect; MoveL pin_Lathe, v400, fine, tGripper;
RETURN; Reset do9_Grip;
MoveL pOvrLathe, v800, fine, tGripper;
r_Feeder1;
PulseDO\Plength;=1, do7_Start_Lathe;
MoveJ pOvrpart, v500, z30, tGripper; WaitDI di7_Lathe_Done, 1;
MoveL pOnPart, v500, fine, tGripper; MoveL pin_Lathe, v400, fine, tGripper;
Set do9_Grip; Set do9_Grip;
MoveJ pOvrLathe, v1000, z10, tGripper;
MoveL pOvrPart, v500, z30, tGripper;
RETURN;

© ABB Inc. -170


RETURN;
IRC5 Programação
Programming Básica
Basic

Exemplo de Programa – Exercício 7


r_Inspect;

MoveJ p_near_insp, v1000, fine, tGripper;


MoveJ p_at_insp, v1000, fine, tGripper;
WaitUntil di5_GoodPart=1\MaxTime=5, TimeFlag=bTimeout;
IF bTimeout=true THEN
MoveL p_Overeject, v500, z30, tGripper;
MoveL p_Onreject, v500, fine, tGripper;
Reset do9_Grip;
MoveL p_Overeject, v500, z30, tGripper;
ELSE
r_Conveyor;
ENDIF
RETURN;

r_Conveyor;
MoveL pOvr_Conveyor, v1000, z60, tGripper;
MoveL pOn_Conveyor, v800, fine, tGripper;
Reset do9_Grip;
MoveI pOvr_Conveyor, v1000, z60, tGripper;
RETURN;

© ABB Inc. -171


IRC5 Programação Básica

Trabalhando com
Numerais
IRC5
Programação Básica

© ABB Inc. -172


IRC5 Programação
Programming Básica
Basic

Trabalhando com Numerais


num
Quando trabalhar com números utilize o tipo de dados (data type)________.

Variável
Você fará uso de uma ______________ deste tipo de dados.

Este tipo de dados geralmente é designado pelas letras ____ reg


n ou _____
antes do nome.
Examplo: nCount, reg1, reg2, nCycles, nParts

O robô tem as seguintes instruções que podem ser usadas quando


trabalhamos com numerais:
ADD, Clear, Incr, Decr
:= (Atribui) _______________________

Exemplo: nCounter := nCounter+1;


Incr nCount;
nCount:=0;
Clear nCount;

© ABB Inc. -173


Add nCount, 1;
IRC5 Programação
Programming Básica
Basic

Trabalhando com Numerais


A Instrução de atribuição (:=) pode também fazer outras operações
matemáticas como:
Adição,
___________________
Subtração,
___________________
Multiplicação, etc.
___________________

Para tomada de decisão utilizando numerais, utilize as instruções


IF
___________ ou __________
Compact IF .

Exemplo: IF nCount>=10 rTipClean;


ou
IF nCount>=10 THEN
rTipClean
ENDIF;

© ABB Inc. -174


IRC5 Programação
Programming Básica
Basic

Inspecionando toda terceira peça

Inspecione toda terceira peça produzida.

MAIN

rLathe Quench
nCount>=3

di1=1 di2=1 rInspect

rFeeder1 rFeeder2
Peça boa Peça Ruim

rDropOff rReject
rGotoCalib

© ABB Inc. -175


IRC5 Programação
Programming Básica
Basic
Exercício 8

1. Adicione uma rotina de Resfriamento da Peça (Quench) –


processo de tempera - após a rotina de Torneamento (Lathe).

2. Adicione uma rotina para inspeção de peça no programa


existente de forma que a verificação só ocorra na terceira peça
produzida.

© ABB Inc. -176


IRC5 Programação
Programming Básica
Basic

Exemplo de Programa – Exercício 8


MAIN
r_Lathe;
MoveJ pHome, v1000, fine, tGripper;
IF di1_Style1=1 THEN
r_Feeder1; MoveJ pOvrLathe, v1000, z10, tGripper;
ELSEIF di2_Style2=1 THEN MoveL pin_Lathe, v400, fine, tGripper;
r_Feeder2: Reset do9_Grip;
ELSE
RETURN; WaitTime .5;
ENDIF MoveL pOvrLathe, v800, fine, tGripper;
r_Lathe; PulseDO\Plength; =1, do7_Start_Lathe;
r_Quench; WaitDI di7_Lathe_Done, 1;
IF nCount>=3 THEN
MoveL pin_Lathe, v400, fine, tGripper;
r_Inspect;
ELSE Set do9_Grip;
r_Conveyor; WaitTime .5;
ENDIF MoveJ pOvrLathe, v1000, z10, tGripper;
RETURN;
RETURN;
r_Feeder1;
MoveJ pOvrpart, v500, z30, tGripper; r_Inspect;
MoveL pOnPart, v500, fine, tGripper;
Set do9_Grip; nCount :=0;
WaitTime .5; MoveJ p_near_insp, v1000, fine, tGripper;
MoveL pOvrPart, v500, z30, tGripper; MoveJ p_at_insp, v1000, fine, tGripper;
RETURN; WaitUntil di5_GoodPart=1/MaxTime=5, /TimeFlag=bTimeout;
r_Feeder2; IF bTimeout=true THEN
MoveJ pOvrPart2, v500, z30, tGripper; MoveL p_Overeject, v500, z30, tGripper;
MoveL pOnPart2, v500, fine, tGripper; MoveL p_Onreject, v500, fine, tGripper;
Set do9_Grip; Reset do9_Grip;
WaitTime .5; MoveL p_Overeject, v500, z30, tGripper;
MoveL pOvrPart2, v500, z30, tGripper; ELSE
RETURN; r_Conveyor;

© ABB Inc. -177


ENDIF
RETURN;
IRC5 Programação
Programming Básica
Basic

Exemplo de Programa – Exercício 8


r_Conveyor
MoveL pOvr_Conveyor, v1000, z60, tGripper;
MoveL pOn_Conveyor, v800, fine, tGripper;
Reset do9_Grip;
MoveL pOvr_Conveyor, v1000, z60, tGripper;
Incr nCount;
RETURN;

r_QUENCH
MoveJ pOvrQuen, v500, z30, tGripper;
MoveL pOnQuen, v500, fine, tGripper;
MoveL pOvrQuen, v500, z30, tGripper;
RETURN;

© ABB Inc. -178


IRC5 Programação Básica

Comunicando
com o Operador
IRC5
Programação Básica

© ABB Inc. -179


IRC5 Programação
Programming Básica
Basic

Comunicando com o Operador


Mensagens podem ser escritas na tela de forma a
propiciar um programa mais amigável.

© ABB Inc. -180


IRC5 Programação
Programming Básica
Basic

Comunicando com o Operador


A instrução TPWrite é utilizada para escrever mensagens na tela.
Valores de dados podem ser escritos também.
A instrução TPErase é utilizada para limpar mensagens da tela.

© ABB Inc. -181


IRC5 Programação
Programming Básica
Basic

Comunicando com o Operador

O Operador/ Inspetor pode tomar decisões interagindo com o programa.

© ABB Inc. -182


IRC5 Programação
Programming Básica
Basic

Comunicando com o Operador

Instrução TPReadFK

TPReadFK nFigure, “Is this a GOOD or BAD part?”, stEmpty, “GOOD”, stEmpty, “BAD”, stEmpty;

(1) 2 (3) 4 (5)

© ABB Inc. -183


IRC5 Programação
Programming Básica
Basic

Comunicando com o Operador

Selecione um dado numérico ou uma escreva uma expressão


pressionando o botão virtual “Expressão” (Insert Expression).

© ABB Inc. -184


IRC5 Programação
Programming Básica
Basic

Comunicando com o Operador


O alimentador a ser utilizado no processo será
escolhido pelo Operador via FlexPendant.
Rodar a rotina de Calibração também será uma decisão
do operador. MAIN

Quench rLathe
nCount>=3
Decisão do Operador
rInspect

rGotoCalib rFeeder1 rFeeder2


Peça Boa Peça Ruim

rDropOff rReject

© ABB Inc. -185


IRC5 Programação
Programming Básica
Basic

Comunicando com o Operador

© ABB Inc. -186


IRC5 Programação
Programming Básica
Basic

Comunicando com o Operador

Instrução TPReadNum
TPReadNum nfigures, “How many figures do you want?

© ABB Inc. -187


IRC5 Programação
Programming Básica
Basic
Exercício 9

1. Adicione ao programa existente. O Operador decidirá qual


alimentador deverá ser utilizado e quando deverá ser
verificado a calibração.

2. Utilize a FlexPendant para inspeção. Escolha entre “Peça Boa”


ou “Peça Ruim”.

3. Adicione mensagens para qualquer hora em que o robô não


está se movendo a fim de informar que o robô está esperando.

© ABB Inc. -188


IRC5 Programação Básica

Outras Instruções
IRC5
Programação Básica

© ABB Inc. -189


IRC5 Programação
Programming Básica
Basic

Tópicos

Instruções de Clock (relógio)


Instruções de Controle de Fluxo/ Laços de repetição

© ABB Inc. -190


IRC5 Programação
Programming Básica
Basic

Instruções de Clock

Instruções de Clock
Quando utilizar um relógio como cronômetro:

ClkReset – utilizado para zerar o cronômetro

ClkStart – utilizado para iniciar o cronômetro a partir


do status atual

ClkStop – utilizado para parar o cronômetro

© ABB Inc. -191


IRC5 Programação
Programming Básica
Basic

Funções de Clock

Funções de Clock
ClkRead – Lê o valor do cronômetro

Cdate - Lê a data atual

Ctime - Lê a hora atual

Exemplo:

© ABB Inc. -192


IRC5 Programação
Programming Básica
Basic

Instruções de repetição - FOR

A instrução FOR é utilizada quando alguma Instrução/ Rotina


necessita ser repetida um determinado número de vezes, sendo
um número fixo de vezes ou variável.
A instrução For facilita mudar a quantidade de vezes que
determinada Instrução/ Rotina precisa ser repetida.
Possui um contador interno que é incrementado automaticamente.

© ABB Inc. -193


IRC5 Programação
Programming Básica
Basic

Instruções de repetição - FOR

FOR FOR i FROM 1 TO 5 DO


5 rotina_1;
ENDFOR

FOR i FROM 1 TO 8 DO
MoveJ ..... ;
MoveJ ..... ;
8 WaitTime..... ;
MoveJ ..... ;
... ;
ENDFOR

© ABB Inc. -194


IRC5 Programação
Programming Básica
Basic

Instruções de repetição - WHILE


A instrução WHILE é utilizada quando alguma Instrução/ Rotina necessita ser
repetida um determinado número de vezes (fixo ou variável), contudo,
somente quando uma dada condição é verdadeira.
WHILE significa ENQUANTO, sendo assim, podemos ler a instrução da
seguinte maneira: ‘Enquanto a condição for verdadeira faça!’.
Veja exemplo da figura 2 onde temos a condição que enquanto o registrador
reg1 for menor do que 2 o programa executará a rotina QUADRADO.
Observe que para o programa executar a rotina desejada 2 vezes, foi
necessário prescrever a condição e incrementar um contador externo
diferentemente da instrução FOR.

© ABB Inc. -195


IRC5 Programação
Programming Básica
Basic

Instrução GOTO
A instrução GOTO é utilizada para desviar o ponteiro de execução do
programa (Program Point) para outra linha de programa que é
identificada com a instrução Label.
Pode-se fazer o uso combinado de instruções Compact IF e GOTO
como se pode ver no exemplo abaixo que executa 3 vezes a rotina
QUADRADO

Label

© ABB Inc. -196


IRC5 Programação
Programming Básica
Basic

Instrução TEST
A instrução TEST é utilizada quando diferentes instruções/ rotinas necessitam
ser executadas dependendo do valor de uma expressão ou dado.
Veja Exemplo abaixo onde caso o valor de reg1 seja igual a 1, 2 ou 3 a rotina
QUADRADO será executada, caso o valor de reg1 seja 4 a rotina
TRIÂNGULO será executada, caso reg1 não valha nenhum dos valores
mensionados anteriormente, o programa escreverá na tela ‘Escolha
Inexistente’ e parará o programa através da instrução STOP.
PS. Quando referimos a poucas alternativas, a utilização da instrução IF
somado aos argumentos ELSE e ELSEIF podem ser também uma solução.

© ABB Inc. -197


IRC5 Programação Básica

Work Object
IRC5
Programação Básica

© ABB Inc. -198


IRC5 Programação
Programming Básica
Basic

Criando um Work Object

Figura desenhada com referência a um Work Object

© ABB Inc. -199


IRC5 Programação
Programming Básica
Basic

Work Object e Sistema de Coordenadas

Sistema de Coordenada do Usuário


Sistema de Coordenada do Objeto
Z
Y

TCP Z Coordenada do Objeto


Y
(WorkObject)
X
X
Coordenada da Ferramenta
(Tool coordinates)

Z
Y
X
Coordenada de Base
(Base coordinates)

© ABB Inc. -200


IRC5 Programação
Programming Básica
Basic

Work Object e Sistema de Coordenadas

Definindo um Sistema de Coordenada

Object (Objeto)
User (Usuário) User (Usuário)

© ABB Inc. -201


IRC5 Programação
Programming Básica
Basic

Criando um Work Object

Ative a ferramenta correta


(T_Caneta)
Crie um Work Object
Defina as coordenadas

Origin y1

x1 Work object axis Y

x2
wobjA4

Work object axis X

© ABB Inc. -202


IRC5 Programação
Programming Básica
Basic

Ativando um Work Object

© ABB Inc. -203


IRC5 Programação
Programming Básica
Basic

Utilizando um Work Object

MoveJ pHome, v1000 , z50 , T_Caneta;


MoveJ pTri10, v1000, z50, T_Caneta \ WObj := wobjA4;
.... ;

o pHome
o posição fora da folha
x posição na folha

Origem o pTri10 y1
/
work object eixo Y
x1 --
x pTri20

pTri40 x
x pTri30
x2 --

work object

work object eixo X

© ABB Inc. -204


IRC5 Programação
Programming Básica
Basic
Exercício 10

1. Crie um novo programa para pegar uma caneta de um


magazine.

2. Crie um Work Object no canto da folha. Create a Work Object


on the pad of paper.

3. Crie uma rotina utilizando o Work Object para desenhar a


primeira letra do seu nome no papel.

4. Agora mova o papel, redefina o Work Object e rode o programa


novamente.

© ABB Inc. -205


IRC5 Programação Básica

Programando com
Offsets IRC5
Programação Básica

© ABB Inc. -206


IRC5 Programação
Programming Básica
Basic

Movemento Circular

MoveC

pCircle20

pCircle30

pCircle40

© ABB Inc. -207


IRC5 Programação
Programming Básica
Basic

Movimento Circular

Criando uma circunferência com MoveC’s

pCircle20

This robtaget can be copied and pasted

pCircle30
pCircle50

pCircle40
Press Modify pos

© ABB Inc. -208


IRC5 Programação
Programming Básica
Basic

Função Offset

Função Offset
Na tela de definição de ponto para uma instrução de
movimento, escolha Função (Function) para habilitar
movimento com deslocamento (offset). A Função Offs
permite um deslocamento em referência a um ponto.
Exemplo
Tipo de Utilizado para deslocar a partir
Movimento da posição original Velocidade
Precisão
C, J, L
Move_ Offs(pStart,-100,0,0), v500, fine, toolx;
Z Offset
Dado de
Y Offset
Posicionamento
X Offset
para referência
de deslocamento

© ABB Inc. -209


IRC5 Programação
Programming Básica
Basic

Trajetória circular Perfeita

Para fazer um círculo perfeito


MoveL pStart, v500, fine, toolx;
MoveC Offs(pStart,-100,-100,0),Offs(pStart,-200,0,0),v500,z1,toolx;
MoveC Offs(pStart,-100,100,0), pStart,v500,z1,toolx;

Que sentido o círculo será


desenhado?

Horário ou Anti-horário
© ABB Inc. -210
IRC5 Programação
Programming Básica
Basic

Exemplo - Offset

Exemplo

© ABB Inc. -211


IRC5 Programação
Programming Básica
Basic

Desenhando um Quadrado com Offsets

MM X
Exemplo Em qual quadrante o
100
quadrado será
75
1 2 desenhado?
50
25 1 2 3 4
100 75 50 25 -25 -50 -75 -100
Y MM

-25 pSTART
-50
3 4
-75
-100

A partir do exemplo anterior programe:


pSTART
_____________ é o PRIMEIRO ponto do desenho do
quadrado e também é o ___________
ÚLTIMO ponto.

© ABB Inc. -212


IRC5 Programação
Programming Básica
Basic
Exercício 11

1. Adicione ao seu novo programa três rotinas que desenhem um


um círculo, um quadrado e um triângulo utilizando somente
um ponto ensinado.

Extra Crie uma rotina que desenhe um espiral de 5 mm para 100


mm com passo de 5mm.

© ABB Inc. -213


IRC5 Programação Básica

Calibração e IRC5
Sincronismo Programação Básica

© ABB Inc. -214


IRC5 Programação
Programming Básica
Basic

Tópicos

Sincronismo - Atualização do Contador de Revoluções


(Revolution Counters Update)
Calibração – (Fine Calibration)

© ABB Inc. -215


IRC5 Programação
Programming Básica
Basic

Calibração – IRC5
Calibração ou Sincronismo?
O sincronismo poder ser realizado facilmente sem
necessiadade de ferramentas especiais.
Calibração necessita de ferramentas especiais.

© ABB Inc. -216


IRC5 Programação
Programming Básica
Basic

Sincronismo
Sincronismo (Rev.Counter)
Indica a quantidade de voltas que o motor realizou em relação a
posição zero absoluto do eixo.
Se o controlador perder o sincronismo, os programas não poderão ser
executados.
O controlador notifica através de uma mensagem que o sincronismo
precisa ser atualizado. (Ex.: Se o controlador for desligado com a
bateria da SMB descarregada).

Se aparecer mensagem de
evento do sistema informando
diferença de valores:
Ao sincronizar o manipulador
e o controlador passam a ter
os mesmos valores de
calibração.

© ABB Inc. -217


IRC5 Programação
Programming Básica
Basic

Sincronismo (Updating Rev. Counters)

1. Utilizar o JoyStick para


mover o robô para
posição de sincronismo
(Calibration Position)
alinhando as marcas.

© ABB Inc. -218


IRC5 Programação
Programming Básica
Basic

Procedimento de Sincronismo
1. Mova o robô para as marcas de sincronismo.
2. Pressione ABB : Calibração (Calibration)
3. Selecione o robô a ser calibrado.
4. Pressione Atualização do Contador de Rotações
(Update Revolution Counter)
5. Pressione SIM (YES) para confirmar a operação.
6. Se necessário selecione os eixos a serem atualizados.
7. Pressione Atualizar (Update) e Atualizar (Update)
novamente.

© ABB Inc. -219


IRC5 Programação
Programming Básica
Basic

Verificando posição de Calibração


MoveAbsJ
Criar uma nova rotina (GotoCalib)
Inserir a instrução MoveAbsJ
Selecionar o ponto da instrução “*”, pressionar Depurar (Debug), Exibir
Valor (View Value) e inserir nos campos de cada um dos eixos o valor zero
“0”.

© ABB Inc. -220


IRC5 Programação
Programming Básica
Basic

Calibração (Fine Calibration)

Calibração
Indica através do resolver, o angulo atual do motor definido como zero
absoluto do eixo.
É calibrado na ABB ou no site com equipamentos especiais
Somente se faz necessário novo ajuste de calibração quando é
realizado a troca de motor ou caixa de redução

Requer ferramentas especiais!


Não pode ser feito corretamente
ajustando de forma visual.

© ABB Inc. -221


IRC5 Programação
Programming Básica
Basic

Editando os valores de calibração (Calibration Offsets)

Edite no campo “Valor de desvio” (Offset value) os valores de


calibração manualmente
Utilize os valores definidos no arquivo moc.cfg (extraído a partir do
Backup) ou os valores da etiqueta que está colada no manipulador
contendo os valores de calibração dos seis eixos (válido somente
para motores que não foram retirados).

© ABB Inc. -222


IRC5 Programação
Programming Básica
Basic

Calibrando o robô com ferramentas especiais

Ferramentas Especiais
Nível Eletrônico
Dispositivo ABB (para eixo 1)
Base de Nivelamento

© ABB Inc. -223


IRC5 Programação
Programming Básica
Basic

Exercício 12

1. Compare os valores de calibração configurados no controlador


com os valores impressos na etiqueta do manipulador.
2. Os valores conferem? Se não, notifique o instrutor.

© ABB Inc. -224


IRC5 Programação Básica

Exercícios
IRC5
Programação Básica

© ABB Inc. -225


IRC5 Programação
Programming Básica
Basic

Exercício 1
1 – Criar um programa simples que o robô possa atestar sua repitibilidade num
ponto de referência ( ex. levar o TCP a uma Ponteira) e adicionalmente uma
rotina de serviço para verificação da calibração e sincronismo.

1.1 – A calibração confere com os valores originais?

1.2 – O Sincronismo confere com as referências?

1.3 – Edite os valores de calibração. Após alteração a execução do programa


sofreu alguma alteração? Justifique.

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


IRC5 Programação
Programming Básica
Basic

Exercício 2
2 – Crie um TCP utilizando o método dos 4 pontos.

2.1 – Ative a nova ferramenta e responda. Quais são as diferenças de


coordenada da ferramenta após a criação do TCP?

2.2 – Liste 2 vantagens que há quando utilizamos uma ferramenta e


fazemos a correta declaração da mesma no robô.

© ABB Inc. -227


IRC5 Programação
Programming Básica
Basic

Exercício 3
3 – Crie um programa conforme pedido no layout (utilize o TCP adequado). O robô
deve contornar a folha e voltar p/ posição de Home executando trajetórias que
atendam ao exercício.
3.1 - Ajuste as velocidades e zonas de acordo com o processo. (velocidade
máxima permitida = 400mm/seg).

ROBOT
o posição no espaço
o pHome x posição no papel

o p_aprox

p40 x x p10

p30 x x p20

© ABB Inc. -228


IRC5 Programação
Programming Básica
Basic

Exercício 4
4 – Implemente o programa com uma nova rotina chamada “quadrado”seguindo o
layout. Utilizando um único ponto gravado (p_quad), o robô deve partir do ponto
de aproximação e fazer um quadrado na folha. O quadrado deverá ter 100mm de
lado.

ROBOT
o posição no espaço
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

© ABB Inc. -229


IRC5 Programação
Programming Básica
Basic

Exercício 5
5 – Implemente o programa com uma nova rotina chamada “arco”seguindo o layout.
O robô deve partir do ponto de aproximação (p_aprox_2) e fazer um arco na
folha passando pelo ponto (p_centro). A rotina termina com o robô no ponto de
aproximação (p_aprox_3).

ROBOT
o posição no espaço
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

p30 x x p20

© ABB Inc. -230


IRC5 Programação
Programming Básica
Basic

Exercício 6
4 – Implemente o programa com uma nova rotina chamada “circulo”seguindo o
layout. Utilizando um único ponto gravado (p_circ), o robô deve partir do ponto
de aproximação e fazer um círculo contornando a parte superior da peça. O raio
do tubo é de 31mm.

ROBOT
o posição no espaço
x posição no papel/ peça
o p_aprox_4 o pHome

o p_aprox
P_circ x
o p_aprox_1

p40 x x p10
p_quad

100mm
x
p_centro
p_aprox_2 o o p_aprox_3

p30 x x
p20

© ABB Inc. -231


IRC5 Programação
Programming Básica
Basic

Exercício 7
7 – A rotina main de um programa deve ser um “resumo de gerente”, portanto, deve
ser elaborada de forma que possibilite fácil compreensão do programa. A main
não possui detalhes do programa, porém, dá uma visão geral do que se trata o
mesmo.

7.1 - Baseado nas informações acima reestruture o programa em uma rotina


principal (main) e 4 sub-rotinas (retângulo, quadrado, arco, circulo).

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


IRC5 Programação
Programming Básica
Basic

Exercício 8
8 – Modifique o programa considerando que o robô está integrado a uma célula
controlada por um PLC. O robô comporta-se como escravo (Slave) respondendo
as solicitações do PLC.

8.1 - De acordo com a tabela implemente o programa. Escolha uma das entradas
digitais configuradas no seu robô para simular o sinal do PLC.

Sinal do PLC Robô


0 Executar 1 Arco Executar 1 Retângulo
1 Executar 1 Círculo Executar 1 Quadrado

© ABB Inc. -233


IRC5 Programação
Programming Básica
Basic

Exercício 9
9 – Modifique o programa seguindo a nova condição pedida na tabela. Utilize as
instruções de controle de fluxo e implemente soluções diferentes entre sinal do
PLC=0 e sinal do PLC=1.

Sinal do PLC Robô

0 Executar 2 Quadrados Executar 3 Retângulos

1 Executar 2 Círculos Executar 1 Arco

© ABB Inc. -234


IRC5 Programação
Programming Básica
Basic

Exercício 10
10 – Crie um programa que interaja com o operador. O robô deverá executar a
“peça” que o operador escolher (retângulo, quadrado, arco, circulo).

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


IRC5 Programação
Programming Básica
Basic

Exercício 11
11 – Implemente o programa. O robô deverá executar a “peça” que o operador
escolher (retângulo, quadrado, arco, circulo) e a quantidade de “peça” que o
operador solicitar. O operador pode solicitar apenas uma peça por vez.

© ABB Inc. -236


IRC5 Programação
Programming Básica
Basic

Exercício 12
12 – Implemente o programa. O robô deverá executar a “peça” que o operador
escolher (retângulo, quadrado, arco, circulo) e a quantidade de “peça” que o
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. -237


IRC5 Programação
Programming Básica
Basic

Exercício 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. -238


IRC5 Programação
Programming Básica
Basic

Exercício 14
14 – Implemente o programa. Após o término da execução das peças solicitadas
informe ao operador a quantidade total de “peças” produzidas no dia e por tipo
de peça.

14.1 – Implemente o programa. Informe ao operador qual foi o tempo de ciclo do


último lote produzido.

© ABB Inc. -239


IRC5 Programação
Programming Básica
Basic

Exercício 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. -240


IRC5 Programação
Programming Básica
Basic

Exercício 16
16 – Em uma célula mestre/escravo onde o robô interage com o PLC programe. O
robô deve fazer a leituda dos sinais enviados pelo PLC conforme tabela e
manipular as peças da esteira de entrada para esteira de saída. O ciclo é
finalizado quando o palete estiver completo através do sinal do robô p/ PLC.
Utilize o mapa de sinais discretos descrito na tabela ou os grupos de entrada e
saída configurados assim:
grupo_entrada -> DI08 – DI13
grupo_saída -> DO08 – DO13
Esteira de Esteira de
Entrada A Entrada B
0 1
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
DO10
DO11 Esteira de
DO12 Palete Incompleto Pelete Completo Saída C

© ABB Inc. -241


DO13
IRC5 Programação
Programming Básica
Basic

Resumo - Instruções / 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 Funções de Clock
WaitTime
CLKRead
WaitDI
WaitUntil

© ABB Inc. -242


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

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. -243
IRC5 Programação
Programming Básica
Basic

Em Branco

© ABB Inc. -244


IRC5 Programação
Programming Básica
Basic

Avaliação do Curso

© ABB Inc. -245


IRC5 Programação
Programming Básica
Basic

Avaliação do Curso

© ABB Inc. -246


IRC5 Programação
Programming Básica
Basic

Em Branco

© ABB Inc. -247

Potrebbero piacerti anche