Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

ROBÓTICA 
 
 
 
 
 
 
 
 
 
5ª REVISÃO 
 
2018 
 
 2 
 
 
 
 
 
 
 
Apostila desenvolvida exclusivamente para a disciplina 
de robótica do curso técnico em mecatrônica do Centro de 
Formação Profissional SENAI Volkswagen. 
 
Autor: Prof. Cleiton Rodrigues Mendes 
 
 3 
SUMÁRIO 
CAPÍTULO 1 – ROBÓTICA INDUSTRIAL 
 
1 HISTÓRICO.............................................................................................................07 
2 CONCEITOS PRINCIPAIS......................................................................................09 
2.1 GRAUS DE LIBERDADE ....................................................................................09 
2.2 TIPOS DE JUNTAS OU EIXOS...........................................................................10 
2.3 VOLUME DE TRABALHO....................................................................................12 
2.4 CLASSIFICAÇÃO DOS ROBÔS INDUSTRIAIS................................................. 13 
2.5 CARACTERÍSTICAS DOS ROBÔS INDUSTRIAIS............................................ 15 
3 COMPONENTES DE UM ROBÔ INDUSTRIAL..................................................... 16 
4 NORMAS DE SEGURANÇA ................................................................................ 18 
 
 
 
 
 
CAPÍTULO 2 – MODO DE AJUSTAGEM 
 
1 PROGRAMADOR (VKCP)......................................................................................29 
2 PAINEL DE PROGRAMAÇÃO KUKA.IHM..............................................................31 
3 SISTEMAS DE COORDENADAS...........................................................................34 
4 DESLOCAMENTO MANUAL DO ROBÔ................................................................36 
5 MODO DE SERVIÇO..............................................................................................38 
5.1 AJUSTE DA POSIÇÃO DE ZERO MECÂNICO (MASTERIZAÇÃO)...................39 
5.2 MEDIÇÃO DA FERRAMENTA (TCP)..................................................................42 
5.3 ORIENTAÇÃO DA FERRAMENTA......................................................................46 
5.4 DADOS DE CARGA DA FERRAMENTA.............................................................48 
5.5 MEDIÇÃO DE BASE............................................................................................51 
 
 
 
 
 
 4 
SUMÁRIO 
CAPÍTULO 3 – MODO DE PROGRAMAÇÃO BÁSICA 
 
 
1 ESTRUTURA DE PROGRAMAÇÃO.......................................................................54 
1.1 ESTRUTURA DE UM PROGRAMA KRL.............................................................54 
1.2 POSIÇÃO HOME.................................................................................................55 
1.3 VARREDURA.......................................................................................................56 
1.4 TIPO DE EXECUÇÃO DO PROGRAMA..............................................................56 
1.5 AJUSTAR O OVERRIDE DO PROGRAMA (POV)..............................................57 
2 TIPOS DE MOVIMENTOS......................................................................................57 
2.1 MOVIMENTO PTP...............................................................................................57 
2.2 MOVIMENTO LIN.................................................................................................60 
2.3 MOVIMENTO CIRC..............................................................................................62 
2.4 MODIFICAR PONTO PROGRAMADO................................................................66 
2.5 APROXIMAÇÃO...................................................................................................67 
3 INSTRUÇÕES LÓGICAS........................................................................................69 
3.1 INSTRUÇÃO OUT................................................................................................70 
3.2 INSTRUÇÃO PULSE............................................................................................71 
3.3 INSTRUÇÕA ANOUT...........................................................................................72 
3.4 INSTRUÇÃO WAIT..............................................................................................74 
3.5 INSTRUÇÃO WAITFOR.......................................................................................75 
 
 
 
 
 
 
 
 
 
 
 5 
 
SUMÁRIO 
CAPÍTULO 4 – MODO DE PROGRAMAÇÃO AVANÇADA 
 
1 METODOLOGIA DA PROGRAMAÇÃO AVANÇADA.............................................77 
3 PROGRAMA KRL....................................................................................................78 
3.1 COMENTÁRIOS...................................................................................................78 
3.2 VARIÁVEIS E DECLARAÇÕES...........................................................................79 
3.3 TIPOS DE DADOS SIMPLES..............................................................................80 
3.4 MANIPULAÇÃO DE DADOS...............................................................................80 
3.5 OPERADORES ARITMÉTICOS..........................................................................80 
3.6 OPERADORES DE COMPARAÇÃO..................................................................81 
3.7 OPERADORES LÓGICOS..................................................................................82 
3.8 PRIORIDADE DOS OPERADORES...................................................................83 
3.10 INSTRUÇÃO DE SALTO (GOTO).....................................................................83 
3.11 RAMIFICAÇÃO CONDICIONAL (IF ELSE)........................................................84 
3.12 DISTRIBUIDOR (SWITCH)................................................................................84 
3.13 LOOP DE CONTAGEM (FOR)..........................................................................86 
3.14 LOOP DE REJEIÇÃO (WHILE)..........................................................................87 
3.15 LOOP DE NÃO REJEIÇÃO (REPEAT)..............................................................88 
3.16 LOOP INFINITO (LOOP)...................................................................................89 
3.17 TEMPOS DE ESPERA (WAIT SEC).................................................................90 
4 SUBPROGRAMAS E FUNÇÕES...........................................................................91 
4.1 SUBPROGRAMA.................................................................................................91 
4.2 FUNÇÕES............................................................................................................92 
4.3 ATIVAÇÃO E TRANSFERÊNCIA DE PARÂMETROS........................................95 
 
REFERÊNCIAS BIBLIOGRAFICAS.........................................................................98 
 
 
 
 6 
CAPÍTULO 1 – ROBÓTICA INDUSTRIAL 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 7 
1 HISTÓRICO 
Ao lermos à palavra robótica imediatamente nós nos lembramos dos robôs 
mecanismos construídos em metal, semelhantes aos seres humanos e obedientes 
aos seus comandos. 
Ainda que instintivamente relacionemos os robôs aos seres humanos, 
podemos afirmar que a aparência de um robô industrial é muito diferente da do 
homem. Os robôs industriais foram projetados tendo como referência apenas uma 
parte do corpo humano, o membro superior (braço), capaz de executar diversos 
movimentos. 
 
 
 
Características Antropomórficas 
 
 
 8 
 
Características Antropomórficas do robô KUKA 
 
Segundo a Robotic Industries Association (RIA), robô industrial é definido como 
um "manipulador multifuncional reprogramável, projetado para movimentar materiais, 
partes, ferramentas ou peças especiais, através de diversos movimentos 
programados, para o desempenho de uma variedade de tarefas” (RIVIN, 1988).Uma definição mais completa é apresentada pela norma ISO (International 
Organization for Standardization) 10218: "uma máquina manipuladora com vários 
graus de liberdade, controlada automaticamente, reprogramável, multifuncional, que 
pode ter base fixa ou móvel, para utilização em aplicações de automação industrial". 
Porém, o termo robótica refere-se ao estudo e à utilização de robôs. O termo 
surgiu pela primeira vez pelo cientista americano e escritor, Isaac Asimov que 
escreveu prodigiosamente sobre uma vasta diversidade de disciplinas e objetos, 
ficando célebre pelos seus trabalhos de ficção científica. 
A palavra robótica foi usada pela primeira vez em uma pequena estória 
publicada por Isaac Asimov em 1942. 
 
 
 
 9 
