manual rapid

27
Introdução ao RAPID ABB Robótica

Upload: ricardo-gomes

Post on 31-Oct-2015

766 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Manual Rapid

Introdução ao RAPID

ABBRobótica

Page 2: Manual Rapid

Introdução ao RAPID

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

©ABB, S.A. Fevereiro 2002

As informações contidas neste documento estão sujeitas a alterações sem aviso prévio e nãodeverão ser interpretadas como um compromisso da ABB, S.A. A ABB, S.A. Não assume qualquer responsabilidade por eventuais erros que possam surgirneste documento. Em nenhum caso deverá a ABB, S.A. ser responsabilizada por danos causais ou deconsequência que surjam da utilização deste documento, ou do software e hardware aquidescritos. Este documeto ou parte dele não poderá ser copiado ou reproduzido sem permissão, porescrito, da ABB, S.A. e não poderá ser cedido a uma terceira parte, nem utilizado paraqualquer propósito não autorizado.

1 Introdução ao RAPID

io ABB

Page 3: Manual Rapid

Índice 0. Prefácio 1 1. A Estrutura da Linguagem 2 2. Controle do Fluxo do Programa 3 2.1 Princípios de Programação 3 3. Várias Instruções 8 4. Ajuste de Movimentos 11 5. Movimentação 15 5.1 Princípios de Programação 15 6. Sinais de Entrada e Saída 19 6.1 Princípios de Programação 19 7. Comunicação 20 7.1 Princípios de Programação 20 8. Sistema e Tempo 23 8.1 Princípios de Programação 23

Introdução ao RAPID 2

Page 4: Manual Rapid

Prefácio Pretende-se com este manual introduzir sucintamente a linguagem de programação utilizada nos sistemas robotizados ABB – geração S4. Destinado-se essencialmente a utilizadores com pouca experiência nestes sistemas, este manual é apenas um complemento à documentação fornecida com o equipamento devendo, para efeitos de análise mais detalhada, utilizar-se a referida documentação.

ACAD

Introdução ao RAPID 1

Page 5: Manual Rapid

1. A Estrutura da Linguagem O programa é constituído por um número de instruções que descrevem o trabalho do robô. Portanto, existem instruções específicas para os vários comandos, tais como, movimentar o robô, ligar uma saída, etc.

Existem três tipos de rotinas – procedimentos, funções e rotinas “trap”.

um procedimento é usado como um subprograma. uma função retorna um valor de um tipo específico e é usado como um

argumento de uma instrução. as rotinas “trap” são um meio de responder a interrupções. Uma rotina “trap”

pode ser associada a uma interrupção específica; p. ex. quando uma entrada for ligada, ela é automaticamente executada se a interrupção em particular ocorrer.

As informações podem também ser armazenadas em dados (data), por exemplo, dados de ferramenta (que contem todas as informações sobre a ferramenta, tais como, seu TCP e peso) e dados numéricos (que podem ser usados, por exemplo, para contar o número de peças a serem processadas). Os dados são agrupados em diferentes tipos de tipos de dados (data types) que descrevem diferentes tipos de informações, tais como ferramentas, posições e cargas. Como estes dados podem ser criados e possuirem nomes arbitrários, não existe limite de seu número (exceto imposto pela memória). Estes dados podem existir tanto globalmente no programa ou localmente dentro da rotina. Existem três de dados – constantes, variáveis e persistentes.

uma constante representa um valor estático e seu valor somente pode ser alterado manualmente. uma variável pode ter seu valor alterado durante a execução do programa. uma persistente pode ser descrita como uma variável “persistente”. Quando

um programa é salvo, os valores de inicialização refletem os seu valores atuais.

Introdução ao RAPID 2

Page 6: Manual Rapid

2 Controle do Fluxo do Programa Normalmente o programa é executado seqüencialmente, isto é, instrução por instrução. Algumas vezes, instruções que interrompem esta seqüência e chamam outras instuções são necessárias para o tratamento de diferentes situações que podem ocorrer durante a execução. 2.1 Princípios de programação O fluxo do programa pode ser controlado de acordo com cinco princípios diferentes:

chamada de outra rotina (procedimento) e, quando a rotina tiver sido executada, a execução continua a partir da instrução que chamou a rotina. execução de instruções diferentes dependendo se uma dada condição tiver sido

