Você está na página 1de 21

Treinamento: Operação e Programação do Robô Fanuc

Instrutor: Tiago Roza
(assistência técnica: manutenção preventiva e corretiva de partes mecânicas – troca de
graxa – e elétricas – diagnóstico por parâmetros medidos via software)

Hot Line: 11 3619 – 0599

servicos.brasil@fanucrobotics.com (atendimento 24/7)

Téc. Ensino: Wagner A. P. Coimbra (wagnergus@gmail.com)

Notas de Aula

20/10/2008 – Aula 1

Faixa de carga dos Robôs Fanuc


2kg a 1200kg

O modelo comprado pela Escola


Carga: 5kg

Velocidade: 4000mm/s (em operação automática)

250mm/s max. (em operação manual)

Peso do robô: 25kg

Aplicação: manipulador industrial

Acionamento: servomotores com encoders digitais absolutos

Recomendações de Segurança
 Sem contato direto com pessoas: robôs industriais sempre deverão trabalhar
enclausurado, o que significa que na operação em modo automático não deverá haver ser
possível a ninguém entrar em contato direto com eles;
 Dispositivos de segurança: robôs industriais devem ser cercados por dispositivos de
segurança que o desativem caso sejam acionados, tais como cortinas de luz e sensores de
presença;
 Colisão do ponto de vista de um robô: a detecção de colisão é feita por meio de
variações da corrente de acionamento dos motores. Isso significa que é considerada uma
colisão a percepção de uma carga acima da máxima para o qual o robô foi contruído.
Conseqüentemente, os circuitos que detectam colisão não são eficientes para evitar
acidentes, pois se em um robô para manipulação de cargas leves (2kg) o aumento de
corrente pode indicar uma colisão, em um robô que aceita cargas de 1200kg a ocorrência
de um acidente pode não representar carga suficiente para caracterizar uma colisão.
 Sinal de emergência: quando é gerado um sinal de emergência, todos os freios são
acionados simultaneamente. Isso gera um tranco no robô, o que pode danificar tanto o
robô e os chumbadores que o fixam na posição de trabalho. Conseqüentemente, o sinal de
emergência só deve ser gerado em casos de emergência e não simplesmente para “parar” o
robô.

 Botão Hold (parar): este sinal desacelera os motores até parar o robô, sendo o recurso
usado em paradas normais. Caso o robô esteja em um ciclo de trabalho (AUTO) e tenha
sido pressionado o botão HOLD, para retomar o ciclo de trabalho, basta pressionar CICLE
START (ONDE FICA?).

 Modo Manual: para garantir que ninguém consiga atuar sobre o robô enquanto você está
fazendo está o co teach pendant, gire a chave de modo manual, passando de OFF para
ON:
Referência (Zero-Máquina)
Devido ao controle de posição utilizar encoder digitais absolutos com alimentação
permanente (estão sempre sendo alimentados, seja pela rede elétrica ou por pilhas de 1,5V), o
robô sempre “sabe” qual é a sua posição em relação ao zero-máquina.

Caso seja perdida a referência de posição, deverá ser executado um processo de


masterização, onde os limites mecânicos serão verificados e a referência re-estabelecida.

Como há o requisito de alimentação permanente nos encoders, se for necessária alguma


manutenção, tal como a troca das pilhas, ela deverá ser feita com o robô ligado, caso
contrário será necessário executar o processo de masterização.

Preventivamente recomenda-se o a troca anual das pilhas, mas caso isso não ocorra, quando
elas ficam fracas surge uma mensagem de advertência no Teach Pendant: BLAL (Battery Low
ALarm).

Em relação ao zero-máquina, existem marcas na carcaça feitas de forma que quando o robô
se encontra na posição zero, essas marcas coincidem umas com as outras.

ONDE FICAM AS PILHAS DOS ENCODERS?


Acionamento

Servomotor com freio