2 CONCEITOS PRINCIPAIS 
2.1 GRAUS DE LIBERDADE 
Os graus de liberdade (GL) determinam os movimentos do braço robótico no 
espaço bidimensional ou tridimensional. 
Cada junta define um ou dois graus de liberdade, e assim, o número de graus 
de liberdade do robô é igual à somatória dos graus de liberdade de suas juntas. Por 
exemplo, quando o movimento relativo ocorre em um único eixo, a junta tem um 
grau de liberdade; caso o movimento se dê em mais de um eixo, a junta tem dois 
graus de liberdade. 
Observa-se que quanto maior a quantidade de graus de liberdade, mais 
complicada é a cinemática, a dinâmica e o controle do manipulador. 
O numero de graus de liberdade de um manipulador está associado ao 
número de variáveis posicionais independentes que permitem definir a posição de 
todas as partes de forma unívoca. 
Os graus de liberdade indicam o quanto um robô pode se mover no espaço 
sem as restrições. 
Um robô totalmente livre sem as restrições apresenta 6 graus de liberdade. 
Na medida em que adicionamos as restrições estes graus de liberdade vão 
diminuindo até o robô ficar totalmente fixo. 
Os seis movimentos possíveis são: 
 1 movimento linear para os eixos X, Y e Z . 
 1 movimento rotacional para os eixos A, B e C. 
 
 
 
 
 
 
 
 
 10 
2.2 TIPOS DE JUNTAS OU EIXOS 
Os braços de robôs podem ser formados por três tipos de juntas: 
 
 Juntas deslizantes; 
 Juntas de rotação; 
 Juntas de encaixe esférico. 
 
A maioria dos braços dos robôs é formada pelas juntas deslizantes e de 
revolução, embora alguns incluam o de bola e encaixe. A seguir será descrito cada 
um destes tipos de juntas. 
 
Juntas deslizantes 
 
Este tipo de junta permite o movimento linear entre dois vínculos. É composto 
de dois vínculos alinhados um dentro do outro, onde um vínculo interno escorrega 
pelo externo, dando origem ao movimento linear. 
 
 
 
Juntas de rotação 
 
Esta conexão permite movimentos de rotação entre dois vínculos. Os dois 
vínculos são unidos por uma dobradiça comum, com uma parte podendo se mover 
num movimento cadenciado em relação à outra parte. As juntas de rotação são 
utilizadas em muitas ferramentas e dispositivos, tal como tesouras, limpadores de 
pára-brisa e quebra-nozes. Podem ser do tipo dobradiça ou eixo rotativo. 
 
 
 11 
 
 
Junta de encaixe esférico 
 
Estas juntas são usadas em um pequeno número de robôs, devido à 
dificuldade de ativação. 
De qualquer maneira, para se ter a performance de uma junta de encaixe 
esférico, muitos robôs incluem três juntas rotacionais separadas, cujos eixos de 
movimentação se cruzam em um ponto. 
 
 
 
 
 
 
 
 
 12 
2.3 VOLUME DE TRABALHO 
É o espaço dentro do qual o robô pode manipular a extremidade de seu punho 
(o efetuador). Em hipótese alguma poderá haver funcionários nesta região enquanto 
o robô estiver em funcionamento, evitando-se desta maneira acidentes. Alguns 
autores e fabricantes usam a expressão ‘Envelope de Trabalho’ para esta 
característica. 
 
A figura a seguir apresenta alguns exemplos: 
 
Os catálogos de fabricantes de robôs normalmente ilustram os volumes de 
trabalho por diagramas, tais como, os mostrados abaixo, que são as vistas laterais e 
superiores da faixa de movimentos possíveis do robô. 
 
 
 13 
 
Volume de trabalho do robô KUKA 
 
 
2.4 CLASSIFICAÇÃO DOS ROBÔS INDUSTRIAIS 
 
 
a) Quanto à informação de entrada e aprendizagem: 
 
• Robô Seqüencial Cada passo do movimento é solicitado de uma seqüência 
preestabelecida. Divide-se em: 
 
- robô de seqüência fixa; 
- robô de seqüência programável. 
 
• Robô “Play Back”, Repete a seqüência programada de movimentos, 
dirigindo fisicamente, ou por meio de um “Teach in Box”, a ponta do robô. 
 
• Robô NC, Programação feita com entrada de forma numérica. 
 
• Robô inteligente, O sistema robótico já dispõe de sensores externos (como 
visão, tato, etc.). 
 
 
 14 
b) Quanto aos tipos de coordenadas de movimento do braço manipulador, 
controlado manualmente pelo homem: 
 
 Robô de coordenadas cartesianas; 
 
 
 
 Robô de coordenadas cilíndricas; 
 
 
 
 Robô de coordenadas esféricas ou polar; 
 
 
 
 
 Robô articulado; 
 
 
 
 15 
2.5 CARACTERÍSTICAS DOS ROBÔS INDUSTRIAIS 
Velocidade de movimento 
Depende muito da estrutura mecânica do robô, de seu sistema de acionamento 
e sistema de controle e da carga controlada, podendo atingir valores de até 120°/s 
para movimentos rotacionais e até 3m/s para movimentos translacionais. 
 
Capacidade de carga ou “Payload” 
 
 É a massa máxima em quilogramas que um robô consegue manipular 
mantendo as suas especificações. Nos robôs atuais esta capacidade de carga varia 
desde algumas gramas até aproximadamente 1000 kg, dependendo do modelo do 
robô. 
 
Precisão de movimento 
 
A precisão de movimento é definida em função de três características: 
 
 a) Resolução espacial: É o menor incremento de movimento em que o 
robô pode dividir seu volume de trabalho. É normalmente dependente da capacidade 
de carga do robô, e varia desde alguns milímetros até alguns centésimos de 
milímetro nos mais precisos. 
 
 b) Precisão: Refere-se à capacidade de um robô de posicionar a 
extremidade de seu punho em um ponto meta desejado dentro de seu volume de 
trabalho. 
 
c) Repetibilidade: É a capacidade do robô de posicionar seu punho ou 
órgão terminal ligado ao seu punho num ponto meta no espaço previamente 
indicado. 
 
 
 
 
 
 
 
 
 16 
3 COMPONENTES DE UM ROBÔ INDUSTRIAL 
 
Do ponto de vista macroscópico, um sistema robótico pode ser “explodido” em três 
grandes componentes: 
 1 - Manipulador; 
 2 - Programador; 
 3 - Controlador; 
 
O manipulador, ou parte mecânica que apresenta liberdade de movimentos, 
se subdivide em cinco outros componentes: 
 Base; 
 Braço; 
 Antebraço; 
 Punho; 
 Órgão terminal; 
O braço determina o alcance do órgão terminal no espaço “euclidiano”, 
enquanto o punho, sua orientação. 
O órgão terminal é escolhido em função da tarefa a ser realizada pelo robô e 
pode ser: 
 Garra ou ventosa; 
 Tocha de solda; 
 Pistola de pintura. 
 
 17 