ou não satisfeita. repetição de uma seqüência de instruções um certo número de vezes ou até que

uma dada condição seja satisfeita. ida para uma etiqueta (label) dentro da mesma rotina. parada da execução do programa.

ProcCall Chama uma nova rotina Uma chamada de rotina é usada para transferir a execução do programa para outra rotina. Quando a rotina foi completamente executada, a execução do programa continua com a instrução seguinte a chamada da rotina. É possível enviar um número de argumentos para a nova rotina. Estes controlam o comportamento da rotina e torna possível 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 execução do programa retorna para a instrução seguinte do chamado da rotina, Set do1.

Introdução ao RAPID 3

Page 7: Manual Rapid

Compact IF Se uma condição é alcançada, então... (uma instrução) Compact IF é usada somente quando uma única instrução é executada se a dada condição é alcançada. Quando instruções diferentes são executadas, dependendo se a condição especificada é alcançada ou não, a instrução IF é usada. Exemplos

IF reg1 > 5 GOTO next; Se reg1 é maior que 5, a execução do programa continua para o label next.

IF counter > 10 Set do1; O sinal do1 é ligado se counter > 10.

IF Se uma condição é satisfeita, então ...; do contrário ... IF é usado quando instruções diferentes são usadas dependendo se a condição é alcançada ou não. Exemplos

IF reg1 > 5 THEN Set do1; Set do2; ENDIF

Os sinais do1 e do2 são 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 são ligados ou desligados dependendo se reg1 é maior que 5 ou não.

Introdução ao RAPID 4

Page 8: Manual Rapid

FOR Repete por um certo número de vezes FOR é usado quando uma ou várias instruções são repetidas um número de vezes. Se as instruções são repetidas contanto que uma dada condição é encontrada, a instrução WHILE é usada. Exemplo

FOR i FROM 1 TO 10 DO routine1; ENDFOR

Repete a rotina 10 vezes.

WHILE Repetir enquanto ... WHILE é usado quando um número de instruções devem ser repetidas enquanto uma condição é satisfeita. Se for possível determinar previamente o número de repetições, a instrução FOR pode ser usada. Exemplo

WHILE reg1 < reg2 DO ... reg1 := reg1 +1; ENDWHILE

Repete as instruções no ciclo WHILE enquanto reg1 < reg2.

TEST Dependendo do valor de uma expressão ... TEST é usado quando diferentes instruções devem ser executadas dependendo do valor de uma expressão ou dado. Se não há muitas alternativas, a instrução IF..ELSE também pode ser usada. Exemplo

TEST reg1

CASE 1,2,3 : routine1; CASE 4 : routine2;

Introdução ao RAPID 5

Page 9: Manual Rapid

DEFAULT : TPWrite "Escolha ilegal"; Stop; ENDTEST

Instruções diferentes são executadas dependendo do valor de reg1. Se o valor for 1-3 routine1 é executada. Se o valor for 4, a routine2 é executada. Caso contrário, uma mensagem de erro é impressa e a execução pára.

GOTO Vai para uma nova instrução GOTO é usado para transferir a execução do programa para outra linha (um label) dentro da mesma rotina. Exemplos

GOTO next; . next:

Execução do programa continua com a instrução 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 execução do programa Stop é usado para parar temporariamente a execução do programa.

Introdução ao RAPID 6

Page 10: Manual Rapid

A execução do programa também pode ser parada usando a instrução EXIT. Entretanto, isto somente pode ser feito se a tarefa for concluída, ou se um erro fatal ocorrer, já que a execução do programa não pode ser reiniciado com EXIT. Exemplo

TPWrite "A via para o computador está danificada"; Stop;

A execução do programa pára após uma mensagem ter sido escrita na unidade de programação.

Break Parada na execução do programa Break é usado para fazer uma parada imediata na execução do programa para efeito de análise (de bug) do programa RAPID. Exemplo

.. Break; ...

Para a execução do programa e é possível analisar variáveis, valores etc. para efeitos de análise (de bug).

