Apostila de Robótica SENAI Campinas
Apostila de Robótica SENAI Campinas
Campinas – S.P.
2006
Robótica
Robótica
SENAI-SP, 2003
Todos os direitos reservados. Proibida a reprodução total ou parcial, por qualquer meio ou processo. A
violação dos direitos autorais é punível como crime com pena de prisão e multa, e indenizações diversas
(Código Penal Leis No 5.988 e 6.895).
E-mail senai@[Link]
Home page http:// [Link]
Apresentação
Esta apostila serve como referência básica para a disciplina de Robótica, cujos
conceitos abordados são destinados aos alunos do curso Técnico de Mecatrônica do
SENAI.
Ao final deste curso, os alunos serão capazes de elaborar programas com o mesmo
conteúdo e complexidade de diversas aplicações industriais onde esses robôs são
utilizados em larga escala.
Sumário
Graus de Liberdade................………………………………………………… 07
Programando o Robô............…………..……………………………………... 23
Edição de Programas………………………………………………………….. 31
Calibração de Ferramentas……………………………………………………. 43
Instruções de I/O........................................................................................ 59
User Frame................................................................................................ 65
Modos de Controle.................................................................................... 89
Comandos Mitsubishi................................................................................ 91
Exemplos de Programas............................................................................ 97
Robótica
Graus de liberdade
Um corpo livre no espaço pode realizar 6 ( seis ) movimentos independentes entre si, assim,
dizemos que ele tem 6 ( seis ) graus de liberdade.
Par cinemático
Par cinemático é a união de dois elementos que estão em contato permitindo o movimento
relativo entre ambas as partes.
Fig. 01
Se unirmos um elemento (corpo livre) ao sistema de eixos (x, y, z), dependendo das
características dessa união, o elemento poderá realizar 1, 2, 3, 4, ou 5 movimentos
relacionados com o elemento de fixação, ou seja, ou o elemento A é restrito a não realizar
nenhum movimento ou ao elemento A foram proibidos 5, 4, 3, 2, ou 1 movimentos.
Os movimentos possíveis de um elemento em relação ao outro podem ser de giro (G) ou de
translação (T).
O número de graus de liberdade de um mecanismo espacial pode ser obtido pela equação:
Onde:
N = número de graus de liberdade do mecanismo
n = número de elementos do mecanismo
p1 = número de pares cinemáticos de um movimento
p2 = número de pares cinemáticos de dois movimentos
p3 = número de pares cinemáticos de três movimentos
p4 = número de pares cinemáticos de quatro movimentos
p5 = número de pares cinemáticos de cinco movimentos
SENAI 7
Robótica
Sistema ferramenta
Exercícios:
Identifique quantos graus de liberdade a cadeia cinemática possui e quais sistemas estão
envolvidos.
a)
8 SENAI
Robótica
b)
c)
Componentes de um robô:
De um ponto de vista macroscópico, um sistema robótico pode ser “explodido” em três grandes
componentes, conforme a figura.
• Mecanismo
• Acionamento
• Sistema de controle
O mecanismo, ou parte mecânica que tem liberdade de movimentos, por sua vez, se subdivide
em três outras partes:
• Braço
• Punho
• Órgão terminal (atuador)
O órgão terminal é escolhido em função da tarefa a ser realizada pelo robô e pode ser:
• Garra
• Tocha de solda
• Pistola de pintura
• Pistola de cola
SENAI 9
Robótica
O acionamento também é parte física do mecanismo, uma vez que as massas interferem na
dinâmica do manipulador.
Nas formas mais complexas, é necessário que o controle e a coordenação do movimento sejam
efetuados por computador, que dispõe de uma memória programável, permitindo pilotar o órgão
terminal ao longo de uma trajetória precisamente definida.
Possibilita ainda o sincronismo com outros robôs e equipamentos periféricos (como por
exemplo, correia transportadora).
Fig. 02
10 SENAI
Robótica
Fig. 03
Fig. 4
Fig. 5
SENAI 11
Robótica
Robô articulado
Fig. 6
Fig. 7
12 SENAI
Robótica
Controle espacial
Introdução
O que neste texto é chamado Controle espacial tem outras notações na literatura referente à
Robótica. Algumas são:
• Controle de trajetória
• Planejamento de trajetória
• Coordenação de movimentos
• Coordenação de movimentos cartesianos
O controle espacial se refere ao procedimento para gerar referências para juntas do robô,
fazendo que o movimento individual das juntas, executado simultaneamente, desloque o
“atuador” (órgão terminal) do robô.
Fig. 8
A fig.8 ilustra um robô do tipo articulado, com seis graus de liberdade. Quando analisarmos o
diagrama da fig.9, estaremos reportando ao exemplo ilustrado na fig.01. Esse robô articulado é
constituído de seis motores que irão trabalhar para gerar os movimentos para cada eixo. Este
tipo de configuração é chamado de robô do tipo RRRRRR, que significa seis juntas de rotação.
Cada motor é sensoriado e funciona no processo de malha fechada, ou seja, é possível
gerenciar o funcionamento em tempo real, obtendo, a cada ∆t, a sua posição real. O
sensoriamento pode ser realizado por “encoders” ou “resolvers” dependendo exclusivamente de
cada fabricante a melhor escolha para fazer parte de seus projetos.
Fig. 9
SENAI 13
Robótica
• Θ = matriz de posição ( existe uma matriz de transformação de posição para cada junta
“Θ1, Θ2, Θ3, Θ4, Θ5, Θ6 ” )
• X = modelo de deslocamento, em função de Θ
• Θnr = matriz de posicionamento, pertencente ao trajeto a se realizar
• Θn = matriz de posicionamento, pertencente à posição real do robô
Na fig.9, os motores estão representados pelos servos de cada junta, que são justamente a
parte referente ao sensoriamento do motor. O processo é decomposto a partir da entrada de
um trajeto no controle do robô. Neste instante, são executados alguns algoritmos que irão
separar o modelo de posicionamento do robô em partes correspondentes a cada junta que irá
participar no movimento, assim teremos em cada motor parcela de responsabilidade para gerar
o movimento final no robô.
Fig. 10
Conforme a fig.10, a malha fechada realimenta e orienta a posição final do motor, garantindo a
posição desejada na entrada do trajeto.
Malha fechada é o nome dado a um sistema de controle com realimentação. Neste caso, é
calculada a diferença entre o sinal de entrada e o sinal de saída, e essa diferença é transferida
na entrada do aparelho executivo. Este procedimento acontece simultaneamente em todos os
motores do robô, garantindo um movimento suave e em sincronia. Após a identificação de
todas as informações, é montado o modelo de deslocamento.
Outro aspecto que deve ser levado em consideração é o sistema de leitura dos “encoders”
usados nos motores dos robôs. Estes leitores podem possuir algumas características que diferem
segundo sejam absolutos ou incrementais, que influenciam de forma direta no processo de
programação do equipamento. De forma geral, os encoders incrementais precisam se referenciar
sempre que iniciam o funcionamento do robô e os encoders absolutos, que não necessitam desta
informação, facilitam o início de funcionamento do equipamento.
14 SENAI
Robótica
Como exemplo, podemos citar dois tipos de robôs de diferentes fabricantes, o da Mitsubishi e o
da Yaskawa, que, apesar apresentarem diferenças na seleção e na sintaxe de programação, não
apresentam alteração no conceito dos tipos de coordenadas de movimento.
No robô da Yaskawa, precisamos informar o tipo de coordenada de movimento com que iremos
trabalhar. Temos algumas opções, como a coordenada de Junta (trajeto PTP), que exprime o
movimento em cada junta individualmente, e coordenada WLD (trajeto cartesiano), que exprime o
movimento em sincronia de todos as juntas, garantindo um movimento paralelo aos eixos X, Y, Z.
Este enfoque precisa ser considerado para entendermos que cada fabricante procura se
diferenciar em relação ao seu equipamento, porém o conceito não foge à concepção básica.
Este tipo de controle é hoje utilizado em quase todos os robôs industriais em operação.
A forma explícita de controle espacial exige que se faça um plano de trajetória explícita. É
necessário gravar um conjunto de pontos, pelos quais o órgão terminal do robô deve passar
quando estiver executando uma tarefa.
É armazenada na memória do computador que faz o controle espacial do robô, uma seqüência
de pontos (cada ponto é um conjunto de valores das variáveis das juntas, além de informações
adicionais, como por exemplo, garra aberta / fechada), e então enviada aos respectivos servos
das juntas. Estes pontos podem ser gravados diretamente nos sensores das juntas ou,
adicionalmente, executando-se um algoritmo de interpolação para geração dos pontos
intermediários.
Sem interpolação
Nessa categoria podem ser citados dois tipos de robôs muitos utilizados na indústria:
• robô PTP de manuseio de peças (Point to Point)
• robô CP de pintura (Continuous Path)
Na maioria dos robôs PTP, utilizados para manuseio de peças, a gravação (programação) da
seqüência de pontos que compõem a tarefa é feita por um periférico (Teaching Box / Teach
Pendant / Programming Pendant), com o qual se movimenta o robô até um ponto no espaço
tridimensional desejado, e, neste ponto, com o robô parado, é feita a gravação do ponto
(conjunto de variáveis das juntas), de acordo com a figura.
SENAI 15
Robótica
Fig. 17
Já no robô CP, utilizado em pintura, a gravação é feita de forma diferente. Neste caso, o robô
possui um modo de operação no qual as juntas, passivas, permitem que o operador movimente
diretamente o órgão terminal do robô, isto é, sem necessidade do “Teaching Box”.
Simultaneamente, um dispositivo auxiliar mostra os valores das variáveis das juntas, em uma
freqüência de amostragem 1/Ts, conforme é ilustrado.
Fig. 18
No caso do robô PTP, é possível depurar parcialmente o programa, isto é, é possível inserir,
apagar, e/ou substituir um ou mais pontos da seqüência, enquanto que no robô de pintura não é
possível, pois a seqüência é temporal.
16 SENAI
Robótica
Seu painel de comando é composto de 8 chaves cujas funções são descritas a seguir:
• Main Power Switch (Chave Geral): serve para ligar o controlador, inicializando as
funções de diagnóstico do sistema. É sempre bom lembrar que o desligamento do
controlador deve ser precedido do acionamento do botão de emergência que corta a
alimentação dos servo-motores.
• Start (Início): este botão dá início à execução do programa a partir da linha na qualo o
cursor se encontra. Seu indicador luminoso permanece aceso durante toda execução
do programa.
• Servo On Ready (Liga os Servos): este botão serve para acionar os servos e liberar os
freios. Em modo Teach, o indicador luminoso deste botão fica piscando. Já no modo
Play, o mesmo permanece aceso durante todo o tempo. Toda vez que se muda d o
modo Teach para Play, os servos são desligados automaticamente. No sentido oposto,
quando se muda do modo Play para o modo Teach, isso não é necessário.
• Remote (Remoto): este modo de operação permite que o robô seja controlado por uma
estação externa ou um computador, por exemplo.
• Edit Lock (Trava de Edição): o acionamento desta chave impede que o operador possa
editar um programa armazenado no controlador.
Programming Pendant
O Programming Pendant ou Teach Pendant como é mais conhecido, é a interface que permite
o operador controlar os movimentos do robô e ainda criar, editar e acompanhar os passos de
execução de um programa.
Ele possui um display dividido em quatro áreas específicas: Menu, Status, Geral e Interface
com o Usuário.
SENAI 17
Robótica
Menu: a área de menu no topo da tela muda de acordo com a função exibida na área Geral.
As funções contidas no menu estão relacionadas com o tipo de ciclo, segurança, tipo de
programa, edição, exibição e utilidades do software de programação do robô.
Status: a área de status exibe as condições atuais do controlador. Os itens que a compõe
estão relacionados abaixo:
Geral: a área geral é onde o conteúdo do meu corrente é exibido. É, por exemplo, nesta área
que se faz a geração ou edição de um programa.
18 SENAI
Robótica
Interface com o Usuário: esta área mostra dados ou informações para o usuário como
escolha do tipo de movimento e velocidade antes de serem gravados, mensagens de erro, etc
Botões
Todos os diversos Menus de cada seção da Tela (Menu, General Purpose e Human Interface)
podem ser acessados utilizando-se os botões de TOP MENU, AREA, CURSOR (8 Vias) e
SELECT ou até mesmo a combinação destes botões. Cada opção depende dos Níveis de
Segurança de Operação. Existem três (3) níveis de Segurança:
BOTÃO TOP MENU: o botão TOP MENU retoma o display do P.P. à tela principal com o cursor
no ícone de JOB. Os botões de Select e Cursor devem ser utilizados para selecionar as
funções desejadas dos seguintes ícones do Menu:
• JOB
• HANDLING
• VARIABLE
• IN/OUT
• ROBOT
• SYSTEM INFO
• FD/PC CARD
• SETUP
JOB: esta opção nos leva a uma tela que nos permite selecionar uma das seguintes
opções: selecionar um programa, criar um programa, visualizar a capacidade de um programa
existente, etc.
Handling: este ícone nos leva às opções relacionadas com o tipo de controlador utilizado,
que no nosso caso é o Handling (Manuseio).
Variable: esta opção nos dá acesso as variáveis que podem ser utilizadas pelos usuários
para cálculos, armazenamento de informações e posições do robô.
In/Out: acessando esta opção é possível visualizar o status das entradas e saídas
existentes no controlador de forma simples (com várias saídas ao mesmo tempo) ou detalhada
(uma de cada vez). É possível ainda, em modo TEACH, ativar ou desativar cada uma dessas
saídas.
Robot: é nesta opção que podemos visualizar alguns dados de posicionamento pré-
determinados para o robô como posição de origem, posição atual, etc. Também é possível
determinar alguns parâmetros de coordenadas do usuário ou de ferramentas.
System Info: o menu SYSTEM INFO fornece informações sobre versão de software e
hardware, histórico de alarme e monitoramento do tempo (MONITORING TIME) para Power
On, Servo On, Job Play, Robot TraveI Time e Device/Tool Operating Time.
AREA KEY: este botão é responsável por deslocar o cursor para diferentes áreas da tela de
display. Como a programação requer o uso de seleções de diferentes áreas, o cursor deve ser
movido para a área apropriada. Se houver mais de uma mensagem sendo mostrada na linha de
mensagens, o cursor irá circular por esta área também. Segure a tecla SHIFT e o Botão de
Cursor para a Direita para rolar as mensagens disponíveis.
SENAI 19
Robótica
CURSOR: é um botão direcional de 8 vias que move o cursor para cima e para baixo, para um
lado e para o outro de acordo com a marcação das setas. O cursor pode ser movido também
diagonalmente, quando necessário, de acordo com as marcações entre as setas dos botões.
Ele deve ser utilizado para movimentar o cursor entre as linhas de programação de um Job,
uma lista, etc. ou marcar um determinado menu que pode ser selecionado utilizando-se o botão
de SELECT.
SELECT: é utilizado para selecionar o item que estiver marcado pelo cursor. É também
utilizado em conjunto com o botão de INTERLOCK para ligar as UNIVERSAL OUTPUTS
(Saídas Universais).
TEACH LOCK: este botão ativa o controle do robô através do Teach Pendant e impede que o
mesmo seja colocado em modo Play. Deve-se lembrar que o programa pode ser alterado sem
que o Teach Lock esteja ativado. O Botão de Teach Lock deve estar ligado para que seja
possível alimentar-se os servo-motores utilizando-se a Deadman Switch (Chave Homem-Morto)
localizado na parte de trás do P.P.
DEADMAN SWITCH: toda vez que necessário movimentar o robô, modificar posições dos
JOBS ou até mesmo programar uma nova posição em um programa, os servo-motores deverão
estar ligados. Para ligar os servo-motores em Modo TEACH o botão SERVO ON READY
deverá ser pressionado seguido pelo botão TEACH LOCK e então pela Deadman Switch. Esta
última, é uma chave de três (3) posições. Liberando-se a chave (deixando-a solta) ou
pressionando-a ao máximo causará o desligamento dos servo-motores pelo P.P. Dessa forma,
para acionarmos o manipulador, esta chave deve estar na posição intermediária.
ENTER: o botão de ENTER insere dados selecionados no controlador. Ele deverá ser
pressionado após a seleção de cada instrução através do teclado. Cuidado, quando estiver
programando ou editando um passo ou uma instrução; verifique o conteúdo da linha de entrada
intermediária de dados antes de pressionar Enter e inserir a informação no Job.
CANCEL: a tecla de CANCEL é utilizada para limpar uma mensagem de erro. Pressionando-a
a linha de entrada de dados será apagada permitindo a entrada de novos dados ou então
aborta-se toda a instrução.
INSERT: a tecla de INSERT deverá ser pressionada antes da tecla ENTER toda vez que se
desejar inserir instruções adicionais entre linhas de programação já existentes. A linha será
inserida sempre imediatamente abaixo do cursor.
MODIFY: esta opção é utilizada toda vez que se deseja fazer alguma alteração na posição ou
em comando de um programa.
DELETE: esta tecla permite nos apagar uma linha do programa. Para executar o comando é
preciso confirmá-lo através da tecla ENTER. Para apagar uma posição gravada é necessário
que o robô esteja exatamente na posição programada.
SHIFT: existem duas teclas de SHIFT que podem ser confortavelmente acessadas por ambas
as mãos do operador. Esta tecla pode ser utilizada em conjunto com as seguintes funções
(teclas):
• TOP MENU (Para retornar à tela anterior)
• PAGE KEY (Para retomar à página anterior)
• CURSOR (para retornar ou avançar a página quando o programa ou lista for mais
extenso que uma tela ou, para rolar para esquerda ou direita quando o lado da
instrução do job for mais extenso que uma tela)
• COORD (Para selecionar a ferramenta desejada ou o plano do usuário)
• RESERVE DISPLA Y (Para armazenar uma tela a qual se deseja acesso rápido)
20 SENAI
Robótica
PORTA SERIAL ElA 232D: esta porta serial de 9 pinos é utilizada para comunicação entre o
controlador XRC e um drive externo (FCI ou FC2), ou entre o controlador XRC com um
computador externo provido de software FDE (Floppy Disk Emulator) ou outra forma de
comunicação.
WORLD, CYLINDRICAL, TOOL OU USER: neste sistema de coordenadas o TCP (Tool Center
Point) é controlado pelas teclas dos eixos. As teclas marcadas com X, Y ou Z se aplicarão
definindo a direção de movimentação do TCP (e robô). Essas teclas, porém, irão movimentar o
robô diferentemente em cada um dos sistemas de coordenadas. As coordenadas World, Tool e
User são baseadas no sistema retangular (Sistema Cartesiano). No sistema World o TCP
move-se em linha reta. A coordenada Tool é baseada no sistema X-Y-Z em relação à
orientação da ferramenta. A coordenada User é definida à partir de um plano no espaço
definido pelo usuário.
MANUAL SPEED:
A velocidade manual é utilizada para determinar a velocidade na qual os eixos do robô ou eixos
externos irão operar quando pressionadas as teclas FWD e BWD ou em simples movimentação
manual. As quatro velocidades possíveis são selecionadas utilizando-se as teclas FST (Fast-
Rápido) ou SL W (Slow - Devagar). O ícone na Área de Display de Status irá mudar de acordo
com a velocidade selecionada.
Quando o modo INCHING (I) for selecionado no sistema Joint, cada vez que se pressionar as
teclas de eixo o robô irá contar apenas um pulso de movimentação. Em todos os outros
sistemas de coordenadas o padrão selecionado para cada vez que se pressiona as teclas de
eixo é de movimentar o robô em O.30mm/O.30 graus.
HIGH SPEED: esta tecla é utilizada apara deslocar o robô de um ponto a outro em alta
velocidade quando pressionada juntamente com as teclas de deslocamento de eixo ou FWD.
Deve-se lembrar que esta opção só esta disponível para deslocamento de um único eixo de
cada vez. Outra ressalva é que esta função também não funciona quando a opção de
velocidade é a INCHING ou quando utilizada juntamente com o botão BWD.
SENAI 21
Robótica
ROBOT KEY: em um sistema montado apenas com robôs RI, R2 e R3 (nenhuma estação
externa) o Led da tecla ROBOT acenderá automaticamente toda vez que os servos forem
acionados. Pressionando-se a tecla Robot seleciona-se o robô designado e esta seleção é
mostrada na Área de Diasplay de Status. Entretanto, em um sistema com servomotores
controlando eixos externos (que não os do robô), o operador deverá ligar o grupo de eixos
designado utilizando-se as teclas ROBOT e [Link].
AXIS KEY: pressionando-se esta tecla configura-se o eixo a ser movimentado, seja ele uma
estação externa ou um trilho para o robô.
CURRENT POSITION: Para mostrar a posição na qual o robô se encontra, em Pulso (PULSE
S,L,U,R, B e T) ou XYZ para as coordenadas Base, Robot ou User, execute os seguintes
passos:
POSIÇÃO DE ORIGEM: a Posição de Origem de Operação (Ope ORIGIN POS) pode ser
utilizada para mover o robô freqüentemente para uma posição designada. A seleção padrão é
definida pelo zeramento de todos os eixos do robô, porém é possível modifica-la para uma
posição mais adequada conforme a necessidade. Para modificar esta posição execute os
seguintes passos:
1. Em Modo Teach, com os servos ligados, leve o robô para o posição designada.
2. Pressione a tecla TOP MENU.
3. Leve o Cursor para o ícone ROBOT e pressione SELECT.
4. Leve o Cursor para a opção OPE ORIGIN POS e pressione SELECT. A mensagem
"!Available to move or modify OPE ORIGIN POS."
5. Pressione MODIFY e em seguida ENTER.
22 SENAI
Robótica
Programando o robô
CRIANDO UM JOB
NOTA: O controlador deverá estar no nível de Segurança EDITING para poder acessar a
opção CREATE NEW JOB (Criar Novo Job / Programa) no menu JOB.
Para criar um novo Job, este deverá primeiramente ser nomeado. Um Job pode ser nomeado
de diversas maneiras podendo conter números, letras e símbolos com até 8 caracteres sem
espaços entre eles.
NOTA: Pressionando a tecla de Área (AREA KEY) o cursor se moverá para a linha de input.
Utilizando-se as teclas de cursor para direita ou para esquerda o cursor se moverá sobre o
nome digitado. Caso se deseje inserir um caractere no meio do nome do programa, este será
inserido à esquerda do cursor. Pressionando a tecla de cursor para baixo o cursor irá apagar o
caractere imediatamente à esquerda do cursor.
A tela de JOB CONTENT irá mostrar o Job recentemente criado com apenas duas linhas de
instrução: 000 NOP (NO Operation, no topo do programa) e 001 END.
NOTA: JOBS podem ser criados a partir da tela de JOB CONTENT. Pressione a tecla de Área
(AREA KEY) para mover o cursor para a linha de Menu. Com o cursor em JOB, pressione
SELECT. Leve o cursor par CREA TE NEW JOB e pressione SELECT. Continue conforme os
passos 4-7 anteriormente demonstrados.
NOTA: Pressionando a tecla SELECT quando o cursor estiver na linha COMM de CREATE
NEW JOB um comentário poderá ser adicionado e aparecerá no JOB HEADER.
SENAI 23
Robótica
SELECIONANDO UM JOB
Para trazer para a tela principal um Job existente em Modo Play ou Teach:
NOTA: Outros programas não poderão ser selecionados durante a execução de um Programa
(Quando a luz de START estiver acesa), em modo Play.
MASTER JOB
Muitas vezes um único programa serve como base para execução de outros programas, então
este passa a ser um fator comum em diversas rotinas de trabalho. Quando isto acontece,
podemos utilizar um programa principal que interliga diversas outras rotinas de execução. Este
programa é denominado Master Job. Apenas um Job poderá ser registrado como Master neste
controlador.
1. Se ainda não estiver em modo T each, selecione o Modo T each no Painel de Playback.
2. Pressione TOP MENU.
3. Leve o cursor parTa o ícone JOB e pressione SELECT.
4. Pressione SELECT.
5. Leve o cursor para SETTING MASTER JOB e pressione SELECT.
6. Leve o cursor para o nome do Job desejado e pressione SELECT.
O Master Job selecionado será registrado na tela de Job Content que irá aparecer.
Para chamar o Job Master na tela em modo Play ou Teach, execute os seguintes passos:
NOTA: O Master Job não pode ser chamado quando a luz de START estiver acesa ou durante
a execução de um programa.
Para retornar para a tela de JOB CONTENT a partir de outra tela qualquer, execute os
seguintes passos:
24 SENAI
Robótica
CRIAÇÃO DE UM CAMINHO
Utilizando as teclas de seleção de MOTION TYPE e PLAY SPEED no P.P, o tipo de movimento
e a velocidade com que o robô se moverá para um determinado ponto poderão ser alterados.
Após criar o caminho que o robô deverá percorrer, as teclas FWD, BWD e TEST START
poderão ser utilizadas para a verificação do mesmo.
A tecla MOTION TYPE, seleciona o tipo de trajetória que o robô irá percorrer até um ponto
programado. Os quatro tipos de movimentação, em ordem, são: JOINT, LINEAR, CIRCULAR e
SPLINE. Cada vez que a tecla MOTION TYPE é pressionada um tipo de movimentação é
mostrado.
Os primeiros dois tipos de movimentação JOINT e LINEAR, requerem apenas um passo de
posição, já os outros dois tipos, CIRCULAR e SPLINE requerem no mínimo três (3) passos
consecutivos de movimentação.
Para selecionar uma das 8 velocidades de execução disponíveis, execute os seguintes passos:
SENAI 25
Robótica
Quando possível o primeiro e o último passo de um programa devem ser ensinados na mesma
posição. Esta sobreposição mantém o robô na mesma posição no final de um programa e no
começo do próximo ou do mesmo quando executado novamente.
1,6
2 5
3 4
LINE INSTRUCTION
0000 NOP
0001 MOVJ VJ=0.78
0002 MOVJ VJ=1 00.00
0003 MOVJ VJ=25.00
0004 MOVLV=138
0005 MOVJ VJ=50.00
0006 MOVJ VJ=100.00
0007 END
Para programar o último passo na mesma posição do primeiro execute os seguintes passos:
O último passo (Step 006 do exemplo) estará programado na mesma posição do primeiro passo
(Step 001).
26 SENAI
Robótica
CONFIRMAÇÃO DE TRAJETORIA
A tela irá mostrar o passo programado. Se o manipuIador não estiver fisicamente no passo
onde se encontra o cursor, o lado Address da tela ficará piscando até se chegar na posição.
Para deslocar o braço para o passo onde se encontra o cursor, escolha uma velocidade em
MANUAL SPEED, pressione e mantenha pressionada a tecla FWD (forward). O robô se
movimentará até o passo e cessará o movimento, fazendo com que o cursor pare de piscar.
Para continuar checando a trajetória, pare de pressionar a tecla FWD e pressione novamente.
O robô irá se deslocar para o próximo passo. Se quiser retornar para o passo anterior,
pressione a tecla BWD (backward). O robô irá se deslocar para o passo anterior. Enquanto as
teclas FWD e BWD são pressionadas, o manipulador se deslocará conforme a velocidade
manual (MAN SPD) selecionada. Quando parar de pressionar a tecla FWD ou BWD a
movimentação do robô pára. A tecla HIGH SPD é habilitada para o FWD mas não para o BWD.
Este método para confirmação de trajetória permitirá ao robô agir como se estivesse no modo
PLAY. Todos as instruções serão executadas conforme programado. Movimentos gravados
com velocidades acima de 20% da velocidade máxima do robô serão executados em
velocidade de 20% da capacidade máxima. Para as velocidades programadas abaixo deste
limite de 20%, o movimento será executado na velocidade programada. A seleção do ciclo
afetará a execução do TEST START, então, é recomendada a seleção de 1-CYCLE.
Para executar esta função, comece com o cursor em NOP. Enquanto estiver pressionando a
tecla INTERLOCK, pressione e mantenha pressionada a tecla TEST START. O botão de
START do painel de playback acenderá e o robô executará os passos e instruções
programadas. O botão INTERLOCK pode ser solto quando o robô estiver em movimento. Para
parar a execução do programa, apenas solte o botão TEST START.
SELEÇÃO DE CICLO
Três seleções de ciclo determinam como o controlador irá operar o Job selecionado quando o
botão START for pressionado no modo PLA Y. Isto também afeta a operação do TEST START
do Programming Pendent. Estas seleções são STEP, 1-CYCLE e AUTO. O ciclo selecionado é
indicado na linha de Status do P.P.
STEP: O controlador irá executar apenas uma linha na qual o cursor estiver localizado a cada
vez que o botão START for pressionado. As instruções de ferramenta NÃO serão executadas
enquanto estiver no ciclo STEP.
1-CYCLE: O controlador irá executar o job selecionado uma vez, de onde o cursor estiver
localizado até a instrução END quando o botão START for pressionado.
AUTO: O controlador irá executar o job selecionado repetidamente, de onde o cursor estiver
localizado quando o botão START for pressionado.
SENAI 27
Robótica
EXECUTANDO UM JOB
Para executar um programa, após verificado com os dois métodos mencionados anteriormente,
siga os seguintes passos:
Além dos tipos movimento JOINT e LINEAR, o XRC suporta dois outros tipos de movimento:
CIRCULAR e SPLINE (parabólico).
MOVIMENTO CIRCULAR
Num movimento circular, o robô irá realizar uma trajetória circular, referenciada no TCP (Tool
Center Point), entre os pontos ensinados. Para o manipulador realizar uma trajetória circular, no
mínimo de três pontos consecutivos são necessários. Para definir um círculo completo (360°),
cinco pontos devem ser usados para uma melhor interpolação.
Para programar pontos circulares, pressione o botão MOTION TYPE até que apareça MOVC na
linha de entrada. Quando um movimento circular for selecionado, a tecla PLAY SPEED é
configurada em unidades de cm/min, mm/seg, in/min ou mm/min, idêntico ao movimento linear.
NOTA: O robô irá se mover linearmente para o primeiro passo da trajetória circular.
1 3
Num movimento do tipo spline, o robô irá realizar uma trajetória parabólica (curva) referenciada
no TCP, entre os pontos ensinados. Para o manipulador realizar esta trajetória são necessários
no mínimo três pontos consecutivos.
Para programar esses pontos, pressione o botão MOTION TYPE até que apareça MOVS na
linha de entrada. Quando o movimento parabólico é selecionado, a tecla PLAY SPEED é
configurada para as unidades cm/min, mm/seg, in/min ou mm/min, assim como o movimento
linear. O ponto 2 precisa ser programado na linha perpendicular à linha entre os pontos 1 e 3.
NOTA: O robô irá se deslocar linearmente para o primeiro ponto da seqüência da parábola.
1 3
28 SENAI
Robótica
Muitas das funções de gerenciamento são realizadas na lista de jobs, na qual mostra os nomes
de todos os JOBS registrados. COPY, DELETE e RENAME são consideradas funções de
gerenciamento. Para realizar as funções de gerenciamento, a lista de jobs deve ser chamada
na tela.
COPY JOB: A função COPY JOB permitirá ao operador fazer uma cópia idêntica de um Job
onde somente o nome do Job será diferente. Isto é feito sempre que uma célula possui vários
jobs com pequenas diferenças. Isto deve também ser utilizado sempre que um job for ser
editado (modificado). É melhor fazer uma cópia (backup) e trabalhar na própria cópia efetuada.
No caso da edição não ser feita com sucesso, o job de produção original não foi modificado.
Para copiar um Job, siga os seguintes passos:
NOTA: COPY JOB pode também ser usado pela tela do JOB CONTENT. Use apenas os
passos de 6 ao 10.
DELETE JOB: A função DELETE JOB permitirá ao operador deletar um job que não estiver
sendo utilizado, estiver desatualizado ou não for mais necessário ao controlador.
Para apagar um Job, siga os seguintes passos:
NOTA: DELETE JOB pode também ser usado pela tela do JOB CONTENT. Use apenas os
passos de 6 ao 9.
RENAME JOB: A função RENAME JOB permitirá ao operador renomear um job. Isto se fará
necessário se um job com o mesmo nome de um job já existente tiver de ser importado de um
disquete. O software que permite importar arquivos de um disquete não permitirá que um
arquivo seja regravado, portanto o job que estiver no controlador deverá ser renomeado.
Para renomear um Job, siga os seguintes passos:
SENAI 29
Robótica
NOTA: RENAME JOB pode também ser usado pela tela do JOB CONTENT. Use apenas os
passos de 6 ao 10.
NAME/DA TE JOB LISTS: O JOB LIST pode ser selecionado para mostrar o nome dos JOBS
em ordem alfabética (NAME), ou em ordem da data de criação (DATE).
DETAIL DISPLAY: Detalhes de um Job podem ser mostrados na lista de JOBS quando o
DETAILS estiver selecionado. Informações sobre o Job sob o cursor são mostradas em uma
pequena parte da tela. Para habilitar ou desabilitar o DET AIL, siga os seguintes passos:
NOTA: O display DETAIL sempre aparecerá quando a lista do SELECT JOB estiver na tela até
que a seleção do DETAIL seja desabilitada.
JOB HEADER: O JOB HEADER é como uma página título do Job. Ele mostra detalhes
adicionais e informações sobre o Job selecionado. O JOB HEADER mostra o nome do Job,
comentários, o total de memória usada, o número de passos e linhas do job, o tempo e a data
da última edição e se foi feito Back Up além de mostrar o estatus do EDlT PROTECTION.
Para entrar na tela do JOB HEADER, siga os seguintes passos a partir da tela do JOB:
Para retomar à tela do JOB, siga os seguintes passos a partir da tela do JOB HEADER:
CAPACIDADE
Esta tela mostra o número de JOBS, bytes usados e restantes, e o número de passos usados e
restantes para os eixos ROBOT, BASE ou STATION.
Para checar a capacidade da memória, siga os seguintes passos:
30 SENAI
Robótica
Edição de programas
EDIÇÃO DE PROGRAMAS
Existem várias maneiras de se editar uma instrução do job ou urna posição do robô. Este
capítulo inclui: correção de posição, especificação de nível de posição, recortar, copiar, colar e
colar inverso.
A tela do job é dividida em duas partes, como é mostrado na figura abaixo.
O lado esquerdo da tela é de endereçamento (address), o qual contem o número da linha. Cada
linha do job tem um número. Cada linha inclui o tipo do movimento, como MOVJ, e também o
número do passo, isto é indicado na parte superior do job perto do nome do job (job name). O
cursor deverá estar no lado de endereçamento para iniciar a programação, para inserir,
modificar ou excluir passos e instruções.
O lado direito da tela é o de instruções (instruction) e informações (information). O cursor
deverá estar do lado direito da tela para se editar uma linha e para mudar o tipo de movimento.
CORREÇÃO DE POSIÇÃO
Os métodos descritos a seguir são utilizados para modificar uma posição programada.
INSERINDO UM PASSO
Para inserir um passo entre linhas/passos existentes em um job, siga os seguintes passos:
SENAI 31
Robótica
EXCLUINDO UM PASSO
NOTA: Para excluir um passo, o robô deverá estar posicionado no passo a ser excluído.
Quando o robô não está na posição de comando, o número do passo onde está o cursor
piscará.
4. Para mover o robô exatamente ao ponto programado, assegure-se de que seja esta
posição e pressione FWD até o cursor parar de piscar.
5. Pressione DELETE.
6. Pressione ENTER.
NOTA: A mudança do tipo de movimento do passo irá alterar a posição programada. Sempre
faça a confirmação da trajetória para verificar/confirmar a trajetória.
O cursor deverá estar no lado de endereçamento do job para se usar os botões DELETE,
INSERT e MODIFY. O botão DELETE é usado para excluir uma linha de instrução ou um passo
de movimento. O botão INSERT deve ser usado quando se vai adicionar uma linha/passo entre
linhas/passos existentes no programa. O cursor deverá estar no lado de instruções para mudar
o tipo de movimento.
32 SENAI
Robótica
Para selecionar um nível de precisão durante a programação dos passos, siga os seguintes
passos depois de levar o robô para uma posição desejada e escolher o tipo de movimento e a
velocidade na linha do buffer:
Para adicionar um nível de posição para um passo existente, siga os seguintes passos:
As funções de edição de jobs Cut, Copy, Paste & Reverse Paste usam a memória do buffer
como a seguir:
Os valores de Copy e Cut podem ser colados em qualquer job com o mesmo formato, usando
as funções de PASTE e REVERSE.
34 SENAI
Robótica
A edição de linha geral é usada para modificar dados existentes em alguma linha da mesma
forma que é feita a mudança de tipo de movimento de um passo. Este tipo de edição é todo
feito na linha do buffer, o restante da tela do JOB CONTENT já foi visto.
A edição de linha geral é feita na linha do buffer. Para fazê-lo siga os seguintes passos:
SENAI 35
Robótica
EDIÇÃO DE DETALHES
A tela DETAIL EDlT deve ser acessada para adicionar condições e/ou identificação como o
exemplo "PL=" ou para fazer mudanças no tipo de dado, da mesma forma que é feita a
mudança dos dados.
Para efetuar o DETAIL EDlT, siga os seguintes passos:
CORREÇÃO DE VELOCIDADE/AJUSTES
Para modificar a velocidade programada para qualquer uma das oito velocidades presentes na
lista de velocidades, siga os seguintes passos:
NOTA: Esta função de correção de velocidade apenas permite você mudar a velocidade de
uma das oito velocidades padrões presentes. Se você quiser uma velocidade diferente de uma
dessas velocidades, use o próximo método.
36 SENAI
Robótica
A tela Detail Edit permite mudar a velocidade programada juntamente com o grupo de tipos de
movimentos programados. O Detail Edit também permite mudar o tipo de velocidade.
Para mudar as velocidades através do Detail Edit, siga os seguintes passos:
NOTA: Existem dois tipos diferentes de velocidade para o MOVL, MOVC e o MOVS (V= ou
VR=). Para mudar para VR=, leve o cursor até o "V=" e pressione SELECT.
6. Pressione ENTER para confirmar a linha do buffer e retomar a tela do JOB CONTENT.
7. Pressione ENTER sobre o dado na linha de entrada dentro do job.
MUDANDO A VELOCIDADE
• Relativo
• Absoluto
Os dois métodos são importantes para se entender a diferença entre as opções CONFIRM e o
NO CONFIRM na categoria MODIFICATION TYPE.
CONFIRM - Se for escolhido a opção CONFIRM, e depois selecionar EXEC, cada passo deve
ser mudado individualmente usando o botão ENTER.
SENAI 37
Robótica
O Transverse Run Time (TRT) permite você fazer com que a tarefa do manipulador seja
cumprida em um intervalo de tempo especificado. A função do TRT é calcular e reler as
velocidades para alcançar o tempo desejado em um ciclo.
O job selecionado deverá ser executado para estabelecer o tempo de movimentação existente
de modo que possa ser feita uma análise do tempo requisitado.
Para usar o TRT, siga os seguintes passos:
38 SENAI
Robótica
NOTA: Se o TRT desejado não alcançar na primeira execução, pressione SELECT novamente,
até alcançar os resultados desejados.
11. Ao terminar o TRT, leve o cursor ao Cancel e pressione SELECT para retomar a tela do
JOB CONTENT.
NOTA: Se algumas das velocidades do grupo medido for um valor máximo ou mínimo, a
mensagem "!Limited to maximum speed" ou "!Limited to minimun speed" aparecerá.
TEMPO DE UM CICLO
A tela CYCLE TIME mostra o PLAYBACK TIME (a quantidade de tempo desde que o botão
START foi apertado da última vez), e o tempo de movimentação do manipulador para todas as
posições executadas desde o último START.
Para acessar o tempo mostrado, siga os seguintes passos:
NOTA: Se o job estiver rodando em ciclo automático, a tela de tempo do ciclo irá mostrar um
dado tempo acumulado. Para determinar o tempo para apenas um ciclo, rode o job do NOP até
o END em modo 1-Cycle.
Os modos especiais de Playback, os quais estão listados abaixo, permitem que os programas
rodem em baixa velocidade, executando ou não instruções de ferramentas, e com ou sem
movimento do manipulador. São eles:
SENAI 39
Robótica
O Low Speed Start move o manipulador a uma velocidade constante de 10% da velocidade
máxima, sem a execução de instrução de ferramenta. Caso ocorra uma instrução de
ferramenta, o robô pára e fica aguardando um novo START. Este modo pode ser usado para
recuperar uma parada de emergência E-Stop.
Para ligar ou desligar o low speed na tela do job content, siga os seguintes passos:
NOTA: Depois do manipulador terminar o ciclo, pressione START novamente para continuar o
playback normal. O LOW SPEED START é automaticamente “resetado” quando desligado.
LIMITE DE VELOCIDADE
O modo Speed Limit limita a velocidade do manipulador para não mais que 25% da velocidade
máxima e as instruções de ferramentas são executadas. Este modo pode ser usado, por
exemplo, no teste de novos jobs cujos passos programados a 100% serão executados a uma
velocidade segura de 25%. O modo Speed Limit não é recomendado para testar jobs onde a
instrução de ferramenta envolve velocidades programadas excedentes a 25%, pois isto afetará
o processo (resultados inferiores e possíveis riscos).
Para ligar ou desligar o Speed Limit na tela do Job Content, siga os seguintes passos:
NOTA: O Programming Pendant mostrará "!Speed Limit mode" na área da linha de mensagem
enquanto o modo Safety Speed opera.
No modo Dry-Run o manipulador percorre todos os passos a uma velocidade constante de 10%
da velocidade máxima e as instruções de ferramentas não são executadas. Este modo é mais
utilizado para verificar o tipo de movimento através dos caminhos e dos pontos programados.
Para ligar ou desligar a velocidade Dry-Run na tela do Job Content, siga os seguintes passos:
40 SENAI
Robótica
CHECK-RUN
O modo Machine Lock permite o controlador executar um job na velocidade programada, não
executa instruções de ferramenta e o manipulador não se move. O Machine Lock é tipicamente
usado para checar a comunicação entre o controlador e os dispositivos externos.
Todos os cinco modos são selecionados (isto é, pressione SELECT para ligar; Pressione
SELECT novamente para desligar). Se dois ou mais destes modos especiais estiverem ligados
ao mesmo tempo, o controlador usa a velocidade mais lenta e sem ferramenta.
SENAI 41
Robótica
42 SENAI
Robótica
Calibração de ferramenta
O ponto para onde o robô deverá ser deslocador estará referenciado no centro geométrico da
flange do robô e qualquer tipo de movimento que se exija estará sendo desenvolvido em função
deste ponto.
Z
Y
O processo de calibração de ferramenta é conhecido como “TCP” (Tool Center Point - ponto
central da ferramenta), que é de onde se obtém o ponto que será tomado como referência para
os movimentos da ferramenta, permitindo a obtenção das características de precisão,
resolução, etc, no percurso de movimento do robô.
Alguns fabricantes introduzem neste processo as gravações de pontos que indicam o sentido
de referência da ferramenta, como por exemplo o eixo Z.
SENAI 43
Robótica
Para que o manipulador possa executar operação de interpolação, como interpolação linear e
interpolação circular corretamente, a informação de precisão dimensional na ferramenta, de
tochas e pistolas, deve ser registrada e a posição do ponto central da ferramenta (TCP), será
definido. A calibração da ferramenta é uma função que permite obter esta informação
dimensional fácil e precisamente.
Para executar a calibração da ferramenta, cinco diferentes posições (TC1 – TC5) devem ser
ensinadas, tendo o ponto central da ferramenta como referência. A dimensão da ferramenta é
automaticamente calculada com base nesses cinco pontos.
A definição manual do TCP é tipicamente usada para modificar os valores de RX, RY e RZ,
em graus, após ter sido feita a determinação dos valores de X, Y e Z, em milímetros, da
ferramenta.
44 SENAI
Robótica
Para verificar se os ajustes foram realizados com sucesso, utilize os botões RX, RY e RZ nas
coordenadas WLD ou TOOL para rotacionar a ferramenta em torno seu TCP.
Quando usamos entrada numérica para registrar arquivo ferramenta, o (TCP) é registrado
como valor de coordenada para cada eixo em função da coordenada da flange.
O valor a ser registrado das coordenadas das ferramentas A, B ou C para cada eixo deve
ser feito conforme a figura abaixo.
SENAI 45
Robótica
1. Determine um ponto fixo em um dispositivo. Tenha certeza que este ponto não pode
ser deslocado.
2. Pressione TEACH, caso ainda não esteja neste modo.
3. Pressione TOP MENU, mova o cursor para ROBOT e pressione SELECT.
4. Selecione TOOL e pressione SELECT.
5. Pressione AREA KEY, selecione a opção UTILITY e pressione SELECT.
6. Mova o cursor para CALIBRATION e pressione SELECT.
NOTA: Para apagar uma calibração existente, pressione AREA KEY, selecione DATA e
pressione SELECT. Com o cursor em CLEAR DATA, pressione SELECT. Selecione YES e
pressione SELECT.
7. Pressione TEACH LOCK e ligue os motores. Escolha uma coordenada sem ser TOOL.
8. Se o TC1 não estiver selecionado, pressione SELECT, selecione TC1 e pressione
SELECT novamente.
9. Mova o robô para o ponto fixo até a ponta da ferramenta chegar exatamente no ponto e
então pressione MODIFY e ENTER.
10. Repita os passos 8 e 9, até gravar todos os outros pontos, até o quinto ponto.
11. Após gravar o último ponto, mova o cursor para COMPLETE e pressione SELECT.
O cálculos é automaticamente refeito e na tela TOOL irá aparecer com as novas dimensões
para X, Y e Z da ferramenta utilizada no processo de definição do TCP.
12. Se necessário, mova o cursor para o lado direito da tela para inserir os valores dos
ângulos manualmente.
Para testar a definição do novo TCP, utilize os botões de rotação Rx, Ry e Rz nas coordenadas
WLD ou TOOL, para rotacionar a ferramenta em torno do TCP, sem move-lo. Cheque também
as direções de X, Y e Z operando em coordenada TOOL. A direção Z+ deverá operar na
direção da aplicação.
46 SENAI
Robótica
Instruções de controle
INFORM LIST
A Inform List é uma tabela que contém todas as instruções não relacionadas com
movimentação. Estas instruções são utilizadas para executar seqüências de operações de
controle, realizar funções aritméticas, analisar I/O (entradas e saídas) e controlar ferramentas.
A Inform List possui uma tecla própria no Teach Pendant. Ao pressiona-la, uma janela abrirá
permitindo selecionar um dos grupos de funções. Esses grupos são:
• IN / OUT
• CONTROL
• DEVICE
• MOTION
• ARITH
• SHIFT
Pressionando o SELECT sobre um dos grupos, uma nova janela será disponibilizada contendo
as instruções específicas do grupo escolhido.
Para retornar à Inform List, pressione o SELECT sobre os dois pontos que aparecem no início
da lista ( . . ). Para sair da INFORM LIST pressione a tecla correspondente novamente.
INSTRUÇÕES DE CONTROLE
CALL
A instrução CALL permite que um job abra outro como se fosse uma sub-rotina. O job faz a
chamada tomando como referência o job pai. O job pai (Master Job) chama o job filho.
LIGANDO JOBS: Os jobs podem ser ligados simplesmente criando um job pai com uma
instrução CALL em alguma parte do programa direcionada para um job filho desejado em
ordem de execução. Observe os jobs filhos ligados em seqüência no job pai:
SENAI 47
Robótica
NOTA: O controlador XRC automaticamente retoma para a próxima linha de execução do job
pai depois do final (END) do job filho. O job chamado pode ser um job de movimento. Neste
caso você deve ter o cuidado de garantir que limpou o trajeto para a execução do job filho. Os
botões FWD e BWD não executam a instrução CALL. Isto pode ser feito apenas no modo
TEACH usando o Test Start para confirmação do trajeto enquanto estiver em Step Cycle ou
usando a função Direct Open.
JOBS LIGADOS
A instrução CALL pode ser usada em um job filho para chamar outro job filho. Neste caso, o
primeiro job filho torna-se o job pai do próximo. Isto pode ser fieto com até oito níveis de jobs
interligados.
Observe os jobs filhos ligados no job pai correspondente:
NOTA: No final de cada job filho o controlador automaticamente retornará na próxima linha de
instruções do job pai que o chamou. O alarme 4443 aparecerá quando mais de 8 (JOB CALL)
níveis ocorrer. Para mostrar o JOB STACK em modo PLAY, pressione o botão AREA para
mover o cursor para a linha do menu, mova o cursor para o DISPLAY, pressione SELECT.
Pressione SELECT sobre o <JOB STACK>. O " √ " aparecerá indicando que o JOB STACK
48 SENAI
Robótica
aparecerá na tela, quando em modo PLAY. Para remover o STACK, repita os passos aqui
descritos.
A INFORM LIST aparecerá em uma coluna da direita, este botão não é ativado em modo de
edição.
NOTA: Quando você insere qualquer instrução entre linhas existentes (não apenas da instrução
END) o botão INSERT deve estar ligado pressionando-o e ao final pressione ENTER na linha
do buffer no job. Para modificar a instrução já existente na linha do buffer, o botão MODIFY
precisa estar ligado.
RET (RETORNO)
A instrução RET (Returno) é usada para o controlador fechar o job filho e retornar ao job pai. O
RET da a opção de se usar apenas uma parte do job filho.
PARENT CHILD
JOB:ABC JOB:123
NOTA: Se o job filho é executado independentemente (sem ser chamado pelo job pai) e tentar
executar a instrução RET, o alarme 4440 ocorrerá indicando UNDEFINED RETURN JOB.
SENAI 49
Robótica
DIRECT OPEN
A função Direct Open permite visualizar as informações relatadas. Pressione o botão DIRECT
OPEN enquanto o cursor está na instrução CALL e ele abrirá o job filho designado.
Pressionando o botão DIRECT OPEN enquanto o cursor está em um passo de movimentação,
ele mostrará a tela do Command Position.
A figura abaixo mostra o botão DIRECT OPEN. Esta função apenas mostra um nível abaixo do
nível original.
JUMP
A instrução JUMP é a mesma função de "Go To" em linguagem C, por exemplo. Isto instrui o
controlador a ir para um outro local no mesmo job (é usado depois de definir o Label). Isto
também pode instruir o controlador a ir para um outro job. Isto não é considerado normal em
situações de programação básica. O controlador não irá retornar ao job original quando saltar
para um outro job com a função JUMP.
A instrução JUMP pode ser usada para avançar ou retroceder para um especificado Label no
job. Depois da execução da instrução JUMP para o Label, o cursor continuará a partir do label.
No job abaixo, o controlador executará o programa do L:0004 para L:0008 sem executar as
linha 0005, 0006 e 0007.
NOTA: A definição do LABEL é automática e precedida por um asterisco (*). O Label pode
conter no máximo 8 caracteres e pode ser definido com letras, números, símbolos ou qualquer
combinação destes. Use o underscore "_"para espaço, se for precIso.
7. Pressione Cancel para limpar a linha do buffer, depois selecione o caracter desejado.
Quando terminar, pressione ENTER.
8. Pressione (INSERT?/MODIFY?) ENTER para inserir a instrução nojob.
50 SENAI
Robótica
LABEL
Depois da instrução Jump entre com o Label. O label precisa ser definido no programa. O Label
é o indicador para onde o controlador deve levar o cursor. Quando programado, um asterisco
automaticamente aparecerá antes do Label. O Label precisa ser exatamente o mesmo Label
especificado na instrução Jump.
Para programar o Label no job, siga os seguintes passos:
COMENTÁRIO
Comentários são anotações do programador / operador. Ele não afeta a operação do job.
Comentários são precedidos de apóstrofe e são limitadas por 32 caracteres por a linha.
Para introduzir um comentário no job, siga os seguintes passos:
TIMER (TEMPORIZADOR)
Esta função causa uma parada do manipulador na posição corrente por um período de tempo
definido pelo usuário. Tempos são utilizados quando o manipulador precisa de um atraso de
tempo (Estabelecimento de arco, tempo para pegar alguma peça e etc.). A função TIMER
segue uma faixa de 0.01 até 655.35 segundos.
Para programar uma instrução de tempo, siga os seguintes passos:
SENAI 51
Robótica
PAUSE
Esta função causa a parada da execução de um job. O led START desliga e o manipulador se
mantém na posição. As instruções PAUSE são utilizadas sempre que um HOLD programado é
necessário. Para continuar o job, pressione o botão START.
Para programar a instrução PAUSE, siga os seguintes passos:
52 SENAI
Robótica
Variáveis aritméticas e
instruções
A linguagem do INFORM LIST suporta quatro diferentes tipos de variáveis, são eles: Integer
(Inteira), Double Precision Integer (Inteira com Precisão Dupla), Real e Byte. A tabela 15-1
descreve os atributos e também o tipo de variável.
VARIÁVEIS ARITMÉTICAS
MOSTRANDO AS VARIÁVEIS
Para ver o conteúdo de um valor armazenado em uma variável, independente do modo TEACH
ou PLAY, siga os seguintes passos:
SENAI 53
Robótica
INSTRUÇÕES ARITMÉTICAS
INC (INCREMENTAR)
A instrução INC aumenta o valor armazenado em uma variável de um. Por exemplo, se o
endereço 1013 tem o valor 6, depois da instrução INC 1013, ele terá o valor 7.
A instrução INC pode ser usada primeiramente para contar. Por exemplo, a instrução INC pode
ser usada, se necessário, para contar o número de vezes de um job que está rodando, o que
pode significar a quantidade total de peças feitas. Entre com a instrução INC no final do job,
como é mostrado abaixo:
54 SENAI
Robótica
DEC (DECREMENTAR)
A instrução DEC decrementa valores armazenados em uma variável de um. Por exemplo, Se o
endereço 1022 tem o valor 11, após a execução da instrução DEC 1022 o valor será 10. A
instrução DEC pode ser usada em aplicações que precisam alcançar uma produção pré-
estabelecida. A variável é escolhida para armazenar um número requerido de peças que
necessitam ser feitas. A variável deve decrementar (DEC) a cada peça completada. Para
melhores resultados, mude a contagem apenas depois que o job foi completado. Entre com a
instrução DEC ao final do job, como é mostrado abaixo:
A instrução DEC pode ser usada apenas com variáveis do tipo B, I ou D. Se a instrução DEC
armazenar um valor que exceda um valor mínimo ou máximo dom seu limite, irá ocorrer o
ALARME: 4446 OVER VARIABLE LIMIT, parando a execução do job na linha de instrução.
Para continuar, pressione SELECT (para resetar o alarme) e faça as mudanças necessárias
para prevenir futuros alarmes.
Para programar a instrução no job, siga os seguintes passos:
SET
A instrução SET coloca um valor específico em uma variável de endereço específica. Isto
permite você colocar um valor automaticamente em uma variável.
Na linha 0006 do job abaixo, o SET é usado para carregar o conteúdo da variável 1015 com o
valor zero.
SENAI 55
Robótica
9. Pressione SELECT sobre o endereço, depois entre com endereço (O até 99) usando o
teclado numérico e pressione ENTER.
10. Pressione SELECT sobre o SOURCE, entre com um valor através do teclado numérico
e pressione ENTER.
11. Pressione ENTER para armazenar na linha do buffer e retornar ao JOB CONTENT.
12. Pressione ENTER para inserir a instrução no JOB.
NOTA: Como todas as variáveis aritméticas de endereço são globais, temos que ter o cuidado
ao utilizar o comando SET para ter certeza de que cada job use um valor inicial apropriado.
CLEAR
A instrução CLEAR permite zerar um dado de uma variável. Esta instrução apagará o dado de
uma pasta ou de um grupo de pastas. Com a instrução CLEAR, o endereço inicial e o número
do grupo de endereços a ser definido devem ser especificados. No exemplo abaixo, a instrução
CLEAR 1007 4 apagará os dados dos endereços 1007, 1008, 1009 e 1010 (quatro endereços
começando pelo 1007). Podemos selecionar ALL no lugar do número, zerando todas as
variáveis de endereços, desde o endereço que você especificou até o último. Por exemplo, o
CLEAR 1007 ALL apagará os dados de todos os endereços desde o 1007 até 1039.
10a. Para entrar com um número para definir um grupo de endereços iniciais em um endereço
especificado, siga os seguintes passos:
Ou
10b. Para limpar de um especificado endereço até 099. siga os seguintes passos:
56 SENAI
Robótica
A declaração IF é uma condicional, ou seja, uma instrução de controle que executa a instrução
apenas se a condição for satisfeita. Por exemplo, chame o job limpeza de ferramenta se a
variável tiver alcançado um certo valor ou pule a seqüência de passos se a variável alcançar
um certo valor.
A instrução IF é disponibilizada toda vez que se utiliza uma instrução de controle (CONTROL):
1. JUMP
2. CALL
3. RETURN
4. PAUSE
Estas instruções são definidas como uma instrução de origem. Qualquer instrução que vem
primeira na linha (exemplo MOVL, CALL, INC) é uma instrução de origem.
Opções Condicionais:
0000 NOP
0001 SET 1039 O
0002 MOV J V J=25.00
0003 MOVJ VJ=100.00
0004 MOVJ VJ=12.50
0005 *Line5
0006 MOVC V=558
0007 MOVC V=558
0008 MOVC V=558
0009 MOVL V=558
0010 INCI039
0011 JUMP *Line5 IF 1039<3 0012 END
Para programar a declaração IF nas instruções: CALL, RET, JUMP ou PAUSE, siga os
seguintes passos:
SENAI 57
Robótica
Para adicionar a declaração IF a uma instrução CALL, RET, JUMP ou PAUSE existente, siga os
seguintes passos:
58 SENAI
Robótica
Instruções de I/O
Um robô raramente trabalha sem uma interface com outros equipamentos. Como exemplo, o
controlador pode se comunicar com fontes de solda, posicionadores, dispositivos de fixação,
sensores, etc. Esta comunicação é realizada através de Inputs e Outputs (l/O). A linguagem
Inform 11 suporta um número de instruções de l/O, como descrito abaixo.
Este comando é usado toda vez que um dispositivo (led, garra etc.) deve ser ligado (ON) ou
desligado (OFF) até que algum outro ponto seja alcançado no programa. Esta instrução é uma
instrução de saída digital. A seguir temos um exemplo de instrução DOUT usado com uma
saída universal simples.
NOTA: Cada saída que foi ligada, permanecerá ligada até que o comando DOUT "OFF" seja
executado pelo programa ou manualmente desligado.
Este comando age como uma chave de contato momentâneo para saídas. O comando PULSE
será usado toda vez que um dispositivo deve ser ligado (ON) e mantido nesta situação por um
período de tempo. Exemplos de dispositivos que são usados: cortador de arame, pistola de
cola, comunicação com CLP, contadores, alarmes etc.. O controlador continua executando o
programa enquanto a saída é pulsada.
SENAI 59
Robótica
9. Selecione TIME [UNUSED] e pressione SELECT. Mova o cursor para o campo do valor
e pressione SELECT. Entre com o tempo em segundos (0.01 - 655.35) e pressione
ENTER.
10. Pressione ENTER para aceitar e retornar para a tela do programa.
11. Pressione (INSERT?/MODIFY?) ENTER.
NOTA: Esta tela oferece duas diferentes visualizações. SIMPLE mostra apenas os grupos de
saídas com indicador de Bit para cada saída. DET AIL mostra as saídas individuais com nomes
e status. Se a visualização DETAIL aparecer, desconsidere os passos 3 e4.
1. Selecione EDlT, pressione SELECT, selecione SEARCH SIGNAL NO. e pressione SELECT.
Entre com o número da saída e pressione ENTER.
Ou
Leve o cursor para qualquer OT#( ), pressione SELECT, entre com o número da saída e
pressione ENTER.
Com a tela DETAIL, as saídas universais podem ser ligadas (ON) ou desligadas (OFF). Para
forçar as saídas individualmente, siga os seguintes passos no modo TEACH:
60 SENAI
Robótica
Coloca uma determinada tensão na porta de saída analógica. Algumas vezes se faz necessário
ligar um dispositivo e levá-lo a algum nível. Por exemplo, deseja-se acionar um dispositivo de
colagem a 200 cm3/min. A instrução AOUT é usada nestes casos. O XRC, na sua versão
standard para solda, possui 3 saídas analógicas (robôs de manipulação de materiais não
possuem nenhuma). A tensão de saída dos canais pode variar de -14V a +I4V.
É possível monitorar as saídas analógicas em modo TEACH ou em modo PLAY. Para visualizar
as saídas analógicas, siga os seguintes passos:
0052 WAIT IN#(5)=OFF T=3.25 [Espera a IN#(5) ser OFF por 3.25
segundos, então continua o programa]
NOTA: Se o status da condição for "verdade", quando o controlador for executar a instrução, o
programa não executará nenhuma espera.
SENAI 61
Robótica
NOTA: Esta tela oferece duas diferentes visualizações. SIMPLE mostra apenas os grupos de
saídas com indicador de Bit para cada saída. DETAIL mostra as saídas individuais com nomes
e status. Se a visualização DETAIL aparecer, desconsidere os passos 3 e 4.
Ou, leve o cursor para qualquer IN#( ), pressione SELECT, entre com o número da saída e
pressione ENTER.
62 SENAI
Robótica
NOTA: Para alterar ou adicionar informações nas instruções de controle, faça o mesmo
procedimento mas comece com o cursor no lado das instruções.
Este comando é usado para armazenar um estado de I/0 em uma variável do tipo byte. É usado
sempre que o controlador estiver recebendo informações de um PLC ou outro dispositivo de
entrada de múltiplos pontos. Esta técnica é usada primeiramente quando algum dispositivo é
usado para indicar ao robô qual job deve ser executado.
O valor decimal é baseado no sistema binário. Cada Input ou Output são lidas como (1) ou (0).
A tabela abaixo mostra o valor binário para um grupo de I/0 (8-bit).
Usando a tabela e a instrução acima, a instrução DIN gravará o valor decimal 144 e o valor
binário 10010000 na variável B0I2. Isto pode ser visualizado na tela das vaiáveis BYTE. O valor
de B0l2 agora pode ser usado como no exemplo:
Este comando além de ser usado para saídas individuais, pode ser usado em grupos de saída.
Os valores são baseados conforme a tabela apresentada no item anterior. Com esta instrução,
múltiplas saídas podem ser acionadas ou desligadas ao mesmo tempo.
SENAI 63
Robótica
Para programar uma instrução DOUT em um grupo de saídas, siga os seguintes passos:
64 SENAI
Robótica
User frame
Quando se trabalha em planos inclinados ou rotacionados, o sistema de Coordenadas World
perde a sua funcionalidade. A programação torna-se muito mais fácil se for realizada com a
ajuda de um sistema de coordenadas que coincida com o plano de trabalho. O XRC suporta 24
sistemas de coordenadas definidos pelo usuário. Estes são referenciados como User Frames
(UF# 1 - 24).
Um User Frame é definido por três pontos:
A criação de um USER FRAME é uma função disponível no ícone ROBOT. Para definir um
USER FRAME, siga os seguintes passos:
SENAI 65
Robótica
NOTA: Para verificar/visualizar as posições gravadas ORG, XX e XY, escolha um deles (como
descrito nos passos 5, 9 ou 12), e pressione o botão FWD até que a posição (ORG, XX, XY)
pare de piscar.
Qualquer USER FRAME definido pode ser acessado pela lista de USER FRAMES em qualquer
momento, conforme necessidade.
Para acessar um USER FRAME, siga os seguintes passos:
NOTA: Uma vez selecionado um USER FRAME, o robô se movimentará neste coordenada,
quando estiver em USER, até que outro USER FRAME seja selecionado.
66 SENAI
Robótica
Função deslocamento
paralelo
Deslocamento paralelo significa mover um objeto de uma posição para outra, bem como
todos os pontos desse objeto, numa mesma distância.
No modelo para deslocamento paralelo, mostrado abaixo, o valor do deslocamento pode ser
definido como uma distância l (coordenada do deslocamento tri-dimensional).
No exemplo da figura abaixo, o ponto ensinado (A) é deslocado até o ponto (B) cuja distância
vale L. Caso sejam necessários vários deslocamentos com o mesmo comprimento L, é possível
utilizar a função de deslocamento paralela ao invés de gravar todos os outros pontos até o
ponto G.
SENAI 67
Robótica
O bloco que parte da instrução SFTON até a instrução SFTOF é submetido à operação de
deslocamento paralelo.
Quando se modifica uma série de movimentos, as linhas de programação podem ser dispostas
conforme o exemplo apresentado acima, onde os passos de 2 a 6 são alterados. Porém, pode-
se desejar deslocar toda uma seqüência ou programa, conforme o exemplo mostrado abaixo.
Sistema de coordenadas
O valor da distância para o deslocamento paralelo pode ser feito em X,Y e Z com incremento
em cada sistema de coordenada. Os sistemas de coordenadas são quatro:
• Base;
• Robô;
• Ferramenta; e
• Usuário.
68 SENAI
Robótica
X
Y
Z
Z
Y
Y
X
X
X
Y
Num sistema sem eixo, a coordenada de base e a coordenada do robô são as mesmas.
Ao ajustar o valor do deslocamento em uma variável de posição, use a posição corrente (atual)
do manipulador (robô). O valor do deslocamento é a coordenada X,Y, Z, que corresponde à
diferença entre a posição atual e a posição ensinada sem esquecer da diferença no
deslocamento angular RX, RY, RZ, (normalmente ajustado em “0”).
Se a mudança for executada em pontos com intervalos iguais, por exemplo para
armazenamento, para se determinar este intervalo calcula-se a diferença entre a posição
ensinada e a posição final do deslocamento e depois divide o resultado pelo número de
intervalos.
A posição do punho é definida pelo deslocamento angular das coordenadas do eixo do punho.
SENAI 69
Robótica
0)
70 SENAI
Robótica
( INFORM II )
Instruções básicas
Instruções de movimento
MOVJ
função Mover para um ponto ensinado, com o tipo de movimento
“JOIN ”
formato Dados de posição do eixo base, e de posição do eixo da Estes dados não
estação. aparecem no
“Display”
VJ = < velocidade de operação ( % ) > VJ:
0.01 – 100.00
PL = < nível de posicionamento > PL: 0 - 4
UNTIL declaração/ estado
NWAIT
exemplo
MOVJ VJ=50.00 PL=2 UNTIL IN # (16)= 0N NWAIT
MOVL
função Mover para um ponto ensinado com movimento “LINEAR ”
formato Dados de posição do eixo base, e de posição do eixo da Estes dados não
estação aparecem no
“Display”
V = < velocidade de operação >, VR = < velocidade de V:
operação da posição >, VE = < velocidade de operação do 0.1 – 1500.0
eixo externo > mm/Seg.
0.6 – 9000.0 cm/Seg.
VR: 0.1-180.0º/Seg.
VE: 0.01 – 100.00%
PL = < nível de posicionamento > PL: 0-4
UNTIL declaração / estado
NWAIT
exemplo
MOVL V=138 PL=0 UNTIL IN # (16)= 0N NWAIT
SENAI 71
Robótica
MOVC
função Mover para um ponto ensinado, com o tipo de movimento
“CIRCULAR ”
formato Dados de posição do eixo base e de posição do eixo da Estes dados não
estação. aparecem no
“Display”
V = < velocidade de operação >, VR = < velocidade de V:
operação da posição >, VE = < velocidade de operação do 0.1– 1500.0 mm/Seg.
eixo externo > 0.6 – 9000.0 cm/Seg.
VR: 0.1-180.0º/Seg.
VE: 0.01 – 100.00%
PL = < nível de posicionamento > PL:→ 0 - 4
NWAIT
exemplo
MOVC V=138 PL=0 NWAIT
MOVS
função Mover para um ponto ensinado com movimento “curva
livre”
formato Dados de posição do eixo base e de posição do eixo da Estes dados não
estação aparecem no
“Display”
V = < velocidade de operação >, VR = < velocidade de V:
operação da posição >, VE = < velocidade de operação do 0.1– 1500.0 mm/Seg.
eixo externo > 0.6 – 9000.0 cm/Seg.
VR: 0.1-180.0º/Seg.
VE: 0.01 – 100.00%
PL = < nível de posicionamento > PL: 0-4
NWAIT
exemplo
MOVS V=120 PL=0
SPEED
função Ajustar a velocidade da operação.
formato V = < velocidade de operação >, VR = < velocidade de V , VR, VE . igual em
operação da posição >, VE = < velocidade de operação do MOVL.
eixo externo >, VJ = < velocidade de operação (%) > VJ. Igual em MOVJ
exemplo SPEED VJ= 50.00
72 SENAI
Robótica
IMOV
função Mover para um incremento especificado, partindo da
posição corrente com o tipo de movimento “LINEAR ”
formato P < número da variável >, PB < número da variável >,
EX< número da variável >
V = < velocidade de operação >, VR = < velocidade de V:
operação da posição >, VE = < velocidade de operação do 0.1– 1500.0 mm/Seg.
eixo externo >, VS = < velocidade de cada ponto > 0.6 – 9000.0 cm/Seg.
VR: 0.1-180.0º/Seg.
VE: 0.01 – 100.00%
VS:
0.1– 1500.0 mm/Seg.
0.6 – 9000.0 cm/Seg.
PL = < nível de posicionamento > PL: 0-4
UNTIL declaração / estado
NWAIT
BF : coord. De base
BF, RF, TF, UF# ( < número da coordenada de uso > ),MTF RF : coord. Do robô
TF : coord. Da
ferramenta
UF : coord. De uso
MTF: coord. Da
ferramenta para o
mestre ( na coord. Do
programa de
trabalho)
exemplo IMOV P000 V= 138 RL = IRF
IMOV P001 BP002 MTF
+ IMOV P000
REFP
função Define um ponto de referência ( ex. ponto na parede para
movimento ondulado na soldagem )
formato Dados de posição do eixo base e de posição do eixo da Estes dados não
estação. aparecem no
“Display”
< número ponto de referência > V:
0.1– 1500.0 mm/Seg.
0.6 – 9000.0 cm/Seg.
VR: 0.1-180.0º/Seg.
VE: 0.01 – 100.00%
PL = < nível de posicionamento > PL:→ 0 - 4
NWAIT
exemplo REFP1
SENAI 73
Robótica
Instruções de I/0
DOUT
função Liga e desliga o sinal externo de saída
formato OT# (< número de saída >), OGH# (< número do grupo de
saída >), OG# (< número do grupo de saída >)
Número de endereçamento do sinal de saída:
OT# (xx) = 1; OGH# ( xx ) = 4 ( por grupo );
OG# ( xx ) = 8 ( por grupo )
OGH#(1) OGH#(2)
OG#(1)
OGH#(xx) não é submetido para checar paridade, somente a
especificação binária é permitida
exemplo
DOUT OT # (12) ON
PULSE
função Sair um sinal de pulso como um sinal de saída externo
formato OT # ( < número de saída > )
T = < tempo ( Seg. ) > 0.30 Seg.
( padrão)
exemplo PULSE OT # ( 10 ) T = 0.60
WAIT
função Aguardando até que a situação do sinal externo de entrada
iguale a situação especificada
formato IN # ( < número de entrada > ), IG # ( < número do grupo de
entrada > )
< estado >, B < número da variável >
T = < tempo ( Seg.) >
exemplo WAIT IN # (12) = ON T= 10.00
WAIT IN # (12) = B02
74 SENAI
Robótica
DIN
função Ajusta o sinal de entrada na variável
formato B < número da variável >
IN # (< número de entrada >), IGH# (< número do grupo de
entrada >), IG# (< número do grupo de entrada >)
OT# (< número de saída geral >), OGH# (< número do grupo
de saída >), OG# (< número do grupo de saída >)
SIN # ( < específico número de entrada > )
SOUT # ( < específico número de saída > )
Número de endereçamento do sinal de entrada:
IN# (xx) = 1; IGH# ( xx ) = 4 ( por grupo );
IGH#(1) IGH#(2)
IG#(1)
OGH#(1) OGH#(2)
OG#(1)
IGH#(xx) e OGH#(xx) não são submetidos para checar
paridade. Somente a especificação binária é permitida
SENAI 75
Robótica
AOUT
função Saindo a tensão especificada para o propósito geral, porta
de saída analógica
formato AO# (< número da porta de saída >)
< tensão de saída > -14.1 - +14.0
exemplo
AOUT AO # (2) 12.7
Instruções de controle
JUMP
função Pula para faixa especificada ou trabalho
formato < número da faixa >, JOB: < nome do trabalho >, IG# (<
número do grupo de entrada >), B < número da variável >,
I < número da variável >, D < número da variável >,
IF declaração
exemplo
JUMP JOB: TEST1 IF IN # (14) = OFF
*LABEL
função Indica o destino do “JUMP”
formato < destino do “jump” > 8 caracteres ou
sem
exemplo
*123
CALL
função Chama o trabalho especificado
formato JOB: < nome do trabalho >,
IG# (< número do grupo de entrada >),
B < número da variável >, I < número da variável >,
D < número da variável >,
IF declaração
exemplo CALL JOB: TEST1 IF IN # (24) = ON
CALL IG # (2)
( o trabalho é chamado pelo padrão do sinal de entrada,.
exemplo, job 0 não pode ser chamado.)
Para maiores detalhes de checagem de paridade, consultar o
capítulo 10 “parâmetros “do “manual das funções user”.
RET
função Retorno para o trabalho chamado
formato IF declaração
exemplo
RET IF IN # (12) = OFF
76 SENAI
Robótica
END
função Declarar o fim do trabalho
formato
exemplo
END
NOP
função Sem operação.
formato
exemplo
NOP
TIMER
função Parada pelo tempo especificado.
formato T = < tempo ( seg. ) > T: 0.01 – 655.35
exemplo
TIME T = 12.5
CWAIT
função Aguardando a execução de uma instrução de movimento.
formato
exemplo
CWAIT
IF
declaração
função Avalia a condição especificada e faz um julgamento.
Conseqüentemente. descreve, após uma instrução, tal
como especificado, certa ação.
Formato: < item 1 > =, <>,<=,>=,<,> < item 2 >
formato < item 1 >
< item 2 >
exemplo
JUMP *12 IF IN # (12) = OFF
JUMP
função Pula para faixa especificada ou trabalho
formato < número da faixa >, JOB: < nome do trabalho >, IG# (<
número do grupo de entrada >), B < número da variável >,
I < número da variável >, D < número da variável >.
IF estado.
exemplo
JUMP JOB: TEST1 IF IN # (14) = OFF
SENAI 77
Robótica
Instruções de mudanças
SFTON
função Inicia uma operação de mudança
formato P < número da variável >, BF, RF, TF, BF: coord. de base
UF # (< número do sistema de coordenada de RF: coord. do robô
uso >), TF: coord. da
EX < número da variável > ferramenta
UF: coord. de uso
exemplo
SFTON P001 UF # (1)
SFTOF
função Termina uma operação de mudança
formato
exemplo
SFTOF
MSHIFT
função Obtém o valor da mudança paralela entre a posição de
referência e a posição da mudança, marcada pelo
elementos do sistema de coordenada especificado,
considerando o deslocamento cartesiano e a mudança
de postura. Armazena os valores obtidos na posição
da variável especificada.
formato PX ( numero da variável), formata a mudança do
valor ( x, y, z )
sistema de
BF: coord. de base coordenada acordado
RF: coord. do robô para o qual a mudança
TF: coord. de ferramenta do valor será
UF # : coord. de uso ( UF # 1 – UF # 24 ) convertido.
MTF: coord. De ferramenta para o mestre
78 SENAI
Robótica
Instruções de operações
ADD
função Soma dados 1 e dados 2, e armazena o resultado em
dados 1
Formato: ADD < dados 1> < dados 2 >
formato Dados 1 Dados 1 devem
sempre ser uma
Dados 2 variável.
exemplo
ADD I012 I013
SUB
função Subtrai dados 2 de dados 1e armazena o resultado em
dados1.
Formato: SUB < dados 1> < dados 2 >
formato Dados 1 Dados 1 devem
sempre ser uma
Dados 2 variável.
exemplo
SUB I012 I013
MUL
função Multiplica dados 1 por dados2, e armazena o resultado no
dados 1.
Formato: MUL < dados 1> < dados 2 >
Dados 1 pode ser um elemento na posição variável
Pxxx (0): todos dados do eixo, Pxxx (1): dados eixo X
Pxxx(2): dados eixo Y, Pxxx(3): dados do eixo Z,
Pxxx(4): dados do eixo Tx, Pxxx(5): dados do eixo Ty,
Pxxx(6): dados do eixo Tz
formato Dados 1 Dados 1 devem
sempre ser uma
Dados 2 variável.
exemplo
MUL P000(3) 2 ( multiplica o dados do eixo z por 2)
SENAI 79
Robótica
DIV
função Divide dados 1 por dados2 e armazena o resultado em
dados 1
Formato: MUL < dados 1> < dados 2 >
Dados 1 pode ser um elemento na posição variável.
Pxxx (0): todos dados do eixo, Pxxx (1): dados eixo X
Pxxx(2): dados eixo Y, Pxxx(3): dados do eixo Z.
Pxxx(4): dados do eixo Tx, Pxxx(5): dados do eixo Ty.
Pxxx(6): dados do eixo Tz
formato Dados 1 Dados 1 devem
sempre ser uma
Dados 2 variável
exemplo DIV I012 I013
DIV P000(3) 2 ( divide os dados do eixo z por 2)
INC
função Incrementa o valor da variável especificada por 1.
formato B < número da variável >, I < número da variável >
exemplo INC I43
DEC
função Decrementa o valor da variável especificada por 1
formato B < número da variável >, I < número da variável >
exemplo DEC I43
AND
função obtém o E do dados 1 e dados 2, e armazena o resultado
no dados 1.
Formato: AND < dados1 > < dados 2 >
formato Dados 1 B < número da variável >
Dados 2 B < número da variável >
exemplo AND B12 B20
OR
função Obtém o OU dos dados 1 e dados 2 , e armazena o
resultado em dados 1.
Formato: OR < dados1 > < dados 2 >
formato Dados 1 B < número da variável >
Dados 2 B < número da variável >
exemplo OR B12 B20
80 SENAI
Robótica
NOT
função Obtém o NÃO dos dados 1 e dados 2 e armazena o
resultado em dados 1.
Formato: NOT < dados1 > < dados 2 >
formato Dados 1 B < número da variável >
Dados 2 B < número da variável >
exemplo OR B12 B20
XOR
função Obtém o exclusivo OU dos dados 1 e dados 2 , e
armazena o resultado em dados 1.
Formato: XOR < dados1 > < dados 2 >
formato Dados 1 B < número da variável >
Dados 2 B < número da variável >
exemplo XOR B12 B20
SET
função ajusta dados 2 para dados 1.
Formato: SET < dados1 > < dados 2 >
formato Dados 1 Dados 1 deve
sempre ser uma
Dados 2 variável
exemplo SET I12 I20
SET P000 P001
SETE
função Ajusta dados para um elemento na posição da variável.
formato P <número da variável > (< número do elemento>),
BP < número da variável > (< número do elemento>),
EX < número da variável > ( < número do elemento >)
D < número da variável > < dupla posição interage o tipo
de constante >
exemplo SETE P12(3) D05
GETE
função extrai um elemento na posição da variável
formato P <número da variável > (< número do elemento>),
BP < número da variável > (< número do elemento>),
EX < número da variável > ( < número do elemento >)
D < número da variável > < dupla posição interage o tipo
de constante >
exemplo GETE D06 P012
SENAI 81
Robótica
GETS
função Ajusta uma situação da variável para uma variável
específica.
formato B < número da variável >, I < numero da variável > Dados 1 devem
R < número da variável >, PX < numero da variável > sempre ser uma
variável.
$B < número da variável >, $I < número da variável >
$R < número da variável >, $PX < número da variável > Situação da variável
$D < número da variável >
exemplo GETS B000 $ B000
GETS I001 $ I(1)
GETS PX003 $ PX001
CNVRT
função Converte a posição da variável ( dados 2 ) para uma
posição da variável do sistema de coordenada
especificado, e armazena a variável convertida em
dados 1.
Formato: CNVRT <dados 1> <dados 2 > <sistema de
coord.>
formato Dados 1 PX <número da variável >
Dados 2 PX <número da variável >
BF: coordenada. da base
BF, RF, UF # (<número do sistema de coord. em uso > ), RF: coordenada. do robô
MTF UF: coordenada de uso
MTF: coordenada. de
movimento para o mestre
exemplo CNVRT PX000 PX001 BF
CNVRT LPX000 LPX001 MTF
82 SENAI
Robótica
CLEAR
função Começando com o número da variável no dados 1,
limpa ( ajusta para zero ) muitas variáveis especificadas
por um número no dados 2.
Formato: CLEAR < dados1 > < dados 2 >
formato Dados 1
B <número da variável >, I < número da variável >,
D < número da variável >, R < número da variável >
Dados 2 TODAS: limpa as
< número das variáveis >, TODAS, ACUMULADO variáveis do número
das variáveis em
dados 1 e todos os
números das variáveis,
como seguem.
ACUMULADO: limpa
todas as variáveis no
trabalho, chamando
acumulado.
exemplo CLEAR B000 ALL
CLEAR STACK
SIN
função Obtém o seno do dados 2 e armazena o resultado em
dados 1 .
Formato: SIN <dados 1 > < dados 2 >
formato Dados 1 Dados 1 devem
R < número da variável > sempre ser um tipo de
real de variável.
Dados 2
< constante >,R < número das variáveis >
exemplo SIN R000 R001 ( ajusta o seno de R001 para R000. )
COS
função Obtém o coseno do dados 2 e armazena o resultado em
dados 1.
Formato: COS <dados 1 > < dados 2 >
formato Dados 1 Dados 1 devem
R < número da variável > sempre ser um tipo de
real de variável.
Dados 2
< constante >,R < número das variáveis >
exemplo COS R000 R001 ( ajusta o coseno de R001 para R000)
SENAI 83
Robótica
ATAN
função Obtém o arco tangente do dados 2 e armazena o
resultado no dados 1 .
Formato: ATAN <dados 1 > < dados 2 >
formato Dados 1 Dados 1 devem
R < número da variável > sempre ser um tipo de
real de variável.
Dados 2
< constante >,R < número das variáveis >
exemplo ATAN R000 R001 ( ajusta o arco tangente de R001 para
R000. )
SQRT
função Obtém a raiz quadrada do dados 2 e armazena o
resultado em dados 1.
Formato: SQRT <dados 1 > < dados 2 >
formato Dados 1 Dados 1 devem
R < número da variável > sempre ser um tipo de
real de variável.
Dados 2
< constante >,R < número das variáveis >
exemplo SQRT R000 R001 ( ajusta a raiz quadrada de R001
para R000. )
84 SENAI
Robô
Mitsubishi
Robótica
Funções básicas
POWER: led amarelo que acende quando o controlador é ligado. O fato de não acender após
ligar a chave pode indicar a queima do fusível de proteção localizado atrás do painel.
EMG. STOP: Esta é uma chave do tipo pushbutton. Quando ela é acionada, os motores são
desligados e os freios acionados, provocando uma parada imediata do robô. Ao mesmo tempo,
o led indicador de erro pisca no painel frontal do controlador.
ERROR: O acionamento deste led indica a existência de erro no sistema. Uma campainha
também é acionada para indicar sonoramente o erro.
EXECUTE: Este led permanece aceso sempre que um comando esta sendo executado ou em
todo o momento que um programa estiver sendo executado.
STOP: Pára a execução de um programa. Quando este botão é pressionado, o robô termina de
executar o comando corrente antes de parar.
RESET: quando esta chave é pressionada o programa retorna ao seu início e, se algum erro
ocorreu, o led de erro é apagado.
ST1: Esta chave seleciona o modo de controle do robô, ou seja, se ele será comandado pelo
controlador (para cima) ou pelo computador(para baixo).
ST2: Esta chave faz a transferência dos dados armazenados na EPROM para a memória RAM
do controlador quando este é ligado. Quando esta chave estiver para cima, os dados são
transferidos, do contrário, quando ela estiver para baixo os dados da EPROM não serão
transferidos para a memória RAM.
Obs: os programas que serão executados deverão estar na memória RAM.
Teach Box
ON/OFF: esta chave serve para habilitar o comando do robô através do teach box. Devemos
desligá-la quando a operação for controlada pelo computador. Ela também pode ser utilizada
para apagar um comando errado digitado através do teach box.
INC + ENT: este comando incrementa a posição atual de um e move o robô para posição
incrementada, ou seja, se quiser rodar uma seqüência de comandos gravados é só apertar
essas teclas várias vezes que o robô percorrerá posição por posição.
DEC + ENT: esta função é o inverso da função descrita anteriormente INC + ENT.
SENAI 87
Robótica
PS + NÚMERO + ENT: grava a posição atual do robô no endereço de memória definido pelo
número indicado. Se duas posições forem gravadas no mesmo endereço, a última prevalecerá.
ORG + ENT: leva o robô para uma posição de referência (origem) no plano cartesiano.
MOV + NÚMERO + ENT: move a garra para uma posição especificada. A velocidade do
deslocamento é equivalente a SP4.
STEP + NÚMERO + ENT: executa o programa passo a passo iniciando pelo número da linha
especificada. Para que um programa seja executado seqüencialmente de um passo para outro
é só repetir a seqüência dos botões, não sendo necessário digitar o número.
PTP: seleciona a operação do robô através do deslocamento independente dos 5 eixos (JOG).
TOOL: seleciona a operação do robô para que os deslocamentos sejam realizados em função
da garra.
X+, X-, Y+, Y-, Z+ E Z-: movimentam a extremidade final do braço do robô no sentido dos eixos
X, Y e Z, respectivamente, quando o robô se encontra em coordenada cartesiana.
B+, B-, S+, S-, E+, E-, P+, P-, R+ E R-: movimentam os respectivos eixos do robô
independentemente, quando este se encontra em coordenada jog.
A tabela abaixo apresenta os comandos que devem ser utilizados nos programas criados
através do computador e que correspondem a cada tecla do teach box.
88 SENAI
Robótica
Modos de controle
Este modo permite que um computador execute comandos do robô diretamente, escreva e
transmita um programa, e inicie um programa transferido para memória RAM do controlador.
Nota: O teach box deve estar desligado quando o robô for operado neste modo.
Nota: Os comandos seqüencialmente transmitidos são executados um a um, sendo assim eles
não constituirão um programa gravado dentro do controlador.
10 MO 1
O número 10 transmitido serve para indicar o número da linha que indicará a ordem de
armazenamento do programa na memória da mesma maneira que é feita nos programas do
torno CNC. O programa será executado em ordem numérica das linhas. O número de linhas vai
de 1 até 2048.
PD 10, 0, 0, 20, 0, 0
PD 20, 0, 0, 30, 0, 0
30 SP 7
40 MA 1, 10, O
50 MO 1, O
60 GC 30 mm
20 mm
70 MA 1, 10, C
80 MA 2, 20, C
90 MO 2, C Posição 1 Posição 2
100 GO
110 MA 2, 20, O
120 GT 40
SENAI 89
Robótica
Editando um programa
Para se criar um programa é necessário primeiramente gravar as posições do robô. Para isso,
siga os seguintes passos:
Uma vez que as posições já se encontram gravadas, é hora de fazer o programa para utilizá-
las. Neste caso:
90 SENAI
Robótica
Comandos Mitsubishi
Nas tabelas a seguir são apresentados os comandos para programação do robô Mitsubishi
junto com uma breve descrição das suas respectivas funções.
SENAI 91
Robótica
1≤ a1, a2 ≤ 629
9 Move MO a [O/C] Moves hand end to position (a). Yes O: Hand opened;
C: Hand Closed;
Moves hand end to a position
Move whose coordinates (position
10 MP x, y, z, p, r No
Position and angle) are specified as x, y, z,
p, and r.
Moves robot to position (a) 1≤ a ≤ 629
Move through n intermediate points 1≤ n ≤ 99
11 MS a, n [O/C] Yes
Straight on a straight line. O: Hand opened;
C: Hand Closed;
Moves hand end from the current
position to a position 1≤ a≤ 629
12 Move Tool MT a, b [O/C] away from a specified position Yes O: Hand opened;
(a) in incremental distance b in C: Hand Closed;
the tool direction.
13 Nest NT Returns robot to mechanical origin. Yes
Moves robot to the reference
14 Origin OG position in the cartesian coordinate Yes
system.
Defines the number of grid
Pallet 1≤ i ≤ 9
15 PA i, j, k points (j, k) in the column and Yes
Assign 1≤ j, k ≤ 255
row directions for pallet (i).
a1 ≤ a2
16 Position PC a1 [a2] Clears all position data from No 1≤ a1, a2 ≤ 629
Clear position a1 to a2. (or a1 =0);
92 SENAI
Robótica
Decrement
27 DC a Decrements counter (a) by 1. Yes 1≤ a ≤ 99
Counter
SENAI 93
Robótica
94 SENAI
Robótica
1≤ a1 ≤ 99
42 Set Counter SC a1 [a2] Loads (a2) into counter (a1). Yes
-32767 ≤a2 ≤ 32767
(-32767) (+32767)
Causes a jump to occur to line
0≤ a1 ≤ 255 (dec.)
SM a1 (or &b), number (a2) if externaI input data
43 If Smaller Yes 0≤ b≤ &FF (Hex.)
a2 or counter data is smaller than a1
(&8001) (&7FFF)
(or &b).
1≤a2 ≤ 2048
SENAI 95
Robótica
-7≤ a ≤ +7
Causes a jump to occur to line number
(-15) (+15).
53 Test Bit TB a1, a2 a2 by means of bit (a1) in external Yes
+: ON, -:OFF
input terminal.
1≤ a2 ≤ 2048
Instruções Diversas
96 SENAI
Robótica
Exemplos de programas
SENAI 97
Robótica
SUBROTINAS
…
198 OB -0
199 GT 25 Pula para linha 25
…
…
800 OB +7 Liga o LED 8 indicando início do sub-programa 8
805 MO 80 Executa o sub-programa 8
…
…
898 OB -7
899 GT 25 Pula para linha 25
Posições usadas
98 SENAI
Robótica
Contadores usados
Programas usados
Sub-programas usados
SENAI 99
Robótica
100 SENAI
Robótica
Bibliografia
“Robotics of Engineers”
KOREN, Yoram. McGraw – Hill, New York.
Apostila de Robótica
Educação Profissional Técnica Mecatrônica
SENAI
SENAI 101