Вы находитесь на странице: 1из 194

3HAC 5780-1 Para BaseWare OS 3.

ndice

Introduo

Caractersticas gerais RAPID

Sumrio/Resumo RAPID

Caractersticas Bsicas

Movimento e Princpios E/S

Programao Off-line

Dados Predefinidos e Programas

ndice, Glossrio

As informaes contidas neste documento esto sujeitas a alteraes sem aviso prvio e no devero ser interpretadas como um compromisso da ABB Robotics AB. A ABB Robotics AB no assume qualquer responsabilidade por eventuais erros que possam surgir neste documento. Em nenum caso dever a ABB Robotics AB ser responsabilizada por danos casuais ou de consequncia que surjam a partir da utilizao deste documento, ou do software e hardware aqui descritos. Este documento ou parte dele no poder ser copiado ou reproduzido sem permisso, por escrito, da ABB Robotics AB e no poder ser cedido a uma terceira parte, nem ser utilizado para qualquer propsito no autorizado. A transgresso ser motivo de processo. Cpias adicionais deste documento podero ser obtidas a partir da ABB Robotics AB com seu pagamento vista.

ABB Robotics AB Nmero do artigo: 3HAC 5780-1 Emisso: Para BaseWare OS 3.2 ABB Robotics AB S-721 68 Vsters Sucia

Caractersticas gerais RAPID


NDICE
Pgina

1 ndice ......................................................................................................... 1-1 2 Introduo ................................................................................................. 2-1


1 Introduo........................................................................................................................ 2-1 1.1 Outros Manuais................................................................................................... 2-1 1.2 Como ler este Manual ......................................................................................... 2-1

3 Sumrio / Resumo..................................................................................... 3-1


1 A Estrutura da Linguagem ............................................................................................ 3-1 2 Controle do Fluxo do Programa .................................................................................... 3-3 2.1 Princpios de programao.................................................................................. 3-3 2.2 Chamada de outra rotina ..................................................................................... 3-3 2.3 Controle do programa dentro da rotina............................................................... 3-4 2.4 Parada da execuo do programa........................................................................ 3-4 3 Vrias Instrues............................................................................................................. 3-5 3.1 Atribuio de valores aos dados ......................................................................... 3-5 3.2 Espera.................................................................................................................. 3-5 3.3 Comentrios ........................................................................................................ 3-5 3.4 Carregando mdulos do programa...................................................................... 3-6 3.5 Vrias funes..................................................................................................... 3-6 3.6 Dados bsicos ..................................................................................................... 3-6 3.7 Funes de converso ......................................................................................... 3-7 4 Ajuste de movimentos ..................................................................................................... 3-9 4.1 Princpios de programao.................................................................................. 3-9 4.2 Definio da velocidade...................................................................................... 3-9 4.3 Definio da acelerao ...................................................................................... 3-10 4.4 Definio do gerenciamento da configurao .................................................... 3-10 4.5 Definio da carga .............................................................................................. 3-10 4.6 Definio do comportamento prximo de pontos singulares ............................. 3-10 4.7 Deslocamento do programa ................................................................................ 3-11 4.8 Soft servo......................................................................................................... 3-11 4.9 Ajuste dos valores de sintonia do rob ............................................................... 3-11 4.10 Zonas globais .................................................................................................... 3-12 4.11 Dados para ajuste dos movimentos................................................................... 3-12 5 Movimentao ................................................................................................................. 3-13 5.1 Princpios de programao.................................................................................. 3-13 5.2 Instrues de posicionamento............................................................................. 3-14

Caractersticas gerais

2-1

Caractersticas gerais RAPID


Pgina 5.3 Procura................................................................................................................ 3-14 5.4 Ativao de sadas ou de interrupes em posies especficas ........................ 3-14 5.5 Controle de movimento se um erro/interrupo ocorrer .................................... 3-15 5.6 Controle de eixos externos ................................................................................. 3-15 5.7 Eixos independentes ........................................................................................... 3-16 5.8 Correo de trajetria ......................................................................................... 3-16 5.9 Controle do transportador ................................................................................... 3-17 5.10 Identificao da carga e deteco de colises................................................... 3-17 5.11 Funes de posicionamento .............................................................................. 3-17 5.12 Dados de movimentao................................................................................... 3-18 5.13 Dados bsicos para os movimentos .................................................................. 3-18 6 Sinais de Entrada e Sada............................................................................................... 3-19 6.1 Princpios de programao ................................................................................. 3-19 6.2 Troca do valor de um sinal ................................................................................. 3-19 6.3 Leitura do valor de um sinal de entrada ............................................................. 3-19 6.4 Testando a entrada em sinais de sada ................................................................ 3-20 6.5 Desativar e ativar mdulos de E/O ..................................................................... 3-20 6.6 Definir sinais de entrada e de sada .................................................................... 3-20 7 Comunicao ................................................................................................................... 3-21 7.1 Princpios de programao ................................................................................. 3-21 7.2 Comunicao usando-se a unidade de programao .......................................... 3-22 7.3 Ler ou escrever em um canal serial baseado em caracteres / arquivo ................ 3-22 7.4 Comunicao usando-se canais/arquivos seriais binrios .................................. 3-22 7.5 Dados para canais seriais .................................................................................... 3-23 8 Interrupes..................................................................................................................... 3-25 8.1 Princpios de programao ................................................................................. 3-25 8.2 Conexo das interrupes s rotinas trap ........................................................ 3-25 8.3 Ordenar interrupes .......................................................................................... 3-26 8.4 Cancelar interrupes ......................................................................................... 3-26 8.5 Habilitar/Desabilitar interrupes....................................................................... 3-26 8.6 Tipos de dados para interrupes........................................................................ 3-26 9 Recuperao de Erros..................................................................................................... 3-27 9.1 Princpios de programao ................................................................................. 3-27 9.2 Criao de uma situao de erro a partir de dentro do programa ....................... 3-28 9.3 Reincio/retorno do tratamento de erros ............................................................. 3-28 9.4 Dados para tratamento de erros .......................................................................... 3-28 10 Sistema & Tempo .......................................................................................................... 3-29

1-2

Caractersticas gerais

Caractersticas gerais RAPID


Pgina 10.1 Princpios de programao................................................................................ 3-29 10.2 Utilizao do relgio para temporizar um evento............................................. 3-29 10.3 Leitura da hora e data atuais ............................................................................. 3-29 10.4 Recuperar informao de hora/data a partir do arquivo ................................... 3-30 Matemtica..................................................................................................................... 3-31 11.1 Princpios de programao................................................................................ 3-31 11.2 Clculos simples em dados numricos ............................................................. 3-31 11.3 Clculos mais avanados .................................................................................. 3-31 11.4 Funes aritmticas........................................................................................... 3-32 Solda a Ponto ................................................................................................................. 3-33 12.1 Caractersticas da solda a ponto........................................................................ 3-33 12.2 Princpios do SpotWare..................................................................................... 3-34 12.3 Princpios de programao................................................................................ 3-35 12.4 Instrues de Solda a ponto .............................................................................. 3-35 12.5 Dados de Solda a ponto .................................................................................... 3-36 Solda a Arco................................................................................................................... 3-37 13.1 Princpios de programao................................................................................ 3-37 13.2 Instrues de solda a arco ................................................................................. 3-37 13.3 Instrues adicionais de solda a arco................................................................ 3-38 13.4 Dados de solda a arco ....................................................................................... 3-38 13.5 Dados adicionais de solda a arco ...................................................................... 3-38 GlueWare ....................................................................................................................... 3-39 14.1 Caratersticas de colagem ................................................................................. 3-39 14.2 Princpios de programao................................................................................ 3-39 14.3 Instrues de colagem....................................................................................... 3-40 14.4 Dados de colagem............................................................................................. 3-40 14.5 Dados do DispenseWare ................................................................................... 3-40 Comunicao com Computador Externo.................................................................... 3-41

11

12

13

14

15

15.1 Princpios de programao................................................................................ 3-41 15.2 Envio de mensagem controlada pelo programa do rob para o computador.... 3-41 16 Instrues de suporte do RAPID ................................................................................. 43 16.1 Obter dados do sistema ..................................................................................... 43 17 Instrues de Servio .................................................................................................... 3-45 17.1 Direcionamento de um valor para o sinal de teste do rob ............................... 3-45 18 Funes com Strings ................................................................................................. 3-47 18.1 Operaes bsicas ............................................................................................. 3-47 18.2 Comparao e Procura ...................................................................................... 3-47

Caractersticas gerais

1-3

Caractersticas gerais RAPID


Pgina 18.3 Converso ......................................................................................................... 3-48 19 Multitasking................................................................................................................... 3-49 19.1 Bsicos.............................................................................................................. 3-49 19.2 Proteo de acesso de Recurso ......................................................................... 3-49 20 Sumrio da Sintaxe ....................................................................................................... 3-51 20.1 Instrues.......................................................................................................... 3-51 20.2 Funes ............................................................................................................. 3-57

4 Caractersticas Bsicas............................................................................. 4-1


1 Elementos Bsicos ........................................................................................................... 4-1 1.1 Identificadores .................................................................................................... 4-1 1.2 Caracteres de espao e de linha .......................................................................... 4-2 1.3 Valores numricos............................................................................................... 4-2 1.4 Valores lgicos.................................................................................................... 4-2 1.5 Valores de string .............................................................................................. 4-2 1.6 Comentrios........................................................................................................ 4-3 1.7 Placeholders .................................................................................................... 4-3 1.8 Cabealho do arquivo ......................................................................................... 4-4 1.9 Sintaxe ................................................................................................................ 4-4 2 Mdulos............................................................................................................................ 4-7 2.1 Mdulos de programa ......................................................................................... 4-7 2.2 Mdulos de sistema ............................................................................................ 4-8 2.3 Declarao do mdulo ........................................................................................ 4-8 2.4 Sintaxe ................................................................................................................ 4-8 3 Rotinas ............................................................................................................................. 4-11 3.1 Escopo da rotina ................................................................................................. 4-11 3.2 Parmetros .......................................................................................................... 4-12 3.3 Trmino da rotina ............................................................................................... 4-13 3.4 Declarao da rotina ........................................................................................... 4-13 3.5 Chamada de procedimento ................................................................................. 4-14 3.6 Sintaxe ................................................................................................................ 4-15 4 Tipos de Dados (data types) ........................................................................................... 4-19 4.1 Tipos de dados sem valor (non-value)................................................................ 4-19 4.2 Tipos de dados iguais (alias)............................................................................... 4-19 4.3 Sintaxe ................................................................................................................ 4-20 5 Dados ................................................................................................................................ 4-21 5.1 Escopo dos dados................................................................................................ 4-21 5.2 Declarao de variveis ...................................................................................... 4-22

1-4

Caractersticas gerais

Caractersticas gerais RAPID


Pgina 5.3 Declarao de persistentes .................................................................................. 4-23 5.4 Declarao de constantes .................................................................................... 4-23 5.5 Dados de inicializao ........................................................................................ 4-24 5.6 Classe de armazenamento................................................................................... 4-24 5.7 Sintaxe ................................................................................................................ 4-25 6 Instrues ......................................................................................................................... 4-27 6.1 Sintaxe ................................................................................................................ 4-27 7 Expresses ........................................................................................................................ 4-29 7.1 Expresses aritmticas ........................................................................................ 4-29 7.2 Expresses lgicas .............................................................................................. 4-30 7.3 Expresses com strings ................................................................................... 4-31 7.4 Utilizao de dados em expresses..................................................................... 4-31 7.5 Utilizao de agregados em expresses.............................................................. 4-32 7.6 Utilizao de chamadas funcionais em expresses............................................. 4-32 7.7 Prioridade entre operadores ................................................................................ 4-33 7.8 Sintaxe ................................................................................................................ 4-34 8 Recuperao de Erros..................................................................................................... 4-37 8.1 Tratamento de erros ............................................................................................ 4-37 9 Interrupes..................................................................................................................... 4-39 9.1 Manipulao de interrupes .............................................................................. 4-39 9.2 Rotinas trap ..................................................................................................... 4-40 10 Execuo de trs para frente........................................................................................ 4-41 10.1 Manipuladores de trs para frente..................................................................... 4-41 10.2 Limitao de instrues de movimento no manipulador de trs para a frente . 4-42 11 Multitarefa ..................................................................................................................... 4-43 11.1 Sincronizao de tarefas ................................................................................... 4-44 11.2 Comunicao intertarefas.................................................................................. 4-45 11.3 Tipo de tarefa .................................................................................................... 4-46 11.4 Prioridades ........................................................................................................ 4-46 11.5 Dimenses das tarefas....................................................................................... 4-47 11.6 Algo para pensar ............................................................................................... 4-48

5 Movimento e Princpios E/S .................................................................... 5-1


1 Sistemas de Coordenadas ............................................................................................... 5-1 1.1 O ponto central da ferramenta do rob (TCP) .................................................... 5-1 1.2 Sistemas de coordenadas usados para determinar a posio do TCP ................. 5-1 1.3 Sistemas de coordenadas usados para determinar a direo da ferramenta........ 5-6 1.4 Informao relacionada....................................................................................... 5-10

Caractersticas gerais

1-5

Caractersticas gerais RAPID


Pgina 2 Posicion. na Execuo do Programa ............................................................................. 5-11 2.1 Geral ................................................................................................................... 5-11 2.2 Interpolao da posio e orientao da ferramenta........................................... 5-11 2.3 Interpolao de trajetos circulares ...................................................................... 5-14 2.4 Eixos independentes ........................................................................................... 5-20 2.5 Soft Servo ........................................................................................................... 5-23 2.6 Parada e reinicializao ...................................................................................... 5-24 2.7 Informao relacionada ...................................................................................... 5-24 3 Sincronizao com instrues lgicas............................................................................ 5-25 3.1 Execuo sequencial do programa em pontos de parada ................................... 5-25 3.2 Execuo sequencial do programa em pontos de passagem............................... 5-25 3.3 Execuo simultnea do programa ..................................................................... 5-26 3.4 Sincronizao do trajeto ..................................................................................... 5-28 3.5 Informao relacionada ...................................................................................... 5-29 4 Configurao do Rob .................................................................................................... 5-31 4.1 Dados de configurao do rob para 6400C ...................................................... 5-35 4.2 Informao relacionada ...................................................................................... 5-36 5 Modelos cinemticos de robs........................................................................................ 5-37 5.1 Cinemtica do rob ............................................................................................. 5-37 5.2 Cinemtica geral ................................................................................................. 5-39 5.3 Informaes relacionadas ................................................................................... 5-41 6 Superviso Movimento/Deteco coliso ...................................................................... 5-43 6.1 Introduo........................................................................................................... 5-43 6.2 Ajuste dos nveis de Deteco de Coliso .......................................................... 5-43 6.3 Caixa de dilogo da superviso de movimento .................................................. 5-43 6.4 Sadas digitais ..................................................................................................... 5-45 6.5 Limitaes .......................................................................................................... 5-45 6.6 Informaes relacionadas ................................................................................... 5-46 7 Singularidades ................................................................................................................. 5-47 7.1 Execuo do programa atravs de singularidades .............................................. 5-48 7.2 Movimentao atravs de singularidades ........................................................... 5-48 7.3 Informao relacionada ...................................................................................... 5-49 8 Zonas Globais .................................................................................................................. 5-51 8.1 Uso das Zonas Globais ....................................................................................... 5-51 8.2 Uso das Zonas Globais ....................................................................................... 5-51 8.3 Definio de Zonas Globais no sistema de coordenadas global......................... 5-51 8.4 Superviso do TCP do Rob .............................................................................. 5-52

1-6

Caractersticas gerais

Caractersticas gerais RAPID


Pgina 8.5 Aes .................................................................................................................. 5-53 8.6 Tamanho mnimo das Zonas Globais.................................................................. 5-54 8.7 Nmero mximo de Zonas Globais .................................................................... 5-54 8.8 Falha de corrente, reiniciar e run on ................................................................... 5-54 8.9 Informaes relacionadas ................................................................................... 5-55 9 Princpios de E/S ............................................................................................................. 5-57 9.1 Caractersticas de sinais ...................................................................................... 5-57 9.2 Sinais conectados interrupo.......................................................................... 5-58 9.3 Sinais do sistema................................................................................................. 5-59 9.4 Conexes cruzadas.............................................................................................. 5-59 9.5 Limitaes........................................................................................................... 5-60 9.6 Informao relacionada....................................................................................... 5-60

6 Programao off-line................................................................................. 6-1


1 Programao off-line ...................................................................................................... 6-1 1 Programao off-line ............................................................................................. 6-1

7 Dados Predefinidos e Programas ............................................................ 7-1


1 Mdulo do sistema User.................................................................................................. 7-1 1.1 Contedo............................................................................................................. 7-1 1.2 Criando um novo dado no mdulo ..................................................................... 7-1 1.3 Apagando este dado ............................................................................................ 7-2

8 Index, Glossrio .......................................................................................... 8-1


Glossrio.............................................................................................................................. 8-5

Caractersticas gerais

1-7

Caractersticas gerais RAPID


Pgina

1-8

Caractersticas gerais

Introduo

1 Introduo
Este um manual de referncia contendo explicaes detalhadas da linguagem de programao bem como todos os tipos de dados (data types), instrues e funes. Se voc est programando off-line, este manual ser particularmente til. Quando voc iniciar a programar o rob, normalmente melhor consultar o Guia do Usurio at que voc fique familiarizado com o sistema.

1.1 Outros Manuais


Antes de utilizar o rob pela primeira vez, consulte Operaes Bsicas. Ele fornecer informaes bsicas sobre a operao do rob. O Guia do Usurio fornece instrues passo a passo de como efetuar vrias tarefas, tais como, mover o rob manualmente, programar, ou iniciar um programa com a produo em andamento. O Manual do Produto descreve como instalar o rob, bem como procedimentos de manuteno e localizao de falhas. Este manual tambm contm a Especificao do Produto contendo as caractersticas e performance do rob.

1.2 Como ler este Manual


Para responder as perguntas Qual instruo devo usar ? ou O que esta instruo significa ?, veja o Captulo 3 de Caracteristicas Gerais RAPID : Sumrio/Resumo RAPID. Este captulo descreve resumidamente todas as instrues, funes e tipos de dados agrupados de acordo com as listas de escolha de instruo que so usadas na programao. Inclu igualmente um resumo da sintaxe, que especialmente til quando se programa desligado do sistema. No captulo 4 de Caracteristicas Gerais RAPID: Caractersticas Bsicas, explica detalhes inerentes da linguagem. No necessrio ler este captulo a no ser que seja um programador experiente. O captulo 5 de Caracteristicas Gerais RAPID: Movimento e Princpios E/S, descreve os vrios sistemas de coordenadas do rob, sua velocidade e outras caractersticas de movimento durante diferentes tipos de execuo. Os captulos 1-3 DataTypes do Sistema e Rotinas, descreve todos os tipos de dados, instrues e funes. Esto escritos em ordem afabtica para a sua convenincia. Este manual descreve todos os dados e programas fornecidos com o rob na entrega. Alm deles, existem um nmero de dados e programas pr-definidos fornecidos com o rob, ou em disquete, ou j carregados. O captulo 7 de Caracteristicas Gerais RAPID: Programas e Dados Pr-definidos descreve o que acontece quando eles so carregados no rob.

Caractersticas gerais

2-1

Introduo
Se programar off-line, encontrar algumas dicas no captulo 6 de Caracteristicas Gerais RAPID: Programao off-line. Para facilitar a localizao e compreenso,o captulo 8 de Caracteristicas Gerais RAPID contem um ndice, e um glossrio. O captulo 4 de DataTypes do Sistema e Rotinas contm um ndice.

1.3 Convenes tipogrficas Os comandos localizados abaixo das 5 chaves de menu no topo da unidade de programao esto escritos no formato de Menu: Command. Por exemplo, para ativar o comando Print no menu File, voc deve selecionar File: Print. Os nomes das teclas de funo e nos campos de entrada de dados so especificados em caracter bold itlico, por exemplo, Modpos. Palavras pertencentes atual linguagem de programao, tais como nomes de instrues so escritos em caracter itlico, por exemplo, MoveL. Exemplos de programas so sempre apresentados da mesma forma para sada em disquete ou impressora. Este difere do que apresentado na unidade de programao nos seguintes aspectos: Certas palavras de controle so mascaradas na apresentao e impresso na unidade de programao, por exemplo: palavras indicando o incio e o fim de uma rotina. Dados e declaraes das rotinas declarations so impressos em formato formal, por exemplo: VAR num reg1;.

1.4 Regras de sintaxe As instrues e funes so descritas usando-se ambas as sintaxes simplificada e formal. Se voc usar a unidade de programao, geralmente voc precisa saber somente a sintaxe simplificada, j que o rob automaticamente assegura que a sintaxe correta usada.

2-2

Caractersticas gerais

Introduo
Sintaxe simplificada Exemplo:

TPWrite
Instruo

String [\Num] | [\Bool] | [\Pos] | [\Orient]


Argumento obrigatrio Argumento opcional Argumantos mutuamente exclusivos

- Argumentos opcionais esto entre colchetes [ ]. Estes argumentos podem ser omitidos. - Argumentos que so mutuamente exclusivos, isto , no podem existir na instruo ao esmo tempo, so separados por uma barra vertical |. - Argumentos que podem ser repetidos um nmero arbitrrio de vezes esto entre chaves { }.

1.5 Sintaxe formal Exemplo: TPWrite [String:=] <expresso (IN) de string> [\Num:= <expresso (IN) de num> ] | [\Bool:= <expresso (IN) de bool> ] | [\Pos:= <expresso (IN) de pos> ] | [\Orient:= <expresso (IN) de orient> ];

- O texto entre colchetes [ ] pode ser omitido. - Argumentos que so mutuamente exclusivos, isto , no podem existir na instruo ao esmo tempo, so separados por uma barra vertical |. - Argumentos que podem ser repetidos um nmero arbitrrio de vezes esto entre chaves { }. - Smbolos que so escritos para se obter a sintaxe correta esto entre aspas . - O tipo de dado dos argumentos (itlicos) e outras caractersitcas esto entre os smbolos < >. Veja a descrio dos parmteros de uma rotina para maiores informaes. Os elementos bsicos de linguagem e certas instrues so escritas usando-se uma sintaxe especial, EBNF. Ela baseada nas mesmas regras, porm com algumas adies. Exemplo: GOTO <identifier>; <identifier> ::= <ident> | <ID> <ident> ::= <letter> {<letter> | <digit> | _}

- O smbolo ::= significa definido como. - O texto entre < > definido em uma linha separada.

Caractersticas gerais

2-3

Introduo

2-4

Caractersticas gerais

Sumrio RAPID

A Estrutura da Linguagem

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. As instrues geralmente possuem um nmero de argumentos associados que definem o que deve ocorrer em uma instruo especfica. Por exemplo, a instruo para desligar uma sada contem um argumento que define qual sada deve ser desligada; por exemplo Reset do5. Estes argumentos podem ser especificados das seguintes maneiras: - como um valor numrico, por exemplo 5 ou 4.6 - como uma referncia a um dado, por exemplo reg1 - como uma expresso, por exemplo 5+reg1*2 - como uma chamada funcional, por exemplo Abs(reg1) - como um valor string, por exemplo "Produo parte A" 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 armazenada s 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. Outras caractersticas da linguagem so: - Parmetros da Rotina - Expresses lgicas e aritmticas - Tratamento automtico de erros - Programas Modulares - Multitarefa Caracterstica gerais 3-1

A Estrutura da Linguagem

Sumrio RAPID

3-2

Caracterstica gerais

Sumrio RAPID

Controle do Fluxo do Programa

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.

2.2 Chamada de outra rotina


Instruo ProcCall CallByVar RETURN Usada para: Chamar (saltar para) outra rotina Chama procedimentos com nomes especficos Retornar para a rotina original

Caracterstica gerais

3-3

Controle do Fluxo do Programa

Sumrio RAPID

2.3 Controle do programa dentro da rotina


Instruo Compact IF IF FOR WHILE TEST GOTO label Usada para: Executa uma instruo somente se uma condio for satisfeita Executa uma seqncia de instrues diferentes dependendo se uma dada condio tiver sido ou no satisfeita Repete uma seo do programa um nmero de vezes Repete uma seqncia de instrues diferentes enquanto uma dada condio estiver satisfeita Executa instrues diferentes dependendo do valor de uma expresso Salta para uma etiqueta (label) Especifica uma etiqueta (nome da linha)

2.4 Parada da execuo do programa


Instruo Stop EXIT Break Usada para: Pra a execuo do programa Pra a execuo do programa quando o seu reincio no permitido Pra a execuo do programa temporariamente com o propsito de correo

3-4

Caracterstica gerais

Sumrio RAPID

Vrias Instrues

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. - carregar mdulos do programa

3.1 Atribuio de valores aos dados


Os dados podem posuir valores arbitrrios. Podem, por exemplo, ser iniciados com um valor constante, por exemplo 5, ou atualizados com uma expresso aritmtica, por exemplo reg1+5*reg3. Instruo := Usada para: Atribuir valores para os dados

3.2 Espera
O rob pode ser programado para esperar um certo perodo de tempo, ou para esperar que at que uma condio arbitrria seja satisfeita; por exemplo, para esperar at que uma entrada seja setada. Instruo WaitTime WaitUntil WaitDI WaitDO Usada para: Esperar um certo intervalo de tempo ou para esperar at que o rob pare de se movimentar Esperar at que uma condio seja satisfeita Esperar at que uma entrada digital seja setada Espera at uma sada digital ser ajustada

3.3 Comentrios
Comentrios so inseridos no programa somente para aumentar sua leitura. A execuo do programa no afetada por um comentrio. Instruo comment Usada para: Inserir um comentrio no programa

Caracterstica gerais

3-5

Vrias Instrues

Sumrio RAPID

3.4 Carregando mdulos do programa


Os mdulos do programa podem ser carregados a partir da memria de massa ou apagados da memria do programa. Desta forma podem ser manuseados grandes programas apenas com uma pequena memria. Instruo Load UnLoad Start Load Wait Load Save Tipo de dados loadsession Usada para: Carregar um mdulo do programa na memria do programa Descarregar um mdulo do programa da memria do programa Carrega um mdulo de programa na memria de programa durante a execuo Conecta o mdulo, caso este esteja carregado com StartLoad, na tarefa do programa Salva um mdulo de programa Usado para: Programar uma sesso de carregamento

3.5 Vrias funes


Funo OpMode RunMode Dim Present IsPers IsVar Usada para: Ler o modo de operao atual do rob Ler o modo de execuo do programa atual do rob Obter as dimenses de uma matriz (array) Verificar se um parmetro opcional estava presente quando uma chamada de uma rotina foi feita Verificar se um parmetro do tipo persistente Verificar se um parmetro uma varivel

3.6 Dados bsicos


Tipo de dado bool num symnum string switch Usado para definir: Dados lgicos (com valores de verdadeiro ou falso) Valores numricos (decimal ou inteiro) Dados numricos com valores simblicos Caracteres alfanumricos (strings) Parmetros da rotina sem valores

3-6

Caracterstica gerais

Sumrio RAPID

Vrias Instrues

3.7 Funes de converso


Funo StrToByte ByteToStr Usada para: Converter um byte em um dado de string com um formato de dados de byte definido. Converter um string com um formato de dados de byte definido em um dado de byte.

Caracterstica gerais

3-7

Vrias Instrues

Sumrio RAPID

3-8

Caracterstica gerais

Sumrio RAPID

Ajuste de movimentos

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 - Gerenciamento de diferentes configuraes do rob - Carga (payload) - Comportamento prximo de pontos singulares - Deslocamento do programa - Soft servo - Valores de sintonia

4.1 Princpios de programao


As caractersticas bsicas dos movimentos do rob so determinadas por dados especifiados para cada instruo de posicionamento. Alguns dados, entretanto, so especificados em instrues separadas que se aplicam a todos os movimentos at a mudana do referido dado. Os ajustes gerais de movimento so especificados por certas instrues, mas tambm podem ser lidos pelas variveis do sistema C_MOTSET ou C_PROGDISP. Os valores default so automaticamente definidos (pela execuo da rotina SYS_RESET no mdulo de sistema BASE) - na partida a quente, - quando um novo programa carregado, - quando o programa executado do incio.

4.2 Definio da velocidade


A velocidade absoluta programada como um argumento na instruo de posicionamento. Alm disso, a velocidade mxima e a sobrevelocidade (uma porcentagem da velocidade programada) podem ser definidas. Instruo VelSet Usada para definir: A velocidade mxima e a sobrevelocidade

Caracterstica gerais

3-9

Ajuste de movimentos

Sumrio RAPID

4.3 Definio da acelerao


Quando partes frgeis, por exemplo, so manuseadas, a acelerao pode ser reduzida para uma parte do programa. Instruo AccSet Usada para definir: A acelerao mxima

4.4 Definio do gerenciamento da configurao


A configurao do rob normalmente verificada durante o movimento. Se o movimento eixo a eixo (junta) for usado, a configurao correta ser atingida. Se o movimento linear ou circular for usado, o rob sempre mover-se- em direo da configurao mais prxima, mas uma verificao feita para ver se ela a mesma j programada. Entretanto, isto pode ser alterado. Instruo ConfJ ConfL Usada para definir: Ligar/desligar o controle durante o movimento de junta Ligar/desligar a verificao durante o movimento linear

4.5 Definio da carga


Para atingir o melhor rendimento, a carga correta deve ser definida. Instruo GripLoad Usada para definir: A carga da ferramenta