EXIT Termina a execução do programa EXIT é usado para terminar a execução do programa. Reinício do programa será então bloqueado, i.e. o programa somente pode ser reiniciado pela primeira instrução da rotina principal (se o ponto de partida não foi movido manualmente). A instrução EXIT deve ser usada quando ocorre um erro fatal ou quando a execução do programa é parada permanentemente. A instrução Stop é usada para parar temporariamente a execução do programa. Exemplo

ErrWrite "Erro fatal","Estado ilegal"; EXIT;

A execução do programa pára e não pode ser reiniciada daquela posição do pro-grama.

Introdução ao RAPID 7

Page 11: Manual Rapid

3 Várias Instruções Várias instruções são usadas para

atribuir valores aos dados, esperar um certo período de tempo até que uma condição ser satisfeita, inserir um comentário no programa.

“:=” Designa um valor A instrução “:=” é usada para designar um novo valor ao dado. Este valor pode ser desde um valor constante até uma expressão aritmética, ex. reg1+5*reg3. Exemplos

reg1 := 5; Para reg1 é designado o valor 5.

reg1 := reg2 - reg3; Para reg1 é designado o valor do cálculo 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 instrução também pode ser usada para fazer com que o robô e eixos externos fiquem parados. Exemplo

WaitTime 0.5; A execução do programa espera 0.5 segundo.

WaitUntil Espera uma condição ser satisfeita WaitUntil é usado para esperar até que uma condição lógica seja satisfeita; por exemplo, pode esperar até que uma ou mais entradas sejam ligadas.

Introdução ao RAPID 8

Page 12: Manual Rapid

Exemplo

WaitUntil di4 = 1; A execução do programa continua somente após 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 execução do programa continua somente após a entrada di4 ser ligada.

WaitDI grip_status, 0; A execução do programa continua somente após a entrada grip_status ser desli-gada.

WaitDOEspera até que um sinal de saída digital seja ligado WaitDO (Wait Digital Output) é usado para esperar até que um sinal de saída digital seja ligado. Exemplo

WaitDO do4, 1; A execução do programa continua somente após a entrada do4 ser ligada.

WaitDO grip_status, 0; A execução do programa continua somente após a saída grip_status ser religada.

Comment Comentário Comment é usado somente para tornar o programa mais fácil de entender. Não tem efeito na execução do programa.

Introdução ao RAPID 9

Page 13: Manual Rapid

Exemplo

! Vai para a posição acima do palete MoveL p100, v500, z20, tool1;

É inserido um comentário no programa para torná-lo mais fácil de entender.

Introdução ao RAPID 10

Page 14: Manual Rapid

4 Ajuste de movimentos Algumas das características de movimento do robô são determinadas pela utilização de instruções lógicas que se aplicam a todos os movimentos:

Velocidade máxima e sobrevelocidade Aceleração Deslocamento do programa

VelSet Muda a velocidade programada Vel S e t é usado para aumentar ou diminuir a velocidade programada para todas as instruções de posicionamento subsequentes. Esta instrução também é usada para maximizar a velocidade. Exemplo

VelSet 50, 800; Todas as velocidades programadas são diminuídas em 50% do valor da instrução. A velocidade do TCP não é, entretanto, permitida exceder 800 mm/s.

AccSet Reduz a aceleração AccSet é usado quando manipula-se cargas frágeis. Permite acelerações e desacelerações lentas, que resulta em suaves movimentos do robô. Exemplos

AccSet 50, 100; A aceleração é limitada em 50% do valor normal.

AccSet 100, 50; A rampa de aceleração é 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 posições.

Introdução ao RAPID 11

Page 15: Manual Rapid

Exemplos

MoveL p10, v500, z10, tool1; EOffsOn \ExeP:=p10, p20;

Ativação do offset para eixos externos. Isto é calculado para cada eixo baseado na diferença entre as posições p10 e p20.

MoveL p10, v500, fine, tool1; EOffsOn *;

Ativação do offset para eixos externos. Desde que o ponto de parada foi usado na instrução anterior, o argumento \ExeP não tem que ser usado. O deslocamento é calculado com base na diferença entre a posição atual de cada eixo e o ponto programado (*) gravado na instrução.

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;

Ativação 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 lógico “a”. - Contanto que este offset seja ativado, todas as posições estarão deslocadas

100 mm na direção 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 instrução 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;

Introdução ao RAPID 12

Page 16: Manual Rapid

