Você está na página 1de 100

1

CENTRO DE FORMAO PROFISSIONAL SENAI VOLKSWAGEN


PROFESSOR CLEITON RODRIGUES MENDES

ROBTICA

3 REVISO
2011

SUMRIO

CAPTULO 1 ROBTICA INDUSTRIAL


1 HISTRICO.............................................................................................................06
1.1 LEIS DA ROBTICA............................................................................................08
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 CLASSIFICAO DOS ROBS INDUSTRIAIS................................................. 13
2.5 CARACTERSTICAS DOS ROBS INDUSTRIAIS............................................ 15
3 COMPONENTES DE UM ROB INDUSTRIAL..................................................... 16
4 NORMAS DE SEGURANA ................................................................................ 18

CAPTULO 2 MODO DE AJUSTAGEM


1 PROGRAMADOR (VKCP)......................................................................................29
2 PAINEL DE PROGRAMAO KUKA.IHM..............................................................31
3 SISTEMAS DE COORDENADAS...........................................................................34
4 DESLOCAMENTO MANUAL DO ROB................................................................36
5 MODO DE SERVIO..............................................................................................38
5.1 AJUSTE DA POSIO DE ZERO MECNICO (MASTERIZAO)...................39
5.2 MEDIO DA FERRAMENTA (TCP)..................................................................42
5.3 ORIENTAO DA FERRAMENTA......................................................................46
5.4 DADOS DE CARGA DA FERRAMENTA.............................................................48
5.5 MEDIO DE BASE............................................................................................51

SUMRIO

CAPTULO 3 MODO DE PROGRAMAO BSICA

1 ESTRUTURA DE PROGRAMAO.......................................................................54
1.1 ESTRUTURA DE UM PROGRAMA KRL.............................................................54
1.2 POSIO HOME.................................................................................................55
1.3 VARREDURA.......................................................................................................56
1.4 TIPO DE EXECUO 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 APROXIMAO...................................................................................................67
3 INSTRUES LGICAS........................................................................................69
3.1 INSTRUO OUT................................................................................................70
3.2 INSTRUO PULSE............................................................................................71
3.3 INSTRUA ANOUT...........................................................................................72
3.4 INSTRUO WAIT..............................................................................................74
3.5 INSTRUO WAITFOR.......................................................................................75

SUMRIO

CAPTULO 4 MODO DE PROGRAMAO AVANADA


1 METODOLOGIA DA PROGRAMAO AVANADA.............................................77
2 FLUXOGRAMA.......................................................................................................78
3 PROGRAMA KRL....................................................................................................81
3.1 COMENTRIOS...................................................................................................81
3.2 VARIVEIS E DECLARAES...........................................................................82
3.3 TIPOS DE DADOS SIMPLES..............................................................................83
3.4 MANIPULAO DE DADOS...............................................................................83
3.5 OPERADORES ARITMTICOS..........................................................................83
3.6 OPERADORES DE COMPARAO..................................................................84
3.7 OPERADORES LGICOS..................................................................................85
3.8 PRIORIDADE DOS OPERADORES...................................................................86
3.9 FUNES REGULARES....................................................................................86
3.10 INSTRUO DE SALTO (GOTO).....................................................................88
3.11 RAMIFICAO CONDICIONAL (IF ELSE)........................................................88
3.12 DISTRIBUIDOR (SWITCH)................................................................................89
3.13 LOOP DE CONTAGEM (FOR)..........................................................................90
3.14 LOOP DE REJEIO (WHILE)..........................................................................91
3.15 LOOP DE NO REJEIO (REPEAT)..............................................................91
3.16 LOOP INFINITO (LOOP)...................................................................................92
3.17 TEMPOS DE ESPERA (WAIT SEC).................................................................93
4 SUBPROGRAMAS E FUNES...........................................................................93
4.1 SUBPROGRAMA.................................................................................................94
4.2 FUNES............................................................................................................94
4.3 ATIVAO E TRANSFERNCIA DE PARMETROS........................................97

REFERNCIAS BIBLIOGRAFICAS........................................................................100

CAPTULO 1 ROBTICA INDUSTRIAL

1 HISTRICO
Ao lermos palavra robtica imediatamente ns nos lembramos dos robs
mecanismos construdos em metal, semelhantes aos seres humanos e obedientes
aos seus comandos.
Ainda que instintivamente relacionemos os robs aos seres humanos,
podemos afirmar que a aparncia de um rob industrial muito diferente da do
homem. Os robs industriais foram projetados tendo como referncia apenas uma
parte do corpo humano, o membro superior (brao), capaz de executar diversos
movimentos.

Caractersticas Antropomrficas

Caractersticas Antropomrficas do rob KUKA

