Você está na página 1de 221

SOFTWARE

KR C...

Programao perito

KUKA System Software (KSS) Release 4.1

ProgHBExperte R4.1 08.01.02 pt

1 de 216

e Copyright

KUKA Roboter GmbH

Este documento ou extratos do mesmo no podem ser reproduzidos ou disponibilizados a terceiros sem autorizao expressa do editor. Outras funes de comando no descritas nesta documentao podero ser postas em prtica. No entanto, no est previsto qualquer tipo de reclamao quanto a estas funes em caso de nova remessa ou de servio. Verificmos que o contedo do prospeto compatvel com o software e com o hardware descrito. Porm, no so de excluir exees, de forma a que no nos responsabilizamos pela total compatibilidade. Os dados contidos neste prospeto sero verificados regulamente e as correes necessrias sero includas nas prximas edies. Reservado o direito a alteraes tcnicas que no influenciem o funcionamento.

PD Interleaf
ProgHBExperte R4.1 08.01.02 pt

2 de 216

ndice
1
1.1 1.1.1 1.1.2 1.1.3 1.2 1.2.1 1.2.2 1.3 1.3.1 1.3.2 1.3.2.1 1.3.2.2 1.3.2.3 1.3.2.4 1.3.2.5 1.3.2.6 1.3.2.7 1.4 1.4.1 1.4.1.1 1.5 1.6 1.7

Generalidades acerca dos programas KRL . . . . . . . . . . . . . . . . . . . . . . . .


Concepo e elaborao de programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Painel de programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conceito de ficheiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estrutura de ficheiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Criar e editar programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Criar um programa novo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Editar, compilar e vincular programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alterao de programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Correo de programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funes de bloco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copiar (CTRL--C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inserir (CTRL--V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cortar (CTRL--X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Apagar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Procurar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Substituir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ocultar partes de programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FOLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programa de exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modos de execuo dos programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tratamento de erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comentrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7
7 7 9 9 11 11 12 14 14 14 14 14 15 15 15 16 16 19 19 20 22 24 27

2
2.1 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.3 2.3.1 2.3.1.1 2.3.1.2 2.3.1.3 2.3.1.4 2.3.1.5 2.3.1.6 2.3.2 2.4

Variveis e declaraes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Variveis e nomes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objetos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Declarao e inicializao de objetos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tipos de dados simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Campos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Seqncias de caratres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estruturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tipos de enumerao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Manipulao de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operadores aritmticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operador geomtrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operadores de comparao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operadores lgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operadores de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prioridades de operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funes regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variveis de sistema e ficheiros de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29
29 31 31 33 35 38 38 40 42 42 42 43 47 48 49 51 52 54

3
3.1

Programao de movimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utilizao de diversos sistemas de coordenadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59
59

ProgHBExperte R4.1 08.01.02 pt

3 de 216

Programao perito 3.2 3.2.1 3.2.2 3.2.3 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.4 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.6 3.7 Movimentos ponto--a--ponto (PTP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Generalidades (PTP sincronizado) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Perfil de deslocao mais elevado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instrues de movimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Movimentos de trajetria (Movimentos--CP = Continuous Path) . . . . . . . . . . . . . . . . . . . . . . Velocidade e acelerao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Orientao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Movimentos lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Movimentos circulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Avano do computador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Movimentos de aproximao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aproximao PTP--PTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aproximao LIN--LIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aproximao CIRC--CIRC e aproximao CIRC--LIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aproximao PTP -- trajetria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mudana da ferramenta durante a aproximao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A programao (teach) dos pontos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros de movimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 66 67 68 77 77 78 83 84 86 89 90 93 96 99 102 103 104

4
4.1 4.2 4.3 4.4

Assistente KRL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Indicaes da posio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Posicionamento [PTP] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Movimento direito [LIN] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Movimento circular [CIRC] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

105
106 109 111 113

5
5.1 5.1.1 5.1.2 5.1.3 5.2 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.3 5.3.1 5.3.2 5.4 5.5

Controle de execuo do programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Ramificaes de programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instruo de salto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ramificao condicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Distribuidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loop de contagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loop de rejeio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loop de no rejeio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loop infinito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminar os loops antes do tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instrues de espera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Espera por um acontecimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tempos de espera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paragem do programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Confirmao de mensagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

115
115 115 116 117 118 118 120 121 123 123 124 124 124 125 126

6
6.1 6.2 6.3

Instrues de entrada/sada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entradas/sadas binrias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entradas/sadas digitais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

127
127 128 131

ProgHBExperte R4.1 08.01.02 pt

4 de 216

6.3.1 6.3.2 6.4 6.5 6.5.1 6.5.2 6.6

Declarao do sinal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Definir sadas no ponto de destino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sadas de impulso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entradas/sadas analgicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sadas analgicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entradas analgicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entradas digitais predefinidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

131 133 136 138 138 141 143

7
7.1 7.2

Subprogramas e funes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Declarao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ativao e transferncia de parmetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

145
145 148

8
8.1 8.2 8.3 8.4 8.5

Tratamento de interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Declarao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ativao de interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parar movimentos em curso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cancelar rotinas de interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilizao de flags cclicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

153
154 156 160 161 164

9
9.1 9.2 9.3 9.3.1

Trigger aes de comutao referentes trajetria . . . . . . . . . . . . . . .


Ao de comutao no ponto de incio ou de destino da trajetria . . . . . . . . . . . . . . . . . . . . Ao de comutao em qualquer ponto da trajetria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tips & Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sobreposio de instrues de trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

165
165 169 174 174

10
10.1 10.2

Listas de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Listas de dados locais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Listas de dados globais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

175
175 176

11
11.1 11.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.3.5 11.4 11.4.1 11.4.2 11.4.3 11.4.4 11.4.5 11.5

Editor externo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Iniciar o editor externo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Menu Ficheiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Abrir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Memorizar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Imprimir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fechar ficheiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Menu Editar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cortar (CTRL--X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copiar ( CTRL--C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inserir como ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Apagar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selecionar tudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Menu Extras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

179
180 182 185 185 185 186 186 187 188 188 188 188 189 189 190

ProgHBExperte R4.1 08.01.02 pt

5 de 216

Programao perito 11.5.1 11.5.2 11.5.3 11.5.4 11.5.5 11.6 11.6.1 11.6.2 11.6.3 11.6.3.1 11.6.3.2 11.7 11.7.1 11.7.2 11.7.2.1 11.7.2.2 11.7.3 11.8 11.8.1 11.9 11.9.1 11.9.2 Reflexo dos eixos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deslocao manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alterao por blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Limpar lista de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adaptao TCP ou BASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Menu HotEdit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Base, TCP e World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TTS (Sistema de coordenadas de correo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ponto no TTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Limits--TTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Menu ExtExtras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ficheiro -- Reflexo dos eixos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ficheiro -- Deslocar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilizar o ficheiro de referncia existente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Criar novo ficheiro de referncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Definir interruptores de fim de curso do software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Menu Opes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Definio de sadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Menu Ajuda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sempre no primeiro plano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 191 195 195 196 197 197 199 200 200 204 205 205 208 209 211 212 213 213 215 215 215

ProgHBExperte R4.1 08.01.02 pt

6 de 216

Generalidades acerca dos programas KRL

1
1.1
1.1.1

Generalidades acerca dos programas KRL


Concepo e elaborao de programas
Painel de programa
Logo que tenha mudado para o nvel de perito, o painel de operao alterado da forma seguinte:

Enquanto para o utilizador todos os ficheiros de sistema se mantm invisveis, o perito pode ver estes ficheiros agora na janela de programas e tambm os pode editar. Alm dos nomes dos ficheiros e dos comentrios, so tambm indicados no nvel de perito as extenses, os atributos e os tamanhos dos ficheiros. Na imagem acima apresentada, os ficheiros e arquivos do caminho de R1 so mostrados na janela de programas.

ProgHBExperte R4.1 08.01.02 pt

7 de 216

Programao perito Aps a instalao do software da KRC1 existem no diretrio KRC:\R1\MADA\, normalmente, os ficheiros a seguir apresentados: Ficheiro $MACHINE.DAT $ROBCOR.DAT MACHINE.UPG ROBCOR.UPG Significado Lista dos dados de sistema com variveis de sistema para a adaptao da unidade de comando e do rob Listagem dos dados de sistema com dados para o modelo de dinmica do rob Ficheiro de sistema para upgrades futuros Ficheiro de sistema para upgrades futuros

No diretrio KRC:\R1\SYSTEM\ encontram--se os ficheiros seguintes: Ficheiro $CONFIG.DAT BAS.SRC IR_STOPM.SRC SPS.SUB Significado Lista dos dados de sistema com dados de configurao gerais Pacote bsico para o controle dos movimentos Programa para o tratamento de erros aquando do surgimento de avarias no rob Ficheiro submit para a superviso paralela

No diretrio KRC:\R1\TP\ encontram--se os ficheiros seguintes: Ficheiro A10.DAT A10.SRC A10_INI.DAT A10_INI.SRC A20.DAT A20.SRC A50.DAT A50.SRC ARC_MSG.SRC ARCSPS.SUB BOSCH.SRC COR_T1.SRC CORRTOOL.DAT CORRTOOL.SRC FLT_SERV.DAT FLT_SERV.SRC H50.SRC H70.SRC MSG_DEMO.SRC NEW_SERV.SRC P00.DAT P00.SRC Significado Pacote de tecnologia para a soldadura a arco com tenses de comando analgicas Pacote de tecnologia para a inicializao da soldadura a arco com tenses de comando analgicas Pacote de tecnologia para a soldadura a arco com nmeros de programa digitais Pacote de tecnologia para a utilizao do sensor do arco Programa para a programao de mensagens para a soldadura com gs de proteo Ficheiro submit para a soldadura a arco Programa para a soldadura de pontos com interface srie para o temporizador de soldadura de pontos Bosch PSS5200.521C Programa para a correo da ferramenta (verso antiga) Programa para a correo da ferramenta Programa para o tratamento de erros definido pelo utilizador aquando da soldadura a arco Pacote de garra Pacote de Touchsensor Programa com exemplos de mensagens de utilizador Programa para a alterao de reaes de erro para FLT_SERV Pacote de programa para o acoplamento a um PLC

ProgHBExperte R4.1 08.01.02 pt

8 de 216

1 PERCEPT.SRC USER_GRP.DAT USER_GRP.SRC USERSPOT.DAT USERSPOT.SRC WEAV_DEF.SRC

Generalidades acerca dos programas KRL (continuao) Programa para a ativao do protocolo PERCEPTRON Programa para o comando da garra, definida pelo utilizador Pacote de programa para a soldadura de pontos definida pelo utilizador Programa para movimentos de oscilao soldadura com gs de proteo

No diretrio KRC:\R1\ encontram--se os ficheiros seguintes: CELL.SRC Programa para o comando dos robs atravs de um PLC central. De acordo com um nmero de programa, selecionado um programa de peas.

1.1.2

Conceito de ficheiro
Um programa KRL poder ser constitudo por ficheiros DAT e SRC. Mais informaes acerca da elaborao de programas encontram--se neste captulo, pargrafo [Criar e editar programas]. O ficheiro SRC o ficheiro com o cdigo de programa propriamente dito. Existem as variantes DEF e DEFFCT (com valor de retorno). O ficheiro DAT, por outro lado, contm os dados de programa especfios. Esta diviso baseia--se no conceito de ficheiro da KRL: Alm da execuo do processamento, o programa ainda contm vrias aes a executar pelo rob. Estas podem ser determinados movimentos, a abertura ou o fecho de uma ferramenta de garra ou mesmo execues mais complexas, como, p.ex., o comando de uma pina de soldadura tendo em considerao as condies secundrias. Para testar o programa vantajoso ou necessrio poder executar tarefas parciais individualmente. O conceito de ficheiro realizado na KCP est adequado s necessidades especiais da programao de robs.

1.1.3

Estrutura de ficheiro
Um ficheiro constitui a unidade que programada pelo programador. Assim, um ficheiro corresponde a um ficheiro no disco duro ou na memria (RAM). Cada programa em KRL poder ser constitudo por um ou vrios ficheiros. Os programas simples abrangem exatamente um ficheiro. As tarefas complexas resolvem--se melhor com um programa composto por vrios ficheiros. Informaes detalhadas acerca dos subprogramas e das funes encontram--se no pargrafo [Subprogramas e funes]. A estrutura interior de um ficheiro KRL constituda por uma seo de declarao, uma seo de instruo e por um mximo de 255 subprogramas e funes locais.

DEF

O nome do objeto sem extenso , simultaneamente, o nome do ficheiro, sendo, por isso, indicado na declarao com DEF. O nome pode ser composto por um mximo de 24 caratres, mas no poder ser uma palavra chave (ver pargrafo [Variveis e declaraes]). Cada ficheiro comea com a declarao DEF e termina com END:

ProgHBExperte R4.1 08.01.02 pt

9 de 216

Programao perito DEF NAME(X1:IN) Declaraes Instrues END Declarao As declaraes j so avaliadas antes do processamento do programa, ou seja, durante a traduo. Por isso, no poder haver nenhuma instruo na seo de declarao. A primeira instruo constitui tambm o incio da seo de instruo. Ao contrrio das declaraes, as instrues tm um carter dinmico e so executadas durante o processamento do programa. Um programa de rob poder ser constitudo apenas por um ficheiro de programa ou por um ficheiro de programa com a respetiva lista de dados. A lista de dados e o ficheiro apresentam o mesmo nome, o que os identifica como conjunto. Os nomes distinguem--se apenas pela extenso, p.ex.: Ficheiro: Lista de dados: PROG1.SRC PROG1.DAT

Instrues

Lista de dados

Nas listas de dados so admissveis apenas atribuies de valores =. Quando a lista de dados e o ficheiro apresentam o mesmo nome, as variveis declaradas na lista de dados podem ser utilizadas da mesma forma que as variveis declaradas no ficheiro SRC. Informaes detalhadas acerca deste assunto encontram--se no pargrafo [Listas de dados].

ProgHBExperte R4.1 08.01.02 pt

10 de 216

Generalidades acerca dos programas KRL (continuao)

1.2
1.2.1

Criar e editar programas


Criar um programa novo
Uma vez que um programa de rob tambm poder ser escrito sem lista de dados, a nvel de perito o ficheiro e a lista de dados no so criados automaticamente em simultneo. Para criar um programa prima a softkey Novo. Surge a janela seguinte:
Seleo de template Nome de fich. Comentario de filtro

Escolha um template

Ter de selecionar um template. Use as teclas de seta e confirme com a softkey OK ou com a tecla Enter. Os templates disponveis no podero ser criados em todos os diretrios. Mais informaes acerca dos templates encontram--se no Manual de operao na documentao Operao, captulo [Navigator], pargrafo [Anexo]. Os vrios templates ao pormenor: Modul: criado um ficheiro SRC e DAT que contm uma estrutura base de um programa. Expert: criado um ficheiro SRC e DAT que contm apenas a linha de cabealho DEF e END. Cell: Aqui criado apenas um ficheiro SRC que contm uma estrutura base de um programa. Este programa destina--se ao comando do rob por meio de um PLC central. Function: Aqui criada uma funo (ficheiro SRC) que contm a linha de cabealho DEF e END. Submit: criado um ficheiro SUB com uma estrutura base de programa. O ficheiro submit contm instrues e poder ser usado, p.ex., para o supervisionamento cclico (garra etc.). O ficheiro submit trabalha paralelamente ao funcionamento do rob e executado pelo interpretador da unidade de comando. Expert Submit: Como no template submit, criado um ficheiro SUB, mas que contm apenas a linha de cabealho DEF e END. A linha de cabealho DEF e END e as estruturas de programa dos vrios templates encontram--se, p.ex., para o template cell, em C:\KRC\ROBOTER\TEMPLATE\CellVorgabe.src.
ProgHBExperte R4.1 08.01.02 pt

11 de 216

Programao perito Depois de ter sido selecionado o respetivo template, ser solicitado a introduzir um nome para o ficheiro criado.

Nome de ficheiro (mx. 24 caratres)

Extenso do ficheiro (SRC, DAT ou SUB)

Comentrio

O nico elemento absolutamente obrigatrio o nome de ficheiro que poder apresentar um mximo de 24 caratres. A extenso do ficheiro inserida automaticamente. Se quiser inserir um comentrio, use a tecla de seta para a direita e mova o cursor at ao respetivo campo e depois introduza o texto pretendido. Para confirmar estas entradas prima a softkey OK ou a tecla Enter.

A lista de dados obrigatria, quando tambm pretende introduzir no seu ficheiro SRC instrues guiadas por menus.

1.2.2

Editar, compilar e vincular programas


Depois de ter elaborado um ficheiro ou uma lista de ficheiros atravs da softkey Novo, poder edit--lo. Para esse efeito usada a softkey Abrir. Ao fechar o editor, compilado o cdigo de programa completo, isto , o cdigo de KRL textual traduzido numa linguagem de mquina compreensvel para a unidade de comando. Para que o programa se mantenha bem legvel, necessrio fazer as respetivas tabulaes em vrios nveis, p.ex., quando se trata de ramificaes. No editor isto poder ser feito com a ajuda de espaos.

Compilador

O compilador controla o cdigo com vista sua exatido sinttica e semntica. Caso haja erros, emitida uma mensagem e criado um ficheiro de erros com a extenso .ERR. Apenas programas sem erros podero ser selecionados e executados. Mais informaes acerca do tratamento de erros de edio encontram--se no pargrafo [Tratamento de erros].

Editor de ligao

Ao carregar um programa atravs da softkey Selecionar, so vinculados todos os ficheiros e listas de dados necessrios para um programa. Ao lig--los verificado se todos os mdulos esto presentes, analisados e sem erros. Alm disso, durante uma transferncia de parmetros, o editor de ligao verifica a compatibilidade de tipo entre os parmetros transferidos. Caso surjam erros durante a vinculao, criado um ficheiro de erros com a extenso .ERR, tal como na compilao.
ProgHBExperte R4.1 08.01.02 pt

12 de 216

Generalidades acerca dos programas KRL (continuao)

Um programa KRL tambm poder ser escrito com qualquer editor de texto usual e carregado para a memria de sistema com a ajuda da softkey Carregar. No entanto, nesse caso, ter de verificar por si prprio se todas as inicializaes necessrias (p.ex., velocidades dos eixos) foram realizadas.

A seguir, um exemplo de programa simples para a definio das velocidades e aceleraes dos eixos: DEF PROG1() ;----- Seo de declarao ----INT J ;------ Seo de instruo ------$VEL_AXIS[1]=100 ;Determinao das velocidades dos eixos $VEL_AXIS[2]=100 $VEL_AXIS[3]=100 $VEL_AXIS[4]=100 $VEL_AXIS[5]=100 $VEL_AXIS[6]=100 $ACC_AXIS[1]=100 $ACC_AXIS[2]=100 $ACC_AXIS[3]=100 $ACC_AXIS[4]=100 $ACC_AXIS[5]=100 $ACC_AXIS[6]=100 ;Determinao das aceleraes dos eixos

PTP {A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0} FOR J=1 TO PTP {A1 PTP {A2 PTP {A1 ENDFOR 5 4} -7,A3 5} 0,A2 -9,A3 9}

PTP {A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0} END

ProgHBExperte R4.1 08.01.02 pt

13 de 216

Programao perito

1.3

Alterao de programas
Basicamente, existem duas hipteses de alterar um programa, quando o painel de operao est em nvel de perito: G Correo de programa (PROKOR) G Editor

1.3.1

Correo de programa
A correo de programa o mtodo normal. Ao selecionar um programa ou ao parar um programa em execuo, entra--se, automaticamente, no modo PROKOR. Aqui podem ser introduzidas ou processadas instrues, com a ajuda do formulrio Inline ou do cdigo ASCII (a nvel de peritos) que tm efeito sobre uma linha de programa. Portanto, no podem ser introduzidas ou editadas estruturas de controlo (loops etc.) ou declaraes de variveis. No estado selecionado, as entradas erradas so imediatamente apagadas depois da sada da linha de programa, aparecendo na janela de mensagens uma mensagem de erro.

1.3.2

Editor
Por isso, para editar ou introduzir determinadas instrues KRL ou estruturas de programa, ser necessrio o editor. Como ao fechar o editor compilado o cdigo completo, tambm podem ser detectados erros que s surgem em relao a vrias linhas (p.ex., variveis mal declaradas).

1.3.2.1

Funes de bloco As funes de bloco s esto disponveis no editor a partir do nvel de utilizador Perito. Ter de abrir o programa, cujo contedo pretende alterar por meio das funes de bloco, atravs da softkey Editar. A maneira de mudar antes para o nvel de Perito descrita no captulo [Configurar o sistema], pargrafo Grupos de utilizadores. Em primeiro lugar, coloque o cursor de edio intermitente no incio ou no fim da parte de programa que pretende deslocar. Depois mantenha premida a tecla Shift, enquanto move o cursor para baixo ou para cima. Assim, est a marcar uma parte do programa que ento processada no prximo passo de trabalho com a ajuda das funes de bloco. A parte marcada distingue--se por meio da sua cor diferente. Prima a menukey Processar e do menu que agora se abre, escolha a funo pretendida. Se o bloco de nmeros e o campo de teclado forem usados para as funes de bloco, a funo NUM ter de estar desligada. Nesse caso, prima a tecla Num no teclado. A indicao na linha de estado est apagada.

1.3.2.2

Copiar (CTRL--C) A parte marcada do programa memorizada temporariamente, a fim de estar disponvel para qualquer outro processamento. A seguir, poder ser inserida num outro local.

ProgHBExperte R4.1 08.01.02 pt

14 de 216

Generalidades acerca dos programas KRL (continuao)

Como alternativa, poder manter premida a tecla CTRL no bloco de nmeros e premir no teclado a tecla C. A seguir, solte ambas as teclas.

1.3.2.3

Inserir (CTRL--V) Coloque agora o cursor de edio no local, onde pretende introduzir a parte de programa anteriormente cortada ou copiada.

Selecione agora a opo Inserir. A parte de programa anteriormente marcada inserida agora por baixo do cursor de edio. Como alternativa, poder manter premida a tecla CTRL no bloco de nmeros e premir no teclado a tecla V. A seguir, solte ambas as teclas.

1.3.2.4

Cortar (CTRL--X) Se selecionar no menu a opo Cortar, a parte marcada do programa introduzida na memria temporria, ao mesmo tempo que apagada da listagem de programa.

Como alternativa, poder manter premida a tecla CTRL no bloco de nmeros e premir no teclado a tecla X. A seguir, solte ambas as teclas.

1.3.2.5

Apagar A rea marcada poder ser removida do programa. Nesse caso, no haver uma memorizao temporria. A parte de programa removida irremediavelmente perdida.

ProgHBExperte R4.1 08.01.02 pt

15 de 216

Programao perito Por essa razo, emitida uma pergunta de segurana na janela de mensagens que ter de ser respondida por meio da barra de softkeys.

G G G

Cancelar Sim No

A ao Apagar cancelada. A rea marcada irremediavelmente apagada. A funo Apagar cancelada.

Ao selecionar no menu a opo Apagar, a parte marcada do programa apagada da lista de programas, sem memorizao temporria.

1.3.2.6

Procurar Mais informaes encontram--se no Manual de operao na documentao Programao utilizador, captulo [Editar um programa], pargrafo [Trabalhar com o editor de programas].

1.3.2.7

Substituir A funo Procurar e substituir est disponvel apenas a nvel de perito e a, exclusivamente, no editor. Esta aplicao realiza uma busca no programa, com vista a encontrar uma determinada seqncia de caratres na rea visvel (no linhas de Folds ou Folds abertas) e permite a substituio com uma determinada seqncia de caratres definida. Para esse efeito, selecione no menu Processar a opo Substituir.

ProgHBExperte R4.1 08.01.02 pt

16 de 216

1 aberta a janela seguinte:

Generalidades acerca dos programas KRL (continuao)

A barra de softkeys alterada.

Introduza uma seqncia de caratres na linha de localizao e depois mude com a tecla de seta para baixo, para a linha de substituio. A insira o termo com que pretende substituir o termo procurado.

Se o termo procurado aparecer vrias vezes no documento, mas voc pretender substitui--lo apenas num determinado local, prima a softkey Localizar as vezes que forem necessrias para encontrar o local procurado. A seguir, prima Substituir. O termo procurado substitudo pelo termo indicado. Se quiser substituir o termo procurado em todos os locais ou numa rea previamente marcada no programa, prima depois da introduo no formulrio de localizao/substituio a softkey Repor tudo.
ProgHBExperte R4.1 08.01.02 pt

17 de 216

Programao perito Na janela de mensagens aparece a mensagem A procura na rea indicada ou marcada foi concluda (confirmao que a busca se realizou em todo o programa ou na rea marcada). Ao premir a softkey Cancelar sai do modo de substituio, e na janela de mensagens indicado o nmero de substituies realizadas desde a ativao desta funo.

ProgHBExperte R4.1 08.01.02 pt

18 de 216

Generalidades acerca dos programas KRL (continuao)

1.4

Ocultar partes de programa


Ao contrrio dos editores normais, o editor KCP permite uma indicao dos contedos dos programas, de acordo com as exigncias especficas. Assim, o utilizador, p.ex., v apenas os contedos essenciais de um programa, enquanto a nvel de perito visvel todo o programa.

1.4.1

FOLD
O painel de operao KUKA usa uma tcnica especial para uma representao clara dos programas. As indicaes introduzidas na forma de comentrios KRL permitem suprimir a indicao de partes seguintes do programa. Assim, o programa dividido em partes adequadas que, de acordo com a sua caracterstica tipo pasta, so denominados FOLDS. As FOLDS esto normalmente fechadas e s podero ser abertas a nvel de perito. Contm informaes que se mantm invisveis para o utilizador no painel de operao KUKA (KUKA--BOF). A nvel de perito ter a possibilidade de tornar um bloco KRL invisvel para o utilizador. Para esse efeito, as respetivas declaraes ou instrues so iniciadas com ;FOLD e terminadas com ;ENDFOLD. As Folds dentro de um programa podero ser visualizadas ou ocultas, se premir a softkey Processar e selecionar, a seguir, FOLD e o respetivo comando.

Programa no editor Esto disponveis as opes seguintes: G G G FOLD atual abr/fech Abrir todas as FOLD Fechar todas as FOLD

Programa selecionado

abre ou fecha a FOLD da linha, na qual se encontra o cursor de edio abre todas as FOLDs do programa fecha todas as FOLDs do programa

Ao fazer o reset de um programa selecionado que tem pastas abertas, estas pastas so automaticamente fechadas.

Da seqncia... ;FOLD RESET OUT FOR I=1 TO 16 $OUT[I]=FALSE ENDFOR ;ENDFOLD

ProgHBExperte R4.1 08.01.02 pt

19 de 216

Programao perito ...so visveis no painel de operao e com a Fold fechada, apenas as palavras RESET OUT. Esta instruo permite, p.ex., tornar invisvel para o utilizador a parte de declarao e a parte de inicializao. 1.4.1.1 Programa de exemplo DEF FOLDS() ;FOLD DECLARATION;% mais informaes ;--------- Seo de declarao --------EXT BAS (BAS_COMMAND :IN,REAL :IN ) DECL AXIS HOME INT I ;ENDFOLD ;FOLD INITIALISATION ;---------- Inicializao --------INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( ) INTERRUPT ON 3 BAS (#INITMOV,0 ) ;Inicializao de velocidades, ;Aceleraes, $BASE, $TOOL, etc. FOR I=1 TO 16 $OUT[I]=FALSE ENDFOR HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 30,A6 0} ;ENDFOLD ;------------- Seo principal -----------PTP HOME ;Movimento SAK LIN {X 540,Y 630,Z 1500,A 0,B 90,C 0} PTP HOME END O programa de exemplo tem o seguinte aspeto no painel de operao:

O mesmo programa com Folds abertas:

ProgHBExperte R4.1 08.01.02 pt

20 de 216

Generalidades acerca dos programas KRL (continuao)

Na FOLD fechada s visvel a expresso a seguir palavra chave FOLD. Na FOLD aberta, ao contrrio, so visveis todas as instrues e declaraes. FOLD constitui apenas uma instruo para o editor. O compilador interpreta as instrues FOLD como um comentrio normal, devido ao ponto e vrgula colocado antes.

ProgHBExperte R4.1 08.01.02 pt

21 de 216

Programao perito

1.5

Modos de execuo dos programas


Os modos de execuo dos programas determinam se o processamento do programa dever ser realizado G G G sem parada do programa, em passos de programa ou em passos individuais.

Na tabela seguinte so descritos todos os tipos de execuo dos programas.

Modo de execuo GO

Descrio

Todas as instrues so processadas no programa sem STOP, at ao fim do programa. MSTEP Motion Step (passo de movimento) O programa executado passo a passo, isto , o programa pra aps cada passo de movimento. O programa processado sem avano inicial. Inkremental Step (passo individual) O programa executado em passos individuais, isto , com um STOP depois de cada instruo (tambm linha vazia). O programa processado sem avano inicial. Program Step (passo de programa) Os subprogramas so executados por completo. O programa executado sem avano inicial. Continuous Step (passo de movimento) O programa executado passo a passo, isto , o programa pra aps cada passo de movimento com parada exata. O programa executado com avano inicial, isto , realiza--se uma passagem por todos os pontos com um posicionamento aproximado.

ISTEP

PSTEP

CSTEP

Os modos de execuo do programa GO, MSTEP e ISTEP podem ser ajustados na KCP por meio de uma statuskey ou atravs da varivel $PRO_MODE. PSTEP e CSTEP s podem ser ajustados atravs da varivel $PRO_MODE. Para alterar o respetivo estado, ative a funo de menu Display --> Varivel --> Individual. A seguir, introduza no campo de entrada Nome a varivel $PRO_MODE e no campo Valor novo o valor pretendido.

ProgHBExperte R4.1 08.01.02 pt

22 de 216

Generalidades acerca dos programas KRL (continuao)

Os modos de execuo do programa #PSTEP e #CSTEP s podero ser selecionados por meio da correo de varivel e no atravs da statuskey. Mais pormenores encontram--se no captulo [Variveis e declaraes], pargrafo [Objetos de dados], em (Tipos de enumerao).

ProgHBExperte R4.1 08.01.02 pt

23 de 216

Programao perito

1.6

Tratamento de erros
Caso surja um erro durante a compilao ou durante a ligao, aparece na janela de mensagens uma mensagem de erro e caso surja um erro, o ficheiro que contm os erros identificado no Navigator. Como exemplo temos o ficheiro ERROR.SRC que foi elaborado com erros:

Depois de fechar o editor, aparece agora na janela de mensagens uma mensagem de aviso com o nmero de erros verificados.

Ao mesmo tempo, os ficheiros em questo so marcados durante este processo com uma cruz vermelha.

Voc tem sua disposio a barra de softkeys seguinte:

A softkey Abrir carrega o ficheiro para o editor, e ao premir a softkey Lista de dados, o ficheiro DAT aberto com o editor. Se quiser apagar os ficheiros que contm os erros, prima Apagar. Com Novo poder criar ento um ficheiro novo.

ProgHBExperte R4.1 08.01.02 pt

24 de 216

Generalidades acerca dos programas KRL (continuao)

Ao premir a softkey Editar ERR (Lista de erros) aberta a lista de erros.


Indicao de erro (error.SRC)
Linha Coluna No de erro Descrio Tipo de varivel... Expresso diferente... Espera--se [

Linha de ttulo com o nome do ficheiro

Descrio resumida Nmero de erro *1 Nmero da linha e coluna que contm o erro

Tipo de varivel de loop diferente de INT

Linha de origem que contm o erro Descrio do erro = Descrio resumida

Assim, muda a barra de softkeys:

AVISO *1 Os nmeros de linha indicados correspondem aos nmeros de linha absolutos no programa, tal como seriam indicados por um editor ASCII normal. A fim de obter uma correspondncia entre os nmeros de linha da indicao de erro e os nmeros de linha do KCP, teriam de ser abertas todas as pastas e ativadas a vista de pormenores e a linha DEF. No entanto, esta apresentao pouco clara, uma vez que so visualizadas todas as informaes, apesar de no serem necessrias. Mais informaes acerca da vista de pormenores e da linha DEF encontram--se no pargrafo [Ocultar partes de programa].

Na indicao de erros visvel que ocorreram os erros seguintes: G G G 3 linhas no ficheiro SRC contm erros; as linhas que contm erros so as linhas com os nmeros 51, 52 e 55; na linha 51 os nmeros dos erros -G -G -2263: 2249: 2309: tipo da varivel de lao no igual a INT; Expresso no igual a INT; espera--se o carter (. na linha 52 o nmero de erro na linha 55 a mensagem de erro

Das mensagens de erro 2263 depreende--se rapidamente que a varivel I no foi declarada como nmero inteiro. A mensagem de erro 2249 tambm resulta da declarao com erros, uma vez que num ciclo de contagem o contador deve ser sempre do tipo INT. A mensagem 2309 significa: O compilador interpreta a linha como ativao do subprograma onde faltam, no entanto, os parnteses.

ProgHBExperte R4.1 08.01.02 pt

25 de 216

Programao perito O significado dos nmeros dos erros poder ser visualizado Online com a ajuda da funo de menu Display --> Varivel --> Individual. Para esse efeito, introduza na janela de estado, no campo de entrada Nome, o carter & seguido pelo nmero de erro que, nesse caso, , p.ex, &2263, e prima a tecla Enter.

Se carregar agora o ficheiro SRC (neste caso ERROR.SRC) para o editor, poder proceder s respetivas correes. Para simplificar, o cursor a piscar posicionado na primeira linha que contm erros.Verifique se a visibilidade limitada est desligada e a linha DEF visvel. Mais pormenores encontram--se no pargrafo [Ocultar partes de programa]. No exemplo aqui apresentado, as Folds no precisam de ser abertas. Mas se quiser abri-las, use a instruo de menu Editar --> FOLD --> Abrir todas as FOLD. A linha INT I que falta no programa inicialmente criado ter de ser inserida antes da linha INI. Isto s possvel quando a linha DEF ERROR ( ) for visvel. Portanto, insira a linha INT I antes da linha INI e remova na linha 10 um smbolo de igualdade. I = I + 1 Inserir esta linha aqui

Remover um smbolo de igualdade

Depois de fechar o editor e de guardar o ficheiro corrigido, poder premir na lista de erros a softkey Atualizar. A lista de erros desaparece depois de todos os erros estarem corrigidos.

ProgHBExperte R4.1 08.01.02 pt

26 de 216

Generalidades acerca dos programas KRL (continuao)

1.7

Comentrios
Os comentrios constituem uma parte integrante muito importante de qualquer programa de computador. Eles tornam o seu programa mais claro e compreensvel tambm para outros. A velocidade de processamento do programa no afetada pelos comentrios. Os comentrios podero ser inseridos em qualquer local do programa. So iniciados sempre com um ponto e vrgula ;, p.ex.: PTP P1 ;Movimento em direo ao ponto de sada ;--- Fazer o reset das sadas --FOR I = 1 TO 16 $OUT[I] = FALSE ENDFOR

ProgHBExperte R4.1 08.01.02 pt

27 de 216

Programao perito

ProgHBExperte R4.1 08.01.02 pt

28 de 216

Variveis e declaraes

2
2.1

Variveis e declaraes
Variveis e nomes
Alm da utilizao de constantes, ou seja, de uma indicao direta dos valores na forma de nmeros, caratres etc., podem tambm ser utilizadas em KRL variveis e outras formas de dados no programa. Para a programao de robs industriais, as variveis so necessrias, p.ex., para a integrao dos sensores. As variveis permitem memorizar o valor lido pelo sensor e fazer a sua avaliao em vrios locais do programa. Alm disso, podem ser realizadas operaes aritmticas, p.ex., para calcular uma posio nova. Uma varivel representada no programa por meio de um nome, podendo a designao do nome ser escolhida livremente, dentro de determinados limites.

Nomes

Os nomes em KRL

S podem ter um comprimento mximo de 24 caratres, S podem conter letras (A--Z), nmeros (0--9) e os caratres _ e $, S no podem comear com nmeros, S no podem ser palavras chave.
Uma vez que todas as variveis de sistema (ver pargrafo 2.4) comeam com o smbolo $, este no dever ser usado como o primeiro smbolo em nomes definidos por voc prprio. Nomes KRL vlidos so, p.ex.; SENSOR_1 BICO_DE_COLAGEM13 P1_AT_P12 Uma varivel deve ser considerada como uma rea fixa da memria, cujo contedo acessvel atravs do nome da varivel. Por isso, a varivel realizada em relao ao tempo de execuo do programa, atravs de um espao de memria (local) e um contedo de memria (valor). Atribuio de valor O smbolo de igualdade (=) atribui s variveis valores. Assim, a instruo NMERO = 5 implica que na rea de memria com o endereo de NMERO introduzido o valor 5. O aspeto exato do endereo no relevante para o programador, por isso, o compilador atribui--o automaticamente. Apenas relevante que o seu nome d acesso, a qualquer momento, ao contedo da memria no programa. Uma vez que objetos de dados diferentes (ver pargrafo 2.2) tambm tm uma necessidade de memria diferente, o tipo de dados de uma varivel tem de ser declarado antes da sua aplicao (ver pargrafo 2.2.1).

ProgHBExperte R4.1 08.01.02 pt

29 de 216

Programao perito Tempo de vida O tempo de vida de uma varivel o tempo durante o qual atribudo varivel um espao de memria. O tempo de vida depende do fato de a varivel estar declarada num ficheiro SRC ou numa lista de dados. G Varivel declarada num ficheiro SRC O tempo de vida limitado ao tempo de execuo do programa. Depois de terminada a execuo, a zona de memria liberta, e, portanto, o valor da varivel perdido. G Varivel declarada numa lista de dados (ver pargrafo Listas de dados) O tempo de vida no depende do tempo de execuo do programa. A varivel existe enquanto existe a lista de dados. Estas variveis so, portanto, permanentes (at ativao/desativao seguinte).

ProgHBExperte R4.1 08.01.02 pt

30 de 216

Variveis e declaraes (continuao)

2.2

Objetos de dados
Por objetos de dados entendem--se unidades de memria de um determinado tipo de dados. As unidades de memria podem ser constitudas por um numero diferente de clulas de memria (bytes, palavras etc.). Se um objeto de dados deste tipo for declarado pelo programador sob um nome, obtida uma varivel. A varivel ocupa agora uma ou vrias clulas de memria, nas quais os dados podem ser escritos ou lidos pelo programa. Devido denominao simblica das clulas de memria com nomes de escolha livre, a programao torna--se mais simples e clara, e o programa apresenta uma melhor legibilidade. Para explicar o conceito tipo de dados tome--se o exemplo seguinte: Numa clula de memria de 8 bits encontra--se a combinao de bits 00110101 Como dever ser interpretada esta combinao de bits? Trata--se da representao binria do numero 53 ou do smbolo ASCII 5, o que representado com o mesmo padro de bits?

Tipo de dados

Para poder responder claramente a essa pergunta, ainda falta uma informao importante, ou seja, a indicao do tipo de dados de um objeto de dados. No caso acima apresentado, isto poderia ser, p.ex., o tipo numero inteiro (INTEGER) ou carter (CHARACTER). Alm dessa razo tcnica para a introduo dos tipos de dados, relacionada com o computador, a utilizao de tipos de dados tambm proporciona facilidades ao operador, uma vez que este poder trabalhar exatamente com os tipos que so adequados para as respetivas aplicaes especiais.

2.2.1

Declarao e inicializao de objetos de dados


DECL A atribuio de um nome de varivel a um tipo de dados e a reserva do espao de memria realiza--se em KRL com a ajuda da declarao DECL. Com DECL INT QUANTIDADE,NMERO so declaradas, p.ex., duas variveis QUANTIDADE e NMERO do tipo de dados numero inteiro (Integer). Assim, o compilador reconhece estas duas variveis e o respetivo tipo de dados, e durante a aplicao da varivel poder verificar se este tipo de dados permite a operao pretendida. A declarao comea, como mostra o exemplo, com a palavra chave DECL, seguida pelo tipo de dados e pela lista de variveis que devero ter este tipo de dados. Ao declarar variveis e campos de um tipo de dados previamente definido, poder prescindir--se da palavra--chave DECL. Alm dos tipos de dados simples INT, REAL, CHAR e BOOL (ver pargrafo 2.2.2) so tambm predefinidos, entre outros, os tipos de dados estruturais POS, E6POS, FRAME, AXIS e E6AXIS (ver pargrafo 2.2.5). Para as variveis (no campos!) do tipo de dados POS, poder prescindir--se da declarao completa. O tipo de dados POS considerado o tipo de dados padro para variveis. A palavra--chave DECL imprescindvel para a declarao de tipos de estrutura ou de enumerao de definio livre (ver pargrafo 2.2.5 e 2.2.6).

Inicializao

Depois da declarao de uma varivel, o valor desta colocado, primeiramente, em invlido, caso contrrio ia depender da ocupao ocasional da memria. Para poder trabalhar com a varivel, esta ter de ser predefinida com um determinado valor. Esta primeira atribuio de um valor a uma varivel chama--se inicializao. Ao elaborar ficheiros novos atravs da softkey Novo no painel de operao KUKA, tambm produzida automaticamente uma seqncia INI. A declarao de variveis ter de ser sempre realizada antes dessa seqncia. A atribuio de um valor a uma varivel constitui uma instruo e, por isso, no pode estar, nunca, na seo de declarao. Mas a inicializao poder ser realizada, em qualquer momento, na seo de instruo. No entanto, vantajoso se todas as variveis declaradas forem inicializadas numa seo de inicializao, diretamente a seguir seo de declarao (ver Fig. 1).

ProgHBExperte R4.1 08.01.02 pt

31 de 216

Programao perito S nas listas de dados permitido inicializar as variveis diretamente na linha de declarao.

DEF NOME() ;---- Seo de declarao --- ;---- Seo de inicializao --- ;---- Seo de instruo --- END

Fig. 1 Estrutura base de um programa de rob

Mais informaes encontram--se no captulo [Listas de dados].

ProgHBExperte R4.1 08.01.02 pt

32 de 216

Variveis e declaraes (continuao)

2.2.2

Tipos de dados simples


Por tipos de dados simples entendem--se alguns tipos de dados bsicos que existem na maioria das linguagens de programao. Os tipos de dados simples contm, ao contrrio dos tipos de dados estruturados (ver pargrafo 2.2.3--2.2.6), apenas um nico valor. Os tipos de dados conhecidos em KRL so apresentados em Tab. 1, juntamente com a sua respetiva gama de valores. Tipo de dados Palavra chave Significado Integer INT numero inteiro Real REAL nmero de vrgula deslizante 1.1E-38 3.4E+38 Boolean BOOL estado lgico Character CHAR 1 carter

Gama de valores

--231231-1 Tab. 1

TRUE, FALSE

Caratres ASCII

Tipo de dados simples

INT

O tipo de dados constitui uma quantidade parcial da quantidade de nmeros inteiros, porque nenhum computador capaz de apresentar a quantidade teoricamente infinita dos nmeros inteiros. Os 32 bits previstos na KR C... para tipos Integer do, portanto, 231 nmeros inteiros, mais o sinal. O numero 0 conta como numero positivo. Com NMERO = -23456 atribudo varivel NMERO o valor -23456. Se atribuir a uma varivel INTEGER um valor REAL, o valor arredondado segundo as regras gerais (x.0 a x.49 arredondar para baixo, x.5 a x.99 arredondar para cima). Com a instruo NMERO = 45.78 a varivel INTEGER NMERO recebe o valor 46. Exceo: Ao dividir um Integer, a posio depois da vrgula cortada, p.ex.: 7/4 = 1

Sistema binrio Sistema hexadecimal

Enquanto o Homem pensa e faz contas no sistema decimal, um computador conhece apenas os nmeros zero e um, que representam os dois estados Desligado e Ligado. Um estado (Desligado e Ligado) representado, portanto, por um bit. Por razes de rapidez, o computador recorre, geralmente, a todo um pacote de zeros e uns. 8 bits (=1 Byte), 16 bits ou 32 bits so grandezas de pacote tpicas. Quando se trata de operaes relacionadas com a mquina, geralmente vantajosa a representao no sistema binrio (sistema de dois nmeros: 0 e 1) ou no sistema hexadecimal (sistema de 16 caratres: 0--9 e A--F). Os valores Integer binrios ou hexadecimais podero ser indicados em KRL com a ajuda da vrgula alta () e da indicao B para a representao binria ou H para a representao hexadecimal.

D H

0 0

1 1 Tab. 2

2 2

3 3

4 4

5 5

6 6

7 7

8 8

9 9

10 11 12 13 14 15 16 A B C D E F 10

Os primeiros 17 nmeros no sistema decimal e hexadecimal

Em KRL, poder atribuir o numero 90 a uma varivel Integer de trs maneiras diferentes:
ProgHBExperte R4.1 08.01.02 pt

33 de 216

Programao perito NMEROINT = 90 NMEROINT = B1011010 NMEROINT = H5A Bin Dec ;sistema decimal ;sistema binrio ;sistema hexadecimal

O clculo que transpe os nmeros binrios para sistema decimal realiza--se da forma seguinte:

1 0 1 1 0 1 0 = 1S26+0S25+1S24+1S23+0S22+1S21+0S20= 90 26 25 24 23 22 21 20
Hex Dec Para transferir os nmeros do sistema hexadecimal no sistema decimal, proceda da forma seguinte:

5 161

A 160

=5S161+10S160=90

REAL

No conceito de representao da vrgula deslizante, trata--se da diviso de um numero em mantissa e expoente e da sua representao numa forma normalizada. Assim, representado, p.ex.: 5.3 como 0.53000000 E+01 -100 como -0.10000000 E+03 0.0513 como 0.51300000 E-01 Ao fazer clculos com valores reais, preciso ter em ateno, devido ao numero limitado de posies de vrgulas deslizantes e da impreciso inerente, que as habituais leis da lgebra no so vlidas em todos os casos. Assim, aplica--se, p.ex., na lgebra: 13 = 1 3 Se estes clculos forem realizados por um computador, possvel que o resultado apenas seja 0.99999999 E+00. Uma comparao lgica deste numero com o numero 1 teria o valor FALSE. Para aplicaes prticas na rea do rob, esta preciso , geralmente, suficiente, tendo em considerao que a realizao do teste lgico relativamente igualdade das grandezas reais s faz sentido dentro de uma rea de tolerncia pequena. Atribuies admissveis de variveis reais so, p.ex.: NMEROREAL1 = -13.653 NMEROREAL2 = 10 NMEROREAL3 = 34.56 E-12 Se a uma varivel REAL for atribudo um valor INTEGER, realizada uma converso automtica do tipo em REAL. A varivel NMEROREAL2 tem, portanto, aps a atribuio acima indicada, o valor 10.0!

BOOL

As variveis booleanas destinam--se descrio dos estados lgicos (p.ex., entradas/ sadas). S podem ter os valores TRUE (verdadeiro) e FALSE (falso): ESTADO1 = TRUE ESTADO2 = FALSE

ProgHBExperte R4.1 08.01.02 pt

34 de 216

2 CHAR

Variveis e declaraes (continuao)

As variveis Character podem representar exatamente 1 carter do conjunto de caratres ASCII. Ao atribuir um carter ASCII a uma varivel CHAR, o carter atribudo dever estar entre aspas (): CARTER1 = G CARTER2 = ? Para a memorizao de seqncias de caratres completas, ver pargrafo 2.2.4.

2.2.3

Campos
Por campos entende--se a juno de objetos com o mesmo tipo de dados, de modo a ser obtido um objeto de dados, podendo os vrios componentes de um campo ser ativados por meio de ndices. Atravs da declarao DECL INT OTTO[7]

ndex de campo

poder depositar, p.ex., 7 nmeros Integer diferentes no campo OTTO[]. Poder aceder a cada componente individual do campo, atravs da indicao do respetivo ndex (o primeiro ndex sempre o 1): OTTO[1] OTTO[2] OTTO[3] OTTO[4] OTTO[5] OTTO[6] OTTO[7] = = = = = = = 5 10 15 20 25 30 35 ; ao 1 elemento atribudo o numero 5 ; ao 2 elemento atribudo o numero 10 ; ao 3 elemento atribudo o numero 15 ; ao 4 elemento atribudo o numero 20 ; ao 5 elemento atribudo o numero 25 ; ao 6 elemento atribudo o numero 30 ; ao 7 elemento atribudo o numero 35

Para uma melhor compreenso, imagine o campo com o nome OTTO[] como uma estante com 7 gavetas. Com as atribuies realizadas, a ocupao das gavetas seria a seguinte:

5 OTTO [1]

10 [2]

15 [3]

20 [4]

25 [5]

30 [6]

35 [7]

Fig. 2 Representao de um campo unidimensional

Se pretender inicializar todos os elementos de um campo com o mesmo nmero, p.ex, 0, no ter de programar, explicitamente, todas as atribuies, mas pode automatizar a predefinio com a ajuda de um loop e uma varivel de contagem: FOR I = 1 TO 7 OTTO[I] = 0 ENDFOR Mais informaes encontram--se no captulo [Controle de execuo do programa], pargrafo [Loops]. A varivel de contagem , neste caso, a varivel Integer I. Ela ter de ser declarada como Integer antes da aplicao.
ProgHBExperte R4.1 08.01.02 pt

35 de 216

Programao perito S O tipo de dados de um campo pode ser escolhido livremente. Assim, os vrios elementos podero estar constitudos de tipos de dados compostos (p.ex., campo de campos) S Para os ndices s so admissveis tipos de dados Integer S Alm de constantes e variveis, para o ndex so tambm admissveis expresses aritmticas (ver pargrafo 2.3.1) S O ndex conta sempre a partir do 1 2--dimens. Alm dos campos unidimensionais dos quais acabamos de falar, ou seja, campos com apenas um ndex, poder tambm utilizar em KRL campos bi ou tridimensionais. Com DECL REAL MATRIX[5,4] declarado um campo bidimensional 54 com 54=20 elementos REAL. Para uma melhor compreenso, imagine este campo como uma matriz com 5 colunas e 4 linhas. Com a seqncia de programa I[3] = 0 FOR COLUNA = 1 TO 7 FOR LINHA = 1 TO 3 I[3] = I[3] + 1 MATRIZ[COLUNA,LINHA] = I[3] ENDFOR ENDFOR os elementos da matriz so definidos por um valor que corresponde seqncia da sua ocupao. Assim, obtida a definio seguinte da matriz:

Plano 1 Linha 1 Linha 2 Linha 3 Linha 4 1 2 3 4 Coluna 1

5 6 7 8 Coluna 2

9 10 11 12 Coluna 3

13 14 15 16 Coluna 4

17 18 19 20 Coluna 5

Fig. 3 Representao de um campo bidimensional

ProgHBExperte R4.1 08.01.02 pt

36 de 216

2 3--dimens.

Variveis e declaraes (continuao)

E finalmente, imagine os campos tridimensionais como vrias matrizes bidimensionais sucessivas. A terceira dimenso indica, por assim dizer, o nvel no qual se encontra a matriz (ver Fig. 4). declarado um campo tridimensional em anlogo aos campos uni ou bidimensionais, p.ex.: DECL BOOL CAMPO_3D[5,3,4] A seqncia de inicializao poderia ser a seguinte: FOR PLANO = 1 TO 3 FOR COLUNA = 1 TO 5 FOR LINHA = 1 TO 4 CAMPO_3D[PLANO,COLUNA,LINHA] = FALSE ENDFOR ENDFOR ENDFOR

Plano 3 Plano 2 Plano 1 Linha 1 Linha 2 Linha 3 Linha 4 1 2 3 4 Coluna 1 21 22 5 6 7 8 Coluna 2 9 10 11 12 Coluna 3 25 26 41 42 29 30 45 46

49 50

53 54 55 56

57 58 59 60

33 34 35 36

37 38 39 40

13 14 15 16 Coluna 4

17 18 19 20 Coluna 5

Fig. 4 Representao de um campo tridimensional

ProgHBExperte R4.1 08.01.02 pt

37 de 216

Programao perito

2.2.4

Seqncias de caratres
Com o tipo de dados CHAR poder, como j descrito, memorizar apenas caratres individuais. Para a utilizao de seqncias de caratres inteiras, ou seja, de palavras, definido, simplesmente, um campo unidimensional do tipo CHAR: DECL CHAR NAME[8] Agora poder, como habitualmente, ativar cada elemento individual do campo NAME[], p.ex.: NAME[3] = G

G
Mas tambm poder introduzir logo seqncias de caratres inteiras: NAME[] = ABCDEFG define os primeiros sete elementos do campo NAME[] com as letras A, B, C, D, E, F e G:

2.2.5
STRUC

Estruturas
Quando se pretende combinar vrios tipos de dados, o campo no adequado, e preciso recorrer a uma forma mais geral da composio. Com a instruo de declarao STRUC podem ser combinados tipos de dados diferentes, que anteriormente foram definidos ou que so tipos de dados predefinidos, de forma a resultar um tipo de dados compostos novo. Particularmente tambm podem ser parte integrante de uma composio outras composies e outros campos. Um exemplo tpico para a utilizao de composies o tipo de dados padro POS. Ele constitudo por 6 valores REAL e 2 valores INT e foi definido no ficheiro $OPERATE.SRC da forma seguinte:

STRUC POS REAL X, Y, Z, A, B, C, INT S, T


Ponto separador Se utilizar agora, p.ex., uma varivel POSIO do tipo de dados estruturais POS, poder definir os elementos individualmente com a ajuda do ponto separador, p.ex.:

POSIO.X POSIO.Y POSIO.Z POSIO.A POSIO.B POSIO.C POSIO.S POSIO.T


Agregado

= = = = = = = =

34.4 -23.2 100.0 90 29.5 3.5 2 6

ou em conjunto, atravs de um chamado agregado

POSIO={X 34.4,Y -23.2,Z 100.0,A 90,B 29.5,C 3.5,S 2,T 6}

Mais informaes encontram--se no captulo [Variveis e declaraes], pargrafo [Declarao e inicializao de objetos de dados]. Aos agregados aplicam--se as regras seguintes:
ProgHBExperte R4.1 08.01.02 pt

38 de 216

Variveis e declaraes (continuao)

S Os valores de um agregado podem ser simples constantes ou outros agregados. S Num agregado no tero de ser indicados todos os componentes da estrutura. S No necessrio indicar os componentes na mesma seqncia na qual foram definidos. S Cada componente s pode estar contido num agregado uma nica vez. S Quando se trata de campos de estruturas, um agregado descreve o valor de um elemento de campo individual. S No incio de um agregado pode ser indicado o nome do tipo de estrutura, separado por dois pontos. Portanto, as atribuies seguintes so admissveis, p.ex., tambm para variveis POS:

POSIO={B 100.0,X 29.5,T 6} POSIO={A 54.6,B -125.64,C 245.6} POSIO={POS: X 230,Y 0.0,Z 342.5} Com estruturas POS, E6POS, AXIS, E6AXIS e FRAME, os componentes que faltam no so alterados. Em todos os outros agregados, os componentes no existentes so colocados em invlido.
O procedimento para a elaborao de variveis com estruturas prprias explicado com a ajuda do exemplo seguinte: Num subprograma referente soldadura a arco, dever ser transmitida numa varivel S_PARA a seguinte informao: REAL INT BOOL V_ARAME L_CARACT ARCO Velocidade do arame Linha caracterstica 0...100% Com/sem arco (para simulao)

A varivel S_PARA ter de ser constituda por 3 elementos com tipos de dados diferentes. Em primeiro lugar, necessrio definir um novo tipo de dados que preenche estes requisitos:

STRUC TIPO_SOLDAD REAL V_ARAME, INT L_CARACT, BOOL ARCO


Desta forma, foi criado um novo tipo de dados com a designao TIPO_SOLDAD (TIPO_SOLDAD no uma varivel). TIPO_SOLDAD composto por 3 componentes V_ARAME, L_CARACT e ARCO. Agora poder declarar uma varivel qualquer com o novo tipo de dados, p.ex.: DECL TIPO_SOLDAD S_PARA Assim criou uma varivel S_PARA com o tipo de dados TIPO_SOLDAD. Os vrios elementos podem ser ativados, como j descrito, com a ajuda do ponto separador ou do agregado: S_PARA.V_ARAME = 10.2 S_PARA.L_CARACT = 66 S_PARA.ARCO = TRUE ou S_PARA = {V_ARAME 10.2,L_CARACT50, ARCO TRUE} Para poder destinguir melhor os tipos de dados das variveis que voc prprio definiu, vantajoso iniciar ou terminar os nomes dos novos tipos de dados com TIPO.

ProgHBExperte R4.1 08.01.02 pt

39 de 216

Programao perito Estruturas predefinidas

No ficheiro $OPERATE.SRC encontram--se predefinidas as estruturas seguintes: STRUC AXIS REAL A1,A2,A3,A4,A5,A6 STRUC E6AXIS REAL A1,A2,A3,A4,A5,A6,E1,E2,E3,E4,E5,E6 STRUC FRAME REAL X,Y,Z,A,B,C STRUC POS STRUC E6POS REAL X,Y,Z,A,B,C, INT S,T REAL X,Y,Z,A,B,C,E1,E2,E3,E4,E5,E6, INT S,T

Os componentes A1A6 da estrutura AXIS so valores angulares (eixos rotativos) ou valores translatricos (eixos translatricos) para o deslocamento especfico dos eixos 16 do rob. Atravs dos componentes adicionais E1E6 na estrutura E6AXIS podem ser ativados os eixos adicionais. Na estrutura FRAME podem ser fixados 3 valores de posio no espao (X, Y e Z), bem como 3 orientaes no espao (A, B e C). Assim, um ponto no espao fica claramente definido, tanto no que se refere sua posio como sua orientao. Uma vez que existem robs que se podem deslocar ao mesmo ponto no espao estando os eixos em vrias posies, as variveis de Integer S e T na estrutura POS destinam--se fixao de uma posio inequvoca do eixo. Mais informaes encontram--se no captulo [Programao de movimentos], pargrafo [Instrues de movimento] Status (S) e Turn (T). Atravs dos componentes E1E6 na estrutura E6POS tambm podem ser ativados os eixos adicionais. Tipos de dados geomtricos Os tipos AXIS, E6AXIS, POS, E6POS e FRAME chamam--se tambm tipos de dados geomtricos, visto o programador poder utiliz--los para declarar, de modo simples, relaes geomtricas. Mais informaes encontram--se no captulo [Programao de movimentos], pargrafo [Utilizao de diversos sistemas de coordenadas].

2.2.6

Tipos de enumerao
Um tipo de dados de enumerao um tipo de dados que composto por uma quantidade limitada de constantes. As constantes podem ser definidas livremente pelo utilizador. Uma varivel deste tipo de dados (varivel de enumerao) s poder adotar o valor de uma destas constantes. Para explicao tome--se a varivel de sistema $MODE_OP. Nessa varivel memorizado qual dos modos de servio est selecionado naquele momento. A seleo poder ser feita entre os modos de servio T1, T2, AUT e EX. Agora, $MODE_OP poderia ser declarada como varivel de Integer, e a cada modo de servio poderia ser atribudo um numero, o qual seria memorizado ento em $MODE_OP. Mas isto seria pouco claro.

ENUM

O tipo de enumerao proporciona uma soluo muito mais razovel. Para esse efeito, foi gerado no ficheiro $OPERATE.SRC um tipo de dados de enumerao com o nome MODE_OP: ENUM MODE_OP T1, T2, AUT, EX, INVALID A instruo para a declarao dos tipos de enumerao , portanto, ENUM. As variveis do tipo de enumerao MODE_OP podem adotar os valores T1, T2, AUT, EX ou INVALID. A declarao da varivel realiza--se novamente atravs da palavra chave DECL: DECL MODE_OP $MODE_OP
ProgHBExperte R4.1 08.01.02 pt

40 de 216

Variveis e declaraes (continuao)

# -carter

A varivel de enumerao $MODE_OP poder ser definida agora atravs da atribuio normal comum dos quatro valores do tipo de dados MODE_OP. Para diferenciar constantes simples, as constantes de enumerao definidas por voc comeam nas inicializaes ou interrogaes com o carter #, p.ex.: $MODE_OP = #T1 Com ENUM poder ser produzido qualquer numero de tipos de dados de enumerao por voc definidos.

ProgHBExperte R4.1 08.01.02 pt

41 de 216

Programao perito

2.3

Manipulao de dados
Para a manipulao dos vrios objetos de dados existe uma quantidade de operadores e funes, com a ajuda dos quais podem ser construdas frmulas. O poder de uma linguagem de programao de robs depende tambm dos objetos de dados admissveis e das suas possibilidades de manipulao.

2.3.1

Operadores
Por operandos entende--se os operandos matemticos habituais, ao contrrio das funes, como, p.ex., SIN(30), que proporciona o seno do ngulo de 30_. Assim, na operao 5+7, o 5 e o 7 so designados os operandos e o + o operador. Em cada operao, o compilador controla a admissibilidade dos operandos. P.ex., 7 3, como a subtrao de dois nmeros Integer, uma operao admissvel, mas 5 + A, como a adio de um valor Integer a um carter, uma operao invlida. Em algumas operaes, como 5 + 7.1, portanto, a adio de nmeros Integer a valores reais, realizada uma adaptao de tipos, e o valor Integer 5 transformado no valor real 5.0. Esta problemtica ainda ser tratada mais pormenorizadamente, quando se falar dos vrios operadores.

Operando

2.3.1.1

Operadores aritmticos Os operadores aritmticos dizem respeito aos tipos de dados INTEGER e REAL. Todos os tipos de clculos bsicos so admissveis em KRL (ver Tab. 3).

Operator Descrio + -* / Adio ou sinal positivo Subtrao ou sinal negativo Multiplicao Diviso
Tab. 3 Operadores aritmticos

O resultado de uma operao aritmtica INT, apenas no caso de os dois operandos serem do tipo INTEGER. Se o resultado de uma diviso Integer no for nmeros inteiros, a posio a seguir vrgula cortada. Se pelo menos um dos dois operandos for REAL, tambm o resultado do tipo REAL (ver Tab. 4).

Operandos INT REAL


Tab. 4

INT INT REAL

REAL REAL REAL

Resultado de uma operao aritmtica

ProgHBExperte R4.1 08.01.02 pt

42 de 216

Variveis e declaraes (continuao)

O exemplo de programa seguinte serve para a exemplificao: DEF ARITH() ;--------- Seo de declarao --------INT A,B,C REAL K,L,M ;---------- Inicializao --------;antes da inicializao todas as variveis so invlidas! A = 2 ;A=2 B = 9.8 ;B=10 C = 7/4 ;C=1 K = 3.5 ;K=3.5 L = 0.1 E01 ;L=1.0 M = 3 ;M=3.0 ;------------- Seo principal -----------A = A * C ;A=2 B = B - HB ;B=-1 C = C + K ;C=5 K = K * 10 ;K=35.0 L = 10 / 4 ;L=2 L = 10 / 4.0 ;L=2.5 L = 10 / 4. ;L=2.5 L = 10./ 4 ;L=2.5 C = 10./ 4. ;C=3 M = (10/3) * M ;M=9.0 END

2.3.1.2

Operador geomtrico O operador geomtrico simbolizado em KRL por dois pontos :, Entre os tipos de dados FRAME e POS, o operador geomtrico realiza uma interligao de frame. A interligao de dois frames a transformao habitual de sistemas de coordenadas. Assim, a interligao de uma estrutura FRAME com uma estrutura POS s tem efeito sobre o frame dentro da estrutura POS. Os componentes S e T no so afetados pela transformao e, por isso, tambm no precisam de estar definidos por um valor. No entanto, os valores X, Y, Z, A, B e C tm de estar sempre definidos por um valor, tanto com operandos POS como tambm com operandos FRAME.

Interligao de frame

Uma interligao de frame avaliada da esquerda para a direita. O resultado tem sempre o tipo de dados do operando mais direita (ver Tab. 5).

Operando esquerdo Operador (SC de referncia) POS POS FRAME FRAME


Tab. 5

Operando direito (SC de destino) POS FRAME POS FRAME

Resultado
POS FRAME POS FRAME

: : : :

Combinaes de tipos de dados no operador geomtrico

ProgHBExperte R4.1 08.01.02 pt

43 de 216

Programao perito Quando o operando esquerdo apresenta o tipo de dados POS, realiza--se uma adaptao de tipo. A posio indicada pela estrutura POS transformada num frame. Isto significa que o sistema determina o frame da ferramenta em relao a essa posio. O modo de atuar do operador geomtrico explicado atravs de um exemplo simples (ver Fig. 5): Numa sala encontra--se uma mesa. O sistema de coordenadas ESPAO definido como um sistema de coordenadas fixo no canto esquerdo anterior da sala. A mesa encontra--se em paralelo s paredes da sala. O canto esquerdo anterior da mesa situa--se a uma distncia exata de 600 mm da parede da frente e 450 mm da parede do lado esquerdo da sala. A mesa tem uma altura de 800 mm. Em cima da mesa encontra--se uma pea quadrangular. O sistema de coordenadas PEA colocado, como mostrado em Fig. 5, num canto da pea. Para poder manusear mais tarde a pea convenientemente, o eixo Z do sistema de coordenadas PEA aponta para baixo. Em relao ao eixo Z do sistema de coordenadas MESA, a pea est rodada 40_. A posio do sistema de coordenadas PEA, em relao ao sistema de coordenadas MESA, : X=80 mm, Y = 110 mm e Z = 55 mm.

Base=Mesa:Pea
ZR XB YR ZB YB

Base

ZT

YT
XT

Pea

Mesa XR

Fig. 5 Modo de atuao do operador geomtrico A tarefa agora descrever o sistema de coordenadas PEA em relao ao sistema de coordenadas ESPAO. Para esse efeito, declare, em primeiro lugar, as variveis de frame seguintes: FRAME MESA, PEA, BASE O sistema de coordenadas ESPAO j est fixado especificamente para o sistema. Os sistemas de coordenadas MESA e PEA so inicializados agora, de acordo com as condies secundrias: MESA = {X 450,Y 600,Z 800,A 0,B 0,C 0} PEA = {X 80,Y 110,Z 55,A -40,B 180,C 0}
ProgHBExperte R4.1 08.01.02 pt

44 de 216

Variveis e declaraes (continuao)

O sistema de coordenadas PEA, em relao ao sistema de coordenadas ESPAO, resulta agora com a ajuda do operador geomtrico da forma seguinte: BASE = MESA:PEA No nosso caso, BASE tem a definio seguinte: BASE = {X 530,Y 710,Z 855,A 140,B 0,C -180} Uma outra hiptese seria: BASIS = {X 530,Y 710,Z 855,A -40,B 180,C 0}

S nesse caso especial, os componentes de BASE resultam da adio dos componentes de MESA e PEA. Isto deve--se ao fato de o sistema de coordenadas MESA no estar torcido em relao ao sistema de coordenadas ESPAO. Mas de uma maneira geral, uma adio simples dos componentes no possvel! Uma interligao de frames tambm no comutativa, ou seja, uma troca entre o frame de referncia e o frame de destino ir tambm alterar, normalmente, o resultado!

Mais informaes encontram--se no captulo [Programao de movimentos] pargrafo [Utilizao de diversos sistemas de coordenadas]. Mais um exemplo para a aplicao do operador geomtrico: feita a deslocao a vrios sistemas de coordenadas e interligao de sistemas de coordenadas. Para tornar explcitas as alteraes de orientao, a ponta da ferramenta desloca--se, em todos os sistemas de coordenadas, primeiro um pouco na direo X, depois um pouco na direo Y e finalmente um pouco na direo Z.

ProgHBExperte R4.1 08.01.02 pt

45 de 216

Programao perito DEF GEOM_OP ( );

--------- Seo de declarao --------EXT BAS (BAS_COMMAND :IN,REAL :IN ) DECL AXIS HOME ;Varivel HOME do tipo AXIS DECL FRAME MYBASE[2] ;Campo do tipo FRAME; ---------- Inicializao --------BAS (#INITMOV,0 ) ;Inicializao de velocidades, ;Aceleraes, $BASE, $TOOL, etc. HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 30,A6 0}; definir sistemas de coordenadas da base $BASE={X 1000,Y 0,Z 1000,A 0,B 0,C 0}REF_POS_X={X 100,Y 0,Z 0,A 0,B 0,C 0} ;Pos.referncia. REF_POS_Y={X 100,Y 100,Z 0,A 0,B 0,C 0} REF_POS_Z={X 100,Y 100,Z 100,A 0,B 0,C 0}; definir sistemas de coordenadas prprios MYBASE[1]={X 200,Y 100,Z 0,A 0,B 0,C 180} MYBASE[2]={X 0,Y 200,Z 250,A 0,B 90,C 0}; ------------- Seo principal -----------PTP HOME ; Movimento SAK; Movimento em relao ao sistema de coordenadas $BASE PTP $FRAMEZERO ;Deslocao direta ao SC $BASE WAIT SEC 2 ;esperar 2 segundos PTP REF_POS_X ;deslocar 100 mm na direo x PTP REF_POS_Y ;deslocar 100 mm na direo y PTP REF_POS_Z ,deslocar 100 mm na direo z; movimento em relao ao SC $BASE, deslocado por MYBASE[1] PTP MYBASE[1] WAIT SEC 2 PTP MYBASE[1]:REF_POS_X PTP MYBASE[1]:REF_POS_Y PTP MYBASE[1]:REF_POS_Z;Movimento em relao ao SC $BASE deslocado por MYBASE[2] PTP MYBASE[2] WAIT SEC 2 PTP MYBASE[2]:REF_POS_X PTP MYBASE[2]:REF_POS_Y PTP MYBASE[2]:REF_POS_Z; Movimento em relao ao SC $BASE deslocado por MYBASE[1]:MYBASE[2] PTP MYBASE[1]:MYBASE[2] WAIT SEC 2 PTP MYBASE[1]:MYBASE[2]:REF_POS_X PTP MYBASE[1]:MYBASE[2]:REF_POS_Y PTP MYBASE[1]:MYBASE[2]:REF_POS_Z; Movimento em relao ao SC $BASE deslocado por MYBASE[2]:MYBASE[1] PTP MYBASE[2]:MYBASE[1] WAIT SEC 2 PTP MYBASE[2]:MYBASE[1]:REF_POS_X PTP MYBASE[2]:MYBASE[1]:REF_POS_Y PTP MYBASE[2]:MYBASE[1]:REF_POS_Z PTP HOME END

ProgHBExperte R4.1 08.01.02 pt

46 de 216

2 2.3.1.3 Operadores de comparao

Variveis e declaraes (continuao)

Com a ajuda dos operadores de comparao indicados em Tab. 6 podem ser formadas expresses lgicas. O resultado de uma comparao sempre do tipo de dados BOOL, uma vez que uma comparao s pode ser verdadeira (TRUE) ou falsa (FALSE).

Operador == <> > < >= <=

Descrio igual desigual maior mais pequeno maior igual mais pequeno igual
Tab. 6

Tipos de dados admissveis INT, REAL, CHAR, ENUM, BOOL INT, REAL, CHAR, ENUM, BOOL INT, REAL, CHAR, ENUM INT, REAL, CHAR, ENUM INT, REAL, CHAR, ENUM INT, REAL, CHAR, ENUM
Operadores de comparao

As comparaes podem ser utilizadas em instrues de execuo do programa (ver captulo 5), e o resultado de uma comparao poder ser atribuda a uma varivel booleana.

O teste de verificao da igualdade ou desigualdade com valores reais s faz sentido em determinadas condies, uma vez que erros de arredondamento provocados durante os clculos comparativos dos valores pertencentes a frmulas algbricas idnticas podem proporcionar valores desiguais (ver 2.2.2).
S As combinaes de operandos de INT, REAL, e CHAR so possveis. S Um tipo ENUM s pode ser comparado com o mesmo tipo ENUM. S Um tipo BOOL s pode ser comparado com um tipo BOOL. A comparao entre valores numricos (INT, REAL) e valores de caratres (CHAR) possvel porque a cada carter ASCII atribudo um cdigo ASCII. Este cdigo um numero que determina a seqncia dos caratres no registro de caratres. As vrias constantes de um tipo de enumerao so numeradas aquando da sua declarao, pela ordem em que surgem. Os operadores de comparao referem--se a estes nmeros. Alm de comparaes simples, so tambm admissveis comparaes mltiplas. Eis alguns exemplos: BOOL A,B B = 10 < 3 A = 10/3 == 3 B = ((B == A) <> (10.00001 >= 10)) == TRUE A = F < Z

;B=FALSE ;A=TRUE ;B=TRUE ;A=TRUE

ProgHBExperte R4.1 08.01.02 pt

47 de 216

Programao perito 2.3.1.4 Operadores lgicos Os operadores destinam--se interligao de variveis booleanas, constantes e expresses lgicas simples, como aquelas que so formadas com a ajuda dos operadores de comparao. Assim, p.ex., a expresso (A > 5) AND (A < 12) tem o valor TRUE, apenas quando A se situa na gama entre o 5 e o 12. Estas expresses so utilizadas, freqentemente, em instrues para o controle de execuo (ver captulo 5). Os operadores lgicos esto enumerados em Tab. 7.

Operador NOT AND OR EXOR


Tab. 7

Nmero de operandos 1 2 2 2
Operadores lgicos

Descrio Inverso E lgico OU lgico OU exclusivo

Os operandos de uma interligao lgica tero de ser do tipo BOOL, e o resultado tambm sempre do tipo BOOL. Em Tab. 8 so representados os resultados da respetiva interligao em funo do valor dos operandos.

Operao A = TRUE A = TRUE A = FALSE A = FALSE B = TRUE B = FALSE B = TRUE B = FALSE


Tab. 8

NOT A FALSE FALSE TRUE TRUE

A AND B TRUE FALSE FALSE FALSE

A OR B TRUE TRUE TRUE FALSE

A EXOR B FALSE TRUE TRUE FALSE

Tabela de verdade para interligaes lgicas

Alguns exemplos em relao a interligaes lgicas: BOOL A,B,C A = TRUE B = NOT A C = (A AND B) OR NOT (B EXOR NOT A) A = NOT NOT C

;A=TRUE ;B=FALSE ;C=TRUE ;A=TRUE

ProgHBExperte R4.1 08.01.02 pt

48 de 216

2 2.3.1.5 Operadores de bits

Variveis e declaraes (continuao)

Com a ajuda dos operadores de bits (ver Tab. 9) podem ser interligados nmeros inteiros, na medida em que so interligados logicamente os vrios bits dos nmeros. Os operadores de bits interligam os vrios bits da mesma forma que os operadores lgicos interligam dois valores booleanos, se se considerar o valor de bit 1 TRUE e o valor 0 FALSE. Uma interligao de bits E dos nmeros 5 e 12 d como resultado o numero 4, uma interligao de bits OU o numero 13 e uma interligao de bits OU exclusivo o numero 9:

0 1 AND OR EXOR 0 1 1

1 1 1 1 0

0 0 0 0 0

1 0 0 1 1

= 5 = 12 = 4 = 13 = 9

Na inverso dos bits, estes no so simplesmente virados ao contrrio. Em vez disso, ao utilizar B_NOT, somado ao operando 1 e o sinal invertido, p.ex.: B_NOT 10 = -11 B_NOT -10 = 9 Os operadores de bits so utilizados, p.ex., para interligar sinais de entrada/sada digitais (ver 6.3).

Operador B_NOT B_AND B_OR B_EXOR

Nmero de operandos 1 2 2 2
Tab. 9

Descrio inverso de bits interligao de bits E interligao de bits OU interligao de bits OU exclusivo
Operadores de bits lgicos

Uma vez que os caratres ASCII tambm podem ser ativados atravs do CDIGO ASCII de nmeros inteiros, o tipo de dados dos operandos poder ser, alm de INT, tambm CHAR. O resultado sempre do tipo INT.

ProgHBExperte R4.1 08.01.02 pt

49 de 216

Programao perito Exemplos para a utilizao de operadores de bits: INT A = A = A = A = A = A = A = A 10 B_AND 9 10 B_OR 9 10 B_EXOR 9 B_NOT 197 B_NOT HC5 B_NOT B11000101 B_NOT E ;A=8 ;A=11 ;A=3 ;A=-198 ;A=-198 ;A=-198 ;A=-70

Suponhamos que voc definiu uma sada digital com uma largura de 8 bits. A sada poder ser ativada atravs da varivel INTEGER DIG. Para definir os bits 0, 2, 3 e 7, poder agora programar simplesmente Introduzir bits DIG = B10001101 B_OR DIG Todos os outros bits no sofrem influncias, independentemente do valor que apresentam. Se, p.ex., quiser retirar os bits 1, 2 e 6, ter de programar Retirar bits DIG = B10111001 B_AND DIG Todos os outros bits no so alterados por essa operao. Da mesma forma simples, poder verificar com a ajuda dos operadores de bits se os vrios bits da sada foram ativados. A expresso Filtrar bits (B10000001 B_AND DIG) == B10000001 torna--se TRUE, quando esto definidos os bits 0 e 7, caso contrrio FALSE. Caso queira apenas verificar se pelo menos um dos dois bits 0 ou 7 foi ativado, a interligao de bits E apenas ter de ser maior que zero: (B10000001 B_AND DIG) > 0

ProgHBExperte R4.1 08.01.02 pt

50 de 216

2 2.3.1.6 Prioridades de operadores

Variveis e declaraes (continuao)

Prioridade

Se utilizar expresses mais complexas com vrios operadores, ter de estar com ateno s diferentes prioridades dos vrios operadores (ver Tab. 10), uma vez que as vrias expresses so executadas pela ordem da respetiva prioridade.

Prioridade 1 2 3 4 5 6 7

Operador NOT * + AND OR == B_NOT / B_AND B_OR <> < > >= <=

EXOR B_EXOR

Tab. 10 Prioridades de operadores

Em princpio aplicvel: G As expresses entre parnteses so executadas em primeiro lugar. G Quando se trata de expresses sem parnteses, a avaliao realiza--se pela ordem da prioridade. G As interligaes com operadores da mesma prioridade so executadas da esquerda para a direita.
Exemplos: INT A,B BOOL E,F A = 4 B = 7 E = TRUE F = FALSE E = NOT E OR F AND NOT (-3 + A * 2 > B) A = 4 + 5 * 3 - B_NOT B / 2 B = 7 B_EXOR 3 B_OR 4 B_EXOR 3 B_AND 5 F = TRUE == (5 >= B) AND NOT F

;E=FALSE ;A=23 ;B=5 ;F=TRUE

ProgHBExperte R4.1 08.01.02 pt

51 de 216

Programao perito

2.3.2

Funes regulares
Para o clculo de determinados problemas matemticos, j existem em KRL algumas funes regulares predefinidas (ver Tab. 11). Estas podem ser utilizadas diretamente, sem declarao. Descrio Funo Tipo de dados argumento Gama de valores argumento Tipo de dados funo Gama de valores resultado

Montante Raiz Seno Coseno

ABS(X) SQRT(X) SIN(X) COS(X) TAN(X) ACOS(x) ATAN2(Y,X)

REAL REAL REAL REAL REAL REAL REAL

--+ 0+ --+ --+ --+* -1+1 --+

REAL REAL REAL REAL REAL REAL REAL

0+ 0+ -1+1 -1+1 --+ 0_180_ -90_+90_

Tangente
Arco coseno Arco seno

* nenhumas mltiplas impares de 90_, isto , X (2k-1)*90_, k 8 Tab. 11 Funes matemticas regulares Montante A funo ABS(X) calcula o montante do valor X, p.ex.: B = -3.4 A = 5 * ABS(B) Raiz Seno coseno tangente SQRT(X) calcula a raiz quadrada do numero X, p.ex.: A = SQRT(16.0801) ;A=4.01 As funes trigonomtricas SIN(X), COS(X) e TAN(X) calculam o seno, coseno ou a tangente do ngulo X, p.ex.: A = SIN(30) B = 2*COS(45) C = TAN(45) ;A=0.5 ;B=1.41421356 ;C=1.0 ;A=17.0

A tangente de 90_ e de mltiplas impares de 90_ ( 270_, 450_, 630_) infinita. Por isso, a tentativa de calcular um destes valores d origem a uma mensagem de erro. Arco coseno ACOS(X) a funo inversa de COS(X): A = COS(60) B = ACOS(A) Arco seno ;A=0.5 ;B=60

Para o arco seno, a funo inversa de SIN(X), no h nenhuma funo regular predefinida. Mas devido relao SIN(X) = COS(90_--X) poder tambm calcular este de forma muito simples: A = SIN(60) B = 90-ACOS(A) ;A=0.8660254 ;B=60

Arco tangente

A tangente de um ngulo definida como o cateto oposto (Y) dividido pelo cateto anlogo (X) no tringulo retangular. Se o comprimento dos dois catetos for conhecido, atravs do arco tangente poder ser calculado o ngulo formado entre o cateto anlogo e a hipotenusa. Ao considerar um crculo completo, so decisivos os sinais dos componentes X e Y. Se se considerasse apenas o quociente, com o arco tangente s poderiam ser calculados ngulos entre os 0_ e os 180_. o que acontece tambm quando se usa uma calculadora de bolso habitual: do arco tangente de valores positivos resulta um ngulo entre os 0_ e os 90_, e do arco tangente de valores negativos um ngulo entre os 90_ e os 180_.
ProgHBExperte R4.1 08.01.02 pt

52 de 216

Variveis e declaraes (continuao)

Devido indicao explcita de X e Y, o sinal destes determina claramente o quadrante, no qual se encontra o ngulo (ver Fig. 6). Assim, tambm poder calcular ngulos nos quadrantes III e IV. Para o clculo do arco tangente na funo ATAN2(Y,X) so tambm necessrias estas duas indicaes, p.ex.: A B C D = = = = ATAN2(0.5,0.5) ATAN2(0.5,-0.5) ATAN2(-0.5,-0.5) ATAN2(-0.5,0.5) ;A=45 ;B=135 ;C=225 ;D=315

II
X=COS()

Y=SIN()

III

IV

Fig. 6 Utilizao de X e Y na funo ATAN2(Y,X)

Mais informaes encontram--se no captulo [Subprogramas e funes].

ProgHBExperte R4.1 08.01.02 pt

53 de 216

Programao perito

2.4

Variveis de sistema e ficheiros de sistema


Uma condio muito importante para a execuo de aplicaes complexas na tcnica de robs uma unidade de comando com uma programao livre e fcil. Para esse efeito, a funcionalidade da unidade de comando do rob ter de ter uma programao simples na linguagem de robs. S quando a integrao dos parmetros de comando num programa de rob estiver completa e for simples de realizar, poder ser tirado partido da funcionalidade total da unidade de comando de um rob. Na KR C..., esta tarefa solucionada por excelncia, atravs do conceito das variveis e ficheiros predefinidos de sistema. Exemplos para variveis predefinidas so $POS_ACT (posio atual do rob), $BASE (sistema de coordenadas da base) ou $VEL.CP (velocidade de trajetria). Uma listagem de todas as variveis predefinidas encontra--se na documentao prpria [Variveis de sistema]. As variveis de sistema esto totalmente integradas no conceito de variveis da KRL. As variveis de sistema possuem um respetivo tipo de dados correspondente e podem ser lidas ou escritas como qualquer outra varivel no programa, desde que no haja restries relacionadas com o tipo de dados. A posio atual do rob, p.ex., s poder ser lida e no escrita. Este tipo de restries verificado pela unidade de comando. Sempre que possvel, do ponto de visto da tcnica de segurana, voc dispe de um acesso de escrita aos dados de sistema. Assim, ter muitas possibilidades para um diagnstico, uma vez que o KCP e o sistema de programao tm capacidade para carregar ou influenciar um numero mltiplo de dados de sistema. As variveis de sistema teis com acesso de escrita so, p.ex., $TIMER[] e $FLAG[].

Temporizador

As 16 variveis de temporizao $TIMER[1]...$TIMER[16] destinam--se medio dos processos no tempo e, assim, podem ser utilizadas como cronmetros. O incio e a parada do processo de medio realiza--se atravs das variveis de sistema $TIMER_STOP[1]...$TIMER_STOP[16]: $TIMER_STOP[4] = FALSE inicia, p.ex., o temporizador 4, $TIMER_STOP[4] = TRUE pra o temporizador 4 de novo. O reset da respetiva varivel de temporizador poder ser realizado, a qualquer momento, por meio de uma atribuio de valor normal, p.ex.: $TIMER[4] = 0 Se o valor de uma varivel de temporizador mudar de menos para mais, o flag respetivo definido com TRUE (condies de temporizador desligado), p.ex.: $TIMER_FLAG[4] = TRUE Durante a entrada em funcionamento da unidade de comando, todas as variveis de temporizador esto predefinidas com 0, os flags $TIMER_FLAG[1]...$TIMER_FLAG[16] com FALSE e as variveis $TIMER_STOP[1]...$TIMER_STOP[16] com TRUE. A unidade das variveis de temporizador o milisegundo (ms). A atualizao de $TIMER[1]...$TIMER[16] e de $TIMER_FLAG[1]...$TIMER_FLAG[16] realiza--se num ciclo de 12 ms.

ProgHBExperte R4.1 08.01.02 pt

54 de 216

2 Flags

Variveis e declaraes (continuao)

Os 1024 flags $FLAG[1]...$FLAG[1024] so utilizados como marcas globais. Estas variveis booleanas so predefinidas com FALSE. O valor atual dos flags pode ser visualizado, a qualquer momento, no painel de operao, selecionando a opo Display. Alm disso, existem na KR C1 32 flags cclicos $CYCFLAG[1]...$CYCFLAG[32]. Depois da entrada em funcionamento, todos esto predefinidos com FALSE. Os flags esto ativos ciclicamente apenas a nvel de rob. Num ficheiro Submit, os flags cclicos so admissveis, mas no h uma avaliao cclica. Os flags cclicos tambm podem ser definidos e ativados em subprogramas, funes e subprogramas de Interrupt. $CYCFLAG[1]...$CYCFLAG[32] tm o tipo de dados BOOL. Com uma atribuio a um flag cclico, pode ser usada uma expresso booleana qualquer. So admissveis G G G variveis de sistema booleanas variveis booleanas que esto declaradas numa lista de dados e inicializadas. funes que devolvem um valor booleano.

Flags cclicos

No so admissveis A instruo $CYCFLAG[10] = $IN[2] AND $IN[13] tem por conseqncia, p.ex., que a expresso booleana $IN[2] AND $IN[13] avaliada ciclicamente. Isto significa que, logo que a entrada 2 ou a entrada 13 sejam alteradas, tambm alterado $CYCFLAG[10], sendo irrelevante o local onde se encontra o ponteiro de programa depois da execuo da expresso acima indicada. Todos os flags cclicos definidos mantm--se vlidos, at que um mdulo seja desselecionado ou at ser realizada a seleo de um passo. Ao ser atingido o final do programa, todos os flags cclicos continuam ativos. Mais informaes encontram--se no captulo [Tratamento de interrupt], pargrafo [Utilizao de flags cclicos]. $ -- carter De uma maneira geral, os nomes das variveis predefinidas so escolhidos de modo a que sejam fceis de fixar. Comeam todos por um carter $ e depois so constitudos por uma abreviatura compreensvel em ingls. Uma vez que so tratadas como variveis habituais, no ser necessrio decorar instrues pouco habituais ou opes fora do vulgar.

Para evitar enganos, voc prprio no dever declarar variveis que comeam com um carter $.
Uma parte das variveis predefinidas refere--se unidade de comando KR C... em geral (p.ex., $ALARM_STOP para a definio da sada para o sinal de parada de emergncia enviado ao PLC). Outras so apenas relevantes para o rob (p.ex., $BASE para o sistema de coordenadas da base).

ProgHBExperte R4.1 08.01.02 pt

55 de 216

Programao perito No painel de operao KUKA aparece a drive de rob na qual se encontram os dados relevantes para a unidade de comando no diretrio Steu e os dados relevantes para o rob no diretrio R1.

Fig. 7 Vrios nveis no painel de operao KUKA Ao programar a KR C..., podem ser elaborados ficheiros de programa e listas de dados. Nos ficheiros de programa encontram--se definies de dados e instrues executveis, nas listas de dados s se encontram definies de dados e, eventualmente, inicializaes. Mais informaes encontram--se no captulo [Listas de dados]. Alm das listas de dados que so elaboradas durante a programao, na KR C... tambm existem listas de dados definidas por KUKA que so fornecidas juntamente com o software de comando. Estas listas de dados chamam--se listas de dados predefinidas e contm, principalmente, as variveis predefinidas. As listas de dados predefinidas no podem ser apagadas, nem podem ser elaboradas por voc. So criadas durante a instalao do software e esto sempre disponveis. Tambm os nomes das listas de dados predefinidas comeam, tal como os nomes dos dados predefinidos, com um carter $. Na KR C... existem as listas de dados predefinidas seguintes: G $MACHINE.DAT uma lista de dados predefinida que contm, exclusivamente, variveis de sistema predefinidas. Com os dados de mquina, a unidade de comando adaptada ao rob ligado (ciclos, cinemtica, parmetros de regulao etc.). Um $MACHINE.DAT existe no sistema de comando, mas tambm no sistema de rob. No podem ser elaboradas variveis novas, nem apagadas variveis existentes. Exemplos: $ALARM_STOP $NUM_AX G Sinal para parada de emergncia (especfico para a unidade de comando) Nmero dos eixos do rob (especfico para o rob)

$CUSTOM.DAT uma lista de dados que s existe no sistema de comando. A lista contm dados que permitem a projetao ou parametrizao de determinadas funes de comando. O programador tem apenas a possibilidade de alterar os valores das variveis predefinidas. No podem ser elaboradas variveis novas, nem apagadas variveis existentes. Exemplos: $PSER_1 $IBUS_ON Parmetros de controlo do interface srie 1 Ativao de grupos de Interbus alternativos
ProgHBExperte R4.1 08.01.02 pt

56 de 216

2 G

Variveis e declaraes (continuao)

$CONFIG.DAT uma lista de dados predefinida por KUKA, mas que no contm variveis de sistema predefinidas. Existe uma $CONFIG.DAT a nvel de comando e a nvel de rob. Aqui podem ser definidas variveis, estruturas, canais e sinais, vlidos durante um tempo prolongado e muito relevantes para vrios programas. A nvel de rob a lista de dados est dividida nos blocos seguintes: ---------BAS AUTOEXT GRIPPER PERCEPT SPOT A10 A20 TOUCHSENSE USER

As declaraes globais do utilizador devero ser introduzidas, no bloco USER. S aqui so copiadas as declaraes aquando de uma atualizao posterior do software. G $ROBCOR.DAT O ficheiro $ROBCOR.DAT contm dados especficos para o rob que se destinam ao modelo dinmico do rob. Estes dados so necessrios para o planeamento da trajetria. Tambm aqui no podem ser elaboradas variveis novas ou apagadas variveis existentes.

Tab. 12 fornece um resumo das listas de dados predefinidas.

Lista de dados

Sistema Unidade de comando Rob

Atribuio de valor durante atravs de

$MACHINE.DAT $CUSTOM.DAT $CONFIG.DAT $ROBCOR.DAT

n n n n

n n

Entrada em servio Entrada em servio Construo ou alterao da clula Fornecimento

KUKA/utilizador Utilizador/KUKA Utilizador/KUKA KUKA

Tab. 12 Listas de dados predefinidas na KR C...

ProgHBExperte R4.1 08.01.02 pt

57 de 216

Programao perito

ProgHBExperte R4.1 08.01.02 pt

58 de 216

Programao de movimento

Programao de movimento
Uma das tarefas mais importantes da unidade de comando de um rob o movimento do rob. O programador realiza o comando dos movimentos do rob com a ajuda de instrues de movimento especiais. Estas formam tambm a caracterstica principal que distingue as linguagens do rob das linguagens de programao habituais para computadores, tais como C ou Pascal. Conforme o tipo de comando, estas instrues de movimento podem ser divididas em instrues para simples movimentos ponto--a--ponto e instrues para movimentos de trajetria. Enquanto nos movimentos de trajetria, o efeito final (p.ex., a garra ou a ferramenta) descreve uma trajetria com uma definio geomtrica bem definida (reta ou crculo), a trajetria dos movimentos ponto--a--ponto depende da cinemtica do rob e no previsvel com preciso. Ambos os tipos de movimento tm em comum que a programao se realiza, partindo da posio atual para chegar a uma posio nova. Assim, com uma instruo de movimento, geralmente, s necessria a indicao da posio de destino (exceo: movimentos circulares 3.3.4). As coordenadas das posies podem ser especificadas textualmente, atravs da introduo de valores numricos ou por deslocao do rob e memorizao dos valores reais (teach). Em ambos os casos, existe a possibilidade de referir as indicaes a vrios sistemas de coordenadas. Outras caractersticas de movimento, como as velocidades e as aceleraes, bem como a orientao podem ser definidas atravs de variveis de sistema. A aproximao a pontos auxiliares inicializada por meio de parmetros opcionais na instruo de movimento. Para a aproximao ter de ser definido um avano do computador.

Instrues de movimento

3.1

Utilizao de diversos sistemas de coordenadas


Para poder indicar a posio ou a orientao de um ponto no espao, so utilizados diversos sistemas de coordenadas. Basicamente, podem ser diferenciados sistemas de coordenadas especficos dos eixos e sistemas de coordenadas cartesianos. No sistema de coordenadas especfico dos eixos, so indicadas as deslocaes (no caso dos eixos translatricos) ou as rotaes (no caso dos eixos rotatricos) de todos os eixos do rob. Com um rob de brao flexvel de 6 eixos, tm de ser indicados todos os 6 ngulos de articulao do rob, a fim de determinar claramente a posio e a orientao Fig. 8).

Sistemas de coordenadas especficos dos eixos

Fig. 8 Sistema de coordenadas especfico dos eixos de um rob de brao flexvel de 6 eixos

ProgHBExperte R4.1 08.01.02 pt

59 de 216

Programao perito A descrio de uma posio especfica do eixo realiza--se na KR C... atravs do tipo de estrutura predefinido AXIS, cujos componentes tm, conforme o tipo de eixo, o significado de ngulos ou comprimentos. Mais informaes encontram--se no captulo [Variveis e declaraes], pargrafo [Estruturas]. As posies especficas dos eixos s podem ser executadas em ligao com passos de movimento PTP. Se um movimento de trajetria for programado com uma posio de rob especfica do eixo, provocado um erro. Transformao de coordenadas Uma vez que o Homem como programador pensa em coordenadas cartesianas, a programao no sistema de coordenadas especfico dos eixos , geralmente, muito pouco prtica. Por isso, a unidade de comando oferece vrios sistemas de coordenadas cartesianos para a programao, cujas coordenadas so transformadas, automaticamente, no sistema especfico dos eixos (ver Fig. 9), antes da execuo do movimento.

Transformao para a frente

A1, A2, A3, A4, A5, A6 X, Y, Z, A, B, C (, S, T)

Transformao para trs


Fig. 9 Transformao de coordenadas cartesiano Num sistema de coordenadas cartesiano, os 3 eixos de coordenadas X, Y e Z encontram--se verticalmente sobrepostos, formando, nessa ordem, um sistema direito.

ProgHBExperte R4.1 08.01.02 pt

60 de 216

Programao de movimento (continuao)

No sistema de coordenadas cartesiano, a posio de um ponto no espao determinada claramente atravs da indicao das coordenadas X, Y e Z. Estas resultam das distncias translatricas do valor de cada coordenada em relao origem da coordenada (ver Fig. 10).
Z P

Z1 Y

Y1

X1

P(X1=5, Y1=2, Z1=4) Fig. 10 Descrio translatrica da posio de um ponto Para poder fazer a deslocao a todos os pontos no espao, com uma orientao qualquer, alm dos trs valores translatricos so necessrias ainda trs indicaes rotatricas. Os ngulos designados na KR C... com A, B e C descrevem rotaes em torno do eixo de coordenadas Z, Y e X. A ordem das rotaes dever ser mantida: 1. 2. 3. Rotao em torno do eixo Z, descrevendo o ngulo A Rotao em torno do novo eixo Y, descrevendo o ngulo B Rotao em torno do novo eixo X, descrevendo o ngulo C

Esta seqncia de rotao corresponde aos ngulos roll--pitch--yaw (rolar--acenar--guinar) conhecidos da aviao. O ngulo C corresponde ao rolar, o ngulo B ao acenar e o ngulo A ao guinar (ver Fig. 11).

ProgHBExperte R4.1 08.01.02 pt

61 de 216

Programao perito

A
Z Z
A

B
Y X Z Z
C

Y X

Fig. 11 Descrio rotatrica da orientao de um ponto Com a ajuda das translaes X, Y e Z e das rotaes A, B e C, poder ser descrita claramente a orientao de um ponto no espao. Na KR C... isto realizado atravs da estrutura predefinida FRAME. Mais informaes encontram--se no captulo [Variveis e declaraes], pargrafo [Estruturas]. Quando se trata de movimentos de trajetria, a indicao das coordenadas FRAME sempre clara e suficiente. No entanto, com deslocaes ponto--a--ponto e determinadas cinemticas do rob (p.ex., brao flexvel de seis eixos), a deslocao ao mesmo ponto (posio e orientao) no espao poder ser realizada com vrias posies dos eixos. Com mais duas indicaes, S e T, esta ambigidade poder ser resolvida. Na KR C..., est prevista a estrutura POS para um frame alargado por S e T. Mais informaes encontram--se no captulo [Variveis e declaraes], pargrafo [Estruturas] e pargrafo [Instrues de movimento].

ProgHBExperte R4.1 08.01.02 pt

62 de 216

Programao de movimento (continuao)

Na KR C... esto predefinidos os sistemas de coordenadas cartesianos seguintes (Tab. 13 e Fig. 12):

Sistema de coordenadas Sistema de coordenadas mundial Sistema de coordenadas do rob

Varivel de sistema $WORLD $ROBROOT

Estado protegido contra a escrita protegido contra a escrita (altervel em R1\MADA\$MACHINE.DAT )

Sistema de coordenadas da ferramenta $TOOL Sistema de coordenadas da base (pea) $BASE

possvel escrever possvel escrever

Tab. 13 Sistemas de coordenadas cartesianos em robs

y z

SC ferramenta
x z y y x

SC base

SC mundial
z y x

SC rob
x

Fig. 12 Sistemas de coordenadas cartesianos em robs Sistema de coordenadas mundial O sistema de coordenadas do mundo um sistema de coordenadas fixo (= no acompanha o movimento do rob) que utilizado como sistema de coordenadas de origem para um sistema de rob (rob, apoio da pea ou ferramenta). Assim, este sistema representa o sistema de referncia, tanto para o sistema de rob como para a periferia da clula. Sistema de coordenadas do rob Este sistema de coordenadas encontra--se na base do rob e serve como sistema de coordenadas de referncia para a construo mecnica do rob. Refere--se novamente ao sistema de coordenadas mundial, e sada da fbrica idntico a este. Com $ROBROOT poder ser definida uma deslocao do rob em relao a $WORLD. Sistema de coordenadas da ferramenta O sistema de coordenadas da ferramenta tem a sua origem na ponta da ferramenta. A orientao poder ser escolhida de forma a que o seu eixo X seja idntico direo de
ProgHBExperte R4.1 08.01.02 pt

63 de 216

Programao perito trabalho da ferramenta apontando para fora da ferramenta. Ao ser movimentada a ponta da ferramenta, movimenta--se tambm o sistema de coordenadas da ferramenta. sada da fbrica, o sistema de coordenadas da ferramenta situa--se na flange do rob (eixo Z idntico ao eixo 6). Atravs da transformao refere--se ao sistema de coordenadas do rob.

Y X Z

Depois de uma mudana da ferramenta, o programa original poder continuar a ser utilizado, aps ter sido realizada uma medio nova, uma vez que o computador conhece as coordenadas da ponta da ferramenta. Sistema de coordenadas da base O sistema de coordenadas da base utilizado como sistema de coordenadas de referncia para a descrio da posio da pea. A programao do rob realiza--se no sistema de coordenadas da base. Tem o sistema de coordenadas mundial como sistema de coordenadas de referncia. sada da fbrica $BASE=$WORLD. Atravs de uma alterao de $BASE podem ser trabalhadas, p.ex., vrias peas iguais em vrios locais diferentes, utilizando o mesmo programa. Durante a interpolao da trajetria de movimento, a unidade de comando do rob calcula, num caso normal (ferramenta na flange do rob), a posio atual ($POS_ACT) com referncia ao sistema de coordenadas $BASE (ver Fig. 13).

interpolao referente base

$TOOL

z y x

$POS_ACT

z y x

$BASE
z y

$ROBROOT
y

$WORLD

Fig. 13 Corrente cinemtica com interpolao referente base

ProgHBExperte R4.1 08.01.02 pt

64 de 216

3 ferramenta fixa

Programao de movimento (continuao)

Na prtica industrial, usado cada vez mais o processo de ancorar a ferramenta (p.ex., maarico de soldadura) fixamente no espao e levar a pea a passar pela ferramenta fixa, utilizando para o efeito uma garra adequada. A varivel $TOOL refere--se sempre ferramenta ou pea que se encontra no rob. A varivel $BASE, por seu lado, refere--se sempre ferramenta ou pea externa.

interpolao referente garra

Uma vez que a pea e a ferramenta trocaram de posio, mas o movimento em relao pea ter de continuar, a interpolao da trajetria de movimento ter de realizar--se agora atravs do sistema de coordenadas $TOOL. Esta atribuio do tipo de interpolao realiza-se, implicitamente, quando for utilizado um TCP normal ou externo. A varivel de sistema $IPO_MODE permite definir este tipo de interpolao. A linha de programa $IPO_MODE = #TCP permite uma interpolao referente garra no sistema de coordenadas $TOOL. A posio atual $POS_ACT calculada agora em relao a $TOOL (ver Fig. 14). Com $IPO_MODE = #BASE feito o reset do tipo de interpolao para a interpolao referente base para casos normais. Esta tambm a definio padro para a entrada em funcionamento da unidade de comando.

$TOOL y
x z z

$POS_ACT

y x

$BASE
x

$ROBROOT
z y y

$WORLD

Fig. 14 Corrente cinemtica com interpolao referente garra

Um exemplo para a deslocao dos sistemas de coordenadas encontra--se no captulo [Variveis e declaraes], pargrafo [Operador geomtrico].

ProgHBExperte R4.1 08.01.02 pt

65 de 216

Programao perito

3.2
3.2.1
PTP

Movimentos ponto--a--ponto (PTP)


Generalidades (PTP sincronizado)
O movimento ponto--a--ponto (PTP) a maneira mais rpida de movimentar a ponta da ferramenta (Tool Center Point: TCP) da posio momentnea at a uma posio de destino programada. Para esse efeito, a unidade de comando calcula as diferenas angulares necessrias para todos os eixos. Com a ajuda da varivel de sistema G $VEL_AXIS[nmero de eixo] so programadas as velocidades mximas especficas para os eixos, $ACC_AXIS[nmero de eixo] as aceleraes mximas especficas para os eixos.

e com G Todas as indicaes so feitas em percentagem, tomando como base um valor mximo definido nos dados de mquina. Caso estas duas variveis no tenham sido programadas em relao a todos os eixos, ao executar o programa emitida a respetiva mensagem de erro. Os movimentos dos vrios eixos so sincronizados (PTP sincronizado) de forma a que todos os eixos iniciem e terminem o movimento em simultneo. Isto significa que s o eixo com o trajeto mais comprido, ou seja, o chamado eixo dominante, se desloca com o valor limite programado para a acelerao e a velocidade. Todos os outros eixos movimentam--se apenas com a acelerao e a velocidade que so necessrias para atingir o ponto de destino do movimento no mesmo momento, independentemente dos valores programados em $VEL_AXIS[Nr] e $ACC_AXIS[Nr]. Se estiver ativada a adaptao da acelerao ou o perfil de andamento mais elevado ($ADAP_ACC=#STEP1, $OPT_MOVE=#STEP1), os eixos so adicionalmente deslocados com sincronizao de fases, isto , todos os eixos em simultneo encontram--se na fase de acelerao, andamento constante e desacelerao.

Uma vez que nos movimentos PTP com coordenadas de destino cartesianas, geralmente no se sabe qual o eixo dominante, na maioria dos casos vantajoso definir a acelerao e a velocidade com os mesmos valores para todos os eixos.

O movimento sincronizado no tempo minimiza o esforo mecnico do rob, uma vez que so reduzidos os binrios do motor e da engrenagem de todos os eixos com trajetos de movimento mais curtos. O movimento sincronizado na fase leva (adicionalmente) a uma trajetria de movimento que, independentemente da velocidade programada e da acelerao programada, se mantm sempre igual no espao.

Mais informaes encontram--se no captulo [Programao de movimento], pargrafo [Movimentos de aproximao].

ProgHBExperte R4.1 08.01.02 pt

66 de 216

Programao de movimento (continuao)

3.2.2

Perfil de deslocao mais elevado


Normalmente usado para os movimentos PTP um perfil de movimento mais elevado. Com passos PTP individuais e passos PTP de aproximao, este modelo permite uma deslocao otimizada no tempo, desde o ponto de incio at ao ponto de destino. Isto significa que as engrenagens e motores existentes no permitem uma deslocao mais rpida. Os momentos admissveis so aproveitados ao mximo, em cada ponto da trajetria, o que se aplica, sobretudo, tambm fase de velocidade constante. A velocidade adaptada sempre de modo a que os torques no sejam ultrapassados. Nos passos de aproximao, uma alterao dos valores de velocidade ou de acelerao tambm s tem por conseqncia uma alterao do perfil de velocidade na trajetria. A curva geomtrica no espao mantm--se sem alterao. As atribuies de velocidade e os valores--limite de acelerao (indicao em percentagem) podem ser ajustados individualmente para cada eixo. No entanto, este valor--limite no atua diretamente sobre a acelerao, mas sim sobre o binrio de acelerao do eixo. Isto , um valor de acelerao do eixo de 50% no reduz, necessariamente, a acelerao para a metade.

ProgHBExperte R4.1 08.01.02 pt

67 de 216

Programao perito

3.2.3

Instrues de movimento
O exemplo de programa seguinte PTP_AXIS.SRC representa, em princpio, o programa mais pequeno executvel em KRL: DEF PTP_AXIS() $VEL_AXIS[1]=100 $VEL_AXIS[2]=100 $VEL_AXIS[3]=100 $VEL_AXIS[4]=100 $VEL_AXIS[5]=100 $VEL_AXIS[6]=100 $ACC_AXIS[1]=100 $ACC_AXIS[2]=100 $ACC_AXIS[3]=100 $ACC_AXIS[4]=100 $ACC_AXIS[5]=100 $ACC_AXIS[6]=100 ;o nome do programa PTP_AXIS ;determinao das velocidades dos eixos

;determinao das aceleraes dos eixos

PTP {AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0} END Nesse programa so determinadas, em primeiro lugar, as velocidades e aceleraes dos eixos. Antes de poder ser executado um movimento ponto--a--ponto, tero de ser realizadas estas definies. Depois disso, o rob desloca cada eixo at s posies angulares especificadas na estrutura AXIS. Por exemplo, o eixo 1 colocado em 0_, o eixo 2 em 90_, o eixo 3 em 90_, o eixo 4 em 0_, o eixo 5 em 0_ e o eixo 6 em 0_.

Fig. 15 Posio zero mecnica

ProgHBExperte R4.1 08.01.02 pt

68 de 216

Programao de movimento (continuao)

Se ao indicar as coordenadas dos eixos forem omitidos alguns componentes, o rob s desloca os eixos indicados, os outros no alteram a sua posio. Com PTP PTP {A3 45} p.ex., apenas o eixo 3 colocado em 45_. preciso ter em ateno que nas indicaes dos ngulos na instruo PTP se trata de valores absolutos. Isto , o rob no roda o eixo mais 45_, mas desloca o eixo at posio absoluta de 45_. A instruo PTP_REL destina--se a deslocao relativa. Para rodar, p.ex., os eixos 1 e 4 em 35_, programe, simplesmente: PTP_REL PTP_REL {A1 35,A4 35} A3 = 0_

PTP {A3 45}

A3 = 90_

PTP_REL {A3 45}

Fig. 16 Diferena entre coordenadas absolutas e relativas especficas para os eixos

Com uma deslocao relativa, preciso ter em ateno que um movimento parado durante a execuo no pode ser retomado sem problemas. Depois de um novo arranque e uma nova seleo do passo ou uma mudana do tipo de execuo do programa, a unidade de comando no pode ter em conta o trajeto j realizado e executa a distncia relativa programada novamente por completo, o que leva, consequentemente, a um ponto de destino errado.

ProgHBExperte R4.1 08.01.02 pt

69 de 216

Programao perito A deslocao em coordenadas especficas do eixo , geralmente, pouco prtica, uma vez que o Homem pensa e age em termos de espao cartesiano. Para esse efeito, destina--se a indicao das coordenadas cartesianas, atravs de uma estrutura POS, como aquela que se utiliza no exemplo seguinte: DEF PTP_POS() $BASE = $WORLD ;definio do sistema de coordenadas da base $TOOL = $NULLFRAME ;definio do sistema de coordenadas da ;ferramenta $VEL_AXIS[1]=100 $VEL_AXIS[2]=100 $VEL_AXIS[3]=100 $VEL_AXIS[4]=100 $VEL_AXIS[5]=100 $VEL_AXIS[6]=100 $ACC_AXIS[1]=100 $ACC_AXIS[2]=100 $ACC_AXIS[3]=100 $ACC_AXIS[4]=100 $ACC_AXIS[5]=100 $ACC_AXIS[6]=100 ;determinao das velocidades dos eixos

;determinao das aceleraes dos eixos

PTP {POS:X 1025,Y 0,Z 1480,A 0,B 90,C 0,S B 010,T B 000010} END

preciso ter em ateno que ao indicar o ponto de destino em coordenadas cartesianas, alm das indicaes referentes velocidade e acelerao, obrigatrio tambm a definio do sistema de coordenadas da base e do sistema de coordenadas da ferramenta.
Sistema de coordenadas No nosso caso, o sistema de coordenadas da base ($BASE) foi igualado ao sistema de coordenadas mundial ($WORLD) que, regularmente, se encontra na base do rob ($ROBROOT). O sistema de coordenadas da ferramenta ($TOOL) foi definido com o frame zero ($NULLFRAME = {FRAME: X 0, Y 0, Z 0,A 0,B 0,C 0}), o que significa que todas as indicaes se referem ao centro da flange. O centro da ferramenta (Tool Center Point: TCP) encontra--se, portanto, no centro da flange. Ao montar uma ferramenta, estes valores teriam de sofrer a respetiva correo. Em relao a esse assunto, remete--se para os documentos relativos medio das ferramentas. Com a instruo PTP acima indicada, o rob desloca--se agora de forma a que no ponto de destino do movimento o TCP fique deslocado da base do rob, 1025 mm na direo x, 0 mm na direo y e 1480 mm na direo z. As indicaes A, B e C definem a orientao do TCP. O Status S e o Turn T definem a posio dos eixos. Desde que ensaie o exemplo num rob KR6, obtido o mesmo resultado do exemplo acima apresentado. O rob desloca--se posio de zero mecnico. As duas instrues so, portanto, idnticas para este tipo de rob. Tambm na indicao do ponto de destino em coordenadas cartesianas, podem ser omitidos alguns componentes da indicao geomtrica. A instruo PTP {Z 1300, B 180} proporciona um movimento do TCP na direo do eixo z para a posio absoluta de 1300 mm e um acenar do TCP de 180_.
ProgHBExperte R4.1 08.01.02 pt

70 de 216

Programao de movimento (continuao)

Para a deslocao relativa do rob usada novamente a instruo PTP_REL. Com PTP_REL {Z 180, B -90} o rob poder ser colocado novamente na sua posio original. Tambm aqui preciso ter em ateno que os movimentos relativos no podem ser ativados de novo depois de uma interrupo. ZBASE PTP {X 50, Y 50} PTP_REL {X 50, Y 50}

YBASE
200 150 100 50

50

100

150

200

XBASE

Fig. 17 Diferena entre coordenadas cartesianas absolutas e relativas

Com coordenadas cartesianas possvel realizar uma interligao de frames, atravs do operador geomtrico, diretamente na instruo de movimentos. Assim, poder ser iniciado, p.ex., uma deslocao em relao ao sistema de coordenadas da base, sem alterar a varivel $BASE.

Alm disso, a deslocao da base com a ajuda do operador de dois pontos ainda tem uma vantagem decisiva em relao a uma definio nova de $BASE: O deslocamento realiza--se no passo de movimento, enquanto uma definio de $BASE ter de ser feita, algures, antes do passo de movimento. Assim, tambm com uma parada do programa e ativao de passo seguinte, sempre selecionado, em qualquer dos casos, a base correta para o movimento.
Uma definio nova mltipla de $BASE, como na seqncia seguinte, $BASE = $WORLD PTP POS_1 $BASE = {X 100,Y -200,Z 1000,A 0, B 180,C 45) PTP POS_2 pelo contrrio, iria levar depois da interrupo do passo de movimento POS_2 e da nova ativao do passo POS_1 a um ponto de destino errado, uma vez que tambm para o passo de movimento POS_1 necessria a base nova. O mesmo acontece tambm com uma parada do primeiro passo de movimento, desde que esteja definido o respetivo avano do computador.
ProgHBExperte R4.1 08.01.02 pt

71 de 216

Programao perito

Mais informaes encontram--se no captulo [Programao de movimento], pargrafo [Avano do computador].

Por essa razo, sempre que possvel, $BASE e $TOOL s devero ser definidos uma vez, p.ex., na seo de inicializao do programa. Outras deslocaes podero ser realizadas ento com a ajuda do operador geomtrico.
Num TouchUp com o pacote bsico fornecido normalmente, so guardados na lista de dados para cada ponto automaticamente $BASE e $TOOL. No exemplo seguinte, realizada na segunda instruo PTP uma deslocao das coordenadas do ponto de destino, ou seja, 300 mm na direo X, --100 mm na direo Y e uma rotao de 90_ em torno do eixo Z. DEF FR_VERS ( )

;--------- Seo de declarao --------EXT BAS (BAS_COMMAND :IN,REAL :IN ) DECL AXIS HOME ;Varivel HOME do tipo AXIS DECL FRAME BASE1 ;Varivel BASE1 do tipo FRAME ;---------- Inicializao --------BAS (#INITMOV,0 ) ;Inicializao de velocidades, ;Aceleraes, $BASE, $TOOL, etc. HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0} BASE1={FRAME: X 300,Y -100,Z 0,A 90,B 0,C 0} ;------------- Seo principal -----------PTP HOME ; Movimento SAK ; Movimento em relao ao sistema de coordenadas $BASE PTP {POS: X 540,Y 630,Z 1500,A 0,B 90,C 0,S 2,T 35} ; Movimento em relao ao SC $BASE deslocado em BASIS1 PTP BASE1:{POS: X 540,Y 630,Z 1500,A 0,B 90,C 0,S 2,T 35} PTP HOME END

Alm disso, neste exemplo, as definies necessrias das velocidades, aceleraes e dos sistemas de coordenadas $BASE e $TOOL j no so realizadas manualmente. Em vez disso, utilizado para isso o pacote base BAS.SRC que existe em todos os tipos de execuo padro. Para esse efeito, em primeiro lugar, o programa ter de tomar conhecimento do mesmo, atravs da instruo EXT.
Com a instruo de inicializao INI BAS (#INITMOV, 0) so definidas, finalmente, todas as variveis de sistema relevantes com valores padro.

Mais informaes encontram--se no captulo [Subprogramas e funes], pargrafo [Declarao].

ProgHBExperte R4.1 08.01.02 pt

72 de 216

3 SAK

Programao de movimento (continuao)

Antes de poder editar um programa, necessrio estabelecer a coincidncia de passos (SAK), isto , a posio atual do rob ter de corresponder posio programada. Uma vez que o movimento SAK no um movimento programado e ensaiado, ter de ser realizado com a tecla de arranque premida (funo de homem morto), ao mesmo tempo que a velocidade reduzida automaticamente. Ao atingir a trajetria programada, o movimento pra e o programa poder ser continuado, premindo novamente a tecla de arranque.

No modo Automtico Externo no realizado qualquer movimento SAK! Como primeira instruo de movimento recomenda--se uma deslocao Home, em que o rob levado a uma posio inicial segura, claramente definida, na qual depois tambm estabelecida a coincidncia de passos. Tambm essa a posio, para a qual o rob dever ser levado no fim do programa.
SeT As indicaes S e T numa indicao POS destinam--se a escolher entre vrias posies possveis do rob para a mesma posio no espao (devido s singularidades da cinemtica), uma determinada posio claramente definida. Na primeira instruo de movimento e no caso de serem utilizadas coordenadas cartesianas, muito importante programar tambm Status e Turn, a fim de definir uma posio de sada inequvoca. Uma vez que nos movimentos de trajetria (ver 3.3) S e T no so tidos em considerao, a primeira instruo de movimento de um programa (deslocao Home) dever ser uma instruo PTP completa, que inclui a indicao de Status e Turn (ou instruo PTP completa com as coordenadas dos eixos). Nas instrues PTP seguintes, as indicaes de S e T j podem ser omitidas, desde que uma determinada posio do eixo no seja necessria, p.ex., devido a obstculos. O rob mantm o valor S antigo e escolhe o valor T que proporciona o trajeto axial mais curto realizvel que, devido programao nica de S e T, sempre o mesmo no primeiro passo PTP, em execues de programa diferentes. Status e Turn requerem ambos indicaes de Integer que devero ser realizadas em forma binria. Turn A extenso de uma indicao de posio cartesiana pela indicao de Turn permite tambm a deslocao a ngulos de eixos maiores que +180_ ou mais pequenos que 180_, sem que haja a necessidade de uma estratgia de deslocao especial (p.ex., pontos auxiliares). Com eixos rotatricos, os vrios bits determinam o sinal do valor axial da forma seguinte: Bit x = 0: Bit x = 1: Valor 0 1 ngulo do eixo x 0_ ngulo do eixo x 0_ Bit 5 A6 0_ A6 0_ Bit 4 A5 0_ A5 0_ Bit 3 A4 0_ A4 0_ Bit 2 A3 0_ A3 0_ Bit 1 A2 0_ A2 0_ Bit 0 A1 0_ A1 0_

Tab. 14 Significado dos bits de Turn Assim, a indicao T B 10011 significa que os ngulos dos eixos 1, 2 e 5 so negativos e os ngulos dos eixos 3, 4 e 6 positivos (todos os bits 0 com valores mais elevados podem ser omitidos). Status Com o Status S so resolvidas as ambigidades da posio dos eixos (ver Fig. 18). Assim, S depende da respetiva cinemtica do rob.

ProgHBExperte R4.1 08.01.02 pt

73 de 216

Programao perito

Ambigidades Eixo 5

Eixo 3 Eixo 2

Eixo 5

Eixo 4

Eixo 6

Fig. 18 Exemplos para cinemticas de rob ambguas O significado dos vrios bits o seguinte: Bit 0: Bit 1: Bit 2: posio do ponto de carpo (zona base / zona acima da cabea) configurao do brao configurao do manpulo

Para todos os robs de brao flexvel de 6 eixos, os bits so definidos de acordo com a tabela seguinte: Valor 0 1 Bit 2 0_ A5 180_ A5 --180_ --180_ A5 0_ A5 180_ Bit 1 A3 ( depende do tipo de rob) A3 ( depende do tipo de rob) Bit 0 Zona base Zona acima da cabea

Tab. 15 Bits de Status para robs de brao flexvel de 6 eixos No sentido figurado, a zona base/acima da cabea pode ser imaginada de forma cartesiana. Para esse efeito, so definidos os conceitos seguintes: Ponto de carpo: Interface dos eixos do manpulo Sistema de coordenadas A1: Com o eixo 1 em 0_, idntico ao sistema de coordenadas $ROBROOT. Com valores diferentes de a 0_, acompanha o movimento do eixo 1. Assim, a zona base/acima da cabea poder ser definida da forma seguinte: G G Se o valor x do ponto de carpo, expresso no sistema de coordenadas A1, for positivo, o rob encontra--se na zona base. Se o valor x do ponto de carpo, expresso no sistema de coordenadas A1, for negativo, o rob encontra--se na zona acima da cabea.
ProgHBExperte R4.1 08.01.02 pt

74 de 216

Programao de movimento (continuao)

O bit 1 indica a posio do brao. A definio do bit depende do respetivo tipo de rob. Com robs cujos eixos 3 e 4 se cruzam, aplica--se: bit 1 tem o valor 0, quando o eixo 3 < 0_ de resto, o bit 1 = 1. Com robs com um offset que se situa entre o eixo 3 e o eixo 4 (p.ex., KR 30, ver Fig. 19), a posio angular, na qual o valor do bit 1 alterado, depende da dimenso deste offset.

Offset

Fig. 19 Offset entre o eixo 3 e o eixo 4 com um KR 30 Em Fig. 20 so representados os efeitos que os bits de Status exercem sobre a configurao do rob. A deslocao ao mesmo ponto no espao foi realizada com quatro posies diferentes do rob. Na primeira posio, o rob encontra--se na posio inicial. O eixo 5 tem um valor de cerca de 45_, o eixo 3 um valor de cerca de 80_. Em relao segunda configurao do rob, a diferena praticamente no perceptvel. Apenas o eixo 4 foi rodado 180_ e os outros eixos fizeram o respetivo acompanhamento. Enquanto a configurao do brao se manteve igual, foi alterada a configurao do manpulo: o eixo 5 tem agora cerca de 45_, portanto o bit de Status 2 1. Da posio 2 para a posio 3 alterada agora a configurao do brao. O eixo 3 roda para uma posio angular de cerca de 50_, e o bit de Status 1 adota o valor 0. Na quarta posio, finalmente, o rob encontra--se na posio acima da cabea. Para esse efeito foi sobretudo o eixo 1 que realizou uma rotao de 180_. O bit de Status 0 muda para 1.

ProgHBExperte R4.1 08.01.02 pt

75 de 216

Programao perito

Fig. 20 Efeitos exercidos pelos bits de Status sobre a posio do rob

ProgHBExperte R4.1 08.01.02 pt

76 de 216

Programao de movimento (continuao)

3.3
3.3.1

Movimentos de trajetria (Movimentos--CP = Continuous Path)


Velocidade e acelerao
Ao contrrio do que acontece com os movimentos PTP, nos movimentos de trajetria no so indicadas apenas as posies de arranque e de destino. Adicionalmente, exigido que a ponta da ferramenta do rob se movimente sobre uma trajetria linear ou circular entre estes pontos. Assim, as velocidades e aceleraes a indicar j no se referem apenas aos vrios eixos, mas sim ao movimento do TCP, o que significa que a ponta da ferramenta movimentada com uma velocidade que foi definida com preciso. As velocidades e aceleraes tero de ser programadas em relao translao, ao ngulo de oscilao e ao ngulo de rotao. Tab. 16 fornece um resumo geral das variveis de sistema a programar e da sua unidade. Nome de varivel Velocidades $VEL.CP $VEL.ORI1 $VEL.ORI2 Aceleraes $ACC.CP $ACC.ORI1 $ACC.ORI2 Tipo de dados REAL REAL REAL REAL REAL REAL Unidade m/s _/s _/s m/s@ _/s@ _/s@ Funo Velocidade de trajetria Velocidade de oscilao Velocidade de rotao Acelerao de trajetria Acelerao de oscilao Acelerao de rotao

Tab. 16 Variveis de sistema para velocidades e aceleraes de movimentos

Pelo menos um dos componentes de movimento translao, oscilao ou rotao executa o movimento, a qualquer momento, com a acelerao ou velocidade programada. Os componentes no dominantes so adaptados, de forma a ficarem fase sincronizados no tempo. Tambm as velocidades e aceleraes dos movimentos de trajetria so predefinidas com os valores mximos definidos em $CONFIG.DAT ou nos dados de mquina, aquando da ativao da seqncia de inicializao do pacote base. Alm disso, nos movimentos CP a velocidade e a acelerao do eixo so supervisionados e, em caso de ultrapassagem dos limites de supervisionamento definidos nas variveis de sistema $ACC_ACT_MA e $VEL_ACT_MA, provocada uma reao de stop e emitida uma mensagem de erro. Estes limites situam--se, normalmente, em 250% da acelerao nominal do eixo (Acceleration) e em 110% da velocidade nominal do eixo (Velocity). Estas reas de supervisionamento so aplicveis a todos os modos de servio e deslocao manual. Atravs da varivel de sistema $CP_VEL_TYPE, existe a possibilidade de reduzir os avanos dos eixos e, desta forma, a acelerao e a velocidade, a fim de evitar uma resposta dos limites de supervisionamento (reao stop). Como ajuste por defeito, a varivel definida com #CONSTANT, ou seja, no modo de programa a reduo no est ativa. Para ativar esta funo no modo de servio T1, definida #VAR_T1 (em T1 so usadas velocidades e aceleraes de eixo mais reduzidas) e em todos os modos de servio #VAR_ALL. Em modo manual a reduo est sempre ativa. Com a varivel de sistema $CPVELREDMELD conseguida uma mensagem nos dois modos de teste, caso a velocidade de trajetria seja reduzida. Para esse efeito, a varivel para uma mensagem deve ser definida com 1.
ProgHBExperte R4.1 08.01.02 pt

77 de 216

Programao perito

3.3.2

Orientao
Caso se pretenda alterar a orientao da ferramenta no espao durante o movimento de trajetria, o tipo de orientao pode ser definido com a ajuda da varivel de sistema $ORI_TYPE (ver Fig. 21): G $ORI_TYPE = #CONSTANT

G $ORI_TYPE = #VAR

Durante o movimento de trajetria, a orientao mantm--se constante; para o ponto final a orientao programada ignorada, sendo utilizada a do ponto de incio. Durante o movimento de trajetria, a orientao alterada continuamente, desde a orientao no incio at orientao no fim. Este valor tambm definido aquando da inicializao, atravs de BAS(#INITMOV,0).

Fig. 21 Alterao da orientao durante um movimento linear

ProgHBExperte R4.1 08.01.02 pt

78 de 216

Programao de movimento (continuao)

Com movimentos circulares, alm da orientao constante e varivel ainda poder ser feita a escolha entre uma orientao referente ao espao e uma orientao referente trajetria: G $CIRC_TYPE = #BASE

orientao referente ao espao durante o movimento circular. Este valor tambm definido por BAS (#INITMOV,0), aquando da inicializao. orientao referente trajetria durante o movimento circular.

G $CIRC_TYPE = #PATH constante referente trajetria +

Na orientao referente trajetria, realiza--se a orientao do eixo longitudinal da ferramenta, em relao ao plano do crculo e tangente de crculo. Estas relaes podem ser explicadas mais pormenorizadamente com a ajuda da chamada tecnologia tripla que acompanha a trajetria (ver Fig. 22).

Fig. 22 Orientao constante referente trajetria durante os movimentos circulares A tecnologia tripla que acompanha a trajetria composta do vector da tangente de crculo t, do vector da normal n e do vector da binormal b. A orientao da ferramenta acompanhada em Fig. 22 pela tecnologia tripla no segmento do crculo. No que se refere tecnologia tripla que acompanha a trajetria, no h uma alterao da orientao em relao s posies da ferramenta. Este , entre outros, um requisito muito importante para a soldadura a arco. No exemplo mostrado, a orientao da ferramenta em relao tecnologia tripla que acompanha a trajetria no alterada durante o movimento realizado desde o ponto de incio at ao ponto de destino ($ORI_TYPE=#CONST).

ProgHBExperte R4.1 08.01.02 pt

79 de 216

Programao perito varivel + referente trajetria Caso se pretenda uma alterao da orientao referente trajetria entre a posio de incio e a posio de destino ($ORI_TYPE=#VAR), esta realizada, em relao tecnologia tripla, por uma sobreposio dos movimentos de rotao e oscilao (ver Fig. 23). Por conseguinte, na tecnologia tripla que acompanha a trajetria, a orientao durante os movimentos circulares totalmente anloga que se realiza durante os movimentos lineares.

Fig. 23 Orientao varivel referente trajetria durante os movimentos circulares

ProgHBExperte R4.1 08.01.02 pt

80 de 216

3 constante + referente ao espao

Programao de movimento (continuao)

Na orientao ao espao, esta realiza--se em relao ao sistema base atual ($BASE). A orientao referente ao espao vantajosa, sobretudo, em todas as aplicaes em que o ponto fulcral o movimento de trajetria, ou seja, a orientao da ponta da ferramenta sobre o trajeto circular. Nomeadamente quando se trata de uma alterao mnima da orientao entre o ponto de incio e o ponto de destino ou de aplicaes com uma orientao exata e constante no espao (ver Fig. 24) durante um movimento circular (p.ex., aplicaes de cola com um bico de colagem simtrico--rotativo).

Fig. 24 Orientao constante referente ao espao durante os movimentos circulares

ProgHBExperte R4.1 08.01.02 pt

81 de 216

Programao perito varivel + referente ao espao Uma alterao da orientao referente ao espao ($ORI_TYPE=#VAR) entre a posio de incio e a posio de destino realiza--se tambm aqui atravs da sobreposio dos movimentos de oscilao e rotao (ver Fig. 25). Neste caso, porm, em relao ao sistema de coordenadas da base.

Fig. 25 Orientao varivel referente ao espao durante os movimentos circulares Em Tab. 17 encontra--se uma lista das predefinies das variveis de sistema em relao orientao durante os movimentos de trajetria: no sistema $ORI_TYPE $CIRC_TYPE #PATH #VAR #BASE por BAS(#INITMOV,0)

Tab. 17 Predefinies de $ORI_TYPE e $CIRC_TYPE

ProgHBExperte R4.1 08.01.02 pt

82 de 216

Programao de movimento (continuao)

3.3.3
LIN

Movimentos lineares
Com um movimento linear, a KR C... calcula uma reta que vai da posio atual (no programa este o ltimo ponto programado) at posio indicada na instruo de movimento. A programao de um movimento linear realiza--se por meio das palavras chave LIN ou LIN_REL, juntamente com a indicao do ponto de destino, portanto, analogamente programao PTP. Para movimentos lineares, a posio de destino indicada em valores cartesianos. Portanto, so admissveis apenas os tipos de dados FRAME ou POS.

Com movimentos lineares, o estado angular do ponto de destino ter de ser igual ao do ponto de incio. Assim, uma indicao de Status e Turn num ponto de destino do tipo de dados POS ignorada. Por isso, antes da primeira instruo LIN, j ter de ter sido programado um movimento PTP com a indicao completa das coordenadas (p.ex., movimento HOME).
A definio das variveis de velocidade e acelerao, necessria para os movimentos de trajetria, bem como a definio dos sistemas de coordenadas da base e da ferramenta realizam--se no exemplo de programa seguinte novamente atravs da rotina BAS.SRC. DEF LIN_BEW () ;--------- Seo de declarao --------EXT BAS (BAS_COMMAND: IN, REAL: IN) DECL AXIS HOME ;Varivel HOME de tipo AXIS ;---------- Inicializao --------BAS (#INITMOV, 0) ;Inicializao de velocidades, ;Aceleraes, $BASE, $TOOL, etc. HOME = {AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0} ;------------- Seo principal -----------PTP HOME ; Movimento SAK PTP {A5 30} ; Movimento linear em direo posio indicada, a orientao ; alterada continuamente, com vista orientao de destino LIN {X 1030,Y 350,Z 1300,A 160,B 45,C 130} ; Movimento linear no plano Y-Z, S e T so ignorados LIN {POS: Y 0,Z 800,A 0,S 2,T 35} ; Movimento linear em direo posio indicada, a orientao ; no alterada $ORI_TYPE=#CONST LIN {FRAME: X 700,Y -300,Z 1000,A 23,B 230,C -90} ; A orientao continua a no ser alterada LIN {FRAME: Z 1200,A 90,B 0,C 0} ; Movimento relativo ao longo do eixo X LIN_REL {FRAME: X 300} PTP HOME END

ProgHBExperte R4.1 08.01.02 pt

83 de 216

Programao perito

3.3.4
CIRC

Movimentos circulares
Para uma definio inequvoca de um crculo ou de um arco circular no espao so necessrios 3 pontos diferentes que no se encontram sobre uma reta. O ponto de incio de um movimento circular dado pela posio atual, como em PTP ou LIN. Para a programao de um movimento circular com as instrues CIRC ou CIRC_REL, necessrio programar, alm do ponto de destino, tambm um ponto auxiliar. Com os clculos da trajetria de movimento realizados pela unidade de comando, so avaliados apenas os componentes translatricos (X, Y, Z) do ponto auxiliar. Assim, a orientao da ponta da ferramenta alterada, continuamente, desde o ponto de incio at ao ponto de destino, conforme a orientao definida, ou mantm--se constante. Adicionalmente posio auxiliar e posio de destino ainda pode ser programado um ngulo circular, atravs da opo CA (Circular Angle). A geometria do arco circular continua a ser determinada pelos pontos de incio, auxiliar e de destino. Mas a posio de destino situada no arco circular para onde se pretende realizar a deslocao, determinada atravs do ngulo circular programado. Este procedimento til, sobretudo, para a programao posterior da posio de destino sem alterao da geometria de crculo. O arco circular a executar poder ser prolongado ou reduzido, de acordo com o ngulo circular. A orientao de destino programada atingida ento no ponto de destino real. Atravs do sinal do ngulo circular, poder ser determinado o sentido de rotao, ou seja, a direo na qual dever ser executado o arco circular (ver Fig. 26): CA > 0_ CA < 0_ no sentido programado (ponto de incio ponto auxiliar ponto de destino) ao contrrio do sentido programado (ponto de incio ponto de destino ponto auxiliar)

CA

O valor do ngulo circular no limitado. Sobretudo, podem ser programados tambm crculos completos (> 360_).

CA > 0
Ponto auxiliar

CA < 0
Ponto de destino real Ponto auxiliar

CA = 235

Ponto de destino programado Ponto de destino real

CA = --235

Ponto de destino programado

Ponto de incio

Ponto de incio

Fig. 26 Efeito da opo CA sobre a instruo CIRC ou CIRC_REL As indicaes relativas posio auxiliar e posio de destino (CIRC_REL) referem--se sempre posio de incio. Tal como nos movimentos LIN, as indicaes de posio especficas para os eixos no so admissveis. Tambm $BASE e $TOOL tm de estar totalmente definidos, antes de poder ser executado um movimento circular.
ProgHBExperte R4.1 08.01.02 pt

84 de 216

Programao de movimento (continuao)

DEF

CIRC_BEW ( )

;--------- Seo de declarao --------EXT BAS (BAS_COMMAND :IN,REAL :IN ) DECL AXIS HOME ;---------- Inicializao --------BAS (#INITMOV,0 ) ;Inicializao de velocidades, ;Aceleraes, $BASE, $TOOL, etc. HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0} ;------------- Seo principal -----------PTP HOME ;Movimento SAK PTP {POS: X 980,Y -238,Z 718,A 133,B 66,C 146,S 6,T 50} ; orientao varivel referente ao espao (predefinio) CIRC {X 925,Y -285,Z 718},{X 867,Y -192,Z 718,A 155,B 75,C 160} ; orientao constante referente ao espao ; ponto de destino determinado atravs da indicao do ngulo $ORI_TYPE=#CONST CIRC {X 982,Y -221,Z 718,A 50,B 60,C 0},{X 1061,Y -118,Z 718, A -162,B 60,C 177}, CA 300.0 ; orientao constante referente trajetria ; ponto de destino por indicao do ngulo (para trs) $CIRC_TYPE=#PATH CIRC {X 867,Y -192,Z 718},{X 982,Y -221,Z 718,A 0}, CA -150 $ORI_TYPE=#VAR LIN {A 100} ; reorientao do TCP

; orientao varivel referente trajetria CIRC {X 963.08,Y -85.39,Z 718},{X 892.05,Y 67.25,Z 718.01, A 97.34,B 57.07,C 151.11} ; movimento circular relativo CIRC_REL {X -50,Y 50},{X 0,Y 100} PTP END HOME

ProgHBExperte R4.1 08.01.02 pt

85 de 216

Programao perito

3.4

Avano do computador
Uma caracterstica essencial de um rob industrial a rapidez com a qual ele pode realizar as suas tarefas. Alm da dinmica do rob, tem um significado decisivo a efetividade da execuo do programa de utilizador, que alm dos movimentos constitudo tambm por instrues aritmticas que comandam a periferia. Uma execuo mais rpida do programa pode ser conseguido G G pela reduo da durao do movimento e pela reduo do tempo de parada entre os movimentos.

Com condies secundrias predefinidas, como as velocidades e aceleraes mximas dos eixos, o primeiro ponto pode ser conseguido por uma aproximao dos movimentos, otimizada no tempo. Mais informaes encontram--se no captulo [Programao de movimento], pargrafo [Movimentos de aproximao]. O tempo de parada entre os movimentos poder ser reduzido, quando as instrues de aritmtica e lgica demoradas so realizadas entre os passos de movimento, durante o movimento do rob, ou seja, durante o avano (as instrues tm um avano em relao ao movimento). $ADVANCE A varivel de sistema $ADVANCE permite determinar o numero de passos de movimento que o avano poder estar frente do tratamento principal (ou seja, frente do passo de movimento atual). O indicador principal que durante a execuo do programa visvel no painel de operao, mostra sempre o passo de movimento que naquele momento est a ser executado. Pelo contrrio, o indicador do avano no visvel, e tanto pode apontar para instrues que so totalmente executadas pela unidade de comando, como para passos de movimento que apenas so preparados pela unidade de comando, para serem executados mais tarde, ou seja, no tratamento principal (ver Fig. 27).

Indicador principal

O indicador do avano encontra--se neste local; $ADVANCE = 1

Fig. 27 Indicadores principal e de avano

ProgHBExperte R4.1 08.01.02 pt

86 de 216

Programao de movimento (continuao)

No excerto de programa acima mostrado, o avano definido com 1 e o indicador principal encontra--se na linha 16 (o que significa que est a ser executado, nesse momento, o movimento LIN). Um avano do computador de 1 significa que as instrues da linha 16 at linha 22 j foram executadas por completo, paralelamente execuo dos movimentos, e que os dados relativos aos movimentos PTP na linha 24 esto a ser preparados. Para permitir uma aproximao, ter de ser definido um avano do computador de pelo menos 1 (a varivel $ADVANCE possui normalmente o valor 3. Possveis so, no mximo, 5 passos de avano). Num subprograma Interrupt no possvel qualquer avano do computador. A unidade de comando executa os programas Interrupt sempre linha por linha, por isso, no possvel fazer aproximaes em programas Interrupt. Predefinies de $ADVANCE: no sistema $ADVANCE 0 por BAS (#INITMOV, 0) 3

parada automtica do avano

As instrues e os dados que exercem uma influncia sobre a periferia (p.ex., instrues de entrada/sada) ou se referem ao estado atual do rob, provocam uma paragem do avano (ver Tab. 18). Isto necessrio para garantir a seqncia temporal correta das instrues e dos movimentos do rob.

Instrues

ANOUT ON ANIN ON DIGIN ON PULSE HALT CREAD SREAD

ANOUT OFF ANIN OFF DIGIN OFF WAIT CWRITE SWRITE COPEN CCLOSE

Combinao CP-PTP sem aproximao Instrues em combinao com um interrupt Variveis de sistema habihabi tuais END (caso no mdulo no tenha sido definido um interrupt global) INTERRUPT DECL (caso o interrupt j tenha sido declarado) RESUME sem BRAKE $ANOUT[Nr] $DIGIN1 $OUT[Nr] $AXIS_ACT $POS_ACT $AXIS_INC $ANIN[Nr] $DIGIN2 $IN[Nr] $AXIS_BACK $POS_BACK $AXIS_INT $AXIS_FOR $POS_FOR $AXIS_RET $POS_RET $DIGIN6

$POS_ACT_MES $POS_INT

$TORQUE_AXIS $ASYNC_AXIS $TECH[X].MODE, $TECH[X].CLASS com determinadas operaes $LOAD, $LOAD_A1, $LOAD_A2, $LOAD_A3 (caso se trate de um rob absolutamente preciso com mudana da carga)
ProgHBExperte R4.1 08.01.02 pt

87 de 216

Programao perito Outras variveis de sistema $ALARM_STOP $EM_STOP $ACT_TOOL $OV_PRO $ASYNC_EX_AX _DECOUPLE todas, com acesso Caso entre passos com aproximao haja uma mudana de filtro, provocada uma paragem de avano. $AXIS_ACTMOD $EXTSTARTTYP $PAL_MODE $WORKSPACE $INHOME_POS $REVO_NUM $ACT_BASE $IBUS_OFF $ON_PATH $SAFETY_SW $ACT_EX_AX $IBUS_ON

Variveis importadas Sonstiges

Tab. 18 Instrues e variveis que provocam uma parada automtica do avano CONTINUE Nos casos de aplicao, nos quais esta parada do avano dever ser impedida, a instruo CONTINUE ter de ser programada diretamente antes da respetiva instruo. Nesse caso, a unidade de comando continua o avano. Mas o efeito limitado linha de programa seguinte (tambm linha vazia!!). Se, pelo contrrio, quiser parar o avano num determinado local, sem ter de alterar a varivel de sistema $ADVANCE, poder recorrer a um pequeno truque: Programe nesse local simplesmente um tempo de espera de 0 segundos. Nesse caso, a instruo WAIT provoca uma parada automtica do avano, mas no tem outros efeitos: WAIT SEC 0 Mais informaes encontram--se no captulo [Controle de execuo do programa], pargrafo [Tempos de espera].

ProgHBExperte R4.1 08.01.02 pt

88 de 216

Programao de movimento (continuao)

3.5

Movimentos de aproximao
Para aumentar a velocidade, poder haver um posicionamento aproximado naqueles pontos aos quais no preciso fazer uma deslocao exata. O rob encurta o caminho, como se mostra na Fig. 28.

Contorno de aproximao

O contorno de aproximao gerado, automaticamente, pela unidade de comando. O programador s tem uma influncia sobre o incio e o fim da aproximao. Para calcular o passo de aproximao, a unidade de comando necessita dos dados do ponto de incio, do ponto de aproximao e do ponto de destino.

A fim de permitir uma aproximao, o avano do computador ($ADVANCE) dever ser definido com 1. Caso o avano do computador seja muito pequeno, aparece a mensagem Aproximao impossvel, e a deslocao aos pontos exata.
Se depois de uma instruo de aproximao programar uma instruo que d origem a uma parada automtica do avano (ver Tab. 18), a aproximao no possvel. Mais informaes acerca da instruo TRIGGER como soluo encontram--se no captulo [Aes de comutao referentes ao trigger e trajetria].

Aproximao
Ponto auxiliar

Ponto de destino

Ponto de incio

Fig. 28 Aproximao a pontos auxiliares

ProgHBExperte R4.1 08.01.02 pt

89 de 216

Programao perito

3.5.1

Aproximao PTP--PTP
Para o posicionamento aproximado PTP, a unidade de comando calcula as distncias que os eixos tero de percorrer na zona da aproximao e planeia em relao a todos os eixos os perfis de velocidade que asseguram as passagens tangenciais dos passos individuais ao contorno de aproximao.

Incio do posicionamento aproximado

A aproximao comea quando o ltimo eixo (= eixo dominante) fica abaixo de um determinado ngulo estabelecido em relao ao ponto de aproximao. Nos dados de mquina h um ngulo predefinido para cada eixo: $APO_DIS_PTP[1] = 90 $APO_DIS_PTP[6] = 90 Com a ajuda de $APO.CPTP pode ser indicado no programa o incio da aproximao, num valor percentual em relao a estes valores mximos. P.ex.: $APO.CPTP = 50 Nesse caso, a aproximao comea quando ao primeiro eixo ainda falta percorrer um ngulo restante de 45_ (50% de 90_) at ao ponto de aproximao. A aproximao realiza-se exatamente no momento em que o primeiro eixo j percorreu um ngulo de 45_ desde o ponto de aproximao.

Quanto maior $APO.CPTP, mais arredondada a trajetria.


A aproximao nunca poder ser realizada a meio do passo! Nesse caso, o sistema realiza automaticamente o limite ao meio do passo. C_PTP O posicionamento aproximado a um ponto indicado numa instruo PTP, colocando no fim a palavra chave C_PTP: PTP PONTO4 C_PTP Tambm o passo de aproximao PTP realizado com uma otimizao do tempo. Isto significa que durante a aproximao h sempre pelo menos um dos eixos que se desloca com o valor limite programado em relao acelerao ou velocidade. Ao mesmo tempo fica garantido que nenhum dos eixos ultrapassa os binrios admissveis da engrenagem e do motor. O perfil de andamento mais elevado, ajustado por norma, garante que os movimentos so executados sem variao da velocidade ou da acelerao. Mais informaes encontram--se no captulo [Programao de movimento], pargrafo [Perfil de deslocao mais elevado]. O exemplo seguinte mostra o efeito proporcionado pela instruo de aproximao e pela varivel $APO.CPTP. A trajetria percorrida representada em Fig. 29, no plano x--y. Nomeadamente, aqui tambm visvel que com movimentos PTP, o TCP no se movimenta, formando uma reta entre os pontos de destino.

ProgHBExperte R4.1 08.01.02 pt

90 de 216

3 DEF UEBERPTP ( )

Programao de movimento (continuao)

;--------- Seo de declarao --------EXT BAS (BAS_COMMAND :IN,REAL :IN ) DECL AXIS HOME ;---------- Inicializao --------BAS (#INITMOV,0 ) ;Inicializao de velocidades, ;Aceleraes, $BASE, $TOOL, etc. HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0} ;------------- Seo principal -----------PTP HOME ; Movimento SAK PTP {POS:X 1159.08,Y -232.06,Z 716.38,A 171.85,B 67.32,C 162.65,S 2,T 10} ;Posicionamento aproximado ao ponto PTP {POS:X 1246.93,Y -98.86,Z 715,A 125.1,B 56.75,C 111.66,S 2,T 10} C_PTP PTP {POS:X 1109.41,Y -0.51,Z 715,A 95.44,B 73.45,C 70.95,S 2,T 10} ;Posicionamento aproximado a dois pontos $APO.CPTP=20 PTP {POS:X 1296.61,Y 133.41,Z 715,A 150.32,B 55.07,C 130.23,S 2,T 11} C_PTP PTP {POS:X 988.45,Y 238.53,Z 715,A 114.65,B 50.46,C 84.62,S 2,T 11} C_PTP PTP {POS:X 1209.5,Y 381.09,Z 715,A -141.91,B 82.41,C -159.41,S 2,T 11} PTP END HOME

ProgHBExperte R4.1 08.01.02 pt

91 de 216

Programao perito

x
x=1296,61 y=133,41 x=1246,93 y=--98,86 x=1209,5 y=381,09

x=1159,08 y=--232,06 x=1109,41 y=--0,51

x=988,45 y=238,53

Fig. 29 Exemplo para um posicionamento aproximado PTP--PTP

Uma vez que a trajetria de um movimento PTP, geralmente, no uma reta, nem se situa num plano espacial, em princpio, tambm no deveria ser representada como em Fig. 29. Apesar do fato de o valor z de todos os pontos do exemplo ser igual, nem todos os pontos da trajetria de movimento se situam no plano z=715 mm. A trajetria representada , portanto, apenas uma projeo da trajetria real no plano x--y.

ProgHBExperte R4.1 08.01.02 pt

92 de 216

Programao de movimento (continuao)

3.5.2

Aproximao LIN--LIN
Para um movimento contnuo ao longo de trajetrias complexas, h a necessidade de realizar posicionamentos aproximados tambm entre passos individuais lineares. Nos passos LIN, a passagem entre os vrios movimentos de orientao tambm tem de ser contnua. Como contorno de aproximao, a unidade de comando calcula uma trajetria em forma de uma parbola, visto que esta forma de contorno proporciona uma aproximao muito eficaz da trajetria dos passos individuais, ao mesmo tempo que permite aproveitar ao mximo as reservas de acelerao na zona da aproximao.

Incio da aproximao

Para a determinao do incio da aproximao existem trs variveis predefinidas (ver Tab. 19): Varivel $APO.CDIS $APO.CORI $APO.CVEL Tipo de dados REAL REAL INT Unidade mm _ % Significado Critrio de distncia translatrico Distncia de orientao Critrio de velocidade Palavra chave na instruo C_DIS C_ORI C_VEL

Tab. 19 Variveis de sistema para a determinao do incio da aproximao Critrio distncia de s variveis $APO.CDIS poder ser atribuda uma distncia translatrica. Ao realizar--se o trigger com esta varivel, a unidade de comando sai do contorno do passo individual exatamente no momento em que a distncia ao ponto de destino fica abaixo do valor definido em $APO.CDIS. varivel $APO.CORI poder ser atribuda uma distncia de orientao. Nesse caso, a sada do contorno do passo individual realiza--se exatamente no momento em que o ngulo de orientao dominante (oscilao ou rotao do eixo longitudinal da ferramenta) fica abaixo da distncia ao ponto de aproximao programado, definido em $APO.CORI. varivel $APO.CVEL poder ser atribudo um valor percentual. Este valor indica a percentagem da velocidade programada ($VEL) em que dever ser iniciado o processo de aproximao na fase de frenagem do passo individual. Aqui avaliado o componente resultante dos fatores translao, oscilao e rotao que durante o movimento atinge o valor de velocidade programado ou o que mais se aproxima dele.

Critrio de orientao

Critrio de velocidade

Quanto maiores so os valores em $APO.CDIS, $APO.CORI ou $APO.CVEL, mais cedo comea a aproximao. Internamente, o sistema permite, eventualmente, a reduo da aproximao (meio do passo, critrio de simetria), mas nunca o aumento.
C_DIS C_ORI C_VEL A aproximao ativada por acrescentar instruo LIN ou LIN_REAL uma das palavras chave C_DIS, C_ORI ou C_VEL. O exemplo seguinte pretende tornar o assunto mais explcito, em ligao com Fig. 30:

ProgHBExperte R4.1 08.01.02 pt

93 de 216

Programao perito DEF UEBERLIN ( )

;--------- Seo de declarao --------EXT BAS (BAS_COMMAND :IN,REAL :IN ) DECL AXIS HOME ;---------- Inicializao --------BAS (#INITMOV,0 ) ;Inicializao de velocidades, ;Aceleraes, $BASE, $TOOL, etc. HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0} ;------------- Seo principal -----------PTP HOME ; Movimento SAK PTP {POS: X 1159.08,Y 162.65,S 2,T 10} -232.06,Z 716.38,A 171.85,B 67.32,C

;Posicionamento aproximado ao ponto segundo o critrio de distncia $APO.CDIS=20 LIN {X 1246.93,Y -98.86,Z 715,A 125.1,B 56.75,C 111.66} C_DIS LIN {X 1109.41,Y -0.51,Z 715,A 95.44,B 73.45,C 70.95} ;Posicionamento aproximado a dois pontos LIN {X 1296.61,Y 133.41,Z 714.99,A 150.32,B 55.07,C 130.23} C_ORI LIN {X 988.45,Y 238.53,Z 714.99,A 114.65,B 50.46,C 84.62} C_VEL LIN PTP END {X 1209.5,Y 381.09,Z 715,A -141.91,B 82.41,C -159.41} HOME

x
x=1296,61 y=133,41 x=1246,93 y=--98,86 x=1209,5 y=381,09

x=1159,08 y=--232,06 x=1109,41 y=--0,51

x=988,45 y=238,53

Fig. 30 Exemplo para um posicionamento aproximado LIN--LIN


ProgHBExperte R4.1 08.01.02 pt

94 de 216

Programao de movimento (continuao)

A posio na qual o contorno de aproximao passa ao passo LIN seguinte, calculada automaticamente pela unidade de comando. Caso $ACC e $VEL sejam idnticos para ambos os passos individuais e os comprimentos dos passos sejam suficientes, a parbola de aproximao decorre simetricamente, em relao bissetriz angular entre os dois passos individuais. Quando se trata de passos individuais curtos, o incio do posicionamento aproximado limitado para a metade do comprimento do passo. A velocidade reduzida de forma a que uma parada exata que eventualmente se possa seguir, seja sempre cumprida.

As passagens entre os passos individuais e o contorno de aproximao so contnuas e decorrem tangencialmente, o que garante uma passagem suave, pouco desgastante para os sistemas mecnicos, uma vez que os componentes de velocidades so sempre constantes. O contorno gerado pela unidade de comando na zona da aproximao no depende de alteraes do override, as quais so admissveis a qualquer momento do movimento.

ProgHBExperte R4.1 08.01.02 pt

95 de 216

Programao perito

3.5.3

Aproximao CIRC--CIRC e aproximao CIRC--LIN


A questo que se pe na aproximao entre dois passos CIRC e outros passos CP (LIN ou CIRC) quase idntica que se verifica entre dois passos LIN. Tanto o movimento de orientao como o movimento translatrico devem ser realizados, de forma a que a passagem de um contorno de passo individual a outro se realize sem saltos de velocidade. O incio da aproximao definido tambm aqui pelas variveis $APO.CDIS, $APO.CORI ou $APO.CVEL, cuja avaliao totalmente idntica dos passos LIN. A definio do critrio de aproximao pretendido tambm se realiza com a ajuda das palavras chave C_DIS, C_ORI ou C_VEL (ver 3.5.2). Mais informaes encontram--se no captulo [Programao de movimento], pargrafo [Aproximao LIN--LIN]. Tambm a aproximao CIRC--CIRC dever ser tornada mais explcita, com a ajuda de um exemplo e da trajetria de movimento representada (ver Fig. 31):

DEF UEBERCIR ( );--------- Seo de declarao --------EXT BAS (BAS_COMMAND :IN,REAL :IN ) DECL AXIS HOME;---------- Inicializao --------BAS (#INITMOV,0 ) ;Inicializao de velocidades, ;Aceleraes, $BASE, $TOOL, etc. HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0};------------Seo principal -----------PTP HOME ; Movimento SAK PTP {POS: X 980,Y -238,Z 718,A 133,B 66,C 146,S 6,T 50} ; Orientao varivel referente ao espao ; Aproximao segundo o critrio de distncia $APO.CDIS=20 CIRC {X 925,Y -285,Z 718},{X 867,Y -192,Z 718,A 155,B 75,C 160} C_DIS ; Orientao constante referente ao espao ; Ponto de destino determinado pela indicao do ngulo ; Aproximao no possvel devido paragem do avano atravs de $OUT $ORI_TYPE=#CONST CIRC {X 982,Y -221,Z 718,A 50,B 60,C 0},{X 1061,Y -118,Z 718,A -162,B 60,C 177}, CA 150 C_ORI $OUT[3]=TRUE ; Orientao varivel referente trajetria ; Aproximao segundo o critrio de orientao $ORI_TYPE=#VAR $CIRC_TYPE=#PATH CIRC {X 963.08,Y -85.39,Z 718},{X 892.05,Y 67.25,Z 718.01,A 97.34,B 57.07,C 151.11} C_ORI

ProgHBExperte R4.1 08.01.02 pt

96 de 216

Programao de movimento (continuao)

; Movimentos circulares relativos ; Aproximao segundo o critrio de velocidade $APO.CVEL=50 CIRC_REL {X -50,Y 50},{X 0,Y 100} C_VEL ; Aproximao segundo o critrio de distncia $APO.CDIS=40 CIRC_REL {X -50,Y 50},{X 0,Y 100} C_DIS CIRC_REL {X -50,Y 50},{X 0,Y 100} PTP END HOME

x=980 y=--238

150_

y=100

y=100

y=100 x=867 y=--192

Fig. 31 Exemplo para um posicionamento aproximado CIRC--CIRC

Devido necessidade de passagens tangenciais, na aproximao com passos CIRC geralmente no pode ser calculado um contorno de aproximao simtrico. Assim, a trajetria de aproximao constituda por dois segmentos de parbola, cuja passagem de um ao outro tangencial e que passam tambm tangencialmente aos passos individuais (ver Fig. 32).

ProgHBExperte R4.1 08.01.02 pt

97 de 216

Programao perito

Aproximao LIN--CIRC
Final de aproximao

Incio de aproximao

Fig. 32 Contorno de aproximao com passos LIN--CIRC

Na aproximao CIRC realiza--se sempre uma interpolao referente ao espao. A orientao de incio sempre a orientao atingida no ponto de aproximao. Mesmo quando dois passos de aproximao so realizados com uma orientao referente trajetria, a nova orientao na zona de aproximao referente ao espao.

ProgHBExperte R4.1 08.01.02 pt

98 de 216

Programao de movimento (continuao)

3.5.4

Aproximao PTP -- trajetria


Existe a possibilidade de fazer um posicionamento aproximado nos passos de movimento PTP especficos do eixo e nos passos de movimento de trajetria cartesianos. O movimento PTP oferece as vantagens seguintes: G G sempre mais rpida do que o seu oposto cartesiano, sobretudo perto de posies singulares. Ao contrrio da interpolao cartesiana, permite uma mudana da configurao, p.ex., uma passagem da zona da base para a zona acima da cabea ou uma passagem pela posio estendida do manpulo.

A trajetria exata de um movimento PTP no pode ser definida antecipadamente, uma vez que o rob usa o caminho que ele acha mais rpido. A trajetria sofre alguma influncia por vrios fatores (como, por exemplo, a velocidade de deslocao). As vantagens da interpolao especfica dos eixos s podem ser aproveitadas ao mximo, desde que haja uma passagem contnua entre os passos especficos dos eixos e os passos cartesianos, visto que com uma paragem exata, uma grande parte do tempo ganho perdido novamente. A programao da aproximao PTP -- trajetria realiza--se totalmente em anlogo aos processos at aqui apresentados. A zona de aproximao definida da forma seguinte:

Aproximao PTP trajetria

PTPtrajetria modo habitual (ver 3.5.1). Em relao ao passo de movimento seguinte pode ser indicado,

Aproximao

O incio do posicionamento aproximado determinado pelo critrio PTP $APO.CPTP, de

explicitamente, um critrio de aproximao (C_DIS, C_ORI, C_VEL), que determina a entrada no passo CP. Isto realizado atravs da seqncia de instrues: PTP PONTO1 C_PTP C_DIS LIN PONTO2 Se faltar no passo PTP uma indicao para o critrio de aproximao pretendido no passo CP, para a definio da entrada no passo CP utilizado C_DIS, como valor por defeito. O contorno de um posicionamento aproximado PTP--trajetria ou trajetria--PTP um movimento PTP. Assim, uma definio precisa da trajetria do posicionamento exato no possvel. Exemplo: Se houver a necessidade de uma trajetria exata, p.ex., um movimento CP paralelamente mesa, preciso cuidado na aproximao ao sair desta trajetria com a combinao CP-PTP. O mesmo tambm se aplica a um movimento PTP--CP para chegar a essa trajetria. P3 Programa: ... LIN P1 LIN P2 C_DIS PTP P3 ... Aqui surge o problema de o movimento de aproximao no ser previsvel. Seria possvel uma coliso com a mesa. CP--PTP

P1

P2

Mesa
ProgHBExperte R4.1 08.01.02 pt

99 de 216

Programao perito Para contrariar o problema acima surgido e para evitar uma parada exata, dever ser inserido um outro movimento CP (P2_HILF). Programa: ... LIN P1 LIN P2 C_DIS LIN P2_HILF C_DIS PTP P3 ... P3 P2_HILF P1 P2

CP--CP--PTP

Mesa Aproximao trajetria PTP Aproximao trajetriaPTP Para o passo CP conta o critrio de aproximao programado, para o passo PTP recorre--se a $APO.CPTP. Uma seqncia de instrues poderia ter, ento, o aspeto seguinte: CIRC AUX PONTO1 C_VEL PTP PONTO2 A aproximao CP--PTP, no entanto, s poder ser garantida, desde que nenhum dos eixos do rob rode mais que 180_ no passo de trajetria e que o Status S no mude, uma vez que estas mudanas de posio no so previsveis aquando do planeamento do contorno da aproximao. Caso surja uma alterao da configurao no passo de trajetria antes da aproximao (alterao de S ou T), o passo de trajetria executado como um passo individual, at ao ponto de destino programado, sendo emitida a mensagem de erro confirmvel Aproximao CP/PTP no realizvel. Nesse caso, o utilizador dever dividir o passo CP em vrios passos individuais, de modo a que o passo individual antes da aproximao CP--PTP seja suficientemente curto para poder excluir uma alterao de S ou T em todos os eixos do rob. Mais informaes encontram--se no captulo [Programao de movimento], pargrafo [Instrues de movimento]. No exemplo seguinte foi programada uma aproximao PTP--LIN, uma aproximao LIN-CIRC e uma aproximao CIRC--PTP (ver Fig. 33):

ProgHBExperte R4.1 08.01.02 pt

100 de 216

3 DEF UEBERB_P ( )

Programao de movimento (continuao)

;--------- Seo de declarao --------EXT BAS (BAS_COMMAND :IN,REAL :IN ) DECL AXIS HOME ;---------- Inicializao --------BAS (#INITMOV,0 ) ;Inicializao de velocidades, ;Aceleraes, $BASE, $TOOL, etc. HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0} ;------------- Seo principal -----------PTP HOME ; Movimento SAK PTP {POS: X 1281.55,Y -250.02,Z 716,A 79.11,B 68.13,C 79.73,S 6,T 50} PTP {POS: X 1209.74,Y -153.44,Z 716,A 79.11,B 68.13,C 79.73,S 6,T 50} C_PTP C_ORI LIN {X 1037.81,Y -117.83,Z 716,A 79.11,B 68.13,C 79.73} $APO.CDIS=25 LIN {X 1183.15,Y -52.64,Z 716,A 79.11,B 68.13,C 79.73} C_DIS CIRC {POS: X 1134,Y 53.63,Z 716},{X 1019.21,Y 124.02,Z 716,A 79.11,B 68.12,C 79.73} CIRC {POS: X 1087.47,Y 218.67,Z 716},{X 1108.78,Y 267.16,Z 716,A 79.11,B 68.12,C 79.73} C_ORI PTP {POS: X 1019.31,Y 306.71,Z 716,A 80.8,B 68,C 81.74,S 6,T 59} PTP END HOME

CIRC (C_ORI) PTP CIRC

LIN (C_DIS)

LIN

PTP x (_PTP C_ORI)


x=1281,55 y=--250,02

x=1209,74 y=--153,44 x=1183,15 y=--52,64

x=1108,78 y=267,16 x=1087,47 y=218,67

x=1134 y=53,63

HP

HP

x=1019,31 y=306,71

x=1019,21 y=124,02

x=1037,81 y=--117,83

Fig. 33 Aproximao PTP--trajetria e aproximao trajetria--trajetria

ProgHBExperte R4.1 08.01.02 pt

101 de 216

Programao perito

3.5.5

Mudana da ferramenta durante a aproximao


Esta funcionalidade est disponvel em todas as combinaes de passos individuais PTP, LIN e CIRC. Tambm possvel mudar uma ferramenta virtualmente durante a aproximao. Ou seja, uma ferramenta programada duas vezes, mas de forma diferente. P.ex., numa pistola de aplicao a distncia em relao pea de 5 cm com TOOL1 e de 10 cm com TOOL2. Exemplo Neste exemplo pretende--se substituir, no incio do movimento de aproximao de P1 para P2, a ferramenta TOOL_DATA1[1] pela ferramenta TOOL_DATA[2]. $TOOL=TOOL_DATA[1] PTP P0_TOOL1; O ponto programado com a ferramenta TOOL_DATA[1] LIN P1_TOOL1 C_DIS; O ponto programado com a ferramenta TOOL_DATA[1] $TOOL=TOOL_DATA[2] LIN P2_TOOL2; O ponto programado com a ferramenta TOOL_DATA[2]

Flange TOOL1 Incio de aproximao1 P0_TOOL1 TOOL2 P1_TOOL1 TOOL1

TOOL2

P2_TOOL2 Fim de aproximao 2

P0_TOOL2

P1_TOOL2 Incio de aproximao2

Neste exemplo, a mudana da ferramenta realiza--se durante a aproximao. Isto , ao entrar no passo intermdio, a posio cartesiana salta de Incio de aproximao1 para Incio de aproximao2; os ngulos dos eixos e tambm a posio cartesiana e a velocidade da flange so guiados continuamente durante todo o movimento. O salto na posio TCP cartesiana reduzido apenas durante o movimento de Fim de aproximao2 para P2_TOOL2, de modo a que a trajetria no decorra na ligao linear no espao de P1_TOOL1 para P2_TOOL2, mas numa parte da trajetria programada com parada exata para TOOL2.

ProgHBExperte R4.1 08.01.02 pt

102 de 216

Programao de movimento (continuao)

3.6

A programao (teach) dos pontos


A integrao do processo Teach--In constitui uma caracterstica de qualidade essencial de qualquer linguagem de programao de robs.

!--carter

Em KRL programado simplesmente um carter ! cuja funo manter o espao para as coordenadas que so programadas posteriormente: PTP ! LIN ! C_DIS CIRC ! ,CA 135.0 As respetivas coordenadas podem ser copiadas para o programa, atravs da unidade de comando, premindo a softkey Modif. e depois a softkey TouchUp. As coordenadas atuais so escritas diretamente no cdigo SRC, na estrutura escolhida, p.ex.: PTP {POS:X 145.25,Y 42.46,Z 200.5,A -35.56,B 0.0,C 176.87,S 2,T 2} LIN {X -23.55,Y 0.0,Z 713.56,A 0.0,B 34.55,C -90.0} C_DIS CIRC {X -56.5,Y -34.5,Z 45.56,A 35.3,B 0.0,C 90.0},{X 3.5,Y 20.30, Z 45.56,A 0.0,B 0.0,C 0.0}, CA 135.0

Ao programar (teach) coordenadas cartesianas, sempre utilizado como sistema de referncia, o sistema de coordenadas da base ($BASE) vlido no momento no sistema. Por isso, antes de proceder programao, verifique se est definido o sistema de coordenadas da base utilizado para o movimento que depois dever ser executado.
A KR C... permite ainda uma outra variante de programao: Programe uma instruo de movimento com uma varivel que NO declarada na seo de declarao, p.ex.: PTP PONTO_INCIO Depois de ter premido as softkeys Modif e Var, surge o pedido de escolher a estrutura desejada. Depois de ter feito isso, declarada na respetiva lista de dados automaticamente uma varivel PONTO_INCIO que definida pelas coordenadas reais atuais, em relao ao $BASE atual, p.ex.: DECL FRAME PONTO_INCIO={X 15.2,Y 2.46,Z 20.5,A -35.5,B 9.0,C 16.87} Caso no tenha sido criada a lista de dados, emitida a respetiva mensagem de erro. Mais informaes acerca deste assunto Listas de dados encontram--se no captulo [Listas de dados]. Desde que tenha sido criada uma instruo de movimento atravs dos formulrios inline, os pontos programados com a ajuda dos formulrios podero tambm ser usados mais tarde numa instruo de movimento KRL. Estes pontos so depositados na respetiva lista de dados com o nome indicado no formulrio e com um X no incio (por isso, os nomes dos pontos nos formulrios inline admitem, no mximo, 11 em vez de 12 caratres). O ponto P7 no formulrio inline

poder ser ativado mais tarde como XP7 numa instruo KRL: LIN XP7 Tambm aqui preciso ter em ateno que em ambos os casos tem de ser utilizado o mesmo sistema de coordenadas da base, para que a deslocao se realize ao mesmo ponto!!
ProgHBExperte R4.1 08.01.02 pt

103 de 216

Programao perito

3.7

Parmetros de movimento
Esta funo permite alterar a manga de supervisionamento para a coliso. Desta forma, poder ser definida a sensibilidade do supervisionamento da coliso.

Depois da ativao desta instruo, aberto o formulrio inline seguinte:

Os valores determinados nos dados de mquina (C:\Programme\KRC\MaDa\Steu\$custom.dat) so utilizados como valores por defeito. Alternativamente, o utilizador pode determinar nveis de sensibilidades diferentes para os vrios movimentos e execues. Como alternativa, o prprio usurio que pode definir em quanto o torque nominal pode divergir do torque real. Em caso de ultrapassagem, o rob parado.

Exemplo No formulrio inline foram definidos para os eixos A1...A6 sempre 50%. Se o torque real divergir agora em mais de 50% do torque mximo do torque nominal calculado, o rob parado sendo emitida na janela de mensagens a respetiva mensagem.

MMax +50% de MMax Manga de supervisionamento Torque (real) verificado --50% de MMax 0 Torque nominal

O supervisionamento no oferece garantias contra as danificaes da ferramenta em caso de uma coliso, mas mantm os danos num nvel mais reduzido.

Mais pormenores acerca do supervisionamento de coliso encontram--se no Manual de programao na documentao [Configurao], no captulo [Configurar sistema perito].
ProgHBExperte R4.1 08.01.02 pt

104 de 216

Assistente KRL

Assistente KRL
Os pacotes tecnolgicos da KUKA incluem as funes mais importantes para uma utilizao habitual dos robs. As funes especiais que no esto includas nos pacotes de tecnologia KUKA podero ser realizadas pelo usurio, atravs da programao direta do sistema de rob, em KRL, ou seja, na KUKA Robot Language. Para facilitar a programao efetiva de funes especiais tambm aos utilizadores que no usam esta linguagem de programao com freqncia, foi integrado o Assistente KRL. O Assistente KRL oferece ao seu utilizador uma programao apoiada na sintaxe. Depois de ter selecionado o comando KRL pretendida, so emitidas indicaes em mscaras que acompanham esse comando. Os contedos dessas mscaras podem ser aceites ou alterados. Todos os contedos podero ser alterados novamente, num momento posterior.

Operao

Para a programao de uma instruo de movimento, ter de ativar um programa ou carreg--lo para o editor. Os pormenores acerca da elaborao e alterao de programas encontram--se no captulo [Generalidades acerca dos programas KRL], pargrafo [Criar e editar programas]. Esteja atento posio do cursor de edio. A linha de programa que elaborou introduzida como linha nova, por baixo do cursor.

Prima a menukey Instru e abra o menu. Selecione KRL--Assist.. A imagem mostrada agora a seguinte:

Aqui poder selecionar uma das instrues de movimento disponveis.


ProgHBExperte R4.1 08.01.02 pt

105 de 216

Programao perito

4.1

Indicaes da posio

O smbolo de espao ! O carter ! um smbolo de espao. Com a ajuda deste carter possvel elaborar um programa de movimento, sem conhecer a posio exata dos pontos que futuramente iro determinar o trajeto do rob. Ao ser executado mais tarde, o programa parado nesse local, e voc poder incluir o ponto, como descrito a seguir: Se aparecer, mais tarde, durante a execuo do programa, na janela de mensagens a informao Instruo no permitida, apague esta mensagem com a ajuda da softkey Confirmar.
Instuo no permitida

Desloque o sistema de rob para a posio pretendida. A pressione a softkey Touch Up. Veja a informao que se encontra agora na janela de mensagens. Na janela de mensagens aparece a confirmao da memorizao da posio.
TPEXPERT posio actual {POS: X 1620, YO, Z 1910, A 0, B 90, C 0, S 2, T 2} foi introduzida

Esta mensagem poder ser apagada, atravs da softkey Confirmar.

Indicao da posio por meio de variveis Em vez do smbolo de espao, tambm poder ser introduzido o nome vlido de uma varivel. Uma lista das palavras chave reservadas para KRL, as quais, portanto, no podero ser utilizadas, encontram--se no [KRL Reference Guide].

O sistema de rob dever ser colocado na posio pretendida, antes de ser programada essa funo. As informaes acerca do movimento manual do rob encontram--se no Manual de operao na documentao Operao, captulo [Deslocao manual do rob].

Se o sistema ainda no conhecer o nome que voc introduziu, aparece na linha de softkeys a softkey VAR. Atravs desta softkey ser formulado o pedido de atribuir ao nome um formato de dados. Depois de ter pressionado essa softkey alterada a linha de softkeys:

ProgHBExperte R4.1 08.01.02 pt

106 de 216

Assistente KRL (continuao)

A barra de softkeys est disponvel apenas quando alm do ficheiro SRC existir tambm uma lista de dados DAT. Depois de pressionar uma das softkeys E6POS, POS, FRAME, E6AXIS ou AXIS, memorizada a posio atual do sistema de rob no formato de dados selecionado. Esta memorizao confirmada por uma informao na janela de mensagens.
As coordenadas actuais foram transferidas para o ponto KUKA01

Esta mensagem poder ser novamente apagada atravs da softkey Confirmar.

Memorizao da posio atravs de Touch Up

Antes de poder memorizar posies num programa por meio de Touch Up, a unidade de comando ter de receber os dados relativos posio vlida do sistema de coordenadas de rob e os dados vlidos em relao ferramenta/pea. Para esse efeito, necessrio passar a seqncia INI na cabea do programa. O sistema de rob dever ser colocado na posio pretendida, antes de ser programada essa funo.

Se pressionar a softkey Touch Up, memorizada a posio atual do sistema de rob.

Na janela de mensagens aparece a confirmao da memorizao da posio.


TPEXPERT posio actual {POS: X 1620, YO, Z 1910, A 0, B 90, C 0, S 2, T 2} foi introduzida

Esta mensagem poder ser novamente apagada atravs da softkey Confirmar.

Indicao manual da posio Adicionalmente possibilidade de memorizar posies para as quais j foi feita a deslocao, os pontos no espao tambm podero ser indicados manualmente. Depois de abrir o formulrio inline, pressione a softkey { ? }. A definio da linha de softkeys alterada:

Depois de escolher um formato de dados e de pressionar a respetiva softkey, a posio atual introduzida no formulrio inline.
ProgHBExperte R4.1 08.01.02 pt

107 de 216

Programao perito

Com a ajuda das funes de edio, as indicaes referentes s posies podero ser agora alteradas, de acordo com aquilo que se pretende.

O operador geomtrico : Com a ajuda do operador geomtrico :, so interligadas as indicaes de posio dos tipos POS e FRAME. Este procedimento necessrio sempre que, p.ex., a origem de um sistema de coordenadas tenha de ser deslocada um valor de correo.

Mais informaes acerca deste assunto encontram--se no captulo [Variveis e declaraes] pargrafo [Manipulao de dados], em Operador geomtrico.

ProgHBExperte R4.1 08.01.02 pt

108 de 216

Assistente KRL (continuao)

4.2

Posicionamento [PTP]
O posicionamento do sistema de rob realiza--se pelo trajeto mais rpido entre dois pontos no espao de trabalho. Uma vez que o movimento comea e termina em todos os eixos ao mesmo tempo, torna--se necessrio sincronizar os eixos. Nesse procedimento, o trajeto percorrido pelo rob no previsvel com preciso. Ao utilizar esso comando, no possvel prever com preciso o trajeto exato percorrido pelo rob. Por isso, nas proximidades de obstculos existentes dentro do espao de trabalho, subsiste o perigo de coliso. Nas proximidades de obstculos, o comportamento de movimento do rob ter de ser ensaiado com uma velocidade reduzida!

Smbolo de espao para a indicao da posio Voltar

Expresses geomtricas para a indicao da posio, cartesiano Expresses geomtricas para a indicao da posio, referentes ao eixo Smbolo de espao para a indicao da posio Mudana entre PTP, LIN e CIRC Mudana entre PTP e PTP REL Voltar Aproximao entre dois movimentos PTP Aproximao entre PTP e LIN ou instrues CIRC. Critrios: distncia (DIS), velocidade (VEL), e orientao ferramenta/pea (ORI) Memorizar posio momentnea

ProgHBExperte R4.1 08.01.02 pt

109 de 216

Programao perito Smbolo de espao para a indicao da posio Voltar Expresses geomtricas para a indicao da posio, cartesiano Expresses geomtricas para a indicao da posio, referentes ao eixo

Mudana entre PTP_REL e PTP Voltar Aproximao entre dois movimentos PTP Aproximao entre PTP e LIN ou instrues CIRC. Critrios: distncia (DIS), velocidade (VEL), e orientao ferramenta/pea (ORI) Memorizar posio momentnea

ProgHBExperte R4.1 08.01.02 pt

110 de 216

Assistente KRL (continuao)

4.3

Movimento direito [LIN]


O posicionamento do sistema de rob realiza--se, neste caso, pelo trajeto mais curto entre dois pontos no espao de trabalho, numa reta. Os eixos do sistema de rob so sincronizados de forma a que a velocidade de trajetria se mantenha sempre igual nessa reta.

Smbolo de espao para a indicao da posio Voltar Expresses geomtricas para a indicao da posio, cartesiano Smbolo de espao para a indicao da posio Mudana entre LIN, CIRC e PTP Mudana entre LIN e LIN_REL

Voltar Aproximao entre PTP e LIN ou instrues CIRC. Critrios: distncia (DIS), velocidade (VEL), e orientao ferramenta/pea (ORI) Memorizar posio momentnea

ProgHBExperte R4.1 08.01.02 pt

111 de 216

Programao perito Smbolo de espao para a indicao da posio Voltar Expresses geomtricas para a indicao da posio, cartesiano

Mudana entre LIN_REL e LIN

Voltar Aproximao entre PTP e LIN ou instrues CIRC. Critrios: distncia (DIS), velocidade (VEL), e orientao ferramenta/pea (ORI)

Memorizar posio momentnea

ProgHBExperte R4.1 08.01.02 pt

112 de 216

Assistente KRL (continuao)

4.4

Movimento circular [CIRC]


O posicionamento do sistema de rob realiza--se, neste caso, ao longo de um trajeto circular no espao de trabalho, sendo definido pelo ponto de incio, ponto auxiliar e ponto de destino. Os eixos do sistema de rob so sincronizados de forma a que a velocidade de trajetria se mantenha sempre igual nesse trajeto circular.

Smbolo de espao para a indicao da posio Voltar Expresses geomtricas para a indicao da posio, cartesiano Smbolo de espao para a indicao da posio Mudana entre CIRC, PTP e LIN

Mudana entre CIRC e CIRC_REL Indicao do ngulo a descrever; prioridade mais elevada que a do ponto de destino Voltar Aproximao entre PTP e LIN ou instrues CIRC. Critrios: distncia (DIS), velocidade (VEL), e orientao ferramenta/pea (ORI) Memorizar posio momentnea

ProgHBExperte R4.1 08.01.02 pt

113 de 216

Programao perito Smbolo de espao para a indicao da posio Voltar Expresses geomtricas para a indicao da posio, cartesiano

Mudana entre CIRC e CIRC_REL

Indicao do ngulo a descrever; prioridade mais elevada que a do ponto de destino Voltar Aproximao entre PTP e LIN ou instrues CIRC. Critrios: distncia (DIS), velocidade (VEL), e orientao ferramenta/pea (ORI) Memorizar posio momentnea

ProgHBExperte R4.1 08.01.02 pt

114 de 216

Controle de execuo do programa

5
5.1
5.1.1

Controle de execuo do programa


Ramificaes de programa
Instruo de salto
A forma mais simples de ramificar um programa a instruo de salto incondicional. Esta executada, em qualquer dos casos, sem que haja uma reflexo sobre uma determinada condio. Com a instruo

GOTO

GOTO MARCA o ponteiro de programa salta para a posio MARCA. A posio tambm ter de ser definida com MARCA: algures no programa. A instruo de salto propriamente dita no permite concluses acerca da estrutura de programa criada desta forma. Por isso, o nome da marca de salto dever ser escolhido de forma a que a ao de salto provocada se torne mais compreensvel. P.ex., h uma diferena entre GOTO MARCA_1 ou GOTO STOP_COLA

Uma vez que a instruo GOTO pode dar origem, rapidamente, a programas no estruturados e confusos, e visto cada instruo GOTO poder ser substituda por uma instruo de loop, o GOTO dever ser utilizado o menos possvel.

Neste captulo encontra--se um exemplo para GOTO no pargrafo [Loops] em Loop de no rejeio.

ProgHBExperte R4.1 08.01.02 pt

115 de 216

Programao perito

5.1.2
IF

Ramificao condicional
A instruo estruturada IF permite a formulao de instrues condicionadas e a escolha entre duas alternativas. Na forma geral, a instruo IF condio de execuo THEN instrues ELSE instrues ENDIF

A condio de execuo uma expresso booleana. Se a condio de execuo estiver cumprida, executado o bloco THEN. No outro caso, o bloco ELSE poder ser executado ou poder prescindir--se do bloco ELSE. Prescindir significa uma sada imediata da ramificao. Qualquer nmero de instrues admissvel. As instrues podem tambm ser, sobretudo, instrues IF. Um encadeamento de blocos IF , portanto, possvel. Mas cada instruo IF ter de ser terminada com um ENDIF prprio. Na seqncia de programa seguinte, realiza--se a deslocao posio HOME, desde que a entrada 10 seja FALSE. Se a entrada 10 estiver ativada e o valor da varivel A for maior do que o da varivel B, ativada a sada 1 e realizada a deslocao ao ponto 1. Independentemente de A e B, com uma entrada 10 ativada, a varivel A sempre aumentada 1, e depois realizada a deslocao posio HOME. INT A,B IF $IN[10]==FALSE THEN PTP HOME ELSE IF A>B THEN $OUT[1]=TRUE LIN PONTO1 ENDIF A=A+1 PTP HOME ENDIF

ProgHBExperte R4.1 08.01.02 pt

116 de 216

Controle de execuo do programa (continuao)

5.1.3

Distribuidor
Quando h mais que 2 alternativas, estas podem ser programadas atravs de uma construo IF empilhada ou bastante mais simples atravs do distribuidor SWITCH.

SWITCH Identificao de bloco

A instruo SWITCH uma instruo de seleo para vrios ramos de programa. Um critrio de seleo definido por um determinado valor, antes da instruo SWITCH. Se este valor corresponder a uma identificao de bloco, executado o respetivo ramo de programa e o programa salta para a instruo ENDSWITCH, sem considerar as identificaes de bloco seguintes. Se nenhuma identificao de bloco corresponder ao critrio de seleo, executado um bloco DEFAULT, caso exista. Caso contrrio, continua--se com a instruo a seguir instruo ENDSWITCH. permitido atribuir a um ramo de programa vrias identificaes de bloco. Ao contrrio, no faz sentido utilizar uma identificao de bloco vrias vezes, uma vez que sempre considerado apenas o primeiro ramo de programa que tem a respetiva identificao. Os tipos de dados admissveis do critrio de seleo so INT, CHAR e ENUM. O tipo de dados do critrio de dados ter de corresponder ao da identificao de bloco. A instruo DEFAULT pode faltar, mas numa instruo SWITCH poder ser includa apenas uma vez. Com a instruo SWITCH podero ser ativados, p.ex., vrios subprogramas, em funo de um nmero de programa. O nmero de programa poder ser enviado, p.ex., pelo PLC s entradas digitais da KR C... (ver pargrafo 6.3 acerca da instruo SIGNAL). Assim, este encontra--se disposio como critrio de seleo, na forma de um valor Integer. DEF MAIN() SIGNAL PROG_NR $IN[1] TO $IN[4] ;Na varivel INT N_PROG o PLC introduz agora ;o nmero de programa pretendido SWITCH PROG_NR CASE 1 ;se N_PROG=1 PARTE_1() CASE 2 ;se N_PROG=2 PARTE_2() PARTE_2A() CASE 3,4,5 ;se N_PROG=3, 4 ou 5 $OUT[3]=TRUE PARTE_345() DEFAULT ;se N_PROG<>1,2,3,4 ou 5 ERROR_UP() ENDSWITCH END

O programa CELL possui uma estrutura semelhante (CELL.SRC) que normalmente existe na unidade de programa.

ProgHBExperte R4.1 08.01.02 pt

117 de 216

Programao perito

5.2

Loops
A estrutura base seguinte para o controle de execuo do programa so os loops, que contm a execuo repetida e uma ou vrias instrues, at surgir uma determinada condio. Os loops distinguem--se atravs da forma da condio e da posio da interrogao relativamente continuao.

Um salto proveniente do exterior para penetrar numa estrutura de loop no permitido e recusado pela unidade de comando (mensagem de erro).

5.2.1

Loop de contagem
Os loops de contagem so executados at uma varivel de contagem ultrapassar ou no atingir um determinado valor final, contando para baixo ou para cima. Para esse efeito, existe em KRL a instruo FOR. Com

FOR

FOR contador = start TO fim STEP largura de passos instrues ENDFOR poder ser programado, com bastante clareza, um determinado nmero de passagens. Como valor incio e valor fim do contador indique sempre uma expresso do tipo Integer. As expresses so avaliadas uma vez antes do incio do loop. A varivel INT contador (tem de ser declarada antes) predefinida com um valor inicial, e depois de cada loop aumentada ou reduzida pela largura de passo. A largura de passos no pode ser uma varivel e no pode ser zero. Se a largura de passos no estiver indicada, ela tem o valor padro 1. Para a largura de passos so tambm permitidos valores negativos. Para cada instruo FOR ter de haver uma instruo ENDFOR. Depois de terminar o ltimo loop, o programa continuado com a primeira instruo que se segue a ENDFOR. O valor do contador poder ser utilizado, tanto fora como dentro do loop. Dentro dos loops, o valor do contador serve, p.ex., como ndex atual para a edio de campos. Depois de sair do loop, o contador fica com o ltimo valor adotado (portanto fim+largura de passos). No exemplo seguinte, so definidas, inicialmente, as velocidades dos eixos $VEL_AXIS[1]$VEL_AXIS[6] com 100%. A seguir, os componentes de um campo bidimensional so inicializados com os valores calculados. O resultado representado em Tab. 20.

ProgHBExperte R4.1 08.01.02 pt

118 de 216

5 DEF INT INT FOR FOR_PROG() I,J CAMPO[10,6]

Controle de execuo do programa (continuao)

I=1 TO 6 $VEL_AXIS[I] = 100 ;todas as velocidades dos eixos em 100% ENDFOR FOR I=1 TO 9 STEP 2 FOR J=6 TO 1 STEP -1 CAMPO[I,J] = I*2 + J*J CAMPO[I+1,J] = I*2 + I*J ENDFOR ENDFOR ;I tem agora o valor 11, J o valor 0 END

Index 1 6 5 J = 4 3 2 1 38 27 18 11 6 3 2 8 7 6 5 4 3 3 42 31 22 15 10 7 4 24 21 18 15 12 9 5 46 35 26 19 14 11

I = 6 40 35 30 25 20 15 7 50 39 30 23 18 15 8 56 49 42 35 28 21 9 54 43 34 27 22 19 10 72 63 54 45 36 27

Tab. 20 Resultado do clculo apresentado no exemplo 5.2

ProgHBExperte R4.1 08.01.02 pt

119 de 216

Programao perito

5.2.2
WHILE

Loop de rejeio
O loop WHILE procura no incio da repetio uma condio de repetio. Este loop um loop de rejeio porque no percorrido vez nenhuma, se a condio de execuo no estiver j preenchida desde o incio. A sintaxe do loop WHILE : WHILE condio de execuo instrues ENDWHILE A condio de execuo uma expresso lgica que poder ser uma varivel booleana, uma ativao de funo booleana ou uma combinao lgica com um resultado booleano. O bloco de instrues executado, desde que a condio lgica tenha o valor TRUE, ou seja, desde que a condio de execuo esteja cumprida. Quando a condio lgica tem o valor FALSE, o programa continua com a instruo que se segue a ENDWHILE. Por isso, cada instruo WHILE ter de ser terminada com uma instruo ENDWHILE. A utilizao de WHILE explicada no exemplo 5.3. DEF WHILE_PR() INT X,W WHILE $IN[4] == TRUE ;percorrido enquanto estiver ativada a entrada 4 PTP PALETTE $OUT[2] = TRUE PTP POS_2 $OUT[2] = FALSE PTP HOME ENDWHILE X = 1 W = 1 WHILE W < 5; ;percorrido enquanto W mais pequeno que 5 X = X * W W = W + 1 ENDWHILE ;W agora 5 ;X agora 1S2S3S4 = 24 W = 100 WHILE W < 100 ;loop no percorrido, W mantm-se em 100 $OUT[15] = TRUE W = W + 1 ENDWHILE ;loop no percorrido, W mantm-se em 100 END

ProgHBExperte R4.1 08.01.02 pt

120 de 216

Controle de execuo do programa (continuao)

5.2.3
REPEAT

Loop de no rejeio
O oposto do loop WHILE o loop REPEAT. Com REPEAT procurada uma condio de cancelamento, apenas no fim do loop. Assim, os loops REPEAT so percorridos, em qualquer dos casos, uma vez, mesmo quando a condio de cancelamento j se verifica antes de iniciar o loop. REPEAT instrues UNTIL condio de cancelamento

A condio de cancelamento , analogamente condio de execuo do loop WHILE, uma expresso lgica que poder ser uma varivel booleana, uma ativao de funo booleana ou uma combinao lgica com um resultado booleano:

DEF REPEAT_P() INT W REPEAT PTP PALETTE $OUT[2]=TRUE PTP POS_2 $OUT[2]=FALSE PTP HOME UNTIL $IN[4] == TRUE X = 1 W = 1 REPEAT X = X * W W = W + 1 UNTIL W == 4 W = 100 REPEAT $OUT[15] = TRUE W = W + 1 UNTIL W > 100 END

;percorrido at ser ativada a entrada 4

;percorrido at W se tornar igual a 4 ;W agora 4 ;X agora 1S2S3S4 = 24

;percorrido at W ser maior que 100 ;percorrido pelo menos 1 vez, isto , ;W agora 101, a sada 15 est ativada

ProgHBExperte R4.1 08.01.02 pt

121 de 216

Programao perito WHILE e REPEAT so ferramentas muito poderosas que permitem uma programao estruturada, com a ajuda das quais poder ser substituda a maioria das instrues GOTO. A seqncia de instrues X = 0 G = 0 MARCA: X = X + G G = G + 1 IF G > 100 THEN GOTO PRONTO ENDIF GOTO MARCA: PRONTO: poder ser realizada com bastante menos complicaes atravs de REPEAT: X = 0 G = 0 REPEAT X = X + G G = G + 1 UNTIL G > 100

ProgHBExperte R4.1 08.01.02 pt

122 de 216

Controle de execuo do programa (continuao)

5.2.4
LOOP

Loop infinito
Com a instruo LOOP podem ser programados loops infinitos: LOOP instrues ENDLOOP

A execuo repetida do bloco de instrues s poder ser terminada atravs da instruo EXIT. Mais informaes acerca da instruo Exit encontram--se no subpargrafo seguinte.

5.2.5
EXIT

Terminar os loops antes do tempo


Qualquer loop poder ser terminado antes do tempo, atravs de uma instruo EXIT. Ao ativar o EXIT dentro de um bloco de execuo do loop, os percursos atravs dos loops so terminados de imediato, e o programa continua a seguir instruo de loop. Se as condies de cancelamento ou execuo forem escolhidas com percia, a instruo EXIT nos loops REPEAT ou WHILE geralmente no necessria. Para o loop infinito, EXIT representa, no entanto, a nica hiptese de terminar os loops. Veja o exemplo seguinte: DEF EXIT_PRO() PTP HOME LOOP PTP POS_1 LIN POS_2 IF $IN[1] == TRUE THEN EXIT entrada 1 ENDIF CIRC HELP_1,POS_3 PTP POS_4 ENDLOOP PTP HOME END

;Incio do loop infinito

;Cancelamento, quando for ativada a

;Fim do loop infinito

ProgHBExperte R4.1 08.01.02 pt

123 de 216

Programao perito

5.3
WAIT

Instrues de espera
Com a instruo WAIT poder ser conseguida a paragem do programa, at surgir uma determinada situao. H uma diferena entre a espera por um determinado acontecimento e a introduo de tempos de espera.

5.3.1

Espera por um acontecimento


Com a instruo WAIT FOR condio a execuo do programa poder ser parada, at surgir o acontecimento especificado com condio: G G Se a expresso lgica condio j estiver TRUE durante a ativao de WAIT, a execuo do programa no parada (mesmo assim, provocada uma paragem do avano). Se a condio for FALSE, a execuo do programa parada, at a expresso tomar o valor TRUE. ;espera at a entrada 14 ser TRUE ;espera at a varivel BIT_1 = FALSE

Exemplos: WAIT FOR $IN[14] WAIT FOR BIT_1 == FALSE

O compilador no reconhece uma situao em que a expresso nunca poder adotar o valor TRUE, devido a uma formulao errada. Nesse caso, a execuo do programa parada infinitamente, porque o interpretador espera por uma condio que nunca se poder verificar.

5.3.2

Tempos de espera
A instruo WAIT SEC utilizada para a programao de tempos de espera em segundos: WAIT SEC tempo Tempo uma expresso REAL aritmtica, atravs da qual indicado o nmero de segundos, durante os quais a execuo do programa dever ser interrompida. Se o valor for negativo, a espera no se realiza. Exemplos: WAIT SEC 17.542 WAIT SEC TEMPO*4+1

ProgHBExperte R4.1 08.01.02 pt

124 de 216

Controle de execuo do programa (continuao)

5.4
STOP

Paragem do programa
Caso queira interromper a execuo do programa e parar a edio, programe a instruo STOP A ltima instruo de movimento percorrida ainda executada por completo. A continuao da execuo do programa s possvel se for premida a tecla de arranque. Depois executada a instruo que se segue a STOP.

Exceo: Numa rotina Interrupt, a execuo do programa parada por uma instruo STOP, apenas depois da execuo completa do avano inicial (ver pargrafo 8 Interrupt).
Exceo: Com a programao de uma instruo BRAKE, a parada imediata.

ProgHBExperte R4.1 08.01.02 pt

125 de 216

Programao perito

5.5

Confirmao de mensagens
Com a instruo CONFIRM V_nmero poder confirmar as mensagens, guiado pelo programa. Depois de uma confirmao bem sucedida, a mensagem especificada com o nmero de gesto V_nmero deixou de existir. Depois de anular o sinal Stop, sempre emitida, p.ex., uma mensagem de confirmao. Antes de continuar, esta ter de ser confirmada. O seguinte subprograma detecta e confirma esta mensagem automaticamente, desde que tenha sido selecionado o modo de servio correto (no pode ser modo manual) e o estado Stop tenha sido realmente anulado (uma vez que um programa de rob no pode arrancar enquanto h uma mensagem de confirmao, o subprograma ter de decorrer num ficheiro Submit): DEF AUTO_QUIT() INT M DECL STOPMESS MLD ;tipo de estrutura predefinido para mensagens de erro IF $STOPMESS AND $EXT THEN ;verificar mensagem de stop e modo de servio M=MBX_REC($STOPMB_ID,MLD) ;ler estado atual em MLD IF M==0 THEN ;verificar se a confirmao permitida IF ((MLD.GRO==2) AND (MLD.STATE==1)) THEN CONFIRM MLD.CONFNO ;confirmao desta mensagem ENDIF ENDIF ENDIF END

CONFIRM

ProgHBExperte R4.1 08.01.02 pt

126 de 216

Instrues de entrada/sada

6
6.1

Instrues de entrada/sada
Generalidades
A KR C... conhece 1026 entradas e 1024 sadas. No armrio de comando padro KUKA, o utilizador tem sua disposio na ficha X11 (mdulo MFC) as entradas e sadas seguintes: Entradas Sadas Sadas 1 16 1 16 17 20 (carga mx. 100 mA; 100% de simultaneidade) (carga mx. 2 A; 100% de simultaneidade)

Opcionalmente, podero ser projetadas ainda mais entradas/sadas, p.ex., atravs de um bus de campo. As entradas podem ser lidas e as sadas podem ser lidas e escritas. So ativadas atravs das variveis de sistema $IN[Nr] ou $OUT[Nr]. As sadas no utilizadas podem ser usadas como marcas. As entradas/sadas do mdulo MFC podem ser desviadas no ficheiro IOSYS.INI para outras reas. A unidade de comando tipo KR C2 fornecida, normalmente, sem E/S. Por razes de segurana, todas as instrues de entrada/sada e acessos a variveis de sistema para a entrada/sada, provocam uma paragem do avano. Com uma instruo CONTINUE no incio, os acessos s variveis de sistema para a entrada/sada no provocam a parada do avano. Mais informaes encontram--se no captulo [Programao de movimento], pargrafo [Avano do computador].

ProgHBExperte R4.1 08.01.02 pt

127 de 216

Programao perito

6.2

Entradas/sadas binrias
Se as entradas/sadas forem ativadas individualmente, fala--se de entradas/sadas binrias. As sadas binrias s podem ter dois estados: Low ou High. Por isso, so tratadas como variveis do tipo BOOL. Assim, as sadas podem ser ativadas atravs das variveis de sistema $OUT[Nr] = TRUE $OUT[Nr] = FALSE sendo o seu reset feito com

O estado de uma entrada $IN[Nr] pode ser lido para uma varivel booleana ou utilizado como expresso booleana nas instrues de execuo do programa, Interrupt e trigger. Mais informaes encontram--se no captulo [Controle de execuo do programa], no captulo [Tratamento de interrupt], e no captulo [Aes de comutao referentes trajetria]. As seqncias de instruo BOOL COMUTADOR COMUTADOR = $IN[6] IF COMUTADOR == FALSE THEN ENDIF e IF $IN[6] == FALSE THEN ENDIF tm o mesmo significado. SINAL Na KR C... tambm possvel atribuir nomes s vrias entradas e sadas. A declarao de sinais destina--se a esse fim. Como todas as declaraes, tambm esta ter de encontrar-se na seo de declarao do programa. Assim, tambm se pode efetuar a programao seguinte: SINAL COMUTADOR $IN[6] IF COMUTADOR == FALSE THEN ENDIF A varivel comutador tambm declarada internamente como BOOL. As entradas e sadas de sistema tambm podem ser ativadas com $IN e $OUT. As sadas de sistema esto protegidas contra a escrita. A entrada 1025 sempre TRUE, a entrada 1026 sempre FALSE. Estas entradas so utilizadas nos dados de mquina, p.ex., como variveis Dummy. admissvel uma utilizao mltipla.

ProgHBExperte R4.1 08.01.02 pt

128 de 216

Instrues de entrada/sada (continuao)

O modo de ativar as entradas /sadas explicado no exemplo 6.1: DEF BINSIG ( ) ;--------- Seo de declarao --------EXT BAS (BAS_COMMAND:IN,REAL:IN ) DECL AXIS HOME SINAL CANCELAMENTO $IN[16] SINAL ESQUERDA $OUT[13] SINAL CENTRO $OUT[14] SINAL DIREITA $OUT[15] ;---------- Inicializao --------BAS (#INITMOV,0 ) ;inicializao de velocidades, ;aceleraes, $BASE, $TOOL, etc. HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0} ;------------- Seo principal -----------PTP HOME ;movimento SAK ESQUERDA=FALSE CENTRO=TRUE ;na posio central DIREITA=FALSE WHILE CANCELAMENTO==FALSE ;cancelamento, quando estiver ativada a entrada 16 IF $IN[1] AND NOT ESQUERDA THEN ;entrada 1 ativada PTP {A1 45} ESQUERDA=TRUE ;na posio esquerda CENTRO=FALSE DIREITA=FALSE ELSE IF $IN[2] AND NOT CENTRO THEN ;entrada 2 ativada PTP {A1 0} ESQUERDA=FALSE CENTRO=TRUE ;na posio central DIREITA=FALSE ELSE IF $IN[3] AND NOT DIREITA THEN ;entrada 3 ativada PTP {A1 -45} ESQUERDA=FALSE CENTRO=FALSE DIREITA=TRUE ;na posio direita ENDIF ENDIF ENDIF ENDWHILE PTP HOME END Atravs da ativao das entradas 1, 2 e 3, o rob poder ser levado a trs posies diferentes. A chegada do rob posio pretendida, indicada pela ativao das respetivas sadas 13, 14 ou 15. Uma vez que estas sadas indicam sempre a posio atual do rob, por meio da interrogao IF $IN[1] AND NOT $OUT[13] THEN ENDIF tambm se poder evitar que o rob tente de novo deslocar--se posio que ele j tem, cada vez que percorre o loop While. Assim, o rob s se desloca, desde que tenha sido ativada uma entrada (ou seja, que tenha sido dada a instruo para a deslocao posio pretendida) e desde que a respetiva sada no esteja ativada (ou seja, que o rob ainda no se encontre nessa posio) (ver Tab. 21). Ao ativar a entrada 16, o loop While, e por conseguinte, o programa, terminado.
ProgHBExperte R4.1 08.01.02 pt

129 de 216

Programao perito

$IN [Nr] AND NOT $OUT[Nr] $IN[Nr] TRUE FALSE

$OUT[Nr] TRUE FALSE FALSE FALSE TRUE FALSE

Tab. 21 Tabela de verdade para uma combinao lgica AND NOT

ProgHBExperte R4.1 08.01.02 pt

130 de 216

Instrues de entrada/sada (continuao)

6.3
6.3.1

Entradas/sadas digitais
Declarao do sinal
Atravs da declarao do sinal, no podem ser apenas atribudos nomes s vrias entradas/ sadas, mas tambm possvel juntar vrias entradas ou sadas binrias, sendo o resultado um sinal digital. Atravs da declarao SINAL AUS $OUT[10] TO $OUT[20] podem ser ativadas agora, p.ex., as sadas 10 a 20, por meio da varivel AUS declarada internamente como Integer, como uma palavra de 11 bits. A sada digital assim declarada pode ser descrita varivel AUS atravs de qualquer atribuio Integer possvel, p.ex.: AUS = 35 AUS = B100011 AUS = H23 G As entradas/sadas tm de ser indicadas na declarao de sinal, sem intervalo e por ordem crescente. G No mximo, podem ser juntadas 32 entradas ou sadas, de modo a resultar um sinal digital. G Uma sada pode aparecer em vrias declaraes de sinal. Ao juntar, desta forma, as sadas 13 a 15 do exemplo 6.1, de modo a resultar uma varivel POSITION, temos o seguinte programa modificado:

ProgHBExperte R4.1 08.01.02 pt

131 de 216

Programao perito DEF BINSIG_D ( )

;--------- Seo de declarao --------EXT BAS (BAS_COMMAND:IN,REAL:IN ) DECL AXIS HOME SINAL CANCELAMENTO $IN[16] SINAL POSITION $OUT[13] TO $OUT[15] ;---------- Inicializao --------BAS (#INITMOV,0 ) ;inicializao de velocidades, ;aceleraes, $BASE, $TOOL, etc. HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0} ;------------- Seo principal -----------PTP HOME ;movimento SAK POSITION=B010 WHILE CANCELAMENTO==FALSE ativada a entrada 16 ;na posio central ;cancelamento, quando estiver ;entrada 1 ativada ;na posio esquer-

da

IF $IN[1] AND (POSITION<>B001) THEN PTP {A1 45} POSITION=B001

ELSE IF $IN[2] AND (POSITION<>B010) THEN ;entrada 2 ativada PTP {A1 0} POSITION=B010 ;na posio central ELSE IF $IN[3] AND (POSITION<>B100) THEN;entrada 3 ativada PTP {A1 -45} POSITION=B100 ;na posio direita ENDIF ENDIF ENDIF ENDWHILE PTP END HOME

Mais informaes encontram--se neste captulo, no pargrafo [Entradas digitais predefinidas].

ProgHBExperte R4.1 08.01.02 pt

132 de 216

Instrues de entrada/sada (continuao)

6.3.2

Definir sadas no ponto de destino


Logo que o rob tenha atingido o ponto de destino de um passo de movimento, podem ser definidas at 8 sadas referentes ao avano principal e sem parada do avano inicial. Para isso usada a instruo seguinte: $OUT_C[Sada] = Expresso booleana

Argumento
Sada Expresso booleana

Tipo de dados
INT BOOL

Significado
Expresso aritmtica que determina o nmero da sada a ativar. Esto disponveis as sadas 1 ... 1024. Expresso lgica que indica se a respetiva sada definida com TRUE ou com FALSE.

Normalmente, podem ser utilizadas as sadas 1 ... 1024. Tendo sido ativada a varivel $SET_IO_SIZE esto disponveis 2048 ou 4096 sadas.

No momento em que o ponteiro de avano inicial atinge a instruo, interpretada, em primeiro lugar, a expresso booleana. A respetiva expresso transformada numa constante. Quando for atingido o ponteiro de avano principal, so, ento, ativadas as sadas interpretadas.

Uma atribuio poderia ter, por exemplo, o aspecto seguinte: $OUT_C[TOOL[ex]+WELD[y]] = ((NOT(x==100)) AND (SAFE==TRUE)) Depois da interpretao (ponteiro de avano inicial), a instruo interna tem, por exemplo, o aspecto seguinte: $OUT_C[5] = TRUE Assim, ao ser atingido o ponto de destino (ponteiro de avano principal), a sada 5 definida com o valor TRUE.

No momento em que o ponteiro de avano principal atinge o ponto de destino, a sada definida com o respetivo valor booleano que estava vlido no momento da interpretao, mesmo no caso de este valor entretanto ter sofrido uma modificao. Ao contrrio de $OUT[x], uma instruo $OUT_C[x] no produz qualquer efeito sobre o avano inicial do computador. $OUT_C[x] s pode ser escrito, para a leitura de uma sada deve ser utilizado $OUT[x]. A seleo de um passo apaga todas as atribuies $OUT_C[x] interpretadas mas ainda no ativadas, o que se verifica aquando da seleo de um passo e do reset de um programa.

ProgHBExperte R4.1 08.01.02 pt

133 de 216

Programao perito Exemplo PTP, LIN e CIRC Com todas as instrues PTP, LIN e CIRC absolutas e relativas, a sada ativada diretamente depois da respetiva instruo de movimento:

PTP P1 $OUT_C[10]=TRUE $OUT_C[11]=FALSE $OUT_C[12]=TRUE LIN P2


Se no ponto P1 se verificar uma parada exata, so ativadas, nesse momento, as sadas 10 ... 12, de acordo com as suas definies. Se, ao contrrio, a deslocao ao ponto P1 se realizar com aproximao, as sadas 10 ... 12 so ativadas apenas quando for atingido o centro da rea de aproximao. Se a aproximao no for possvel, so ativadas as sadas no ponto P1. Nos modos de execuo do programa Single--Step (MSTEP) e I--Step (ISTEP) realiza-se em primeiro lugar no ponto P1 um stop do avano inicial, as sadas no so ativadas neste local. S depois de largar a tecla Iniciar e de apert--la novamente, so ativadas as sadas definidas. Um movimento para estabelecer a coincidncia de passos tambm provoca um stop do avano inicial. S depois de o programa ser iniciado novamente, as sadas so ativadas de acordo com a sua definio. Comparao com trigger Tanto com $OUT_C[x] como tambm com trigger as sadas podem ser ativadas com referncia ao avano principal e sem um stop do avano inicial.

$OUT_C[x]: PTP P1 C_PTP $OUT_C[5]=TRUE PTP P2


Trigger: TRIGGER WHEN DISTANCE=1 DELAY=0 DO $OUT[5]=TRUE PTP P1 C_PTP PTP P2 Em ambos os casos ativada a sada 5, logo que seja atingido o centro da rea de aproximao de P1. Ponteiro de avano principal Se o ponteiro de avano principal for idntico ao ponteiro de avano inicial, isto , se o rob atualmente no executar qualquer passo de movimento, a atribuio realiza--se logo que seja atingida a instruo $OUT_C[].

PTP P1 WAIT FOR $IN[22]==TRUE $OUT_C[12]=FALSE PTP P2

No exemplo provocado na linha WAIT... um stop do avano inicial, enquanto a entrada 22 for FALSE. Logo que a entrada 22 seja definida com TRUE, ativada a sada 12.
ProgHBExperte R4.1 08.01.02 pt

134 de 216

Instrues de entrada/sada (continuao)

Sinal Uma sada tambm pode ser ativada atravs de uma declarao de sinal de 1 bit.

SIGNAL Test $OUT_C[7] PTP P1 Test = TRUE PTP P2


No exemplo, a sada 7 definida com TRUE, logo que o ponteiro de avano principal tenha atingido o passo de movimento P1.

Nas condies seguintes $OUT_C[x] no permitido: G G G G G Dentro de programas interrupt ou declaraes interrupt Num programa submit Relacionado com $CYCFLAG[x] Dentro de uma instruo trigger Em conexo com a correo de variveis

ProgHBExperte R4.1 08.01.02 pt

135 de 216

Programao perito

6.4
PULSE

Sadas de impulso
A instruo PULSE permite ativar as vrias sadas, durante um determinado tempo, ou fazer o seu reset. A instruo PULSE($OUT[4],TRUE,0.7) ativa, p.ex., a sada 4 durante um tempo de 0,7 segundos, mantendo--a no nvel High. O impulso poder decorrer em paralelo ao programa do rob (nesse caso, o interpretador no parado). No lugar da indicao direta da sada com $OUT[Nr] tambm poder haver uma varivel de sinal. Mais informaes encontram--se neste captulo, no pargrafo [Entradas/sadas binrias]. Os tempos de impulso realizveis situam--se entre 0.012 e 231 segundos. A grelha de 0,1 segundos. A unidade de comando arredonda todos os valores para dcimos. G G G G G G No mximo, podem ser programadas 16 sadas de impulso em simultneo. Podem ser programados impulsos High, mas tambm impulsos Low. Com RESET programa ou Desselecionar programa, o impulso cancelado. Um impulso ativado pode ser influenciado por um Interrupt. As sadas de impulso tambm podem ser programadas a nvel da unidade de comando. A instruo PULSE d origem a uma parada do avano inicial. Apenas na instruo TRIGGER, executada, acompanhando o movimento.

Um impulso NO interrompido G G G com uma PARADA DE EMERGNCIA, parada de operao ou parada devido a um erro, ao atingir o fim do programa (instruo FIM), ao soltar a tecla de arranque, desde que o impulso tenha sido programado antes da primeira instruo de movimento e o rob ainda no tenha estabelecido a coincidncia de passos.

ProgHBExperte R4.1 08.01.02 pt

136 de 216

Instrues de entrada/sada (continuao)

No programa seguinte encontram--se alguns exemplos para a aplicao da instruo PULSE: DEF PULSIG ( )

;--------- Seo de declarao --------EXT BAS (BAS_COMMAND :IN,REAL :IN ) DECL AXIS HOME INT I SINAL OTTO $OUT[13] ;---------- Inicializao --------BAS (#INITMOV,0 ) ;inicializao de velocidades, ;aceleraes, $BASE, $TOOL, etc. HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0} FOR I=1 TO 16 $OUT[I]=FALSE ENDFOR ;colocar todas as sadas em LOW

;------------- Seo principal -----------PULSE ($OUT[1],TRUE,2.1) ;impulso vem diretamente durante 2.1s PTP HOME ;movimento SAK OTTO=TRUE PTP {A3 45,A5 30} PULSE (OTTO,FALSE,1.7) WAIT SEC 2 FOR I=1 TO 4 PULSE ($OUT[I],TRUE,1) WAIT SEC 1 ENDFOR ;sucessivamente as sadas 1-4 ;durante 1s em High ;colocar sada 13 em TRUE ;impulso LOW durante 1.7s na sada 13 ;impulso s vem depois do movimento

;aplicao de um impulso referente trajetria TRIGGER WHEN DISTANCE=0 DELAY=50 DO PULSE ($OUT[8],TRUE,1.8) LIN {X 1391,Y -319,Z 1138,A -33,B -28,C -157} PTP HOME CONTINUE PULSE ($OUT[15],TRUE,3) PULSE ($OUT[16],TRUE,3) END ;impedir paragem do avano para ;a sada 15 ;impulso vem diretamente (em avano) ;na sada 16 ;impulso s vem depois do movimento ;HOME e continua depois de END

Verifique nestes exemplos, exatamente, a partir de quando os impulsos programados esto ativados nas sadas: em princpio, a instruo PULSE provoca sempre a parada do avano do computador. Portanto, o impulso ativado apenas depois de terminar o movimento. Tem dois modos de impedir a parada do avano:

G Programao de uma instruo CONTINUE, imediatamente antes da instruo PULSE G Utilizao da instruo PULSE numa instruo TRIGGER (ao de comutao referente
trajetria) Mais informaes encontram--se no captulo [Programao de movimentos], pargrafo [Avano do computador] (CONTINUE) e captulo [Trigger -- aes de comutao referentes trajetria] (TRIGGER).
ProgHBExperte R4.1 08.01.02 pt

137 de 216

Programao perito

6.5

Entradas/sadas analgicas
Alm das entradas/sadas binrias, a KR C... conhece tambm entradas/sadas analgicas. Atravs de sistemas de bus opcionais, a KR C... pe disposio 8 entradas analgicas e 16 sadas, tambm analgicas. As sadas podem ser lidas ou escritas atravs das variveis de sistema $ANOUT[1] $ANOUT,[16] as entradas s podem ser lidas com a ajuda das variveis $ANIN[1] $ANIN[8].

ANIN ANOUT

As entradas e sadas analgicas podem ser ativadas tanto esttica, como dinamicamente, isto , atravs de uma interrogao constante no ciclo de interpolao (atualmente 12 ms). Enquanto a leitura e escrita esttica se realizam, como nos sinais binrios, atravs de atribuies de valores simples, para a edio cclica so utilizadas as instrues especiais ANIN e ANOUT.

6.5.1

Sadas analgicas
Os valores de sada para as 16 sadas analgicas da KR C... situam--se entre --1.0 +1.0 e esto normalizados, tendo em considerao a tenso de sada de 10.0 V. Caso o valor de sada ultrapasse os limites de 1.0, o valor cortado. Para ativar um canal analgico, atribudo respetiva varivel $ANOUT simplesmente um valor: $ANOUT[2] = 0.5 ou REAL V_COLA V_COLA = -0.9 $ANOUT[15] = V_COLA ;canal 2 analgico ativado com +5V

;o canal analgico 15 ativado com 9V

Estas atribuies so estticas, uma vez que o valor do canal ativado s alterado quando for atribudo respetiva varivel de sistema $ANOUT[Nr] explicitamente um valor novo. No entanto, muitas vezes til que uma determinada sada analgica seja calculada continuamente de novo durante a execuo do programa, dentro de um tempo de ciclo definido. Esta sada analgica realiza--se atravs da instruo ANOUT. Atravs da instruo ANOUT ON ARAME = 0.8 * V_ARAME poder ser alterada a sada analgica especificada atravs da varivel de sinal ARAME, p.ex., atravs de uma atribuio de valor simples varivel V_ARAME. A tenso na respetiva sada segue, assim, a varivel V_ARAME. A varivel ARAME ter de ser declarada, naturalmente, atravs da declarao SINAL, p.ex.: SINAL ARAME $ANOUT[2] Com ANOUT OFF ARAME a sada analgica novamente terminada. A expresso ciclicamente atualizada que ter de ser indicada para o clculo do valor de sada analgico, no poder ultrapassar uma determinada complexidade. Assim, a sintaxe permitida limitada, sendo orientada pela tecnologia. A sintaxe completa para iniciar a sada analgica cclica ANOUT ON ANOUT ON nome de sinal = fator * elemento regulador DELAY=t MINIMUM=U1 MAXIMUM=U2 e para terminar a sada analgica cclica ANOUT OFF ANOUT OFF nome de sinal
ProgHBExperte R4.1 08.01.02 pt

offset

138 de 216

Instrues de entrada/sada (continuao)

O significado dos vrios argumentos consta de Tab. 22.

Argumento
Nome de sinal Fator Elemento regulador Offset

Tipo de dados
REAL

Significado
Varivel de sinal que especifica a sada analgica (ter de ser declarada com SINAL). No admissvel uma indicao direta de $ANOUT[Nr]. Fator qualquer que pode ser uma varivel, o nome de um sinal ou uma constante Atravs do elemento regulador influenciada a sada analgica. Pode ser uma varivel ou o nome de um sinal Opcionalmente, poder ser programado um offset em relao ao elemento regulador. O offset ter de ser uma constante. Com a palavra chave DELAY e uma indicao de tempo positiva ou negativa, em segundos, poder ser emitido o sinal de sada ciclicamente calculado com atraso (+) ou antes do tempo (--). A palavra chave MINIMUM determina a tenso mnima que se verifica na sada. Os valores admissveis situam--se entre 1.0 ... 1.0 (o que corresponde a 10V ... +10V). O valor mnimo deve ser inferior ao valor mximo, caso sejam utilizados os dois valores.

REAL REAL REAL

REAL

U1

REAL

Como valor admissvel tambm uma varivel, um componente estrutural ou um elemento array.
U2 REAL A palavra chave MAXIMUM determina a tenso mxima que se verifica na sada. Os valores admissveis situam--se entre 1.0 ... 1.0 ( o que corresponde a 10V ... +10V). O valor mximo deve ser maior que o valor mnimo, caso sejam utilizados os dois valores.

Como valor admissvel tambm uma varivel, um componente estrutural ou um elemento array.
Tab. 22 Argumentos na instruo ANOUT

Os parmetros opcionais Mnimo e Mximo no esto disponveis nos formulrios inline, uma vez que estes so utilizados, exclusivamente, para a tecnologia Colar.

ProgHBExperte R4.1 08.01.02 pt

139 de 216

Programao perito Neste exemplo foi definido tanto um valor mnimo como um valor mximo. As respetivas entradas so MNIMO=0.3 e MXIMO=0.95.

10 000 Tenso analgica [mV] 8 000 6 000 4 000 2 000 UPadro [mV] 0 100 200 300 400 UArame [mV]

Mximo

Mnimo

500

Velocidade de trajetria [mm/s] Fig. 34 Tenso analgica em funo da velocidade de trajetria

ProgHBExperte R4.1 08.01.02 pt

140 de 216

Instrues de entrada/sada (continuao)

6.5.2

Entradas analgicas
As 8 entradas analgicas da KR C... podem ser lidas atravs das variveis $ANIN[1] a $ANIN[8], por meio de uma atribuio de valor simples a uma varivel REAL: REAL PARTE PARTE = $ANIN[3] ou SINAL SENSOR3 $ANIN[3] REAL PARTE PARTE = SENSOR3 Os valores em $ANIN[Nr] movem--se entre +1.0 e --1.0 e representam uma tenso de entrada de +10V a --10V.

ANIN

Para a leitura cclica das entradas analgicas utilizada a instruo ANIN. Esta instruo permite a leitura simultnea de 3 entradas analgicas. Por isso, a leitura realiza--se no ciclo de interpolao. Atravs da seqncia de instrues SINAL SENSOR3 $ANIN[3] REAL PARTE ANIN ON PARTE = 1 * SENSOR3 poder ler ento ciclicamente a entrada analgica 3, e a instruo ANIN OFF SENSOR3 permite terminar a leitura. preciso ter em ateno que apenas 3 instrues ANIN ON podem estar ativas em simultneo. permitido usar nas duas instrues o mesmo interface analgico ou declarar a mesma varivel. A sintaxe completa para a leitura cclica de uma entrada analgica :

ANIN ON

ANIN ON valor = fator * nome de sinal offset O fim do controlo cclico iniciado com

ANIN OFF

ANIN OFF nome de sinal O significado dos argumentos consta em Tab. 23.

Argumento
Valor

Tipo de dados
REAL

Significado
O valor pode ser uma varivel ou o nome de um sinal (de sada). Em valor depositado o resultado da leitura cclica. Varivel de sinal que especifica a entrada analgica (ter de estar declarada com SINAL). No admissvel uma indicao direta de $ANIN[Nr]. Fator qualquer que pode ser uma varivel, o nome de um sinal ou uma constante. Opcionalmente, poder ser programado um offset. O offset pode ser uma constante, uma varivel ou o nome de um sinal.

Nome de sinal Fator Offset

REAL

REAL REAL

Tab. 23 Argumentos na instruo ANIN


ProgHBExperte R4.1 08.01.02 pt

141 de 216

Programao perito No exemplo seguinte so ilustradas as instrues para a entrada e sada analgica. Com a ajuda da varivel de sistema $TECHIN[1] e de um sensor de seguimento da trajetria ligado a uma entrada analgica, poder ser realizada, p.ex., uma correo da trajetria durante o movimento. A varivel $VEL_ACT que contm sempre a velocidade de trajetria atual, pode ser utilizada para uma sada analgica proporcional velocidade, desde que sejam tambm considerados os respetivos fatores, p.ex., para o controle da quantidade de cola aplicada. DEF ANSIG ( )

;--------- Seo de declarao --------EXT BAS (BAS_COMMAND :IN,REAL :IN ) DECL AXIS HOME INT I SINAL COLA $ANOUT[1] ;abertura do injetor da cola SINAL CORREO $ANIN[5] ;sensor de seguimento da trajetria ;---------- Inicializao --------BAS (#INITMOV,0 ) ;inicializao de velocidades, ;aceleraes, $BASE, $TOOL, etc. HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0} FOR I=1 TO 16 $ANOUT[I]=0 ENDFOR ;ativar todas as sadas com 0V

;------------- Seo principal -----------PTP HOME ;movimento SAK $ANOUT[3] = 0.7 IF $ANIN[1] >= 0 THEN entrada analgica 1 PTP POS1 ;sada analgica 3 com 7V ;processo de colagem apenas quando a ;tem uma tenso positiva

;correo de trajetria conforme o sinal do sensor, com a ajuda da ;varivel de sistema $TECHIN ANIN ON $TECHIN[1] = 1 * CORREO + 0.1 ;sada analgica proporcional velocidade; varivel de sistema $VEL_ACT contm a velocidade de trajetria atual ANOUT ON COLA = 0.5 * $VEL_ACT + 0.2 DELAY = -0.12 LIN POS2 CIRC HILFSPOS,POS3 ANOUT OFF COLA ANIN OFF CORREO PTP POS4 ENDIF PTP HOME END

ProgHBExperte R4.1 08.01.02 pt

142 de 216

Instrues de entrada/sada (continuao)

6.6

Entradas digitais predefinidas


A unidade de comando dispe de 6 entradas digitais que podem ser lidas atravs das variveis de sistema $DIGIN1$DIGIN6. As entradas constituem parte das entradas de utilizador normais. Podem ter um comprimento de 32 bits e uma sada Strobe correspondente. A projetao das entradas digitais realiza--se nos dados de mquina: /mada/ steu/$maschine.dat. Atravs da declarao de sinal determinada, em primeiro lugar, a zona e a dimenso da entrada digital: SINAL $DIGIN3 $IN[1000] TO $IN[1011] Atravs das outras variveis de sistema $DIGIN1CODE$DIGIN6CODE, $STROBE1$STROBE6 e $STROBE1LEV$STROBE6LEV so definidas as interpretaes dos sinais, as sadas Strobe correspondentes e o tipo do sinal Strobe: DECL DIGINCODE $DIGIN3CODE = #UNSIGNED ;sem sinal SINAL $STROBE3 $OUT[1000] BOOL $STROBE3LEV = TRUE ;determinar sada Strobe ;Strobe um impulso High

Uma sada Strobe uma sada da KR C... com um determinado impulso que congela o sinal de um equipamento externo (p.ex., codificador rotativo) para a leitura: Enquanto vrias entradas digitais podem usar a mesma entrada, os sinais Strobe NO podem descrever a mesma sada. A gama de valores de $DIGIN1$DIGIN6 depende do comprimento de bit definido, bem como da interpretao dos sinais (#SIGNED ou #UNSIGNED): 12 bits com sinais (#SIGNED) 12 bits sem sinal (#UNSIGNED) Gama de valores: Gama de valores: --20482047 04095

As entradas digitais podem ser lidas estaticamente, com a ajuda de uma atribuio de valor habitual: INT NMERO NMERO = $DIGIN2 DIGIN ou ento ciclicamente, por meio de uma instruo DIGIN: INT NMERO DIGIN ON NMERO = FATOR * $DIGIN2 + OFFSET DIGIN OFF $DIGIN2 Simultaneamente so admissveis 6 instrues DIGIN ON. Na instruo DIGIN ON podem tambm ser utilizados sinais de entrada analgicos (p.ex., como FATOR). A sintaxe totalmente anloga instruo ANIN ON: DIGIN ON DIGIN OFF DIGIN ON valor = fator * nome de sinal offset DIGIN OFF nome de sinal O significado dos vrios argumentos encontra--se descrito em Tab. 24.

ProgHBExperte R4.1 08.01.02 pt

143 de 216

Programao perito

Argumento
Valor

Tipo de dados
REAL

Significado
O valor pode ser uma varivel ou o nome de um sinal (de sada). Em valor depositado o resultado da leitura cclica. Varivel de sinal que especifica a entrada digital. So apenas admissveis $DIGIN1$DIGIN6. Fator qualquer que pode ser uma varivel, o nome de um sinal ou uma constante. Opcionalmente, poder ser programado um offset. O offset pode ser uma constante, uma varivel ou o nome de um sinal.

Nome de sinal Fator Offset

REAL REAL REAL

Tab. 24 Argumentos na instruo DIGIN

ProgHBExperte R4.1 08.01.02 pt

144 de 216

Subprogramas e funes

Subprogramas e funes
Para reduzir o trabalho de escrita, quando se trata de sees de programa idnticas que se repetem com freqncia, e tambm para reduzir a extenso do programa, foram introduzidos subprogramas e funes como construes de linguagem. O efeito dos subprogramas e das funes que se faz sentir em programas mais extensos considervel, uma vez que proporcionam a possibilidade de utilizar os algoritmos uma vez escritos em outros programas e, sobretudo, a utilizao dos subprogramas na estruturao do programa. Esta estruturao poder dar origem a uma construo hierrquica, de modo a que os vrios subprogramas, ativados por um programa superior, podem executar tarefas parciais completas e fornecer os resultados.

7.1

Declarao
Um subprograma ou uma funo constituem uma seo separada do programa, que dispe de um cabealho de programa, uma seo de declarao e uma seo de instruo e que poder ser ativada a partir de um local qualquer do programa principal. Depois da execuo do subprograma ou da funo realiza--se o regresso instruo que se encontra a seguir ativao do subprograma (ver Fig. 35). A partir de um subprograma ou de uma funo podem ser ativados outros subprogramas e/ou funes. 20 programas constituem o mximo admissvel para a ativao sucessiva a partir de outros programas. Se este nmero for ultrapassado, emitida a mensagem de erro SOBRECARGA DE PROGRAMA. A ativao recursiva de subprogramas ou funes permitida. Isto significa que um subprograma ou uma funo podem ativar--se novamente a si prprios.

DEF

Tal como os programas principais, so declarados tambm todos os subprogramas atravs da declarao DEF mais o nome, terminando com END, p.ex.: DEF SUBPR() END

PROG.SRC DEF PROG() SUBPR() SUBPR() END ;programa principal ;ativao do subprograma ;ativao do subprograma ;fim do programa principal

DEF SUBPR() END

;subprograma ;fim do subprograma

Fig. 35 Ativao do subprograma e regresso


ProgHBExperte R4.1 08.01.02 pt

145 de 216

Programao perito Uma funo uma espcie de subprograma, mas o nome do programa , simultaneamente, uma varivel de um determinado tipo de dados. Assim, o resultado da funo poder ser transferido para uma varivel, atravs de uma simples atribuio do valor. Na declarao das funes atravs da palavra chave especial DEFFCT, ter de ser indicada, alm do nome da funo, tambm o tipo de dados da funo. Uma funo terminada com ENDFCT. Uma vez que uma funo pretende transferir um valor, este valor ter de ser especificado atravs da instruo RETURN, antes da instruo ENDFCT. Exemplo: DEFFCT INT FUNO() RETURN(X) ENDFCT local H uma diferena substancial entre subprogramas ou funes locais e globais. Nos subprogramas ou funes locais, o programa principal e os subprogramas/funes encontram--se no mesmo ficheiro SRC. O ficheiro tem o nome do programa principal. No texto de origem, o programa principal encontra--se sempre em primeiro lugar, enquanto os subprogramas e funes se encontram a seguir ao programa principal, apresentando qualquer seqncia e qualquer nmero. Os subprogramas/funes locais s podem ser ativados dentro do ficheiro SRC no qual foram programados. Caso as ativaes de subprogramas/funes devam ser possveis tambm a partir de outros programas, estes tero de ser globais, isto , memorizados num ficheiro SRC prprio. Assim, todos os programas ativados por um outro programa (programa principal, subprograma ou funo) so subprogramas. G Nos subprogramas locais e nas funes so conhecidas todas as variveis declaradas na lista de dados do programa principal. As variveis que foram declaradas no programa principal (ficheiro SRC) so as chamadas variveis Runtime que s podero ser usadas no programa principal. Uma tentativa de usar estas variveis no subprograma provoca a respetiva mensagem de erro. Nos subprogramas ou funes globais no so conhecidas as variveis declaradas no programa principal. No programa principal no so conhecidas as variveis declaradas nos subprogramas ou funes. Um programa principal no tem acesso a subprogramas ou funes locais de um outro programa principal. O nome de subprogramas/funes locais pode ter um comprimento mximo de 24 caratres. Nos subprogramas/funes globais, o nome pode ter um comprimento mximo de 20 caratres (devido s extenses do ficheiro).

DEFFCT

global

G G G

Para que o programa principal conhea o subprograma global, apenas necessrio ativar este dentro do programa principal (por exemplo: PROG_2()). Com a indicao da lista de parmetros (ver 7.2), tambm definido claramente o espao de memria necessrio. Exemplos: PROG_3() FUNCTION(REAL:IN) Na Fig. 36 representada a diferena entre subprogramas/funes locais e globais: PROG.SRC, PROG_1.SRC e PROG_3.SRC so programas principais autnomos, enquanto PROG_2FUN.SRC uma funo. A ativao de um programa (por exemplo PROG_1.SRC) a partir de PROG.SRC, faz com que este se torne automaticamente um subprograma global. LOCAL() um subprograma local e LOCALFUN() uma funo local de PROG.SRC.

ProgHBExperte R4.1 08.01.02 pt

146 de 216

Subprogramas e funes (continuao)

PROG.SRC DEF PROG() EXT PROG_1() EXT PROG_3() A=A*LOCALFUN() LOCAL() PROG_3() PROG_1() END DEF LOCAL() EXTFCT PROG_2FUN() PROG_2FUN() G=PROG_2FUN() H=5+LOCALFUN() END DEFFCT INT LOCALFUN() INT INTVAR RETURN INTVAR ENDFCT

PROG_1.SRC DEF PROG_1() END

PROG_2FUN.SRC DEFFCT INT PROG_2FUN() INT A EXT PROG_1() PROG_1() PROG_1() ENDFCT PROG_3.SRC DEF PROG_3() END

Fig. 36 Diferena entre subprogramas locais e globais

ProgHBExperte R4.1 08.01.02 pt

147 de 216

Programao perito

7.2

Ativao e transferncia de parmetros


A ativao de um subprograma realiza--se simplesmente atravs da indicao do nome do subprograma e parnteses curvos, parecendo assim uma instruo (ver cap. 1.1), p.ex.: SUBPROG1() A ativao de uma funo uma forma especial da atribuio de um valor. Por isso, uma funo nunca poder estar sozinha, mas o valor da funo ter de ser atribudo sempre no mbito da expresso de uma varivel do mesmo tipo de dados, p.ex.: INTVAR = 5 * INTFUNO() + 1 REALVAR = REALFUNO() Nos subprogramas locais e nas funes so conhecidas todas as variveis declaradas na lista de dados do programa principal. Nos subprogramas globais, ao contrrio, estas variveis no so conhecidas. Mas com a ajuda de uma lista de parmetros, os valores tambm podem ser transferidos a subprogramas ou funes globais. Muitas vezes, a transferncia de listas de parmetros tambm til em subprogramas e funes locais, visto que, desta forma se consegue uma separao clara entre o programa principal e o subprograma/funo: As variveis declaradas no programa principal (ficheiro SRC) so utilizadas apenas a, todas as transferncias a subprogramas e funes (locais e globais) realizam--se atravs de listas de parmetros. Esta programao estruturada permite reduzir claramente os erros de programao. Para a transferncia dos parmetros existem dois mecanismos distintos: G Call by value (IN) Com este modo de transferncia, um valor do programa principal transferido para uma varivel do subprograma ou da funo. O valor transferido pode ser uma constante, uma varivel, a ativao de uma funo ou uma expresso. Quando os tipos de dados so diferentes, realiza--se, sempre que possvel, uma adaptao do tipo. Call by reference (OUT) Com Call by reference, apenas o endereo de uma varivel do programa principal que transferido para o subprograma ou a funo. O subprograma ou a funo ativada pode sobrescrever agora a rea de memria, por meio de um nome de varivel prprio, e alterar, por conseguinte, tambm o valor da varivel no programa principal. Por isso, os tipos de dados tm de ser idnticos, uma vez que aqui no possvel uma adaptao do tipo de dados.

Lista de parmetros

Em Fig. 37 representada a diferena entre os dois mtodos. Enquanto a varivel X com Call by value se mantm inalterada no programa principal, devido s reas de memria separadas, com Call by reference ela sobrescrita pela varivel NMERO na funo.

ProgHBExperte R4.1 08.01.02 pt

148 de 216

Subprogramas e funes (continuao)

X 15 15 DEF PROG() INT X,Y,E X=5*3 Y=QUADRADO(X) ;Y=225 E=Y/X END 225 NMERO 225 15 225

Call by value
GLOBAL DEFFCT INT QUADRADO (NMERO:IN) INT NMERO NMERO=NMERO*NMERO RETURN(NMERO) ENDFCT

X=15 Y= 225 E=15


15 X,NMERO 225 15

Call by reference
GLOBAL DEFFCT INT QUADRADO(NMERO:OUT) INT NMERO NMERO=NMERO*NMERO RETURN(NMERO) ENDFCT

X=225 Y= 225 E=1


Fig. 37 Diferena entre Call by value e Call by reference Call by value indicado no cabealho do subprograma ou da funo pela palavra chave IN, a seguir a cada varivel na lista de parmetros. Call by reference obtida atravs da indicao OUT. OUT tambm a definio por defeito. Exemplo: DEF CALCULAR(X:OUT,Y:IN,Z:IN,B) Se o subprograma global a ativar ou a funo global no estiver declarada como GLOBAL, necessrio indicar na declarao externa no programa principal, qual o tipo de dados que se pretende dar respetiva varivel e qual o mecanismo de transferncia que se pretende utilizar. OUT tambm aqui a definio por defeito. Exemplo:

EXTFCT REAL FUN1(REAL:IN,BOOL:OUT,REAL,CHAR:IN)


A utilizao de IN e OUT explicada mais pormenorizadamente, atravs do exemplo seguinte. O subprograma e a funo so globais.

ProgHBExperte R4.1 08.01.02 pt

149 de 216

Programao perito DEF PROG() CALCULAR (INT:OUT,INT:IN,INT:IN) FUN1(REAL:IN,REAL:OUT,REAL:OUT,REAL:IN,REAL:OUT) INT A,B,C REAL D,E,F,G,H,X A B C D E F G H = = = = = = = = 1 2 3 1 2 3 4 5

CALCULAR(A,B,C) ;A agora 11 ;B agora 2 ;C agora 3 X = FUN1(H,D,E,F,G) ;D agora 3 ;E agora 8 ;F agora 3 ;G agora 24 ;H agora 5 ;X agora 15 END DEF CALCULAR(X1:OUT,X2:IN,X3:IN) ;SP global INT X1,X2,X3 X1=X1+10 X2=X2+10 X3=X3+10 END DEFFCT REAL FUN1(X1:IN,X2:OUT,X3:OUT,X4:IN,X5:OUT);Fun. global REAL X1,X2,X3,X4,X5 X1 = X1*2 X2 = X2*3 X3 = X3*4 X4 = X4*5 X5 = X5*6 RETURN(X4) ENDFCT Na transferncia de um campo, este campo tem de ser declarado novamente no subprograma ou na funo, mas sem ndex. Segue--se um exemplo, onde os valores de um campo X[] so duplicados (a funo global):

ProgHBExperte R4.1 08.01.02 pt

150 de 216

Subprogramas e funes (continuao)

DEF ARRAY ( ) EXT BAS (BAS_COMMAND:IN,REAL:IN) INT X[5] ;declarao de campo INT I BAS (#INITMOV,0) FOR I=1 TO X[I]=I ENDFOR 5 ;Array X[] inicializar ;X[1]=1,X[2]=2,X[3]=3,X[4]=4,x[5]=5

DUPLO (X[]) ;Ativar subprograma com parmetros de campo ;X[1]=2,X[2]=4,X[3]=6,X[4]=8,X[5]=10 END DEF DUPLO (A[]:OUT) INT A[] ;Nova declarao do campo INT I FOR I=1 TO 5 A[I]=2*A[I] ;Duplicao dos valores de campo ENDFOR END Na transferncia de campos multidimensionais, tambm no so indicados ndices, mas a dimenso do campo ter de ser especificada atravs da indicao de vrgulas, exemplos: A[,] A[,,]

para campos bidimensionais para campos tridimensionais

ProgHBExperte R4.1 08.01.02 pt

151 de 216

Programao perito

ProgHBExperte R4.1 08.01.02 pt

152 de 216

Tratamento de interrupt

Tratamento de interrupt
Quando os robs so utilizados em instalaes de produo complexas, necessrio que o rob possa reagir de uma forma objetiva e imediata, perante determinados acontecimentos externos e internos, ao mesmo tempo que se realizam aes em paralelo ao processo do rob. Isto significa que o programa de rob que est a ser executado ter de ser interrompido, ao mesmo tempo que iniciado um programa ou uma funo de interrupo. Depois da execuo do programa de interrupo, o programa de rob interrompido dever ser continuado, desde que no tenha sido declarado um procedimento diferente. Esta interrupo objetiva ou o incio de um programa so possveis devido instruo de Interrupt. Assim, o utilizador tem a possibilidade de reagir atravs do programa perante um acontecimento no sincronizado no tempo em relao execuo do programa. Os interrupts podem ser provocados G G G G por equipamentos, tais como sensores, unidades perifricas, etc. por mensagens de erro pelo utilizador ou por circuitos de segurana

P.ex., ao premir o interruptor de parada de emergncia, pode ser ativada uma rotina de interrupt, que se encarrega de fazer o reset de determinados sinais de sada (programa preparado IR_STOPM.SRC).

ProgHBExperte R4.1 08.01.02 pt

153 de 216

Programao perito

8.1

Declarao
Antes de poder ser ativado um interrupt, tero de ser definidas as causas possveis para uma interrupo e a respetiva reao do sistema perante estas interrupes.

INTERRUPT

Isto realiza--se atravs de uma declarao de interrupt, em que ter de atribuir a cada interrupo uma prioridade, um acontecimento e a rotina de interrupt a ativar. A sintaxe completa :

INTERRUPT DECL prioridade WHEN acontecimento DO subprograma


O significado dos argumentos consta em Tab. 25.

Argumento
Prioridade

Tipo de dados
INT

Significado
Expresso aritmtica que indica a prioridade da interrupo. Esto disponveis os nveis de prioridade 1...39 e 81...128. Os valores 40...80 esto reservados para uma atribuio automtica da prioridade por parte do sistema. A interrupo do nvel 1 tem a prioridade mxima. Expresso lgica que define o acontecimento de interrupo. So admissveis: S uma constante booleana S uma varivel booleana S o nome de um sinal S uma comparao Nome do programa de interrupt que dever ser executado quando se verifica o acontecimento.

Acontecimento

BOOL

Subprograma

Tab. 25 Argumentos na declarao de interrupt A instruo INTERRUPT DECL 4 WHEN $IN[3]==TRUE DO UP1() declara, p.ex., um interrupt da prioridade 4, que ativa o subprograma SP1(), logo que a entrada 3 adotar o valor High.

A declarao de interrupt uma instruo. Por isso, no pode estar na seo de declarao!
Um interrupt reconhecido apenas a partir do nvel de programa no qual est declarado. Nos nveis de programa superiores, o interrupt no reconhecido, apesar da ativao. Isto significa que um interrupt declarado num subprograma no reconhecido no programa principal (ver Fig. 38). Mas se o interrupt for declarado como GLOBAL, poder ser declarado num subprograma qualquer e no perde a sua validade ao sair deste nvel. (ver Fig. 38). GLOBAL INTERRUPT DECL 4 WHEN $IN[3]==TRUE DO UP1()

ProgHBExperte R4.1 08.01.02 pt

154 de 216

8
G G G G G

Tratamento de interrupt (continuao)

Uma declarao pode ser sobrescrita, a qualquer momento, por uma declarao nova. A diferena entre um interrupt GLOBAL e um interrupt normal que um interrupt global continua a ser vlido tambm depois de sair do subprograma no qual foi declarado. Simultaneamente, podem estar declarados, no mximo, 32 interrupts. Na condio de interrupt, no devero ser utilizadas variveis ou componentes de estrutura. No podem ser transferidas variveis de tempo de execuo como parmetros da rotina de interrupt, salvo se se tratar de variveis GLOBAL ou variveis declaradas na lista de dados. Programa principal

DEF MAIN() INTERRUPT DECL 1 INTERRUPT DECL 3 UP() END

Subprograma

DEF UP() GLOBAL INTERRUPT DECL 23 INTERRUPT DECL 2 END

Validade interrupt 1,3,23

Validade interrupt 2

Fig. 38 mbito de validade de um interrupt, em funo do local e tipo de declarao

ProgHBExperte R4.1 08.01.02 pt

155 de 216

Programao perito

8.2
Ativar o interrupt

Ativao de interrupts
Depois da declarao, o interrupt mantm--se desativado. Com a instruo INTERRUPT ON 4 ativado o interrupt com a prioridade 4, com INTERRUPT ON so ativados todos os interrupts. S depois da ativao poder haver uma reao perante a interrupo definida. O acontecimento de interrupo agora controlado ciclicamente.

Trigger flancos

de

O controle do acontecimento verifica--se com trigger de flancos, o que significa que um interrupt s provocado, quando a condio lgica muda do estado FALSE para o estado TRUE, mas no quando a condio j tinha sido TRUE no momento da ativao. Por razes de tempo necessrio para os clculos, s podem estar ativados simultaneamente 16 interrupts. Este fato dever ser tido em considerao, sobretudo, aquando da ativao global de todos os interrupts.

Desativar interrupts

A desativao de alguns ou de todos os interrupts funciona da mesma forma que a ativao: INTERRUPT OFF 4 ou INTERRUPT OFF

Bloquear / liberar

Com as palavras chave ENABLE e DISABLE os interrupts ativados podem ser liberados ou bloqueados individual ou globalmente. A instruo de bloqueio permite a proteo de determinadas sees do programa, antes da interrupo. Um interrupt bloqueado detectado e memorizado, mas no executado. S quando h uma liberao, os interrupts verificados so executados pela ordem da sua prioridade. DISABLE 4 ou DISABLE Um acontecimento memorizado no provoca uma reao, desde que o interrupt tenha sido desativado antes de poder ser provocado. Caso o interrupt se verifique vrias vezes durante o seu bloqueio, ele executado apenas uma nica vez depois da sua liberao. As condies para ser provocado um interrupt so as seguintes: S S S S O interrupt ter de estar declarado (INTERRUPT DECL ) O interrupt ter de estar ativado (INTERRUPT ON) O interrupt no pode estar bloqueado Ter de se verificar o respetivo acontecimento (trigger de flancos)

Prioridade

Quando surgem, simultaneamente, vrios interrupts, executado, em primeiro lugar, o interrupt com a prioridade mais elevada e depois os interrupts com uma prioridade inferior. O nvel de prioridade 1 significa prioridade mxima, o nvel 128 a prioridade mais baixa. Ao detectar um acontecimento, memorizada a posio real do rob e ativada a rotina de interrupt. O interrupt verificado, bem como todos os interrupts com uma prioridade mais baixa so bloqueados durante todo o tempo de execuo da rotina. Ao regressar do programa de interrupt, o referido bloqueio implcito novamente retirado, incluindo o do interrupt atual. Ao surgir novamente o interrupt (mesmo durante o programa de interrupt), este poder ser executado novamente. Para impedir este procedimento, o interrupt ter de ser bloqueado ou desativado, explicitamente, antes do regresso.
ProgHBExperte R4.1 08.01.02 pt

156 de 216

Tratamento de interrupt (continuao)

Depois da primeira instruo no programa de interrupt, um interrupt poder ser interrompido por interrupts com uma prioridade mais elevada. Na primeira instruo, o programador tem ento a possibilidade de impedir este procedimento, bloqueando/desativando um ou todos os interrupts. Se um interrupt se desligar automaticamente durante o programa de interrupt, este naturalmente executado at ao fim. Depois de terminar um interrupt com uma prioridade mais elevada, o programa de interrupt interrompido continuado no local onde foi interrompido.
G G

Podem ser transferidos parmetros IN para um programa de interrupt. Caso se pretenda que um subprograma local devolva um parmetro, a varivel ter de ser declarada na lista de dados do programa principal. Quando se trata de programas de interrupt globais, necessrio trabalhar com a lista de dados $CONFIG.DAT. As alteraes de $TOOL e $BASE no programa de interrupt s so eficazes nesse mesmo programa (modo de comando). No programa de interrupt no h um avano do computador, uma vez que o programa executado a nvel de comando, ou seja, passo a passo ( no so permitidas atribuies $ADVANCE). Assim, sendo no possvel uma aproximao.

G G

Excees: S Os interrupts provocados pelas variveis de sistema $ALARM_STOP e $STOPMESS so tambm executados no caso de se verificar um erro, isto , apesar de uma parada do rob, so executadas as instrues de interrupt (sem movimentos). Durante uma parada de operao poder ser detectado qualquer interrupt declarado e ativado. Depois de um novo arranque, os interrupts verificados so executados, pela ordem da sua prioridade (caso estejam liberados), seguindo--se a continuao do programa.

Um movimento de rob que est a decorrer no momento em que ativado um programa de interrupt, no cancelado. Enquanto o programa de interrupt est a ser executado, so ainda terminados todos os movimentos j preparados no programa interrompido. Se o programa de interrupt for totalmente executado dentro deste tempo, o programa interrompido continua, sem que os movimentos parem, isto , sem que o tempo de execuo seja prolongado. Pelo contrrio, se a ao de interrupt ainda no estiver concluda, o rob pra, at ser preparado e continuado o movimento seguinte depois do regresso. Se se encontrarem instrues de movimento no prprio programa de interrupt, este pra na primeira instruo de movimento, at o avano do programa principal ter sido executado. O exemplo seguinte pretende explicar a utilizao das instrues de interrupt e das variveis de sistema especiais. Aqui so permanentemente controlados, durante um movimento linear, dois sensores (nas entradas 1 e 2). Logo que um sensor detecte uma pea (adote o valor High), ativado um subprograma de interrupt, sendo memorizada a posio da pea e ativada a respetiva sada, como forma de indicao. O movimento do rob no interrompido. A seguir, realiza--se uma nova deslocao at s peas detectadas.

ProgHBExperte R4.1 08.01.02 pt

157 de 216

Programao perito DEF INTERRUP ( )

;--------- Seo de declarao --------EXT BAS (BAS_COMMAND :IN,REAL :IN ) DECL AXIS HOME POS TEIL[2] INT I ;---------- Inicializao --------BAS (#INITMOV,0 ) ;inicializao de velocidades, ;aceleraes, $BASE, $TOOL, etc. HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 30,A6 0} FOR I=1 TO 16 $OUT[I]=FALSE ;reset de todas as sadas ENDFOR INTERRUPT DECL 10 WHEN $IN[1]==TRUE DO SAVEPOS (1 ) INTERRUPT DECL 11 WHEN $IN[2]==TRUE DO SAVEPOS (2 ) ;------------- Seo principal -----------PTP HOME ;movimento SAK PTP {X 1320,Y 100,Z 1000,A -13,B 78,C -102}

INTERRUPT ON ;ativar todos os interrupts LIN {X 1320,Y 662,Z 1000,A -13,B 78,C -102} ;percurso de busca INTERRUPT OFF 10 ;desativar interrupt 10 INTERRUPT OFF 11 ;desativar interrupt 11 PTP HOME

FOR I=1 TO 2 IF $OUT[I] THEN LIN TEIL[I] ; deslocar pea detectada $OUT[I]=FALSE PTP HOME ENDIF ENDFOR END ;----------- Programa de interrupt ---------DEF SAVEPOS (NR :IN ) ;pea detectada INT NR $OUT[NR]=TRUE ;ativar marca PEA[NR]=$POS_INT ;memorizar posio END

Alm do pacote base (BAS.SRC), existe, por nome, na unidade de comando, tambm um ficheiro IR_STOPM(). Este subprograma executa, em caso de um erro, algumas instrues bsicas, das quais fazem parte, alm de aes tecnolgicas especficas, tambm o reposicionamento do rob na trajetria de movimento. O fato que, enquanto o rob se mantm na trajetria depois de ter sido premido um interruptor de PARADA DE EMERGNCIA, o hardware no realiza uma parada sobre a trajetria, quando se trata de equipamentos de segurana que dizem respeito diretamente ao operador (p.ex., porta de segurana). Por isso, dever implementar sempre na seo de inicializao dos seus programas a seqncia seguinte (encontra--se regularmente na pasta BAS INI): INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( ) INTERRUPT ON 3
ProgHBExperte R4.1 08.01.02 pt

158 de 216

Tratamento de interrupt (continuao)

A instruo PTP $POS_RET no ficheiro IR_STOPM() d origem ao reposicionamento, e, por conseguinte, tambm estabelecida a coincidncia de passos. Outras variveis de sistema teis para o trabalho com interrupts encontram--se enumeradas em Tab. 26. As posies referem--se sempre aos sistemas de coordenadas atuais no tratamento principal.

especfico para o eixo $AXIS_INT $AXIS_ACT $AXIS_RET $AXIS_FOR

cartesiano $POS_INT $POS_ACT $POS_RET $POS_FOR

descrio posio na qual foi provocado o interrupt posio REAL atual posio na qual se realizou a sada da trajetria posio do ponto de incio da trajetria posio do ponto de destino da trajetria

$AXIS_BACK $POS_BACK

Tab. 26 Variveis de sistema teis no tratamento de interrupt Com movimentos de aproximao, as posies ..._BACK e ..._FOR dependem da posio do tratamento principal do programa. Relativamente a este assunto, ver Fig. 39 a Fig. 40.

$POS_INT $AXIS_INT

$POS_RET $AXIS_RET P2

P1 $POS_BACK $AXIS_BACK $POS_ACT $AXIS_ACT

$POS_FOR $AXIS_FOR

P3

Fig. 39 Variveis de sistema de interrupt em pontos de parada exata P2

$POS_INT $AXIS_INT

$POS_RET $AXIS_RET $POS_FOR $AXIS_FOR

$POS_BACK $AXIS_BACK

$POS_ACT $AXIS_ACT

P1 Fig. 40 Variveis de sistema de interrupt com um interrupt numa zona de aproximao


ProgHBExperte R4.1 08.01.02 pt

P3

159 de 216

Programao perito

8.3
BRAKE

Parar movimentos em curso


Caso se pretenda parar os movimentos do rob que esto a decorrer no momento em que surge um interrupt, utilizada a instruo BRAKE no programa de interrupt. Se programar BRAKE sem parmetros, h uma frenagem do movimento com os valores de trajetria ou acelerao de eixo programados. O comportamento igual ao que se realiza ao premir a tecla STOP. No se verifica uma sada da trajetria de movimento programada. Com a instruo BRAKE F (brake fast) pode conseguir um percurso de frenagem mais reduzido. O rob frenado com o retardamento mximo sobre a trajetria. A instruo BRAKE s pode estar num programa de interrupt. Em outros programas provoca uma parada devido a um erro. No necessrio que a instruo BRAKE se encontre diretamente a seguir ativao, pode estar em qualquer local do programa de interrupt. O seu efeito depende do fato de no momento da sua realizao ainda ser executado um movimento do programa interrompido. Com o rob parado, a instruo no tem qualquer efeito. Um movimento do programa interrompido ainda em curso, parado com o modo de frenagem programado. No entanto, a instruo BRAKE no substitui a instruo STOP, quando se pretende parar a execuo do programa. O programa de interrupt s continuado com a instruo seguinte, depois de o rob estar parado.

Depois do regresso ao programa interrompido, continuado um movimento parado no programa de interrupt com BRAKE ou BRAKE F!

ProgHBExperte R4.1 08.01.02 pt

160 de 216

Tratamento de interrupt (continuao)

8.4

Cancelar rotinas de interrupt


No exemplo 8.1, 2 detectores de proximidade detectam, no mximo, 2 objetos, cujas posies so registradas com vista a uma deslocao posterior. O percurso de busca percorrido totalmente, mesmo no caso de os dois objetos j terem sido detectados. Para poupar tempo, til cancelar o movimento, logo que o nmero mximo de peas tenha sido detectado. O cancelamento de um movimento do rob possvel na KR C... com a instruo RESUME

RESUME

RESUME cancela todos os programas de interrupt em curso e tambm todos os subprogramas at ao nvel em que o interrupt atual foi declarado. Tal como a instruo BRAKE, tambm a instruo RESUME s permitida num programa de interrupt. No momento da instruo RESUME, o indicador do avano no pode estar no nvel em que o interrupt foi declarado, mas pelo menos um nvel abaixo deste. Uma vez que se pretende cancelar o percurso de busca com RESUME, o movimento de busca ter de ser programado num subprograma. No exemplo seguinte, este procedimento realiza--se em MOVEP(), o programa de interrupt chama--se IR_PROG(). importante que nos subprogramas que foram cancelados com RESUME, o avano seja parado antes da ltima linha. S assim, pode ser garantido que o indicador do avano com RESUME no se encontra no mesmo nvel em que o interrupt foi declarado. Em MOVEP() isto foi realizado com a atribuio $ADVANCE=0. No prprio programa de interrupt, o movimento de busca parado atravs de BRAKE, logo que um sensor na entrada 1 tenha detectado 4 peas, sendo cancelado ento por meio da instruo RESUME (uma vez que alm de IR_PROG() terminado tambm MOVEP()). Sem a instruo BRAKE, o movimento de busca ainda seria executado no avano. Depois de RESUME o programa principal continuado com a instruo que se segue ativao do subprograma, ou seja, $ADVANCE=3 (reset do avano).

ProgHBExperte R4.1 08.01.02 pt

161 de 216

Programao perito DEF SEARCH ( ) ;--------- Seo de declarao --------EXT BAS (BAS_COMMAND :IN,REAL :IN ) DECL AXIS HOME ;---------- Inicializao --------INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( ) INTERRUPT ON 3 ;tratamento de erro padro BAS (#INITMOV,0 ) ;inicializao de velocidades, ;aceleraes, $BASE, $TOOL, etc. HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 30,A6 0} INTERRUPT DECL 11 WHEN $IN[1] DO IR_PROG ( ) I[1]=0 ;colocar contador predefinido em 0 ;------------- Seo principal -----------PTP HOME ;movimento SAK INTERRUPT ON 11 MOVEP ( ) ;percorrer o percurso de busca $ADVANCE=3 ;reset do avano INTERRUPT OFF 11 GRIP ( ) PTP HOME END ;-------- Subprograma -----------DEF MOVEP ( ) ;subprograma para percorrer o percurso de busca PTP {X 1232,Y -263,Z 1000,A 0,B 67,C -90} LIN {X 1232,Y 608,Z 1000,A 0,B 67,C -90} $ADVANCE=0 ;parar avano END ; ;------ Programa de interrupt --------DEF IR_PROG ( ) ;memorizar posio das peas ;INTERRUPT OFF 11 I[1]=I[1]+1 POSITION[I[1]]=$POS_INT ;memorizar a posio IF I[1]==4 THEN ;4 peas so detectadas BRAKE ;parar o movimento RESUME ;cancelar IR_PROG & MOVE ENDIF ;INTERRUPT ON 11 END ;-------- Subprograma ------------l DEF GRIP ( ) ;pegar nas peas detectadas INT POS_NR ;varivel de contagem FOR POS_NR=I[1] TO 1 STEP -1 POSITION[POS_NR].Z=POSITION[POS_NR].Z+200 LIN POSITION[POS_NR] ;fazer a deslocao 200mm acima da pea LIN_REL {Z -200} ;fazer a deslocao pea na vertical ; pegar na pea LIN POSITION[POS_NR] ;voltar para cima LIN {X 634,Y 1085,Z 1147,A 49,B 67,C -90} ; depositar pea ENDFOR END

ProgHBExperte R4.1 08.01.02 pt

162 de 216

Tratamento de interrupt (continuao)

Quando existe o perigo de um interrupt ser provocado, por engano, duas vezes, devido a um sensor muito sensvel (ricochete), poder desativar o interrupt na primeira linha do programa de interrupt, a fim de evitar essa situao. No entanto, nesse caso, tambm no detectado um interrupt real durante a execuo do interrupt. Se pretende manter o interrupt ativo, ter de ativ--lo novamente, antes do regresso. Caso um movimento seja interrompido com RESUME, como mostrado no exemplo acima, o movimento seguinte no dever ser um movimento CIRC, visto que o ponto de incio varia sempre ( crculos diferentes). Na ao de busca programada no exemplo 8.2, as entradas so questionadas no ciclo de interpolao (atualmente 12 ms). Nesse processo, h uma impreciso mxima de cerca de 12 ms, vezes a velocidade de trajetria. Medio rpida Para evitar essa impreciso, o detector de proximidade no poder ser ligado s entradas de utilizador, mas ter de utilizar entradas especiais (4 unidades) na ficha perifrica X11. Estas entradas podem ser ativadas atravs das variveis de sistema $MEAS_PULSE[1]...MEAS_PULSE[4] (tempo de reao 125 s). Ao ligar o interrupt, no poder estar ativado o impulso de medio, caso contrrio, ser emitida a respetiva mensagem de erro.

ProgHBExperte R4.1 08.01.02 pt

163 de 216

Programao perito

8.5

Utilizao de flags cclicos


Na instruo para a declarao do interrupt, no so admissveis combinaes lgicas. Assim, para poder definir acontecimentos complicados, ter de trabalhar com flags cclicos, uma vez que s estes permitem uma atualizao constante. A seqncia $CYCFLAG[3] = $IN[1] AND ([$IN[2] OR $IN[3]) INTERRUPT DECL 10 WHEN $CYCFLAG[3] DO IR_PROG() INTERRUPT ON 10 permite controlar, simultaneamente, 3 entradas e fazer a sua combinao lgica. Mais informaes encontram--se no captulo [Variveis e declaraes], pargrafo [Variveis de sistema e ficheiros de sistema].

ProgHBExperte R4.1 08.01.02 pt

164 de 216

Trigger aes de comutao referentes trajetria

Trigger aes de comutao referentes trajetria


Ao contrrio das funcionalidades de interrupt independentes do movimento, alguns casos de aplicao requerem tambm aes de comutao que so provocadas em funo da trajetria de movimento. Esses casos de aplicao so, p.ex.: G G G Fechar ou abrir a pina de soldadura durante a soldadura a pontos Ligar/desligar a corrente de soldadura durante a soldadura a arco Ligar/desligar o fluxo volumtrico durante a colagem ou vedao

Na KR C..., estas aes de comutao referentes trajetria so possveis com a instruo TRIGGER. Paralelamente ao movimento seguinte do rob, TRIGGER permite executar um subprograma, em funo de um critrio de percurso, ou realizar a atribuio de um valor a uma varivel ou uma instruo PULSE ou ativada uma sada.

9.1

Ao de comutao no ponto de incio ou de destino da trajetria


Se pretender uma ao de comutao em relao ao ponto de incio ou ao ponto de destino de uma trajetria de movimento, programe, antes da respetiva instruo de movimento (PTP, LIN ou CIRC), uma instruo TRIGGER com a sintaxe seguinte: TRIGGER WHEN DISTANCE=ponto de comutao DELAY=tempo DO instruo PRIO=prioridade Os argumentos so descritos mais pormenorizadamente na tabela seguinte.

TRIGGER

Argumento
Ponto de comutao

Tipo de dados
INT

Significado
Nos passos individuais, DISTANCE=0 define o ponto de incio e DISTANCE=1 o ponto de destino do movimento seguinte. Nos passos de aproximao, a indicao DISTANCE=1 marca o meio do arco de aproximao seguinte. Se o passo anterior tambm um passo de aproximao, DISTANCE=0 marca o ponto de destino do arco de aproximao anterior. A indicao DELAY permite atrasar ou adiantar o ponto de comutao durante um determinado tempo. No entanto, ao deslocar o ponto de comutao, este ter sempre de manter--se ainda dentro do respetivo passo. A unidade o milisegundo. A instruo poder ser S a ativao de um subprograma S a atribuio de um valor a uma varivel S uma instruo OUTPUT (tambm Pulse).

Tempo

INT

Instruo

Prioridade

Prioridade

INT

A cada instruo TRIGGER com ativao de subprograma, ter de ser atribuda uma prioridade. So admissveis os valores de 1...39 e 81...128. Trata--se aqui das mesmas prioridades que nos interrupts (ver captulo 8). Os valores 40...80 esto reservados a uma atribuio de prioridade automtica atravs do sistema. Por isso, programe PRIO=--1.

Tab. 27 Argumentos na instruo TRIGGER


ProgHBExperte R4.1 08.01.02 pt

165 de 216

Programao perito Atravs da seqncia de instrues LIN PONTO2 TRIGGER WHEN DISTANCE = 0 DELAY=20 DO $OUT[4]=TRUE TRIGGER WHEN DISTANCE = 1 DELAY=-25 DO UP1() PRIO=-1 LIN PONTO3 LIN PONTO4 ativada, durante o movimento linear ao PONTO3, a sada 4 exatamente 20 milisegundos depois do incio do movimento, e 25 milisegundos antes de atingir o ponto de destino ativado o subprograma SP1(). A atribuio da prioridade realiza--se automaticamente, atravs do sistema. Para uma explicao mais pormenorizada acerca do efeito diferente que a indicao DISTANCE exerce sobre os passos individuais e os passos de aproximao, ver Fig. 41 -Fig. 44.

DISTANCE 0 1

0
PONTO2

Zona de comutao 0 -- 1 1 -- 0

DELAY + --

+ -PONTO3

1
Fig. 41 Zonas de comutao e possveis valores de retardamento, quando os pontos de incio e de destino so pontos de parada exata

ProgHBExperte R4.1 08.01.02 pt

166 de 216

Trigger aes de comutao referentes trajetria (continuao)

0
+

PONTO2

DISTANCE 0 1

Zona de comutao 0 -- 1a 1a -- 1b

DELAY +

1a -PONTO3

1
1b +
PONTO4

Fig. 42 Zonas de comutao e possveis valores de retardamento, quando o ponto de incio um ponto de parada exata e o ponto de destino um ponto de aproximao

PONTO2

DISTANCE Zona de comutao 0 0 -- 1a 1 1a -- 1b

DELAY +

0
+ 1a -PONTO3

1
1b +
PONTO4

Fig. 43 Zonas de comutao e possveis valores de retardamento, quando os pontos de incio e de destino so pontos de aproximao

ProgHBExperte R4.1 08.01.02 pt

167 de 216

Programao perito

DISTANCE

PONTO2

0 1

Zona de comutao 0 -- 1 1 -- 0

DELAY + --

0
+ -PONTO3

Fig. 44 Zonas de comutao e possveis valores de retardamento, quando o ponto de incio um ponto de aproximao e o ponto de destino um ponto de parada exata

ProgHBExperte R4.1 08.01.02 pt

168 de 216

Trigger aes de comutao referentes trajetria (continuao)

9.2

Ao de comutao em qualquer ponto da trajetria


A instruo TRIGGER referente ao percurso permite provocar a ao de comutao em qualquer ponto da trajetria. Tal como nas aes de comutao em relao aos pontos de incio e de destino, tambm esta poder ser deslocada no tempo. A ao de comutao referente ao percurso s permitida em movimentos de trajetria (LIN ou CIRC). A instruo TRIGGER refere--se ao passo de movimento programado a seguir e tem a sintaxe: TRIGGER WHEN PATH = percurso DELAY = tempo DO instruo PRIO=prioridade Os argumentos so descritos mais pormenorizadamente na tabela seguinte.

Argumento
Percurso

Tipo de dados
INT

Significado
Com percurso indique a distncia pretendida ao ponto de destino, programado depois do trigger. Se este ponto de destino for um ponto com posicionamento aproximado, percurso indica a distncia pretendida da ao de comutao da posio da zona de aproximao que se encontra mais prxima do ponto de destino. Um percurso negativo permite adiantar o ponto de comutao at ao ponto de incio. Se o ponto de incio for um ponto de aproximao, o ponto de comutao pode ser deslocado at ao incio da zona de aproximao. Uma indicao positiva de percurso permite uma deslocao at ao ponto de parada exata seguinte, programado depois do trigger. A unidade o milmetro. A indicao DELAY permite atrasar (+) ou adiantar (--) o ponto de comutao em relao indicao PATH, durante um determinado tempo. O ponto de comutao s pode ser deslocado na rea de comutao mencionada atrs (por forma a atingir o seguinte ponto de parada exata). Com movimentos de aproximao, o ponto de comutao pode ser deslocado para a frente, no mximo, at ao incio de aproximao do ponto de incio. A unidade o milisegundo. A instruo pode ser S a ativao de um subprograma S a atribuio de um valor a uma varivel S uma instruo OUTPUT (tambm Pulse).

Tempo

INT

Instruo

Prioridade

Prioridade

INT

A cada instruo TRIGGER com ativao de subprograma, ter de ser atribuda uma prioridade. So admissveis os valores de 1...39 e 81...128. Trata--se aqui das mesmas prioridades que nos interrupts (ver captulo 8). Os valores 40...80 esto reservados a uma atribuio de prioridade automtica atravs do sistema. Por isso, programe PRIO=--1.

Tab. 28 Argumentos na instruo TRIGGER

ProgHBExperte R4.1 08.01.02 pt

169 de 216

Programao perito Seqncia de instrues PTP PONTO2 TRIGGER WHEN PATH = 20 DELAY=-10 DO $OUT[2]=TRUE LIN PONTO3 C_DIS LIN PONTO4 C_DIS LIN PONTO5 Uma vez que o ponto de comutao pode ser deslocado a partir do ponto de movimento antes do qual foi programado, passando por todos os pontos de aproximao seguintes, at ao ponto de parada exata prximo, possvel uma deslocao do ponto de comutao do incio da aproximao PONTO2 at ao PONTO5. Se nesta seqncia de instrues no houvesse uma aproximao ao PONTO2, o ponto de comutao s poderia ser deslocado at ao ponto de parada exata PONTO2.

PONTO2

--PATH Y<0 DELAY X

+
DELAY X

PONTO5

-PONTO3
DELAY=0 PATH=0
Exemplo de nmeros: X= --10, Y= --20

+
PONTO4

PATH Y>0

PONTO2
Ponto de comutao

DELAY= -10

PONTO5

PATH= -20

PONTO3

PONTO4

Fig. 45 Zonas de comutao, quando o ponto de incio um ponto de aproximao


ProgHBExperte R4.1 08.01.02 pt

170 de 216

Trigger aes de comutao referentes trajetria (continuao)

Excees: G Movimento SAK

Caso seja realizada uma seleo de passos a seguir a um movimento de trajetria, este realizado como movimento SAK. Uma vez que neste movimento SAK o ponto de incio um ponto qualquer, no pode ser considerado um ponto de incio til para uma indicao de distncia. Caso tenham sido programadas instrues TRIGGER com a indicao de PATH e caso haja a seguir a estas instrues uma seleo de passos, todas as instrues so executadas no ponto de destino. G Aproximao impossvel Caso a aproximao no seja possvel, realiza--se nesse local um movimento de parada exata que, neste caso, tratado como um movimento de aproximao. Outras aes de comutao que se encontram na trajetria, mantm--se memorizadas e so provocadas no local correspondente. Mas normalmente, j no so exatas, uma vez que a trajetria e, por conseguinte, tambm o comprimento da trajetria so agora diferentes. As aes de comutao que foram colocadas na primeira metade da zona de aproximao, devido a um valor PATH negativo, no podem agora ser provocadas antes do ponto de aproximao: LIN P1 C_DIS TRIGGER WHEN PATH=-120 DELAY=0 DO UP1() PRIO=-1 TRIGGER WHEN PATH=-70 DELAY=0 DO $OUT[2]=TRUE LIN P2 C_DIS No exemplo acima apresentado, a distncia entre o ponto de incio e o ponto de destino dever situar--se em 100 mm. Se for possvel fazer a aproximao em P1, a ativao do subprograma SP1() realizada 20 mm antes de atingir o ponto da trajetria que se situa mais prximo de P1. A sada 2 ativada 30 mm a seguir a este ponto da trajetria. Caso no tenha sido possvel executar o movimento de aproximao em P1, a trajetria passa pelo ponto P1, onde tambm se realiza o posicionamento. A ativao do subprograma SP1() realiza--se agora logo depois de deixar P1, e a sada 2 ativada a uma distncia de 30 mm de P1. G Cancelar um movimento Se um movimento for cancelado, p.ex., devido seleo de um passo ou a um reset, no sendo portanto executado at ao fim, as aes de comutao ainda no executadas tambm j no sero realizadas, mas apagadas, tal como acontece na indicao DISTANCE. G Instruo TRIGGER para um movimento PTP referente ao percurso Se adicionalmente a um movimento PTP for programada uma instruo PATH-TRIGGER com indicao de caminho, este procedimento recusado pelo interpretador durante a execuo. G Aproximao PTP--trajetria Caso seja programada uma instruo PATH-TRIGGER em relao a um movimento cujo ponto de incio um ponto de aproximao PTP--trajetria, a ao de comutao no poder ser executada antes do fim desta zona de aproximao, uma vez que em toda a zona de aproximao ainda se realiza um movimento PTP. Numa zona de aproximao trajetria--PTP, ainda so executadas no ponto de incio da zona de aproximao, todas as instrues TRIGGER que at a no foram executadas. A partir da realiza--se ento o movimento PTP, e deixa de ser possvel uma atribuio da trajetria.

ProgHBExperte R4.1 08.01.02 pt

171 de 216

Programao perito No exemplo seguinte so programadas aes de comutao com a indicao DISTANCE, e tambm com a indicao PATH. Os vrios pontos de comutao e a trajetria de movimento encontram--se representados em Fig. 46. DEF TRIG ( ) ;--------- Seo de declarao --------EXT BAS (BAS_COMMAND :IN,REAL :IN) DECL AXIS HOME INT I SINAL COLA $OUT[3] ;---------- Inicializao --------INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( ) INTERRUPT ON 3 BAS (#INITMOV,0 ) ;inicializao de velocidades, ;aceleraes, $BASE, $TOOL, etc. $APO.CDIS=35 ;determinar distncia de aproximao HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 30,A6 0} POS0={POS: X 1564,Y -114,Z 713,A 128,B 85,C 22,S 6,T 50} POS1={X 1383,Y -14,Z 713,A 128,B 85,C 22} POS2={X 1383,Y 200,Z 713,A 128,B 85,C 22} POS3={X 1527,Y 200,Z 713,A 128,B 85,C 22} POS4={X 1527,Y 352,Z 713,A 128,B 85,C 22} FOR I=1 TO 16 $OUT[I]=FALSE ENDFOR ;------------- Seo principal -----------PTP HOME ;movimento SAK PTP POS0 TRIGGER WHEN DISTANCE=0 DELAY=40 DO $OUT[1]=TRUE TRIGGER WHEN PATH=-30 DELAY=0 DO SP1(2) PRIO=-1 LIN POS1 TRIGGER WHEN DISTANCE=1 DELAY=-50 DO COLA=TRUE TRIGGER WHEN PATH=180 DELAY 55 DO PULSE($OUT[4],TRUE,0.9) TRIGGER WHEN PATH=0 DELAY=40 DO $OUT[6]=TRUE LIN POS2 C_DIS TRIGGER WHEN DISTANCE=0 DELAY=40 DO PULSE ($OUT[5],TRUE,1.4 ) TRIGGER WHEN PATH=-20 DELAY=-15 DO $OUT[8] LIN POS3 C_DIS TRIGGER WHEN DISTANCE=1 DELAY=-15 DO SP1 (7 ) PRIO= -1 LIN POS4 PTP HOME END DEF SP1 (NR :IN ) INT NR IF $IN[1]==TRUE THEN $OUT[NR]=TRUE ENDIF END

ProgHBExperte R4.1 08.01.02 pt

172 de 216

Trigger aes de comutao referentes trajetria (continuao)

POS 1 30

2B

POS 2 2
$OUT[3] $OUT[6]

$OUT[2]

2E
$OUT[5]

180 8

3B

$OUT[1]

$OUT[8]

POS 0 3 POS 3

20
$OUT[4] $OUT[7]

3E POS 4

Fig. 46 Pontos de comutao e trajetria de movimento referentes ao exemplo anterior

ProgHBExperte R4.1 08.01.02 pt

173 de 216

Programao perito

9.3
9.3.1

Tips & Tricks


Sobreposio de instrues de trigger
O programa apresentado pode ser executado, mas a mesma prioridade das instrues de trigger pode criar um problema. ;FOLD PTP P1 TRIGGER WHEN DISTANCE=0 DELAY=0 DO SUB1() PRIO=15 PTP P1 ... ;ENDFOLD ... ... ;FOLD PTP P2 TRIGGER WHEN DISTANCE=0 DELAY=--75 DO SUB1() PRIO=15 ... ;ENDFOLD Se a primeira instruo de trigger ainda no estiver terminada, enquanto j est a ser executada a segunda instruo de trigger, emitida uma mensagem de erro chamando a ateno para o tempo de execuo. Este pode ser o caso, por exemplo, quando os dois pontos estiverem muito prximos um do outro. Para a soluo h duas alternativas: G G Atribuir manualmente uma prioridade diferente s duas instrues de trigger; Atribuir s duas instrues de trigger a prioridade --1, para que o sistema atribua automaticamente a prioridade correta.

ProgHBExperte R4.1 08.01.02 pt

174 de 216

10

Listas de dados

10
10.1

Listas de dados
Listas de dados locais
As listas de dados destinam--se a disponibilizar as declaraes especficas do programa ou as declaraes superiores. Destas fazem parte tambm as informaes acerca dos pontos, p.ex., as coordenadas: G Uma lista de dados pode ser elaborada em relao a qualquer ficheiro SRC. A lista de dados tem ento o mesmo nome que o ficheiro SRC, mas termina com a extenso .DAT. A lista de dados local, embora seja um ficheiro prprio. Numa lista de dados s podem estar declaraes e inicializaes. Na mesma linha pode haver declaraes e inicializaes. As variveis de sistema no so aceites.

G G G G DEFDAT

A declarao das listas de dados realiza--se analogamente declarao dos ficheiros SRC: A declarao iniciada com a palavra chave DEFDAT e o nome de programa e terminada com a palavra chave ENDDAT. A inicializao das variveis realiza--se atravs da atribuio de um valor respetiva varivel, diretamente na linha de declarao. PROG_1.SRC DEF PROG_1 ( ) HALT OTTO = 25 HALT END No incio, OTTO 0 PROG_1.DAT DEFDAT PROG_1 INT OTTO = 0 ENDDAT

Depois da execuo do programa, OTTO = 25

DEFDAT PROG_1 INT OTTO = 25 ENDDAT

Fig. 47 Inicializao e atribuio de valores a variveis declaradas em listas de dados Uma vez que a declarao e a inicializao se realizam na lista de dados, no necessrio repetir este procedimento no programa principal. Se for atribudo varivel OTTO um valor novo no programa principal, este introduzido tambm na lista de dados onde se mantm memorizado permanentemente (ver Fig. 47). Depois de desligar/ligar a unidade de comando, os trabalhos so executados com o valor novo. Este procedimento indispensvel para uma correo On--line e outras correes do programa. Quando se pretende iniciar um programa principal sempre com o mesmo valor, necessrio predefinir a respetiva varivel no programa principal com o valor pretendido. Nas listas de dados podem encontrar--se as declaraes seguintes: G Declaraes externas para subprogramas e funes que so utilizadas no ficheiro SRC. G Declaraes de importao para variveis importadas. G Declaraes e inicializaes de variveis que so utilizadas no ficheiro SRC. G Declaraes de nomes de sinais e nomes de canais que so utilizados no ficheiro SRC. G Declaraes de tipos de dados e tipos de enumerao (Struc, Enum) que so utilizados na lista de dados ou no ficheiro SRC.
ProgHBExperte R4.1 08.01.02 pt

175 de 216

Programao perito

10.2

Listas de dados globais


As variveis definidas numa lista de dados podem ser tornadas acessveis a um programa principal estranho.

PUBLIC

Para esse efeito, a lista de dados tem de ser definida na linha de cabealho como publicamente acessvel, atravs da palavra chave PUBLIC. Agora existem duas possibilidades para a declarao da varivel: G Uma varivel definida na lista de dados, p.ex., com INT OTTO = 0, e no programa principal estranho esta varivel ter de ser importada atravs da instruo Import, a fim de torn--la acessvel. A uma varivel importada pode ser atribudo no programa principal um nome diferente do que ela tem na lista de dados, de onde foi importada. Assim, se quiser utilizar num programa PROG_2() a varivel OTTO da lista de dados PROG_1 acima indicada, ter de programar, alm da palavra chave PUBLIC na lista de dados, a declarao de importao seguinte no programa PROG_2(): IMPORT INT OTTO_2 IS /R1/PROG_1..OTTO A varivel OTTO da lista de dados PROG_1.DAT no diretrio /R1 conhecida sob o nome OTTO_2 agora tambm no programa PROG_2() (ver Fig. 48). PROG_1.SRC DEF PROG_1 ( ) HALT OTTO = 25 END PROG_2.SRC DEF PROG_2 ( ) IMPORT INT OTTO_2 IS /R1/PROG_1..OTTO END PROG_1.DAT DEFDAT PROG_1 PUBLIC INT OTTO = 0 ENDDAT

IMPORT

Fig. 48 Importar variveis de listas de dados estranhas com Import

ProgHBExperte R4.1 08.01.02 pt

176 de 216

10 Global G

Listas de dados (continuao)

A varivel declarada como Varivel global, p.ex., DECL GLOBAL INT OTTO = 0 e est acessvel em cada programa principal estranho sem instruo de importar. Se foi declarada uma varivel global, no possvel alterar o nome da varivel num programa principal estranho.

PROG_1.SRC DEF PROG_1 ( ) HALT OTTO = 25 END PROG_2.SRC DEF PROG_2 ( ) END

PROG_1.DAT DEFDAT PROG_1 PUBLIC DECL GLOBAL INT OTTO = 0 ENDDAT

Fig. 49 Importar variveis de listas de dados estranhas sem Import A declarao de uma varivel global s admissvel em listas de dados, ao us--la em ficheiros SRC ou SUB, emitida uma mensagem de erro.

Na lista de dados de sistema global previamente definida $CONFIG.DAT, podem ser definidas variveis, estruturas, canais e sinais que sejam vlidos durante um tempo prolongado e que tenham um significado superior para muitos programas. As variveis na $CONFIG.DAT no tero de ser declaradas com IMPORT, uma vez que todos os programas de usurio as reconhecem automaticamente. Mais informaes acerca da $CONFIG.DAT encontram--se no captulo [Variveis e declaraes], pargrafo [Variveis de sistema e ficheiros de sistema].

ProgHBExperte R4.1 08.01.02 pt

177 de 216

Programao perito

ProgHBExperte R4.1 08.01.02 pt

178 de 216

11

Editor externo

11

Editor externo
Este programa adicional proporciona ao software do rob funes que no esto disponveis no painel de operao.

Limpar programa Pontos de trajetria e parmetros de movimento no referenciados so apagados na lista de dados. Ativar e deslocar interruptores de fim de curso Manipulaes de bloco -- Marcar bloco e copiar, apagar ou cortar. -- Converter a trajetria do rob na rea marcada, isto , o ponto da seo de trajetria marcada que foi o primeiro a ser programado atingido em ltimo lugar mas o ltimo ponto programado o primeiro a ser atingido. -- Refletir a trajetria do rob na rea marcada no plano X--Z do sistema de coordenadas do mundo. -- Alterar os parmetros de movimento (velocidade, acelerao, etc.) na rea marcada. -- Deslocar todos os pontos dentro da seo de trajetria marcada no sistema de coordenadas da pea (BASE), da ferramenta (TOOL) ou do mundo (WORLD). A deslocao ou rotao poder ser realizada pela introduo manual de um offset no respetivo sistema de coordenadas ou pela programao de pontos de referncia. -- Deslocao especfica dos eixos de todos os pontos na rea marcada. Adaptar pontos de trajetria -- a um outro sistema de coordenadas da ferramenta ou -- a um outro sistema de coordenadas da pea. Adaptar pontos de trajetria -- enquanto est a ser executado um programa na unidade de comando, as coordenadas de ponto podem ser deslocadas no sistema de coordenadas da ferramenta, da base e do mundo.

ProgHBExperte R4.1 08.01.02 pt

179 de 216

Programao perito

11.1

Iniciar o editor externo


O Editor Externo est disponvel apenas a partir do grupo de usurios Perito. Ative o editor externo com a ajuda do menu Entr.Serv e da opo a disponibilizada Assistncia.

Se o ponto de menu Entrada em servio no estiver disponvel, ter de desselecionar o programa anteriormente selecionado. Ajuda de memria: Para esse efeito selecione no menu Processar a opo Cancelar programa.

A seguir, mostrado no display o Editor Externo.

Selecionar ficheiros

Logo depois do arranque do editor, aparece o dilogo Selecionar ficheiros. Use aqui as teclas do cursor e para selecionar o ficheiro que pretende editar. Esto disponveis todos os ficheiros SRC do diretrio R1, exceto aqueles ficheiros padro que esto definidos na HotEdit.ini (trajeto C:\Krc\Util\ ).

ProgHBExperte R4.1 08.01.02 pt

180 de 216

11

Editor externo (continuao)

Se o Editor externo for iniciado como programa offline, esto disponveis, adicionalmente, tambm campos de seleo para a indicao do caminho.
Selecionar ficheiros

Se marcou o ficheiro desejado desta forma, ele carregado para o editor se voc premir a respetiva softkey ou a tecla Enter. A durao do processo de carregamento depende do tamanho do ficheiro. Se aparecer a mensagem Ficheiro *.DAT no encontrado, significa que tentou carregar para o editor um programa em relao ao qual no existe nenhuma lista de dados. Na verso apresentada do editor, esta funo no est disponvel. Confirme esta mensagem com a tecla Enter. Abra o menu Ficheiro e selecione a opo Abrir para aceder janela Selecionar ficheiros.

Se o ficheiro foi carregado, o programa mostrado de forma semelhante que usada pelo editor do painel de operao.

ProgHBExperte R4.1 08.01.02 pt

181 de 216

Programao perito

11.2

Operao
Os elementos do painel de operao normal tambm se encontram no do editor externo. Tambm aqui existem as menukeys, statuskeys, softkeys, uma caixa de programa, uma caixa de mensagens e uma barra de estado. Os menus podem ser abertos alternativamente, premindo simultaneamente a tecla ALT e a letra sublinhada na menukey. A seleo de uma opo de menu realiza--se de forma anloga.

Statuskeys As statuskeys Para cima ou Para baixo permitem deslocar a marcao da linha (o foco), linha por linha, na direo do incio ou do fim da lista. As teclas do cursor " ou # e as teclas PGUP ou PGDN tm a mesma funo.

foco

foco Com as teclas PgUp ou PgDn voc pode folhear para trs ou para a frente. Para isso tem de desligar a funo NUM ou usar um teclado externo.

O contedo da caixa de mensagens apagado. Se voc premir a statuskey KRL, mostrado o programa da mesma forma como no modo de perito, com as definies Abrir todas as FOLDS e Limited Visibility off. Na rea FOLD mostrada a instruo marcada com o foco (ficheiro SRC). Na rea Dados so mostrados os dados pertencentes instruo marcada (ficheiro DAT).

ProgHBExperte R4.1 08.01.02 pt

182 de 216

11

Editor externo (continuao)

Ao premir a statuskey Lupa voc volta representao do programa inteiro. Barra de softkeys Esta softkey corresponde instruo de menu Fechar ficheiro que fecha o programa atual, mas deixa continuar o editor. Caixa de mensagens Na caixa de mensagens so mostradas as mensagens relevantes para o Editor Externo.
OK OK

No: Tempo: Result:

Tipo e nmero da mensagem O momento em que a mensagem foi retirada A informao sobre a execuo da ao

Mensagem: O tipo de mensagem

ProgHBExperte R4.1 08.01.02 pt

183 de 216

Programao perito Barra de estado Na barra de estado so mostradas outras informaes.

NUM: CAPS: ExtEdit: Palete: 12:56:

O bloco numrico est ativado A tecla de maisculas est desligada O mdulo Editor Externo est ativo O nome do programa atualmente aberto O tempo de sistema atual

ProgHBExperte R4.1 08.01.02 pt

184 de 216

11

Editor externo (continuao)

11.3

Menu Ficheiro
Neste menu encontram--se as funes para lidar com os ficheiros.

11.3.1

Abrir
Ao usar esta opo, aparece a janela Selecionar ficheiros, como j descrito anteriormente no pargrafo 11.1.

11.3.2

Memorizar
Se o contedo do ficheiro carregado para o editor foi alterado com a ajuda das funes disponveis, antes de guardar a nova verso deste ficheiro ou antes de terminar a sesso do editor, feita uma pergunta para confirmar a introduo das alteraes realizadas.

Sim

No

Para introduzir as alteraes realizadas, basta premir a tecla Enter para confirmar a preseleo. Neste processo, os contedos da verso existente do ficheiro editado so, pelo menos em parte, irremediavelmente perdidos. Para cancelar a ao, voc deve premir primeiro uma das teclas do cursor, para deslocar o foco at ao boto No. Ao premir agora a tecla Enter, a seleo executada. Neste caso, a verso j existente do ficheiro editado mantm--se inalterada.

ProgHBExperte R4.1 08.01.02 pt

185 de 216

Programao perito

11.3.3

Imprimir
Esta instruo permite a sada de programas no meio definido em Opes--> Definio de sadas.

Esto disponveis as funes seguintes: Programa atual O ficheiro mostrado no editor externo emitido de forma igual ao modo representado na caixa do editor.

KRC:\Palette.SRC ************************************* INI 1:PTP HOME Vel=100 % DEFAULT 2:PTP P1 CONT Vel=100 % PDAT1 Tool[1] Base[0] 3:LIN P2 CONT Vel=1.5 m/s CPDAT1 Tool[1] Base[0] 4:CIRC P3 P4 Vel=2 m/s % CPDAT2 Tool[1] Base[0] 5:PTP HOME Vel=100 % DEFAULT END

Todos os usurios Todos os programas de usurio so emitidos. Na sada para o meio Ficheiro criado automaticamente o subdirectrio USERPROG.

A sada atravs da opo todos os usurios pode levar algum tempo, conforme os ficheiros que esto a sair.

11.3.4

Fechar ficheiro
Caso o ficheiro que se encontra no editor tenha sido modificado desde o seu carregamento, voc pode guardar as modificaes (como descrito no pargrafo 11.3.2). Depois de fechar o ficheiro que se encontra no editor, as opes de menu Ficheiro e depois a opo Abrir (ver tambm pargrafo 11.3.1) permitem carregar para o editor um outro ficheiro.

ProgHBExperte R4.1 08.01.02 pt

186 de 216

11

Editor externo (continuao)

11.3.5

Terminar
Caso o ficheiro que se encontra no editor tenha sido modificado desde o seu carregamento, voc pode guardar as modificaes (como descrito no pargrafo 11.3.2). A janela do editor fechada aparecendo novamente o painel de operao do software do rob.

ProgHBExperte R4.1 08.01.02 pt

187 de 216

Programao perito

11.4

Menu Editar
Este menu contm uma srie de funes de bloco.

Para marcar uma rea, mantenha a tecla SHIFT premida e depois prima uma das duas statuskeys Para cima ou Para baixo ou a respetiva tecla do cursor.

rea marcada (marcao de bloco)

ESC

A marcao de um bloco pode ser novamente anulada com a tecla ESC.

11.4.1

Cortar (CTRL--X)
Apaga a seo de trajetria marcada do programa e mantm--la na memria temporria, pronta para qualquer insero.

11.4.2

Copiar ( CTRL--C)
Copia a seo de trajetria marcada para a memria temporria e mantm--na a pronta para qualquer insero.

11.4.3

Inserir como ...


Trajeto original (CTRL+V) Insere novamente o contedo da memria temporria seguindo a mesma ordem em que foi cortado, ou seja, copiado. Trajeto inverso Insere o contedo da memria temporria na ordem inversa. O ltimo ponto de trajetria da seo de trajetria marcada e cortada ou copiada colocado no incio do bloco inserido; o primeiro ponto de trajetria colocado no fim. Caso tenha sido programado, por exemplo, o trajeto at a um dispositivo, este trajeto pode ser inserido como trajeto inverso. Assim, j no h necessidade de programar o trajeto inverso.

ProgHBExperte R4.1 08.01.02 pt

188 de 216

11

Editor externo (continuao)

11.4.4

Apagar
A seo de trajetria marcada apagada sem ser guardada na memria temporria. Ao apagar uma seo de trajetria, esta irremediavelmente perdida. Caso tenha apagado algumas partes do programa por engano, feche o ficheiro sem guardar as alteraes e depois abra--o de novo.

11.4.5

Selecionar tudo
Todo o programa carregado para o editor marcado.

ProgHBExperte R4.1 08.01.02 pt

189 de 216

Programao perito

11.5

Menu Extras
Neste menu encontram--se opes para a manipulao geomtrica do programa.

As teclas do cursor ou permitem mover a marca de insero de um campo de entrada ao outro. Com esta softkey voc aceita os valores introduzidos. Esta softkey termina a entrada sem aceitar os valores.

11.5.1

Reflexo dos eixos


Com a ajuda desta funo poder refletir a posio dos pontos de trajetria programados no plano X--Z do sistema de coordenadas $ROBROOT. Uma condio prvia que pelo menos um passo de movimento esteja marcado. Z

X Nvel de reflexo Z X Depois de ter sido selecionada uma opo, aberta uma janela de dilogo onde ter de indicar o nome do ficheiro no qual o programa carregado com os pontos de trajetria refletidos guardado.

O processo iniciado premindo a tecla Enter, ao mesmo tempo que o programa guardado sob o nome indicado. A seguir, voc pode carregar este programa para o editor.

ESC

Para cancelar a ao, prima a tecla Esc.

ProgHBExperte R4.1 08.01.02 pt

190 de 216

11

Editor externo (continuao)

11.5.2

Deslocao manual
Esta funo permite deslocar a posio dos pontos de trajetria programados no: -- sistema de coordenadas da pea(BASE) -- sistema de coordenadas do mundo(WORLD) -- sistema de coordenadas da ferramenta(TOOL) ou -- especfico dos eixos. Ao ser selecionada uma das opes possveis, aberta uma caixa para a introduo dos valores desejados. Em funo do sistema de coordenadas, voc introduz ou a deslocao e toro ou os ngulos dos eixos.

BASE Por uma deslocao de ponto cartesiana base entende--se que um ponto qualquer no espao sofra uma deslocao relativa no sistema de coordenadas da origem (WORLD) que se encontra na base do rob. Com a ajuda do exemplo aqui representado, a deslocao de ponto cartesiana BASE explicada mais pormenorizadamente: Valores de entrada = valores relativos --Y [mm]; --X [mm]; A+[] Z+

Neste exemplo iria realizar--se uma deslocao relativa negativa em X, Y e uma rotao relativa positiva em torno de Z.

A+ Pnovo X+ Yantigo --Yr Pantigo --Xr Y+ Xantigo

ESC

A entrada do vector de deslocao realiza--se de forma numrica no respetivo campo de entrada. O acesso aos campos de entrada possvel com as teclas e . A deslocao iniciada com Instruo OK podendo ser cancelada, a qualquer momento, com Cancelar ou Esc. Introduza os valores relativos deslocao (X, Y, Z) em [mm] e toro (A, B, C) em [graus] nos respetivos campos de entrada.

ProgHBExperte R4.1 08.01.02 pt

191 de 216

Programao perito

TCP Uma deslocao de ponto cartesiana TCP significa que um ponto qualquer no espao sofre uma deslocao relativa em relao ao sistema de coordenadas TOOL. Com a ajuda do exemplo aqui representado, a deslocao de ponto cartesiana TCP explicada mais pormenorizadamente:

Zantigo --Zr Cr

Pnovo --Yr C Yantigo Pantigo X+ Valores de entrada = valores relativos --Y [mm]; --Z [mm]; C+[] Y+

Z+ Neste exemplo iria realizar--se uma deslocao relativa negativa em Y, Z e uma rotao relativa positiva em torno de X[]. Uma deslocao relativa em X no tomada em conta!

A entrada do vector de deslocao realiza--se de forma numrica no respetivo campo de entrada. O acesso aos campos de entrada possvel com as teclas e . A deslocao iniciada com Instruo OK podendo ser cancelada, a qualquer momento, com Cancelar ou Esc. Introduza os valores relativos deslocao (X, Y, Z) em [mm] e toro (A, B, C) em [graus] nos respetivos campos de entrada.

ProgHBExperte R4.1 08.01.02 pt

192 de 216

11

Editor externo (continuao)

WORLD Sob uma deslocao de ponto WORLD entende--se que o sistema de coordenadas de origem que normalmente se encontra na base do rob sofre uma deslocao relativa. Com a ajuda do exemplo aqui representado, a deslocao de ponto WORLD explicada mais pormenorizadamente: Valores de entrada = valores relativos +Y [mm]; +X [mm]; A--[] Z+

Neste exemplo iria realizar--se uma deslocao relativa positiva em X, Y e uma rotao relativa negativa em torno de Z. Z+novo

Porg

Y+ Pnovo +Yr X+novo A-Y+novo Introduza os valores relativos deslocao (X, Y, Z) em [mm] e toro (A, B, C) em [graus] nos respetivos campos de entrada. +Xr

X+

ProgHBExperte R4.1 08.01.02 pt

193 de 216

Programao perito Eixos Sob uma deslocao de ponto especfica dos eixos entende--se que um ponto qualquer no espao atingido por um movimento relativo dos eixos. Com a ajuda da figura aqui representada pretende--se proceder a uma deslocao relativa do eixo 5.

Palt A5 A5 alt neu Pneu Neste exemplo iria realizar--se uma rotao relativa positiva do A5 [_]. Uma rotao relativa dos outros eixos no tomada em conta! Valores de entrada = valores relativos +A5 []

A entrada da rotao do eixo realiza--se em graus ou em incrementos, em relao ao respetivo eixo. O acesso aos campos de entrada possvel com as teclas e . A deslocao iniciada com Instruo OK podendo ser cancelada, a qualquer momento, com Cancelar ou Esc. Introduza os valores relativos aos ngulos dos eixos (A1 ... A6) em [graus].

As indicaes tambm podem ser feitas de forma incremental (E1--E6)[Inc].

Incrementos = Impulsos de rotao dos outros acionamentos de eixo

ProgHBExperte R4.1 08.01.02 pt

194 de 216

11

Editor externo (continuao)

11.5.3

Alterao por blocos


Esta funo permite alterar dados de movimento nas partes marcadas de um programa. Ajuda de memria: A marcao de blocos realiza--se atravs de uma das teclas de estado Para cima ou Para baixo, ao mesmo tempo que se mantm premida a tecla SHIFT. Ao ativar a funo aparece a janela abaixo representada:

As teclas do cursor ou permitem mover a marca de insero de um campo de entrada ao outro. Os campos de lista so abertos com a ajuda da combinao de teclas ALT+, ou ALT+.

Depois de ter introduzido as alteraes pretendidas, prima a softkey Alterar. Pode sair da funo, a qualquer momento, premindo a softkey Cancelar.

11.5.4

Limpar lista de dados


Ao ativar esta funo, so apagados da lista de dados (*.DAT) pertencente ao programa os pontos de trajetria e parmetros de movimento no referenciados.

ProgHBExperte R4.1 08.01.02 pt

195 de 216

Programao perito

11.5.5

Adaptao TCP ou BASE


Esta funo permite adaptar um programa carregado para o editor a um outro sistema de coordenadas da ferramenta (TOOL) ou da pea (BASE). Ao ativar esta funo, aparece a janela abaixo representada. Como exemplo, foi escolhida aqui a adaptao TCP.

So mostrados todos os programas incluindo os respetivos pontos afetados pela adaptao Tool ou Base. Para poder mover a marca de insero de campo para campo, tero de estar ativadas as funes de comando do cursor no bloco de nmeros. Para esse efeito, prima brevemente a tecla NUM. A seguir, a combinao de teclas SHIFT+TAB permite passar a marca de insero de um campo ao outro. Os campos de lista so abertos com a ajuda da combinao de teclas ALT+, ou ALT+.

No campo de lista selecione na rea Dados TCP novos a ferramenta qual pretende adaptar o programa carregado. Nos campos de entrada X=, Y=, Z=, A=, B= e C=, os novos dados de ferramenta podero ser introduzidos tambm manualmente. Depois de ter introduzido as alteraes pretendidas, prima a softkey Alterar. Pode sair da funo, a qualquer momento, premindo a softkey Fim.

ProgHBExperte R4.1 08.01.02 pt

196 de 216

11

Editor externo (continuao)

11.6

Menu HotEdit
O menu HotEdit permite deslocar as coordenadas de ponto no sistema de coordenadas da ferramenta, da base ou do mundo, online, ou seja, durante a execuo do programa. A opo Limits permite limitar a deslocao.

11.6.1

Base, TCP e World


Coloque o cursor no passo de movimento que deseja deslocar ou marque vrios passos de movimento. Depois da seleo de uma das opes, aparece na margem inferior do display uma janela de dilogo onde pode ser introduzida a deslocao (X, Y, Z) e a toro (A, B, C) referente ao respetivo sistema de coordenadas. A janela de dilogo aqui mostrada representa tambm um exemplo para as outras janelas de dilogo.

O acesso aos campos de entrada possvel com as teclas e . Depois de voc ter dado todas as indicaes necessrias para a deslocao (nmeros inteiros), prima a softkey OK. Para terminar a ao sem realizar uma deslocao do programa, prima a softkey Cancelar.

A caixa de dilogo torna--se cinzenta, ao mesmo tempo que aparecem mais duas outras softkeys.

ProgHBExperte R4.1 08.01.02 pt

197 de 216

Programao perito

Agora, voc pode atribuir os valores introduzidos premindo a respetiva softkey. As alteraes realizadas nos dados ainda no so guardadas aqui e, por isso, podem ser novamente anuladas. Se resolveu fazer outra coisa, pode anular novamente esta atribuio. A softkey mostrada ao lado tem essa funo. Este boto s est disponvel depois da atribuio dos valores. Esta funo til, sobretudo, quando voc quer controlar o efeito da deslocao durante a execuo do programa. Se a deslocao corresponder s necessidades, voc pode guardar a modificao das coordenadas dos pontos no ficheiro DAT. Com a softkey Cancelar voc pode terminar a entrada, a qualquer momento, sem que as modificaes sejam guardadas.

Se um dos valores introduzidos se situar fora das tolerncias, aparece na caixa de deslocao do programa um aviso ou uma mensagem de erro a informar que o valor introduzido ultrapassa as tolerncias.

ProgHBExperte R4.1 08.01.02 pt

198 de 216

11

Editor externo (continuao)

11.6.2

Limits
Ao selecionar a opo Limits aberta a janela que contm as tolerncias de deslocao que podem ser alteradas.

Para proceder a uma alterao, use as teclas de seta ou e mova o cursor at ao local pretendido para introduzir a a nova tolerncia, atravs do bloco de nmeros. Para guardar os valores e terminar a ao prima a softkey OK. Para terminar sem guardar, prima Cancelar.

ProgHBExperte R4.1 08.01.02 pt

199 de 216

Programao perito

11.6.3

TTS (Sistema de coordenadas de correo)


Esta funo destina--se otimizao dos pontos no espao, com a ajuda do triedro que acompanha a trajetria (TTS), e pode ser usada com instrues de tecnologia (por exemplo, a soldadura com gs de proteo ou a colagem). A correo TTS est disponvel a partir do grupo de usurios perito e pode ser usada em todos os modos de servio. Com um programa selecionado o menu Entrada em servio no est disponvel. Nesse caso use a instruo de menu Processar --> Corrigir que est disponvel a partir do nvel de peritos.

A seguir, aberto o editor externo e voc pode proceder s correes necessrias. A correo online dos pontos s tida em considerao se naquele momento o ponteiro de avano principal ou de avano inicial ainda no tiver atingido o passo de instruo. Em cada correo de ponto os pontos necessrios so procurados na lista de dados local (*.DAT). Se um dos pontos necessrios no for encontrado, emitida uma mensagem de erro. A procura do ponto que define a direo da trajetria realiza--se sempre para cima, a partir do local onde se encontra o ponto a corrigir. Excetua--se o ponto final de um contorno de soldadura ou colagem, uma vez que aqui procurado sempre nos nmeros de passo seguintes mais baixos. Uma mudana de base entre dois passos de movimento ignorada.

11.6.3.1 Ponto no TTS Marque no editor externo a instruo de movimento desejada e use o comando HotEdit --> TTS --> Ponto no TTS. No display aberta a caixa seguinte.

A opo Ponto no TTS s est disponvel se estiver selecionado um passo de movimento para soldar ou colar.

ProgHBExperte R4.1 08.01.02 pt

200 de 216

11

Editor externo (continuao)

Se estiverem marcadas vrias instrues de movimento, a correo refere--se sempre primeira instruo marcada. Use as teclas do cursor ou e coloque o foco no local desejado. Introduza os novos valores atravs das teclas do bloco numrico. Eixo X O eixo X no sistema de coordenadas TTS corresponde a um vector de unidade ao longo da tangente de trajetria. +Z +Y +X P2

+Z +Y +X Na instruo LIN o eixo X decorre ao longo da trajetria de movimento P1

+Z +Z +Y +Y

+X

+X P2 Na instruo CIRC o eixo X decorre ao longo das tangentes de trajetria

P1

O eixo X do sistema de coordenadas da ferramenta no deve decorrer paralelamente tangente de trajetria, caso contrrio, no pode ser formado o sistema de coordenadas de correo. Nesse caso, emitida a respetiva mensagem de erro.

Eixo Y Do vector de unidade ao longo da tangente de trajetria (+X) e do eixo X do sistema de coordenadas da ferramenta (+XTool) formado um plano de fixao. O eixo Y encontra--se verticalmente em relao a este plano.
ProgHBExperte R4.1 08.01.02 pt

201 de 216

Programao perito

+Z +Y +X +XTool P2

P1

O eixo Y encontra--se verticalmente no plano de fixao formado por +X e +XTool.

Eixo Z Do vector de unidade ao longo da tangente de trajetria (+X) e do eixo Y (+Y) formado um plano de fixao. O eixo Z encontra--se verticalmente em relao a este plano.

+Z +Y +X P2

O eixo Z encontra--se verticalmente no plano de fixao formado por +X e +Y P1

Correo de ponto PTP, LIN Depois de voc ter introduzido as alteraes nos campos de entrada, aperte a softkey OK. Agora, voc pode atribuir os valores introduzidos premindo a respetiva softkey. As alteraes realizadas nos dados ainda no so guardadas aqui e, por isso, podem ser novamente anuladas. Se resolveu fazer outra coisa, pode anular novamente esta atribuio. A softkey mostrada ao lado tem essa funo. Este boto s est disponvel depois da atribuio dos valores. Aperte novamente a softkey OK e confirme a seguinte pergunta de segurana, a fim de guardar as alteraes.
ProgHBExperte R4.1 08.01.02 pt

202 de 216

11

Editor externo (continuao)

Sim

No

Com a softkey Cancelar voc pode terminar a entrada, a qualquer momento. Correo de ponto CIRC Depois da entrada das alteraes atribua as correes ao ponto auxiliar (PA). Com esta softkey selecione o ponto de destino (PD), depois de as alteraes terem sido introduzidas nos campos de entrada. Agora, voc pode atribuir os valores introduzidos premindo a respetiva softkey. As alteraes realizadas nos dados ainda no so guardadas aqui e, por isso, podem ser novamente anuladas. Se resolveu fazer outra coisa, pode anular novamente esta atribuio. A softkey mostrada ao lado tem essa funo. Este boto s est disponvel depois da atribuio dos valores. Se a deslocao corresponder s necessidades, voc pode salvar a modificao das coordenadas dos pontos confirmando a pergunta de segurana.

Sim

No

Com a softkey Cancelar voc pode terminar a entrada, a qualquer momento, sem que as modificaes sejam guardadas.

ProgHBExperte R4.1 08.01.02 pt

203 de 216

Programao perito 11.6.3.2 Limits--TTS Aqui voc pode definir os valores--limite da correo TTS. Estes valores--limite so supervisionados automaticamente na correo do ponto.

As tolerncias mximas admissveis so fixadas atravs do ficheiro C:\KRC\Util\HotEdit.ini. Se for introduzido um valor maior, emitida uma mensagem de erro. Para a correo TTS no conveniente definir valores--limite superiores a 5 mm. Use as teclas do cursor ou e coloque o foco no local desejado. Introduza a nova tolerncia atravs das teclas do bloco numrico. Aperte a softkey OK e guarde as tolerncias. Se voc no quiser transferir os valores, aperte a tecla Cancelar.

ProgHBExperte R4.1 08.01.02 pt

204 de 216

11

Editor externo (continuao)

11.7

Menu ExtExtras
Aqui voc ter sua disposio as funes para a reflexo do eixo, a deslocao e a definio dos interruptores de fim de curso do software.

Este menu s est disponvel enquanto no for carregado nenhum programa para o editor externo.

11.7.1

Ficheiro -- Reflexo dos eixos


Ao contrrio da funo Reflexo de eixos (captulo 11.5.1), que permite refletir pontos de trajetria marcados de determinados passos de movimento selecionados, a Reflexo de eixos -- ficheiro permite a reflexo de programas de movimento completos. Depois de iniciar a funo, introduza primeiro o ficheiro de origem que deve ser refletido.

Use as teclas do cursor " ou # e selecione um ficheiro para a reflexo de eixos. Depois de ter marcado o ficheiro selecionado, prima a softkey Seta para a direita.

Pode sair da funo, a qualquer momento, premindo a softkey Cancelar.


ProgHBExperte R4.1 08.01.02 pt

205 de 216

Programao perito

Introduza para o ficheiro refletido um nome que no deve ter mais que 8 caratres. Esta softkey permite voltar pgina anterior onde voc pode selecionar um outro ficheiro de origem. Depois de ter introduzido um nome para o ficheiro, prima esta softkey.

ProgHBExperte R4.1 08.01.02 pt

206 de 216

11

Editor externo (continuao)

Agora, voc tem a possibilidade de introduzir um comentrio que ento mostrado no navegador. Esta softkey permite voltar pgina anterior onde voc pode introduzir o nome do ficheiro a criar (refletido). Depois de ter introduzido o comentrio desejado, prima esta softkey. A seguir, criado o respetivo programa. Agora, voc pode folhear para trs, com a ajuda da softkey Seta para a esquerda, por exemplo, para criar ainda um outro programa ou para modificar o comentrio. Alm disso, voc tem a possibilidade de sair da funo Ficheiro -- Reflexo dos eixos. Para isso use a softkey Fechar.

ProgHBExperte R4.1 08.01.02 pt

207 de 216

Programao perito

11.7.2

Ficheiro -- Deslocar
Esta funo permite deslocar a posio dos pontos de trajetria marcados programados com a ajuda de um vector (2 pontos) ou deslocar e simultaneamente rodar o sistema de coordenadas usado (6 pontos). 2 pontos Para a funcionalidade deslocao 2 pontos ter de ser programado um ficheiro de referncia (qualquer nome; .src, .dat). Nesse ficheiro de referncia so guardados dois pontos. Estes pontos definem o vector de deslocao pelo qual os pontos marcados so deslocados. 6 pontos A funcionalidade deslocao 6 pontos trabalha segundo o mesmo princpio. No respetivo ficheiro de referncia devem ser programados, ao todo, seis pontos. Os primeiros trs pontos definem a base de origem, os ltimos trs pontos a base de destino. Para origem e destino devem ser introduzidos sempre pontos idnticos. Com estes valores so calculadas as bases. A deslocao e a toro entre a base de origem e a base de destino determinam o valor em torno do qual os pontos marcados so deslocados. O vector ter de ser guardado num ficheiro antes de ativar a funo. Alm disso, tero de ser marcados os passos de movimento que se pretendem deslocar.

Depois da seleo da opo deslocao de 2 pontos ou 6 pontos, o programa necessita da indicao do respetivo ficheiro de referncia.

Pode sair da funo, a qualquer momento, premindo a softkey Cancelar. Nesse momento voc tem as possibilidades seguintes:

ProgHBExperte R4.1 08.01.02 pt

208 de 216

11 11.7.2.1 Utilizar o ficheiro de referncia existente

Editor externo (continuao)

Com esta softkey voc pode indicar um ficheiro de referncia e um ficheiro a deslocar.

Em primeiro lugar, use as teclas do cursor e selecione o ficheiro de referncia e a seguir prima a softkey Seta para a direita. Com esta softkey voc volta pgina anterior.

Use novamente as teclas do cursor para marcar o ficheiro que pretende deslocar. A seguir volte a premir a softkey Seta para a direita.
ProgHBExperte R4.1 08.01.02 pt

209 de 216

Programao perito Com esta softkey voc volta pgina anterior. A seguir, o ficheiro a deslocar carregado para o editor. Marque aqui as instrues de movimento que devem ser deslocadas.

Prima novamente a softkey Seta para a direita. A seguir, os pontos selecionados so deslocados no ficheiro. O decurso indicado por uma indicao de progresso por cima da janela de mensagens. Com esta softkey voc volta pgina anterior. Na janela de mensagens mostrado o resultado da ao.

ProgHBExperte R4.1 08.01.02 pt

210 de 216

11 11.7.2.2 Criar novo ficheiro de referncia

Editor externo (continuao)

Esta softkey permite criar um novo ficheiro de referncia. A seguir, selecionado este novo programa de referncia, para que o operador possa programar os pontos necessrios.

Depois da programao desselecione o programa e inicie o editor externo de novo. Depois proceda de acordo com a descrio no captulo 11.7.2.1.

ProgHBExperte R4.1 08.01.02 pt

211 de 216

Programao perito

11.7.3

Definir interruptores de fim de curso do software


Esta funo permite adaptar os interruptores de fim de curso de software dos vrios eixos aos programas de movimento. Para esse efeito, inicie a funo Definir interruptores de fim de curso de software e depois volte novamente ao painel de operao do software de rob, com a ajuda da tecla de janela. A voc inicia os programas de movimento cujos valores de eixo so supervisionados no fundo. Depois de terem passado todos os programas relevantes para si, ative a funo de novo. Os valores assim determinados podem ser definidos como interruptores de fim de curso de software.

As posies dos eixos so supervisionadas no fundo enquanto a funo Definir interruptores de fim de curso de software estiver ativa. Os respetivos valores mnimos ou mximos verificados bem como as posies atuais dos eixos A1 ... A6 so introduzidos nos campos correspondentes. Os eixos para os quais devem ser definidos os interruptores de fim de curso podem ser marcados com a ajuda de uma caixa de verificao. Para a seleo dos eixos desejados use as teclas do cursor. A tecla de espao permite a ativao ou desativao do respetivo eixo. Um tique significa que para este eixo pode ser definido o interruptor de fim de curso de software. Reset repe os valores originais dos interruptores de fim de curso de software. A softkey Set define os interruptores de fim de curso de software dos eixos selecionados de novo. Esta ao poder ser anulada, a qualquer momento, mesmo numa altura posterior, premindo a softkey Reset. Aos valores medidos dos eixos adicionado um tampo de 5.

ProgHBExperte R4.1 08.01.02 pt

212 de 216

11

Editor externo (continuao)

11.8

Menu Opes
6 Opes

No menu Opes podem ser definidas determinadas definies bsicas do editor externo.

11.8.1

Definio de sadas
Atravs deste menu pode ser definido o meio de sada desejado, ou seja, aquele que usado com Imprimir --> programa atual ou Imprimir --> todos os usurios.

Impressora Se houver uma impressora configurada no sistema operativo, esta que usada para a sada. Caso no tenha sido configurada uma impressora, a janela de mensagens mostra a respectiva mensagem.

Editor O programa selecionado carregado para o editor disponibilizado pelo sistema operativo WordPad, a fim de ser editado.

Ficheiro (Arquivo) Em caso de sada do programa atual atravs de Imprimir, este programa guardado como ficheiro de texto no caminho ou com o nome de ficheiro definido atravs de Diretrio set. Se a sada de todos os programas de usurio se realizar atravs de Imprimir, na pasta definida com Diretrio set criado o subdirectrio USERPROG onde os programas so guardados como ficheiros de texto.
ProgHBExperte R4.1 08.01.02 pt

213 de 216

Programao perito

A definio padro para Diretrio set C:\.

Com um editor de texto, qualquer programa guardado pode ser visualizado ou modificado.

Diretrio set Esta opo s necessria quando se pretende guardar os programos como ficheiros no disco duro. Na janela de dilogo pode ser indicado o diretrio de destino e o nome do ficheiro que se pretende imprimir. Se todos os programas de usurio sarem atravs de Arquivo (Ficheiro) criado o subdirectrio USERPROG e os ficheiros de texto so guardados a.

ProgHBExperte R4.1 08.01.02 pt

214 de 216

11

Editor externo (continuao)

11.9

Menu Ajuda
Neste menu voc pode verificar a verso e escolher uma opo de configurao.

11.9.1

Verso
Na janela de mensagens mostrado o nmero de verso do editor externo.

nmero de verso

11.9.2

Sempre no primeiro plano


Ao selecionar esta opo, o painel de operao do software de rob j no mostrado em primeiro plano, at ao momento em que o editor terminado.

ProgHBExperte R4.1 08.01.02 pt

215 de 216

Programao perito

NOTAS:

ProgHBExperte R4.1 08.01.02 pt

216 de 216

Index

Smbolos
.ERR, 12 !, 106 ! -- carter, 103 ?, 107 :, 108 # -- carter, 41 #BASE, 65, 79 #CONSTANT, 78 #INITMOV, 78, 79 #PATH, 79 #TCP, 65 #VAR, 78 $ -- carter, 55 $ACC.CP, 77 $ACC.ORI1, 77 $ACC.ORI2, 77 $ACC_AXIS, 66 $ADVANCE, 86 $ALARM_STOP, 55, 56 $APO.CDIS, 93, 96 $APO.CORI, 93, 96 $APO.CPTP, 90 $APO.CVEL, 93, 96 $APO_DIS_PTP, 90 $BASE, 63, 70 $CIRC_TYPE, 79, 82 $CONFIG.DAT, 8, 57 $CUSTOM.DAT, 56 $CYCFLAG, 55 $FLAG, 54 $IBUS_ON, 56 $IPO_MODE, 65 $MACHINE.DAT, 8, 56 $NULLFRAME, 70 $NUM_AX, 56 $ORI_TYPE, 78, 82 $OUT_C, 133 $POS_ACT, 65 $PRO_MODE, 22 $PSER, 56 $ROBCOR.DAT, 8, 57 $ROBROOT, 63, 70 $SET_IO_SIZE, 133 $TIMER, 54 $TIMER_FLAG, 54 $TIMER_STOP, 54 $TOOL, 63, 70

$VEL.CP, 77 $VEL.ORI1, 77 $VEL.ORI2, 77 $VEL_AXIS, 66 $WORLD, 63, 70

Nmeros
2--dimens., 36 3--dimens., 37

A
A10.DAT, 8 A10.SRC, 8 A10_INI.DAT, 8 A10_INI.SRC, 8 A20.DAT, 8 A20.SRC, 8 A50.DAT, 8 A50.SRC, 8 Abrir todas as FOLD, 19 ABS(X), 52 Ao de comutao, 169 Acelerao, 77 Aceleraes dos eixos, 68 ACOS(x), 52 Adaptao BASE, 196 Adaptao TCP, 196 Agregado, 38 Alterao de programas, 14 Alterao por blocos, 195 Ambigidades, 74 ngulo circular, 84 ANIN, 141 ANIN OFF, 141 ANIN ON, 141 ANIN/ANOUT, 138 ANOUT OFF, 138 ANOUT ON, 138 Apagar, 15 Aproximao, 89 Aproximao CIRC--CIRC, 96 Aproximao CIRC--LIN, 96 Aproximao LIN--CIRC, 98 Aproximao LIN--LIN, 93 Aproximao PTP -- trajetria, 99 Aproximao PTP--PTP, 90 Aproximao trajetria -- PTP, 100 Arco coseno, 52 Index -- i

Index Arco seno, 52 Arco tangente, 52 ARCSPS.SUB, 8 Assistente KRL, 105 ATAN2(Y,X), 52 Ativar o interrupt, 156 Atribuio de valor, 29 Avano, 86 Avano do computador, 86 AXIS, 40, 60, 107 Constante + referente trajetria, 79 Constante + referente ao espao, 81 CONTINUE, 88 Continuous Path, 77 Contorno de aproximao, 89 Controle de execuo do programa, 115 Copiar, 14 Correo de programa, 14 Corrente cinemtica, 64, 65 Cortar, 15 COS(X), 52 Criar e editar programas, 11 Criar um programa novo, 11 Critrio de distncia, 93 Critrio de orientao, 93 Critrio de velocidade, 93 CSTEP, 22 CTRL--C, 14 CTRL--V, 15 CTRL--X, 15 Cursor de edio, 105

B
B_AND, 49, 51 B_EXOR, 49, 51 B_NOT, 49, 51 B_OR, 49, 51 BAS.SRC, 8, 72 BASE, 65 Bin Dec, 34 Bloquear / Liberar, 156 BOOL, 33, 34 BOSCH.SRC, 8 BRAKE, 160

D
DECL, 31 Declarao, 10 DEF, 9, 145 DEFDAT, 175 DEFFCT, 146 Desativar interrupts, 156 Deslocao Home, 73 Deslocao manual, 191 DIGIN, 143 DIGIN OFF, 143 DIGIN ON, 143 DISTANCE, 166

C
C_DIS, 93, 96, 109 C_ORI, 93, 96, 109 C_PTP, 90, 109 C_VEL, 93, 96, 109 CA, 84 Campo bidimensional, 36 Campo tridimensional, 37 Campos, 35 CELL.DAT, 8 CELL.SRC, 8, 9 CHAR, 33, 35 Cinemticas de rob ambguas, 74 CIRC, 84, 113 CIRC !, 103 CIRC_REL, 84, 113 Coincidncia de passos, 73 Comentrio, 27 Compilador, 12 Compilar, 12 Conceito de ficheiro, 9 Concepo e elaborao de programas, 7 CONFIRM, 126

E
E6AXIS, 40, 107 E6POS, 107 Editar, 12 Editor, 14 Editor de ligao, 12 Editor externo, 179 ELSE, 116 END, 9 ENDFOLD, 19 ENDFOR, 118 ENDLOOP, 123 Index -- ii

Index ENDWHILE, 120 Entradas analgicas, 141 Entradas digitais, 143 Entradas/sadas binrias, 128 Entradas/sadas digitais, 131 ENUM, 40 Especficos dos eixos, 59 Estrutura de ficheiro, 9 Estruturas, 38 Estruturas predefinidas, 40 EXIT, 123 EXT, 72 Incio da aproximao, 93 Instruo de salto, 115 Instrues, 10 Instrues de entrada/sada, 127 Instrues de espera, 124 Instrues de movimento, 59 INT, 33 Interligao, 48 Interligao de bits E, 49 Interligao de bits OU, 49 Interligao de bits OU exclusivo, 49 Interligao de frame, 43 Interpolao referente base, 64 Interpolao referente garra, 65 Interrupt, 154 Interruptores de fim de curso do software, 212 Introduzir, 15 Introduzir bits, 50 Inverso de bits, 49 IR_STOPM.SRC, 8 ISTEP, 22

F
Fechar todas as FOLD, 19 Ferramenta fixa, 65 Ficheiros de sistema, 54 Filtrar bits, 50 Flags, 55, 164 Flags cclicos, 55 FLT_SERV.DAT, 8 FLT_SERV.SRC, 8 FOLD, 19 FOLD atual abr/fech, 19 FOR, 118 Frame, 40, 107 Funes, 9, 145 Funes de bloco, 14

K
KUKA--Robot--Language, 105

L
Limits--TTS, 204 Limpar lista de dados, 195 LIN, 83, 111 LIN !, 103 LIN_REL, 83, 111 Linguagem de mquina, 12 Lista de dados, 10 Lista de parmetros, 148 Listas de dados, 175 Listas de dados globais, 176 Listas de dados locais, 175 Local, 146 LOOP, 123 Loop de contagem, 118 Loop de no rejeio, 121 Loop de rejeio, 120 Loop infinito, 123 Loops, 118

G
Global, 146, 177 Go, 22 GOTO, 115

H
H50.SRC, 8 H70.SRC, 8 Hex Dec, 34

I
Identificao de bloco, 117 IF, 116 ndex, 35 ndex de campo, 35 Indicao da posio, 107 INI, 72

M
Manipulao de dados, 42 Index -- iii

Index Marca, 115 Medio rpida, 163 Modos de execuo dos programas, 22 Montante, 52 Movimentos circulares, 84 Movimentos de aproximao, 89 Movimentos de trajetria, 77 Movimentos lineares, 83 Movimentos ponto--a--ponto, 66 Movimentos--CP, 77 MSG_DEMO.SRC, 8 MSTEP, 22 Mudana da ferramenta, 102 Programao de movimento, 59 PROKOR, 14 PSTEP, 22 PTP, 66, 69, 109 PTP !, 103 PTP sincronizado, 66 PTP_REL, 69, 109 PUBLIC, 176 PULSE, 136

R
Raiz, 52 Ramificao condicional, 116 Ramificaes de programa, 115 REAL, 33, 34 Reflexo dos eixos, 190 REPEAT, 121 RESUME, 161 Retirar bits, 50

N
NEW_SERV.SRC, 8 Nome, 29

O
Objetos de dados, 31 Ocultar partes de programa, 19 Operador, 42 Operador geomtrico, 43 Operador geomtrico :, 108 Operadores aritmticos, 42 Operadores de bits, 49 Operadores de comparao, 47 Operadores lgicos, 48 Operando, 42 Orientao, 78

S
S e T, 73 Sadas analgicas, 138 Sadas de impulso, 136 SAK, 73 Seo de declarao, 9 Seo de instruo, 9 Seno, coseno, tangente, 52 Seqncias de caratres, 38 Smbolo de espao, 106 SIN(X), 52 SINAL, 128 Singularidades da cinemtica, 73 Sistema binrio, 33 Sistema de coordenadas, 70 Sistema de coordenadas cartesiano, 60 Sistema de coordenadas da base, 64 Sistema de coordenadas da ferramenta, 63 Sistema de coordenadas de correo, 200 Sistema de coordenadas do rob, 63 Sistema de coordenadas mundial, 63 Sistema decimal, 33 Sistema hexadecimal, 33 Sistemas de coordenadas, 59 SPS.SUB, 8 SQRT(X), 52 Status, 73 STOP, 125 Index -- iv

P
P00.DAT, 8 P00.SRC, 8 Parada automtica do avano, 87 Paragem do avano, 127 Parmetros de movimento, 104 PERCEPT.SRC, 9 Perfil de deslocao mais elevado, 67 Ponto de carpo, 74 Ponto separador, 38 POS, 40, 107 Posio zero mecnica, 68 Prioridade, 51, 156, 165, 169 Prioridades de operadores, 51 Programao (teach) dos pontos, 103

Index STRUC, 38 Subprogramas, 9, 145 Substituir, 16 SWITCH, 117 Vincular, 12

W
WAIT, 124 WEAV_DEF.SRC, 9 WHILE, 120

T
TAN(X), 52 TCP, 65 Tempo de vida, 30 Temporizador, 54 Tipo de dados, 31 Tipos de dados geomtricos, 40 Tipos de dados simples, 33 Tipos de enumerao, 40 Tool Center Point, 66 Touch Up, 107 Transferncia de parmetros, 148 Transformao das coordenadas, 60 Transformao para a frente, 60 Transformao para trs, 60 Translaes, 62 Tratamento de erros, 24 Tratamento de interrupt, 153 Tratamento principal, 86 Triedro que acompanha a trajetria, 200 Trigger, 165 Trigger de flancos, 156 TTS, 200 Turn, 73

Z
Zona acima da cabea, 74 Zona base, 74

U
UNTIL, 121 USER_GRP.DAT, 9 USER_GRP.SRC, 9 USERSPOT.SRC, 9

V
VAR, 106 Variveis de sistema, 54 Variveis e declaraes, 29 Variveis e nomes, 29 Varivel + referente trajetria, 80 Varivel + referente ao espao, 82 Varivel global, 177 Velocidade, 77 Velocidade dos eixos, 68 Verso, 186

Index -- v