Desativação 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 diferença entre a posição de cada eixo no p10 e p11. Este deslocamento afeta o movimento para p20 e p30,mas não para p40.

PDispOn Ativa deslocamento de programa PDispOn (Program Displacement On) é usado para definir e ativar um deslocamento de programa usando duas posições do robô. Deslocamento de programa é usado, por exemplo, após uma busca ter sido realizada, ou quando padrões de movimento similares são repetidos em diferentes lugares do programa. Exemplos

MoveL p10, v500, z10, tool1; PDispOn \ExeP:=p10, p20, tool1;

Ativação de um deslocamento de programa (movimento paralelo). Este é calculado baseado em diferenças entre posições p10 e p20.

MoveL p10, v500, fine, tool1; PDispOn *, tool1;

Ativação de um deslocamento de programa (movimento paralelo). Desde que um ponto de parada foi usado na instrução anterior, o argumento \ExeP não precisa ser usado. O deslocamento é calculado com base na diferença entre a atual posição atual do robô e o ponto programado (*) guardado na instrução.

PDispOn \Rot \ExeP:=p10, p20, tool1; Ativação de um deslocamento de programa incluindo uma rotação. Este é calculado baseado em diferenças entre posições p10 e p20.

Introdução ao RAPID 13

Page 17: Manual Rapid

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 padrões de movimento similares são repetidos em vários lugares diferentes no programa. Exemplo

VAR pose xp100 := [ [100, 0, 0], [1, 0, 0, 0] ]; . PDispSet xp100;

Ativação do deslocamento de programa xp100 , significa que:

- O sistema de coordenada ProgDisp é deslocado 100 mm do sistema de coordenada de objeto, na direção positiva do eixo-x .

- Uma vez que, o deslocamento de programa é ativado, todas as posições serão deslocadas 100 mm na direção do eixo-x.

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

PDispOff; Desativação 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 diferença entre as posições p10 e p11. Este deslocamento afeta o movimento para p20 e p30, mas não para p40.

Introdução ao RAPID 14

Page 18: Manual Rapid

5 Movimentação Os movimentos do robô são programados “passo a passo”, isto é, “mova-se a partir da posição atual para a nova posição”. A trajetória entre estas duas posições é então calculada automaticamnte pelo robô. 5.1 Princípios de programação As características básicas dos movimentos, tais como o tipo da trajetória, são especificadas pela escolha da instrução de posicionamento apropriada. As características restantes são especificadas pela definição de dados que são argumentos da instrução:

Dados de posicionamento (posição final para eixos externos e do robô) Dados de velocidade (velocidade desejada) Dados de zona (precisão do posicionamento) Dados de ferramenta (por exemplo, a posição do TCP) Dados de objeto de trabalho (por exemplo, o sistema de coordenadas atual)

MoveAbsJ Move o robô para posição absoluta de junção MoveAbsJ (Move Absolute Joint) é usado para mover o robô para uma posição absoluta, definida nas posições dos eixos. Esta instrução somente precisa ser usada quando:

- o ponto de parada é um único ponto - para posições ambíguas no IRB 6400C, ex. para movimentos com a

ferramenta sobre o robô. A posição final do robô, durante o movimento com MoveAbsJ, não é 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 instruções de movimentos adjacentes. O robô e eixos externos são movidos para a posição de destino ao longo de uma trajetória não linear. Todos os eixos alcançam a posição de destino ao mesmo tempo. Exemplos

MoveAbsJ p50, v1000, z50, tool2; O robô com a ferramenta tool2, é movido ao longo de um trajeto não -linear para uma posição de eixo absoluta, p50, com dado de velocidade v1000 e dado de zona z50.

MoveAbsJ *, v1000\T:=5, fine, grip3;

Introdução ao RAPID 15

Page 19: Manual Rapid