O motor usado nos robôs adquiridos pela Escola é o “Servomotor Beta”, com encoder
absoluto em um encapsulamento vermelho e freio com trava acoplado ao eixo do rotor.

Servomotor sem freio

Cabos

Encoder
O encoder absoluto utilizado gera 1.000.000 pulsos por volta (20 bits)
Dispositivo de Break-Release
Este dispositivo permite destravar os freios dos motores. O procedimento consiste em conectá-
lo ao robô e escolher o eixo a ser destravado para que, então, seja enviado o sinal que
destravará o freio:

Como destravar sem ter este dispositivo: injetar 90V no freio (e polaridade?)

Principais componentes do robô Fanuc


O robô Fanuc é composto por:

 Braço Mecânico
 Controlador: alimentação, interpolação e acionamento
 Painel de Operação: QUAL EXATAMENTE É A SUA FUNÇÃO?
 Teach Pendant: terminal de ensino.

Há casos em que o painel de operação é integrado no controlador e casos em que eles são separados
entre si.

No Teach Pendant (TP) os principais componentes são:

 Display: interface gráfica de saída


 Chave para modo Manual: habilita ou desabilita o modo de operação manual do robô
 Botão de emergência: interrompe instantaneamente o movimento do robô
 Botão “Dead Man”: chave com três estágios: solto, semi-pressionado e pressionado. O uso
manual só é liberado no estado semi-pressionado, sendo que nos outros dois estados ele
tema função de botão de emergência. O TP da Fanuc possio dois botões de Dead Man,
atendendo destros e canhotos
 Demais teclas: programação e controle do robô

Seqüência para iniciar a operação manual do robô


Passo Ação Onde Significado
1 HOLD TP Interromper a operação automática e parar o robô
2 MANUAL ON TP Inicia a operação manual
3 MODO “T1” Controlador Limita a velocidade máxima a 250mm/s (ver página 26)
4 PRESSIONAR TP Esta chave tem três fases. O acionamento manual é
DEADMAN liberado quando ela se encontra na 2ª fase.
5 RESET TP Limpa a mensagem de erro de DEADMAN
6 SHIFT TP Cada tecla tem duas funções: a normal e a gerada
quando a tecla shift também está pressionada. O
acionamento manual das juntas só ocorre com o shift
pressionado (maior segurança)

Sistemas de Coordenadas
Existem os seguintes sistemas de coordenadas:

JOINTS Movimentação de juntas individualmente


WORLD Movimentação no espaço XYZ em relação ao zero-máquina
TOOL Movimentação no espaço XYZ em relação à ferramenta (para off-set de ferramenta)
USER Movimentação em espaços XYZ previamente definidos pelo usuário
JOGGING O QUE É ISTO?

Selecionando um sistema de coordenadas


Após colocar o robô no modo de operação manual, para selecionar um sistema de coordenadas é
necessário:

 Soltar o botão SHIFT;


 Pressionar o botão COORD tantas vezes quantas forem necessárias até que seja selecionado o
sistema de coordenadas desejado.
SHIFT

COORD

Coordenadas Joint
Este é o modo mais simples de posicionamento do robô e consiste em movimentar cada junta
individualmente. Mantendo pressionada a tecla SHIFT, movimente o eixo desejado usando os botões
para movimentação:

SHIFT

BOTÕES PARA MOVIMENTAÇÃO DOS


EIXOS

Coordenadas World
Este sistema de coordenadas consiste na movimentação do robô no espaço cartesiano, ao longo dos
eixos XYZ definidos em relação ao zero-máquina. A operação é idêntica à do modo JOINT,
diferindo no comportamento do robô:

 Usando os três botões superiores são executados movimentos lineares ao longo dos eixos;
 Usando os três botões inferiores são executados movimentos circulares em torno dos eixos.
SHIFT

MOVIMENTO LINEAR

MOVIMENTO CIRCULAR

ADICIONAR UM DESENHO DO SISTEMA DE COORDENADAS WORLD