Segundo a Robotic Industries Association (RIA), rob industrial definido como


um "manipulador multifuncional reprogramvel, projetado para movimentar materiais,
partes, ferramentas ou peas especiais, atravs de diversos movimentos
programados, para o desempenho de uma variedade de tarefas (RIVIN, 1988).
Uma definio mais completa apresentada pela norma ISO (International
Organization for Standardization) 10218: "uma mquina manipuladora com vrios
graus de liberdade, controlada automaticamente, reprogramvel, multifuncional, que
pode ter base fixa ou mvel, para utilizao em aplicaes de automao industrial".
Porm, o termo robtica refere-se ao estudo e utilizao de robs. 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 clebre pelos seus trabalhos de fico cientfica.
A palavra robtica foi usada pela primeira vez em uma pequena estria
publicada em 1942. Tomado como provvel que os robs viessem a ter inteligncia,
Isaac Asimov formulou trs leis, s quais acrescentou, posteriormente, uma quarta, a
"lei zero".

1.1 LEIS DA ROBTICA


Lei Zero:Um rob no pode causar mal humanidade ou, por omisso,
permitir que a humanidade sofra algum mal, nem permitir que ela
prpria o faa.
Lei 1:Um rob no pode ferir um ser humano ou, por omisso, permitir
que um ser humano sofra algum mal.
Lei 2:Um rob deve obedecer s ordens que lhe sejam dadas por seres
humanos, exceto nos casos que em tais ordens contrariem a
Primeira Lei.
Lei 3:Um rob deve proteger sua prpria existncia, desde que tal
proteo no entre em conflito com a primeira e a segunda leis.
A robtica tem como objetivo a automatizao de tarefas que podem ser
executadas pelo homem. Por sua vez, a palavra rob deriva do checo e significa
trabalhador forado. O termo, com a atual interpretao, foi inventado pelo escritor
Checoslovaco, Karel Capek, em 1920. De uma forma simplista, um rob uma
mquina que, capaz de aes independentes, realiza uma dada tarefa, sem ser
continuamente supervisionado por um operador humano, em contraste com uma
mquina comandada distncia que necessita de algum para controlar o seu
movimento. comum chamar de autmato a todo o tipo de rob, tentando
generalizar um nome que teve a sua origem em bonecos mecnicos altamente
sofisticados e implementados no sculo XVII.
O desenvolvimento tecnolgico da microeletrnica, acompanhado do freqente
avano do software, linguagens e programas de computador, coloca-nos perante a
chamada "Inteligncia Artificial" num estgio j muito evoludo, que permite que um
computador adquira conhecimentos da sua prpria experincia, o que faz parecer
que um rob se comporta com inteligncia. Contudo um rob no pode pensar como
ns fazemos.
bem possvel que algo que hoje vemos em filmes de fico cientfica num
futuro, quem sabe prximo, poderemos ver na vida real.

2 CONCEITOS PRINCIPAIS
2.1 GRAUS DE LIBERDADE
Os graus de liberdade (GL) determinam os movimentos do brao robtico no
espao bidimensional ou tridimensional.
Cada junta define um ou dois graus de liberdade, e assim, o nmero de graus
de liberdade do rob igual a somatria 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
complicadas so a cinemtica, a dinmica e o controle do manipulador.
O numero de graus de liberdade de um manipulador est associado ao
nmero de variveis posicionais independentes que permitem definir a posio
de todas as partes de forma unvoca.
Os graus de liberdade indicam o quanto um rob pode se mover no espao
sem as restries.
Um rob totalmente livre sem as restries apresenta 6 graus de liberdade.
Na medida em que adicionamos as restries estes graus de liberdade vo
diminuindo at o rob ficar totalmente fixo.
Os seis movimentos possveis so:

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 braos de robs podem ser formados por trs tipos de juntas:

Juntas deslizantes;

Juntas de rotao;

Juntas de encaixe esfrico.

A maioria dos braos dos robs formada pelas juntas deslizantes e de


revoluo, 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 vnculos. composto
de dois vnculos alinhados um dentro do outro, onde um vnculo interno escorrega
pelo externo, dando origem ao movimento linear.

11

Juntas de rotao
Esta conexo permite movimentos de rotao entre dois vnculos. Os dois
vnculos so unidos por uma dobradia comum, com uma parte podendo se mover
num movimento cadenciado em relao outra parte. As juntas de rotao so
utilizadas em muitas ferramentas e dispositivos, tal como tesouras, limpadores de
pra-brisa e quebra-nozes. Podem ser do tipo dobradia ou eixo rotativo.

Junta de encaixe esfrico