4.6 Definio do comportamento prximo de pontos singulares


O rob pode ser programado para evitar pontos singulares pela mudana automtica da orientao da ferramenta. Instruo SingArea Usada para definir: O mtodo de interpolao atravs dos pontos singulares

3-10

Caracterstica gerais

Sumrio RAPID

Ajuste de movimentos

4.7 Deslocamento do programa


Quando uma parte do programa tiver que ser deslocada, por exemplo, aps uma pesquisa, um deslocamento de programa pode ser adicionado. Instruo PDispOn PDispSet PDispOff EOffsOn EOffsSet EOffsOff Funo DefDFrame DefFrame ORobT Usada para: Ativar um deslocamento de programa Ativar um deslocamento de programa com um valor Desativar um deslocamento de programa Ativar um offset para um eixo externo Ativar um offset para um eixo externo com um valor Desativar um offset para um eixo externo Usada para: Calcular um deslocamento de programa a partir de 3 posies Calcular um deslocamento de programa a partir de 6 posies Remover um deslocamento de programa de uma posio

4.8 Soft servo


Um ou mais eixos do rob podem ser soft. Quando da utilizao desta funo, o rob ser menos rgido e pode substituir uma ferramenta elstica, por exemplo. Instruo SoftAct SoftDeact Usada para: Ativar o soft servo para um ou mais eixos Desativar o soft servo

4.9 Ajuste dos valores de sintonia do rob


Geralmente o rendimento do rob auto-ajustvel; entretanto, certos casos extremos, oscilao, por exemlo, podem ocorrer. Voc pode ajustar os valores de sintonia do rob para obter o rendimento necessrio. Instruo TuneServo1 TuneReset PathResol Tipo de dado tunetype Usada para: Ajustar os valores de sintonia do rob Voltar a sintonia ao normal Ajustar a resoluo do trajeto geomtrico Usado para: Representar o tipo de regulao como uma constante simblica

1. Somente quando o rob estiver equipado com a opoAdvanced Motion (Movimento Avanado)

Caracterstica gerais

3-11

Ajuste de movimentos

Sumrio RAPID

4.10 Zonas globais


At 10 volumes diferentes podem ser definidos dentro da rea de trabalho do rob. Esses volumes podem ser usados para: - Indicar que o TCP do rob uma parte definida da re de trabalho. - Delimitar a rea de trabalho para o rob e evitar uma coliso com a ferramenta. - Criar uma rea de trabalho comum para dois robs. A rea de trabalho fica ento disponvel somente para um rob a cada vez. Instruo WZBoxDef1 WZCylDef 1 WZSphDef WZLimSup
1

Usada para: Definir uma zona global com a forma de caixa Definir uma zona global cilndrica Definir uma zona global esfrica Ativar superviso de limites para uma zona global Ativar zona global para ajustar sadas digitais Desativar superviso de uma zona global temporria Ativar superviso de uma zona global temporria Apagar superviso de uma zona global temporria Usado para: Identificar uma zona global temporria Identificar uma zona global estacionria Descrever a geometria de uma zona global

WZDOSet1 WZDisable1 WZEnable1 WZFree1 Tipo de dados wztemporary wzstationary shapedata

4.11 Dados para ajuste dos movimentos


Tipo de dado motsetdata progdisp Usado para definir: Ajustes de movimento com excepo da deslocao do programa Deslocamento de programa

1. Somente quando o rob est equipado com a opo Funes avanadas

3-12

Caracterstica gerais

Sumrio RAPID

Movimentao

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) Algumas das caractersticas dos movimentos so determinadas por instrues lgicas que se aplicam a todos os movimentos (veja Ajuste de movimentos na pgina 9): - Velocidade mxima e sobrevelocidade - Acelerao - Gerenciamento de diferentes configuraes do rob - Carga (payload) - Comportamento prximo a pontos singulares - Deslocamento do programa - Soft servo - Valores de sintonia Ambos os eixos externos e os do rob so posicionados pelas mesmas instrues. Os eixos externos so movimentados a uma velocidade constante, chegando na posio final ao mesmo tempo que o rob.

Caracterstica gerais

3-13

Movimentao

Sumrio RAPID

5.2 Instrues de posicionamento


Instruo MoveC MoveJ MoveL MoveAbsJ MoveCDO MoveJDO MoveLDO MoveCSync MoveJSync MoveLSync Tipo de movimento: O TCP move-se atravs de uma trajetria circular Movimento eixo a eixo (junta) O TCP move-se atravs de uma trajetria linear Movimento eixo a eixo (junta) absoluto Move o rob circularmente e fixa uma sada digital no canto Move o rob pelo movimento de junta e fixa uma sada digital no canto Move o rob linearmente e fixa uma sada digital no canto Move o rob circularmente e executa um procedimento RAPID Move o rob pelo movimento de junta e executa um procedimento RAPID Move o rob linearmente e executa um procedimento RAPID

1.Somente se o rob estiver equipado com a opo Advanced Functions (Funes Avanadas)

5.3 Procura
Durante o movimento, o rob pode procurar por uma posio de um objeto de trabalho. A posio procurada (indicada por um sinal de um sensor) armazenada e pode ser usada posteriormente para posicionar o rob ou para calcular um deslocamento de programa. Instruo SearchC SearchL Tipo de movimento: TCP em uma trajetria circular TCP em uma trajetria linear

5.4 Ativao de sadas ou de interrupes em posies especficas


Normalmente, as instrues lgicas so executadas na transio de uma instruo de posicionamento para outra. Se, entretanto, instrues de movimentao especiais so usadas, estas podem ser executadas ao invs de quando o rob est em uma posio especfica.

3-14

Caracterstica gerais

Sumrio RAPID
Instruo TriggIO TriggInt TriggEquip Usada para:

Movimentao

Definir uma condio de transio para ligar uma sada em uma dada posio Definir uma condio de transio para executar uma rotina trap em uma dada posio Define uma condio trigg para ajustar uma sada numa determinada posio, com a possibilidade de incluir compensaes de tempo de espera no equipamento externo Move o rob (TCP) circularmente com uma condio de transio ativada Move o rob eixo a eixo com uma condio de transio ativada Move o rob (TCP) linearmente com uma condio de transio ativada Usado para definir: Condies de transio

TriggC1 TriggJ1 TriggL1 Tipo de dado triggdata1

1.Somente se o rob estiver equipado com a opo Advanced functions.

5.5 Controle de movimento se um erro/interrupo ocorrer


Para que se possa corrigir um erro ou uma interrupo, o movimento pode ser parado temporariamente e ento reinicado novamente. Instruo StopMove StartMove StorePath1 RestoPath
1

Usada para: Parar os movimentos do rob Reiniciar os movimentos do rob Armazenar a ltima trajetria gerada Regenerar uma trajetria armazenada anteriormente

1. Somente se o rob estiver equipado com a opo Advanced functions.

5.6 Controle de eixos externos


Os eixos externos e os do rob so normalmente posicionados utilizando-se as mesmas instrues. Entretanto, algumas instrues somente afetam os movimentos dos eixos externos. Instruo DeactUnit ActUnit MechUnit Load Usada para: Desativar uma unidade mecnica externa Ativar uma unidade mecnica externa Define uma carga til para uma unidade mecnica

Caracterstica gerais

3-15

Movimentao

Sumrio RAPID

5.7 Eixos independentes


O eixo 6 do rob (e 4 no IRB 2400/4400), ou um eixo externo, pode ser movido independente dos outros movimentos. A rea de trabalho de um eixo pode tambm ser reajustada, o que reduzir os tempos de ciclo. Funo IndAMove uma posio IndCMove mento
2 2

Usada para: Mudar um eixo para o modo independente e mover o eixo para absoluta Mudar um eixo para o modo independente e inicializar o movicontnuo do eixo

IndDMove2 numa distncia IndRMove2 uma posio IndReset de trabalho IndInpos2 IndSpeed2
2

Mudar um eixo para o modo independente e mover o eixo delta Mudar um eixo para o modo independente e mover o eixo para relativa (dentro da revoluo do eixo) Mudar um eixo para o modo independente ou/e reajustar a rea Verificar se um eixo independente est em posio Verificar se um eixo independente alcanou a velocidade programada

2. Apenas se o rob estiver equipado com a opo Advanced Motion. (A instruo HollowWristReset s pode ser usada nos robs IRB 5402 e IRB 5403.)

5.8 Correo de trajetria


Instruo CorrCon2 CorrWrite2 CorrDiscon2 CorrClear2 Funo CorrRead2 Tipo de dados Corrdescr2 Usada para: Conectar a um gerador de correo Gravar os deslocamentos do sistema de coordenadas da trajetria em um gerador de correo Desconectar de um gerador de converso conectado anteriormente Remover todos os geradores de correo conectados Usada para: Ler todas as correes fornecidas por todos os geradores de correo conectados Usado para: Adicionar deslocamentos geomtricos no sistema de coordenadas da trajetria

3-16

Caracterstica gerais

Sumrio RAPID
2. Somente se o rob estiver equipado com a opo Advanced Motion. (A instruo HollowWristReset s pode ser usada nos robs IRB 5402 e IRB 5403).

Movimentao

5.9 Controle do transportador


Instruo WaitWObj3 DropWObj3 Usada para: Aguardar o objeto de trabalho no transportador Soltar o objeto de trabalho no transportador

3. Somente se o rob estiver equipado com a opo Conveyor tracking.

5.10 Identificao da carga e deteco de colises


Instruo MotionSup ParIdPosValid ParIdRobValid LoadId Usada para: Desativa/ativa a superviso de movimento Validar a posio do rob na identificao de parmetros Validar o tipo de rob para identificao de parmetros Carregar identificao da ferramenta ou carga til

5.11 Funes de posicionamento


