Você está na página 1de 27

Introduo ao RAPID

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.

ABB, S.A. Fevereiro 2002

ABB, S.A. Estrada Casal do Canas, Edificio ABB 2720-092 Amadora

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

3. Vrias Instrues 4. Ajuste de Movimentos 5. Movimentao


5.1 Princpios de Programao

6. Sinais de Entrada e Sada


6.1 Princpios de Programao

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

2 Controle do Fluxo do Programa


Normalmente o programa executado seqencialmente, isto , instruo por instruo. Algumas vezes, instrues que interrompem esta seqncia e chamam outras instues so necessrias para o tratamento de diferentes situaes que podem ocorrer durante a execuo.

2.1 Princpios de programao


O fluxo do programa pode ser controlado de acordo com cinco princpios diferentes: chamada de outra rotina (procedimento) e, quando a rotina tiver sido executada, a execuo continua a partir da instruo que chamou a rotina. execuo de instrues diferentes dependendo se uma dada condio tiver sido ou no satisfeita. repetio de uma seqncia de instrues um certo nmero de vezes ou at que uma dada condio seja satisfeita. ida para uma etiqueta (label) dentro da mesma rotina. parada da execuo do programa.

ProcCall Chama uma nova rotina


Uma chamada de rotina usada para transferir a execuo do programa para outra rotina. Quando a rotina foi completamente executada, a execuo do programa continua com a instruo seguinte a chamada da rotina. possvel enviar um nmero de argumentos para a nova rotina. Estes controlam o comportamento da rotina e torna possvel que a mesma rotina seja usada para diversas tarefas.

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

Compact IF Se uma condio alcanada, ento... (uma instruo)


Compact IF usada somente quando uma nica instruo executada se a dada condio alcanada. Quando instrues diferentes so executadas, dependendo se a condio especificada alcanada ou no, a instruo IF usada.

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.

IF Se uma condio satisfeita, ento ...; do contrrio ...


IF usado quando instrues diferentes so usadas dependendo se a condio alcanada ou no.

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

FOR Repete por um certo nmero de vezes


FOR usado quando uma ou vrias instrues so repetidas um nmero de vezes. Se as instrues so repetidas contanto que uma dada condio encontrada, a instruo WHILE usada.

Exemplo
FOR i FROM 1 TO 10 DO routine1; ENDFOR Repete a rotina 10 vezes.

WHILE Repetir enquanto ...


WHILE usado quando um nmero de instrues devem ser repetidas enquanto uma condio satisfeita. Se for possvel determinar previamente o nmero de repeties, a instruo FOR pode ser usada.

Exemplo
WHILE reg1 < reg2 DO ... reg1 := reg1 +1; ENDWHILE Repete as instrues no ciclo WHILE enquanto reg1 < reg2.

TEST Dependendo do valor de uma expresso ...


TEST usado quando diferentes instrues devem ser executadas dependendo do valor de uma expresso ou dado. Se no h muitas alternativas, a instruo IF..ELSE tambm pode ser usada.

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.

GOTO Vai para uma nova instruo


GOTO usado para transferir a execuo do programa para outra linha (um label) dentro da mesma rotina.

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.

Stop Parar a execuo do programa


Stop usado para parar temporariamente a execuo do programa.

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.

Break Parada na execuo do programa


Break usado para fazer uma parada imediata na execuo do programa para efeito de anlise (de bug) do programa RAPID.

Exemplo
.. Break; ... Para a execuo do programa e possvel analisar variveis, valores etc. para efeitos de anlise (de bug).

EXIT Termina a execuo do programa


EXIT usado para terminar a execuo do programa. Reincio do programa ser ento bloqueado, i.e. o programa somente pode ser reiniciado pela primeira instruo da rotina principal (se o ponto de partida no foi movido manualmente). A instruo EXIT deve ser usada quando ocorre um erro fatal ou quando a execuo do programa parada permanentemente. A instruo Stop usada para parar temporariamente a execuo do programa.

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.

WaitTime Espera um tempo determinado


Wai t Ti me usado para esperar um tempo determinado. Esta instruo tambm pode ser usada para fazer com que o rob e eixos externos fiquem parados.

Exemplo
WaitTime 0.5; A execuo do programa espera 0.5 segundo.

WaitUntil Espera uma condio ser satisfeita


WaitUntil usado para esperar at que uma condio lgica seja satisfeita; por exemplo, pode esperar at que uma ou mais entradas sejam ligadas.

Introduo ao RAPID 8

Exemplo
WaitUntil di4 = 1; A execuo do programa continua somente aps a entrada di4 ser ligada.