Estas juntas so usadas em um pequeno nmero de robs, devido
dificuldade de ativao.
De qualquer maneira, para se ter a performance de uma junta de encaixe
esfrico, muitos robs incluem trs juntas rotacionais separadas, cujos eixos de
movimentao se cruzam em um ponto.

12

2.3 VOLUME DE TRABALHO


o espao dentro do qual o rob pode manipular a extremidade de seu punho
(o efetuador). Em hiptese alguma poder haver funcionrios nesta regio enquanto
o rob estiver em funcionamento, evitando-se desta maneira acidentes. Alguns
autores e fabricantes usam a expresso Envelope de Trabalho para esta
caracterstica.
A figura a seguir apresenta alguns exemplos:

Os catlogos de fabricantes de robs normalmente ilustram os volumes de


trabalho por diagramas, tais como, os mostrados abaixo, que so as vistas laterais e
superiores da faixa de movimentos possveis do rob.

13

Volume de trabalho do rob KUKA

2.4 CLASSIFICAO DOS ROBS INDUSTRIAIS


a) Quanto informao de entrada e aprendizagem:
Rob Seqencial Cada passo do movimento solicitado de uma seqncia
preestabelecida. Divide-se em:
- rob de seqncia fixa;
- rob de seqncia programvel.

14

Rob Play Back, Repete a seqncia programada de movimentos,


dirigindo fisicamente, ou por meio de um Teach in Box, a ponta do rob.

Rob NC, Programao feita com entrada de forma numrica.

Rob inteligente, O sistema robtico j dispe de sensores externos (como


viso, tato, etc.).

b) Quanto aos tipos de coordenadas de movimento do brao manipulador,


controlado manualmente pelo homem:

Rob de coordenadas cartesianas;

Rob de coordenadas cilndricas;

Rob de coordenadas esfricas ou polar;

15

Rob articulado;

2.5 CARACTERSTICAS DOS ROBS INDUSTRIAIS


Velocidade de movimento
Depende muito da estrutura mecnica 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

o peso mximo que um rob consegue manipular mantendo as suas


especificaes. Nos robs atuais esta capacidade de carga varia desde algumas
gramas at aproximadamente 500 kg, dependendo do rob.

Preciso de movimento
A preciso de movimento definida em funo de trs caractersticas:
a)
Resoluo 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 milmetros at alguns centsimos de
milmetro nos mais precisos.
b)
Preciso: Refere-se capacidade de um rob de posicionar a
extremidade de seu punho em um ponto meta desejado dentro de seu volume de
trabalho.

16

c)

Repetibilidade: a capacidade do rob de posicionar seu punho ou

rgo terminal ligado ao seu punho num ponto meta no espao previamente
indicado.

3 COMPONENTES DE UM ROB INDUSTRIAL

Do ponto de vista macroscpico, um sistema robtico pode ser explodido em trs


grandes componentes:

1 - Manipulador;

2 - Programador;

3 - Controlador;

O manipulador, ou parte mecnica que apresenta liberdade de movimentos,


se subdivide em cinco outros componentes:

Base;

Brao;

Antebrao;

Punho;

rgo terminal;
O brao determina o alcance do rgo terminal no espao euclidiano,

enquanto o punho, sua orientao.

17

O rgo terminal escolhido em funo da tarefa a ser realizada pelo rob e


pode ser:

Garra ou ventosa;

Tocha de solda;

Pistola de pintura.

O programador responsvel pela movimentao fsica de cada junta ou eixo


do manipulador, alm de acionar as juntas dos braos, do punho e vrios tipos de
efetuadores. Os dispositivos de acionamento tm a funo de transformar energia
eltrica, hidrulica, pneumtica, ou uma combinao destas, em energia cintica
para as juntas do brao, do punho e para o rgo terminal.
O controlador responsvel pela coordenao e controle do movimento do
rgo Terminal, objeto principal de aplicao do rob. Sua forma mais simples
consiste apenas em uma srie de paradas mecnicas ajustveis ou chaves
limitadoras.
Nas formas mais complexas, necessrio que o controle e a coordenao do
movimento sejam efetuados por computador, que dispe de uma memria
programvel, permitindo pilotar o rgo terminal ao longo de uma trajetria
precisamente definida.
Possibilita ainda o sincronismo com outros robs e equipamentos perifricos
(como por exemplo, esteira transportadora, prensas, aplicao de cola. Etc...).

18