Coordenadas Tool
Este sistema de coordenadas consiste na movimentação do robô no espaço cartesiano, ao longo dos
eixos XYZ definidos em relação ao ponto central da ferramenta ou Tool Center Point (TCP). A
operação é idêntica à do modo WORLD, diferindo na orientação dos eixos XYZ.

Antes do ajuste de coordenadas


Após o ajuste de coordenadas

Este modo de operação é usado para definir o ponto central de cada ferramenta, sendo que em um
único atuador podem existir várias ferramentas, como é o caso da garra usada no robô da estação
MPS, que pode apanhar até 4 peças diferentes.

Coordenadas User
Suponha que o trabalho a ser executado pelo robô envolva objetos com diferentes inclinações.
Conforme o movimento a ser realizado seria necessário calcular posições perpendiculares a planos
imaginários. No sistema de coordenadas USER o usuário pode definir pontos de origem a sub-
sistemas cartesianos, incluindo as inclinações necessárias à manipulação dos objetos.

CONFIRMAR SE É ISTO MESMO QUE ESTE SISTEMA FAZ

21/10/2008 – Aula 2

Programação
Pode ser feita tanto pelo TP como via simulador (COMO????)

Deslocamento
O formato do comando para deslocamento do Rob}o é:

TIPO PONTO VELOCIDADE PRECISÃO

Onde:

TIPO:

J- JOINT

L- LINEAR

C- CIRCULAR (ver como exatamente é este commando)

PONTO

P[i], onde “i” é um índice

VELOCIDADE

Em “mm/sec”

PRECISÃO

Existem movimentos aéreos e de trabalho. Para os movimentos de trabalho é usada


precisão FINE, sendo que ela é escrita na forma X% FINE, onde X é um número entre
0 e 100 que indica a precisão requerida pelo movimento

Para movimentos aéreos usa-se CNT0, CNT50, CNT70, CNT100, onde CNT significa
CONTÍNUO, ou seja, haverá controle da aceleração e desaceleração a fim de passar
pelos pontos informados. Em CNT0 ocorrerá a máxima desaceleração para máxima
aproximação. Em CNT100 haverá mínima desaceleração e maior distanciamento.

Programa-Exemplo: Quadrado Triângulo e Círculo


A idéia aqui é que foram criados 4 programas, sendo que um deles usa os outros três (um é o programa
principal e os demais são sub-rotinas).

QUADRADO
1: UTOOL_NUM = 1 ;Selecão da ferramenta
2: UFRAME_NUM = 1 ;Seleção do sistema de coordenadas da
;aplicação que, neste caso, é um plano de
;trabalhão que representa uma folha de papel
;onde será desenhado um quadrado
3:
4: J P[1] 50% FINE
5: L P[2] 300mm/sec FINE
6: L P[3] 300mm/sec FINE
7: L P[4] 300mm/sec FINE
8: L P[5] 300mm/sec FINE
9: L P[2] 300mm/sec FINE
10: L P[1] 300mm/sec FINE
11:
12: UFRAME_NUM = 0
END
Importante: se uma posição for gravada usando a USERFRAME 0, isso significa que ela é
transportável para todas as outras userframes, pois a userframe 0 é referenciada ao zero-máquina.

USERFRAME 1

W – angulação em relação a X

P - angulação em relação a Y

R - angulação em relação a Z

TRIANGULO
1: UTOOL_NUM = 1 ;Selecão da ferramenta
2: UFRAME_NUM = 2 ;Sistema de coordenadas da aplicação
3:
4: J P[1] 50% FINE
5: L P[2] 300mm/sec FINE
6: L P[3] 300mm/sec FINE
7: L P[4] 300mm/sec FINE
8: L P[2] 300mm/sec FINE
9: L P[1] 300mm/sec FINE
10:
11: UFRAME_NUM = 0
END

USERFRAME 2

