Escolar Documentos
Profissional Documentos
Cultura Documentos
m019 - Manual Rapid
m019 - Manual Rapid
Robtica
ndice
0. Prefcio
1. A Estrutura da Linguagem
3
3
3. Vrias Instrues
4. Ajuste de Movimentos
11
5. Movimentao
5.1 Princpios de Programao
15
15
19
19
7. Comunicao
7.1 Princpios de Programao
8. Sistema e Tempo
8.1 Princpios de Programao
20
20
23
23
Introduo ao RAPID 1
Prefcio
Pretende-se com este manual introduzir sucintamente a linguagem de programao
utilizada nos sistemas robotizados ABB gerao S4.
Destinado-se essencialmente a utilizadores com pouca experincia nestes sistemas,
este manual apenas um complemento documentao fornecida com o equipamento
devendo, para efeitos de anlise mais detalhada, utilizar-se a referida documentao.
ACAD
Introduo ao RAPID 1
1. A Estrutura da Linguagem
O programa constitudo por um nmero de instrues que descrevem o trabalho do
rob. Portanto, existem instrues especficas para os vrios comandos, tais como,
movimentar o rob, ligar uma sada, etc.
Introduo ao RAPID 2
Exemplos:
Weldpipe 1;
Chama a rotina weldpipe1.
errormessage;
Set do1;
PROC errormessage()
TPWrite "ERROR";
ENDPROC
A rotina errormessage chamada. Quando esta rotina est pronta, a execuo do
programa retorna para a instruo seguinte do chamado da rotina, Set do1.
Introduo ao RAPID 3
Exemplos
IF reg1 > 5 GOTO next;
Se reg1 maior que 5, a execuo do programa continua para o label next.
IF counter > 10 Set do1;
O sinal do1 ligado se counter > 10.
Exemplos
IF reg1 > 5 THEN
Set do1;
Set do2;
ENDIF
Os sinais do1 e do2 so ligados somente se reg1 maior que 5.
IF reg1 > 5 THEN
Set do1;
Set do2;
ELSE
Reset do1;
Reset do2;
ENDIF
Os sinais do1 e do2 so ligados ou desligados dependendo se reg1 maior que 5 ou
no.
Introduo ao RAPID 4
Exemplo
FOR i FROM 1 TO 10 DO
routine1;
ENDFOR
Repete a rotina 10 vezes.
Exemplo
WHILE reg1 < reg2 DO
...
reg1 := reg1 +1;
ENDWHILE
Repete as instrues no ciclo WHILE enquanto reg1 < reg2.
Exemplo
TEST reg1
CASE 1,2,3 :
routine1;
CASE 4 :
routine2;
Introduo ao RAPID 5
DEFAULT :
TPWrite "Escolha ilegal";
Stop;
ENDTEST
Instrues diferentes so executadas dependendo do valor de reg1. Se o valor for
1-3 routine1 executada. Se o valor for 4, a routine2 executada. Caso contrrio,
uma mensagem de erro impressa e a execuo pra.
Exemplos
GOTO next;
.
next:
Execuo do programa continua com a instruo next.
reg1 := 1;
next:
reg1 := reg1 + 1;
IF reg1<=5 GOTO next;
O loop do programa next executado por cinco vezes.
IF reg1>100 GOTO highvalue;
lowvalue:
.
GOTO ready;
highvalue:
.
ready:
Se reg1 maior que 100, o loop de programa highvalue executado; de outra forma o
loop lowvalue executado.
Introduo ao RAPID 6
Exemplo
TPWrite "A via para o computador est danificada";
Stop;
A execuo do programa pra aps uma mensagem ter sido escrita na unidade de
programao.
Exemplo
..
Break;
...
Para a execuo do programa e possvel analisar variveis, valores etc. para efeitos
de anlise (de bug).
Exemplo
ErrWrite "Erro fatal","Estado ilegal";
EXIT;
A execuo do programa pra e no pode ser reiniciada daquela posio do programa.
Introduo ao RAPID 7
3 Vrias Instrues
Vrias instrues so usadas para
atribuir valores aos dados,
esperar um certo perodo de tempo at que uma condio ser satisfeita,
inserir um comentrio no programa.
:= Designa um valor
A instruo := usada para designar um novo valor ao dado. Este valor pode ser
desde um valor constante at uma expresso aritmtica, ex. reg1+5*reg3.
Exemplos
reg1 := 5;
Para reg1 designado o valor 5.
reg1 := reg2 - reg3;
Para reg1 designado o valor do clculo reg2-reg3.
counter := counter + 1;
counter aumentado em um.
Exemplo
WaitTime 0.5;
A execuo do programa espera 0.5 segundo.
Introduo ao RAPID 8
Exemplo
WaitUntil di4 = 1;
A execuo do programa continua somente aps a entrada di4 ser ligada.
Exemplo
WaitDI di4, 1;
A execuo do programa continua somente aps a entrada di4 ser ligada.
WaitDI grip_status, 0;
A execuo do programa continua somente aps a entrada grip_status ser desli-gada.
Exemplo
WaitDO do4, 1;
A execuo do programa continua somente aps a entrada do4 ser ligada.
WaitDO grip_status, 0;
A execuo do programa continua somente aps a sada grip_status ser religada.
Comment Comentrio
Comment usado somente para tornar o programa mais fcil de entender. No tem
efeito na execuo do programa.
Introduo ao RAPID 9
Exemplo
! Vai para a posio acima do palete
MoveL p100, v500, z20, tool1;
inserido um comentrio no programa para torn-lo mais fcil de entender.
Introduo ao RAPID 10
4 Ajuste de movimentos
Algumas das caractersticas de movimento do rob so determinadas pela utilizao
de instrues lgicas que se aplicam a todos os movimentos:
Velocidade mxima e sobrevelocidade
Acelerao
Deslocamento do programa
Exemplo
VelSet 50, 800;
Todas as velocidades programadas so diminudas em 50% do valor da instruo. A
velocidade do TCP no , entretanto, permitida exceder 800 mm/s.
Exemplos
AccSet 50, 100;
A acelerao limitada em 50% do valor normal.
AccSet 100, 50;
A rampa de acelerao limitada em 50% do valor normal.
Introduo ao RAPID 11
Exemplos
MoveL p10, v500, z10, tool1;
EOffsOn \ExeP:=p10, p20;
Ativao do offset para eixos externos. Isto calculado para cada eixo baseado na
diferena entre as posies p10 e p20.
MoveL p10, v500, fine, tool1;
EOffsOn *;
Ativao do offset para eixos externos. Desde que o ponto de parada foi usado na
instruo anterior, o argumento \ExeP no tem que ser usado. O deslocamento
calculado com base na diferena entre a posio atual de cada eixo e o ponto
programado (*) gravado na instruo.
Exemplo
VAR extjoint eax_a_p100 := [100, 0, 0, 0, 0, 0];
.
EOffsSet eax_a_p100;
Ativao do offset eax_a_p100 para eixo externo, significando (fornecido que o eixo
externo a linear) que:
- O sistema de coordenada ExtOffs est deslocado 100 mm do eixo lgico a.
- Contanto que este offset seja ativado, todas as posies estaro deslocadas
100 mm na direo do eixo x.
Exemplos
EOffsOff;
Introduo ao RAPID 12
Exemplos
MoveL p10, v500, z10, tool1;
PDispOn \ExeP:=p10, p20, tool1;
Ativao de um deslocamento de programa (movimento paralelo). Este calculado
baseado em diferenas entre posies p10 e p20.
MoveL p10, v500, fine, tool1;
PDispOn *, tool1;
Ativao de um deslocamento de programa (movimento paralelo). Desde que um
ponto de parada foi usado na instruo anterior, o argumento \ExeP no precisa ser
usado. O deslocamento calculado com base na diferena entre a atual posio atual
do rob e o ponto programado (*) guardado na instruo.
PDispOn \Rot \ExeP:=p10, p20, tool1;
Ativao de um deslocamento de programa incluindo uma rotao. Este calculado
baseado em diferenas entre posies p10 e p20.
Introduo ao RAPID 13
Exemplo
VAR pose xp100 := [ [100, 0, 0], [1, 0, 0, 0] ];
.
PDispSet xp100;
Ativao do deslocamento de programa xp100 , significa que:
- O sistema de coordenada ProgDisp deslocado 100 mm do sistema de
coordenada de objeto, na direo positiva do eixo-x .
- Uma vez que, o deslocamento de programa ativado, todas as posies sero
deslocadas 100 mm na direo do eixo-x.
Exemplos
PDispOff;
Desativao de um deslocamento de programa.
MoveL p10, v500, z10, tool1;
PDispOn \ExeP:=p10, p11, tool1;
MoveL p20, v500, z10, tool1;
MoveL p30, v500, z10, tool1;
PDispOff;
MoveL p40, v500, z10, tool1;
Um deslocamento de programa definido como a diferena entre as posies p10 e
p11. Este deslocamento afeta o movimento para p20 e p30, mas no para p40.
Introduo ao RAPID 14
5 Movimentao
Os movimentos do rob so programados passo a passo, isto , mova-se a partir da
posio atual para a nova posio. A trajetria entre estas duas posies ento
calculada automaticamnte pelo rob.
Exemplos
MoveAbsJ p50, v1000, z50, tool2;
O rob com a ferramenta tool2, movido ao longo de um trajeto no -linear para uma
posio de eixo absoluta, p50, com dado de velocidade v1000 e dado de zona z50.
MoveAbsJ *, v1000\T:=5, fine, grip3;
Introduo ao RAPID 15
Exemplos
MoveC p1, p2, v500, z30, tool2;
O TCP da ferramenta, tool2, movida circularmente para a posio p2, com dado de
velocidade v500 e dado de zona z30. O crculo definido pela posio de incio, o
ponto do crculo p1 e o ponto de destino p2.
MoveC *, *, v500 \T:=5, fine, grip3;
O TCP da ferramenta, grip3, movido circularmente para um ponto fino guardado na
instruo (marcado pelo segundo *). O ponto do crculo tambm guardado na
instruo (marcado pelo primeiro *). O movimento completo leva 5 segundos.
Exemplos
MoveJ p1, vmax, z30, tool2;
O ponto central da ferramenta (TCP) da ferramenta, tool2, movido ao longo de uma
trajetria no linear para a posio, p1, com dado de velocidade vmax e dado de zona
z30.
MoveJ *, vmax \T:=5, fine, grip3;
O TCP da ferramenta, grip3, movido ao longo de uma trajetria no linear para o
ponto de parada guardado na instruo (marcado com um *). O movimento completo
leva 5 segundos.
Introduo ao RAPID 16
Exemplo
MoveL p1, v1000, z30, tool2;
O TCP da ferramenta, tool2, movido linearmente para a posio p1, com dado de
velocidade v1000 e dado de zona z30.
MoveL *, v1000\T:=5, fine, grip3;
O TCP da ferramenta, grip3, movido linearmente para um ponto fino guardado na
instruo (marcado com um *). O movimento completo leva 5 segundos.
Exemplos
MoveL Offs(p2, 0, 0, 10), v1000, z50, tool1;
O rob se move para um ponto 10 mm da posio p2 (na direo z).
p1 := Offs (p1, 5, 10, 15);
A posio do rob p1 deslocada 5 mm na direo x, 10 mm na direo y e 15 mm na
direo z.
RelToolFaz
ferramenta
um
deslocamento
relativo
para
RelTool (Relative Tool) usado para adicionar um deslocamento e/ou uma rotao,
expresso no sistema de coordenadas da ferramenta, para a posio do rob.
Exemplo
MoveL RelTool (p1, 0, 0, 100), v100, fine, tool1;
Introduo ao RAPID 17
Exemplo
ActUnit orbit_a;
Ativao do orbit_a da unidade mecnica.
Exemplos
DeactUnit orbit_a;
Desativao da unidade mecnica orbit_a.
MoveL p10, v100, fine, tool1;
DeactUnit track_motion;
MoveL p20, v100, z10, tool1;
MoveL p30, v100, fine, tool1;
ActUnit track_motion;
MoveL p40, v100, z10, tool1;
A unidade track_motion ser estacionrio quando o rob se move para p20 e p30.
Depois disso, ambos o rob e o track_motion se movero para p40.
MoveL p10, v100, fine, tool1;
DeactUnit orbit1;
ActUnit orbit2;
MoveL p20, v100, z10, tool1;
A unidade orbit1 desativada e a orbit2 ativada.
Introduo ao RAPID 18
Exemplos
Set do15;
O sinal do15 levado para 1.
Set weldon;
O sinal weldon levado para 1.
Exemplos
Reset do15;
O sinal do15 levado para 0.
Reset weld;
O sinal weld levado para 0.
Introduo ao RAPID 19
7 Comunicao
Existem quatro maneiras possveis de comunicao por meio de canais seriais:
Mensagens podem ser mostradas atravs do display da unidade de programao e
o usurio pode responder perguntas, tais como o nmero de peas a serem
processadas.
Informaes baseadas em caracteres podem ser esctitas ou lidas a partir de
arquivos de texto em um disquete. Deste modo, por exemplo, a estatstica de
produo pode ser armazenada e processada posteriormente em um PC. A
informao tambm pode ser impressa atravs de uma impressora conectada ao
rob.
Informaes binrias podem ser transferidas entre o rob e um sensor, por
exemplo.
Informaes binrias podem ser transferidas entre o rob e um sensor, por
exemplo, com um protocolo.
Exemplo
TPErase;
TPWrite "Execuo iniciada";
O display da unidade de programao apagado antes da Execuo iniciada ser
escrita.
Introduo ao RAPID 20
Exemplos
TPWrite "Execuo iniciou";
O texto Execuo iniciada escrito na unidade de programao.
TPWrite "N de peas produzidas="\Num:=reg1;
Se, por exemplo, a resposta para No. de peas produzidas=5, entra 5 em vez de reg1
na unidade de programao.
Exemplo
TPReadFK reg1, "Mais ?", stEmpty, stEmpty, stEmpty, "Sim", "No";
O texto Mais ? escrito no display da unidadede programao e as teclas de funo 4
e 5 so ativadas por meio de textos Sim e No respectivamente (veja Figura). A
execuo do programa espera at que uma das teclas de funo 4 ou 5 seja
pressionada. Em outras palavras, reg1 ser fixado em 4 ou 5 dependendo de qual das
teclas for pressionada.
Introduo ao RAPID 21
TPReadNum L
programao
um
nmero
da
unidade
de
Exemplo
TPReadNum reg1, Quantas unidades devem ser produzidas?;
O texto Quantas unidades devem ser produzidas? escrito no display da unidade de
programao. A execuo do programa espera at que um nmero seja informado
pelo teclado numrico da unidade de programao. Aquele nmero guardado em
reg1.
Introduo ao RAPID 22
Exemplo
ClkReset clock1;
O relgio clock1 zerado.
Exemplo
ClkStart clock1;
O relgio clock1 ligado.
Introduo ao RAPID 23
Exemplo
ClkStop clock1;
O relgio clock1 parado.
Exemplo
reg1:=ClkRead(clock1);
O relgio clock1 lido e o tempo, em segundos, armazenado na varivel reg1.
Introduo ao RAPID 24