O programador é responsável pela movimentação física de cada junta ou eixo 
do manipulador, além de acionar as juntas dos braços, do punho e vários tipos de 
“efetuadores”. Os dispositivos de acionamento têm a função de transformar energia 
elétrica, hidráulica, pneumática, ou uma combinação destas, em energia cinética 
para as juntas do braço, do punho e para o órgão terminal. 
O controlador é responsável pela coordenação e controle do movimento do 
Órgão Terminal, objeto principal de aplicação do robô. Sua forma mais simples 
consiste apenas em uma série de paradas mecânicas ajustáveis ou chaves 
limitadoras. 
Nas formas mais complexas, é necessário que o controle e a coordenação do 
movimento sejam efetuados por computador, que dispõe de uma memória 
programável, permitindo pilotar o órgão terminal ao longo de uma trajetória 
precisamente definida. 
Possibilita ainda o sincronismo com outros robôs e equipamentos periféricos 
(como por exemplo, esteira transportadora, prensas, aplicação de cola. Etc...).18 
4 NORMAS DE SEGURANÇA PARA ROBÓTICA INDUSTRIAL 
Como usar de maneira correta os robôs industriais. 
O aumento do número de robôs industriais devidamente utilizados nas 
indústrias trouxe evidente melhoria no processo produtivo tornando-nos mais 
competitivos nos mercados nacionais e internacionais. O ganho de qualidade nos 
produtos e a redução do tempo de fabricação foram os responsáveis diretos deste 
salto competitivo. 
Entretanto, toda a inovação tecnológica vem acompanhada da necessidade de 
mão-de-obra especializada e devidamente preparada para o convívio diário com 
esta tecnologia. Profissionais atuando conscientemente e adotando medidas 
consistentes de segurança. 
Afinal, por serem máquinas dotadas de grande mobilidade, flexibilidade e 
velocidade, devemos atentar cuidadosamente para os procedimentos relacionados à 
segurança das pessoas que trabalharão diretamente e também com as que 
eventualmente estarão nas proximidades do equipamento. 
 
Risco de colisão 
Qual a intensidade do choque que um operador sofre numa colisão com um 
manipulador? 
Como isso não pode ser verificado na prática, foram realizados testes com 
corpos de prova semelhantes aos empregados em ensaios de acidentes 
automobilísticos. Ao submeter o corpo de prova a um choque em alta velocidade 
contra o manipulador de um robô tipo hidráulico de grande porte, detectou-se uma 
aceleração de choque de 200G. No caso de um robô tipo elétrico de porte médio, 
foram atingidos valores elevados, como 90G. Se o ser humano for submetido a uma 
aceleração de 100G, mesmo que instantaneamente, poderá ser fatal, conclui-se, 
então, o quão potente e perigoso é o manipulador de um robô. 
Testes realizados com corpos de prova 
 
 19 
 
Robôs de grande porte desenvolvem uma aceleração de choque de 200G; 
robôs de porte médio, 90G (O ser humano corre risco de morte com 100G). 
Exemplos típicos de acidente 
É frequente a ocorrência de acidentes no uso de máquinas automáticas e de 
sistemas automáticos de produção industrial. Esses acidentes podem ser, de 
maneira geral, classificados de acordo com seis exemplos seguintes: 
 
1 O operador opera incorretamente a máquina e sofre o acidente; 
2 Na ocorrência de um problema durante a operação da máquina automática, o 
operador tenta inadvertidamente fazer o reparo, introduzindo a mão ou entrando na 
área de risco, vindo a colidir com a parte móvel e sofrendo o acidente; 
3 O operador, sem perceber que a máquina automática estava em operação, 
entra na linha de produção automática sem nenhuma proteção. É atacado por um 
movimento de uma direção não perceptiva, sofrendo um acidente; 
4 Durante uma parada momentânea da máquina automática (em espera), o 
operador detecta um problema e resolve repará-lo, achando que a máquina está em 
repouso; quando é atingido por uma parte móvel, sofre o acidente; 
5 Por um defeito no controlador, a máquina automática sai repentinamente do 
estado de repouso e, devido a um movimento descontrolado e na impossibilidade de 
ser paralisada, acaba causando acidente; 
6 Devido a um defeito no dispositivo de segurança, a máquina automática não é 
paralisada e acaba ocasionando um acidente. 
 
 20 
Exemplos de acidentes 
a) uma pessoa que estava treinando, querendo aproveitar às 3 horas do intervalo de 
descanso para estudos práticos junto ao robô, penetra na área de ação do robô 
de solda. 
 
 
Quando o operador responsável retorna ao local, aciona o botão de operação sem 
perceber a presença dessa pessoa na área de ação, prensando o treinando. 
 
 
b) um robô, para descarte de item defeituoso que surge em uma correia 
transportadora, deixa cair uma peça. Percebendo isso, o operador tenta retirar a 
peça entrando na área de ação sem antes paralisar o robô. O operador acaba 
prensado entre a correia transportadora e o manipulador. 
 
 21 
 
 
 
c) para inspecionar o processo de MC (machining center, centro maquinário), o 
operador paralisa a linha automática de produção no modo bloqueio. Depois de 
constatar que todas as máquinas no seu campo de visão estão paradas, o 
operador entra na área de produção quando é atingido por um robô de 
carregamento aéreo. 
 
 22 
 
 
 
d) devido a uma falha no processo, o operador percebe que todas as máquinas 
ficaram paralisadas e sobe na correia transportadora para remover a peça 
defeituosa com as duas mãos. Quando a peça é removida, a chave de limite de 
carga (limit switch) do robô, acoplada à correia transportadora, é acionada e o 
operador fica comprimido pelas costas, entre o braço do robô e a correia 
transportadora. 
 
 23 
 
 
e) por um defeito no controlador, a máquina automática sai repentinamente do 
estado de repouso e, devido a um movimento descontrolado e na impossibilidade de 
ser paralisada, acaba causando acidente. 
 
 
 
 
 24 
f) enquanto o operador executava um processo de instrução de um robô em baixa 
velocidade, utilizando um teaching box (painel de instrução), um ruído 
eletromagnético gerado por faíscas de solda interfere no controlador, fazendo o 
manipulador trabalhar em alta velocidade, provocando acidente. 
 
 
g) durante a limpeza diária, o operador abre a porta e entra na área cercada do robô. 
Devido a uma falha na chave de segurança, o robô não é paralisado e causa o 
acidente. 
 
 
 
 25 
 Mesmo circundando a área de ação do robô com uma cerca de segurança, deve-se 