4 NORMAS DE SEGURANA
Como usar de maneira correta os robs industriais.
O aumento do nmero de robs industriais devidamente utilizados nas
indstrias trouxe evidente melhoria no processo produtivo tornando-nos mais
competitivos nos mercados nacionais e internacionais. O ganho de qualidade nos
produtos e a reduo do tempo de fabricao foram os responsveis diretos deste
salto competitivo.
Entretanto, toda a inovao tecnolgica vem acompanhada da necessidade de
mo-de-obra especializada e devidamente preparada para o convvio dirio com
esta tecnologia. Profissionais atuando conscientemente e adotando medidas
consistentes de segurana.
Afinal, por serem mquinas dotadas de grande mobilidade, flexibilidade e
velocidade, devemos atentar cuidadosamente para os procedimentos relacionados
segurana das pessoas que trabalharo diretamente e tambm com as que
eventualmente estaro nas proximidades do equipamento.

19

Risco de coliso
Qual a intensidade do choque que um operador sofre numa coliso com um
manipulador?
Como isso no pode ser verificado na prtica, foram realizados testes com
corpos de prova semelhantes aos empregados em ensaios de acidentes
automobilsticos. Ao submeter o corpo de prova a um choque em alta velocidade
contra o manipulador de um rob tipo hidrulico de grande porte, detectou-se uma
acelerao de choque de 200G. No caso de um rob tipo eltrico de porte mdio,
foram atingidos valores elevados, como 90G. Se o ser humano for submetido a uma
acelerao de 100G, mesmo que instantaneamente, poder ser fatal, conclui-se,
ento, o quo potente e perigoso o manipulador de um rob.
Testes realizados com corpos de prova

Robs de grande porte desenvolvem uma acelerao de choque de 200G;


robs de porte mdio, 90G (O ser humano corre risco de morte com 100G).
Exemplos tpicos de acidente
freqente a ocorrncia de acidentes no uso de mquinas automticas e de
sistemas automticos de produo industrial. Esses acidentes podem ser, de
maneira geral, classificados de acordo com seis exemplos seguintes:
1

O operador opera incorretamente a mquina e sofre o acidente;

20

Na ocorrncia de um problema durante a operao da mquina automtica, o

operador tenta inadvertidamente fazer o reparo, introduzindo a mo ou entrando na


rea de risco, vindo a colidir com a parte mvel e sofrendo o acidente;
3

O operador, sem perceber que a mquina automtica estava em operao,

entra na linha de produo automtica sem nenhuma proteo. atacado por um


movimento de uma direo no perceptiva, sofrendo um acidente;
4

Durante uma parada momentnea da mquina automtica (em espera), o

operador detecta um problema e resolve repar-lo, achando que a mquina est em


repouso; quando atingido por uma parte mvel, sofre o acidente;
5

Por um defeito no controlador, a mquina automtica 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 segurana, a mquina automtica no

paralisada e acaba ocasionando um acidente.

Exemplos de acidentes
a) Uma pessoa que estava treinando, querendo aproveitar s 3 horas do intervalo de
descanso para estudos prticos junto ao rob, penetra na rea de ao do rob
de solda.

21

Quando o operador responsvel retorna ao local, aciona o boto de operao sem


perceber a presena dessa pessoa na rea de ao, prensando o treinando.

b) Um rob, para descarte de item defeituoso que surge em uma correia


transportadora, deixa cair uma pea. Percebendo isso, o operador tenta retirar a
pea entrando na rea de ao sem antes paralisar o rob. O operador acaba
prensado entre a correia transportadora e o manipulador.

c) Para inspecionar o processo de MC (machining center, centro maquinrio), o


operador paralisa a linha automtica de produo no modo bloqueio. Depois de
constatar que todas as mquinas no seu campo de viso esto paradas, o
operador entra na rea de produo quando atingido por um rob de
carregamento areo.

22

d) Devido a uma falha no processo, o operador percebe que todas as mquinas


ficaram paralisadas e sobe na correia transportadora para remover a pea
defeituosa com as duas mos. Quando a pea removida, a chave de limite de
carga (limit switch) do rob, acoplada correia transportadora, acionada e o
operador fica comprimido pelas costas, entre o brao do rob e a correia
transportadora.

23

e) Por um defeito no controlador, a mquina automtica 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 instruo de um rob em baixa


velocidade, utilizando um teaching box (painel de instruo), um rudo
eletromagntico gerado por fascas de solda interfere no controlador, fazendo o
manipulador trabalhar em alta velocidade, provocando acidente.

g) Durante a limpeza diria, o operador abre a porta e entra na rea cercada do


rob. Devido a uma falha na chave de segurana, o rob no paralisado e causa o
acidente.

25

Mesmo circundando a rea de ao do rob com uma cerca de segurana, deve-se