Funo Offs RelToll ferramenta CalcRobT CPos CRobT CJointT ReadMotor CTool CWobj data) ORobT MirPos CalcJointT Distance Usada para: Adicionar um offset a uma posio do rob, expresso em relao ao objeto de trabalho Adicionar um offset expresso no sistema de coordenadas da Calcula robtarget a partir de jointtarget Ler a posio atual (somente x, y, z do rob) Ler a posio atual (o robtarget completo) Ler os ngulos atuais das juntas Ler os ngulos atuais dos motores Ler os valotes atuais do dado de ferramenta (tooldata) Ler os valores atuais dos dados do objeto de trabalho (wobjRemover um deslocamento de programa de uma posio Espelhar uma posio Calcula ngulos de juno a partir de robtarget A distncia entre duas posies

Caracterstica gerais

3-17

Movimentao

Sumrio RAPID

5.12 Dados de movimentao


Os dados de movimentao so usados como argumento nas instrues de posicionamento. Tipos de dados robtarget jointtarget speeddata zonedata tooldata wobjdata Usados para definir: A posio final A posio final de uma instruo MoveAbsJ A velocidade A preciso do posicionamento (ponto final ou ponto de passagem) O sistema de coordenadas e a carga da ferramenta O sistema de coordenadas do objeto de trabalho

5.13 Dados bsicos para os movimentos


Tipos de dados pos orient pose confdata extjoint robjoint o_robtarget o_jointtarget loaddata mecunit Usados para definir: Uma posio (x, y, z) Uma orientao Um sistema de coordenadas (posio + orientao) A configurao dos eixos do rob A posio dos eixos externos A posio dos eixos do rob A posio original do rob quando Limit ModPos for usado A posio original do rob quando Limit ModPos usado para MoveAbsJ Uma carga Uma unidade mecnica externa

3-18

Caracterstica gerais

Sumrio RAPID

Sinais de Entrada e Sada

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.

6.2 Troca do valor de um sinal


Instruo InvertDO PulseDO Reset Set SetAO SetDO SetGO Usada para: Inverter o valor de um sinal de sada digital Gerar um pulso em um sinal de sada digital Resetar um sinal de sada digital (para 0) Setar um sinal de sada digital (para 1) Trocar o valor de um sinal de sada analgico Trocar o valor de um sinal de sada digital (valor simblico; por exemplo, high/low) Trocar o valor de um grupo de sinais de sada digital

6.3 Leitura do valor de um sinal de entrada


O valor de um sinal de entrada pode ser lido diretamente no programa, por exemplo: ! Entrada digital IF di1 = 1 THEN ... ! Entrada de grupo digital IF gi1 = 5 THEN ...

! Entrada analgica IF ai1 > 5.2 THEN ...

Caracterstica gerais

3-19

Sinais de Entrada e Sada

Sumrio RAPID

6.4 Testando a entrada em sinais de sada


Instruo WaitDI WaitDO Funo TestDI Usada para: Esperar at que uma entrada digital seja ajustado ou reajustado Esperar at que um digital de sada seja ajustado ou reajustado Usada para: Testar se uma entrada digital est ajustada

6.5 Desativar e ativar mdulos de E/O


Os mdulos E/O so ativados automaticamente na inicializao, mas podem ser desativados durante a execuo do programa e reativados mais tarde. Instruo IODisable IOEnable Usada para: Desativar um mdulo de E/O Ativar um mdulo de E/O

6.6 Definir sinais de entrada e de sada


Tipos de dado dionum signalai signalao signaldi signaldo signalgi signalgo Instruo AliasIO1 Usados para definir: O valor simblico de um sinal digital O nome de um sinal de entrada analgico * O nome de um sinal de sada analgico * O nome de um sinal de entrada digital * O nome de um sinal de sada digital * O nome de um grupo de sinais de entrada digital * O nome de um grupo de sinais de sada digital * Usada para: Definir um sinal com um pseudnimo

* Somente defindos pelos parmetros do sistema.

1. Apenas se o rob estiver equipado com a opo Developers Functions

3-20

Caracterstica gerais

Sumrio RAPID

Comunicao

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.

Caracterstica gerais

3-21

Comunicao

Sumrio RAPID

7.2 Comunicao usando-se a unidade de programao


Instruo TPErase TPWrite ErrWrite TPReadFK TPReadNum TPShow Usada para: Limpar o display da unidade de programao Escrever textos no display da unidade de programao Escrever textos no display da unidade de programao e simultaneamente armazenar a mensagem no registro de eventos Etiquetar as teclas de funo e ler qual tecla est pressio nada Ler um valor numrico a partir da unidade de programao Escolher uma janela na unidade de programao a partir do RAPID

7.3 Ler ou escrever em um canal serial baseado em caracteres / arquivo


Instruo Open1 Write1 Close1 Funo ReadNum1 ReadStr1 Usada para: Abrir um canal/arquivo para escrita ou leitura Escrever um texto em um canal/arquivo Fechar o canal/arquivo Usada para: Ler um valor numrico Ler um string de texto

7.4 Comunicao usando-se canais/arquivos seriais binrios


Instruo Open1 WriteBin1 WriteStrBin1 Rewind1 Close1 WriteBin1 Funo ReadBin1 Usada para: Abrir um canal serial/arquivo para transferncia binria de dados Escrever para um canal/arquivo serial binrio Escrever um string para um canal/arquivo serial binrio Ajustar a posio do arquivo no incio do arquivo Fechar o canal/arquivo Escrever em um canal serial binrio Usada para: Ler um canal serial binrio

1. Somente se rob for equipado com a opo Advanced functions

3-22

Caracterstica gerais

Sumrio RAPID

Comunicao

7.5 Dados para canais seriais


Tipo de dado iodev Usado para definir: Uma referncia para um canal serial/arquivo que pode ser usada para leitura e escrita

Caracterstica gerais

3-23

Comunicao

Sumrio RAPID

3-24

Caracterstica gerais

Sumrio RAPID

Interrupes

8 Interrupes
Interrupes so usadas pelo programa para habilita-lo a tratar diretamente de um evento, independente de qual instruo est sendo executada naquele instante. O programa interrompido, por exemplo, quando uma entrada especfica vai a um. Quando isto ocorrer, o programa interrompido e uma rotia trap especial executada. Quando esta tiver sido totalmente executada, o programa continua de onde ele foi interrompido.

8.1 Princpios de programao


Cada interrupo associada uma identidade de interrupo. Ela obtm esta identidade pela criao de uma varivel (do tipo de dado intnum) e conectando-a uma rotina trap. A identidade da interrupo (varivel) ento usada para ordenar uma interrupo, isto , para especificar a razo da interrupo. Isto pode ser um seguintes eventos: - uma entrada ou sada ajustada a um ou a zero. - um certo intervalo de tempo decorre aps o qual a interrupo ordenada. - uma posio especfica alcanada. Quando uma interrupo ordenada, ela tambm automaticamante habilitada, mas pode ser temporariamente desabilitada. Isto pode orcorrer em duas situaes: - Todas as interrupes podem estar desabilitadas. Quaisquer interrupes que ocorram durante este perodo so colocadas em uma fila e ento so automaticamente geradas quando as interrupes so novamente habilitadas. - As interrupes individuais podem estar desativadas. Quaisquer interrupes que ocorram durante este perodo so desconsideradas.

8.2 Conexo das interrupes s rotinas trap


Instruo CONNECT Usada para: Conectar uma varivel (identidade de interrupo) uma rotina trap

Caracterstica gerais

3-25

Interrupes

Sumrio RAPID

8.3 Ordenar interrupes


Instruo ISignalDI SignalDO ITimer TriggInt1 Movimento) Usada para ordenar: Uma interrupo a partir de um sinal de entrada digital Uma interrupo de um sinal de sada digital Uma interrupo programada Uma interrupo de posio fixa (a partir da lista de escolha de

8.4 Cancelar interrupes


Instruo IDelete Usada para: Cancelar (deletar) uma interrupo

8.5 Habilitar/Desabilitar interrupes


Instruo ISleep IWatch IDisable IEnable Usada para: Desativar uma interrupo individual Ativar uma interrupo individual Desabilitar todas as interrupes Habilitar todas as interrupes

8.6 Tipos de dados para interrupes


Tipo de dado intnum Usado para definir: A identidade de uma interrupo

1. Only if the robot is equipped with the option Advanced functions

3-26

Caracterstica gerais

Sumrio RAPID

Recuperao de Erros

9 Recuperao de Erros
Muitos dos erros que ocorrem quando um programa est sendo executado podem ser tratados pelo programa, o que significa qua a sua execuo no precisa ser interrompida. Estes erros so ou do tipo detectados pelo rob, tais como, diviso por zero, ou do tipo detectados pelo programa, tais como os erros que ocorrem quando um valor incorreto lido por uma leitora de cdigo de barras.

9.1 Princpios de programao


Quando ocorre um erro, o tratamento de erros da rotina chamado (se existir um). Tambm possvel criar um erro a partir de dentro do programa e ento saltar para o tratamento de erro. Se a rotina no possuir um tratamento de erro, uma chamada ser feita para o tratamento na rotina que chamou a rotina em questo. Se l tambm no existir um tratamento de erro, uma chamada ser feita para o tratamento da rotina que chamou aquela rotina e assim por diante at que o tratamento de erros interno do rob assuma e d uma mensagem de erro e pare a execuo do programa. No tratamento de erros, eles podem ser tratados usando-se instrues normais. Os dados do sistema ERRNO podem ser usados para se determinar o tipo de erro que ocorreu. Um retorno do tratamento de erros pode ser feito de vrias maneiras. Em liberaes futuras, se a rotina atual no tiver um tratamento de erro, o tratamento de erro interno do rob assume diretamente o controle. O tratamento de erro interno ativa uma mensagem de erro e pra a execuo do programa com o ponteiro do programa na instruo que estiver errada. Portanto, uma boa regra para esta questo a seguinte: se voc quiser chamar o tratamento de erro da rotina que chamou a rotina atual (propaga o erro), deve: - Acrescentar um tratamento de erro na rotina atual - Acrescentar a instruo RAISE neste tratamento de erro.

Caracterstica gerais

3-27

Recuperao de Erros

Sumrio RAPID

9.2 Criao de uma situao de erro a partir de dentro do programa


Instruo RAISE Usada para: Criar um erro e chamar o tratamento de erros

9.3 Reincio/retorno do tratamento de erros


Instruo EXIT RAISE RETRY TRYNEXT RETURN Usada para: Parar a execuo do programa no caso de um erro fatal Chamar o tratamento de erro da rotina que chamou a rotina atual Executar novamente a instruo que causou o erro Executar a instruo seguinte da instruo que causou o erro Retornar para a rotina que chamou a rotina atual

9.4 Dados para tratamento de erros


Tipo de dado errnum Usado para definir: A razo do erro

3-28

Caracterstica gerais

Sumrio RAPID

Sistema & Tempo

10 Sistema & Tempo


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

10.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.

10.2 Utilizao do relgio para temporizar um evento


Instruo ClkReset ClkStart ClkStop Funo ClkRead Tipo de dado clock Usada para: Resetar um relgio usado para temporizao Iniciar um relgio usado para temporizao Parar um relgio usado para temporizao Usada para: Ler um relgio usado para temporizao Usado para: Temporizao armazena uma medio em segundos

10.3 Leitura da hora e data atuais


Funo CDate CTime GetTime Usada para: Ler a data atual como um texto (string) Ler a hora atual como um texto (string) Ler a hora atual como um valor numrico

Caracterstica gerais

3-29

Sistema & Tempo

Sumrio RAPID

10.4 Recuperar informao de hora/data a partir do arquivo


Funo FileTime ModTime Usada para: Recuperar a ltima data de modificao de um arquivo. Recuperar a hora de carga de um mdulo especfico.

3-30

Caracterstica gerais

Sumrio RAPID

Matemtica

11 Matemtica
Instrues matemticas e funes so usadas para o clculo e troca dos valores dos dados.

11.1 Princpios de programao


Os clculos normalmente so efetuados por instrues de associao, por exemplo reg1:= reg2 + reg3 / 5. Existem tambm algumas instrues usadas para clculos simples, tais como limpar uma varivel numrica.

11.2 Clculos simples em dados numricos


Instruo Clear Add Incr Decr Usada para: Limpar o valor Adicionar ou subtrair um valor Incrementar de 1 Decrementar de 1

11.3 Clculos mais avanados


Instruo := Usada para: Efetuar clculos em quaisquer tipos de dados

Caracterstica gerais

3-31

Matemtica

Sumrio RAPID

11.4 Funes aritmticas


Funo Abs Round Trunc Sqrt Exp Pow ACos ASin ATan ATan2 Cos Sin Tan EulerZYX OrientZYX PoseInv PoseMult PoseVect Vectmagn DotProd NOrient Usada para: Calcular o valor absoluto Arredondar um valor numrico Truncar um valor numrico Calcular a raiz quadrada Calcular o valor exponencial na base e Calcular o valor exponencial com uma base arbitrria Calcular o valor do arco coseno Calcular o valor do arco seno Calcular o valor do arco tangente na faixa [-90,90] Calcular o valor do arco tangente na faixa [-180,180] Calcular o valor do coseno Calcular o valor do seno Calcular o valor da tangente Calcular os ngulos de Euler a partir de uma orientao Calcular a orientao a partir dos ngulos de Euler Inverter uma posio (pose) Multiplicar uma posio (pose) Multiplicar uma posio (pose) e um vetor Calcular a magnitude de um vetor pos. Calcular o produto decimal (ou escalar) de dois vetores de pos. Normaliza a orientao fora de norma (quartrnion)

3-32

Caracterstica gerais

Sumrio RAPID

Solda a Ponto

12 Solda a Ponto
O pacote SpotWare suporta as aplicaes de solda a ponto que so equipadas com um temporizador de solda e uma pina tipo on/off. A aplicao SpotWare possibilita um posicionamento rpido e preciso combinado com a manipulao da pina, incio do processo e superviso de um temporizador externo. A comunicao com o equipamento de solda executada atravs de entradas e sadas digitais. Algumas interfaces do controlador de solda serial so tambm suportadas : Bosch PSS5000, NADEX, ABB Timer. Veja a documentao em separado. Deve se salientar que o SpotWare um pacote que pode ser extensamente personalizado. O objetivo que o usurio adapte alguns dados e rotinas do usurio conforme a situao do ambiente.

12.1 Caractersticas da solda a ponto


O pacote SpotWare possui as seguintes caractersticas: - Posicionamento rpido e preciso - Manuseio de uma pina on/off com dois cursos - Pinas duplas/simples - Pr-fechamento da pina - Superviso definida pelo usurio do equipamento circundante antes do incio da solda - Superviso definida pelo usurio do equipamento circundante depois da solda - Abertura/fechamento da pina e superviso definida pelo usurio - Ajustamento da presso defininida pelo usurio - Clculo do tempo de pr-fechamento definido pelo usurio - Monitorao do temporizador de solda externo - Recuperao de erro de solda com ressolda automtica - Retorno para a posio de solda a ponto - Contadores de pontos - Liberao para movimentao dependente do tempo - ou de sinal - aps a solda - Incio rpido (quick start) aps a solda - Rotinas de servio definidas pelo usurio - Pr-ajuste e verificao da presso da pina - Soldagem simulada - Execuo reversa com o controle da pina

Caracterstica gerais

3-33

Solda a Ponto
- Interfaces paralelos e seriais do temporizador de solda

Sumrio RAPID

- Suporta o programa e o incio de disparo do controlador de solda - Informaes dos dados atuais do SpotL/J - Informaes sobre a identidade do ponto: nome atual do parmetro dos dados do ponto (formato de string) - Transferncia de identidade do ponto para o temporizador de solda serial BOSCH PSS 5000 - Superviso autnoma definida pelo usurio, como o sinal de corrente de solda controlado pelo estado e arranque refrigerado com gua. Nota: Esta caracterstica necessita da opo Multitarefas - Solda manual, abertura da pina e fechamento da pina inicializados por entrada digital - Reconhecimento de erros opcional definida pelo usurio - possvel a inicializao do processo de solda independentemente da estado de posio

12.2 Princpios do SpotWare


O SpotWare se baseia num tratamento separado do movimento, da solda a ponto e, se Multitarefas estiver instalado, numa superviso contnua. Em direo posio programada, a tarefa do movimento ativar as aes nas tarefas de solda a ponto. As transies (triggers) so ativadas por sinais digitais virtuais. As tarefas trabalham com suas prprias variveis e persistentes internas encapsuladas que so totalmente transparentes para as outras tarefas. Para entradas bem definidas, os chamados das rotinas do usurio oferecem adaptaes ao ambiente da instalao. Tambm se encontram disponveis vrios parmetros prdefinidos para moldar o comportamento da instruo SpotL/J. Uma parada no programa somente pra a execuo da rotina de movimento. O processo e a superviso continuam com suas tarefas at uma parada de processo bem definida. Por exemplo, isso finaliza a solda e abre a pina, apesar do programa ter parado. A abertura e o fechamento da pina so sempre executados por rotinas RAPID, mesmo se elas forem ativadas manualmente da janela de E/S na unidade de programao. Estas rotinas podem ser alterdas desde uma funcionalidade padro liga/desliga at algo mais complexo como o controle analgico da pina e podem conter superviso de pina adicional. J que as tarefas de processo e de superviso atuam nos gatilhos (triggers) de E/S, elas sero executadas ou pelo gatilho que foi enviado pelo movimento (SpotL/J) ou por ativao manual (unidade de programao ou externo). Isto oferece a possibilidade de soldagens stand-alone em qualquer lugar sem a necessidade de programao de uma nova posio.

3-34

Caracterstica gerais

Sumrio RAPID

Solda a Ponto

igualmente possvel definir novas situaes de superviso e conect-las a sinais digitais de disparo. Por default, so implementados um estado dependente de energia de solda e um sinal de controle de gua de refrigerao. Equipamento suportado: - Um controlador de solda monitorizando as interfaces standard paralelas (algumas seriais). O temporizador de solda pode ser do tipo agenda do programa ou sinal de incio de disparo. - Qualquer tipo de pinas de fechamento simples/duplas e uma pina de controle do intervalo. - Qualquer tipo de pr-ajuste de presso. - Situao controlada por SpotL/J do equipamento de solda a ponto independente, tal como contatores, etc. (opo Multitarefas necessria).

12.3 Princpios de programao


Ambos o movimento linear do rob e o controle do processo de solda a ponto esto embutidos em uma instruo, SpotL. Ambos o movimento de juno do rob e o controle do processo de solda a ponto esto embutidos em uma instruo, SpotJ. O processo de solda especificado por: - Spotdata: dados do processo de solda - Gundata: dados da pina de solda - Mdulos do sistema SWUSRF e SWUSRC: rotinas RAPID e dados globais com propsitos de customizao. Veja Dados Pr-definidos e Programas ProcessWare. - Parmetros do sistema: a configurao de E/S. Veja o Guia do Usurio - Parmetros do sistema.

12.4 Instrues de Solda a ponto


Instruo SpotL Usada para: Controlar o movimento, o fechamento/ abertura da pina e o processo de soldagem Movimentar o TCP num trajeto linear e executar a solda a ponto na posio final Controlar o movimento, o fechamento/ abertura da pina e o processo de soldagem Movimentar o TCP num trajeto no linear e executar a solda a ponto na posio final Solda a ponto com vrias pinas

SpotJ

SpotML

Caracterstica gerais

3-35

Solda a Ponto

Sumrio RAPID

12.5 Dados de Solda a ponto


Tipo de dado spotdata gundata spotmdata gunmdata Usado para definir: O controle do processo de solda a ponto A pina de solda a ponto O controle do processo de soldagem a ponto para vrias pinas Dados de pina de soldagem a ponto para vrias pinas

3-36

Caracterstica gerais

Sumrio RAPID

Solda a Arco

13 Solda a Arco
O pacote ArcWare suporta a maioria das funes de soldagem. O enchimento de cratera e a raspagem (scraping start) podem, por exemplo, ser programados. Usando-se o ArcWare, todo o processo de soldagem pode ser controlado e monitorado pelo rob atravs de um nmero de diferentes entradas e sadas analgicas e digitais.

13.1 Princpios de programao


As mesmas instrues podem ser usadas para controlar ambos o movimento do rob e o processo de soldagem real. As instrues de solda a arco indicam quais dados de solda (welddata) e de costura (seamdata) so usados na solda em questo. Os ajustes da solda para a fase de solda real so definidos nos dados de solda (welddata). As fases de incio e fim so definidas nos dados de costura (semadata). Qualquer ondulao definida nos dados de ondulao (weavedata), que tambm indicado pela instruo de solda a arco. Certas funes, tais como raspagem (scraping start), so definidas nos parmetros do sistema. O processo de soldagem dividido nas seguintes fases:

INCIO

SOLDA

FIM
TRMINO ENCHIM. PS-AO

PR-AO

IGNIO

AQUEC.

13.2 Instrues de solda a arco


Instruo ArcC ArcL Tipo de movimento: TCP em um trajetria circular TCP em um trajetria linear

Caracterstica gerais

3-37

Solda a Arco

Sumrio RAPID

13.3 Instrues adicionais de solda a arco


Instruo ArcRefresh ArcKill SpcWrite SpcStat SpcRead SpcDump SpcDiscon SpcCon Tipo de movimento: Atualizar dados ArcWeld Eliminar o processo ArcWeld Grava em um controlador de processos estatsticos Status do controlador de processos estatsticos L o status de processo atual Transfere informaes de controle de processos estatsticos Desconecta de um controlador de processos estatsticos Conecta a um controlador de processos estatsticos

13.4 Dados de solda a arco


Tipo de dados welddata seamdata weavedata arcdata Usado para definir: A fase da solda As fases inicial e final da solda As caractersticas da ondulao Dados do processo de arco

13.5 Dados adicionais de solda a arco


Tipo de dados spcdescr spcdata Usado para definir: Descritor do controle de processos estatsticos Dados de controle de processos estatsticos

3-38

Caracterstica gerais

Sumrio RAPID

GlueWare

14 GlueWare
O pacote GlueWare oferece suporte para as aplicaes de colagem que so equipadas com uma ou mais pinas de cola. A aplicao GlueWare oferece posicionamento rpido e eficaz combinado com a manipulao da pina, processa comear e parada. A comunicao com o equipamento de colagem levada a cabo por meio de sadas digitais e analgicas .

14.1 Caratersticas de colagem


O pacote GlueWare contm as seguintes caratersticas: - Posicionamento rpido e eficaz - Manuseio de pinas de on/off bem como pinas proporcionais - Podem ser manuseadas no mesmo programa duas pinas diferentes, cada pina controlada por um sinal digital (on/off) e dois sinais analgicos (fluxos) - Pr-abertura e pr-fechamento da pina, respetivamente - Colagem simulada

14.2 Princpios de programao


O movimento do rob e o controle do processo de colagem esto ambos unidos numa s instruo, GlueL e GlueC, respetivamente. O processo de colagem especificado por: - Gundata: cola dados de pina. Veja Data types - ggundata. - As rotinas do mdulo de sistema GLUSER: rotinas RAPID e dados globais para fins de personalizao. Veja Dados pr-definidos e Programas - Mdulo do Sistema GLUSER. - Parmetros do Sistema: a configurao de E/S. Veja Parmetros do SistemaGlueing

Caracterstica gerais

3-39

GlueWare

Sumrio RAPID

14.3 Instrues de colagem


Instruo GlueL GlueC Usado para: Mova o TCP ao longo de um trajeto linear e execute a colagem com os dados fornecidos Mova o TCP ao longo de um trajeto circular e execute a colagem com os dados fornecidos

14.4 Dados de colagem


Tipo de dados ggundata Usado para definir: A pina de cola usada

14.5 Dados do DispenseWare


Tipo de dados beaddata equidata Usado para definir: Dados de distribuio de rebordo Dados de distribuio de equipamento

3-40

Caracterstica gerais

Sumrio RAPID

Comunicao com Computador Externo

15 Comunicao com Computador Externo


O rob pode ser controlado por um computador superior. Neste caso, um protocolo de comunicao especial usado para transferir a informao.

15.1 Princpios de programao


Como um protocolo de comunicao comum usado para transferir informaes do rob para o computador e vice-e-versa, o rob e o computador podem se entender e nenhuma programao necessria. O computador pode, por exemplo, alterar valores nos dados do programa sem que nenhuma programao seja feita (exceto para definir estes dados). A programao somente necessria quando informaes controladas pelo programa devem ser enviadas do rob para o computador superior.

15.2 Envio de mensagem controlada pelo programa do rob para o computador


Instruo SCWrite1 Usada para: Enviar uma mensagem para o computador superior

1. Somente se o rob for equipado com a opo RAP Serial Link.

Caracterstica gerais

3-41

Comunicao com Computador Externo

Sumrio RAPID

3-42

Caracterstica gerais

Sumrio RAPID

Instrues de suporte do RAPID

16 Instrues de suporte do RAPID


Vrias funes para suporte da linguagem RAPID: - Obter dados do sistema

16.1 Obter dados do sistema


Instruo para obter o valor e (opcionalmente) o nome do smbolo dos dados atuais de sistema do tipo especificado. Instruo GetSysData usada para: Obtm dados e o nome do objeto de trabalho ou ferramenta atualmente ativo(a).

Caracterstica gerais

3-43

Instrues de suporte do RAPID

Sumrio RAPID

3-44

Caracterstica gerais

Sumrio RAPID

Instrues de Servio

17 Instrues de Servio
Um nmero de instrues esto disponveis para testar o rob. Veja o Captulo sobre Deteco de Falhas no Manual do Produto para mais informaes.

17.1 Direcionamento de um valor para o sinal de teste do rob


Um sinal de referncia, tal como a velocidade de um motor, pode ser direcionado para um sinal de sada analgica localizado na placa traseira do rob. Instruo TestSign Tipo de dados testsignal Usada para: Definir a ativar o inal de teste Usado para definir: O tipo do sinal de teste

Caracterstica gerais

3-45

Instrues de Servio

Sumrio RAPID

3-46

Caracterstica gerais

Sumrio RAPID

Funes com Strings

18 Funes com Strings


Funes com strings so usadas para operaes com strings tais como cpia, concatenao, comparao, procura, converso, etc.

18.1 Operaes bsicas


Tipo de dado string Instruo/Operador := + Funo StrLen StrPart Usado para definir: String. Constantes pr-definidas STR_DIGIT, STR_UPPER, STR_LOWER e STR_WHITE Usada para: Associar um valor (cpia do string) Concatenar um string Usada para: Encontar o comprimento do string Obter parte de um string

18.2 Comparao e Procura


Operador = <> Funo StrMemb StrFind StrMatch StrOrder Usado para: Testar se igual a Testar se no igual a Usada para: Verificar se o caracter pertence a um conjunto Procurar por um caracter em um string Procurar por um padro (pattern) em um string Verificar se os strings esto em ordem

Caracterstica gerais

3-47

Funes com Strings

Sumrio RAPID

18.3 Converso
Funo NumToStr ValToStr StrToVal StrMap StrToByte ByteToStr Usada para: Converter um valor numrico em um string Converter um valor num string Converter um string num valor Mapear um string Converter um byte em dados de string Converter um string em um byte

3-48

Caracterstica gerais

Sumrio RAPID

Multitasking

19 Multitasking
Multitasking RAPID um modo de executar programas em (pseudo) paralelo com a execuo normal. Um programa paralelo poder ser colocado em primeiro plano ou em segundo plano em relao a outro programa. Poder estar tambm no mesmo nvel de outro programa. (Veja Multitarefas/Multitasking, Caractersticas Bsicas.)

19.1 Bsicos
Para usar esta funo, o rob dever estar configurado com uma TASK/TAREFA extra para cada programa em segundo plano. At 10 tarefas diferentes podero ser operadas em pseudo-paralelo. Cada tarefa composta de um conjunto de mdulos, de modo igual a um programa normal. Todos os mdulos, em cada tarefa, so locais. Em cada tarefa, as variveis e as constantes so locais mas no so persistentes. Uma persistente com o mesmo nome e tipo atingvel em todas as tarefas. Se duas persistentes tiverem o mesmo nome, mas diferente no tipo ou tamanho (dimenso de matriz), poder ocorrer um erro de tempo de percurso (runtime). Uma tarefa tem o seu prprio manuseio trap e as rotinas de de evento so disparadas somente nos estados de sistema de suas prprias tarefas (p. ex. Partida/Parada/Reincio...).

19.2 Proteo de acesso de Recurso


Funo TestAndSet Usada para: Repr o direito exclusivo para especificar reas de cdigo RAPID ou recursos do sistema.

Caracterstica gerais

3-49

Multitasking

Sumrio RAPID

3-50

Caracterstica gerais

Sumrio RAPID

Sumrio da Sintaxe

20 Sumrio da Sintaxe
20.1 Instrues Data := Value AccSet Acc Ramp

ActUnit MecUnit Add Name AddValue

ArcRefresh ArcKill Break CallBy Var Name Number Clear Name Clock Clock Clock IODevice

ClkReset ClkStart ClkStop Close

! Comment ConfJ ConfL [\On] | [\Off] [\On] | [\Off]

CONNECT Interrupt WITH Trap routine CorrClear CorrCon Descr CorrDiscon Descr CorrWrite CorrWrite Descr Data

Caracterstica gerais

3-51

Sumrio da Sintaxe
CorrClear DeactUnit MecUnit Decr Name
WObj

Sumrio RAPID

DropWObj

EOffsSet EAxOffs ErrWrite [ \W ] Header Reason [ \RL2] [ \RL3] [ \RL4] Exit ExitCycle FOR Loop counter FROM Start value TO End value [STEP Step value] DO ... ENDFOR GOTO Label Load
DestObject [\ ObjectName ]

GripLoad
GetSysData

IDelete IF

Interrupt ...

Condition

IF Condition THEN ... {ELSEIF Condition THEN ...} [ELSE ...] ENDIF Incr Name

IndAMove MecUnit Axis [ \ToAbsPos ] | [ \ToAbsNum ] Speed [ \Ramp ] IndCMove MecUnit Axis Speed [ \Ramp ] IndDMove MecUnit Axis Delta Speed [ \Ramp ] IndReset MecUnit Axis [ \RefPos ] | [ \RefNum ] | [ \Short ] | [ \Fwd ] | [ \Bwd ] | [ \Old ] IndRMove MecUnit Axis [ \ToRelPos ] | [ \ToRelNum ] | [ \Short ] | [ \Fwd ] | [ \Bwd ] Speed [ \Ramp ]

3-52

Caracterstica gerais

Sumrio RAPID
InvertDO
IODisable IOEnable

Sumrio da Sintaxe
Signal
UnitName MaxTime UnitName MaxTime

ISignalDI

[ \Single ] Signal TriggValue Interrupt

ISignalDO [ \Single ] Signal TriggValue Interrupt ISleep ITimer Interrupt [ \Single ] Time Interrupt VarNo Value, Interrupt Interrupt ParIdType LoadIdType Tool [\PayLoad] [\WObj] [\ConfAngle] [\SlowTest] [\Accuracy]
ParIdType LoadIdType Tool [\PayLoad] [\WObj] [\ConfAngle] [\SlowTest] [\Accuracy]

IVarValue IWatch
LoadId

MechUnitLoad MechUnit AxisNo Load MoveAbsJ MoveC [ \Conc ] ToJointPos Speed [ \V ] | [ \T ] Zone [ \Z] Tool [ \WObj ]

[ \Conc ] CirPoint ToPoint Speed [ \V ] | [ \T ] Zone [ \Z] Tool [ \WObj ]


CirPoint ToPoint Speed [ \T ] Zone Tool [\WObj ] Signal Value CirPoint ToPoint Speed [ \T ] Zone Tool [\WObj ] ProcName

MoveCDO MoveCSync

MoveJ

[ \Conc ] ToPoint Speed [ \V ] | [ \T ] Zone [ \Z ] Tool [ \WObj ]

MoveJDO ToPoint Speed [ \T ] Zone Tool [ \WObj ] Signal Value

MoveJSync MoveL

ToPoint Speed [ \T ] Zone Tool [ \WObj ] ProcName

[ \Conc ] ToPoint Speed [ \V ] | [ \T ] Zone [ \Z ] Tool [ \WObj ]

Caracterstica gerais

3-53

Sumrio da Sintaxe
MoveLDO ToPoint Speed [ \T ] Zone Tool [ \WObj ] Signal Value

Sumrio RAPID

MoveLSync ToPoint Speed [ \T ] Zone Tool [ \WObj ] ProcName MotionSup Open [ \On] | [ \Off] [\TuneValue]

Object [\File] IODevice [\Read] | [\Write] | [\Append] | [\Bin]

ParIdPosValid ( ParIdType Pos AxValid [\ConfAngle] )

ParIdRobValid
PathResol Value

(ParIdType)

PDispOn [ \Rot ] [ \ExeP ] ProgPoint Tool [ \WObj ] PDispSet DispFrame Procedure PulseDO RAISE Reset { Argument } [ \PLength ] Signal [ Error no ] Signal [ Return value ] IODevice

RETURN Rewind Save

[\Task] ModuleName [\FilePath] [\File]

SearchC [ \Stop ] | [ \PStop ] | [ \Sup ] Signal SearchPoint CirPoint ToPoint Speed [ \V ] | [ \T ] Tool [ \WObj ] SearchL [ \Stop ] | [ \PStop ] | [ \Sup ] Signal SearchPoint ToPoint Speed [ \V ] | [ \T ] Tool [ \WObj ] Set Signal Signal Value [ \SDelay ] Signal Value Signal Value [ \Wrist] | [ \Arm] | [ \Off]

SetAO SetDO SetGO SingArea

3-54

Caracterstica gerais

Sumrio RAPID
SoftAct Axis Softness [\Ramp ]

Sumrio da Sintaxe

SpcCon Descr Status [\GrpSize ] [\Teach ] [\Strict ] [\Header ] [\BackupFile ] SpcDiscon Descr SpcDump SpcRead SpcStat SpotJ SpotL SpotML Stop [ \NoRegain ] ToPoint Speed Spot [\InPos] [\NoConc] [\Retract] Gun Tool [\WObj]

TEST Test data {CASE Test value {, Test value} : ...} [ DEFAULT: ...] ENDTEST

Caracterstica gerais

3-55

Sumrio da Sintaxe

Sumrio RAPID

TPReadFK Answer String FK1 FK2 FK3 FK4 FK5 [\MaxTime] [\DIBreak] [\BreakFlag] TPReadNum Answer String [\MaxTime] [\DIBreak] [\BreakFlag] TPShow TPWrite Window String [\Num] | [\Bool] | [\Pos] | [\Orient]

TriggC CirPoint ToPoint Speed [ \T ] Trigg_1 [ \T2 ] [ \T3 ] [ \T4] Zone Tool [ \WObj ] TriggEqip TriggInt TriggData Distance [ \Start ] | [ \Time ] Interrupt TriggIO TriggData Distance [ \Start ] | [ \Time ] [ \DOp ] | [ \GOp ] | [\AOp ] SetValue [ \DODelay ] | [ \AORamp ] TriggJ ToPoint Speed [ \T ] Trigg_1 [ \T2 ] [ \T3 ] [ \T4 ] Zone Tool [ \WObj ] TriggL ToPoint Speed [ \T ] Trigg_1 [ \T2 ] [ \T3 ] [ \T4 ] Zone Tool [ \WObj ] TuneServo MecUnit Axis TuneValue TuneServo MecUnit Axis TuneValue [\Type] UnLoad FilePath [\File] VelSet WaitDI Override Max Signal Value [\MaxTime] [\TimeFlag]

WaitDO Signal Value [\MaxTime] [\TimeFlag] WaitTime WaitUntil


WaitWObj

[\InPos] Time [\InPos] Cond [\MaxTime] [\TimeFlag]


WObj [ \RelDist ]

WHILE

Condition DO ... ENDWHILE

Write IODevice String [\Num] | [\Bool] | [\Pos] | [\Orient] [\NoNewLine] WriteBin IODevice Buffer NChar

3-56

Caracterstica gerais

Sumrio RAPID
WriteStrBin IODevice Str

Sumrio da Sintaxe

WZBoxDef [\Inside] | [\Outside] Shape LowPoint HighPoint 1 WZCylDef [\Inside] | [\Outside] Shape CentrePoint Radius Height WZDisable WorldZone WZDOSet [\Temp] | [\Stat] WorldZone [\Inside] | [\Before] Shape Signal SetValue WZEnable WorldZone WZFree WorldZone WZLimSup [\Temp] | [\Stat] WorldZone Shape WZSphDef [\Inside] | [\Outside] Shape CentrePoint Radius

20.2 Funes Abs (Input) ACos (Value) (Signal)


(Parameter)

AOutput
ArgName

ASin ATan ATan2

(Value) (Value) (Y X) (ByteData [\Hex] | [\Okt] | [\Bin] | [\Char]) (Clock)

ByteToStr ClkRead CorrRead Cos CPos CRobT

(Angle) ([Tool] [\WObj]) ([Tool] [\WObj]) (OldP1 OldP2 OldP3 NewP1 NewP2 NewP3)

DefDFrame

Caracterstica gerais

3-57

Sumrio da Sintaxe
DefFrame Dim (NewP1 NewP2 NewP3 [\Origin])

Sumrio RAPID

(ArrPar DimNo) (Signal)


(Vector1 Vector2)

DOutput
DotProd

EulerZYX Exp

([\X] | [\Y] | [\Z] Rotation)

(Exponent)

FileTime ( Path [\ModifyTime] | [\AccessTime] | [\StatCTime] ) GOutput GetTime (Signal) ( [\WDay] | [\Hour] | [\Min] | [\Sec] )

IndInpos MecUnit Axis IndSpeed MecUnit Axis [\InSpeed] | [\ZeroSpeed] IsPers IsVar MirPos (DatObj) (DatObj) (Point MirPlane [\WObj] [\MirY])

ModTime ( Object ) NOrient NumToStr Offs (Rotation) (Val Dec [\Exp])

(Point XOffset YOffset ZOffset) (ZAngle YAngle XAngle)

OrientZYX

ORobT (OrgPoint [\InPDisp] | [\InEOffs]) PoseInv (Pose) PoseMult (Pose1 Pose2) PoseVect Pow (Pose Pos)

(Base Exponent) (OptPar)

Present

3-58

Caracterstica gerais

Sumrio RAPID
ReadBin (IODevice [\Time])

Sumrio da Sintaxe

ReadMotor [\MecUnit ] Axis ReadNum ReadStr RelTool Round Sin Sqrt (IODevice [\Time]) (IODevice [\Time]) (Point Dx Dy Dz [\Rx] [\Ry] [\Rz])

( Val [\Dec])

(Angle) (Value) (Str ChPos Set [\NotInSet]) (Str) ( Str FromMap ToMap) (Str ChPos Pattern) (Str ChPos Set) ( Str1 Str2 Order) (Str ChPos Len) (ConStr [\Hex] | [\Okt] | [\Bin] | [\Char])

StrFind StrLen StrMap StrMatch StrMemb StrOrder StrPart

StrToByte

StrToVal ( Str Val ) Tan (Angle) (Signal) Object

TestDI

TestAndSet Trunc

( Val [\Dec] ) ( Val )


(Vector)

ValToStr
VectMagn

Caracterstica gerais

3-59

Sumrio da Sintaxe

Sumrio RAPID

3-60

Caracterstica gerais

Caractersticas Bsicas RAPID

Execuo de trs para frente

1 Elementos Bsicos
1.1 Identificadores
Identificadores so usados para nomear mdulos, rotinas, dados e etiquetas (labels); por exemplo MODULE module_name PROC routine_name() VAR pos data_name; label_name:

O primeiro caracter em um identificador deve ser uma letra. Os outros caracteres podem ser letras, nmeros ou sublinhados _. O mximo comprimento de qualquer identificador 16 caracteres, cada um deles sendo significante. Os identificadores so considerados os mesmos se forem digitados em letra maiscula. Palavras reservadas As palavras listadas abaixo so reservadas. Elas possuem um significado especial na linguagem RAPID e portanto no devem ser usadas como identificadores. Existem tambm determinados nomes pr-definidos para tipos de dados, dados de sistema, instrues e funes que no devem ser usados como identificadores. Veja os Captulos 7, 8, 9, 10, 13, 14 e 15 neste Manual ALIAS CONNECT DO ENDFUNC ENDRECORD ERROR FROM INOUT NOSTEPIN PERS RECORD SYSMODULE TRAP VIEWONLY AND CONST ELSE ENDIF ENDTEST EXIT FUNC LOCAL NOT PROC RETRY TEST TRUE WHILE BACKWARD DEFAULT ELSEIF ENDMODULE ENDTRAP FALSE GOTO MOD NOVIEW RAISE RETURN THEN TRYNEXT WITH CASE DIV ENDFOR ENDPROC ENDWHILE FOR IF MODULE OR READONLY STEP TO VAR XOR

Caractersticas gerais

4-1

Execuo de trs para frente

Caractersticas Bsicas RAPID

1.2 Caracteres de espao e de linha


A linguagem de programao RAPID possui formato livre, o que significa que os espaos podem ser usados em qualquer lugar exceto em: - identificadores - palavras reservadas - valores numricos - placeholders Os caracteres de mudana de linha, tabulao e de mudana de pgina podem ser usados em qualquer lugar do mesmo modo que um espao, exceto dentro de comentrios. Identificadores, palavras reservadas e valores numricos podem ser separados uns dos outros por um espao, mudana de linha, tabulao ou mudana de pgina. Espaos desnecessrios e caracteres de mudana de linha sero automaticamente deletados de um programa carregado na memria. Conseqentemente os programas carregados a partir de um disquete e gravados novamente podem no ser idnticos.

1.3 Valores numricos


Um valor numrico pode ser expresso como - um inteiro, por exemplo 3, -100, 3E2 - um nmero decimal, por exemplo 3.5, -0.345, -245E-2 O valor deve estar na faixa especificada no formato flutuante padro ANSI IEEE 7541985 (preciso simples).

1.4 Valores lgicos


Um valor lgico pode ser expresso como TRUE ou FALSE.

1.5 Valores de string


Um valor de string uma seqncia de caracteres (ISO 8859-1) e de caracteres de controle (caracteres no-ISO 8859-1 na faixa de cdigo numrico 0-255). Cdigos de caracteres podem ser includos, sendo possvel a incluso de caracteres no imprimveis (dados binrios) tambm no string. O comprimento mximo do string 80 caracteres. Exemplo: "This is a string" "This string ends with the BEL control character \07"

Se uma barra invertida (que indica um cdigo de caracter) ou aspas forem includos, eles devem ser escritos duas vezes.

4-2

Caractersticas gerais

Caractersticas Bsicas RAPID


Exemplo:

Execuo de trs para frente

"This string contains a "" character" "This string contains a \\ character"

1.6 Comentrios
Os comentrios so usados para fazer o programa mais fcil de ser entendido. Eles no afetam o significado do programa de nenhuma forma. Um comentrio comea com um ponto de exclamao ! e termina com um caracter de mudana de linha. Ele ocupa uma linha interia e no pode ocorrer entre dois mdulos; Exemplo ! comentrio IF reg1 > 5 THEN ! comentrio reg2 := 0; ENDIF

1.7 Placeholders
Placeholders podem ser usados temporariamente para representar partes de um programa que ainda no est definido. Um programa que contem placeholders est sintaticamente correto e deve ser carregado na memria.

Caractersticas gerais

4-3

Execuo de trs para frente


Placeholder <TDN> <DDN> <RDN> <PAR> <ALT> <DIM> <SMT> <VAR> <EIT> <CSE> <EXP> <ARG> <ID> Representa:

Caractersticas Bsicas RAPID

definio do tipo de dados declarao de dados declarao de rotina parmetro alternativo opcinal formal parmetro formal opcinal dimenso matricial formal (conformidade) instruo referncia de objeto (varivel, persistente ou parmetro) condio else if de uma instruo if condio case de uma instruo test expresso argumento de chamada de procedimento identificador

1.8 Cabealho do arquivo


Um arquivo de programa comea com o seguinte cabealho: %%% VERSION:1 LANGUAGE:ENGLISH %%% (Verso do programa M94 ou M94A) (ou outra lngua qualquer: GERMAN or FRENCH)

1.9 Sintaxe
Identificadores (Identifiers) <identifier> ::= <ident> | <ID> <ident> ::= <letter> {<letter> | <digit> | _} Valores numricos (Numeric values) <num literal> ::= <integer> [ <exponent> ] | <integer> . [ <integer> ] [ <exponent> ] | [ <integer> ] . <integer> [ <exponent> ] <integer> ::= <digit> {<digit>} <exponent> ::= (E | e) [+ | -] <integer>

4-4

Caractersticas gerais

Caractersticas Bsicas RAPID


Valores lgicos (Logical values) <bool literal> ::= TRUE | FALSE Valores string (String values)

Execuo de trs para frente

<string literal> ::= " {<character> | <character code> } " <character code> ::= \ <hex digit> <hex digit> <hex digit> ::= <digit> | A | B | C | D | E | F | a | b | c | d | e | f Comentrios (Comments) <comment> ::= ! {<character> | <tab>} <newline> Caracteres (Characters) <character> ::= -- ISO 8859-1 -<newline> ::= -- newline control character -<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 <letter> ::= <upper case letter> | <lower case letter> <upper case letter> ::=
A|B|C|D|E|F|G|H|I|J |K|L|M|N|O|P|Q|R|S|T |U|V|W|X|Y|Z|||| |||||||||| | | | 1) | | | | | | | | | | | | 2) | 3) |

<lower case letter> ::=


a|b|c|d|e|f|g|h|i|j |k|l|m|n|o|p|q|r|s|t |u|v|w|x|y|z|||| | | | | | | | | | | | | | | 1) | | | | | | | | | | | | 2) | 3) |

1) letra nrdica eth. 2) Letra Y com acento agudo. 3) letra nrdica thorn.

Caractersticas gerais

4-5

Execuo de trs para frente

Caractersticas Bsicas RAPID

4-6

Caractersticas gerais

Caractersticas Bsicas RAPID

Execuo de trs para frente

2 Mdulos
O programa dividido em programa e mdulos de sistema. O programa tambm pode ser dividido em mdulos (veja a Figura 1). Mem. do programa Programa
Dados Programa Rotina principal Mdulo principal Mdulo 1 Mdulo 2 Mdulo 3 Mdulo 4 Dados Programa Rotina4 Rotina5 Rotina1 Rotina2 Rotina3

Mdulo sistema1 Dados Programa Mdulo sistema2 Rotina6 Rotina7


Figura 1 O programa pode ser dividido em mdulos.

2.1 Mdulos de programa


Um mdulo pode ser constitudo de diferentes dados e rotinas. Cada mdulo, ou o programa inteiro, pode ser copiado para o disquete, RAM disk, etc., e vice-versa. Um dos mdulos contem o procedimento de entrada global chamado main (principal). A execuo do programa significa, na realidade, a execuo do procedimento principal. O programa pode incluir vrios mdulos, mas somente um deles possuir o procedimento principal. Um mdulo pode, por exemplo, definir a interface com equipamento externo ou conter dados geomtricos gerados por sistemas CAD ou criados on-line por digitao (unidade de programao). As instalaes pequenas normalmente esto contidads em um mdulo enquanto as instalaes maiores podem possuir um mdulo principal que se referencia a rotinas e/ou dados contidos em um ou vrios mdulos.

Caractersticas gerais

4-7

Execuo de trs para frente

Caractersticas Bsicas RAPID

2.2 Mdulos de sistema


Os mdulos de sistema so usados para definir dados especficos de sistema e rotinas comuns, tais como ferramentas. Eles no esto includos quando um programa salvo, o que significa que qualquer atualizao feita em um mdulo de sistema afetar todos os programas existentes atuais, ou carregados em um estgio posterior na memria.

2.3 Declarao do mdulo


Uma declarao de um mdulo especifica o nome e os atributos daquele mdulo. Estes atributos somente podem ser adicionados off-line, sem a utilizao da unidade de programao. Seguem abaixo exemplos de atributos de um mdulo: Atributo SYSMODULE NOSTEPIN VIEWONLY READONLY NOVIEW Se especificado, o mdulo: um mdulo de sistema; caso contrrio, mdulo de programa no pode ser introduzido durante a execuo passo a passo no pode ser modificado no pode ser modificado, mas atributos podem ser removidos no pode ser visualizado mas apenas executado. As rotinas globais podem ser atingidas a partir de outros mdulos e so rodam sempre como o NOSTEPIN. Os valores atuais para dados globais podem ser atingidos a partir de outros mdulos ou a partir da janela de dados da unidade de programao. Um mdulo ou um programa contendo um mdulo de programa NOVIEW no pode ser guardado. Portanto, o NOVIEW dever ser usado em primeiro lugar para os mdulos do sistema. O NOVIEW s pode ser definido off-line num PC MODULE module_name (SYSMODULE, VIEWONLY) !definio de tipo de dados !declarao de dados !declaraes de rotinas ENDMODULE

Exemplo

Um mdulo no deve ter o mesmo nome que outro mdulo, rotina global ou dado.

2.4 Sintaxe
Declarao do mdulo (Module declaration) <module declaration> ::= MODULE <module name> [ <module attribute list> ] <lista de definio de tipos> <lista de declarao de dados> <lista de declarao de rotinas> ENDMODULE 4-8 Caractersticas gerais