confirmar a paralisação do robô antes da aproximação do operador. Para isso, 
geralmente se instala uma chave de segurança na porta, de modo que o robô 
sempre seja paralisado assim que a porta é aberta, num modo “interlock”. A 
implementação deve ser tal que a paralisação do robô seja garantida mesmo em 
casos de falha na chave de segurança. 
Os exemplos anteriores evidenciaram-nos uma série de possíveis acidentes, e 
que devemos observar todos os quesitos relacionados à segurança sempre que o 
trabalho com os robôs ou equipamentos automáticos fizer necessário. 
Devemos dispensar toda atenção possível ao interagirmos com estes 
equipamentos, e os mesmos cuidados deverão ser observados pelos projetistas no 
desenvolvimento e implantação de sistemas robotizados. 
Um pequeno erro humano pode acabar num grave acidente causado pelo robô. 
Entretanto, não sendo possível eliminar totalmente as falhas humanas, torna-se 
necessário e importante incorporar dispositivos de segurança no controlador para 
que o robô seja paralisado quando for detectada a entrada do operador na área de 
ação. 
Para sua implementação, utilizam-se dispositivos de segurança junto ás portas 
como sensores ópticos, esteiras de segurança e os sensores de ultrassom. 
Entretanto, se o próprio dispositivo de segurança vier a falhar a presença 
humana não poderá ser detectada o que incorrerá num acidente. Uma vez que 
mesmo os dispositivos de segurança são susceptíveis a falha, é importante projetar 
o sistema de tal forma que o robô seja paralisado mesmo na falha de um dos 
dispositivos de segurança. Um sistema de segurança à prova de falhas (safe fail) é 
primordial para a segurança no trabalho. 
 
 
 
 
 
 26 
Exemplo de célula de segurança 
 
 
 
Para minimizar os riscos de acidentes de colisão em células com robô, é 
padrão o procedimento de montar uma cadeia de segurança para trabalho na célula, 
que é dividida em partes: 
Área de trabalho 
É a área de atuação do manipulador, onde o robô pode se movimentar 
devendo seu acesso permanecer restrito, para evitar riscos de colisão. Esta área 
deve ser cercada com grades de proteção ou protegida através de fotocélulas. 
Operadores e equipe de manutenção devem permanecer na área somente 
quando são executados reparos na célula, devendo para isso acionar a parada de 
emergência, ou ligar o robô em modo manual. 
Travas de segurança (fotocélulas ou grades de proteção) 
São dispositivos que quando atuados, bloqueiam o movimentodo robô, 
acionando comando de emergência. Como padrão existe uma porta de entrada na 
célula, que possui uma chave fim de curso que quando a porta é aberta, aciona o 
comando de emergência. 
 
 27 
Botões de emergência 
São botões de comando dos operadores, que bloqueiam imediatamente o robô 
caso sejam acionados. Existem nos painéis de comando da célula, no painel de 
comando do robô, na unidade de programação e em alguns casos em pontos 
estratégicos da célula. 
Botões de emergência e botões de homem morto na unidade de programação 
Ambos param o robô sendo usados somente quando o robô esta sendo 
programado. 
Modo de operação manual ou automático com velocidade reduzida. 
Quando robô esta sendo programado, ele roda no modo manual, obedecendo 
aos comandos da unidade de programação. Para teste inicial, a velocidade de robô 
é reduzida para evitar riscos. 
 
 
 
 
 28 
CAPÍTULO 2 – MODO DE AJUSTAGEM 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 29 
1 PROGRAMADOR (VKCP) 
 
Visão Frontal 
O VKCP (Volkswagen KUKA Control Panel) é uma unidade manual de programação 
para o sistema do robô. O VKCP dispõe de todas as funções necessárias à 
operação e à programação do sistema de robô. 
 
 
 
 
 
 
 
 
 30 
Visão traseira 
 
 
 
 
 
 
 
 
 31 
2 PAINEL DE OPERAÇÃO KUKA.IHM 
 
Statuskeys, menukeys, softkeys 
 
 
 
 32 
Janela de superfície operacional 
 
 
 
 33 
Barra de estado 
 
 
 
 
 34 
 
 
3 SISTEMAS DE COORDENADAS 
 
 
 
 35 
Sistema de coordenadas WORD ou MUNDIAL 
 
O sistema de coordenadas WORLD é um sistema de coordenadas cartesiano 
definido. A posição predeterminada do sistema de coordenadas WORLD é na base 
do robô. 
 
 
Sistema de coordenadas BASE 
 
O sistema de coordenadas BASE é um sistema de coordenadas cartesiano 
que descreve a posição da peça. Ele refere-se ao sistema de coordenadas WORLD. 
 Como ajuste predefinido, o sistema de coordenadas BASE é idêntico ao 
sistema de coordenadas WORLD. Ele é deslocado do robô para a peça. 
 
 
 
 
 36 
Sistema de coordenadas TOOL ou FERRAMENTA 
 
O sistema de coordenadas TOOL é um sistema de coordenadas cartesiano 
que está no ponto de trabalho da peça. Ele refere-se ao sistema de coordenadas 
BASE. 
Como ajuste predefinido, a origem do sistema de coordenadas TOOL 
encontra-se no ponto central do flange. O sistema de coordenadas TOOL é 
deslocado da flange do robô para o ponto de trabalho da ferramenta. 
 
 
4 DESLOCAMENTO MANUAL DO ROBÔ – EIXO A EIXO 
 
Há 2 modos de deslocar manualmente o robô: 
 Deslocamento cartesiano 
O TCP é deslocado em direção positiva ou negativa, ao longo dos eixos de um 
sistema de coordenadas. 
 Deslocamento específico do eixo 
Todos os eixos poderão ser deslocados individualmente na direção positiva e 
negativa. 
 
 
 
 
 37 
 
 
Movimentando o robô 
 
 
 
 38 
Deslocamento específico eixo a eixo do robô. 
 
 
 
5 MODO DE SERVIÇO 
 
Ajuste de contraste 
Para o tipo de deslocamento é necessário que a seguinte statuskey seja 
exibida: 
 
 
 
 
 39 
5.1 AJUSTE DA POSIÇÃO DE ZERO MECÂNICO (MASTERIZAÇÃO) 
 
Durante o ajuste o robô é transportado para a posição zero mecânica e o 
valor do codificador para cada eixo é memorizado. Deste modo a posição zero 
mecânica e a posição zero eletrônica são colocados em concordância. 
Só um robô ajustado pode deslocar-se para posições programadas e 
movimentado cartesianamente. 
Um robô deve ser ajustado nos seguintes casos: „ 
 Ao colocar em funcionamento pela primeira vez; 
 Após reparações (p.ex. após substituir o motor ou RDW); 
 Quando o robô foi movimentado sem a unidade de comando do robô (p.ex. 
com o dispositivo de rotação livre); 
 Após a substituição de uma engrenagem; 
 Após uma colisão; 
 
 
 
 
 40 
 
 
 
 41 
 
 
 
 
 
 42 
5.2 MEDIÇÃO DA FERRAMENTA (TCP) 
 
Durante a medição da ferramenta o utilizador atribui um sistema de 
coordenadas cartesiano (Sistema de coordenadas TOOL) a uma ferramenta 
montada na flange de fixação. 
O sistema de coordenadas TOOL tem a sua origem em um ponto definido 
pelo utilizador. Este se chama TCP (Tool Center Point). Normalmente o TCP é 
colocado no ponto de trabalho da ferramenta. 
 
Vantagens da medição da ferramenta: 
 A ferramenta pode ser deslocada em linha reta, na direção de trabalho; 
 A ferramenta pode ser girada em volta do TCP, sem alterar a posição do TCP; 
 No modo de programa: A velocidade de deslocamento programada é mantida 