confirmar a paralisao do rob antes da aproximao do operador. Para isso,
geralmente se instala uma chave de segurana na porta, de modo que o rob
sempre seja paralisado assim que a porta aberta, num modo interlock. A
implementao deve ser tal que a paralisao do rob seja garantida mesmo em
casos de falha na chave de segurana.
Os exemplos anteriores evidenciaram-nos uma srie de possveis acidentes, e
que devemos observar todos os quesitos relacionados segurana sempre que o
trabalho com os robs ou equipamentos automticos fizer-se necessrio.
Devemos dispensar toda ateno possvel ao interagirmos com estes
equipamentos, e os mesmos cuidados devero ser observados pelos projetistas no
desenvolvimento e implantao de sistemas robotizados.
Um pequeno erro humano pode acabar num grave acidente causado pelo rob.
Entretanto, no sendo possvel eliminar totalmente as falhas humanas, torna-se
necessrio e importante incorporar dispositivos de segurana no controlador para
que o rob seja paralisado quando for detectada a entrada do operador na rea de
ao.
Para sua implementao, utilizam-se dispositivos de segurana junto s portas
como sensores pticos, esteiras de segurana e os sensores de ultra-som.
Entretanto, se o prprio dispositivo de segurana vier a falhar a presena
humana no poder ser detectada o que incorrer num acidente. Uma vez que
mesmo os dispositivos de segurana so susceptveis a falha, importante projetar
o sistema de tal forma que o rob seja paralisado mesmo na falha de um dos
dispositivos de segurana. Um sistema de segurana prova de falhas (safe fail)
primordial para a segurana no trabalho.

26

Exemplo de clula de segurana

Para minimizar os riscos de acidentes de coliso em clulas com rob,


padro o procedimento de montar uma cadeia de segurana para trabalho na clula,
que dividida em partes:
rea de trabalho
a rea de atuao do manipulador, onde o rob pode se movimentar
devendo seu acesso permanecer restrito, para evitar riscos de coliso. Esta rea
deve ser cercada com grades de proteo ou protegida atravs de fotoclulas.
Operadores e equipe de manuteno devem permanecer na rea somente
quando so executados reparos na clula, devendo para isso acionar a parada de
emergncia, ou ligar o rob em modo manual.
Travas de segurana (fotoclulas ou grades de proteo)
So dispositivos que quando atuados, bloqueiam o movimento do rob,
acionando comando de emergncia. Como padro existe uma porta de entrada na
clula, que possui uma chave fim de curso que quando a porta aberta, aciona o
comando de emergncia.

27

Botes de emergncia
So botes de comando dos operadores, que bloqueiam imediatamente o rob
caso sejam acionados. Existem nos painis de comando da clula, no painel de
comando do rob, na unidade de programao e em alguns casos em pontos
estratgicos da clula.
Botes de emergncia e botes de homem morto na unidade de programao
Ambos param o rob sendo usados somente quando o rob esta sendo
programado.
Modo de operao manual ou automtico com velocidade reduzida.
Quando rob esta sendo programado, ele roda no modo manual, obedecendo
aos comandos da unidade de programao. Para teste inicial, a velocidade de rob
reduzida para evitar riscos.

28

CAPTULO 2 MODO DE AJUSTAGEM

29

1 PROGRAMADOR (VKCP)

Viso Frontal
O VKCP (Volkswagen KUKA Control Panel) uma unidade manual de programao
para o sistema do rob. O VKCP dispe de todas as funes necessrias
operao e programao do sistema de rob.

30

Viso traseira

31

2 PAINEL DE OPERAO KUKA.IHM

Statuskeys, menukeys, softkeys

32

Janela de superfcie 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 posio 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 posio da pea. Ele refere-se ao sistema de coordenadas WORLD.
Como ajuste predefinido, o sistema de coordenadas BASE idntico ao
sistema de coordenadas WORLD. Ele deslocado do rob para a pea.

36

Sistema de coordenadas TOOL ou FERRAMENTA

O sistema de coordenadas TOOL um sistema de coordenadas cartesiano


que est no ponto de trabalho da pea. 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

H 2 modos de deslocar manualmente o rob:

Deslocamento cartesiano

O TCP deslocado em direo positiva ou negativa, ao longo dos eixos de um


sistema de coordenadas.

Deslocamento especfico do eixo

Todos os eixos podero ser deslocados individualmente na direo positiva e


negativa.

37

Movimentando o rob

38

Deslocamento especfico eixo a eixo do rob.

5 MODO DE SERVIO

Ajuste de contraste
Para o tipo de deslocamento necessrio que a seguinte statuskey seja
exibida:

39

5.1 AJUSTE DA POSIO DE ZERO MECNICO (MASTERIZAO)

Durante o ajuste o rob transportado para a posio zero mecnica e o


valor do codificador para cada eixo memorizado. Deste modo a posio zero
mecnica e a posio zero eletrnica so colocados em concordncia.
S um rob ajustado pode deslocar-se para posies programadas e
movimentado cartesianamente.
Um rob deve ser ajustado nos seguintes casos:

Ao colocar em funcionamento pela primeira vez;

Aps reparaes (p.ex. aps substituir o motor ou RDW);

Quando o rob foi movimentado sem a unidade de comando do rob (p.ex.


com o dispositivo de rotao livre);

Aps a substituio de uma engrenagem;

Aps uma coliso;

40

41

42

5.2 MEDIO DA FERRAMENTA (TCP)

Durante a medio da ferramenta o utilizador atribui um sistema de


coordenadas cartesiano (Sistema de coordenadas TOOL) a uma ferramenta
montada na flange de fixao.
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 medio da ferramenta:

A ferramenta pode ser deslocada em linha reta, na direo de trabalho;

A ferramenta pode ser girada em volta do TCP, sem alterar a posio do TCP;

No modo de programa: A velocidade de deslocamento programada mantida


no TCP ao longo do trajeto;

So memorizados os seguintes dados:

X, Y, Z:

Origem do sistema de coordenadas TOOL, referente ao sistema de coordenadas


da FLANGE.

43

A, B, C:

Orientao do sistema de coordenadas TOOL, referente ao sistema de


coordenadas da FLANGE.

MEDIO DA FERRAMENTA

44

MTODO DE MEDIO DA FERRAMENTA

45

46

5.3 ORIENTAO DA FERRAMENTA

47

48

5.4 DADOS DE CARGA DA FERRAMENTA

49

50

51

5.5 MEDIO DE BASE

52

53

CAPTULO 3 MODO DE PROGRAMAO BSICA

54

1 ESTRUTURA DE PROGRAMAO

Gestor de pastas do navegador

1.1 ESTRUTURA DE UM PROGRAMA KRL

55

1.2 POSIO HOME


A posio HOME uma posio vlida para todo do programa. Normalmente
ela utilizada como primeira e ltima posio no programa porque ela
inequivocamente definida e no crtica.
A posio HOME predefinida e criada na unidade de comando do rob.
Podem ser programadas at 9 outras posies HOME.
Uma posio HOME deve cumprir os seguintes requisitos:

Favorvel posio inicial para a execuo do programa;

Favorvel posio de repouso. Por exemplo, o rob no deve apresentar um


obstculo quando estiver em repouso;

56

1.3 VARREDURA

A varredura o mximo nmero de conjuntos de movimentos que a unidade


de comando do rob calcula e planeja antes da execuo do programa. O nmero
real depende do grau de aproveitamento do computador. A varredura refere-se
posio atual do apontador de passo.
O valor predefinido 3.
Entre outros, a varredura necessria para poder calcular movimentos de
aproximao.
Algumas instrues acionam uma parada da varredura. Instrues que
influenciam a periferia, p.ex. instrues OUT fazem parte destas instrues.

1.4 TIPO DE EXECUO DO PROGRAMA

O tipo de execuo 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 rpido at o


ponto de destino. Normalmente o trajeto mais rpido no o trajeto mais curto e,
portanto no reto. Como os eixos do rob se movimentam em rotaes, os trajetos
em forma de arcos podem ser executados com maio rapidez do que trajetos retos.

58

A programao de um movimento PTP abrange:

Memorizar as coordenadas do ponto de destino.

Configurar diversos parmetros, p.ex. velocidade.

Formulrio In line de movimento PTP

59

FIGURA DO DESLOCAMENTO DO MOVIMENTO PTP

Janela de opes para os parmetros 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 programao de um movimento LIN abrange:

Memorizar as coordenadas do ponto de destino;

Configurar diversos parmetros, p.ex. velocidade;

Formulrio 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 programao de um movimento CIRC abrange:

Memorizar as coordenadas do ponto de ajuda.

Memorizar as coordenadas do ponto de destino.

Configurar diversos parmetros, p.ex. velocidade.

63

Formulrio In line de movimento CIRC

64

FIGURA DO DESLOCAMENTO DO MOVIMENTO CIRC

Janela de opes dos parmetros de movimento (LIN E CIRC)

65

66

2.4 MODIFICAR PONTO PROGRAMADO

67

2.5 APROXIMAO

68

69

3 INSTRUES LGICAS

70

3.1 INSTRUO OUT

71

3.2 INSTRUO PULSE

72

3.3 INSTRUO ANOUT

73

74

3.4 INSTRUO WAIT

75

3.5 INSTRUO WAITFOR

76

CAPTULO 4 PROGRAMAO AVANADA

77

1 METODOLOGIA DA PROGRAMAO AVANADA

78

2 FLUXOGRAMA

79

80

81

3 PROGRAMA KRL

O software da unidade de comando KR C1 distingue entre o utilizador e o