Caractersticas Bsicas RAPID

Execuo de trs para frente

<module name> ::= <identifier> <lista de atributos de mdulos> ::= ( <atributo de mdulo> { , <atributo de mdulo> } ) <atributo de mdulo> ::= SYSMODULE | NOVIEW | NOSTEPIN | VIEWONLY | READONLY (Nota. Se usar dois ou mais atributos, estes tm que estar na ordem acima, o atributo NOVIEW s pode ser especificado independentemente ou juntamente com o atributo SYSMODULE.) <lista de definies de tipos> ::= { <definio de tipos> } <lista de declarao de dados> ::= { <declarao de dados> } <lista de declarao de rotinas> ::= { <declarao de rotinas> }

Caractersticas gerais

4-9

Execuo de trs para frente

Caractersticas Bsicas RAPID

4-10

Caractersticas gerais

Caractersticas Bsicas RAPID

Execuo de trs para frente

3 Rotinas
Existem trs tipos de rotinas (subprogramas): procedimentos, funes e traps. - Os procedimentos no retornam um valor e so usados para instrues. - As funes retornam um valor de um tipo especfico e so usados para expresses. - As rotinas trap so usadas para interrupes. Uma rotina trap pode ser associada com uma interrupo especfica e ento, se aquela interrupo em particular ocorrer em um estgio posterior, ela ser automaticamente executada. Uma rotina trap nunca pode ser explicitamente chamada a partir de um programa.

3.1 Escopo da rotina


O escopo de uma rotina denota a rea na qual a rotina visvel. A diretiva local opcional da declarao da rotina classifica a mesma como local (dentro de um mdulo), caso contrrio ela global. Exemplo: LOCAL PROC local_routine (... PROC global_routine (...

As seguintes regras de escopo se aplicam s rotinas (veja o exemplo na Figura 2): - o escopo de uma rotina global pode incluir qualquer mdulo. - o escopo de uma rotina local compreende o mdulo no qual ela est contida. - dentro de seu escopo, uma rotina local esconde qualquer rotina global ou dados com o mesmo nome. - dentro de seu escopo, uma rotina esconde instrues, rotinas pr-definidas e dados com o mesmo nome. Mdulo1
Rotina local a Rotina local b Rotina c Rotina d Rotina e

Mdulo2
Rotina local a Rotina local e Rotina f Rotina g Rotina h

Figura 2 Exemplo: as seguintes rotinas podem ser chamadas a partir da Rotina h: Mdulo1 - Rotina c, d. Mdulo2 - Todas as rotinas.

Uma rotina no deve ter o mesmo nome que outra rotina ou dado no mesmo mdulo. Uma rotina global no deve possuir o mesmo nome que um mdulo, rotina global ou dado global em outro mdulo.

Caractersticas gerais

4-11

Execuo de trs para frente

Caractersticas Bsicas RAPID

3.2 Parmetros
A lista de parmetros de uma declarao da rotina especifica os argumentos (parmteros reais) que devem/podem ser fornecidos quando a rotina chamada. Existem quatro tipos de parmetros diferentes (no modo de acesso): - Normalmente um parmetro usado como uma entrada e tratado como uma varivel da rotina. A troca da varivel no mudar o argumento correspondente. - Um parmetro INOUT especifica que o argumento correspondente deve ser uma varivel (inteira, elemento ou componente) ou uma persistente inteira que pode ser alterada pela rotina. - Um parmetro VAR especifica que o argumento correspondente deve ser uma varivel (inteira, elemento ou componente) que pode ser alterda pela rotina. - Um parmetro PERS especifica que o argumento correspondente deve ser uma persistente inteira que pode ser alterada pelo programa. Se um parmetro INOUT, VAR ou PERS for atualizado, isto significa na realidade, que o prprio argumento atualizado, isto , possvel usar argumentos para retornar valores para a rotina de chamada. Exemplo: PROC routine1 (num in_par, INOUT num inout_par, VAR num var_par, PERS num pers_par)

Um parmetro pode ser opcional e ser omitido da lista de argumentos de uma chamada de rotina. Um parmetro opcional denotado por um barra invertida \ antes dele. Exemplo: PROC routine2 (num required_par \num optional_par)

O valor de um parmetro opcional que omitido em uma chamada de rotina no pode ser referenciado. Isto significa que as chamadas de rotina devem ser verificadas para parmetros opcionais antes de utilizar outro parmetro opcional. Dois ou mais parmetros opcionais podem ser mutuamente exclusivos (isto , declarados para se excluirem), o que significa que somente um deles pode estar presente na chamada da rotina. Isto indicado por uma barra vertical | entre eles. Exemplo: PROC routine3 (\num exclude1 | num exclude2)

O tipo especial, switch, pode (somente) ser associado parmetros opcionais e possibilita um meio de usar argumentos tipo switch, isto , argumentos que somente so especificados por nomes (no valores). Um valor no pode ser transferido para um parmetro switch . A nica maneira de usar um parmetro switch verificar sua presena usando-se a funo pr-definida, Present. Exemplo: PROC routine4 (\switch on | switch off) ... IF Present (off ) THEN ... ENDPROC

4-12

Caractersticas gerais

Caractersticas Bsicas RAPID

Execuo de trs para frente

As matrizes podem se passar por argumentos. O grau de um argumento matricial (array) deve casar com o grau do parmetro formal correspondente. A dimenso de um parmetro matricial conforme (marcado com *). Portanto a dimenso real depende da dimenso do argumento correspondente na chamada da rotina. Uma rotina pode determinar a dimenso real de um parmetro usando-se a funo pr-definida, Dim. Exemplo: PROC routine5 (VAR num pallet{*,*})

3.3 Trmino da rotina


A execuo de um procedimento ou terminada explicitamente por uma instruo RETURN ou implicitamente, quando o final (ENDPROC, BACKWARD ou ERROR) do procedimento for atingido. A avaliao de uma funo deve ser terminada por uma instruo RETURN. A execuo de uma rotina trap terminada explicitamente usando-se a instruo RETURN ou implicitamente, quando o final (ENDTRAP ou ERROR) da rotina trap for atingido. A execuo continua a partir do ponto onde a interrupo ocorreu.

3.4 Declarao da rotina


Uma rotina pode conter declaraes da rotina (incluindo parmetros), dados, um corpo, um manipulador de trs para a frente (somente procedimentos) e um tratamento de erros (veja a Figura 3). As declaraes da rotina no podem ser agrupadas, isto , no possvel declarar uma rotina dentro de uma rotina. Mdulo
Declaraes de dados Rotina a Rotina b Rotina c Corpo (Instrues) Rotina d Manipulador trs p/ frente Rotina e Tratamento de erros
Figura 3 Uma rotina pode conter declaraes, dados, um corpo, manipulador de trs para frente e um tratamento de erros.

Declarao da rotina Declarao de dados

Caractersticas gerais

4-13

Execuo de trs para frente

Caractersticas Bsicas RAPID

Declarao de procedimento (Procedure declaration) Exemplo: Multiplicar todos os elementos de uma matriz por um fator; PROC arrmul( VAR num array{*}, num factor) FOR index FROM 1 TO dim( array, 1 ) DO array{index} := array{index} * factor; ENDFOR ENDPROC Declarao de funo (Function declaration) Uma funo pode retornar qualquer valor de tipo de dado, mas no um valor matricial. Exemplo: Retornar o comprimento de um vetor; FUNC num veclen (pos vector) RETURN Sqrt(Pow(vector.x,2)+Pow(vector.y,2)+Pow(vector.z,2)); ENDFUNC Declarao trap (Trap declaration) Exemplo: Responder a um alimentador vazio; TRAP feeder_empty wait_feeder; RETURN; ENDTRAP

3.5 Chamada de procedimento


Quando um procedimento for chamado, os argumentos que correspondem aos parmetros do procediemnto devem ser usados: - Parmetros obrigatrios devem ser especificados. Eles tambm devem ser especificados na ordem correta. - Argumentos opcionais podem ser omitidos. - Argumentos condicionais podem ser usados para transferir parmetros de uma chamada de rotina para outra. Veja o Captulo Utilizao de chamadas funcionais em expresses na pgina 32 para mais detalhes. O nome do procedimento pode ser estatisticamente especificado usando um identificador (early binding) ou avaliado durante o tempo de execuo a partir de uma expresso do tipo de string (late binbing). Apesar da early binding dever ser considerada uma forma de chamada de procedimento normal, por vezes o late binbing fornece um cdigo muito eficiente e compacto. O late binding definido colocando os sinais antes e depois da string que indica o nome do procedimento.

4-14

Caractersticas gerais

Caractersticas Bsicas RAPID


Exemplo: ! early binding TEST products_id CASE 1: proc1 x, y, z; CASE 2: proc2 x, y, z; CASE 3: ...

Execuo de trs para frente

! mesmo exemplo usando ligao tardia % proc + NumToStr(product_id, 0) % x, y, z; ... ! mesmo exemplo usando outra variante de ligao tardia VAR string procname {3} :=[proc1, proc2, proc3]; ... % procname{product_id} % x, y, z; ... Note que a ligao tardia est disponvel apenas para chamadas de procedimento e no para chamadas de funo.??? Se uma referncia feita a um procedimento desconhecido usando a ligao tardia, a varivel do sistema ERRNO definida para ERR_REFUNKPRC. Se uma referncia feita a um erro de chamada de procedimento (sintaxe, no procedimento) usando a ligao tardia, a varivel do sistema ERRNO definida para ERR_CALLPROC.

3.6 Sintaxe
Declarao da rotina (Routine declaration) <routine declaration> ::= [LOCAL] ( <procedure declaration> | <function declaration> | <trap declaration> ) | <comment> | <RDN> Parmetros (Parameters) <parameter list> ::= <first parameter declaration> { <next parameter declaration> } <first parameter declaration> ::= <parameter declaration> | <optional parameter declaration> | <PAR> <next parameter declaration> ::= , <parameter declaration> | <optional parameter declaration> | ,<optional parameter declaration> | , <PAR>

Caractersticas gerais

4-15

Execuo de trs para frente

Caractersticas Bsicas RAPID

<optional parameter declaration> ::= \ ( <parameter declaration> | <ALT> ) { | ( <parameter declaration> | <ALT> ) } <parameter declaration> ::= [ VAR | PERS | INOUT] <data type> <identifier> [ { ( * { , * } ) | <DIM>] } | switch <identifier> Declarao de procedimento (Procedure declaration) <procedure declaration> ::= PROC <procedure name> ( [ <parameter list> ] ) <data declaration list> <instruction list> [ BACKWARD <instruction list> ] [ ERROR <instruction list> ] ENDPROC <procedure name> ::= <identifier> <data declaration list> ::= {<data declaration>} Declarao de funo (Function declaration) <function declaration> ::= FUNC <value data type> <function name> ( [ <parameter list> ] ) <data declaration list> <instruction list> [ ERROR <instruction list> ] ENDFUNC <function name> ::= <identifier> Declarao da rotina trap (Trap routine declaration) <trap declaration> ::= TRAP <trap name> <data declaration list> <instruction list> [ ERROR <instruction list> ] ENDTRAP <trap name> ::= <identifier> Chamada de procedimento (Procedure call) <procedure call> ::= <procedure> [ <procedure argument list> ] ; <procedure> ::= <identifier> | % <expression> %

4-16

Caractersticas gerais

Caractersticas Bsicas RAPID

Execuo de trs para frente

<procedure argument list> ::= <first procedure argument> { <procedure argument> } <first procedure argument> ::= <required procedure argument> | <optional procedure argument> | <conditional procedure argument> | <ARG> <procedure argument> ::= , <required procedure argument> | <optional procedure argument> | , <optional procedure argument> | <conditional procedure argument> | , <conditional procedure argument> | , <ARG> <required procedure argument> ::= [ <identifier> := ] <expression> <optional procedure argument> ::= \ <identifier> [ := <expression> ] <conditional procedure argument> ::= \ <identifier> ? ( <parameter> | <VAR> )

Caractersticas gerais

4-17

Execuo de trs para frente

Caractersticas Bsicas RAPID

4-18

Caractersticas gerais

Caractersticas Bsicas RAPID

Execuo de trs para frente

4 Tipos de Dados (data types)


Existem dois tipos diferentes de tipos de dados: - um tipo atomic, no sentido que ele no definido baseado em nenhum outro tipo e no pode ser dividido em partes ou componentes, por exemplo, num. - um tipo record, composto por componentes nomeadas e ordenadas, por exemplo, pos. Uma componente pode ser do tipo atomic ou record. Um valor record pode ser expresso usando-se a representao agregada; exemplo [ 300, 500, depth ] valor pos record agregado.

Uma componente especfica de um dado record pode ser acessada usando-se o nome daquela componente; exemplo pos1.x := 300; atribuio da componente x da pos1.

4.1 Tipos de dados sem valor (non-value)


Cada tipo de dado disponvel ou um tipo com valor (value) ou sem valor (nonvalue). Simplesmente um tipo de dado com valor representa alguma forma de valor. Dados sem valor no podem ser usados em operaes orientadas por valor: - Inicializao - Associao (:=) - Verificaes Equal to (=) e not equal to (<>) - Instrues TEST - Parmetros IN (modo de acesso) em chamadas de rotina - Tipos de dados funcionais (return) Os dados de entrada (signalai, signaldi, signalgi) so do tipo semi value. Eles podem ser usados em operaes orientadas por valor, exceto inicializaes e associaes. A descrio de um tipo de dado somente especificada quando ele for um tipo semi value ou sem valor.

4.2 Tipos de dados iguais (alias)


Um tipo de dado alias definido como sendo igual a outro tipo. Dados com o mesmo tipo de dado (data type) podem ser substitudos um pelo outro. Exemplo: VAR dionum high:=1; VAR num level; level:= high; Est OK j que dionum um tipo de dado alias para num

Caractersticas gerais

4-19

Execuo de trs para frente

Caractersticas Bsicas RAPID

4.3 Sintaxe
<data type> ::= <identifier> [LOCAL] ( <record definition> | <alias definition> ) | <comment> | <TDN> <record definition>::= RECORD <identifier> <record component list> ; ENDRECORD <record component list> ::= <record component definition> | <record component definition> <record component list> <record component definition> ::= <data type> <record component name> <alias definition> ::= ALIAS <data type> <identifier> ; <data type> ::= <identifier>

4-20

Caractersticas gerais

Caractersticas Bsicas RAPID

Dados

5 Dados
Existem trs tipos de dados: variveis, persistentes e constantes. - uma varivel pode ter um novo valor durante a execuo do programa. - uma persistente pode ser descrita como uma varivel persistente. Isto obtido deixando-se uma atualizao do valor de uma persistente automaticamente causar a atualizao do valor de inicializao de sua declarao. (Quando um programa salvo o valor de inicializao de qualquer declarao da persistente reflete o valor atual da persistente). - uma constante representa um valor esttico e no pode ter um novo valor. Uma declarao introduz o dado pela associao de um nome (identificador) com um tipo de dado. Com execeo de dados pr-definidos e variveis de loops, todos os dados devem ser declarados.

5.1 Escopo dos dados


O escopo de um dado denota a rea na qual ele visvel. A diretiva local opcional da declarao classifica o dado como local (dentro de um mdulo), caso contrrio ele global. Note que a diretiva local pode ser usada somente a nvel de mdulo, no dentro de uma rotina. Exemplo: LOCAL VAR num local_variable; VAR num global_variable;

Dados declarados fora da rotina so chamados de dados de programa. As seguintes regras de escopo se aplicam aos dados de programa: - o escopo de dados pr-definidos ou globais pode incluir qualquer mdulo. - o escopo de dados locais compreende o mdulo no qual ele est contido. - dentro de seu escopo, dados locais escondem quaisquer dados globais ou rotinas com o mesmo nome (incluindo intrues, rotinas pr-definidas e dados). Dados de programa no devem ter o mesmo nome que os outros dados ou rotina no mesmo mdulo. Um dado global no deve possuir o mesmo nome que outro dado global ou rotina em outro mdulo. Uma persistente no deve ter o mesmo nome que outra persistente no mesmo programa. Dados declarados dentro da rotina so chamados de dados de rotina. Note que os parmetros de uma rotina tambm so tratados como dados de rotina. As seguintes regras de escopo se aplicam aos dados de rotina: - o escopo dos dados compreendem a rotina na qual eles esto contidos. - dentro de seu escopo, dados de rotina escondem quaisquer outras rotinas ou dados com o mesmo nome. Veja o exemplo da Figur 4. Manual de Referncia do RAPID 5-21

Dados

Caractersticas Bsicas RAPID

Mdulo1
Dado local a Dado local b Dado c Dado d Dado e

Mdulo2
Dado local a Dado local f Dado g Rotina local e Dado e1 Rotina h Dado h1 Dado c

Figur 4 Exemplo: Os seguintes dados podem ser chamados a partir da rotina e: Mdulo1: Dados c, d. Mdulo2: Dados a, f, g, e1. Os seguintes dados podem ser chamados a partir da rotina h: Mdulo1: Dado d. Mdulo2: Dados a, f, g, h1, c.

Dados de rotina no devem ter o mesmo nome que outros dados ou etiquetas na mesma rotina.

5.2 Declarao de variveis


Uma varivel introduzida por uma declarao de varivel. Exemplo: VAR num x;

Variveis de quaisquer tipo podem ter um formato matricial (de grau 1, 2 ou 3) pela adio de informaes dimensionais declarao. Uma dimenso um valor inteiro maior que 0. Exemplo: VAR pos pallet{14, 18};

Variveis com tipos de valor podem ser inicializadas (ter um valor inicial). A expresso usada para iniciar uma varivel deve ser constante. Note que o valor de uma varivel no inicializada pode ser usada, mas ela indefinida, isto , zero. Exemplo: VAR string author_name := "John Smith"; VAR pos start := [100, 100, 50]; VAR num maxno{10} := [1, 2, 3, 9, 8, 7, 6, 5, 4, 3];

5-22

Manual de Referncia do RAPID

Caractersticas Bsicas RAPID


O valor de inicializao setado quando: - o programa aberto, - o programa executado a partir de seu incio.

Dados

5.3 Declarao de persistentes


Persistentes somente podem ser declaradas a nvel de mdulo, no dentro de uma rotina, e devero ter sempre um valor inicial. O valor de inicializao deve ser um valor simples (sem dados ou operandos), ou um agregado simples com membros, que por sua vez, so valores simples ou agregados simples. Exemplo: PERS pos refpnt := [100.23, 778.55, 1183.98];

Persistentes de quaisquer tipo podem ter um formato matricial (de grau 1, 2 ou 3) pela adio de informaes dimensionais declarao. Uma dimenso um valor inteiro maior que 0. Exemplo: PERS pos pallet{14, 18} := [...];

Note que se o valor de uma persistente for atualizado, isto automaticamente causa a atualizao do valor de inicializao da declarao da persistente. Exemplo: PERS num reg1 := 0; ... reg1 := 5; Aps a execuo, o programa ter o seguinte aspecto: PERS num reg1 := 5; ... reg1 := 5; possvel declarar dois persistentes com nome igual em diferentes mdulos, se forem locais dentro do mdulo (PERS LOCAL), sem qualquer erro do sistema (escopo de dados diferente). Contudo, observar a limitao de que estes dois persistentes sempre tero o mesmo valor atual (usam a mesma posio na memria).

5.4 Declarao de constantes


Uma constante introduzida por uma declarao de constante. O valor de uma constante no pode ser modificado. Exemplo: CONST num pi := 3.141592654;

Uma constante de qualquer tipo pode ter um formato matricial (de grau 1, 2 ou 3) pela adio de informaes dimensionais declarao. Uma dimenso um valor inteiro maior que 0. Exemplo: CONST pos seq{3} := [[614, 778, 1020], [914, 998, 1021], [814, 998, 1022]]; 5-23

Manual de Referncia do RAPID

Dados

Caractersticas Bsicas RAPID

5.5 Dados de inicializao


O valor de inicializao para uma constante ou varivel pode ser uma expresso constante. O valor de inicializao para um dado persistente s pode ser uma expresso literal. Example: CONST num a := 2; CONST num b := 3; ! Correct syntax CONST num ab := a + b; VAR num a_b := a + b; PERS num a__b := 5; ! Faulty syntax PERS num a__b := a + b;

No quadro abaixo, voc pode ver o que acontece nas vrias atividades, por exemplo, partida a quente, novo programa, incio de programa, etc. * Gera uma erro quando existe um erro semntico no programa de tarefa real.
Tabela 1
Situaodo sistema Afeta Ligado (Partida a quente) Abre, Fecha ou Novo programa Inicia programa (Move PP para principal) Init Init Init Desaparece Inicia programa (Move PP para Rotina) Init Init Init Desaparece Inicia programa (Move PP para cursor) Inalterado Inalterado Inalterado Inalterado Inicia programa (chama Rotina) Inalterado Inalterado Inalterado Inalterado Inicia programa (aps ciclo) Inicia programa (Aps parada) Inalterado Inalterado Inalterado Inalterado

Constante Varivel Persistente Interrupes controladas Rotina de arraanque SYS_RESET (com ajustes de movimento) Arquivos Trajeto

Inalterado Inalterado Inalterado Re-ordenado N o executa

Init Init Init Desaparece

Inalterado Inalterado Inalterado Inalterado

Executa*

Executa

N o executa

N o executa

N o executa

N o executa

No executa

Fecha Refeito na ligao

Fecha Desaparece

Fecha Desaparece

Fecha Desaparece

Inalterado Desaparece

Inalterado Inalterado

Inalterado Inalterado

Inalterado Inalterado

5.6 Classe de armazenamento


A classe de armazenamento de um objeto de dados determina quando o sistema aloca e desaloca memria para o objeto de dados. A classe de armazenamento de um objeto de dados determinada pelo tipo de objeto de dados e o contexto de sua declarao, podendo ser esttica ou voltil.

5-24

Manual de Referncia do RAPID

Caractersticas Bsicas RAPID

Dados

Constantes, dados persistentes e variveis de mdulo so estticas, ou seja, tm o mesmo armazenamento durante a vida til de uma tarefa. Isso significa que qualquer valor atribudo a um dado persistente ou a uma varivel de mdulo sempre permanece inalterado at a prxima atribuio. As variveis de rotina so volteis. A memria necessria para armazenar o valor de uma varivel voltil alocada primeiro quando da chamada da rotina na qual a declarao da varivel est contida. A memria , posteriormente, desalocada no ponto de retorno da chamada rotina. Isso significa que o valor de uma varivel de rotina sempre indefinido antes da chamada rotina e sempre perdido (torna-se indefinido) no final da execuo da rotina. Em uma cadeia de chamadas recursivas rotina (uma rotina chamada a si mesma direta ou indiretamente), cada instncia da rotina recebe sua prpria posio de memria para a mesma varivel de rotina - so criadas vrias instncias da mesma varivel.

5.7 Sintaxe
Declarao de dados (Data declaration) <data declaration> ::= [LOCAL] ( <variable declaration> | <persistent declaration> | <constant declaration> ) | <comment> | <DDN> Declarao de variveis (Variable declaration) <variable declaration> ::= VAR <data type> <variable definition> ; <variable definition> ::= <identifier> [ { <dim> { , <dim> } } ] [ := <constant expression> ] <dim> ::= <constant expression> Declarao de persistentes (Persistent declaration) <persistent declaration> ::= PERS <data type> <persistent definition> ; <persistent definition> ::= <identifier> [ { <dim> { , <dim> } } ] := <literal expression>

Manual de Referncia do RAPID

5-25

Dados

Caractersticas Bsicas RAPID


Declarao de constantes (Constant declaration) <constant declaration> ::= CONST <data type> <constant definition> ; <constant definition> ::= <identifier> [ { <dim> { , <dim> } } ] := <constant expression> <dim> ::= <constant expression>

5-26

Manual de Referncia do RAPID

Caractersticas Bsicas RAPID

Execuo de trs para frente

6 Instrues
As instrues so executadas em sucesso a no ser que uma instruo de fluxo de programa, interrupo ou erro faa com que a execuo continue em qualquer outro lugar. A maioria das instrues so terminadas por ponto e vrgula ;. Uma etiqueta (label) terminada por dois pontos :. Algumas instrues so terminadas por palavras especficas: Instruo IF FOR WHILE TEST Exemplo: Palavra de terminao ENDIF ENDFOR ENDWHILE ENDTEST WHILE index < 100 DO . index := index + 1; ENDWHILE

6.1 Sintaxe
<instruction list> ::= { <instruction> } <instruction> ::= [<instrues de acordo com captulo separado deste manual> | <SMT>

Caractersticas gerais

4-27

Execuo de trs para frente

Caractersticas Bsicas RAPID

4-28

Caractersticas gerais

Caractersticas Bsicas RAPID

Execuo de trs para frente

7 Expresses
Uma expresso especifica uma operao um valor. Pode ser usada como: - uma instruo de associao - uma condio em uma instruo IF - um argumento em uma instruo - um argumento em uma chamada funcional p.ex. a:=3*b/c; p.ex. IF a>=3 THEN ... p.ex. WaitTime time; p.ex. a:=Abs(3*b);

7.1 Expresses aritmticas


Uma expresso aritmtica usada para operar um valor numrico. Exemplo: 2*pi*radius

A Tabell 2 mostra os diferentes tipos de operaes possveis.


Tabell 2 Operaes aritmticas
Operador + + + * * * * / DIV 2) MOD 2) adio manter sinal adio de vetores subtrao trocar sinal subtrao de vetores multiplicao multiplicao de vetores por escalar produto de vetores ligao de rotaes diviso diviso de inteiros mdulo inteiro; sobra Operao Tipos de operando num + num +num ou +pos pos + pos num - num -num ou -pos pos - pos num * num num * pos ou pos * num pos * pos orient * orient num / num num DIV num num MOD num Tipo de resultado num3) o mesmo1)3) pos num3) o mesmo1)3) pos num3) pos pos orient num num num

1. O resultado recebe o mesmo tipo que o operando. Se o operando possuir um tipo de dado alias, o resultado recebe o tipo alias "base" (num ou pos). 2. Operaes com inteiros, p.ex. 14 DIV 4=3, 14 MOD 4=2. (operaes com operandos no inteiros so ilegais) 3. Preserva a representao inteira (exata) desde que os operandos e o resultado sejam mantidos dentro do subdomnio do tipo num.

Caractersticas gerais

4-29

Execuo de trs para frente

Caractersticas Bsicas RAPID

7.2 Expresses lgicas


Uma expresso lgica usada para operar um valor lgico (TRUE/FALSE). Exemplo: a>5 AND b=3

A Tabell 3 mostra os diferentes tipos de operaes possveis.


Tabell 3 Operaes lgicas
Operador < <= = >= > <> AND XOR OR NOT menor que menor ou igual a igual a maior ou igual a maior que no igual a e ou exclusivo ou negao Operao Tipos de operando num < num num <= num qq 1)= qq 1) num >= num num > num qq 1) <> qq 1) bool AND bool bool XOR bool bool OR bool NOT bool Tipo de resultado bool bool bool bool bool bool bool bool bool bool

1) Somente tipos de dados com valor. Os operandos devem ter tipos iguais. a AND b a True False b True True False False False False a OR b a True False b True True True False True False a XOR b a True False b True False True False True False NOT b b True False False True

Observe que a avaliao de expresses envolvendo operadores and e or otimizada de forma que o operando direito da expresso no seja avaliado se o resultado da operao puder ser determinado aps a avaliao do operando esquerdo.

4-30

Caractersticas gerais

Caractersticas Bsicas RAPID

Execuo de trs para frente

7.3 Expresses com strings


Uma expresso com strings usada para efetuar operaes em strings. Exemplo: IN + PUT d o resultado INPUT

A Tabell 4 mostra uma operao possvel.


.

Tabell 4 Operaes com Strings


Operador + Operao concatenao de strings Tipos de operando string + string Tipo de resultado string

7.4 Utilizao de dados em expresses


Uma varivel, persistente ou constante inteira pode ser uma parte de uma expresso. Exemplo: Matrizes Uma varivel, persistente ou constante declarada como uma matriz pode ser referenciada a toda a matriz ou a um simples elemento. Um elemento da matriz referenciado usando-se o nmero de ndice do elemento. O ndice um valor inteiro maior que 0 no pode violar a dimenso declarada. O valor de ndice 1 seleciona o primeiro elemento. O nmero de elementos na lista de ndice deve corresponder ao grau declarado (1, 2 ou 3) da matriz. Exemplo: VAR num row{3}; VAR num column{3}; VAR num value; . value := column{3}; row := column; 2*pi*radius

somente um elemento na matriz todos os elementos na matriz

Registros Uma varivel, persistente ou constante declarada como um registro pode ser referenciada a todo o registro ou a uma simples componente. Uma componente do registro referenciada usando-se o nome da componente. Exemplo: VAR pos home; VAR pos pos1; VAR num yvalue; .. yvalue := home.y; pos1 := home

somente a componente Y toda a posio

Caractersticas gerais

4-31

Execuo de trs para frente

Caractersticas Bsicas RAPID

7.5 Utilizao de agregados em expresses


Um agregado usado para valores de registro ou de matriz. Exemplo: pos := [x, y, 2*x]; agregado de registro pos posarr := [[0, 0, 100], [0,0,z]];agregado de matriz pos

Deve ser possvel determinar o tipo de dados de um agregado no contexto. O tipo de dados de cada membro agregado deve ser igual ao tipo de membro correspondente do tipo determinado. Exemplo VAR pos pl; p1 :=[1, -100, 12]; tipo de agregado post-determinado por p1 ilegal, visto que o tipo de dados de nenhum dos agregados pode ser determinado pelo contexto.