CIRCULO
1: UTOOL_NUM = 1 ;Selecão da ferramenta
2: UFRAME_NUM = 3 ;Sistema de coordenadas da aplicação
3:
4: J P[1] 50% FINE
5: L P[2] 300mm/sec FINE
6: C P[3] P[4] 300mm/sec FINE ;1o semi-círculo
7: C P[5] P[2] 300mm/sec FINE ;2o semi-círculo
8: L P[1] 300mm/sec FINE
9:
10: UFRAME_NUM = 0
END

USERFRAME 3

PRINCIPAL
1: UTOOL_NUM = 1 ;Selecão da ferramenta
2: UFRAME_NUM = 0 ;Sistema de coordenadas global
3:
4: J PR[1] 50% FINE ;Posição comum a todos os programas, gravada na
;userframe 0. É o home do programa.
5: CALL QUADRADO
4: J PR[1] 50% FINE
5: CALL TRIANGULO
4: J PR[1] 50% FINE
5: CALL CIRCULO
9:
10: UFRAME_NUM = 0
END

Observação: A posição PR[1] foi gravada na userframe 0 pressionando SHIT, COORD, 0.

Gravando Posições
Existem dois métodos:

Escrita do programa seguida da gravação dos pontos: neste caso, após escrever o programa
posiciona-se o cursor em um linha que tem uma posição, posiciona-se o robô e pressiona-se as teclas
SHIFT + TOUCH UP.

Gravação dos pontos durante a escrita do programa: neste caso, prosiciona-se o robô na posição
desejada e escreve-se a linha de programa Ao finalizar a linha a posição é automaticamente gravada.

Posições especiais
Home: também chamada de posição repetida, pois o robô sempre retorna a ela quando não está
trabalhando.

Reparo: adequada para reparos no próprio robô

Segurança: adequada para reparos na área próxima ao robô

Salto incondicional
O salto incondicional é feito por meio da instrução “JUMP TO LABEL”, que salta para a linha
identificada pelo rótulo informado.

Formato de um rótulo

LBL[i]

Onde i é um número identificando o rótulo, iniciando em 1

Formato da instrução para salto

JMP LBL [i]

Comentários (remark)
Aparece no programa com um sinal de exclamação no início da linha. Exemplo:

3: !Desenha um quadrado

Registradores
Registradores são posições de memória que aceitam o armazenamento de números. Seu formato é:
R[i]

Onde i é um índice, iniciando em 1.

Existem cerca de 200 registradores pré-definidos em memória e é possível associar nomes a eles,
facilitando a compreensão do seu conteúdo e finalidade.

Importante: registradores funcionam como variáveis globais. Devido a isso, é preciso tomar cuidado
ao utilizar um registrador, pois isso poderá afetar outros programas. A melhor prática é reservar
intervalos de memória para diferentes aplicações, mapeando as posições que que não devem ser
alteradas e as de propósito geral.

Salto condicional
Pode ser feito pelos comandos IF e SELECT

IF [condição] [Ação]
Executa a ação (JUMP ou CALL) caso a condição seja satisfeita. As condições são expressas nos
formatos:

Reg[] [operador] [valor] (IF Reg)

I/O[] [operador] [valor] (IF I/O)

SELECT Reg[]
SELECT Reg[] = [valor1], [ação1]

[valor2], [ação2]

[valorN], [açãoN]

ELSE [ação_final]

Controle de tempo

WAIT [tempo em ms]

Wait gera uma espera em milissegundos. Esse intervalo de tempo é expresso de forma literal (um
número) ou de forma indireta (conteúdo de um registrador).

WAIT [item] [operador] [valor] [tempo]

Espera que a operação dada entre um item e um valor seja verdadeira durante o intervalo especificado.
Após isso o programa prossegue.
22/10/2008 – Aula 3

Criação e Execução de Programas


Criar um programa consiste em criar um novo arquivo de programa e editá-lo. Ao término da edição, a
execução pode ser feita tanto em modo manual como em automático, sendo que no 1º a execução é
passo-a-passo (uma linha de cada vez) e no 2º ela é feita em ciclo contínuo.