no TCP ao longo do trajeto; 
 
São memorizados os seguintes dados: 
 X, Y, Z: 
Origem do sistema de coordenadas TOOL, referente ao sistema de coordenadas 
da FLANGE. 
 
 A, B, C: 
Orientação do sistema de coordenadas TOOL, referente ao sistema de 
coordenadas da FLANGE. 
 
 
 
 43 
 
MEDIÇÃO DA FERRAMENTA 
 
 
 
 
 
 44 
MÉTODO DE MEDIÇÃO DA FERRAMENTA 
 
 
 
 
 
 
 45 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 46 
5.3 ORIENTAÇÃO DA FERRAMENTA 
 
 
 
 
 
 47 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 48 
5.4 DADOS DE CARGA DA FERRAMENTA 
 
 
 
 
 
 
 
 49 
 
 
 
 50 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 51 
5.5 MEDIÇÃO DE BASE 
 
 
 
 
 52 
 
 
 
 
 
 
 
 
 
 
 
 
 53 
CAPÍTULO 3 – MODO DE PROGRAMAÇÃO BÁSICA 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 54 
1 ESTRUTURA DE PROGRAMAÇÃO 
 
Gestor de pastas do navegador 
 
 
 
 
1.1 ESTRUTURA DE UM PROGRAMA KRL 
 
 
 
 55 
 
 
1.2 POSIÇÃO HOME 
A posição HOME é uma posição válida para todo do programa. Normalmente 
ela é utilizada como primeira e última posição no programa porque ela é 
inequivocamente definida e não crítica. 
A posição HOME é predefinida e criada na unidade de comando do robô. 
Podem ser programadas até 9 outras posições HOME. 
Uma posição HOME deve cumprir os seguintes requisitos: 
 Favorável posição inicial para a execução do programa; 
 Favorável posição de repouso. Por exemplo, o robô não deve apresentar um 
obstáculo quando estiver em repouso; 
 
 
 
 56 
1.3 VARREDURA 
 
A varredura é o máximo número de conjuntos de movimentos que a unidade 
de comando do robô calcula e planeja antes da execução do programa. O número 
real depende do grau de aproveitamento do computador. A varredura refere-se à 
posição atual do apontador de passo. 
O valor predefinido é 3. 
Entre outros, a varredura é necessária para poder calcular movimentos de 
aproximação. 
Algumas instruções acionam uma parada da varredura. Instruções que 
influenciam a periferia, p.ex. instruções OUT fazem parte destas instruções. 
 
1.4 TIPO DE EXECUÇÃO DO PROGRAMA 
 
O tipo de execução de programa é selecionado na barra de statuskey esquerda. 
 
 
 
 
 57 
1.5 AJUSTAR O OVERRIDE DO PROGRAMA (POV) 
O override do programa é a velocidade do robô durante o deslocamento do 
programa. 
 
O override do programa é exibido em porcentagem e refere-se à velocidade 
programada. 
 
Aumentar ou reduzir o override na barra de statuskey direita. 
 
 
2 TIPOS DE MOVIMENTOS 
 
Os seguintes tipos de movimentos podem ser programados: 
 Movimento PTP; 
 Movimento LIN; 
 Movimento CIRC; 
 
2.1 MOVIMENTO PTP 
 
Movimento PTP o robô conduz o TCP ao longo do trajeto mais rápido até o 
ponto de destino. Normalmente o trajeto mais rápido não é o trajeto mais curto e, 
portanto não é reto. Como os eixos do robô se movimentam em rotações, os trajetos 
em forma de arcos podem ser executados com maio rapidez do que trajetos retos. 
 
 
 
 58 
A programação de um movimento PTP abrange: 
 Memorizar as coordenadas do ponto de destino. 
 Configurar diversos parâmetros, p.ex. velocidade.Formulário In line de movimento PTP 
 
 
 
 
 
 59 
 
FIGURA DO DESLOCAMENTO DO MOVIMENTO PTP 
 
Janela de opções para os parâmetros de movimento (movimento PTP) 
 
 
 
 
 60 
 
 
2.2 MOVIMENTO LIN 
 
Movimento LIN o robô conduz o TCP, com a velocidade definida, ao longo do 
trajeto mais curto, até o ponto de destino. O trajeto mais curto é sempre uma reta. 
 
A programação de um movimento LIN abrange: 
 Memorizar as coordenadas do ponto de destino; „ 
 Configurar diversos parâmetros, p.ex. velocidade; 
 
 
 
Formulário In line de movimento LIN 
 
 
 
 
 61 
 
 
 
 
 
 
 
 
 62 
 
FIGURA DO DESLOCAMENTO DO MOVIMENTO LIN 
 
 
 
2.3 MOVIMENTO CIRC 
 
O robô conduz o TCP, com a velocidade definida, ao longo de um trajeto 
circular, até o ponto de destino. O trajeto circular é definido pelo ponto de partida, 
pelo ponto auxiliar e pelo ponto de destino. 
 
 A programação de um movimento CIRC abrange: 
 Memorizar as coordenadas do ponto de ajuda. 
 Memorizar as coordenadas do ponto de destino. 
 Configurar diversos parâmetros, p.ex. velocidade. 
 
 
 
 
 
 63 
Formulário In line de movimento CIRC 
 
 
 
 
 64 
 
FIGURA DO DESLOCAMENTO DO MOVIMENTO CIRC 
 
Janela de opções dos parâmetros de movimento (LIN E CIRC) 
 
 
 
 65 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 66 
2.4 MODIFICAR PONTO PROGRAMADO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 67 
2.5 APROXIMAÇÃO 
 
 
 
 
 
 68 
 
 
 
 
 
 
 
 
 
 69 
3 INSTRUÇÕES LÓGICAS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 70 
3.1 INSTRUÇÃO OUT 
 
 
 
 
 
 
 
 
 
 
 
 71 
3.2 INSTRUÇÃO PULSE 
 
 
 
 
 
 72 
3.3 INSTRUÇÃO ANOUT 
 
 
 
 73 
 
 
 
 
 
 
 
 74 
3.4 INSTRUÇÃO WAIT 
 
 
 
 
 
 
 
 
 
 
 
 75 