IF [1, -100, 12] = [a,b,b,] THEN

7.6 Utilizao de chamadas funcionais em expresses


Uma chamada funcional inicia a operao de uma funo especfica e recebe o valor de volta da funo. Exemplo: Sin(angle)

Os argumentos de uma chamada funcional so usados para transferir dados para (e possivelmente de) a funo chamada. O tipo de dado de um argumento deve ser igual ao tipo do parmetro correspondente da funo. Os argumentos opcionais podem ser omitidos mas a ordem dos argumentos (atuais) deve ser a mesma dos parmetros formais. Alm disso, dois ou mais argumentos opcionais podem ser declarados para se excluirem, e no caso, somente um deles pode estar presente na lista de argumentos. Um argumento necessrio (compulsrio) separado a partir de um argumento precedente por uma vrgula ,. O nome do parmetro formal pode ser includo ou omitido. Exemplo: Polar(3.937, 0.785398) dois argumentos necessrios Polar(Dist:=3.937, Angle:=0.785398)... utilizando nomes

Um argumento opcional deve ser precedido por uma barra invertida \ e o nome do parmetro formal. Um argumento tipo switch especial; ele pode no incluir nenhuma expresso de argumento. Ao invs disso, tal argumento somente pode ser presente ou no presente. Exemplo: Cosine(45) Cosine(0.785398\Rad) Dist(p2) Dist(\distance:=pos1, p2) um argumento necessrio ... e uma switch um argumento necessrio ... e um opcional

4-32

Caractersticas gerais

Caractersticas Bsicas RAPID

Execuo de trs para frente

Argumentos condicionais so usados para uma propagao suave dos argumentos opcionais atravs das cadeias das chamadas da rotina. Um argumento condicional considerado presente se o parmetro opcional especificado (da funo que chama) estiver presente, caso contrrio ele simplesmente considerado omisso. Note que o parmetro especificado deve ser opcional. Exemplo: PROC Read_from_file (iodev File \num Maxtime) .. character:=ReadBin (File \Time?Maxtime); ! Max. time is only used if specified when calling the routine ! Read_from_file .. ENDPROC

A lista de parmetros de uma funo associa um modo de acesso para cada parmetro. O modo de acesso pode ser in, inout, var ou pers: - um parmetro IN (default) permite o argumento ser qualquer expresso. A funo chamada v o parmetro como uma constante. - um parmetro INOUT requer que o argumento correspondente seja uma varivel (inteira, elemento matricial ou componente de registro) ou uma persistente inteira. A funo ganha acesso (leitura/escrita) para o argumento. - um parmetro VAR requer que o argumento correspondente seja uma varivel (inteira, elemento matricial ou componente de registro). A funo ganha acesso (leitura/escrita) para o argumento. - um parmetro PERS requer que o argumento correspondente seja uma persistente inteira. A funo ganha acesso (leitura/escrita) para o argumento.

7.7 Prioridade entre operadores


A prioridade relativa entre os operadores determina a ordem na qual as operaes so efetuadas. O parnteses proporciona um meio de sobrepor a prioridade do operador. As regras abaixo implicam nas seguintes prioridades: * / DIV MOD +< > <> <= >= = AND XOR OR NOT - mais alta

- mais baixa

Um operador com alta prioridade efetuado antes de um operador com baixa prioridade. Operadores com a mesma prioridade so efetuados da esquerda para direita. Exemplo Expresso a+b+c a+b*c a OR b OR c Ordem de operao (a + b) + c a + (b * c) (a OR b) OR c Comentrio regra esq. p/ dir. * maior que + regra esq. p/ dir.

Caractersticas gerais

4-33

Execuo de trs para frente


a AND b OR c AND d a < b AND c < d

Caractersticas Bsicas RAPID


(a AND b) OR (c AND d) (a < b) AND (c < d) AND maior que OR < maior que AND

7.8 Sintaxe
Expresses (Expressions) <expression> ::= <expr> | <EXP> <expr> ::= [ NOT ] <logical term> { ( OR | XOR ) <logical term> } <logical term> ::= <relation> { AND <relation> } <relation> ::= <simple expr> [ <relop> <simple expr> ] <simple expr> ::= [ <addop> ] <term> { <addop> <term> } <term> ::= <primary> { <mulop> <primary> } <primary> ::= <literal> | <variable> | <persistent> | <constant> | <parameter> | <function call> | <aggregate> | ( <expr> ) Operadores (Operators) <relop> ::= < | <= | = | > | >= | <> <addop> ::= + | - <mulop> ::= * | / | DIV | MOD Valores constantes (Constant values) <literal> ::= <num literal> | <string literal> | <bool literal> Dados (Data) <variable> ::= <entire variable> | <variable element> | <variable component> <entire variable> ::= <ident> <variable element> ::= <entire variable> { <index list> }

4-34

Caractersticas gerais

Caractersticas Bsicas RAPID

Execuo de trs para frente

<index list> ::= <expr> { , <expr> } <variable component> ::= <variable> . <component name> <component name> ::= <ident> <persistent> ::= <entire persistent> | <persistent element> | <persistent component> <constant> ::= <entire constant> | <constant element> | <constant component> Agregados (Aggregates) <aggregate> ::= [ <expr> { , <expr> } ] Chamadas funcionais (Function calls) <function call> ::= <function> ( [ <function argument list> ] ) <function> ::= <ident> <function argument list> ::= <first function argument> { <function argument> } <first function argument> ::= <required function argument> | <optional function argument> | <conditional function argument> <function argument> ::= , <required function argument> | <optional function argument> | , <optional function argument> | <conditional function argument> | , <conditional function argument> <required function argument> ::= [ <ident> := ] <expr> <optional function argument> ::= \ <ident> [ := <expr> ] <conditional function argument> ::= \ <ident> ? <parameter> Expresses especiais (Special expressions) <constant expression> ::= <expression> <literal expression> ::= <expression> <conditional expression> ::= <expression> Parmetros (Parameters) <parameter> ::= <entire parameter> | <parameter element> | <parameter component>

Caractersticas gerais

4-35

Execuo de trs para frente

Caractersticas Bsicas RAPID

4-36

Caractersticas gerais

Caractersticas Bsicas RAPID

Execuo de trs para frente

8 Recuperao de Erros
Um erro uma situao anormal, relacionado com a execuo de uma parte especfica de um programa. Um erro faz com que a execuo do programa seja impossvel (ou no mnimo perigosa). Overflow e diviso por zero so exemplos de erros. Os erros so identificados pelo seu nico nmero de erro e so sempre reconhecidos pelo rob. A ocorrncia de um erro causa a suspenso da execuo normal do programa e o controle passado para um tratamento de erro. O conceito de tratamento de erro faz com que seja possvel responder, e possivelmente, recuperar a execuo partir dos erros que aparecem durante o programa. Se a execuo posterior no for possvel, o tratamento de erro pelo menos assegura que o programa abortado de um modo suave.

8.1 Tratamento de erros


Qualquer rotina pode incluir um tratamento de erros. Um tratamento de erros realmente uma parte da rotina, e o escopo de qualquer dado de rotina tambm compreende o tratamento de erro da rotina. Se um erro ocorrer durante a execuo da rotina, o controle transferido para o seu tratamento de erro. Exemplo: FUNC num safediv( num x, num y) RETURN x / y; ERROR IF ERRNO = ERR_DIVZERO THEN TPWrite "O numero nao pode ser igual a 0"; RETURN x; ENDIF ENDFUNC

A varivel do sistema ERRNO contem o nmero de erro (mais recente) e pode ser usada pelo tratamento de erro para identificar aquele erro. Aps as aes necessrias terem sido tomadas, o tratamento de erro pode: - Recomear a execuo, iniciando pela instruo na qual o erro ocorreu. Isto feito usando-se a instruo RETRY. Se esta instruo causar o mesmo erro novamente, at quatro tentativas de recuperao sero feitas; logo aps a execuo ir parar. - Resume a execuo, inicializando a instruo que segue a instruo na qual o erro ocorreu. Isto feito usando a instruo TRYNEXT. - Retorna o controle ao emissor da rotina usando a instruo RETURN. Se a rotina uma funo, a instruo RETURN tem de especificar um valor de retorno apropriado. - Propaga o erro ao emissor da rotina usando a instruo RAISE Se ocorrer um erro numa rotina que no contenha um tratamento de erros ou quando se chegar ao fim do tratamento de erros (ENDFUNC, ENDPROC ou ENDTRAP), chamado o tratamento de erros do sistema. O tratamento de erros do sistema informa a ocorrncia do erro, parando a execuo.

Caractersticas gerais

4-37

Execuo de trs para frente

Caractersticas Bsicas RAPID

Numa cadeia de rotina de chamados, cada rotina pode ter o seu prprio tratamento de erros. Se ocorrer um erro numa rotina com um tratamento de erros e se o erro for explicitamente propagado usando a instruo RAISE, o mesmo erro ocorre novamente no ponto do chamado da rotina - o erro propagado. Quando se alcanar o topo da cadeia de chamados (a rotina de entrada da tarefa) sem que se encontre qualquer tratamento de erros ou quando se chegar ao fim de um tratamento de erros na cadeia de chamados, o tratamento de erros do sistema chamado. O tratamento de erros do sistema informa sobre o erro, parando a execuo. Uma vez que uma rotina trap s pode ser chamada pelo sistema (em resposta a uma interrupo), os erros so sempre propagados de uma rotina trap para o tratamento de erros do sistema. A recuperao de erros no est disponvel para instrues no tratamento de trs para frente. Tais erros so sempre propagados para o tratamento de erros do sistema. Alm dos erros detectados e levantados pelo rob, um programa pode explicitamente levantar erros pelo uso da instruo RAISE. Esta facilidade pode ser usada para recuperao a partir de situaes complexas. Ela pode, por exemplo, ser usada para escapar de posies de cdigo agrupadas. Os nmeros de erro de 1- 90 podem ser usados na instruo RAISE. Os erros levantados explicitamente so tratados exatamente como erros levantados pelo sistema. Note que no possvel recuperar ou responder a erros que ocorrem dentro de uma condio de erro. Tais erros so sempre propagados para o tratamento de erros do sistema.

4-38

Caractersticas gerais

Caractersticas Bsicas RAPID

Execuo de trs para frente

9 Interrupes
Interrupes so eventos definidos pelo programa, identificados por um nmero de interrupo. Uma interrupo ocorre quando uma condio de interrupo for verdadeira. Diferentemente dos erros, a ocorrncia de uma interrupo no est diretamente relacionada (sincronizada com) a uma posio de cdigo especfica. A ocorrncia de uma interrupo causa a suspenso da execuo normal do programa e o controle passado para uma rotina trap. Apesar do rob reconhecer imediatamente a ocorrncia de uma interrupo (somente atrasada pela velocidade do hardware), a sua resposta chamada da rotina trap correspondente somente pode ter lugar em posies especfifcas do programa, a saber: - quando a prxima instruo entrar, - a qualquer momento durante uma instruo de espera, p. ex. WaitUntil, - a qualquer momento durante uma instruo de movimento, p. ex. MoveL. Isto resulta normalmente em um atraso de 5-120 ms entre o reconhecimento da interrupo e sua resposta, dependendo do tipo de movimento que est sendo executado no instante da interrupo. O levantamento das interrupes pode ser desabilitado e habilitado. Se as interrupes forem desabilitadas, qualquer interrupo que ocorrer colocada em uma fila e no levantada at que as interrupes sejam habilitadas novamente. Note que a fila da interrupo pode conter mais de uma interrupo na condio de espera. As interrupes so levantadas na ordem FIFO. As interrupes so sempre desabilitadas durante a execuo de uma rotina trap. Quando executar os passos e quando o programa tiver sido parado, no sero manuseadas nenhumas interrupes. As interrupes que forem geradas sob estas circunstncias no sero tratadas. O nmero mximo de interrupes simultneas de 70 por tarefa de programa. A limitao total definida pelo CPU de E/S de 100 interrupes.

9.1 Manipulao de interrupes


A definio de uma interrupo faz com que a mesma seja reconhecida pelo rob. A definio especifica a condio de interrupo e habilita a mesma. Exemplo: VAR intnum sig1int; . ISignalDI di1, high, sig1int;

Uma interrupo habilitada pode ser desabilitada (e vice-versa). Durante o perodo de desabilitao, quaisquer interrupes do tipo especificado geradas sero descartadas sem a execuo de qualquer interceptao.

Caractersticas gerais

4-39

Execuo de trs para frente


Exemplo: ISleep sig1int; . IWatch sig1int;

Caractersticas Bsicas RAPID


desabilitada habilitada

A deleo de uma interrupo remove a sua definio. No necessrio remover explicitamente uma definio de interrupo, mas uma nova interrupo no pode ser associada a uma varivel de interrupo at que a definio anterior tenha sido deletada. Exemplo: IDelete sig1int;

9.2 Rotinas trap


As rotinas trap possibilitam um meio de lidar com interrupes. Uma rotina trap pode ser conectada a uma interrupo usando-se a instruo CONNECT. Quando uma interrupo ocorre, o controle transferido imediatamente para a rotina trap associada (se existir). Se uma interrupo ocorrer, e ela no tem nenhuma rotina trap conectada, isto tratado como um erro fatal, isto , causa o trmino imediato da execuo do programa. Exemplo: VAR intnum rmpty; VAR intnum full; PROC main() VAR intnum empty; VAR intnum full; . CONNECT empty WITH etrap;conecta rotinas trap CONNECT full WITH ftrap; ISignalDI di1, high, empty;interrupes alimentador ISignalDI di3, high, full; . IDelete empty; IDelete full; ENDPROC TRAP etrap open_valve; RETURN; ENDTRAP TRAP ftrap close_valve; RETURN; ENDTRAP responde interrupo de alimentador vazio

responde interrupo de alimentador cheio

Vrias interrupes podem ser conectadas a uma mesma rotina trap. A varivel do sistema INTNO contem um nmero de interrupo e pode ser usada por uma rotina trap para identificar uma interrupo. Aps as aes necessrias terem sido tomadas, a rotina trap pode ser terminada uando-se a instruo RETURN ou quando o fim (ENDTRAP ou ERROR) da rotina trap for alcanado. A execuo continua a partir do lugar de onde a interrupo ocorreu. 4-40 Caractersticas gerais

Caractersticas Bsicas RAPID

Execuo de trs para frente

10 Execuo de trs para frente


Um programa pode ser executado de trs para frente uma instruo por vez. As seguintes restries gerais so vlidas para execuo de trs para frente: - as instrues IF, FOR, WHILE e TEST no podem ser executadas de trs para frente. - No possvel efetuar o recuo de uma rotina quando se atinge o incio da rotina.

10.1 Manipuladores de trs para frente


Os procedimentos podem conter um manipulador de trs para frente que definem a execuo de trs para frente de uma chamada de procedimento. O manipulador de trs para frente realmente uma parte do procedimento e o escopo de qualquer dado de rotina tambm compreende o manipulador de trs para frente do procedimento. Exemplo: PROC MoveTo () MoveL p1,v500,z10,tool1; MoveL p2,p3,v500,z10,tool1; MoveL p4,v500,z10,tool1; BACKWARD MoveL p4,v100,z10,tool1; MoveL p2,p3,v100,z10,tool1; MoveL p1,v500,z10,tool1; ENDPROC

Quando o procedimento chamado durante a execuo para frente, ocorre o seguinte: PROC MoveTo () MoveL p1,v500,z10,tool1; MoveL p2,p3,v500,z10,tool1; MoveL p4,v500,z10,tool1; BACKWARD MoveL p4,v100,z10,tool1; MoveL p2,p3,v100,z10,tool1; MoveL p1,v500,z10,tool1; ENDPROC

.. MoveTo; ..

Caractersticas gerais

4-41

Execuo de trs para frente

Caractersticas Bsicas RAPID

Quando o procedimento chamado durante a execuo de trs para frente, o seguinte ocorre:

.. MoveTo; ..

PROC MoveTo () MoveL p1,v500,z10,tool1; MoveL p2,p3,v500,z10,tool1; MoveL p4,v500,z10,tool1; BACKWARD MoveL p4,v100,z10,tool1; MoveL p2,p3,v100,z10,tool1; MoveL p1,v500,z10,tool1; ENDPROC

As instrues do tratamento de erros no podem ser executadas de trs para frente. A execuo de trs para frente no pode ser agrupada, isto , duas instrues em um elo de chamada no podem ser executadas de trs para frente simultaneamente. Um procedimento sem um manipulador de trs para frente no pode ser executado de trs para frente. Um procedimento com um manipulador de trs para frente vazio executado como uma no operao.

10.2 Limitao de instrues de movimento no manipulador de trs para a frente


O tipo e a seqncia da instruo de movimento no manipulador de trs para a frente dever ser um espelho do tipo e da seqncia da instruo de movimento da execuo para a frente na mesma rotina:

PROC MoveTo () MoveL p1,v500,z10,tool1; MoveC p2,p3,v500,z10,tool1; MoveL p4,v500,z10,tool1; BACKWARD MoveL p4,v500,z10,tool1; MoveC p2,p3,v500,z10,tool1; MoveL p1,v500,z10,tool1; ENDPROC

Plano do espelho

Note que a ordem de CirPoint p2 e ToPoint p3 em MoveC dever ser a mesma. As instrues de movimento se referem a todas as instrues que resultam em algum movimento do rob ou de eixos externos, como MoveL, SearchC, TriggJ, ArcC, PaintL ... Qualquer afastamento desta limitao de programao no manipulador de trs para a frente poder resultar em falha do movimento de trs para a frente. O movimento linear poder resultar em movimento circular e vice versa, em alguma parte do trajeto de trs para a frente.

4-42

Caractersticas gerais

Caractersticas Bsicas RAPID

Execuo de trs para frente

11 Multitarefa
Os eventos em uma clula robotizada normalmente so em paralelo, ento por que os programas no so em paralelo ? A Multitarefa RAPID uma maneira de executar programas em (pseudo) paralelo com a execuo normal. A execuo iniciada na energizao e continua indefinidamente, a no ser que ocorra um erro no programa. Um programa paralelo pode ser colocado em um plano posterior (background) ou em um plano anterior (foreground) de outro programa. Ele tambm pode estar no mesmo nvel que outro programa. Para o uso desta funo o rob deve ser configurado com uma TAREFA (task) extra para cada programa em background. At 10 tarefas diferentes podem ser rodadas em pseudo paralelo. Cada tarefa constituda por um conjunto de mdulos, do mesmo modo que um programa normal. Todos os mdulos so locais em cada tarefa. As variveis e constantes so locais em cada tarefa, mas as persistentes no. Uma persistente com mesmo nome e tipo pode ser alcanada em todas as tarefas. Se duas persistentes tiverem o mesmo nome, mas seu tipo ou tamanho (dimenso da matriz) forem diferentes, um erro de rotina acontecer. Uma tarefa tem o seu prprio tratamento trap e as rotinas de eventos apenas so acionadas nos seus prprios estados de sistemas de tarefas (por exemplo Start/Stop/ Restart...). Existem algumas restries no uso da Multitarefa RAPID. - No misture programas paralelos com um PLC. O tempo de resposta o mesmo que o tempo de resposta de interrupo para uma tarefa. Isto verdade, claro, quando a tarefa no est em background de outro programa ocupado. - Existe somente uma unidade de programao fsica, portanto tome cuidado para que um TPWrite no se misture com a Janela do Operador para todas as tarefas. - Quando rodar uma instruo Wait em modo manual, um dilogo de simulao aparecer aps 3 segundos. Isto ocorrer na tarefa principal. - As instrues de movimento s podem ser executadas na tarefa principal (a tarefa conexo do program instance 0, veja o Guia do Usurio - Parmetros do sistema). - A execuo de uma tarefa ser interrompida durante o tempo em que outras tarefas esto acedendo ao sistema de arquivos, isto se o operador escolher guardar ou abrir um programa, ou se o programa numa tarefa usar as instrues carregar/ apagar/ ler/ escrever. - A unidade de programao no pode acessar outras tarefas alm da principal. Portanto, o desenvolvimento de programas RAPID para outras tarefas somente pode ser feito se o cdigo for carregado na tarefa principal, ou off-line. Para todos os ajustes, veja o Guia do Usurio - Parmetros do Sistema.

Caractersticas gerais

4-43

Execuo de trs para frente

Caractersticas Bsicas RAPID

11.1 Sincronizao de tarefas


Em muitas aplicaes, uma tarefa paralela somente supervisiona uma unidade de uma clula, independente das outras tarefas sendo executadas. Em tais casos, nenhum mecanismo de sincronizao necessrio. Mas existem aplicaes onde necessrio saber o que a tarefa principal est fazendo, por exemplo. Sincronizao usando-se polling Esta a maneira mais fcil de fazer, mas o rendimento ser o mais vagaroso. Persistentes so usadas juntamente com as intrues WaitUntil, IF, WHILE ou GOTO. Se a instruo WaitUntil for usada, ela questionar internamente a cada 100 ms. No use um polling mais freqente em outras implementaes. Exemplo TAREFA 0 MODULE module1 PERS bool startsync:=FALSE; PROC main() startsync:= TRUE; . ENDPROC ENDMODULE TAREFA 1 MODULE module2 PERS bool startsync:=FALSE; PROC main() WaitUntil startsync; . ENDPROC ENDMODULE Sincronizao usando-se uma interrupo so usadas as instrues SetDO e ISignalDO. Exemplo TAREFA 0

4-44

Caractersticas gerais

Caractersticas Bsicas RAPID


MODULE module1 PROC main() SetDO do1,1; . ENDPROC ENDMODULE TAREFA 1 MODULE module2 VAR intnum isiint1; PROC main() CONNECT isiint1 WITH isi_trap; ISignalDO do1, 1, isiint1; WHILE TRUE DO WaitTime 200; ENDWHILE ENDPROC TRAP isi_trap . ENDTRAP ENDMODULE

Execuo de trs para frente

11.2 Comunicao intertarefas


Todos os tipos de dados podem ser enviados entre duas (ou mais) tarefas persistentes. Uma varivel persistente global em todas as tarefas. A varivel persistente deve ser do mesmo tipo e tamanho (dimenso matricial) em todas as tarefas em que ela for declarada. Caso contrrio um erro de operao (runtime) ir ocorrer. Todas as declaraes devem especificar um valor inicial para a varivel persistente, mas somente o primeiro mdulo carregado com a declarao ir usa-lo. Exemplo TAREFA 0 MODULE module1 PERS bool startsync:=FALSE; PERS string stringtosend:=; PROC main()

Caractersticas gerais

4-45

Execuo de trs para frente


stringtosend:=this is a test; startsync:= TRUE ENDPROC ENDMODULE TAREFA 1 MODULE module2 PERS bool startsync:=FALSE; PERS stringtosend:=; PROC main() WaitUntil startsync; !read string IF stringtosend = this is a test THEN ENDPROC ENDMODULE

Caractersticas Bsicas RAPID

11.3 Tipo de tarefa


Cada tarefa extra (no 0) iniciada na sequncia de incio do sistema. Se a tarefa for do tipo STATIC, ela ser reiniciada na posio atual (onde o PP estava quando o sistema foi desligado), mas se o tipo for setado para SEMISTATIC, ela ser reiniciada a a partir do comeo toda vez que a energia for ligada. Tambm possvel setar a tarefa para o tipo NORMAL, ento ela ter o mesmo comportamento que a tarefa 0 (a tarefa principal que controla os movimentos do rob). A unidade de programao somente pode ser usada para iniciar a tarefa 0, e portanto o nico modo de iniciar outras tarefas tipo NORMAL usar o CommunicationWare.

11.4 Prioridades
O modo padro de executar as tarefas roda-las todas ao mesmo nvel de um modo circular (um passo bsico para cada instncia). Mas possvel mudar a prioridade de uma tarefa colocando-a em background de outra. Ento a background somente executar quando a foreground estiver esperando por alguns eventos, ou tiver parado a execuo (idle). Um programa do rob com instrues de movimentao estar em estado idle, ocioso, a maioria do tempo. O exemplo abaixo descreve algumas situaes onde o sistema possui 10 tarefas (veja a Figura 5) Elo circular 1: Elo circular 2: tarefas 0, 1 e 8 esto ocupadas tarefas 0, 3, 4, 5 e 8 esto ocupadas tarefas 1 e 2 esto ociosas

4-46

Caractersticas gerais

Caractersticas Bsicas RAPID


Elo circular 3: Elo circular 4:

Execuo de trs para frente

tarefas 2, 4 e 5 esto ocupadas tarefas 0, 1, 8 e 9 esto ociosas. tarefas 6 e 7 esto ocupadas tarefas 0, 1, 2, 3 4, 5, 8 e 9 esto ociosas

elo 1
tarefa 0

elo 2

tarefa 1

tarefa 2

tarefa 3

tarefa 4

tarefa 5

tarefa 6 tarefa 7

elo 4 elo 3

tarefa 8

tarefa 9

Figura 5 As tarefas podem ter diferentes prioridades.

11.5 Dimenses das tarefas


O sistema ir fornecer uma rea de memria com uma instalao dependendo da dimenso. Esta rea partilhada por todas as tarefas. Se a memria para uma tarefa for definida nos parmetros do sistema, ser-lhe- atribuda a quantidade de memria especificada. Todas as tarefas sem especificaes de dimenso devero partilhar a parte livre da rea fornecida da seguinte forma. Se a dimenso da tarefa principal no for especificada, serlhe- atribuda a percentagem da rea livre que especificada no parmetro da MemoryTask0 (veja Parmetros do Sistema). O restante da rea livre ser repartida em partes iguais entre as outras tarefas.

Caractersticas gerais

4-47

Execuo de trs para frente

Caractersticas Bsicas RAPID

O valor de uma varivel persistente ser armazenado numa parte separada do sistema e no afetar a rea de memria acima mencionada. Veja Parmetros do Sistema - AveragePers.

11.6 Algo para pensar


Quando voc especificar as prioridades das tarefas, voc deve pensar sobre o seguinte: - Sempre use o mecanismo de interrupo ou loops com atrasos nas tarefas de superviso. Caso contrrio, a unidade de programao nunca ter tempo para uma interao com o usurio. Se a tarefa de superviso for executada em primeiro plano, nunca ser permitida a execuo de outra tarefa em segundo plano.

4-48

Caractersticas gerais

Movimento e Princpios de E/S

Sistemas de Coordenadas

1 Sistemas de Coordenadas
1.1 O ponto central da ferramenta do rob (TCP)
A posio do rob e seus movimentos esto sempre relacionados ao ponto central da ferramenta. Este ponto normalmente definido em alguma parte da ferramenta, por exemplo, no bico de aplicao da pistola de cola, no centro da garra ou na extremidade de uma ferramenta. Vrios TCPs (ferramentas) podem ser definidos, mas somente um pode ser ativado por vez. Quando uma posio registrada, a posio de um TCP que gravada. Este tambm o ponto que se move no trajeto a uma dada velocidade. Se o rob est segurando um objeto de trabalho e trabalhando com uma ferramenta estacionria, um TCP estacionrio usado. Se esta ferramenta ativada, o trajeto programado e a velocidade esto relacionados ao objeto de trabalho. Veja Ferramenta Estacionria na pgina 10.

1.2 Sistemas de coordenadas usados para determinar a posio do TCP


A posio da ferramenta (TCPs) pode ser especificada em diferentes sistemas de coordenadas para facilitar a programao e ajustes de programas. O sistema de coordenadas definido depende do que o rob tem que fazer. Quando nenhum sistema de coordenadas definido, as posies do rob so definidas no sistema de coordenadas de base.

1.2.1 Sistema de coordenadas de base Em uma aplicao simples, a programao pode ser feita no sistema de coordenadas de base; aqui o eixo z coincide com o eixo 1 do rob (veja Figura 1).

Z Y X Figura 1 O sistema de coordenadas de base.

Caractersticas gerais

5-1

Sistemas de Coordenadas

Movimento e Princpios de E/S

O sistema de coordenadas de base est localizado na base do rob: - A origem est situada na interseco do eixo 1 e a superfcie da base montada. - O plano xy o mesmo que a superfcie da base montada. - O eixo x aponta para frente. - O eixo y aponta para a esquerda (da perspectiva do rob). - O eixo z aponta para cima.

1.2.2 Sistema de coordenadas global Se o rob est montado no solo, programar no sistema de coordenadas de base fcil. Se, entretanto, o rob est montado acima do solo (suspenso), programar no sistema de coordenadas de base mais difcil porque as direes dos eixos no so as mesmas que as direes principais na rea de trabalho. Nestes casos, mais comum definir um sistema de coordenadas global. O sistema de coordenadas global ir coincidir com o sistema de coordenadas de base, se este no for definido especificamente. s vezes, vrios robs trabalham na mesma rea de trabalho em uma planta. Um sistema de coordenadas global comum usado neste caso para habilitar o programa do rob se comunicar um com o outro. Tambm pode ser vantajoso usar este tipo de sistema quando as posies esto relacionadas a um ponto fixo na rea de trabalho comum aos dois robs. Veja o exemplo na Figura 2.

Coordenadas de base do rob 2

X Y Z Z Y X
Coordenadas de base do rob 1

z y
Coordenadas global

x
Figura 2 Dois robs (um dos quais suspenso) com um sistema de coordenadas global comum.

5-2

Caractersticas gerais

Movimento e Princpios de E/S

Sistemas de Coordenadas