WaitDI Espera um sinal de entrada digital


WaitDI (Wait Digital Input) usado para esperar at que um sinal de entrada digital seja ligado.

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.

WaitDOEspera at que um sinal de sada digital seja ligado


WaitDO (Wait Digital Output) usado para esperar at que um sinal de sada digital seja ligado.

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

VelSet Muda a velocidade programada


Vel S e t usado para aumentar ou diminuir a velocidade programada para todas as instrues de posicionamento subsequentes. Esta instruo tambm usada para maximizar a velocidade.

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.

AccSet Reduz a acelerao


AccSet usado quando manipula-se cargas frgeis. Permite aceleraes e desaceleraes lentas, que resulta em suaves movimentos do rob.

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.

EOffsOn Ativa o offset para eixos externos


EOffsOn (External Offset On) usado para definir e ativar o offset para eixos externos usando duas posies.

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.

EOffsSet Ativa o offset para eixos externos usando um valor


EOffsSet (External Offset Set) usado para definir e ativar o offset para eixos externos usando valores.

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.

EOffsOff Desativa o offset para eixos externos


EOffsOff (External Offset Off) usado para desativar o offset para eixos externos. O offset para eixos externos ativado pela instruo EOffsSet ou EOffsOn e se aplica a todos os movimentos at que algum outro offset para eixos externos seja ativado ou at que o offset para eixos externos seja desativado.

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.

PDispOn Ativa deslocamento de programa


PDispOn (Program Displacement On) usado para definir e ativar um deslocamento de programa usando duas posies do rob. Deslocamento de programa usado, por exemplo, aps uma busca ter sido realizada, ou quando padres de movimento similares so repetidos em diferentes lugares do programa.

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

PDispSet Ativa deslocamento de programa usando um valor


PDispSet (Program Displacement Set) usado para definir e ativar um deslocamento de programa usando valores. Deslocamento de programa usado, por exemplo, quando padres de movimento similares so repetidos em vrios lugares diferentes no programa.

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.

PDispOff Desativa deslocamento de programa


PDispOff (Program Displacement Off) usado para desativar um deslocamento de programa. Deslocamento de programa ativado pela instruo PDispSet ou PDispOn e se aplica a todos os movimentos at ser desativado ou at que outro deslocamento de programa seja ativado .

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.

5.1 Princpios de programao


As caractersticas bsicas dos movimentos, tais como o tipo da trajetria, so especificadas pela escolha da instruo de posicionamento apropriada. As caractersticas restantes so especificadas pela definio de dados que so argumentos da instruo: Dados de posicionamento (posio final para eixos externos e do rob) Dados de velocidade (velocidade desejada) Dados de zona (preciso do posicionamento) Dados de ferramenta (por exemplo, a posio do TCP) Dados de objeto de trabalho (por exemplo, o sistema de coordenadas atual)

MoveAbsJ Move o rob para posio absoluta de juno


MoveAbsJ (Move Absolute Joint) usado para mover o rob para uma posio absoluta, definida nas posies dos eixos. Esta instruo somente precisa ser usada quando: - o ponto de parada um nico ponto - para posies ambguas no IRB 6400C, ex. para movimentos com a ferramenta sobre o rob. A posio final do rob, durante o movimento com MoveAbsJ, no afetado pela ferramenta e objeto de trabalho nem pelo deslocamento de programa. Entretanto, o rob usa aqueles dados para calcular a carga, velocidade TCP, e o trajeto de canto. As mesmas ferramentas podem ser usadas como instrues de movimentos adjacentes. O rob e eixos externos so movidos para a posio de destino ao longo de uma trajetria no linear. Todos os eixos alcanam a posio de destino ao mesmo tempo.

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.

MoveC Move o rob circularmente


MoveC usado para mover o ponto central da ferramenta (TCP) circularmente para um certo destino. Durante o movimento, a orientao normalmente permanece relativo ao crculo.

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.

MoveJ Move o rob com movimento eixo a eixo


MoveJ usado para mover o rob rapidamente de um ponto a outro quando o movimento no tem que ser em linha reta. O rob e eixos externos movem-se ao ponto de destino ao longo de uma trajetria no linear. Todos os eixos alcanam o ponto de destino ao mesmo tempo.

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

MoveL Move o rob linearmente


MoveL usado para mover o ponto central da ferramenta (TCP) linearmente para um dado destino. Quando o TCP tiver de permanecer estacionrio, esta instruo pode tambm ser usada para reorientar a ferramenta.

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.

Offs Desloca uma posio do rob