3.5 INSTRUÇÃO WAITFOR 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 76 
CAPÍTULO 4 – PROGRAMAÇÃO AVANÇADA 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 77 
1 METODOLOGIA DA PROGRAMAÇÃO AVANÇADA 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 78 
3 PROGRAMA KRL 
 
 
O software da unidade de comando KR C1 distingue entre o utilizador e o 
perito. O utilizador não necessita de conhecimentos acerca da sintaxe de 
programação, uma vez que ele cria os programas com a ajuda dos menus. Sempre 
que o sistema for iniciado, encontra--se selecionado, automaticamente, o nível de 
utilizador. 
Quando as funções do nível de utilizador se revelar insuficientes, poderá ser 
mudado para o nível de perito. O perito poderá então programar através do teclado 
ASCII na linguagem de programação de robôs KRL (KUKA Robot Language), bem 
como editar ficheiros de sistema ou de inicialização (sistemas de bus). 
KRL é uma linguagem de programação mais elevada, semelhante à 
linguagem PASCAL, sendo também adequada para a programação de tarefas 
complexas. 
O acesso ao nível de perito é protegido por uma senha. Para mudar para o 
nível de perito, acione o botão menukey “Config.” e abra um menu de seleção que 
contenha a opção “Grupo de utilizadores”, ao encontrar no nível de utilizador acione 
o botão softkey “Perito”, aparecerá o pedido de introduzir a senha de acesso ao nível 
de perito, que é “kuka”. 
NO MODO PERITO EXISTEM ARQUIVOS COM EXTENÇÃO DAT E SRC. 
SOMENTE OS ARQUIVOS SRC PODEM SER EDITADOS, OS ARQUIVOS DAT 
SÃO ARQUIVOS DE SISTEMA. 
 
 
3.1 COMENTÁRIOS 
 
 
Os comentários são uma parte integrante muito importante de todos os 
programas de computador. Com a ajuda de um comentário, o programa poderá 
tornar mais claro e compreensível. A velocidade de processamento do programa não 
é influenciada pelos comentários. 
Os comentários poderão ser introduzidos em qualquer local do programa. São 
iniciados sempre com um ponto e vírgula “;”, p.ex.: 
 
PTP P1 
; Movimento para ponto de saída 
; --- Fazer o reset das saídas --- 
FOR I = 1 TO 16 
 $OUT[I] = FALSE 
ENDFOR 
 
 
 
 
 
 
 
 
 
 
 79 
3.2 VARIÁVEIS E DECLARAÇÕES 
 
 
As variáveis são necessárias para a programação dos robôs industriais, p.ex., 
para a integração dos sensores. 
As variáveis permitem memorizar o valor lido pelo sensor e fazer a sua 
avaliação em vários locais do programa. Além disso, podem ser realizadas 
operações aritméticas, p.ex., para calcular uma posição nova. 
Uma variável é representada no programa por meio de um nome, podendo a 
designação do nome ser escolhida livremente, dentro de determinados limites. 
 
Os nomes em KRL: 
Podem ter um comprimento máximo de 12 caracteres; 
Podem conter letras (A--Z), números (0--9) e os caracteres ’_’e ’$’; 
Não podem começar com números; 
Não podem ser palavras chave (OUT, IN, INT, REAL); 
 
Uma variável deve ser considerada como uma área fixa da memória, cujo 
conteúdo é acessível através do nome da variável. Por isso, a variável é realizada 
em relação ao tempo de execução do programa, através de um espaço de memória 
(local) e um conteúdo de memória (valor). 
O símbolo de igualdade (=) atribui à variável valores. Assim, a instrução 
MENDES = 5 
Implica que na área de memória com o endereço de MENDES é introduzido o 
valor 5. 
 
 
 
 
 
 
 
 
 
 
 
 80 
3.3 TIPOS DE DADOS SIMPLES 
 
 
 
 
Em KRL, poderá atribuir o numero 90 a uma variável INTEIRA de três 
maneiras diferentes: 
INT TESTE = 90 (sistema decimal) 
INT TESTE = ’B1011010’ (sistema binário) 
INT TESTE = ’H5A’ (sistema hexadecimal) 
 
 
3.4 MANIPULAÇÃO DE DADOS 
 
 
Para a manipulação dos vários objetos de dados existe uma quantidade de 
operadores e funções, com a ajuda dos quais podem ser construídas fórmulas. O 
poder de uma linguagem de programação de robôs depende também dos objetos de 
dados admissíveis e das suas possibilidades de manipulação. 
 
 
3.5 OPERADORES ARITMÉTICOS 
 
 
Os operadores aritméticos dizem respeito aos tipos de dados INTEIRO e 
REAL. Todos os tipos de cálculos básicos são admissíveis em KRL. 
 
 
 
O resultado de uma operação aritmética é INT, apenas no caso de os dois 
operandos serem do tipo INTEIRO. Se o resultado de uma divisão (INTEIRO) não for 
números inteiros, a posição a seguir à vírgula é cortada. Se pelo menos um dos dois 
operandos for REAL, também o resultado é do tipo REAL 
 
 81 
 
 
O exemplo de programa seguinte serve para a exemplificação: 
 
DEF ARITH() 
;------------------------- Seção de declaração ------------------------- 
INT A,B,C 
REAL K,L,M 
;------------------------- Inicialização ------------------------------------ 
;antes da inicialização todas as variáveis são declaradas 
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 
;------------- Seção 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 
 
 
3.6 OPERADORES DE COMPARAÇÃO 
 
 
Com a ajuda dos operadores de comparação podem ser formadas 
expressões lógicas. O resultado de uma comparação é sempre do tipo de dados 
BOOL, uma vez que uma comparação só pode ser verdadeira (TRUE) ou falsa 
(FALSE). 
 
 
 
 
 
 82 
Exemplo: 
 
BOOL A,B 
B = 10 < 3 ;B=FALSE 
A = 10/3 == 3 ;A=TRUE 
B = ((B == A) <> (10.00001 >= 10)) == TRUE ;B=TRUE 
A = “F” < “Z” ;A=TRUE 
 
 
3.7 OPERADORES LÓGICOS 
 
 
Os operadores destinam--se à interligação de variáveis booleanas, constantes 
e expressões lógicas simples, como aquelas que são formadas com a ajuda dos 
operadores de comparação. Assim, p.ex., a expressão (A > 5) AND (A < 12) tem 
o valor TRUE, apenas quando A se situa na gama entre o 5 e o 12. Estas 
expressões são utilizadas, freqüentemente,em instruções para o controle de 
execução. 
 
 
Alguns exemplos em relação a interligações lógicas: 
 
BOOL A,B,C 
A = TRUE ;A=TRUE 
B = NOT A ;B=FALSE 
C = (A AND B) OR NOT (B EXOR NOT A) ;C=TRUE 
A = NOT NOT C ;A=TRUE 
 
 
 
 
 
 
 
 
 
 
 83 
3.8 PRIORIDADES DE OPERADORES 
 
 
Se utilizar expressões mais complexas com vários operadores, terá de estar 
com atenção às diferentes prioridades dos vários operadores, uma vez que as várias 
expressões são executadas pela ordem da respectiva prioridade. 
 
 
 
 
3.10 INSTRUÇÃO DE SALTO (GOTO) 
 
A forma mais simples de ramificar um programa é a instrução de salto 
incondicional. Esta é executada, em qualquer dos casos, sem que haja uma reflexão 
sobre uma determinada condição. Com a instrução 
 GOTO MARCA 
O ponteiro de programa salta para a posição MARCA. A posição também terá 
de ser definida com: 
MARCA: 
A instrução de salto propriamente dita não permite conclusões acerca da 
estrutura de programa criada desta forma. Por isso, o nome da marca de salto 
deverá ser escolhido de forma a que a ação de salto provocada se torne mais 
compreensível. 
Uma vez que a instrução GOTO pode dar origem, rapidamente, a programas 
não estruturados e confusos, e visto cada instrução GOTO poder ser substituída por 
uma instrução de loop, o GOTO deverá ser utilizado o menos possível. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 84 
3.11 RAMIFICAÇÃO CONDICIONAL (IF ELSE) 
 
 
A instrução estruturada IF permite a formulação de instruções condicionadas 
e a escolha entre duas alternativas. Na forma geral, a instrução é: 
 
 
 IF condição de execução THEN 
 Instruções 
 ELSE 
 Instruções 
 ENDIF 
 