perito. O utilizador no necessita de conhecimentos acerca da sintaxe de
programao, uma vez que ele cria os programas com a ajuda dos menus. Sempre
que o sistema for iniciado, encontra--se selecionado, automaticamente, o nvel de
utilizador.
Quando as funes do nvel de utilizador se revelar insuficientes, poder ser
mudado para o nvel de perito. O perito poder ento programar atravs do teclado
ASCII na linguagem de programao de robs KRL (KUKA Robot Language), bem
como editar ficheiros de sistema ou de inicializao (sistemas de bus).
KRL uma linguagem de programao mais elevada, semelhante
linguagem PASCAL, sendo tambm adequada para a programao de tarefas
complexas.
O acesso ao nvel de perito protegido por uma senha. Para mudar para o
nvel de perito, acione o boto menukey Config. e abra um menu de seleo que
contenha a opo Grupo de utilizadores, ao encontrar no nvel de utilizador acione
o boto softkey Perito, aparecer o pedido de introduzir a senha de acesso ao nvel
de perito, que kuka.
NO MODO PERITO EXISTEM ARQUIVOS COM EXTENO DAT E SRC.
SOMENTE OS ARQUIVOS SRC PODEM SER EDITADOS, OS ARQUIVOS DAT
SO ARQUIVOS DE SISTEMA.

3.1 COMENTRIOS

Os comentrios so uma parte integrante muito importante de todos os


programas de computador. Com a ajuda de um comentrio, o programa poder
tornar mais claro e compreensvel. A velocidade de processamento do programa no
influenciada pelos comentrios.
Os comentrios podero ser introduzidos em qualquer local do programa. So
iniciados sempre com um ponto e vrgula ;, p.ex.:
PTP P1
; Movimento para ponto de sada
; --- Fazer o reset das sadas --FOR I = 1 TO 16
$OUT[I] = FALSE
ENDFOR

82

3.2 VARIVEIS E DECLARAES

As variveis so necessrias para a programao dos robs industriais, 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.
Os nomes em KRL:
Podem ter um comprimento mximo de 12 caracteres;
Podem conter letras (A--Z), nmeros (0--9) e os caracteres _e $;
No podem comear com nmeros;
No podem ser palavras chave (OUT, IN, INT, REAL);
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).
O smbolo de igualdade (=) atribui varivel valores. Assim, a instruo
MENDES = 5
Implica que na rea de memria com o endereo de MENDES introduzido o
valor 5.

83

3.3 TIPOS DE DADOS SIMPLES

Em KRL, poder atribuir o numero 90 a uma varivel INTEIRA de trs


maneiras diferentes:
INT TESTE = 90 (sistema decimal)
INT TESTE = B1011010 (sistema binrio)
INT TESTE = H5A (sistema hexadecimal)

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

3.5 OPERADORES ARITMTICOS

Os operadores aritmticos dizem respeito aos tipos de dados INTEIRO e


REAL. Todos os tipos de clculos bsicos so admissveis em KRL.

O resultado de uma operao aritmtica INT, apenas no caso de os dois


operandos serem do tipo INTEIRO. Se o resultado de uma diviso (INTEIRO) 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

84

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 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
;------------- 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

3.6 OPERADORES DE COMPARAO

Com a ajuda dos operadores de comparao 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).

85

Exemplo:
BOOL A,B
B = 10 < 3
A = 10/3 == 3
B = ((B == A) <>
A = F < Z

;B=FALSE
;A=TRUE
(10.00001 >= 10)) == TRUE
;A=TRUE

;B=TRUE

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

Alguns exemplos em relao a interligaes lgicas:


BOOL A,B,C
A = TRUE
;A=TRUE
B = NOT A
;B=FALSE
C = (A AND B) OR NOT (B EXOR NOT A)
A = NOT NOT C ;A=TRUE

;C=TRUE

86

3.8 PRIORIDADES DE OPERADORES

Se utilizar expresses mais complexas com vrios operadores, ter de estar


com ateno s diferentes prioridades dos vrios operadores, uma vez que as vrias
expresses so executadas pela ordem da respectiva prioridade.

3.9 FUNES REGULARES

Para o clculo de determinados problemas matemticos, j existem em KRL


algumas funes regulares predefinidas. Estas podem ser utilizadas diretamente,
sem declarao.

Montante
A funo ABS(X) calcula o montante do valor X, p.ex.:
B = -3.4
A = 5 * ABS(B) ;A=17.0
Raiz quadrada
SQRT(X) calcula a raiz quadrada do numero X, p.ex.:
A = SQRT(16.0801)
;A=4.01

87