1.2.3 Sistema de coordenadas do usurio Um rob pode trabalhar com diferentes bases ou superfcies de trabalho tendo diferentes posies e orientaes. Um sistema de coordenadas do usurio pode ser definido para cada base. Se todas as posies so armazenadas em coordenadas de objeto, voc no precisar reprogramar se a base precisar ser movida ou girada. Movendo/girando o sistema de coordenadas do usurio como a base foi movida/girada, todas posies programadas seguiro a base e a reprogramao no ser necessria. O sistema de coordenadas do usurio definido baseado no sistema de coordenadas global (veja Figura 3).
Z

Coordenadas do usurio 1

Y X Z
Coordenadas do usurio 2

Y X

Z Y X
Sistema de coordenadas de base

y
Coordenadas global

x
Figura 3 Dois sistemas de coordenadas do usurio descrevem a posio de duas bases.

1.2.4 Sistema de coordenadas do objeto O sistema de coordenadas do usurio usado para conseguir diferentes sistemas de coordenadas para diferentes bases ou superfcies de trabalho. Uma base, entretanto, pode incluir vrios objetos de trabalho que so processados ou tratados pelo rob. Logo, isto normalmente ajuda a definir um sistema de coordenadas para cada objeto de trabalho para tornar mais fcil o ajuste do programa se o objeto de trabalho for movido ou se um novo objeto, igual ao anterior, programado em um local diferente. Um sistema de coordenadas referido a um objeto chamado sistema de coordenadas do objeto. Este sistema de coordenadas tambm usado em programao off-line desde

Caractersticas gerais

5-3

Sistemas de Coordenadas

Movimento e Princpios de E/S

que as posies especificadas sejam tiradas diretamente de um desenho do objeto de trabalho. O sistema de coordenadas do objeto tambm pode ser usado para movimentar o rob. O sistema de coordenadas do objeto definido baseado no sistema de coordenadas do usurio (veja Figura 4).

z z
Coordenadas do usurio

z
Coordenadas do objeto 1

y y x y x
Coordenadas do objeto 2

z y
Coordenadas global

x
Figura 4 Dois sistemas de coordenadas do objeto descrevem a posio de dois diferentes objetos de trabalho localizados na mesma base.

As posies programadas so sempre definidas em relao a um sistema de coordenadas do objeto. Se uma base movida/girada, isto pode ser compensado pelo movimento/giro do sistema de coordenadas do usurio. Nem as posies programadas nem os sistemas de coordenadas do objeto definidos precisam ser alterados. Se o objeto de trabalho movido/girado, este pode ser compensado pelo movimento/giro do sistema de coordenadas do objeto. Se um sistema de coordenadas do usurio mvel, isto , eixos externos coordenados so usados, ento o sistema de coordenadas do objeto se move com o sistema de coordenadas do usurio. Isto torna possvel mover o rob em relao ao objeto quando a mesa de trabalho for manipulada.

1.2.5 Sistema de coordenadas de deslocamento s vezes, o mesmo trajeto deve ser executado em vrios lugares no mesmo objeto. Para evitar de reprogramar todas as posies cada vez, um sistema de coordenadas, conhecido como sistema de coordenadas de deslocamento, definido. Este sistema de coordenadas tambm pode ser usado em conjunto com procuras, para compensar as diferenas nas posies de partes individuais. O sistema de coordenadas de deslocamento definido baseado no sistema de coordenadas do objeto (veja Figura 5). 5-4 Caractersticas gerais

Movimento e Princpios de E/S

Sistemas de Coordenadas

y y
Posio original

Posio nova

x
Coordenadas de deslocamento

x
Coordenadas do objeto

Figura 5 Se o deslocamento de programa ativado, todas as posies so deslocadas

1.2.6 Eixos externos coordenados Coordenao do sistema de coordenadas do usrio Se um objeto de trabalho est localizado em uma unidade mecnica externa, este movido enquanto o rob est executando um trajeto definido no sistema de coordenadas do objeto, um sistema de coordenadas do usurio mvel pode ser definido. A posio e orientao do sistema de coordenadas do usurio ir, neste caso, ser dependente das rotaes dos eixos da unidade externa. O trajeto programado e a velocidade sero ento relacionados ao objeto de trabalho (veja Figura 6) e no haver necessidade de considerar o fato que este objeto movido pela unidade externa. z
Coordenadas do usurio

y x
eixo 2 eixo 3

eixo 1

z y
Coordenadas global

x
Figura 6 Um sistema de coordenadas do usurio, definido seguindo os movimentos do eixo 3 de uma unidade mecnica externa.

Caractersticas gerais

5-5

Sistemas de Coordenadas

Movimento e Princpios de E/S

Coordenao do sistema de coordenadas de base Um sistema de coordenadas mvel pode tambm ser definido pela base do rob. Isto interessante na instalao quando o rob montado em um trilho, por exemplo. A posio e orientao do sistema de coordenadas de base ir, como pelo sistema de coordenadas do usurio, ser dependente dos movimentos da unidade externa. O trajeto programado e velocidade sero relacionados ao sistema de coordenadas do objeto (Figura 7) e no haver necessidade de pensar sobre o fato que a base do rob movida pela unidade externa. Uma coordenada do sistema de coordenadas do usurio e uma coordenada do sistema de coordenadas de base podem ser definidos ao mesmo tempo.

Coordenadas do usurio Coordenadas do objeto

Coordenadas global Track

Coordenadas de base

Figura 7 Interpolao coordenada com um trilho movendo o sistema de coordenadas de base do rob.

Para possibilitar calcular os sistemas de coordenadas do usurio e de base quando as unidades envolvidas so movidas, o rob deve conhecer: - As posies de calibrao dos sistemas de coordenadas do usurio e da base - As relaes entre os ngulos dos eixos externos e a translao/rotao dos sistemas de coordenadas do usurio e da base. Estas relaes so definidas nos parmetros do sistema.

1.3 Sistemas de coordenadas usados para determinar a direo da ferramenta


A orientao de uma ferramenta em uma posio programada dada pela orientao do sistema de coordenadas de ferramenta. O sistema de coordenadas de ferramenta referido ao sistema de coordenadas do punho, definido pelo flange de montagem no punho do rob.

5-6

Caractersticas gerais

Movimento e Princpios de E/S

Sistemas de Coordenadas

1.3.1 Sistema de coordenadas de punho Em uma aplicao simples, o sistema de coordenadas de punho pode ser usado para definir a orientao da ferramenta; aqui o eixo z coincide com o eixo 6 do rob (veja Figura 8).

x
Figura 8 O sistema de coordenadas de punho.

O sistema de coordenadas de punho no pode ser alterado e sempre o mesmo que no flange de montagem do rob respeitando: - A origem est situada no centro do flange de montagem ( superfcie do flange de montagem). - O eixo x aponta na direo oposta ao furo de controle do flange de montagem. - O eixo z aponta para fora, em ngulo a direita do flange de montagem.

1.3.2 Sistema de coordenadas da ferramenta A ferramenta fixada no flange de montagem do rob normalmente precisa ter seu prprio sistema de coordenadas para habilitar a definio de seu TCP, o qual a origem do sistema de coordenadas da ferramenta. O sistema de coordenadas da ferramenta pode tambm ser usado para conseguir direes de movimento apropriadas quando movimentar o rob. Se uma ferramenta danificada ou trocada, tudo que voc precisa fazer redefinir o sistema de coordenadas de ferramenta. O programa normalmente no tem que ser alterado. O TCP (origem) selecionado como o ponto na ferramenta que deve ser posicionado corretamente, por exemplo, o bico de aplicao da pistola de cola. Os eixos coordenados da ferramenta so definidos como os naturais da ferramenta em questo.

Caractersticas gerais

5-7

Sistemas de Coordenadas

Movimento e Princpios de E/S

x x
Ponta

Ponta

z
Figura 9 Sistema de coordenadas de ferramenta, como normalmente definido para a tocha de solda a arco (esquerda) e a pina de solda a ponto (direita).

O sistema de coordenada de ferramenta definido baseado no sistema de coordenada de punho (veja Figura 10). y

Coordenada de ferramenta

Figura 10 O sistema de coordenada de ferramenta definido relativo ao sistema de coordenada de punho, aqui para uma garra.

1.3.3 TCPs estacionrios Se o rob est segurando o objeto de trabalho e trabalhando em uma ferramenta estacionria, um TCP estacionrio usado. Se esta ferramenta ativada, o trajeto programado e velocidade esto relacionados ao objeto de trabalho preso ao rob. Isto signiifca que os sistemas de coordenadas sero mantidos, como na Figura 11.

5-8

Caractersticas gerais

Movimento e Princpios de E/S

Sistemas de Coordenadas

Z
Coordenada de objeto

Z Y X
Coordenada de ferramenta

Z Y X
Coordenada de base

y
Coordenada global

x
Figura 11 Se um TCP estacionrio usado, o sistema de coordenadas de objeto normalmente baseado no sistema de coordenadas de punho.

No exemplo da Figura 11, nem o sistema de coordenadas do usurio nem o deslocamento de programa usado. , entretanto, possvel us-los e, se eles so usados, eles estaro relacionados um ao outro como mostra a Figura 12. z

y z
Coordenadas de objeto

y z
Coordenadas do usurio

x y
Coordenadas de deslocamento

x y
Coordenadas de punho

x
Figura 12 Deslocamento do programa pode tambm ser usado junto com TCPs estacionrios.

Caractersticas gerais

5-9

Sistemas de Coordenadas

Movimento e Princpios de E/S

1.4 Informao relacionada


Descrito em: Definio do sistema de coordenadas global Definio do sistema de coord. do usurio Definio do sistema de coord. do objeto Guia do Usurio - Parmetros do Sistema Guia do Usurio - Calibrao Tipos de dados - wobjdata Guia do Usurio - Calibrao Tipos de dados - wobjdata

Definio do sistema de coord.de ferramenta Guia do Usurio - Calibrao Tipos de dados - tooldata Definio de um ponto central da ferramenta Guia do Usurio - Calibrao Tipos de dados - tooldata Definio da base de deslocamento Guia do Usurio - Calibrao Sumrio RAPID - Ajuste de Movimento

Movimento em diferentes sist.de coordenadas Guia do Usurio - Movimentao

5-10

Caractersticas gerais

Movimento e Princpios de E/S

Posicion. na Execuo do Programa

2 Posicion. na Execuo do Programa


2.1 Geral
Durante execuo do programa, as instrues de posicionamento no programa do rob controlam todos os movimentos. A tarefa principal das instrues de posicionamento fornecer a seguinte informao de como executar movimentos: - O ponto destino do movimento (definido como a posio do ponto central da ferramenta, a configurao do rob e a posio dos eixos externos). - O mtodo de interpolao usado para chegar no ponto destino, por exemplo, interpolao de eixo, interpolao retangular ou interpolao circular. - A velocidade do rob e eixos externos. - O dado de zona (define como o rob e eixos externos passaro pelo ponto destino). - Os sistemas de coordenadas (ferramenta, usurio e objeto) usado para o movimento. Como uma alternativa para definir a velocidade do rob e eixos externos, o tempo do movimento pode ser programado. Isto deve, entretanto, ser evitado se a funo de ondulao usada. Ao invs disto as velocidades de orientao e eixos externos devem ser usados para limitar a velocidade, quando pequenos ou movimentos do TCP so feitos. No manuseio de material e aplicaes de paletas com movimentos intensos e frequentes, a superviso do sistema de acionamento pode parar o rob para evitar o sobreaquecimento dos drives ou do motor. Se tal acontecer, o tempo de ciclo precisa ser ligeiramente aumentado atravs da reduo da velocidade ou da acelerao programada.

2.2 Interpolao da posio e orientao da ferramenta

2.2.1 Interpolao de eixos Quando a preciso do trajeto no muito importante, este tipo de movimento usado para mover a ferramenta do rob rapidamente de uma posio para outra. A interpolao de eixo tambm permite um eixo mover-se de qualquer localizao para outra na sua rea de trabalho, em um movimento singular. Todos eixos se movem do ponto inicial para o ponto destino com uma velocidade de eixo constante (veja Figura 13).

Caractersticas gerais

5-11

Posicion. na Execuo do Programa

Movimento e Princpios de E/S

Ponto destino Ponto incio Trajeto interpolado de eixo

Figura 13 Interpolao de eixos a forma mais rpida para mover-se entre dois pontos pois os eixos do rob seguem o trajeto mais prximo entre o ponto inicial e o ponto destino (pela perpectiva dos ngulos dos eixos).

A velocidade do ponto central da ferramenta expresso em mm/s (no sistema de coordenadas do objeto). Como a interpolao movimenta eixo-a-eixo, a velocidade no ser exatamente o valor programado. Durante a interpolao, a velocidade do eixo de limitao, isto , o eixo que se move mais rpido em relao a sua velocidade mxima para executar o movimento, determinada. Ento, as velocidades de permanncia dos eixos so calculadas para que todos os eixos alcancem o ponto destino ao mesmo tempo. Os eixos esto coordenados para obter uma trajetria independente da velocidade. A acelerao automaticamente otimizada para uma performance mxima do rob.

2.2.2 Interpolao retangular Durante a interpolao retangular, o TCP move-se ao longo de uma linha reta entre os pontos inicial e final (veja Figura 14).
e

Ponto inicial
Figura 14 Interpolao retangular sem reorientao da ferramenta.

Ponto destino

Para obter um trajeto linear no sistema de coordenadas do objeto, os eixos do rob devem seguir um trajeto no linear no espao do eixo. Quanto mais a configurao do rob no linear, maior a acelerao e desacelerao necessria para fazer a ferramenta se mover em linha reta e obter a orientao da ferramenta desejada. Se a configurao extremamente no linear (na proximidade do punho e singularidades do brao), um ou mais dos eixos precisar de mais torque que o motor pode fornecer. Neste caso, a velocidade de todos os eixos ser automaticamente reduzida. A orientao da ferramenta permanece constante durante o movimento inteiro, a menos que uma reorientao tenha sido programada. Se a ferramenta tiver sido reorientada, rodada velocidade constante. Caractersticas gerais

5-12

Movimento e Princpios de E/S

Posicion. na Execuo do Programa

Uma velocidade rotacional mxima (em graus por segundo) pode ser especificada quando rotacionamos a ferramenta. Se esta setada em um valor baixo, a reorientao ser suave, independente da velocidade definida para o ponto central da ferramenta. Se este for um valor alto, a velocidade de reorientao somente limitada pela velocidade mxima do motor. Contanto que o motor no exceda o limite do torque, a velocidade definida ser mantida. Se, por outro lado, um dos motores exceder o limite da corrente, a velocidade de todo o movimento (com relao a posio e orientao) ser reduzida. Todos os eixos so coordenados para obter um trajeto que independente da velocidade. A acelerao otimizada automaticamente.

2.2.3 Interpolao circular Um trajeto circular definido usando trs posies programadas que definem um segmento circular. O primeiro ponto a ser programado o incio do segmento circular. O prximo ponto um ponto suporte (ponto circular) usado para definir a curvatura do crculo, e o terceiro ponto marca o final do crculo (veja Figura 15). Os trs pontos programados devem ser separados com intervalos regulares ao longo do arco do crculo para torn-lo o mais preciso possvel. A orientao definida pelo ponto suporte usada para selecionar entre uma curvatura curta e longa da orientao do ponto inicial para o ponto final. Se a orientao programada a mesma em relao ao crculo do ponto inicial ao final, e a orientao para o suporte est perto da mesma orientao relacionada ao crculo, a orientao da ferramenta ser mantida constante em relao ao trajeto. Ponto circular

Ponto destino

Ponto inicial
Figura 15 Interpolao circular com uma pequena curvatura da parte de um crculo (segmento circular) com um ponto inicial, ponto circular e ponto destino.

Entretanto, se a orientao do ponto suporte programada prxima a orientao rotacionada em 180, a curvatura alternativa selecionada (veja Figura 16).

Caractersticas gerais

5-13

Posicion. na Execuo do Programa

Movimento e Princpios de E/S

Ponto circular

Ponto destino

Ponto inicial
Figura 16 Interpolao circular com uma longa curvatura para orientao obtida definindo a orientao no ponto circular na direo oposta comparado com o ponto inicial.

Contanto que todos os torques do motor no excedam o valor mximo permitido, a ferramenta ir se mover na velocidade programada ao longo do arco do crculo. Se o torque de qualquer um dos motores for insuficiente, a velocidade ser automaticamente reduzida para estas partes do trajeto circular onde o rendimento do motor insuficiente. Todos eixos so coordenados para obter um trajeto independente da velocidade. A acelerao otimizada automaticamente.

2.2.4 SingArea\Wrist Durante a execuo na proximidade de um ponto singular, interpolao retangular ou circular podem ser problemticas. Neste caso, melhor usar interpolao modificada, o que significa que os eixos do punho so interpolados eixo-a-eixo, com o TCP seguindo um trajeto linear ou circular. A orientao da ferramenta, entretanto, ser diferente da orientao programada. No caso de SingArea\Wrist a orientao no ponto de suporte do crculo ser igual ao programado. Entretanto, a ferramenta no ter uma direo constante relacionada ao plano circular como numa interpolao circular normal. Se o trajeto circular passa por uma singularidade, a orientao nas posies programadas deve ser modificada para permitir grandes movimentos do punho. Isto ocorre se uma reconfigurao completa do punho gerada quando o crculo executado (eixos 4 e 6 movem 180 graus cada).

2.3 Interpolao de trajetos circulares


O ponto destino definido como uma ponto de parada para conseguir movimentos ponto a ponto. Isto significa que o rob e qualquer eixo externo iro parar e que no ser possvel continuar o posicionamento at que a velocidade de todos os eixos seja zero e os eixos estejam perto dos seus destinos. Pontos de passagem so usados para obter movimentos contnuos aps as posies programadas. Assim, as posies podem ser passadas em alta velocidade sem a redui desnecessria da velocidade. Um ponto de passagem gera um trajeto circular (trajeto

5-14

Caractersticas gerais

Movimento e Princpios de E/S

Posicion. na Execuo do Programa

parablico) passando pelo ponto programado. Isto significa que a posio programada nunca ser alcanada. O incio e fim deste trajeto circular sero definidos pela zona ao redor da posio programada (veja Figura 17).

A zona do trajeto do TCP

Posio programada

Trajeto circular

Figura 17 O ponto de passagem gera um trajeto circular para passar pela posio programada.

Todos os eixos so coordenados para obter um trajeto que independa da velocidade . A acelerao automaticamente otimizada.

2.3.1 Interpolao de eixos nos trajetos circulares O tamanho do trajeto circular (zonas) para movimentos do TCP expresso em mm (veja Figura 18). Desde que a interpolao executada eixo a eixo, o tamanho das zonas (em mm) deve ser recalculado em ngulos do eixo (radianos). Este clculo tem um fator de erro (normalmente mx. 10%), o que significa que a zona verdadeira deve desviar da qual foi programada. Se programar velocidades diferentes antes ou depois da posio, a transio de uma velocidade para outra acontece suavemente no trajeto circular sem afetar o trajeto. Ponto de passagem programado Zona

Ponto inicial Trajeto circular


Figura 18 Na interpolao de eixo, o trajeto circular gerado para passar por um ponto de passagem.

Caractersticas gerais

5-15

Posicion. na Execuo do Programa

Movimento e Princpios de E/S

2.3.2 Interpolao retangular de uma posio em trajetos circulares O tamanho dos trajetos circulares (zonas) para o movimento do TCP expresso em mm (veja Figura 19). Posio circular programada Zona

Ponto inicial

Trajeto circular Ponto destino

Figura 19 Durante interpolao retangular, um trajeto circular gerado para passar um ponto de passagem.

Se velocidades diferentes foram programadas antes ou depois da posio circular, a transio ser suave e acontecer no trajeto circular sem afetar o trajeto atual Se a ferramenta executar um processo (como solda a arco, cola ou corte com gua) ao longo de um trajeto, o tamanho da zona pode ser ajustado para conseguir o trajeto desejado. Se a superfcie da parbola do trajeto circular no for igual ao objeto geometricamente, as posies programadas podem ser marcadas prximas uma das outras, tornando possvel a aproximao do trajeto desejado usando dois ou mais pequenos trajetos parablicos.

2.3.3 Interpolao retangular da orientao de trajetos circulares Zonas podem ser definidas para a orientao da ferramenta, como zonas podem ser definidas para posies da ferramenta. A zona de orientao usualmente setada maior que a zona da posio. Neste caso, a reorientao iniciar a interpolao em direo orientao da prxima posio antes de iniciar o trajeto circular. A reorientao ento ser mais suave e provavelmente no ser necessrio reduzir a velocidade para executar a reorientao. A ferramenta ser reorientada para que a reorientao no final da zona seja igual definida pela programao do ponto de parada (veja a Figura 20a-c).

Figura 20a Trs posies com diferentes orientaes esto programadas acima.

5-16

Caractersticas gerais

Movimento e Princpios de E/S

Posicion. na Execuo do Programa

Figura 20b Se todas posies forem pontos de paradas, a execuo do programa ser como esta.

Tamanho da zona de operao


Figura 20c Se a posio do meio for um ponto de passagem, a execuo do programa ser como esta.

A zona da orientao para o movimento da ferramenta normalmente expresso em mm. Desta forma, voc pode determinar diretamente onde no trajeto a zona da orientao comea e termina. Se a ferramenta no se move, o tamanho da zona expresso em ngulos da rotao em graus ao invs do TCP em mm. Se diferentes velocidades de reorientao so programadas antes e depois do ponto de passagem, e se as velocidades de reorientao limitam o movimento, a transio de uma velocidade para outra acontecer suavemente no trajeto circular.

2.3.4 Interpolao de eixos externos em trajetos circulares Zonas podem tambm ser definidas para eixos externos, da mesma forma que para a orientao. Se a zona do eixo externo setada para ser maior que a zona do TCP, a interpolao dos eixos externos em direo ao destino da prxima posio ser iniciado antes de iniciar o trajeto circular do TCP. Isto pode ser usado para suavizar movimentos de eixos externos da mesma forma que a zona da orientao usada para suavizar movimentos do punho.

2.3.5 Trajetos circulares quando alteramos o mtodo de interpolao Trajetos circulares tambm so gerados quando um mtodo de interpolao mudado para outro. O mtodo de interpolao usado nos trajetos circulares atuais escolhido como uma forma de fazer a transio de um mtodo para outro o mais suave possvel. Se as zonas do trajeto circular da orientao e posio no so as mesmas, mais que um mtodo de interpolao pode ser usado no trajeto circular (veja Figura 21).

Caractersticas gerais

5-17

Posicion. na Execuo do Programa

Movimento e Princpios de E/S

p1

Interpolao retangular Interpolao de eixo

Interpolao SingArea\Wrist p4

p2 Interpolao SingArea\Wrist Zona da posio

p3

Zona da orientao

Figura 21 Interpolao quando mudamos de um mtodo de interpolao para outro. Interpolao retangular foi programada entre p1 e p2; interpolao de eixo entre p2 e p3; e interpolao Sing Area\Wrist entre p3 e p4.

Se a interpolao alterada de um movimento de TCP normal para uma reorientao sem um movimento de TCP ou vice-versa, nenhuma zona circular ser gerada. O mesmo acontece se a interpolao alterada para, ou de um movimento de eixos externos sem movimento do TCP.

2.3.6 Interpolao quando alteramos o sistema de coordenadas Quando existe uma alterao do sistema de coordenadas em um trajeto circular, por exemplo, um novo TCP ou um novo objeto de trabalho, a interpolao de eixo do trajeto circular usada. Isto tambm aplicvel quando alteramos de uma operao coordenada para uma operao no coordenada, ou vice-versa.

2.3.7 Programming of more than one point in the same position A programao de mais de um ponto na mesma posio provocar uma reduo desnecessria de velocidade ou atrasos durante a execuo do programa, e poder tambm, provocar a parada do programa quando da mudana do sistema de coordenadas em um trajeto de canto.

2.3.8 Trajetos circulares com sobreposio de zonas Se posies programadas so localizadas perto uma das outras, normal ocorrer zonas programadas sobrepostas. Para conseguir um trajeto bem definido e conseguir otimizar a velocidade todo o tempo, o rob reduz o tamanho da zona para metade da distncia de uma posio programada de sobreposio para outra (veja Figura 22). O mesmo raio da zona sempre usado para entradas e sadas de uma posio do programa, para obter trajetos circulares simtricos.

5-18

Caractersticas gerais

Movimento e Princpios de E/S

Posicion. na Execuo do Programa

Trajeto gerado p4 p2 p1 Zonas de posio programadas Zonas circulares calculadas pelo rob

p3

Figura 22 Interpolao com sobreposio de zonas de posio. As zonas ao redor de p2 e p3 so maiores que metade da distncia entre p2 e p3. Ento, o rob reduz o tamanho das zonas para torn-las iguais a metade da distncia entre p2 e p3, gerando trajetos circulares simtricos com as zonas.

As zonas de posio ou orientao de trajetos circulares podem se sobrepor. Assim que uma destas zonas do trajeto circular se sobrepem, esta zona reduzida (veja Figura 23). Zona da orientao programada Zona da orientao gerada p2 p1 p3

Trajeto gerado

p4

Zonas de posio

Zona de orientao
Figura 23 Interpolao com sobreposio de zonas de orientao. A zona de orientao de p2 maior que metade da distncia entre p2 e p3 e esta reduzida para metade da distncia entre p2 e p3. As zonas de posio no se sobrepem e consequentemente no so reduzidas; a zona de orientao de p3 tambm no reduzida.

Caractersticas gerais

5-19

Posicion. na Execuo do Programa

Movimento e Princpios de E/S

2.3.9 Planejando o tempo dos pontos de passagem Ocasionalmente, se o prximo movimento no marcado em tempo, pontos de passagens programados podem ser alcanados como um ponto de parada. Isto talvez acontea quando: - Um nmero de instrues lgicas com tempo de execuo muito longo so executadas entre dois movimentos curtos. - Os pontos esto muito prximos com alta velocidade. Se os pontos de destino so um problema, use o programa de execuo concomitante.

2.4 Eixos independentes


Um eixo independente um eixo que se move independentemente dos outros eixos no sistema do rob. possvel mudar um eixo para o modo independente e mais tarde tornar a mud-lo para o modo normal. Um conjunto especial de instrues manuseia os eixos independentes. Quatro instrues de movimento diferentes especificam o movimento do eixo. Por exemplo, a instruo IndCMove inicia o movimento contnuo do eixo. O eixo continua a movimentar-se a uma velocidade constante (independentemente do que o rob est fazendo) at ser executada uma nova instruo independente. Para mudar novamente uma instruo de reajuste para o modo normal usado IndReset. A instruo de reajuste pode tambm ajustar uma referncia nova para o sistema de medio - um tipo de nova sincronizao do eixo. Uma vez o eixo alterado para o modo normal possvel execut-lo como um eixo normal.

2.4.1 Execuo do programa Um eixo automaticamente mudado para o modo independente quando uma instruo Ind_Move executada. Isto ocorre mesmo se o eixo estiver a ser movido nesse momento, tal como quando um ponto precedente tiver sido programado como um ponto de passagem, ou quando a execuo simultnea do programa usada. Se uma nova instruo Ind_Move for executada antes da instruo anterior terminar, a nova instruo substitui imediatamente a anterior. Se uma execuo de programa for interrompida quando o eixo independente est em movimento, esse eixo parar. Quando o programa reinicializado o eixo independente arranca automaticamente. No existe coordenao ativa entre os eixos independentes e os outros eixos quando estes se encontram no modo normal. Caso ocorra uma falha de voltagem quando um eixo se encontra no modo independente, o programa no pode ser reinicializado. Neste caso, aparece uma mensagem de erro e o programa tem de ser inicializado a partir do incio. Note que uma unidade mecnica pode no ser desativada quando um dos seus eixos se encontra no modo independente. 5-20 Caractersticas gerais

Movimento e Princpios de E/S

Posicion. na Execuo do Programa

2.4.2 Execuo faseada Durante a execuo por fases um eixo independente executado apenas quando outra instruo est sendo executada. O movimento do eixo ser tambm faseado em linha com a execuo de outros instrumentos, veja a Figura 24. Eixo independente atinge a posio final IndAMove WaitTime 10 10 s Velocidade do eixo independente Velocidade do eixo normal
Figura 24 Execuo faseada de eixos independentes.

MoveL

MoveL

2.4.3 Movimentando Um eixo no modo independente no ser movimentado. No caso de ser feita uma tentativa para executar manualmente o eixo, o eixo no se movimenta e aparece uma mensagem de erro. Execute uma instruo IndReset ou mova o ponteiro do programa para main, de forma a abandonar o modo independente.

2.4.4 Gama de trabalho A gama de trabalho fsica o movimento total dos eixos. A gama de trabalho lgica a gama usada pelas instrues RAPID e lida na janela de movimentao. Aps a sincronizao (contador de voltas atualizado) a gama de trabalho fsica e lgica coincide. Usando a instruo IndReset a rea de trabalho lgica pode ser movimentada, veja a Figura 25.

Caractersticas gerais

5-21

Posicion. na Execuo do Programa

Movimento e Princpios de E/S

Gama de trabalho lgica aps sincronizao

Gama de trabalho 0 lgica aps IndReset 0 0

Gama de trabalho fsica Gama de trabalho lgica no modo independente


Figura 25 A gama de trabalho lgica pode ser movimentada, usando a instruo IndReset.