A condição de execução é uma expressão booleana. Em função do valor da 
condição de execução é executado o primeiro bloco (bloco THEN) ou o segundo 
bloco de instrução (bloco ELSE). O bloco ELSE é opcional, e por isso também pode 
faltar. Se a condição de execução=FALSE, não é executada nenhuma instrução, 
continua--se com a instrução a seguir ao ENDIF. 
 
INT A,B 
INI 
IF $IN[10]==FALSE THEN 
PTP HOME 
 ELSE 
 IF A>B THEN 
 $OUT[1]=TRUE 
 LIN PONTO1 
 ENDIF 
A=A+1 
PTP HOME 
ENDIF 
 
 
3.12 DISTRIBUIDOR (SWITCH) 
 
 
Quando há mais que 2 alternativas, estas podem ser programadas através 
de uma construção IF ou - bastante mais simples - através do distribuidor SWITCH. 
A instrução SWITCH é uma instrução de seleção para vários ramos de 
programa. Um critério de seleção é definido por um determinado valor, antes da 
instrução SWITCH. Se este valor corresponder a uma identificação de bloco, é 
executado o respectivo ramo de programa e o programa salta para a instrução 
ENDSWITCH, sem considerar as identificações de bloco seguintes. Se nenhuma 
identificação de bloco corresponder ao critério de seleção, é executado um bloco 
DEFAULT, caso exista. Caso contrário, continua--se com a instrução a seguir à 
instrução ENDSWITCH. 
É permitido atribuir a um ramo de programa várias identificações de bloco. Ao 
contrário, não faz sentido utilizar uma identificação de bloco várias vezes, uma vez 
que é sempre considerado apenas o primeiro ramo de programa que tem a 
respectiva identificação. 
 
 85 
Os tipos de dados admissíveis do critério de seleção são INT, CHAR e 
ENUM. O tipo de dados do critério de dados terá de corresponder ao da identificação 
de bloco. 
A instrução DEFAULT pode faltar, mas numa instrução SWITCH poderá ser 
incluída apenas uma vez. 
Com a instrução SWITCH poderão ser ativados, p.ex., vários subprogramas, 
em função de um número de programa. O número de programa poderá ser enviado, 
p.ex., pelo PLC às entradas digitais da KR C1 Assim, este encontra--se à disposição 
como critério de seleção, na forma de um valor INTEIRO. 
 
 
 
 
DEF MAIN( ) 
 
SIGNAL PROG_NR $IN[1] TO $IN[4] 
;Na variável INT Nº_PROG o PLC introduz agora 
;o número de programa pretendido 
 
SWITCH PROG_NR 
CASE 1 ;se Nº_PROG=1 
TEIL_1( ) 
CASE 2 ;se Nº_PROG=2 
TEIL_2 ( ) 
TEIL_2A( ) 
CASE 3,4,5 ;se Nº_PROG=3, 4 ou 5 
$OUT[3]=TRUE 
TEIL_345( ) 
DEFAULT ;se Nº_PROG<>1,2,3,4 ou 5 
ERROR_UP( ) 
ENDSWITCH 
 
END 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 86 
3. 13 LOOP DE CONTAGEM (FOR) 
 
 
Os loops de contagem são executados até uma variável de contagem 
ultrapassar ou não atingir um determinado valor final, contando para baixo ou para 
cima. Para esse efeito, existe em KRL a instrução FOR. 
 
FOR contador = start TO fim STEP largura de passos 
 instruções 
ENDFOR 
 
Poderá ser programado, com bastante clareza, um determinado número de 
passagens. Como o valor de início e valor do fim do contador e que indique sempre 
uma expressão do tipo INTEIRO. As expressões são avaliadas uma vez antes do 
início do loop. A variável 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 não pode ser uma variável e não pode ser zero. Se a 
largura de passos não estiver indicada, ela tem o valor padrão 1. Para a largura de 
passos são também permitidos valores negativos. 
Para cada instrução FOR terá de haver uma instrução ENDFOR. Depois de 
terminar o último loop, o programa é continuado com a primeira instrução 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 edição de 
campos. Depois de sair do loop, o contador fica com o último valor adotado (portanto 
fim+largura de passos). 
 
DEF ( ) 
INT CONT ; declaração da variável CONT 
INI 
CONT = 0 ; atribuição do valor zero à variável CONT 
FOR CONT = 1 TO 5 
PTP {A1 45} 
PTP {A2 -70,A3 50} 
PTP {A1 0,A2 -90,A3 90} 
ENDFOR 
END 
 
 
 
 
 
 
 
 
 
 
 
 
 
 87 
3. 14 LOOP DE REJEIÇÃO (WHILE) 
 
 
O loop WHILE procura no início da repetição uma condição de repetição. Este 
loop é um loop de rejeição porque não é percorrido vez nenhuma, se a condição de 
execução não estiver já preenchida desde o início. A sintaxe do loop WHILE é: 
 
 WHILE condição de execução 
 instruções 
 ENDWHILE 
 
A condição de execução é uma expressão lógica que poderá ser uma variável 
booleana, uma ativação de função booleana ou uma combinação lógica com um 
resultado booleano. 
O bloco de instruções é executado, desde que a condição lógica tenha o valor 
TRUE, ou seja, desde que a condição de execução esteja cumprida. Quando a 
condição lógica tem o valor FALSE, o programa continua com a instrução que se 
segue a ENDWHILE. Por isso, cada instrução WHILE terá de ser terminada com 
uma instrução ENDWHILE. 
A utilização de WHILE é explicada no exemplo: 
 
X = 1 
W = 1 
WHILE W < 5 
 ;percorrido enquanto W é MENOR que 5 
 X = X * W 
 W = W + 1 
ENDWHILE 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 88 
3.15 LOOP DE NÃO REJEIÇÃO (REPEAT) 
 
 
O oposto do loop WHILE é o loop REPEAT. Com REPEAT é procurada uma 
condição de cancelamento, apenas no fim do loop. Assim, os loops REPEAT são 
percorridos, em qualquer dos casos, uma vez, mesmo quando a condição de 
cancelamento já se verifica antes de iniciar o loop. 
REPEAT 
 Instruções 
UNTIL condição de cancelamento 
 
A condição de cancelamento é, analogamente à condição de execução do 
loop WHILE, uma expressão lógica que poderá ser uma variável booleana, uma 
ativação de função booleana ou uma combinação lógica com um resultado 
booleano: 
 
INT W 
REPEAT 
PTP PALETTE 
 $OUT[2]=TRUE 
 PTP POS_2 
 $OUT[2]=FALSE 
 PTP HOME 