Seno, Coseno, Tangente


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) ;A=0.5
B = 2*COS(45)
;B=1.41421356
C = TAN(45);C=1.0
Arco coseno
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.
ACOS(X) a funo inversa de COS(X):
A = COS(60)
B = ACOS(A)

;A=0.5
;B=60

Arco seno
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) ;A=0.8660254
B = 90-ACOS(A) ;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 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 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.
Devido indicao explcita de X e Y, o sinal destes determina claramente o
quadrante, no qual se encontra o ngulo. 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

88

3.10 INSTRUO DE SALTO (GOTO)


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 MARCA
O ponteiro de programa salta para a posio MARCA. A posio tambm ter
de ser definida com:
MARCA:
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.
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.

3.11 RAMIFICAO CONDICIONAL (IF ELSE)

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

89

A condio de execuo uma expresso booleana. Em funo do valor da


condio de execuo executado o primeiro bloco (bloco THEN) ou o segundo
bloco de instruo (bloco ELSE). O bloco ELSE opcional, e por isso tambm pode
faltar. Se a condio de execuo=FALSE, no executada nenhuma instruo,
continua--se com a instruo 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 atravs


de uma construo IF ou - bastante mais simples - atravs do distribuidor SWITCH.
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 respectivo 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
respectiva 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 C1 Assim, este encontra--se disposio
como critrio de seleo, na forma de um valor INTEIRO.

90

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

3. 13 LOOP DE CONTAGEM (FOR)

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.
FOR contador = start TO fim STEP largura de passos
instrues
ENDFOR
Poder ser programado, com bastante clareza, um determinado nmero de
passagens. Como o valor de incio e valor do fim do contador e que indique sempre
uma expresso do tipo INTEIRO. 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).

91

DEF ( )
INT CONT
; declarao da varivel CONT
INI
CONT = 0
; atribuio do valor zero varivel CONT
FOR CONT = 1 TO 5
PTP {A1 45}
PTP {A2 -70,A3 50}
PTP {A1 0,A2 -90,A3 90}
ENDFOR
END

3. 14 LOOP DE REJEIO (WHILE)

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:
X = 1
W = 1
WHILE W < 5
;percorrido enquanto W MENOR que 5
X =X *W
W =W + 1
ENDWHILE

3.15 LOOP DE NO REJEIO (REPEAT)

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.

92

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:
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

3.16 LOOP INFINITO (LOOP)

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

93

DEF EXIT_PRO( )
PTP HOME
LOOP
;Incio 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

3.17 TEMPOS DE ESPERA (WAIT SEC)

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

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

94

4.1 SUBPROGRAMA

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.
A partir de um subprograma ou de uma funo podem ser ativados outros
subprogramas e/ou funes. 19 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 PROGRAMAS. A ativao
recursiva de subprogramas ou funes no permitida. Isto significa que um
subprograma ou uma funo no podem ativar--se novamente a si prprios.
Tal como os programas principais, so declarados tambm todos os
subprogramas atravs da declarao DEF mais o nome, terminando com END,
p.ex.:

4.2 FUNES
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 indicado, 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:

95

DEFFCT INT FUNO( )


INSTRUES
RETURN(X)
ENDFCT

EXEMPLO:

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. Os subprogramas ou funes globais so memorizados num ficheiro SRC
prprio. Assim, todos os programas ativados por outro programa (programa principal,
subprograma ou funo) so subprogramas.

96

Nos programas ou funes locais, so conhecidas todas as variveis


declaradas no programa principal, desde que no tenham sido declaradas com
o mesmo nome novamente no subprograma ou na funo.
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
outro programa principal.
O nome de subprogramas/funes locais pode ter um comprimento mximo de
12 caracteres. Nos subprogramas/funes globais, o nome pode ter um
comprimento mximo de 8 caracteres (devido s extenses do ficheiro).

DIFERENA ENTRE SUB-PROGRAMA E FUNAO LOCAL E GLOBAL

97

4.3 ATIVAO E TRANSFERNCIA DE PARMETROS

98

99

EXEMPLO:

100

REFERNCIAS BIBLIOGRFICAS

PAZOS, Fernando. Automao de sistemas & robtica. Rio de Janeiro: Axcel


Books, 2002.

KUKA Robot GmbH. Programao avanada de robs. Augsburg, 2006.

KUKA Robot Group. Manual de instrues operao e programao. Augsburg,


2006.

ROMANO, Vitor Ferreira. Robtica industrial: Aplicao na indstria de


manufatura e de processos. So Paulo: Edgard Blcher, 2002.

ROSRIO, Joo Maurcio. Princpios de mecatrnica. So Paulo: Prentice-Hall,


2005.

SENAI Almirante Tamandar. Introduo a robtica. So Paulo, SENAI-SP, 2005.