A resoluo de posies reduzida quando se afasta da posio lgica 0. Baixa resoluo junto com o controlador de regulao firme pode dar origem a um torque inaceitvel, rudo e instabilidade do controlador. Verifique o controlador de regulao e a performance do eixo relativamente ao limite da gama de trabalho na instalao. Verifique tambm se a resoluo da posio e a performance do trajeto so aceitveis.

2.4.5 Velocidade e acelerao No modo manual com uma velocidade reduzida, a velocidade reduzida para o mesmo nvel como se o eixo estivesse a rodar como no independente. Note que a funo IndSpeed\InSpeed no ser TRUE se a velocidade do eixo for reduzida. A instruo VelSet e a velocidade de correo em percentagem via janela de produo esto ativas para o movimento independente. Note que a correo via janela de produo inibe o valor TRUE a funo IndSpeed\InSpeed. No modo independente o valor de acelerao e desacelerao mais baixo, especificado no arquivo de configurao, usado tanto para acelerao como para desacelerao. Este valor pode ser reduzido pelo valor ramp na instruo (1 - 100%). A instruo AccSet no afeta o eixo no modo independente.

2.4.6 Eixos do rob Apenas o eixo 6 do rob pode ser usado como um eixo independente. Em geral, apenas a instruo IndReset usada para este eixo. Contudo, a instruo IndReset tambm pode ser usada para o eixo 4 nos modelos IRB 2400 e 4400. Se IndReset for usado para o eixo 4 do rob, ento o eixo 6 no dever estar no modo independente.

5-22

Caractersticas gerais

Movimento e Princpios de E/S

Posicion. na Execuo do Programa

Se o eixo 6 for usado como um eixo independente podem surgir problemas de singularidade, pois a funo normal de transformao da coordenada do eixo 6 est a ser usada. Se houver algum problema, execute este programa com o eixo 6 no modo normal. Modifique os pontos ou use as instrues a funo SingArea\Wrist ou MoveJ. O eixo 6 fica internamente ativo no clculo da performance do trajeto. Porm, o movimento interno do eixo 6 pode reduzir a velocidade dos outros eixos no sistema. A gama de trabalho independente para o eixo 6 definida com os eixos 4 e 5 na posio home. Se os eixos 4 ou 5 estiverem fora da posio home a gama de trabalho para o eixo 6 movimenta-se atravs do acoplamento da engrenagem. No entanto, a posio lida a partir da unidade de programao para o eixo 6 compensada com as posies dos eixos 4 e 5 atravs do acoplamento da engrenagem.

2.5 Soft Servo


Em algumas aplicaes existe a necessidade de um servo, o qual atua como uma mola mecnica. Isto significa que a fora do rob no objeto de trabalho crescer como uma funo da distncia entre a posio programada (atrs do objeto de trabalho) e a posio de contato (ferramenta do rob - objeto de trabalho). O relacionamento entre o desvio da posio e a fora, definido por um parmetro chamado softness. Quanto maior o parmetro de softness, maior o desvio de posio requerido para obter a mesma fora. O parmetro softness setado no programa e possvel alterar o seu valor em qualquer parte do programa. Diferentes valores de softness podem ser setados para diferentes eixos e tambm possvel misturar eixos de servo normal com eixos de soft servo. A ativao e desativao do soft servo e como mudar os valores de softness podem ser feitos quando o rob est em movimento. Quando isto ocorre, uma afinao ser feita entre modos de servo diferentes e entre valores de softness diferentes para conseguir transies suaves. O tempo de afinao pode ser setado do programa com o parmetro ramp. Com ramp = 1, a transio ser de 0.5 segundos, e no caso geral o tempo de transio ser ramp x 0.5 em segundos. Note que a desativao do soft servo deve ser feita quando existe uma fora entre o rob e o objeto de trabalho. Com valores de softness alto existe um risco que os desvios da posio de servo podem ser to grandes que os eixos iro se mover fora da rea de trabalho do rob.

Caractersticas gerais

5-23

Posicion. na Execuo do Programa

Movimento e Princpios de E/S

2.6 Parada e reinicializao


Um movimento pode ser parado de trs maneiras diferentes: 1. Por uma parada normal o rob ir parar no trajeto, o qual torna o reincio fcil. 2. Por uma parada stiff o rob ir parar em um tempo menor que o de parada normal, mas o trajeto de desacelerao no seguir o trajeto programado. Este mtodo de parada , por exemplo, usado para paradas de busca quando importante parar o movimento assim que possvel. 3. Por uma parada rpida os freios mecnicos so usados para conseguir uma distncia de desacelerao, a qual to menor quanto especificada por razes de segurana. O desvio de trajeto ser usualmente maior para uma parada rpida que para uma parada stiff. Depois de uma parada (qualquer dos tipos acima) um reincio pode ser executado em um trajeto interrompido. Se o rob parou fora do trajeto programado, o reincio comear com o retorno para a posio no trajeto, onde o rob devia ter parado. Um reincio seguindo uma falha de energia equivalente a reinicializar depois de uma parada rpida. Deve ser notado que o rob ir sempre retornar para o trajeto antes da operao do programa interrompido ser reinicializado, em casos quando a falha de energia ocorreu enquanto uma instruo lgica era executada. Quando reinicializamos, todos os tempos so contados do incio; por exemplo, posicionando no tempo ou uma interrupo na instruo WaitTime.

2.7 Informao relacionada


Descrito em: Definio de velocidade Definio de zonas (trajetos circulares) Instruo para interpolao de eixos Instruo para interpolao retangular Instruo para interpolao circular Instruo para interpolao modificada Singularidade Execuo do programa concomitante Tipos de dados - speeddata Tipos de dados - zonedata Instrues - MoveJ Instrues - MoveL Instrues - MoveC Instrues - SingArea Movimento e Princpios de E/SSingularidade Movimento e princpios de E/SSincronizao Usando InstruesLgicas Guia do Usurio - Parmetros dosistema

Otimizao do CPU

5-24

Caractersticas gerais

Movimento e Princpios de E/S

Sincronizao com instrues lgicas

3 Sincronizao com instrues lgicas


Instrues so normalmente executadas sequencialmente no programa. Entretanto, instrues lgicas podem tambm ser executadas em posies especficas ou durante um movimento. Uma instruo lgica qualquer instruo que no gere um movimento do rob ou de eixos externos, por exemplo, uma instruo de E/S.

3.1 Execuo sequencial do programa em pontos de parada


Se uma instruo de posicionamento pode ser programada como um ponto de parada, a instruo subseqente no executada at que o rob e eixos externos venham a parar, isto , quando a posio programada for atingida (veja Figura 26).

p1 Execuo do SetDO MoveL p1, v1000, fine, tool1; SetDO do1, on; MoveL p2, v1000, z30, tool1;
Figura 26 Uma instruo lgica depois de um ponto de parada no executada at que o ponto destino tenha sido alcanado.

3.2 Execuo sequencial do programa em pontos de passagem


Se uma instruo de posicionamento for programada como um ponto de passagem, as instrues lgicas subsequentes so executadas algum tempo antes de atingir a maior zona (para posio, orientao ou eixos externos). Veja Figura 26. Estas instrues so ento executadas em ordem. Execuo do SetDO p1 MoveL p1, v1000, z30, tool1; SetDO do1, on; MoveL p2, v1000, z30, tool1; Zona da posio DT Zona de orientao

Figura 27 Uma instruo lgica seguindo um ponto de passagem executada antes de atingir a zona.

Caractersticas gerais

5-25

Sincronizao com instrues lgicas

Movimento e Princpios de E/S

O tempo no qual elas so executadas (DT) compreendem as seguintes componentes de tempo: - O tempo gasto pelo rob para planejar o prximo movimento: aprox. 0.1 segundos. - O atraso do rob (servo lag) em segundos: 0 - 0.5 segundos dependendo da velocidade.

3.3 Execuo simultnea do programa


Execuo simultnea do programa pode ser programada usando o argumento \Conc na instruo de posicionamento. Este argumento usado para: - Executar uma ou mais instrues lgicas ao mesmo tempo em que o rob se move para reduzir o tempo de ciclo (por exemplo, usado em canais de comunicao serial). Quando uma instruo de posicionamento com o argumento \Conc executada, as seguintes instrues lgicas so executadas (na seqncia): - Se o rob no est em movimento, ou se a instruo de posicionamento anterior terminou com um ponto de parada, as instrues lgicas so executadas logo que a instruo de posicionamento atual inicie (ao mesmo tempo com o movimento). Veja Figura 26. - Se a instruo de posicionamento anterior termina em um ponto de passagem, as instrues lgicas so executadas em um tempo dado (DT) antes de atingir a zona maior (para posio, orientao ou eixos externos). Veja Figura 26.

Execuo do SetDO p2 p1 MoveL p1, v1000, fine, tool1; MoveL \Conc, p2, v1000, z30, tool1; SetDO do1, on; MoveL p3, v1000, z30, tool1;
Figura 28 No caso de execuo simultnea do programa depois de um ponto de parada, uma instruo de posicionamento e instruo lgica subsequente so iniciadas ao mesmo tempo.

5-26

Caractersticas gerais

Movimento e Princpios de E/S

Sincronizao com instrues lgicas

Execuo do SetDO Zona maior DT

p2 p1

MoveL p1, v1000, z30, tool1; MoveL \Conc, p2, v1000, z30, tool1; SetDO do1, on; MoveL p3, v1000, z30, tool1;
Figura 29 No caso de execuo de programa simultneo depois de um ponto de passagem, a instruo lgica inicia a execuo antes das instrues de posicionamento com o argumento \Conc serem iniciadas.

As instrues que indiretamente afetam movimentos, como ConfL e SingArea, so executadas da mesma maneira que outras instrues lgicas. Elas, entretanto, no afetam movimentos anteriores s instrues de posicionamento. Se vrias instrues de posicionamento com o argumento \Conc e vrias instrues lgicas em uma longa seqncia so misturadas, o seguinte se aplica: - Instrues de posicionamento so executadas depois da instruo anterior de posicionamento ter sido executada. - Instrues lgicas so executadas diretamente, da forma que foram programadas. Elas tomam lugar ao mesmo tempo que o movimento (veja Figura 26) significando que instrues lgicas so executadas um estgio anterior no trajeto que elas foram programadas. - Movimentos no podem ser reinicializados depois de um programa ser interrompido, se duas ou mais instrues na sequncia esto aguardando para ser executadas.

Caractersticas gerais

5-27

Sincronizao com instrues lgicas

Movimento e Princpios de E/S

Execuo de SetDO e SetAO DT Zona maior

p2 p1

MoveL p1, v1000, z30, tool1; MoveL \Conc, p2, v1000, z30, tool1; SetDO do1, on; MoveL \Conc, p3, v1000, z30, tool1; SetAO ao2, 5;
Figura 30 Se vrias instrues de posicionamento com o argumento \Conc so programadas na sequncia, todas as instrues lgicas conectadas so executadas ao mesmo tempo como a primeira instruo executada.

Durante a execuo simultnea de programa, as seguintes instrues so programadas para terminar a sequncia e subsequentemente resincronizar instrues de posicionamento e instrues lgicas: - uma instruo de posicionamento sem o argumento \Conc, - a instruo WaitTime ou WaitUntil com o argumento \Inpos.

3.4 Sincronizao do trajeto


Para sincronizar equipamento de processo (aplicaes como cola, pintura e solda a arco) com os movimentos do rob, diferentes tipos de sinais de sincronizao de trajeto podem ser gerados. Com um chamado de evento de posies, um sinal de disparo ser gerado quando o rob passar por uma posio pr-definida no trajeto. Com um evento de tempo, um sinal ser gerado em um tempo pr-definido antes do rob parar na posio de parada. Adicionalmente, o sistema de controle tambm trata de eventos de ondulao, os quais geram pulsos em ngulos de fase pr-definidos de um movimento de onda. Todos os sinais de posio sincronizados podem ser atingidos ambos antes (look ahead time) e depois (delay time) do tempo que o rob passa pela posio pr-definida. A posio dada por uma posio programada e pode ser afinada como uma distncia de trajeto antes da posio programada. 5-28 Caractersticas gerais

Movimento e Princpios de E/S

Sincronizao com instrues lgicas

A preciso de 2 ms. Na parte do trajeto antes da posio final (mx. 12 mm a 500 mm/s), o sinal pode entretanto ser atrasado em 24 ms. Se uma falha de energia ocorrer quando executando uma instruo de Trigg, a condio de trigg ativada pelo novo ponto de incio. Isto significa que o sinal ser setado incorretamente se o argumento \Start for usado. Se a condio de trigg ocorreu antes da falha de energia, ento o evento de trigg ser ativado novamente.

3.5 Informao relacionada


Descrito em: Instrues de posicionamento Definio do tamanho da zona Sumrio RAPID - Movimento Tipos de dados - zonedata

Caractersticas gerais

5-29

Sincronizao com instrues lgicas

Movimento e Princpios de E/S

5-30

Caractersticas gerais

Movimento e Princpios de E/S

Configurao do Rob

4 Configurao do Rob
Normalmente possvel atingir a mesma posio de ferramenta do rob e orientao de diferentes maneiras, usando diferentes ngulos de eixos. Ns chamamos estas diferenas de configuraes do rob. Se, por exemplo, uma posio est localizada aproximadamente no meio da rea de trabalho, alguns robs podem conseguir esta posio por cima ou por baixo (veja Figura 31). Isto tambm pode ser conseguido pela rotao da parte frontal do brao superior do rob (eixo 4) de cima para baixo enquanto rotacionamos os eixos 5 e 6 para uma posio e orientao desejada (veja Figura 32).

Figura 31 Duas configuraes de brao diferentes usadas para atingir a mesma posio e orientao. Em uma das configuraes, o brao aponta para cima e para atingir a outra configurao, o eixo 1 deve ser rotacionado 180 graus.

Caractersticas gerais

5-31

Configurao do Rob

Movimento e Princpios de E/S

eixo 6

eixo 4 eixo 5

Figura 32 Duas diferentes configuraes de punho usado para atingir a mesma posio e orientao. A configurao na qual a parte da frente do brao superior aponta para cima (mais abaixo), eixo 4 rotacionou 180 graus, eixo 5 girou 180 graus e eixo 6 girou 180 graus para atingir a configurao na qual a parte da frente do brao superior aponte para baixo (mais acima).

Usualmente voc quer que o rob alcance a mesma configurao durante a execuo do programa como a que voc programou. Para fazer isto, voc pode fazer o rob verificar a configurao e, se a configurao correta no foi conseguida, a execuo do programa ir parar. Se a configurao no for verificada, o rob talvez comece inesperadamente a mover seus braos e seu punho o qual, na volta, talvez cause uma coliso com equipamentos perifricos. A configurao do rob especificada definindo apropriadas revolues do quadrante dos eixos 1, 4 e 6. Se o rob e a posio programada tem a mesma revoluo de quadrante para estes eixos, a configurao do rob est correta.

1 2

0 3

Figura 33 Um quarto de volta para um ngulo de eixo positivo: int joint -------------- . 2
angle

5-32

Caractersticas gerais

Movimento e Princpios de E/S

Configurao do Rob

-3 -2

-4 -1

- 1 Figura 34 Revoluo de quadrante de um ngulo de eixo negativo: int joint ------------ 2 angle

Para um eixo de rob linear, o valor define um intervalo mtrico para o eixo do rob, O valor 0 significa uma posio entre 0 e 1 metro, 1 significa uma posio entre 1 e 2 metros. Para valores negativos, -1 significa uma posio entre -1 e 0 metros, etc.

-3

-2

-1

3 x (m)

-3

-2

-1

Valor de configurao

Figura 35 Valores de configurao para um eixo linear

O conjunto de dados de configurao consiste nos quatro componentes cf1, cf4, cf6, cfx. cf1 especifica o valor do eixo 1, cf4 para o eixo 4, cf6 para o eixo 6. cfx um componente adicional usado para tipos de rob com estruturas que precisam de um componente extra. A verificao da configurao envolve a comparao da configurao da posio programada com a configurao do rob. A configurao de um eixo especfico aceita quando o valor de eixo obtido est dentro de +/- 45 graus a partir do quadrante especificado para uma juno rotacional ou dentro de +/- 0,5 m a partir do valor em metros epseicicado de um eixo linear.

Caractersticas gerais

5-33

Configurao do Rob

Movimento e Princpios de E/S

cf4 = 0

Figura 36 Examplo: Valor de eixo aceito de 135graus < juno 4 <-45 graus para eixo rotacional 4 quando cf4 = 0

-3

-2

-1

3 x (m)

-1

Valor de configurao

Figura 37 Examplo: Valor de eixo aceito -1,5 m < juno 1 < 0,5 m para eixo linear 1 quando cf1 = -1

Durante o movimento retangular, o rob sempre se move o mais prximo possvel desta configurao. Se, entretanto, a verificao da configurao est ativa, a execuo do programa pra assim que: - A configurao da posio programada no for obtida. - A reorientao necessria de qualquer dos eixos de punho para chegar posio programada exceder um limite (140 a 180 graus). Durante movimento eixo-a-eixo ou retangular modificado usando uma verificao de configurao, o rob sempre se move para a configurao de eixos programada. Se a posio programada e orientao no so alcanadas, a execuo do programa pra antes de iniciar o movimento. Se a configurao no ativada, o rob move-se para a posio especificada e orientao com a configurao mais prxima. Quando a execuo de uma posio programada interrompida por causa de um erro de configurao, muitas vezes isso pode ser causado por uma ou mais das seguintes razes: A posio programada off-line com uma configurao errada. A ferramenta do rob foi alterada causando obrigando o rob a ter uma configurao diferente daquela que foi programada. A posio sujeita a uma operao de estrutura ativa (deslocao, usurio, objeto, base).

5-34

Caractersticas gerais

Movimento e Princpios de E/S

Configurao do Rob

A configurao correta na posio destino pode ser encontrada pelo posicionamento do rob prximo a ela e lendo a configurao na unidade de programao. Se os parmetros de configurao mudam por causa da base de operao ativa, a verificao da configurao pode ser desativada.

4.1 Dados de configurao do rob para 6400C


O IRB 6400C ligeiramente diferente na sua forma inequvoca de indicar uma configurao de rob. A diferena est na interpretao do confdata cf1. cf1 usado para selecionar uma das duas configuraes principais possveis de eixos (eixo 1, 2 e 3): - cf1 = 0 a configurao para a frente - cf1 = 1 a configurao para trs. A Figura 38 mostra um exemplo de uma configurao para a frente e de uma configurao para trs dando a mesma posio e orientao.

PARA A FRENTE, cf1 = 0

PARA TRS, cf1 = 1.

Figura 38 A mesma posio e orientao com as duas configuraes principais diferentes de eixos.

A configurao para a frente a parte frontal do espao de trabalho do rob com o brao direcionado para a frente. A configurao para trs a parte de servio do espao de trabalho com o brao direcionado para trs.

Caractersticas gerais

5-35

Configurao do Rob

Movimento e Princpios de E/S

4.2 Informao relacionada


Descrito em: Definio de configurao do rob Ativando/desativando a verificao da configurao Tipos de dados - confdata Sumrio RAPID - Setando Movimento

5-36

Caractersticas gerais

Movimento e Princpios de E/S

Modelos cinemticos de robs

5 Modelos cinemticos de robs


5.1 Cinemtica do rob
A posio e orientao de um rob determinada a partir de um modelo cinemtico de sua estrutura mecnica. Cada instalao exige os seus modelos especficos de unidade mecnica definidos. Para robs mestres e externos ABB padro, estes modelos esto predefinidos no controlador.

5.1.1 Rob mestre O modelo cinemtico dos robs mestre modela a posio e a orientao da ferramenta do rob em relao sua base como funo dos ngulos de juno do rob. Os parmetros cinemticos especificando o comprimento dos braos, desvios e modos dos eixos, esto predefinidos no arquivo de configurao para cada tipo de rob.

comprimento_do_brao_superior

comprimento_do_punho Z6 eixo 5

desvio_do_eixo_3 Z comprimento_brao_inferior desvio_do_eixo_2

eixo 4 eixo 3

eixo 6
X6

eixo 2 eixo 1

altura_do_p

X
Figura 39 Estrutura cinemtica de um rob IRB1400

Um procedimento de calibragem suporta a definio da estrutura de base do rob mestre em relao estrutura global.

Caractersticas gerais

5-37

Modelos cinemticos de robs

Movimento e Princpios de E/S

Z6

X6 Z Y X

Estrutura base do rob mestre

Estrutura global
Figura 40 Estrutura de base do rob mestre

5.1.2 Rob externo A coordenao para um rob externo exige tambm um modelo cinemtico para este mesmo rob. suportado um nmero de classes predefinidas de estruturas mecnicas de 2 a 3 dimenses. Z2 comprimento_do_brao_inferior Z0 desvio_do_brao_superior modo_do_eixo 1

eixo 2 eixo 1
desvio_do_eixo 1_x

X2

mesa_giratria modo_do_eixo

altura_do_p X0
Figura 41 Estrutura cinemtica de um rob ORBIT 160B usando modelo predefinido

Os procedimentos de calibragem que definem a estrutura de base em relao estrutura global so fornecidos para cada classe de estruturas.

5-38

Caractersticas gerais

Movimento e Princpios de E/S

Modelos cinemticos de robs

Z0 Corpo C

Z2

X2 Corpo B Corpo A

X0 Estrutura de base do rob externo

Estrutura global
Figura 42 Estrutura de base para um rob ORBIT_160B

Y0

Y2 X0

y1

X2
x1 x2

Figura 43 Pontos de referncia em uma mesa giratria para calibragem da estrutura de base de um rob ORBIT_160B, na posio recolhido, usando um modelo predefinido

5.2 Cinemtica geral


As estruturas mecnicas no suportadas por estruturas predefinidas podero ser modeladas usando um modelo cinemtico geral. Isto ser possvel para robs externos. A modelagem est baseada na conveno Denavit-Hartenberg conforme Introduction to Robotics, Mechanics & Control, John J. Craigh (Addison-Wesley 1986)

Caractersticas gerais

5-39

Modelos cinemticos de robs

Movimento e Princpios de E/S

Z2 d1 d2 Z0 Y2 X0
mesa_giratria

a1 = 0 a2 = 0 alfa1 = 0

alfa2

Figura 44 Estrutura cinemtica de um rob ORBIT 160B usando um modelo cinemtio geral

Um procedimento de calibragem suporta a definio da estrutura de base do rob externo em relao estrutura global.

Z2 Z0 Y2

X0 Estrutura de base de rob externo

Estrutura global
Figura 45 Estrutura de base de um rob ORBIT_160B usando um modelo cinemtico geral

5-40

Caractersticas gerais

Movimento e Princpios de E/S

Modelos cinemticos de robs

Y0

X0

x1 y1 x2

Y2

X2
Figura 46 Pontos de referncia na mesa giratria para calibragem da estrutura de base de um rob ORBIT_160B na posio de recolhido (eixos = 0 graus)

5.3 Informaes relacionadas Descrita em: Definio da cinemtica geral de um rob externo Guia do Usurio- Parmetros de Sistema

Caractersticas gerais

5-41

Modelos cinemticos de robs

Movimento e Princpios de E/S

5-42

Caractersticas gerais

Movimento e Princpios de E/S

Superviso Movimento/Deteco coliso

6 Superviso Movimento/Deteco coliso


A superviso do movimento o nome de um conjumto de funes de alta sensibilidade, baseadas no modelo de superviso dos movimentos do rob. A superviso do movimento inclui funes para deteco de coliso, obstruo e definio de carga incorreta. Esta funo chamada de Deteco de Coliso.

6.1 Introduo
A deteco de coliso atuar se a carga for definida incorretamente. Se a carga no for conhecida, a funo de identificao de carga poder ser usada para defini-la. Quando a deteco de coliso for atuada, o torque do motor ser invertido e os freios mecnicos aplicados, para parar o rob. O rob ento recuar uma pequena distncia, dentro do trajeto, para remover qualquer fora residual que possa estar presente, caso tenha ocorrido uma coliso ou obstruo. Aps isto, o rob pra novamente permanecendo no estado de motores ligados. Uma coliso tpica mostrada na figura abaixo. A superviso de movimento s ativa quando, no mnimo, um eixo (incl. eixos externos) estiver em movimento. Se todos os eixos estiverem em repouso, a funo desativada. Isto para evitar atuao desnecessria no caso de foras de processo externas.

6.2 Ajuste dos nveis de Deteco de Coliso


A deteco de coliso usa um nvel de superviso varivel. Em baixas velocidades mais sensvel do que em altas velocidades. Por esta razo, no dever ser exigido, pelo usurio, nenhum ajuste durante as condies de operao normais. No entanto, possvel ligar e desligar a funo e ajustar os nveis de superviso. Esto disponveis parmetros de ajuste em separado para deslocamento lento (jog) e execuo do programa. Os diferentes parmetros de ajuste esto descritos com maiores detalhes no Guia do Usurio no captulo Parmetros do Sistema: Manipulador (Rob). Existe uma instruo RAPID chamada MotionSup a qual liga e desliga a funo, e modifica o nvel de superviso. Isto usual em aplicaes onde foras de processo externas atuam no rob em certas partes do ciclo. A instruo MotionSup est descrita com maiores detalhes no Manual de Referncia RAPID.

6.3 Caixa de dilogo da superviso de movimento


Selecionar a superviso de movim. no menu especial na janela de deslocamento lento (jog). Esta mostra uma caixa de dilogo a qual permite superviso de movimento ser lig. e desl. Isto s afetar o rob quando em jog. Se a superviso de movimento for desligada na caixa de dilogo, e o programa for executado, a deteo de coliso poder ainda estar ativa durante o funcionamento do programa. Se o programa for ento parado e o rob colocado em jog, a bandeira de estado na caixa de dilogo surge outra vez. uma medida de segurana para evitar desligamento acidental.

Caractersticas gerais

5-43

Superviso Movimento/Deteco coliso Movimento e Princpios de E/S

Figura: Coliso tpica Fase 1 - O torque do motor invertido para parar o motor. Fase 2 - A rotao do motor invertida para remover as foras residuais na ferramenta e no robot.

instante da coliso

coliso detetada

rob parado

remoo das foras residuais

veloc. motor

tempo
rotao invertida

torque motor

tempo

torque invertido

5-44

Caractersticas gerais

Movimento e Princpios de E/S

Superviso Movimento/Deteco coliso

6.4 Sadas digitais


A sada digital MotSupOn alta quando a funo de deteco de coliso estiver ativa e baixa quando no estiver ativa. Observar que uma mudana no estado da funo vigora no incio do movimento. Assim, se a deteco estiver ativa e o rob estiver em movimento, a MotSupOn ser alta. Se o rob estiver parado e a funo desligada, ainda assim a MotSupOn ser alta. Quando o rob iniciar o movimento, a MotSupOn comuta para baixa. A sada digital MotSupTrigg fica alta quando a deteco de coliso dispara. A sada permanecer alta at o codigo de erro ser validado, ou a partir da unidade de programao, ou atravs da entrada digital AckErrDialog. As sadas digitais esto descritas com maiores detalhes no Guia do Usurio no captulo Parmetros do Sistema: Sinais E/S.

6.5 Limitaes
A superviso de movimento s est disponvel para os eixos do rob. No est disponvel para movimentos por esteira (track motions), estaes de rbita, ou quaisquer outros manipuladores externos. No RobotWare 3.1, a superviso de movimento, s est disponvel para a famlia de robs IRB6400. A deteco de coliso ser desativada quando pelo menos um eixo estiver funcionando no modo de junta independente. Este caso o mesmo de um eixo externo que funciona como no modo de junta independente. A deteco de coliso poder disparar quando o rob for usado na modo servo soft. Por esta razo, recomendvel desligar a deteco de coliso, quando o rob estiver a ser usado no modo servo soft. Se a instruo RAPID MotionSup for usada para desligar a deteco de coliso, isto somente vigorar aps o rob iniciar o movmento. Como consequncia, a sada digital MotSupOn poder estar temporariamente alta no arranque do programa antes do incio do movimento do rob. A distncia de recuo do rob, aps uma coliso, proporcional velocidade do movimento antes da coliso. Se colises a baixa velocidade ocorrerem repetidamente, o rob poder no retornar o suficiente para aliviar o esforo da coliso. Como consequncia, poder no ser possvel operar o rob em jog sem disparar a superviso. Neste caso usar o menu jog para desligar temporariamente a deteco de coliso e afastar lentamente (jog) o rob do obstculo. Na hiptese de uma coliso seca durante a execuo do programa, poder levar alguns segundos at o rob comear a recuar.

Caractersticas gerais

5-45

Superviso Movimento/Deteco coliso Movimento e Princpios de E/S

6.6 Informaes relacionadas


Descritas em: Instruo RAPID MotionSup Ajuste para parmetros do sistema Sinais E/S, Superviso do movimento Identificao de Carga Sumrio/Resumo RAPID - Motion Parmetros do Sistema - Manipulator Parmetros do Sistema - IO Signals Desloc./Movimento e Principios E/S

5-46

Caractersticas gerais

Movimento e Princpios de E/S

Singularidades

7 Singularidades
Algumas posies no espao de trabalho do rob podem ser atingidas usando um nmero infinito de configuraes do rob para posio e orientao da ferramenta. Estas posies, conhecidas como pontos singulares (singularidades), constituem um problema quando calculando ngulos do brao do rob baseado na posio e orientao da ferramenta. Geralmente falando, um rob tem dois tipos de singularidades: singularidades do brao e singularidades do punho. Singularidades de brao so todas configuraes onde o centro do punho (a interseco dos eixos 4, 5 e 6) terminam diretamente acima do eixo 1 (veja Figura 47). Singularidades de punho so configuraes onde eixo 4 e eixo 6 esto na mesma linha, isto , eixo 5 tem um ngulo igual a 0 (veja Figura 48). Singularidade na interseco do centro do punho e eixo 1