Execução passo-a-passo
O procedimento completo para executar um programa passo-a-passo é:

 Parar a movimentação do robô pressionando a tecla HOLD no TP


 Passar o controlador para o modo T1
 Habilitar o controle manual no TP
 Pressionar a tecla SELECT no TP
 Escolher um programa (movimentar a seleção com as setas)
 Iniciar a edição do programa com F3 no TP
 Manter pressionando o botão DEADMAN no TP
 Limpar o status de erro pressionando o botão RESET no TP
 Iniciar o modo de execução passo-a-passo pressionando o botão STEP no TP
 Manter pressionado o botão SHIFT
 Para executar uma linha de programa, pressionar o botão FWD (step forward – passo
seguinte)

Interromper a execução de um programa


Como só é possível executar um programa de movimentação por vez (vários programas de controle
podem ser executados simultaneamente, mas somente um programa de movimentação), é necessário
garantir que a execução de um programa termine antes de ser iniciado outro programa.

Existem duas formas de encerrar a execução de um programa:

 Garantir que foi a tingida a linha END


 No TP, pressionar o botão HOLD para interromper o movimento, pressionar o botão FNC e
escolher o item ABORT no menu que apareceu

Execução em modo automático


Para executar um programa no modo automático deve ser feito o seguinte:

 Interromper a execução do programa (Botão FNC no TP  Abort)


 Desativar a execução passo-a-passo (Botão STEP no TP)
 Retirar o TP do modo manual (botão manual em OFF no TP)
 Colocar o controlador no modo automático (botão AUTO no controlador)
 Ajustar a velocidade do robô em 15% pelo TP
 Pressionar o botão CYCLE START no controlador
Registradores
Existem 200 posições de memória que podem ser usadas como variáveis globais. Essas posições são
referenciadas pela notação R[i] onde i é um número de 1 a 200.

Para acessar os registradores, visualizando e/ou alterando seu conteúdo basta pressionar a tecla DATA
no TP.

23/10/2008 – Aula 4

Timers
Existem 10 timers no controlador FANUC (TIMER[1] a TIMER[10]) que podem ser usados para
monitorar o tempo decorrido entre eventos. Existem duas formas de interagir com os timers:

 No programa: é possível limpar (RESET), disparar (START), parar (STOP) ou ler o


conteúdo de um timer (armazenando em um dos registradores).
 Fora do programa: é possível visualizar a contagem de tempo dos timers e verificar qual foi
o último programa que os utilizou.

Tomando decisão com base na passagem do tempo


(ver exercício 1 da lista)

Comentários sobre o

Posições Relativas (pág 97)


Acessando um eixo de uma posição:

PR[i,j]

Onde:

i: número da posição (relativa)

j: identificação do eixo:

i Eixo
1 X
2 Y
3 Z
4 W
5 P
6 R

Exemplo: deslocar 100mm em Z na posição 60

PR[60,3] = PR[60,3] + 100


Importante: pontos PR PRECISAM ser gravados na userframe 0

Apêndice

Encoders
A digital optical encoder is a device that converts motion into a sequence of digital pulses. By
counting a single bit or by decoding a set of bits, the pulses can be converted to relative or
absolute position measurements.

Encoders have both linear and rotary configurations, but the most common type is rotary.
Rotary encoders are manufactured in two basic forms:

1) The absolute encoder, where a unique digital word corresponds to each rotational position
of the shaft, and
2) The incremental encoder, which produces digital pulses as the shaft rotates, allowing
measurement of relative position of shaft.

Most rotary encoders are composed of a glass or plastic slotted disk. As radial lines in each
track interrupt the beam between a photoemitter-detector pair (or Optointerrupter), digital
pulses are produced.