O robô com a ferramenta grip3, é movido ao longo de um trajeto não-linear para um ponto de parada que é guardado como uma posição de eixo absoluta na instrução (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 orientação normalmente permanece relativo ao círculo. Exemplos

MoveC p1, p2, v500, z30, tool2; O TCP da ferramenta, tool2, é movida circularmente para a posição p2, com dado de velocidade v500 e dado de zona z30. O círculo é definido pela posição de início, o ponto do círculo 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 instrução (marcado pelo segundo *). O ponto do círculo também é guardado na instrução (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 não tem que ser em linha reta. O robô e eixos externos movem-se ao ponto de destino ao longo de uma trajetória não linear. Todos os eixos alcançam 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 trajetória não linear para a posição, 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 trajetória não linear para o ponto de parada guardado na instrução (marcado com um *). O movimento completo leva 5 segundos.

Introdução ao RAPID 16

Page 20: Manual Rapid

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 estacionário, esta instrução pode também ser usada para reorientar a ferramenta. Exemplo

MoveL p1, v1000, z30, tool2; O TCP da ferramenta, tool2, é movido linearmente para a posição 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 instrução (marcado com um *). O movimento completo leva 5 segundos.

ffs Desloca uma posição do robô O Offs é usado para adicionar um offset a uma posição do robô. Exemplos

MoveL Offs(p2, 0, 0, 10), v1000, z50, tool1; O robô se move para um ponto 10 mm da posição p2 (na direção z).

p1 := Offs (p1, 5, 10, 15); A posição do robô p1 é deslocada 5 mm na direção x, 10 mm na direção y e 15 mm na direção z.

RelToolFaz um deslocamento relativo para a ferramenta RelTool (Relative Tool) é usado para adicionar um deslocamento e/ou uma rotação, expresso no sistema de coordenadas da ferramenta, para a posição do robô. Exemplo

MoveL RelTool (p1, 0, 0, 100), v100, fine, tool1; O robô é movido para uma posição que é 100 mm do p1 na direção da ferra-menta.

Introdução ao RAPID 17

Page 21: Manual Rapid

MoveL RelTool (p1, 0, 0, 0 \Rz:= 25), v100, fine, tool1;

A ferramenta sdorerá rotação 25 o em volta do seu eixo z.

ActUnit Ativa uma unidade mecânica ActUnit é usada para ativar uma unidade mecânica. Pode ser usada para determinar qual é unidade a ser ativada quando, por exemplo, unidades de drive comuns são usadas. Exemplo

ActUnit orbit_a; Ativação do orbit_a da unidade mecânica.

DeactUnit Desativa uma unidade mecânica DeactUnit é usada para desativar uma unidade mecânica. Também pode ser usada para determinar qual unidade deve ser ativada quando, por exemplo, unidades de drive comum são usadas. Exemplos

DeactUnit orbit_a; Desativação da unidade mecânica 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á estacionário quando o robô se move para p20 e p30. Depois disso, ambos o robô e o track_motion se moverão para p40.

MoveL p10, v100, fine, tool1; DeactUnit orbit1; ActUnit orbit2; MoveL p20, v100, z10, tool1;

A unidade orbit1 é desativada e a orbit2 ativada.

Introdução ao RAPID 18

Page 22: Manual Rapid

6 Sinais de Entrada e Saída O robô pode ser equipado com um número de sinais digitais e analógicos do usuário

.1 Princípios de programação

que podem ser lidos e mudados a partir do programa. 6 Os nomes dos sinais são definidos nos parâmetros do sistema e, usando estes nomes,

o ou de um grupo de sinais digitais é especificado por um

et Liga um sinal de saída digital

eles podem ser lidos pelo programa. Os valores simbólicos para sinais digitais também são definidos nos parâmetros do sistema. Valores simbólicos, como ligado/desligado ou aberto/fechado, podem ser usados em vez de 1/0 para tornar o programa mais fácil de ler. O valor de um sinal analógicvalor numérico.

S 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 saída digital Reset é usado para levar o valor de um sinal de saída digital para zero. Exemplos

Reset do15; O sinal do15 é levado para 0.

Reset weld; O sinal weld é levado para 0.

Introdução ao RAPID 19

Page 23: Manual Rapid

7 Comunicação Existem quatro maneiras possíveis de comunicação por meio de canais seriais: Mensagens podem ser mostradas através do display da unidade de programação e

o usuário pode responder perguntas, tais como o número de peças a serem processadas. Informações baseadas em caracteres podem ser esctitas ou lidas a partir de

arquivos de texto em um disquete. Deste modo, por exemplo, a estatística de produção pode ser armazenada e processada posteriormente em um PC. A informação também pode ser impressa através de uma impressora conectada ao robô. Informações binárias podem ser transferidas entre o robô e um sensor, por

exemplo. Informações binárias podem ser transferidas entre o robô e um sensor, por

exemplo, com um protocolo. 7.1 Princípios de programação A decisão de escolher entre usar a informação baseada em caracteres ou a informação binária depende de como o equipamento com o qual o robô se comunica trata a informação. Um arquivo, por exemplo, pode possuir dados que são armazenados de forma binária ou baseado em caracteres. Se a comunicação for necessária em ambas as direções simultaneamente, a transmissão binária será necessária. Cada canal serial ou arquivo deve primeiramente ser aberto. Fazendo-se isso, o canal/arquivo recebe um nome que é usado como uma referência para leitura/escrita. A unidade de programação pode ser usada todas as vezes e não precisa ser aberta. Ambos texto e valores de certos tipos de dados podem ser impressos.

TPErase Apaga texto impresso na unidade de programação TPErase (Teach Pendant Erase) é usado para limpar o display da unidade de programação. Exemplo

TPErase; TPWrite "Execução iniciada";

O display da unidade de programação é apagado antes da Execução iniciada ser escrita.

Introdução ao RAPID 20

Page 24: Manual Rapid

TPWrite Escreve na unidade de programação TPWrite (Teach Pendant Write) é usado para escrever um texto na unidade de programação. Também pode ser escrito um valor de um certo dado. Exemplos

TPWrite "Execução iniciou"; O texto Execução iniciada é escrito na unidade de programação.

TPWrite "Nº de peças produzidas="\Num:=reg1;

Se, por exemplo, a resposta para No. de peças produzidas=5, entra 5 em vez de reg1 na unidade de programação. TPReadFK Lê teclas de função TPReadFK (Teach Pendant Read Function Key) é usado para escrever um texto acima das teclas de função e para descobrir qual tecla está pressionada. Exemplo

TPReadFK reg1, "Mais ?", stEmpty, stEmpty, stEmpty, "Sim", "Não"; O texto Mais ? é escrito no display da unidadede programação e as teclas de função 4 e 5 são ativadas por meio de textos Sim e Não respectivamente (veja Figura). A execução do programa espera até que uma das teclas de função 4 ou 5 seja pressionada. Em outras palavras, reg1 será fixado em 4 ou 5 dependendo de qual das teclas for pressionada.

Introdução ao RAPID 21

Page 25: Manual Rapid

TPReadNum Lê um número da unidade de programação TPReadNum (Teach Pendant Read Numerical) é usado para ler um número da unidade de programação. Exemplo

TPReadNum reg1, “Quantas unidades devem ser produzidas?“; O texto Quantas unidades devem ser produzidas? é escrito no display da unidade de programação. A execução do programa espera até que um número seja informado pelo teclado numérico da unidade de programação. Aquele número é guardado em reg1.

Introdução ao RAPID 22

Page 26: Manual Rapid

8 Sistema & Tempo As instruções do sistema e de tempo possibilitam ao usuário medir, inspecionar e gravar o tempo. 8.1 Princípios de programação As instruões do relógio (clock) possibilitam ao usuário a utilização do relógio 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 programação ou ser usado em arquivos de registro. Também é possível recuperar componentes da hora atual do sistema como um valor numérico. Isto possibilita ao programa do robô a executar uma ação em uma certa hora ou em um certo dia da semana.

ClkReset Zera o cronômetro ClkReset é usado para zerar o relógio que funciona como cronômetro. Esta função pode ser usada antes de usar o relógio para ter certeza que ele está no 0. Exemplo

ClkReset clock1; O relógio clock1 é zerado.

ClkStart Liga o cronômetro ClkStart é usado para ligar o cronômetro. Exemplo

ClkStart clock1; O relógio clock1 é ligado. ClkStop Parar o cronômetro ClkStop é usado para parar o cronômetro.

Introdução ao RAPID 23

Page 27: Manual Rapid

Exemplo

ClkStop clock1; O relógio clock1 é parado.

ClkRead Lê um relógio usado para temporização ClkRead é usado para ler um relógio que funciona como um cronômetro usado para temporização. Exemplo

reg1:=ClkRead(clock1);

O relógio clock1 é lido e o tempo, em segundos, é armazenado na variável reg1.

Introdução ao RAPID 24