Offs usado para adicionar um offset a uma posio do rob.

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.

ActUnit Ativa uma unidade mecnica


ActUnit usada para ativar uma unidade mecnica. Pode ser usada para determinar qual unidade a ser ativada quando, por exemplo, unidades de drive comuns so usadas.

Exemplo
ActUnit orbit_a; Ativao do orbit_a da unidade mecnica.

DeactUnit Desativa uma unidade mecnica


DeactUnit usada para desativar uma unidade mecnica. Tambm pode ser usada para determinar qual unidade deve ser ativada quando, por exemplo, unidades de drive comum so usadas.

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

6 Sinais de Entrada e Sada


O rob pode ser equipado com um nmero de sinais digitais e analgicos do usurio que podem ser lidos e mudados a partir do programa.

6.1 Princpios de programao


Os nomes dos sinais so definidos nos parmetros do sistema e, usando estes nomes, eles podem ser lidos pelo programa. Os valores simblicos para sinais digitais tambm so definidos nos parmetros do sistema. Valores simblicos, como ligado/desligado ou aberto/fechado, podem ser usados em vez de 1/0 para tornar o programa mais fcil de ler. O valor de um sinal analgico ou de um grupo de sinais digitais especificado por um valor numrico.

Set Liga um sinal de sada digital


Set usado para levar o valor de um sinal digital para um.

Exemplos
Set do15; O sinal do15 levado para 1. Set weldon; O sinal weldon levado para 1.

Reset Desliga um sinal de sada digital


Reset usado para levar o valor de um sinal de sada digital para zero.

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.

7.1 Princpios de programao


A deciso de escolher entre usar a informao baseada em caracteres ou a informao binria depende de como o equipamento com o qual o rob se comunica trata a informao. Um arquivo, por exemplo, pode possuir dados que so armazenados de forma binria ou baseado em caracteres. Se a comunicao for necessria em ambas as direes simultaneamente, a transmisso binria ser necessria. Cada canal serial ou arquivo deve primeiramente ser aberto. Fazendo-se isso, o canal/arquivo recebe um nome que usado como uma referncia para leitura/escrita. A unidade de programao pode ser usada todas as vezes e no precisa ser aberta. Ambos texto e valores de certos tipos de dados podem ser impressos.

TPErase Apaga texto impresso na unidade de programao


TPErase (Teach Pendant Erase) usado para limpar o display da unidade de programao.

Exemplo
TPErase; TPWrite "Execuo iniciada"; O display da unidade de programao apagado antes da Execuo iniciada ser escrita.

Introduo ao RAPID 20

TPWrite Escreve na unidade de programao


TPWrite (Teach Pendant Write) usado para escrever um texto na unidade de programao. Tambm pode ser escrito um valor de um certo dado.

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.

TPReadFK L teclas de funo


TPReadFK (Teach Pendant Read Function Key) usado para escrever um texto acima das teclas de funo e para descobrir qual tecla est pressionada.

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

8 Sistema & Tempo


As instrues do sistema e de tempo possibilitam ao usurio medir, inspecionar e gravar o tempo.

8.1 Princpios de programao


As instrues do relgio (clock) possibilitam ao usurio a utilizao do relgio para funcionar como um monitorador para paradas. Deste modo, o programa do rob pode ser usado para temporizar qualquer evento desejado. A hora e a data atuais podem ser recuperadas em texto (string). Este pode ser mostrado ao operador na unidade de programao ou ser usado em arquivos de registro. Tambm possvel recuperar componentes da hora atual do sistema como um valor numrico. Isto possibilita ao programa do rob a executar uma ao em uma certa hora ou em um certo dia da semana.

ClkReset Zera o cronmetro


ClkReset usado para zerar o relgio que funciona como cronmetro. Esta funo pode ser usada antes de usar o relgio para ter certeza que ele est no 0.

Exemplo
ClkReset clock1; O relgio clock1 zerado.

ClkStart Liga o cronmetro


ClkStart usado para ligar o cronmetro.

Exemplo
ClkStart clock1; O relgio clock1 ligado.

ClkStop Parar o cronmetro


ClkStop usado para parar o cronmetro.

Introduo ao RAPID 23

Exemplo
ClkStop clock1; O relgio clock1 parado.

ClkRead L um relgio usado para temporizao


ClkRead usado para ler um relgio que funciona como um cronmetro usado para temporizao.

Exemplo
reg1:=ClkRead(clock1); O relgio clock1 lido e o tempo, em segundos, armazenado na varivel reg1.

Introduo ao RAPID 24