UNTIL $IN[4] == TRUE ;percorrido até ser ativada a entrada 4 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 89 
3.16 LOOP INFINITO (LOOP) 
 
 
Com a instrução LOOP podem ser programadosloops infinitos: 
 
LOOP 
 Instruções 
ENDLOOP 
 
A execução repetida do bloco de instruções só poderá ser terminada através 
da instrução EXIT. 
Qualquer loop poderá ser terminado antes do tempo, através de uma 
instrução EXIT. 
Ao ativar o EXIT dentro de um bloco de execução do loop, os percursos 
através dos loops são terminados de imediato, e o programa continua a seguir à 
instrução de loop. 
Se as condições de cancelamento ou execução forem escolhidas com perícia, 
a instrução EXIT nos loops REPEAT ou WHILE geralmente não é necessária. Para o 
loop infinito, EXIT representa, no entanto, a única hipótese de terminar os loops. 
Veja o exemplo seguinte: 
 
 
 
DEF EXIT_PRO( ) 
PTP HOME 
LOOP 
 ;Início do loop infinito 
 PTP POS_1 
 LIN POS_2 
 IF $IN[1] == TRUE THEN 
 EXIT 
 ;Cancelamento, quando for ativada a entrada 1 
 ENDIF 
 CIRC HELP_1,POS_3 
 PTP POS_4 
ENDLOOP 
;Fim do loop infinito 
PTP HOME 
END 
 
 
 
 
 
 
 
 
 
 
 
 
 90 
3.17 TEMPOS DE ESPERA (WAIT SEC) 
 
 
A instrução WAIT SEC é utilizada para a programação de tempos de espera 
em segundos: 
 
WAIT SEC tempo 
 
Tempo é uma expressão REAL aritmética, através da qual é indicado o 
número de segundos, durante os quais a execução do programa deverá ser 
interrompida. Se o valor for negativo, a espera não se realiza. 
Exemplos: 
 
WAIT SEC 17.542 
WAIT SEC TEMPO*4+1 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 91 
4 SUBPROGRAMAS E FUNÇÕES 
 
 
Para reduzir o trabalho de escrita, quando se trata de seções de programa 
idênticas que se repetem com freqüência, e também para reduzir a extensão do 
programa, foram introduzidos subprogramas e funções como construções de 
linguagem. 
O efeito dos subprogramas e das funções que se faz sentir em programas 
mais extensos é considerável, uma vez que proporcionam a possibilidade de utilizar 
os algoritmos uma vez escritos em outros programas e, sobretudo, a utilização dos 
subprogramas na estruturação do programa. Esta estruturação poderá dar origem a 
uma construção hierárquica, de modo a que os vários subprogramas, ativados por 
um programa superior, podem executar tarefas parciais completas e fornecer os 
resultados. 
 
4.1 SUBPROGRAMA 
 
 
Um subprograma ou uma função constituem uma seção separada do 
programa, que dispõe de um cabeçalho de programa, uma seção de declaração e 
uma seção de instrução e que poderá ser ativada a partir de um local qualquer do 
programa principal. Depois da execução do subprograma ou da função realiza--se o 
regresso à instrução que se encontra a seguir à ativação do subprograma. 
A partir de um subprograma ou de uma função podem ser ativados outros 
subprogramas e/ou funções. 19 programas constituem o máximo admissível para a 
ativação sucessiva a partir de outros programas. Se este número for ultrapassado, é 
emitida a mensagem de erro “SOBRECARGA DE PROGRAMAS”. A ativação 
recursiva de subprogramas ou funções não é permitida. Isto significa que um 
subprograma ou uma função não podem ativar--se novamente a si próprios. 
Tal como os programas principais, são declarados também todos os 
subprogramas através da declaração DEF mais o nome, terminando com END, 
p.ex.: 
 
 
 92 
 
 
4.2 FUNÇÕES 
 
Uma função é uma espécie de subprograma, mas o nome do programa é, 
simultaneamente, uma variável de um determinado tipo de dados. Assim, o resultado 
da função poderá ser transferido para uma variável, através de uma simples 
atribuição do valor. Na declaração das funções através da palavra chave especial 
DEFFCT, terá de ser indicado, além do nome da função, também o tipo de dados da 
função. Uma função é terminada com ENDFCT. Uma vez que uma função pretende 
transferir um valor, este valor terá de ser especificado através da instrução 
RETURN, antes da instrução ENDFCT. Exemplo: 
 
DEFFCT INT FUNÇÃO( ) 
 INSTRUÇÕES 
RETURN(X) 
ENDFCT 
 
 
EXEMPLO: 
 
 
 93 
 
 
Há uma diferença substancial entre subprogramas ou funções locais e 
globais. Nos subprogramas ou funções locais, o programa principal e os 
subprogramas/funções 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 funções se encontram a 
seguir ao programa principal, apresentando qualquer seqüência e qualquer número. 
Os subprogramas/funções locais só podem ser ativados dentro do ficheiro 
SRC no qual foram programados. Caso as ativações de subprogramas/funções 
devam ser possíveis também a partir de outros programas, estes terão de ser 
globais. Os subprogramas ou funções globais são memorizados num ficheiro SRC 
próprio. Assim, todos os programas ativados por outro programa (programa principal, 
subprograma ou função) são subprogramas. 
 
 
 
 
 
 
 
 
 
 
 
 
 94 
Nos programas ou funções locais, são conhecidas todas as variáveis 
declaradas no programa principal, desde que não tenham sido declaradas com 
o mesmo nome novamente no subprograma ou na função. 
 
Nos subprogramas ou funções globais não são conhecidas as variáveis 
declaradas no programa principal. 
 
No programa principal não são conhecidas as variáveis declaradas nos 
subprogramas ou funções. 
 
Um programa principal não tem acesso a subprogramas ou funções locais de 
outro programa principal. 
 
O nome de subprogramas/funções locais pode ter um comprimento máximo de 
12 caracteres. Nos subprogramas/funções globais, o nome pode ter um 
comprimento máximo de 8 caracteres (devido às extensões do ficheiro). 
 
DIFERENÇA ENTRE SUB-PROGRAMA E FUNÇAO LOCAL E GLOBAL 
 
 
 
 
 
 
 
 95 
4.3 ATIVAÇÃO E TRANSFERÊNCIA DE PARÂMETROS 
 
 
 
 
 
 96 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 97 
EXEMPLO: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 98 
REFERÊNCIAS BIBLIOGRÁFICAS 
 
 
PAZOS, Fernando. Automação de sistemas & robótica. Rio de Janeiro: Axcel 
Books, 2002. 
 
 
KUKA Robot GmbH. Programação avançada de robôs. Augsburg, 2006. 
 
 
KUKA Robot Group. Manual de instruções operação e programação. Augsburg, 
2006. 
 
 
ROMANO, Vitor Ferreira. Robótica industrial: Aplicação na indústria de 
manufatura e de processos. São Paulo: Edgard Blücher, 2002. 
 
 
ROSÁRIO, João Maurício. Princípios de mecatrônica. São Paulo: Prentice-Hall, 
2005. 
 
 
SENAI Almirante Tamandaré. Introdução a robótica. São Paulo, SENAI-SP, 2005.

Mais conteúdos dessa disciplina