Rotao central do eixo 1

Z base

X base

Figura 47 Singularidade do brao ocorre quando o punho central e o eixo 1 se interligam.

Eixo 5 com um ngulo de 0 graus Eixo 6 paralelo ao eixo 4

Figura 48 Singularidade de punho ocorre quando o eixo 5 est em 0 graus.

Caractersticas gerais

5-47

Singularidades
Pontos de singularidade/IRB 6400C

Movimento e Princpios de E/S

Entre o espao de trabalho do rob com o brao direcionado para a frente e o brao direcionado para trs, existe um ponto de singularidade acima do rob. Existe tambm um ponto de singularidade nas partes laterais do rob. Estes pontos contm uma singularidade e possuem limitaes cinticas. Uma posio nestes pontos no pode ser especificada como para a frente/trs, e apenas pode ser atingida com MoveAbsJ. Quando o rob se encontra num ponto singular : - Apenas possvel usar MoveAbsJ ou movimentar o rob eixo a eixo.

7.1 Execuo do programa atravs de singularidades


Durante a interpolao de eixos, o rob nunca tem nenhum problema passando por pontos singulares. Quando executando um trajeto retangular ou circular prximo a uma singularidade, as velocidades em alguns eixos (1 e 6/4 e 6) podem ser muito altas. Para no exceder a velocidade mxima do eixo, a velocidade de um trajeto retangular reduzida. As altas velocidades de eixo podem ser reduzidas usando o modo (Sing Area\Wrist) quando os eixos do punho so interpolados em ngulos de eixo enquanto mantemos um trajeto retangular da ferramenta do rob. Um erro de orientao comparado a interpolao linear total entretanto introduzido. Note que a configurao do rob muda drasticamente quando o rob passa prximo a singularidade com interpolao retangular ou circular. Para permitir a reconfigurao, a primeira posio do outro lado da singularidade deve ser programada com uma orientao que torne a reconfigurao desnecessria. Tambm note que o rob no deve estar na sua singularidade quando somente eixos externos so movidos, como este pode causar aos eixos do rob movimentos desnecessrios.

7.2 Movimentao atravs de singularidades


Durante a interpolao de eixo, o rob nunca tem nenhum problema passando por pontos singulares. Durante interpolao retangular o rob pode passar por pontos singulares mas com a velocidade reduzida.

5-48

Caractersticas gerais

Movimento e Princpios de E/S

Singularidades

7.3 Informao relacionada


Descrito em: Controlando como o rob atua na execuo prximo a pontos singulares Instrues - SingArea

Caractersticas gerais

5-49

Singularidades

Movimento e Princpios de E/S

5-50

Caractersticas gerais

Movimento e Princpios de E/S

Zonas Globais

8 Zonas Globais
8.1 Uso das Zonas Globais
Com esta funo, o rob pra ou uma sada automaticamente ajustada quando o rob se encontra dentro de uma rea especial definida pelo usurio. A funo pode ser usada em vrias ocasies, por exemplo: - Quando dois robs tm uma parte das suas reas de trabalho em comum. Supervisionando estes sinais, os robs podem garantir que no colidiro um com o outro. - Quando um equipamento externo est dentro da rea de trabalho do rob. Uma rea proibida pode ser criada para evitar que o rob colida com este equipamento. - Indicao que o rob est em uma posio onde admissvel iniciar a execuo do programa a partir de um PLC.

8.2 Uso das Zonas Globais


Para indicar que o ponto central da ferramenta est em uma parte especfica da rea de trabalho. Para limitar a rea de trabalho do rob a fim de evitar coliso com a ferramenta. Para que uma rea de trabalho comum para dois robs, fique disponvel para somente um rob de cada vez.

8.3 Definio de Zonas Globais no sistema de coordenadas global


Todas as Zonas Globais tm de ser definidas no sistema de coordenadas global. Os lados das Caixas so paralelos aos eixos das coordenadas e os eixos do Cilindro so paralelos ao eixo Z do sistema de coordenadas global.

Caractersticas gerais

5-51

Zonas Globais

Movimento e Princpios de E/S

Sistema de coordenadas de base do rob

X Y Z
Esfera Raio

TCP

Cilindro Raio Caixa Altura

z y

Sistema de coordenadas global

Uma Zona Global pode ser definida para ficar dentro ou fora da forma Caixa, Esfera ou Cilindro.

8.4 Superviso do TCP do Rob


No supervisionado TCP

o movimento do ponto central da ferramenta que supervisionado e nenhum outro ponto do rob. O TCP sempre supervisionado independente do modo de operao, por exemplo, execuo do programa e movimento.

8.4.1 TCP estacionrio Se o rob est segurando um objeto de trabalho e trabalhando em uma ferramenta estacionria, um TCP estacionrio usado. Se essa ferramenta est ativa, a ferramenta no se mover e se est dentro de uma Zona Global, ento est sempre no seu interior.

5-52

Caractersticas gerais

Movimento e Princpios de E/S

Zonas Globais

8.5 Aes

8.5.1 Ajustar uma sada digital quando o tcp est dentro de uma Zona Global. A ao ajusta uma sada digital quando o tcp est dentro de uma Zona Global. til indicar que o rob parou em uma rea especificada.
Tempo entre checagem Zona Global contra Zonas Globais Movimento do TCP

Estado da sada digital

8.5.2 Ajustar uma sada digital antes do tcp atingir uma Zona Global. Esta ao ajusta uma sada digital antes do tcp atingir uma Zona Global. Pode ser usado para parar o rob dentro de uma Zona Global.
Tempo de Parada para o Rob Movimento do TCP Zona Global

Estado da sada digital

8.5.3 Parar o rob antes do tcp atingir uma Zona Global. Uma Zona Global pode ser definida para ficar fora da rea de trabalho. O rob parar ento com o Ponto Central da Ferramenta fora da Zona Global quando se dirigir para a Zona.
Tempo de Parada para oRob Tempo entre checagem contra Zonas Globais Movimento do TCP

Se o rob foi movido para uma Zona Global definida como fora da rea de trabalho, por exemplo, liberando os freios e empurrando manualmente, ento movimentando ou empurrando manualmente com freios liberados so as nicas formas de sair da Zona.

Caractersticas gerais

5-53

Zonas Globais

Movimento e Princpios de E/S

8.6 Tamanho mnimo das Zonas Globais


A superviso dos pontos centrais da ferramentas efetuada em pontos discretos com intervalos que dependem da resoluo do trajeto. Cabe ao usurio determinar zonas com tamanhos que impeam o rob de se dirigir diretamente para a zona sem ser checado dentro da Zona.
Tamanho mn. da zona para resoluo de tr ajeto e velocidade mx. usadas
veloc resol.

1000 mm/s 25 mm 50 mm 75 mm

2000 mm/s 50 mm 100 mm 150 mm

4000 mm/s 100 mm 200 mm 300 mm

1 2 3

Se a mesma sada digital usada para mais de uma Zona Global, a distncia entre Zonas tem de exceder o tamanho mnimo, de acordo com a tabela acima, para evitar um estado incorreto para a sada.
Tempo entre checagem contra Zonas Globais

Se o tempo dentro da zona demasiado pequeno, o rob pode passar o canto de uma zona sem o ver. Assim, garanta que a zona maior do que a rea de perigo.

8.7 Nmero mximo de Zonas Globais


Podero se definidas, no mximo, dez Zonas Globais ao mesmo tempo.

8.8 Falha de corrente, reiniciar e run on


Zonas Globais Estacionrias sero eliminadas com a falha de corrente e reinseridas com corrente por meio de uma rotina de eventos conectada ao evento POWER ON. Zonas Globais Temporrias sobrevivero falha de corrente, mas sero eliminadas quando um novo programa for carregado ou iniciado na unidade principal. As sadas digitais das Zonas Globais sero atualizadas no modo run on. Assim, se o rob tiver sido movido durante o run off, as sadas sero atualizadas primeiro em run on.

5-54

Caractersticas gerais

Movimento e Princpios de E/S

Zonas Globais

8.9 Informaes relacionadas


Manual de Referncia RAPID Movimentao e Princpios de E/S: Sistemas de coordenadas Tipos de dados: wztemporary wzstationary shapedata Instrues: WZBoxDef WZSphDef WZCylDef WZLimSup WZDOSet WZDisable WZEnable WZFree WZTempFree

Caractersticas gerais

5-55

Zonas Globais

Movimento e Princpios de E/S

5-56

Caractersticas gerais

Movimento e Princpios de E/S

Princpios de E/S

9 Princpios de E/S
O rob geralmente tem uma ou mais placas de E/S. Cada uma das placas tem vrios canais digitais e/ou analgicos os quais devem ser conectados para sinais lgicos antes deles poderem ser usados. Isto carregado nos parmetros do sistema e tem nomes padres prontos antes do rob ser entregue. Nomes lgicos devem sempre ser usados durante a programao. Um canal fsico pode ser conectado vrios nomes lgicos, mas tambm pode no ter nenhuma conexo lgica (veja Figura 49).

Canal fsico IN1 IN2

Sinal lgico do1 feeder

IN16 OUT1 OUT2

. . . . I/O board . . . .

gripper do2 feeder2 do16

OUT16

Figura 49 Para estar apto a usar uma placa de E/S, nomes lgicos devem ser dados a seus canais. No exemplo acima, a sada fsica 2 est conectada a dois diferentes nomes lgicos. IN16, por outro lado, no tem nenhum nome lgico e ento no pode ser usada.

9.1 Caractersticas de sinais


As caractersticas de um sinal so dependentes do canal fsico usado e como o canal est definido nos parmetros do sistema. O canal fsico determina o atraso de tempo e nveis de tenso (veja a Especificao do Produto). As caractersticas, tempos de filtro e escalonamento entre valores programados e fsicos, so definidos nos parmetros do sistema. Quando a fonte de alimentao do rob ligada, todos os sinais so setados para zero. Eles, entretanto, no afetam paradas de emergncia ou eventos similares.

Caractersticas gerais

5-57

Princpios de E/S

Movimento e Princpios de E/S

Uma sada pode ser setada para 1 ou 0 pelo programa. Isto tambm pode ser feito usando um atraso ou na forma de um pulso. Se um pulso ou atraso altera uma sada, a execuo do programa continua. A alterao ento carregada sem afetar o resto da execuo do programa. Se, por outro lado, uma nova alterao ordenada para a mesma sada antes do tempo dado ocorrer, a primeira alterao no pode ser carregada (veja Figura 50).

SetDO \SDelay:=1, do1; WaitTime 0.5; PulseDO do1; Valor de sinal 1 Tempo 0 0.5 1
Figura 50 A instruo SetDO no carregada completamente por causa do novo comando que dado antes do atraso de tempo ocorrer.

9.2 Sinais conectados interrupo


As funes de interrupo do RAPID podem ser condicionadas por alteraes de sinais digitais. A funo pode ser chamada na borda de subida ou de descida do sinal. No entanto, se o sinal digital mudar muito rapidamente, a interrupo poder ser perdida. Ex: Se uma funo estiver conectada a um sinal chamado do1 e voc criar um progama do tipo: SetDO do1,1; SetDO do1,0; Primeiro, o sinal ir para nvel alto e, em seguida, para nvel baixo em alguns milissegundos. Nesse caso, voc pode perder a interrupo. Para ter certeza de que voc receber a interrupo, certifique-se de que a sada esteja alta antes de redefinila. Ex: SetDO do1,1; WaitDO do1 ,1; SetDO do1,0; Dessa forma, voc nunca perder uma interrupo.

5-58

Caractersticas gerais

Movimento e Princpios de E/S

Princpios de E/S

9.3 Sinais do sistema


Sinais lgicos podem ser interconectados pelo significado de funes especiais do sistema. Se, por exemplo, uma entrada conectada funo do sistema Start, um incio de programa automaticamente gerado logo que esta entrada seja habilitada. Estas funes do sistema so geralmente habilitadas em modo automtico. Para maiores informaes, veja Captulo 9, Parmetros do Sistema, ou o captulo Instalao e Comissionamento - Comunicao com PLC no Manual do Produto.

9.4 Conexes cruzadas


Os sinais digitais podem ser inter-conectados de forma a serem afetados automaticamente: - Um sinal de sada pode ser conectado a um ou mais sinais de entrada ou de sada. - Um sinal de entrada pode ser conectado a um ou mais sinais de entrada ou de sada. - Se o mesmo sinal for usado em vrias conexes cruzadas, o valor desse sinal o mesmo do valor que foi ativado por ltimo (alterado). - As conexes cruzadas podem ser inter-ligadas, por outras palavras, uma conexo cruzada pode afetar outra. No podem, no entanto, estar conectadas de modo a formar um ciclo viciado, por exemplo, di1 uma conexo cruzada a di2, enquanto di2 uma conexo cruzada a di1. - Se houver uma conexo cruzada num sinal de entrada, a conexo fsica correspondente automaticamente desativada. Quaisquer alteraes a este canal fsico no ser, portanto, detectado. - Impulsos ou atrasos no so transmitidos a conexes cruzadas. - Podem ser definidas condies lgicas usando NOT, AND ou OR (Opo: Funes Avanadas) Exemplos: - di2=di1 - di3=di2 - do4=di2 Se di1 muda, di2, di3 e do4 sero alterados com o valor correspondente. - do8=do7 - do8=di5 Se do7 setado para 1, do8 tambm ser setado para 1. Se di5 ento setado para 0, do8 tambm ser alterado (apesar de do7 continuar em 1). - do5=di6 and do1 Do5 ajustado para 1 se di6 e do1 forem ajustados para 1. Caractersticas gerais 5-59

Princpios de E/S

Movimento e Princpios de E/S

9.5 Limitaes
Um mximo de 10 sinais podem ser pulsados ao mesmo tempo e um mximo de 20 sinais podem ser atrasados ao mesmo tempo.

9.6 Informao relacionada


Descrito em: Definio de placas E/S e sinais Instrues de tratamento de E/S Manuseio do Manual de E/S Guia do Usurio - Parmetros Sumrio RAPID - Sinais de Entrada e Sada Guia do Usurio - Entradas e Sadas

5-60

Caractersticas gerais

Programao off-line

Programao off-line
1 Programao off-line
Programas RAPID podem facilmente ser criados, corrigidos e armazenados em um computador comum. Todas as informaes podem ser lidas e alteradas diretamente usando um editor de texto comum. Este captulo explica o procedimento de trabalho de como fazer isso. Alm da programao off-line, voc tambm pode usar uma outra ferramenta, o QuickTeach.

1.1 Formatar arquivo O rob armazena e l programas RAPID no formato TXT (ASCII) e podem ser tratados tanto por textos formato DOS e UNIX. Se voc usar um processador de texto para editar programas, estes devem ser salvos no formato TXT (ASCII) antes de serem usados no rob.

1.2 Editando Quando um programa criado ou alterado em um processador de texto, todas as informaes sero tratadas na forma de um texto. Isto significa que as informaes sobre dados e rotinas sero diferentes do que apresentado no display da unidade de programao. Note que o valor de uma posio armazenada somente mostrado com um * na unidade de programao, onde um arquivo texto ir conter o valor da posio atual (x, y, z, etc.). Para minimizar o risco de erros na sintaxe (falhas de programa), voc deve usar uma mscara. Uma mscara pode ter a forma de um programa que foi criado previamente no rob ou usando o QuickTeach. Estes programas podem ser lidos diretamente com um editor de texto sem precisar ser convertido.

1.3 Verificar a sintaxe Programas devem estar sintaticamente corretos antes deles serem carregados no rob. Isto significa que os textos devem seguir as regras fundamentais da linguagem RAPID. Um dos seguintes mtodos deve ser usado para detectar erros no texto: Salve o arquivo no disquete e tente carregar no rob. Se existir qualquer erro de sintaxe, o programa no ser aceito e uma mensagem de erro ser apresentada. Para obter informaes sobre o tipo de erro, o rob armazena uma lista chamada PGMCPL1.LOG no interior da RAM disk. Copie esta lista em um disquete usando o Gerenciador de Arquivos do rob (File Manager). Carregue a lista em um editor de texto e voc poder ler qual linha est incorreta e receber uma descrio do erro.

Caractersticas gerais

6-1

Programao off-line
Carregue o arquivo no QuickTeach e leia o erro de sintaxe com ajuda do QuickTeach. Use a verificao de sintaxe de programa RAPID para PC. Quando o programa esta sintaticamente correto, ele pode ser verficado e editado no rob. Para ter certeza que todas as referncias para rotinas e dados esto corretas, use o comando File: Check Program. Se o programa for alterado no rob, ele pode ser armazenado no disquete novamente e processado e armazenado em um PC.

1.4 Exemplos A seguir apresentamos exemplos de uma rotina em formato de texto. %%% VERSION: 1 LANGUAGE: ENGLISH %%% MODULE main VAR intnum process_int ; ! Demo of RAPID program PROC main() MoveL p1, v200, fine, gun1; ENDPROC TRAP InvertDo12 ! Trap routine for TriggInt TEST INTNO CASE process_int: InvertDO do12; DEFAULT: TPWrite Unknown trap , number=\Num:=INTNO; ENDTEST ENDTRAP LOCAL FUNC num MaxNum(num t1, num t2) IF t1 > t2 THEN RETURN t1; ELSE RETURN t2; ENDIF ENDFUNC ENDMODULE

6-2

Caractersticas gerais

Programao off-line

1.5 Criando suas prprias instrues Para tornar a programao mais fcil, voc pode criar suas prprias instrues. Estas so criadas na forma de uma rotina normal, mas, quando programamos e testamos, elas funcionam como instrues: - Elas podem ser chamadas pela lista de instrues de escolha (pick list) e programadas como instrues normais. - A rotina completa ser executada durante a execuo passo-a-passo. Crie um novo mdulo de sistema onde voc pode colocar suas rotinas que funcionaro como instrues. Como alternativa, voc pode coloc-las no mdulo de sistema USER. Crie uma rotina neste mdulo de sistema com o nome que voc quer que sua nova instruo seja chamada. Os argumentos das instrues so definidos em forma de parmetros da rotina. Note que o nome dos parmetros ser apresentado na janela durante a programao e deve portanto ser dado um nome que o usurio entenda. Coloque a rotina em uma das listas Most Common. Se a instruo deve se comportar de uma certa maneira durante a execuo do programa de trs para frente, isto pode ser feito na forma de um tratamento de trs para frente. Se no existir nenhum tratamento, no ser possvel chamar a instruo durante a execuo do programa de trs para frente (veja Captulo 5 deste manual Caractersticas Bsicas). Um tratamento de trs para frente deve ser feito usando o comando Routine: Add Backward Handler na janela Program Routines. Teste a rotina completamente para que ela trabalhe com diferentes tipos de dados de entrada (argumentos). Altere o mdulo atribuido para NOSTEPIN. A rotina completa ser ento executada durante a execuo passo-a-passo. Este atributo, entretanto, deve ser feito off-line. Exemplo: Para tornar mais fcil o manuseio da garra, duas novas instrues so criadas, GripOpen e GripClose. O nome da sada digital dado como argumento desta instruo, por exemplo, GripOpen gripper1. MODULE My_instr (SYSMODULE, NOSTEPIN) PROC GripOpen (VAR signaldo Gripper) Set Gripper; WaitTime 0.2; ENDPROC PROC GripClose (VAR signaldo Gripper) Reset Gripper; WaitTime 0.2; ENDPROC ENDMODULE

Caractersticas gerais

6-3

Programao off-line

6-4

Caractersticas gerais

Mdulo do sistema User

1 Mdulo do sistema User


De modo a facilitar a programao, os dados pr-definidos so fornecidos com o rob. Estes dados no precisam de ser criados e, consequentemente, podem ser usados diretamente. Se este dado usado, a programao inicial feita facilmente. Entretanto, normalmente melhor dar seu prprio nome ao dado que voc usar, desde que o programa feito seja de fcil leitura.

1.1 Contedo
User compreende cinco dados numricos (registros), um dado de ferramenta, um dado de carga, um dado de objeto de trabalho, um de relgio (cronmetro) e dois valores simblicos para sinais digitais. Nome reg1 reg2 reg3 reg4 reg5 wobj1 clock1 high low edge Tipo de dado num . . . num wobjdata clock dionum dionum dionum Declarao VAR num reg1:=0 . . . VAR num reg5:=0 PERS wobjdata wobj1:=wobj0 VAR clock clock1 CONST dionum high:=1 CONST dionum low:=0 CONST dionum edge:=2

User um mdulo do sistema, o que significa que est sempre presente na memria do rob apesar do programa estar carregado.

1.2 Criando um novo dado no mdulo


Este mdulo pode ser usado para criar dados semelhantes e rotinas que devem estar sempre presentes na memria do rob apesar do programa estar carregado, por exemplo, ferramentas e rotinas de servio. Escolha View: Modules na janela Program. Selecione o mdulo do sistema User e pressione a tecla Enter . Troque ou crie dados e rotinas normalmente (veja Programando e Testando).

Caractersticas gerais

7-1

Mdulo do sistema User

1.3 Apagando este dado


Para apagar todos os dados (por exemplo, o mdulo completo) Escolha View: Modules na janela Program. Selecione o mdulo User. Pressione a tecla Delete .

Para trocar ou apagar dados individuais Escolha View: Data na janela Program. Escolha Data: In All Modules. Selecione o dado desejado. Se ele no aparecer, pressione a tecla funcional Types para selecionar o tipo de dado correto. Troque ou apague normalmente (veja Programando e Testando).

7-2

Caractersticas gerais

INDEX
A agregada 4-19 ajuste de movimentos 3-9 algo para pensar 4-48 AND 4-30 argumentos condicionais 4-33 argumentos condicionais 4-33 atribuio de valores aos dados 3-5 B Backward Handler 6-3 C cabealho de arquivo 4-4 chamada de outra rotina 3-3 chamadas funcionais 4-32 comentrios 3-5, 4-3 componente de um record 4-19 comunicao 3-41 conexes cruzadas 5-59 configurao das instrues de verificao 3-10 configurao do eixo 5-31 configurao do rob 5-31 CONST 4-23 constante 4-21 coordenadas de deslocamento coordenadas 5-5 D dados 4-21 utilizao em expresses 4-31 dados de programa 4-21 dados de rotina 4-21 declarao constante 4-23 mdulo 4-8 rotinas 4-13 varivel 4-22 declaration persistent 4-23 deslocamento do programa 3-11 DIV 4-29 E eixos externos coordenados 5-5 ERRNO 4-37 escopo escopo da rotina 4-11 escopo dos dados 4-21 espera 3-5 execuo concomitante 5-45 execuo de trs para a frente 4-41 execuo simultnea 5-26 expresses 4-29 expresses aritmticas 4-29 expresses com "strings" 4-31 expresses lgicas 4-30 F formato matricial 4-22, 4-23 funes 4-11 G global dados 4-21 rotina 4-11 GlueWare 3-39 I identificador 4-1 instrues de arquivo 3-21 instrues de comunicao 3-21 instrues de deslocamento 3-11 instrues de entrada 3-19 instrues de movimento 3-14 instrues de procura 3-14 instrues de sada 3-19 instrues do fluxo do programa 3-3 instrues matemticas 3-31, 3-47 interpolao 5-11 interpolao circular 5-13 interpolao retangular 5-12 interrupes 3-25, 4-39 L local dados 4-21

Caractersticas gerais

8-1

rotina 4-11 M manipulador de trs para a frente 4-13 manipuladores de trs para a frente 4-41 MOD 4-29 mdulos 4-7 declarao 4-8 mdulos de programa 4-7 mdulos de sistema 4-8 movimento singular 5-11 multitarefa 4-43 Multitasking 3-49 N NOT 4-30 nmero de erro 4-37 O operadores prioridade 4-33 OR 4-30 P palavras reservadas 4-1 parada da execuo do programa 3-4 parmetros 4-12 parmetros opcional 4-12 PERS 4-23 persistente 4-21 placeholder 4-3 ponto central da ferramenta 5-1, 5-37 posio fixa E/S 5-28 posicionamento instruo 3-14 princpios E/S 5-57 prioridades 4-46 procedimentos 4-11 programa 4-7 programao 6-1 programao offline 6-1 R recuperao de erros 4-37 rotina "trap" 4-39 rotinas 4-11 S

declarao 4-13

sincronizao de tarefas 4-44 sincronizao do trajeto 5-28 sincronizao E/S 5-25 singAreapunho 5-14 singularidades 5-47 sistema de coordenadas 5-37 sistema de coordenadas da ferramenta 5-7 sistema de coordenadas de base 5-1 sistema de coordenadas de deslocamento 54, 5-5 sistema de coordenadas de punho 5-7 sistema de coordenadas do objeto 5-3 sistema de coordenadas do usurio 5-3 sistema de coordenadas global 5-2 sistemas de coordenadas 5-1 soft servo 3-11, 5-23 solda a ponto 3-33 string 4-2 switch 4-12 syntax rules 2-2 T TCP 5-1, 5-37 estacionrios 5-8 TCPs estacionrios 5-8 time instructions 3-29 tipo record 4-19 tipos de dados 4-19 tipos de dados iguais 4-19 tipos de dados iguais (alias) 4-19 tipos de dados sem valor 4-19 tipos de dados semi value 4-19 trajetos circulares 5-14 trap routine 4-11 tratamento de erros 4-37 typographic conventions 2-2 U User - mdulo do sistema 7-1 V valores lgicos 4-2 valores numricos 4-2 VAR 4-22

8-2

Caractersticas gerais

varivel 4-21 X XOR 4-30

Caractersticas gerais

8-3

8-4

Caractersticas gerais

Glossrio

Glossrio
Argumento Modo Automtico Componente Configurao Constante Trajetria em curva Declarao Dilogo/Caixa de Dil. A parte de uma instruo que pode ser mudada, p.ex. tudo exceto o nome da instruo. O modo aplicado quando o seletor do modo de operao estiver setado para . Uma parte de um "record". A posio dos eixos do rob em uma determinada posio. Dado que s pode ser mudado manualmente. A trajetria gerada ao passar num ponto de passagem. Parte de uma rotina ou dado que define suas propriedades. Qualquer caixa de dilogo aparecendo no display da unidade de programao deve ser sempre concluida (normalmente pressionando OK ou Cancel) antes de poder sair. Uma parte separada de uma rotina onde um erro pode ser tratado. A execuo normal pode ento ser reiniciada automaticamente. Uma sequncia de dados e sinais associados; p. ex. reg1+5 ou reg1>5. Um ponto no qual o rob passa apenas na sua proximidade sem parar. A distncia para este ponto depende do tamanho da zona programada. Uma rotina que retorna um valor. Um nmero de sinais digitais que esto agrupados e so manipulados como um nico sinal. Um evento que temporariamente interrompe a execuo do programa e executa um rotina "trap". Entradas e Sadas eltricas. A rotina que normalmente se inicia quando a tecla Start pressionada. O modo aplicado quando o seletor do modo de operao estiver setado para . Um grupo de eixos externos. Um grupo de rotinas e dados, p. ex. uma parte do programa. O estado do rob, p. ex. se a fonte de alimentao dos motores est ligada ou no. O painel localizado na frente do painel de controle. A direo de um atuador final, por exemplo. O dado de entrada de uma rotina, enviado com a rotina chamada. Ele corresponde ao argumento de uma instruo. Uma varivel, cujo valor persistente.

Manipulador de Erros

Expresso Ponto de passagem

Funo Grupo de sinais Interrupo E/S Rotina principal Modo manual Unidade Mecnica Mdulo Motors On/Off Painel de operao Orientao Parmetro Persistente

Caractersticas gerais

8-1

Glossrio
Procedure Programa Dado de programa Mdulo de programa Record Rotina Dados de rotina Ponto de partida Ponto de parada Mdulo de sistema Uma rotina que, quando chamada, pode independentemente executar uma instruo. O conjunto de instrues e dados que definem a tarefa do rob. Programas, porm, no contm mdulos de sistema. Dado que pode ser acessado dentro de um mdulo ou programa completo. Um mdulo incluido no programa do rob e que transferido ao copiar o programa para o disquete, por exemplo. Um tipo de dado composto. Um subprograma. Dados local que s podem ser usados numa rotina. A instruo que ser executada primeiro ao iniciar a execuo do programa. Um ponto no qual o rob pra antes de seguir para o prximo ponto. Um mdulo que est sempre presente na memria do programa. Quando um novo programa lido, os mdulos de sistema continuam na memria de programa.

Parmetros de sistema Os dados que definem o tipo e as propriedades do rob; em outras palavras dados de configurao. Tool Centre Point (TCP) O ponto, normalmente na ponta da ferramenta, que se move ao longo da trajetria programada, na velocidade programada. Rotina "trap" Varivel A rotina que define o que deve acontecer quando ocorrer uma interrupo especfica. Dados que podem ser alterados dentro de um programa, mas que perdem seu valor (retorna ao seu valor inicial) quando o programa executado do incio. O rob programado e operado por meio de vrias janelas, tais como a Janela de Programao e Janela de Servio. Podemos sempre sair de uma janela escolhendo outra janela. O espao esfrico que circunda um ponto de passagem. To logo o rob entre nesta zona, ele inicia o movimento para a prxima posio.

Janela

Zona

8-2

Caractersticas gerais

Вам также может понравиться