Absolute encoder
The optical disk of the absolute encoder is designed to produce a digital word that
distinguishes N distinct positions of the shaft. For example, if there are 8 tracks, the encoder is
capable of producing 256 distinct positions or an angular resolution of 1.406 (360/256)
degrees.

The most common types of numerical encoding used in the absolute encoder are gray and
binary codes.

8 bit (8 track) absolute encoder


Decimal code Rotation range (deg.) Binary code Gray code
0 0-22.5 0000 0000
1 22.5-45 0001 0001
2 45-67.5 0010 0011
3 67.5-90 0011 0010
4 90-112.5 0100 0110
5 112.5-135 0101 0111
6 135-157.5 0110 0101
7 15.75-180 0111 0100
8 180-202.5 1000 1100
9 202.5-225 1001 1101
10 225-247.5 1010 1111
11 247.5-270 1011 1110
12 270-292.5 1100 1010
13 292.5-315 1101 1011
14 315-337.5 1110 1001
15 337.5-360 1111 1000
The gray code is designed so that only one track (one bit) will change state for each count
transition, unlike the binary code, where multiple tracks (bits) change at certain count
transitions.

Since the gray code provides data with the least uncertainty but the natural binary code is the
preferred choice for direct interface to computers and other digital devices, a circuit to convert
from gray to binary code is desirable. You can buld a simple circuit that utilizes exclusive OR
gates (XOR) to perform this function: for a gray code to binary code conversion of any
number of bits N, the most signficant bit (MSB) of the binary and gray code are always
identical, and for each other bit, the binary bit is the exlcusive OR (XOR) combination of
adjacent gray code bits.
Incremental encoder
The incremental encoder, sometimes called a relative encoder, is simpler in design than the
absolute encoder. It consists of two tracks and two sensors whose outputs are called channels
A and B. As the shaft rotates, pulse trains occur on these channels at a frequency proportional
to the shaft speed, and the phase relationship between the signals yields the direction of
rotation:

By counting the number of pulses and knowing the resolution of the disk, the angular motion
can be measured. The A and B channels are used to determine the direction of rotation by
assessing which channels "leads" the other. The signals from the two channels are a 1/4 cycle
out of phase with each other and are known as quadrature signals. Often a third output
channel, called INDEX, yields one pulse per revolution, which is useful in counting full
revolutions. It is also useful as a reference to define a home base or zero position.
A more common configuration uses a single track with the A and B sensors offset a 1/4 cycle
on the track to yield the same signal pattern. A single-track code disk is simpler and cheaper to
manufacture.

The quadrature signals A and B can be decoded to yield the direction of rotation:

Decoding transitions of A and B by using sequential logic circuits in different ways can
provide three different resolutions of the output pulses: 1X, 2X, 4X. 1X resolution only
provides a single pulse for each cycle in one of the signals A or B, 4X resolution provides a
pulse at every edge transition in the two signals A and B providing four times the 1X
resolution. The direction of rotation(clockwise or counter-clockwise) is determined by the
level of one signal during an edge transition of the second signal. For example, in the 1X
mode, A= with B =1 implies a clockwise pulse, and B= with A=1 implies a counter-
clockwise pulse.

If we only had a single output channel A or B, it would be impossible to determine the


direction of rotation. Furthermore, shaft jitter around an edge transition in the single signal
woudl result in erroneous pulses..
Referências

LIMS – Laboratory for Inteligent Mechanical Systems, Rotatory Encoder,

http://hades.mech.northwestern.edu/wiki/index.php/Rotary_Encoder

Acessado em 20/10/2008

RobotWorx, Used Robots Division,

http://www.used-robots.com/

Acessado em 20/10/2008

Renishaw, NASA 13-bit encoder award,

http://www.renishaw.com/jp/6865.aspx

Acessado em 20/10/2008

UCLA - Department of Geography, Encoders,

http://www.sscnet.ucla.edu/geog/gessler/topics/encoders.htm

Acessado em 20/10/2008

Você também pode gostar