Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Robtica
ABB
Introduo ao RAPID
As informaes contidas neste documento esto sujeitas a alteraes sem aviso prvio e no devero ser interpretadas como um compromisso da ABB, S.A. A ABB, S.A. No assume qualquer responsabilidade por eventuais erros que possam surgir neste documento. Em nenhum caso dever a ABB, S.A. ser responsabilizada por danos causais ou de consequncia que surjam da utilizao deste documento, ou do software e hardware aqui descritos. Este documeto ou parte dele no poder ser copiado ou reproduzido sem permisso, por escrito, da ABB, S.A. e no poder ser cedido a uma terceira parte, nem utilizado para qualquer propsito no autorizado.
Introduo ao RAPID 1
ndice
0. Prefcio 1. A Estrutura da Linguagem 2. Controle do Fluxo do Programa
2.1 Princpios de Programao 1 2
3 3 8 11 15 15 19
19
7. Comunicao
7.1 Princpios de Programao
20
20
8. Sistema e Tempo
8.1 Princpios de Programao
23
23
Introduo ao RAPID 2
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.
Existem trs tipos de rotinas procedimentos, funes e rotinas trap. um procedimento usado como um subprograma. uma funo retorna um valor de um tipo especfico e usado como um argumento de uma instruo. as rotinas trap so um meio de responder a interrupes. Uma rotina trap pode ser associada a uma interrupo especfica; p. ex. quando uma entrada for ligada, ela automaticamente executada se a interrupo em particular ocorrer. As informaes podem tambm ser armazenadas em dados (data), por exemplo, dados de ferramenta (que contem todas as informaes sobre a ferramenta, tais como, seu TCP e peso) e dados numricos (que podem ser usados, por exemplo, para contar o nmero de peas a serem processadas). Os dados so agrupados em diferentes tipos de tipos de dados (data types) que descrevem diferentes tipos de informaes, tais como ferramentas, posies e cargas. Como estes dados podem ser criados e possuirem nomes arbitrrios, no existe limite de seu nmero (exceto imposto pela memria). Estes dados podem existir tanto globalmente no programa ou localmente dentro da rotina. Existem trs de dados constantes, variveis e persistentes. uma constante representa um valor esttico e seu valor somente pode ser alterado manualmente. uma varivel pode ter seu valor alterado durante a execuo do programa. uma persistente pode ser descrita como uma varivel persistente. Quando um programa salvo, os valores de inicializao refletem os seu valores atuais.
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
A execuo do programa tambm pode ser parada usando a instruo EXIT. Entretanto, isto somente pode ser feito se a tarefa for concluda, ou se um erro fatal ocorrer, j que a execuo do programa no pode ser reiniciado com EXIT.
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
Desativao do offset para eixos externos. MoveL p10, v500, z10, tool1; EOffsOn \ExeP:=p10, p11; MoveL p20, v500, z10, tool1; MoveL p30, v500, z10, tool1; EOffsOff; MoveL p40, v500, z10, tool1; O offset definido como uma diferena entre a posio de cada eixo no p10 e p11. Este deslocamento afeta o movimento para p20 e p30,mas no para p40.
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
O rob com a ferramenta grip3, movido ao longo de um trajeto no-linear para um ponto de parada que guardado como uma posio de eixo absoluta na instruo (marcada com um *). O movimento completo dura 5 s.
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; O rob movido para uma posio que 100 mm do p1 na direo da ferra-menta.
Introduo ao RAPID 17
MoveL RelTool (p1, 0, 0, 0 \Rz:= 25), v100, fine, tool1; A ferramenta sdorer rotao 25 o em volta do seu eixo z.
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
TPReadNum (Teach Pendant Read Numerical) usado para ler um nmero da unidade de programao.
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