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

Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Automao e Robtica I

Tcnicas e Linguagens de
Programao de Robs

Ricardo Silva n 1841

Rui Cabral n 1547

Henrique Carvalho n 1331

- Viseu, 2001 -
- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 1
Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

1 - Introduo
Neste trabalho vamos apresentar uma viso geral dos diferentes tipos e mtodos de
programao de robs, o processo de desenvolvimento de um programa para um rob e ainda uma
abordagem s linguagens de programao mais usadas.

Em primeiro lugar, temos de estabelecer algumas terminologias:

Os graus de liberdade de um rob sero numerados da seguinte forma: 1, 2, 3, etc.


Usualmente os robs industriais tm entre 4 e 6 graus de liberdade, um em cada junta.

Figura 1

No final do brao do rob, est situado um rgo terminal. Nas figuras abaixo podemos ver
alguns dos mais utilizados.

Figura 2 Figura 3 Figura 4

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 2


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Considerando o rgo terminal da figura 2, o chamado gripper, vamos definir um ponto


no meio dos dois dedos denominado end-point (Pe) do rob.

Se, por exemplo, o rob tem um gripper de dois dedos, para poder levantar objectos,
definimos geralmente Pe como um ponto entre os dois dedos, de modo que quando um objecto
est neste ponto, tudo o que o rob tem a fazer para o levantar fechar o gripper para agarrar
o objecto. Pode ento executar um movimento com o objecto entre os dedos.

Mas no suficiente definir Pe como um ponto. tambm necessrio atribuir-lhe um


sistema de coordenadas, para que possamos definir a posio de Pe no espao, e a sua
orientao. Deste modo, estamos com todas as condies para definir uma posio e uma
orientao do gripper do rob relativamente posio e orientao de Pe.

A posio e orientao de Pe precisa de ser definida relativamente a um sistema de


eixos de referncia global. Para isto, normalmente utilizado um sistema de coordenadas fixo
na base do rob, que no deve ser movido.

Neste momento apenas importante saber o que o Pe e que a sua posio e


orientao no espao de trabalho determinada pelos valores da posio das juntas 1, 2,
3, etc.

Uma posio e orientao especial de Pe no espao, e por conseguinte um


determinado conjunto de valores de posio das juntas chamada configurao do brao do
rob.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 3


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

2 - Tipos de programao de robs


Podemos distinguir trs tipos diferentes de nveis de programao de robs, baseados nos
diferentes tipos de aco bsica que esto especificados em cada um destes trs nveis.

a) Programao a nvel das juntas no qual as aces bsicas so posies (e


possivelmente movimentos) de cada junta individualmente: ngulos no caso de juntas
rotacionais e posies lineares no caso de juntas prismticas.

b) Programao a nvel do rob no qual as aces bsicas so as posies e


orientaes (e porventura trajectrias) de Pe e do sistema de coordenadas afecto.

c) Programao de alto nvel, que pode ser subdividida em:

i. Programao a nvel de objectos no qual as aces bsicas so


operaes a ser executadas nas partes, ou relaes que devem ser
estabelecidas entre as partes.

Um exemplo desta ideia o colocar um bloco sobre outro:

Pegar Bloco A pelo LadoA1 e LadoA3

Mover Bloco A. para Posio2

Pegar Bloco B pelo LadoB1 e LadoB3

Colocar Bloco B no topo de Bloco A

Com LadoA5 alinhado com LadoB6 e

Com LadoA1 alinhado com LadoB1 e

Com LadoA2 alinhado com LadoB2

Aqui, os blocos A e B so do mesmo tamanho, com os lados numerados de 1


a 4, face do topo nmero 5, e face de baixo nmero 6.

As relaes alinhados com especificadas no ltimo comando deste pequeno


programa a nvel de objectos, so as instrues necessrias para localizar o
Bloco B relativamente ao Bloco A no espao.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 4


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Para este programa ser um programa completo que possa ser compilado e
interpretado em comandos actuais de rob, teremos que acrescentar algumas
definies dos dois objectos envolvidos, e definies da Posio2 e das outras
posies utilizadas.

ii. Programao a nvel de tarefas neste caso, as aces bsicas


especificadas pelo programa so tarefas completas ou subtarefas, tais como:

Agarra a caneta vermelha

Coloca o copo na mesa

Para este tipo de programas funcionar, o sistema do rob precisa de saber,


de alguma maneira, de tipos de canetas e cores, de copos e partes que so
necessrias para fazer a tarefa. Dar informaes deste tipo ao sistema no
fcil.

A programao a nvel das juntas e a nvel do rob continua a ser o tipo de programao de
robs mais utilizada. A programao a nvel de objectos no tem tido muito xito, e por isso continua a
ser assunto de investigao. A nvel industrial, no h linguagens de programao a nvel de tarefas
que possam ser aplicadas, e por isso so tambm assunto de estudo e investigao.

Estes problemas advm do facto de tanto a programao a nvel de objectos como de tarefas
carecer que o rob tenha algum tipo de controlo inteligente.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 5


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

3 - Mtodos de programao de robs


Podemos tambm dividir os mtodos de programao de robs em dois tipos diferentes:

mtodos de programao On-line;

mtodos de programao Off-line.

A diferena entre estes dois tipos de programao reside no facto de na programao on-line
ser necessrio utilizar o rob a ser programado para gerar o programa, enquanto que na programao
off-line no preciso ter o rob seno na fase final de teste e implementao.

A programao off-line envolve a escrita do programa em modo texto numa linguagem de


programao de rob. As linguagens mais utilizadas na programao de robs iro ser descritas mais
frente. Por agora vamos analisar os mtodos de programao.

3.1 - MTODOS DE PROGRAMAO ON-LINE

3.1.1 - Programao por amostragem ou programao por ensino

Este tipo de programao consiste na movimentao fsica do brao do rob atravs dos
movimentos e aces que ter que efectuar num determinado processo. Ao mesmo tempo que esta
movimentao fsica efectuada, o rob regista as posies (e trajectrias se necessrio) para onde,
ou atravs das quais, o rob ter de se deslocar.

Se o controlador apenas regista (na sua memria) posies estticas da configurao do


rob, e no trajectrias, isto chamado programao ponto-a-ponto. Cada configurao
identificada por um nmero ou um nome simblico. (Note-se que o termo ponto-a-ponto
no pode ser interpretado no seu sentido lato pois, o que realmente registado so as
configuraes do brao, ou seja, a posio e orientao de Pe.

A execuo do programa s envolve que o sistema de controlo do rob mova o brao do


rob para cada uma das configuraes registadas na sequncia especificada no programa.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 6


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Se o controlador pode registar as trajectrias pelas quais o rgo terminal do rob deve
passar, isso a chamada programao por trajectria. Este conceito bastante
semelhante programao ponto-a-ponto excepto no facto de serem gravados muitos
mais pontos (configuraes do rob). O nmero necessrio e a distncia entre eles, so
automaticamente determinados pelo sistema de controlo do rob. O controlador
simplesmente simplifica o movimento do brao do rob enquanto o programador o move na
direco desejada.

A execuo do programa apenas uma questo de repetir as trajectrias programadas


pela ordem pela qual foram programadas.

Outros tipos de aces no so geralmente possveis de programar com este mtodo de


programao, contudo existe usualmente uma maneira de programar a abertura/fecho do gripper, ligar
ou desligar um ponta de solda, etc.

Durante este tipo de programao, os motores do rob so desligados. Por este facto, este tipo
de programao muitas vezes conhecido como programao on-line passiva.

A maior vantagem deste tipo de programao que bastante fcil de fazer, e no requer
nenhum conhecimento especial de programao ou treino.

As principais desvantagens so:

o no prtica para robs muito grandes ou pesados;

o no pode ser usada em situaes perigosas;

o grande preciso e movimentos em linha recta so difceis de conseguir, assim


como outra trajectria geomtrica, como circunferncias, etc;

o difcil de associar sensores de dados externos;

o a sincronizao com outras mquinas ou equipamentos da clula de trabalho


difcil.

Para robs de pequenas dimenses e que s so usados para tarefas relativamente simples
que no envolvam outras mquinas ou robs, este mtodo de programao ainda o mais eficaz e o
menos dispendioso.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 7


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

3.1.2 - Programao pela consola

Algumas das dificuldades podem ser ultrapassadas usando o mtodo de programao pela
consola (teach-box). Este mtodo usa uma consola e uma programao on-line activa.

A consola um painel de controlo que est conectado ao sistema


de controlo do rob, que pode ser usado para fazer o brao do rob
deslocar-se para uma configurao especial ou executar outras
operaes tal como abrir ou fechar o gripper.

A consola geralmente tem um conjunto de botes que permite


configuraes especiais ou operaes que podem ser gravadas como um
passo do programa. tambm possvel armazenar movimentos
particulares que usam trajectrias definidas.
Figura 5 Uma consola
O uso deste mtodo de programao requer que os motores do
rob estejam ligados. Isto chamado, algumas vezes, de programao on-line activa. Isto significa
tambm que potencialmente perigoso pois, o programador tem uma grande tentao de estar perto
do rob enquanto este est a ser programado para melhor observar o que se est a passar, para
ajustar ou alinhar melhor a posio e orientao do gripper, etc. Isto nunca dever acontecer! O rob
deve sempre ser colocado em modo de segurana antes de o programador poder entrar na sua rea
de trabalho.

Se for possvel, utilizando a consola, incluir especificaes de movimento e velocidade e/ou


especificar outras condies das aces e movimentos do rob, tais como o tipo de trajectria a usar
entre duas configuraes, este mtodo de programao algumas vezes chamado de programao
extendida com a consola.

Ambos os mtodos, descritos anteriormente, so mtodos de programao on-line. A


programao por ensino essencialmente um mtodo para programao a nvel das juntas. A
programao com a consola um mtodo que usualmente permite misturar a programao a nvel das
juntas e a programao a nvel do rob num mesmo programa. algumas vezes mais conveniente
mover somente uma junta, para estabelecer algumas configuraes desejadas do rob, do que tentar
comandar o movimento do Pe.

Embora ambos os mtodos serem os mais usados, tm duas importantes desvantagens:

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 8


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Na programao on-line preciso aceder ao rob enquanto est a ser


programado, isto significa que o rob no pode estar a fazer mais nada enquanto
est a ser programado, ou por outras palavras, enquanto a programao estiver a
decorrer no podero ser utilizados quaisquer perifricos ou robs dependentes do
mesmo sistema de controlo. Se existe mais do que um rob, cada um deles tem de
ser individualmente programado, o que significa que uma linha de produo com
diversos robs tem de ser parada para que se possa proceder programao de
cada um deles. Isto implica uma paragem na produo e uma perda de tempo, que
ter consequncias financeiras.

O programa gerado pelos mtodos de programao on-line, s existem na


memria do sistema de controlo do rob e pode no ser possvel transferi-lo para
outro PC, por exemplo para imprimir o programa. Isto torna os programas difceis
de documentar e modificar. Mais uma vez, isto traduz-se em custos acrescidos na
programao e na reprogramao utilizando robs com mtodos de programao
on-line.

Os mtodos de programao on-line s podem ser usados para programao a nvel das
juntas ou a nvel do rob. No podem ser usados para programao de alto nvel.

3.2 - MTODOS DE PROGRAMAO OFF-LINE


Os mtodos de programao off-line envolvem a criao de um ficheiro de texto contendo as
instrues do rob e outras declaraes que formam o programa que o rob vai executar, tais como,
definies dos pontos, etc.

Neste sentido, a programao off-line de robs muito parecida com a implementao de


programas de computadores usando as linguagens C, C++, Java, ou outras. As linguagens de
programao de robs so, porm, tipicamente mais simples e frequentemente no suportam boas
prticas de programao muito facilmente. Por exemplo, muitas linguagens de programao de robs
ainda tm a declarao goto, uma fonte bastante conhecida de erros e bugs em qualquer tipo de
programas. Os ambientes de programao, que suportam o processo de desenvolvimento do

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 9


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

programa, so tipicamente como que primitivos em comparao com os ambientes actuais de


programao de computadores.

Tal como num programa de computador, o ficheiro de texto especifica a sequncia das aces
bsicas que devero ser executadas, juntamente com outra informao necessria para controlar a
velocidade mxima do movimento do rgo terminal (Pe), ou tipos de trajectrias que devem ser
seguidas entre dois pontos , por exemplo.

As maiores vantagens da programao off-line so:

Os programas podem ser desenvolvidos sem ser necessrio utilizar o rob;

A sequncia de operaes e movimentos do rob podem ser optimizados ou


facilmente melhorados, uma vez que o programa bsico j foi desenvolvido;

Procedimentos e subrotinas anteriormente desenvolvidas e testadas podem ser


usadas;

Dados de sensores externos podem ser incorporados, embora isso torne o


programa mais complicado, e consequentemente mais difcil de modificar e alterar;

Dados em CAD podem ser utilizados, por exemplo as dimenses das partes e as
relaes geomtricas entre elas;

Os programas podem ser testados e avaliados utilizando tcnicas de simulao,


embora isto no possa nunca retirar a necessidade de fazer o teste final do
programa no rob real;

Os programas podem ser mais facilmente modificados e verificados. E ainda mais


facilmente ser devidamente documentados e comentados.

A programao off-line pode ser usada para desenvolver programas a nvel do rob e
programas de alto nvel. possvel utilizar os mtodos off-line para programao a nvel das juntas
mas muito raramente so utilizados.

A relao entre a programao on-line e off-line e entre controlo de cinemtica e bsico num
rob industrial o representado na figura seguinte:

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 10


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Figura 6

Alguns exemplos de linguagens de programao de robs so:

Linguagens de programao a nvel de rob:

o AL Universidade de Stanford, USA (1974);

o AML - IBM (1982);

o LM Universidade de Grenoble (1989);

o VAL-II Univation (1983);

o V+ - Adept (1989);

o RAPID ABB (1994).

Linguagens de programao a nvel de objectos:

o LAMA MIT Laboratrio de Investigao(1976);

o AUTOPASS IBM (1977);

o RAPT Universidade de Edimburgo (1978-86).

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 11


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

4 - Processos de desenvolvimento de um programa de rob


Nesta seco vamos dar uma viso dos seis passos no processo de desenvolvimento bom e
fidedigno de um programa de rob.

Como este conceito do processo de desenvolvimento do programa um pouco difcil de


explicar apenas teoricamente vamos considerar o seguinte exemplo:

Tarefa: Mover o Bloco A e o Bloco B de modo a formar uma torre no topo do Bloco C, na seguinte
ordem C, A, B, desde o fundo. Todos os blocos devem estar bem alinhados na torre final.

Situao inicial Situao final

B
B A
A D C D C
Figura 7 Figura 8

Para executar a tarefa acima proposta, temos alguns passos que devemos dar. Os seis passos
bsicos no processo de programao do rob so:

Passo 1: Analisar e decompor a tarefa numa srie de operaes dos objectos envolvidos, e especificar
a sua ordem.

Por exemplo, para executar a tarefa definida acima teremos de decomp-la na seguinte
sequncia de operaes dos trs Blocos:

I. Retirar o Bloco B de cima do Bloco A, e coloc-lo ao seu lado;

II. Colocar o Bloco A em cima do Bloco C;

III. Colocar o Bloco B em cima do Bloco A;

IV. Alinhar o Bloco A com o Bloco C;

V. Alinhar o Bloco B com o Bloco A.


- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 12
Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

As primeiras 3 operaes so obviamente necessrias. As duas ltimas operaes de


alinhamento so apenas necessrias para ter a certeza que cada bloco est correctamente alinhado
com o debaixo. A simples tarefa de colocar um bloco em cima de outro no garante que eles fiquem
alinhados, por isso estas operaes extra so necessrias.

Sabendo que estas duas operaes de alinhamento sero necessrias apenas um caso de
experincia, e isto ilustra o facto de que cada passo do processo de programao necessita de
bastante experincia do modo de funcionamento de todo o processo antes de a podermos
implementar.

Esta soluo apresentada com as cinco operaes definidas anteriormente no a nica


possvel e tambm no a melhor.

Por exemplo, provavelmente melhor alinhar logo o Bloco A com o Bloco C imediatamente
depois deste ter sido colocado em cima do Bloco C, uma vez que o rob j est nessa posio. Esta
operao depende, claro, de no haver deslocao dos blocos A e C aquando da colocao do Bloco
B por cima do Bloco A. Se a operao for feita suavemente isto provavelmente verdade.

Outra possibilidade, se os dedos do gripper forem largos o suficiente, e se o rob tiver


suficientes graus de liberdade (o que se considera neste caso) pegar ao mesmo tempo no Bloco A e
B e coloc-los directamente por cima do Bloco C. Isto implicaria uma reduo das operaes a fazer, e
por consequncia do tempo de execuo do programa, mas uma possibilidade mais arriscada de
fazer e provavelmente ir falhar.

Se mover os Blocos A e B juntos no seguro, ou se no for possvel devido largura do


gripper, ou se o rob no tem suficientes graus de liberdade, outra possibilidade mover o Bloco C.
Nada nos diz na tarefa que esta opo no possvel.

Mover o Bloco C para o mais prximo possvel do Bloco A significa que as operaes a
realizar com os Blocos A e B implicam trajectrias menores, logo sero mais rpidas. No tero
necessidade de passar por cima do Bloco D, o que significa um menor risco de colidir com ele ou com
outros obstculos no caminho.

Todas estas possibilidades mostram-nos que as tarefas do rob no esto usualmente


especificadas. Fica ao critrio do programador estudar todas as possibilidades e implementar aquela
que considere mais fivel, rpida e com menos possibilidade de fracasso. , por isso, importante que
todos os aspectos relativos tarefa a executar sejam considerados neste estado da programao.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 13


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Mudar, mais tarde, o modo como a tarefa executada pode trazer elevadas despesas e ser mais
propenso a erros.

Passo 2: Identificar e especificar todas as situaes necessrias ao programa, todos os movimentos e


aces do rob.

Uma situao uma configurao particular do brao do rob e do estado do espao de


trabalho ou seja, onde que as diversas partes esto e como esto orientadas. Uma configurao do
rob definida pela posio e orientao do sistema de eixos colocado no rgo terminal (Pe) do rob.

Assim, para a nossa tarefa de exemplo, ns poderemos especificar as seguintes situaes:

0. A situao em que a tarefa comea d-nos a configurao inicial do rob e a


localizao das partes;

1. A situao em que Pe est sobre o Bloco D, e as partes esto numa localizao


qualquer utilizada para definir trajectrias livres de coliso de um lado da mesa para
o outro;

2. A situao em que Pe est verticalmente acima do centro do topo do Bloco B (na sua
localizao inicial) donde o rob pode executar a tarefa de pegar no bloco sem
problemas;

3. A situao em que Pe est coincidente com o centro do Bloco B utilizada para definir
a localizao de aperto do Bloco B;

4. A situao em que Pe est ao lado do Bloco A, a uma altura igual a metade da altura
do Bloco A, e a uma distncia suficiente deste para que o rob tenha espao para
colocar o Bloco B utilizado para definir a tarefa de poisar o Bloco B depois de ter sido
retirado de cima do Bloco A.

uma boa ideia tentar identificar e especificar as situaes que podem ser usadas para
programar diferentes aces do rob. A tarefa 1, indicada acima, um exemplo disto: usada para
definir a trajectria de todos os movimentos que tero de passar por cima do bloco D.

Um cuidado especial tambm preciso na definio da situao 4, usada para definir o poisar
do Bloco B. melhor acrescentar um pouco mais de altura localizao de Pe definida por esta
situao de forma que o rob largue o Bloco B quando este est a pouca distncia da mesa. Quando o
rob abrir o gripper o Bloco B ir cair assim, a uma distncia muito prxima da mesa.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 14


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Este procedimento feito porque existe sempre um pequeno erro na posio e orientao real
de Pe, e se definirmos a tarefa 4 para colocar o Pe exactamente metade da altura do Bloco B sobre a
mesa, existe o risco que quando o rob executa esta tarefa, ele vai tentar mover o Bloco B mais
abaixo do que a mesa. O rob ao colidir com a mesa, e como esta tem mais fora que o brao do rob
vai fazer com que o sistema de controlo pare o rob.

A definio de situaes precisa assim de ter em conta as possveis consequncias ou efeitos


de erros considerados pequenos que geralmente ocorrem em tarefas realizadas pelo rob.

Existem dois tipos de erros: erros absolutos e erros de repetio. Erros absolutos acontecem
quando o rob no coloca o rgo terminal (Pe) na configurao para a qual foi programado. Este erro
no frequente no espao de trabalho, depende da geometria do brao do rob e de outros aspectos
do seu controlo. Usualmente os erros absolutos sero mnimos se o Pe se encontrar prximo do corpo
do rob (base), do que se Pe se encontrar numa das extremidades do espao de trabalho. Definir
movimentos prximos da base do rob podem minimizar o aparecimento de erros absolutos, mas
podem ser mais restritos dependendo da geometria do brao do rob. Arranjando maneira de os
movimentos se fazerem o mais prximo possvel da base do rob ir, por isso, minimizar o
aparecimento de erros absolutos.

Os erros de repetio ocorrem quando o rob est programado para fazer sempre o mesmo
movimento repetidamente, movendo Pe para a mesma posio e orientao. Usualmente, o rob no
vai deslocar o Pe exactamente para o mesmo stio do Pe definido (erro absoluto) nem ir exactamente
para o mesmo stio de cada vez. Existir sempre um pequeno volume de espao volta de Pe para o
qual o rob ir mover o Pe, de cada vez que for instrudo para o fazer.

Tanto os erros absolutos como os erros de repetio podem ser minimizados recorrendo a
movimentos lentos do rob. Algumas vezes tambm possvel especificar o nvel de preciso
requerido para cada movimento. Uma preciso mais alta significa que os movimentos sero feitos com
pequenas aceleraes, e por consequncia, o rob ir demorar mais tempo a realizar os movimentos.
Um ponto intermdio entre a preciso e o tempo de execuo requeridos precisa de ser estabelecido
para cada movimento em cada programa.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 15


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Passo 3: Identificar quaisquer tipos de aces ou operaes repetidas e especific-las como


subrotinas com parmetros.

Tal como em qualquer programao de computadores, se o rob precisar de executar a


mesma sequncia de movimentos e aces em diferentes pontos do programa, ele deve utilizar o
mesmo cdigo para o fazer. Isto melhor implementado com a definio de subrotinas. Este facto ir
aumentar a manuteno do programa e reduzir a probabilidade de erros de programao.

Na tarefa que considermos como exemplo, podemos identificar partes de aquisio e partes
de colocao que requerem similares sequncias de movimentos e aces que sero precisas diversas
vezes. Por exemplo, poderemos definir uma subrotina, chamada Pegar-Poisar que servir para pegar
no Bloco e tambm poisar o Bloco.

Esta subrotina tem trs argumentos:

Inicio define a localizao de Pe no inicio das tarefas de pegar e poisar;

ObterPonto define a localizao de Pe quando o rob fecha o gripper para pegar


num Bloco ou o abre para poisar o Bloco;

Aco define se a aco a executar de pegar ou poisar.

DefineProcedimento Pegar-Poisar (Inicio, ObterPonto, Aco)

Se Situao_corrente = Inicio ento

Se Aco = Pegar ento Abrir_gripper

Caso contrrio Aco = Poisar ento

Se gripper = ABERTO ento

FALHA com a mensagem ( Nenhum Bloco no Gripper);

Caso contrrio FALHA com a mensagem (A aco especificada no existe);

Mover para ObterPonto com velocidade = BAIXA e preciso = ALTA ;

Se Aco = Pegar ento Fechar_o_ gripper;

Caso contrrio se Aco = Poisar ento Abrir_gripper;

Mover para Inicio com velocidade = BAIXA e preciso = ALTA ;

Caso contrrio FALHA com a mensagem (Rob no est no inicio);

FimDoProcedimento;

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 16


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Como podemos ver no cdigo acima para esta subrotina, muitas das suas linhas de cdigo so
de validao dos valores dos parmetros, de modo a verificar se determinada aco pode ser
executada.

O comando Mover para tambm definido para ser um movimento lento e com grande
preciso. Por outro lado, mover o Pe para o Inicio pode ser feito mais rapidamente e com menos
preciso.

Passo 4: Desenhar e desenvolver o programa completo e toda a sua documentao.

Mesmo depois de se terem especificadas, implementadas e testadas as operaes, as


situaes e subrotinas, h ainda muito trabalho a ser feito, nomeadamente no que concerne
implementao e documentao dum programa de rob completo. Esta implementao, e todas as
decises tomadas, devem ser consistentes com as dos passos anteriores.

Passo 5: Testar e depurar o programa utilizando um simulador do rob e do seu espao de trabalho.

Os ambientes de programao off-line actuais fornecem-nos simuladores que podem ser


utilizados para modelar e depois simular o rob e o seu espao de trabalho com todos os
equipamentos existentes.

O aproveitamento deste simulador pode tornar as operaes de teste e depurao de um


programa muito mais fceis, mas isto s possvel se o simulador baseado num bom modelo do
rob actual e do seu espao de trabalho. Implementar um bom modelo de simulao pode, muitas
vezes, ser uma dificuldade e requerer muito tempo.

Este passo, como obvio apenas se aplica aos mtodos de programao off-line.

Passo 6: Testar o programa no rob real.

Depois de um programa ter sido implementado, depurado, e testado utilizando um simulador,


deve ser testado num rob real. Um simulador nunca deve ser encarado comum teste suficiente para
um programa de rob.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 17


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Se o programa a implementar para ser executado em mais que um rob, por exemplo numa
linha de produo com 10 robs que vo todos executar as mesmas tarefas, temos de decidir em
quantos deles vamos testar o programa.

Testar o programa num s rob pode no ser a melhor soluo. Testar o programa em todos
os 10 robs da linha de produo se calhar demasiado. De modo a podermos decidir em quantos
robs vamos testar o programa necessrio saber algumas caractersticas dos robs onde o programa
vai ser executado, tais como a sua histria e desempenho. Quanto menos se souber destes dois
aspectos em mais robs teremos de testar o programa.

Para concluir, um processo de programao de rob envolve muitas decises e escolhas, e


cada uma delas ter consequncias e implicaes nos passos subsequentes. ento muito importante
registar devidamente todas estas decises e escolhas, juntamente com as razes que nos levaram a
optar por elas, durante o processo de implementao do programa.

No tendo em conta todos estes aspectos, poder dar origem a acidentes, custos
desnecessrios de produo e falhas muito dispendiosas.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 18


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

5 - Programando com sensores externos


Os sensores externos utilizados nas aplicaes industriais de robs podem ser divididos em dois
tipos:

1. Sensores complexos ou de mltiplos valores

a. Sensores de fora de mltiplos eixos

b. Sensores de mltipla presso ou toque

c. Cmaras e sistemas de viso

2. Sensores simples ou de valor nico

a. Sensores de toque ou contacto

b. Sensores de um eixo

c. Interruptores

Os sensores simples ainda podem ser subdivididos em:

sensores binrios ou de bit nico

sensores analgicos ou multi-bit, que precisam de conversores


analgico/digitais e valores de 8 ou 16 bit.

Os sensores complexos so, na verdade, subsistemas completos que precisam de hardware e


software especial e interfaces com o sistema de controlo do rob. So tambm caros.

Os sensores simples podem ser ligados directamente ao sistema de controlo do rob que
normalmente tm entradas analgicas e digitais. Estes sensores so baratos.

Existem trs aspectos importantes relativamente aos sensores que devem ser considerados
quando se decide us-los nas aplicaes industriais.

Fiabilidade os sensores e qualquer perifrico ou software devem ser de grande fiabilidade


nas condies de aplicao, e que depois de testados tenham dado excelentes provas de
funcionamento nas condies de aplicao.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 19


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Calibrao a calibrao dos sensores no deve demorar muito tempo a fazer, nem deve
precisar de especializao ou material especial para a fazer, no deve precisar de ser feita
muito frequentemente.

Preciso a preciso dos sensores utilizados deve ser constante com o tempo e utilizao,
mas no deve ser maior do que o necessrio para uma aplicao particular.

Os melhores sensores que se podem usar considerando a sua fiabilidade, calibrao e


preciso, so os sensores binrios. Um dos pontos fortes o facto de no precisarem de calibrao.
Quanto aos outros aspectos, so muito fiveis pois so quer mecanicamente quer electricamente muito
fceis de fazer. E tm preciso absoluta partindo do principio que esto a funcionar bem.

Os sensores complexos so muitas vezes usados para fornecer dados sobre os objectos
envolvidos numa tarefa ou sobre o rgo terminal do rob, a posio global e a orientao, por
exemplo.

Para concluir, quanto mais sensores forem usados, mais complicado ficar o programa e por
consequncia mais difcil de testar e depurar, e a previso do tempo de execuo mais difcil de fazer.

Todas estas consequncias de usar at sensores binrios, pode ser razo suficiente para no usar
sensores ou o mnimo possvel, e em vez disso, utilizar movimentos e aces do rob mais robustas,
mesmo que o programa fique mais extenso e com um tempo de execuo superior.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 20


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

6 - Linguagens de programao de robs


A maioria das linguagens de programao de robs implementadas hoje em dia usa uma
combinao de programao textual e programao pela consola. A linguagem textual usada para
definir a lgica e a sequncia do programa, enquanto as posies especficas dos pontos no espao de
trabalho so definidas por meio de um consola. Isto pode ser imaginado como um mtodo de
programao off-line/online, no sentido que o programa em si pode ser escrito off-line com a linguagem
textual, enquanto os pontos devem ser definidos online com o consola.

6.1 - LINGUAGENS TEXTUAIS DE PROGRAMAO DE ROBS


A primeira linguagem robtica textual foi WAVE, desenvolvida em 1973 como uma linguagem
experimental de pesquisa no Stanford Artificial Intelligence Laboratory. A pesquisa, envolvendo um
rob ligado a um sistema de viso de mquina, foi realizada usando a linguagem WAVE. A pesquisa
demonstrou a viabilidade de coordenao visual/motora do rob. O desenvolvimento de uma
linguagem subsequente comeou em 1974, em Stanford. A linguagem foi chamada AL, e podia ser
usada para controlar braos mltiplos em tarefas exigindo coordenao dos braos.

Muitos dos conceitos das linguagens WAVE e AL foram aproveitados no desenvolvimento da


primeira linguagem textual de programao de robs comercialmente disponvel, a linguagem VAL
(Victor Assembly Language, de Victor Scheinman). A linguagem VAL foi introduzida em 1979 pela
Unimation Inc. para seus robs da srie PUMA. Essa linguagem foi melhorada para VAL II e lanada
em 1984.

O trabalho de desenvolvimento de linguagens de programao de robs prosseguiu tambm


nos laboratrios T. J. Watson Research Labs, da 3M Corporation, tendo comeado por volta de 1976.
Duas das linguagens da IBM foram a AUTOPASS e a AML (A Manufacturing Language), esta ltima
sendo comercialmente disponvel desde 1982 com os robs da IBM. Ambas as linguagens so
dirigidas para tarefas de montagem e tarefas relacionadas.

Algumas das outras linguagens textuais para robs que deveriam ser mencionadas incluem
RAIL, introduzida em 1981 pela Automatix, para montagem com robs e solda elctrica assim como
viso de mquina, MCL (Manufacturing Controle Language), desenvolvida sob o patrocnio da Fora
Area Norte-Americana pela McDonnell-Douglas como melhoramento da linguagem APT

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 21


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

(Automatically, Programmed Tooling), o HELP, uma linguagem desenvolvida pela General Electric
Company sob licena da firma italiana DEA.

6.2 - GERAES DE LINGUAGENS DE PROGRAMAO DE ROBS


As linguagens textuais de programao de robs possuem uma variedade de estruturas e
capacidades. Estas linguagens esto ainda em evoluo. Podem-se identificar duas geraes de
linguagens textuais e especular sobre como iria parecer uma linguagem de futura gerao.

6.2.1 - Linguagens de primeira gerao

As linguagens de primeira gerao usam declaraes de listagens de comandos e


procedimentos da consola para desenvolver programas de robs. Estas linguagens foram
principalmente desenvolvidas para implementar controle de movimento com uma linguagem textual de
programao e so, s vezes, chamadas de motion level language. Caractersticas tpicas incluem a
capacidade de definir movimentos do manipulador (usando as declaraes para definir a sequncia
dos movimentos e a consola para definir a localizao dos pontos), interpolao linear, ramificao e
comandos elementares por sensores envolvendo sinais binrios (ON-OFF). Em outras palavras, as
linguagens de primeira gerao possuem capacidades semelhantes aos mtodos avanados de
programao por consola usados para realizar as instrues de programao do rob. Estas
linguagens podem ser usadas para definir a sequncia de movimentos do manipulador (MOVE),
possuem capacidade de entrada/sada (WAIT/SIGNAL) a podem ser usadas para escrever sub-rotinas
(BRANCH). Para escrever um programa de complexidade baixa/mdia, um utilizador provavelmente
acharia mais fcil usar os mtodos de programao pela consola, enquanto pessoas com experincia
em programao de computadores provavelmente achariam mais fcil usar as linguagens de primeira
gerao. A linguagem VAL um exemplo de uma linguagem de programao de robs de primeira
gerao.

As limitaes comuns das linguagens de primeira gerao incluem a incapacidade de


especificar clculos aritmticos complexos para usar durante a execuo do programa, a incapacidade
de usar sensores complexos a dados fornecidos pelos mesmos, e uma capacidade limitada de

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 22


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

comunicao com outros computadores. Essas linguagens no podem facilmente ser ampliadas para
futuros melhoramentos.

6.2.2- Linguagens de segunda gerao

As linguagens de segunda gerao superam as limitaes das de primeira gerao e


aumentam sua capacidade incorporando caractersticas que fazem o rob parecer mais inteligente. Isto
permite ao rob realizar tarefas mais complexas. Estas linguagens foram chamadas linguagens de
programao "estruturadas", porque possuem grupos de comando estruturados usados em linguagens
de programao de computadores. Linguagens de segunda gerao comercialmente disponveis
incluem VAL II (Anexo 1), A RAIL (Anexo 2) e a ML (Anexo 3). A programao nestas linguagens
muito parecida com a programao de computadores. Isto poderia ser considerado uma desvantagem,
j que exige um programador de computador para realizar a programao. As linguagens de segunda
gerao usam geralmente um consola para definir posies no espao de trabalho.

As caractersticas e capacidades destas linguagens de segunda gerao podem ser citadas


como se segue:

1. Controle de movimento: esta caracterstica basicamente a mesma que para as linguagens de


primeira gerao.

2. Capacidades de monitorizao avanadas: os melhoramentos nas linguagens de segunda


gerao normalmente incluem a capacidade de manusear muito mais que simples sinais
binrios (on-off) e a capacidade de controlar dispositivos atravs dos dados fornecidos
pelos sensores.

3. Inteligncia limitada: isto , a capacidade de utilizar as informaes recebidas sobre o


ambiente de trabalho para modificar o comportamento do sistema de forma programada.

4. Comunicaes a processamento de dados: linguagens de segunda gerao geralmente


possuem meios para interagir com computadores a bases de dados de computadores
com a finalidade de manter registros, gerar relatrios e controlar actividades nas clulas
de trabalho.

A capacidade de controle de movimento em algumas das linguagens de segunda gerao vai


alm da capacidade da gerao anterior, pela incluso de problemas de geometria mais complexos do
que interpolao linear. A linguagem MCL, por exemplo, baseada na linguagem APT.
- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 23
Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Consequentemente a linguagem MCL inclui muitas das caractersticas de definio de geometria,


contidas na linguagem APT. Por exemplo, linhas, crculos, planos, cilindros a outros elementos
geomtricos podem ser definidos em APT e MCL.

As capacidades de monitorizao avanadas incluem o uso de sinais analgicos, alm de


sinais binrios, e a capacidade de comunicar-se com dispositivos que so controlados por esses sinais.

O controle do gripper um exemplo das capacidades sensoras ampliadas das linguagens da


segunda gerao. Uma operao tpica do gripper usando uma linguagem de primeira gerao envolve
comandos para abrir ou fechar a garra. Linguagens de segunda gerao permitem o controle de
dedos com sensores que podem medir foras. O sensor monitoriza as foras ou presses durante o
fechamento contra um objecto, e o controlador do rob capaz de regular a intensidade da fora de
pega que aplicada ao objecto.

A terceira caracterstica proporcionada pelas linguagens de segunda gerao a inteligncia


limitada. Em vez de repetir sempre o mesmo modelo de movimento com pequenas diferenas para
diversas configuraes do produto, o rob tem a capacidade de reagir frente a eventos irregulares que
ocorrem durante o ciclo de trabalho de uma maneira que parece inteligente. A inteligncia limitada no
sentido que ela deve ser programada no controlador do rob. O rob no pode fazer nada, por conta
prpria - nada alm do que ele foi programado para fazer.

As linguagens de primeira gerao so bastante limitadas na sua capacidade de comunicar


com outros computadores. Normalmente, qualquer comunicao com outros controladores a
dispositivos externos semelhantes deve ser realizada por meio dos comandos WAIT a SIGNAL das
portas de entrada/sada do rob. Linguagens de segunda gerao possuem uma maior capacidade de
interagir com outros sistemas computadorizados. A capacidade de comunicao seria mantida para
conservar registros de produo em cada produto, gerando relatrios de desempenho a funes
semelhantes de processamento de dados.

Uma caracterstica relacionada das linguagens de segunda gerao a extensibilidade. Isto


significa que a linguagem pode ser estendida ou aprimorada pelo usurio para dar conta dos requisitos
de futuras aplicaes, futuros dispositivos sensores a futuros robs, todos podendo ser mais
sofisticados do que na poca em que a linguagem foi, inicialmente liberada. Significa tambm que a
linguagem pode ser expandida para desenvolver comandos, sub-rotinas e macros (com um mecanismo
para passar valores de parmetros do programa principal), que no so includos no conjunto inicial de
instrues.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 24


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

6.2.3 - Linguagem de futura gerao

As linguagens de programao de futura gerao envolvero um conceito chamado


Modelamento de mundo. Outros termos s vezes usados incluem linguagens baseadas em modelos e
linguagens de tarefa. Num esquema de programao baseado no Modelamento de mundo, o rob
possui o conhecimento do mundo tridimensional e capaz de desenvolver seu prprio conhecimento
passo a passo, para realizar uma tarefa baseada num objectivo definido do que precisa ser realizado.

De acordo com esta definio, existem dois aspectos bsicos de uma linguagem de
programao baseada num sistema com modelo tridimensional. O primeiro que o sistema de rob
possui na sua memria de controle um modelo tridimensional do seu espao de trabalho.

O segundo aspecto a capacidade de auto-programao. De facto, o programador humano


fornece ao sistema um objectivo, e o sistema desenvolve o seu prprio programa de aces
necessrias para realizar o objectivo.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 25


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Anexo 1

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 26


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

LINGUAGEM VAL II
Esta linguagem foi desenvolvida pela Unimation Inc. e usada para os seus robs industriais.
VAL II uma verso mais aperfeioada da linguagem de programao VAL, lanada pela Unimation
em 1979 para os seus robs industriais da srie PUMA.

DESCRIO GERAL

VAL II um sistema de controle por computador e uma linguagem de programao de robs


desenvolvidos para os robs industriais Unimation. O VAL II tem a capacidade de definir facilmente a
tarefa que um rob deve efectuar, isto porque as tarefas so definidas por programas escritos pelo
utilizador. Esta linguagem tem como grandes vantagens a de incluir a capacidade de reagir a
informaes provenientes de sensores, como viso de mquina, desempenho melhorado em termos de
gerao de trajectria do brao e trabalhando em situaes de emergncia ou usando sistemas de
coordenadas de referncia.

COMANDOS MONITOR

O modo monitor do sistema VAL II usado para funes como definies de posies de
pontos no volume de trabalho, edio e execuo de programas, calibrao do brao do rob e
operaes semelhantes.

Definindo posies
Comando Descrio
HERE P1 Define a varivel P1 como sendo a posio actual do brao do rob.
WHERE Solicita que o sistema exiba a posio actual do rob em coordenadas espaciais cartesianas
e variveis da articulao do punho. Ele exibe tambm a abertura actual do gripper se o rob
for equipado com uma mo posicionada por servocomando.
TEACH usado para registar uma sria de valores de posio sob o comando da tecla de registo na
consola.
TEACH P1 Com a execuo deste comando, a primeira varivel de posio registada ser P1, a prxima
ser P2, a terceira ser P3 e assim por diante. possvel ensinar uma trajectria completa
posicionando sucessivamente o rob, usando a consola e pressionando a tecla de registo.
POINT PA = P1 Estabelece o valor de PA (uma varivel de posio) igual ao valor de P1.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 27


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Edio e controle do programa

EDIT ASSEMBLY1 Comandos para entrada e sada no modo edio do programa. O comando EDIT abre o
M programa que deve ser chamado ASSEMBLY1. O Comando E (E de EXIT) provoca a sada e
volta para o modo monitor.
E
SPEED Especificao da velocidade. Este comando no modo monitor do sistema VALL II, fornecido
antes da execuo do programa da seguinte maneira: SPEED 50
EXECUTE ASSEMBLY1 Faz o sistema executar o programa chamado ASSEMBLY1

Outros comandos de modo monitor

STORE Armazenar os programas nos discos


COPY Copiar programas
FLIST Carregar arquivos de discos contidos num disco
RENAME Dar novos nomes a arquivos
DELETE Apagar arquivos
DO (instruo) Faz com que o rob execute uma instruo especfica de programao

COMANDOS DE MOVIMENTO

MOVE P1 Usado para definir a trajectria do movimento, faz com que o brao do rob se mova num
movimento de interpolao de junta at ao ponto P1.
MOVES P1 Faz o movimento ocorrer ao longo de uma trajectria retilnea da posio actual at ao ponto
P1.
APPRO e DEPART Comandos de aproximao e afastamento.
APPRO P1, 50 O primeiro comando movimenta a ferramenta para a posio e a orientao especificadas por
MOVE P1 P1 com um deslocamento ao longo do eixo z da ferramenta de uma distncia de 50 mm. O
comando MOVE movimenta a ferramenta at ao ponto P1. A instruo DEPART movimenta a
DEPART 50 ferramenta afastando-se de P1 a uma distncia de 50 mm ao longo do eixo z da ferramenta.
SPEED Comando para ajustar a velocidade.
DRIVE 4, -62,5, 75 Uma articulao individual pode ser deslocada de uma certa distncia usando este comando,
que muda o ngulo da articulao 4, movimentando-a de 62,5 no sentido negativo a uma
velocidade de 75% da velocidade de modo monitor.

CONTROLE DO GRIPPER

OPEN Abrir o gripper. Este comando executado durante o movimento seguinte do rob.
CLOSE Fechar o gripper. Este comando executado durante o movimento seguinte do rob.
OPENI Abrir o gripper. Este comando executado imediatamente, em vez de ser executado durante
o movimento seguinte.
CLOSEI Fechar o gripper. Este comando executado imediatamente, em vez de ser executado
durante o movimento seguinte.
OPEN 75 M O primeiro comando faz abrir o gripper at 75 mm durante o movimento seguinte do rob. O
segundo comando faz fechar o gripper imediatamente para 50 mm.
CLOSEI 50
GRASP Permite verificar se o gripper fechou conforme esperado. Este comando fornece um mtodo
conveniente de pegar um objecto e testar para assegurar se o contacto foi feito.
- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 28
Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

conveniente de pegar um objecto e testar para assegurar se o contacto foi feito.


GRASP 12,7, 120 Este commando faz com que o gripper se feche imediatamente e verifica se a abertura final
inferior ao valor especificado de 12,7 mm. Se for, o programa passar para o comando 120 no
programa.
MOVET P1, 75 Faz um movimento de interpolao de junta desde a posio anterior at ao ponto P1,
durante este movimento a abertura da mo alterada para 75 mm.
MOVEST P1,75 Comando com as mesmas caractersticas do anterior, mas este faz um movimento rectilneo.

CONTROLE DE CONFIGURAO

RIGHTY ou LEFTY Proporcionam uma mudana na configurao do rob de brao articulado, de modo que as
primeiras trs juntas (rotao da base, do ombro e do cotovelo) se assemelhem com o brao
humano direito e esquerdo, respectivamente.
ABOVE ou BELOW Solicitam uma mudana na configurao do rob, de modo que o cotovelo do rob seja
apontado para cima ou para baixo, respectivamente.
FLIP ou N0FLIP Proporcionam uma mudana no campo de operao de junta 5 (num rob de 6 juntas) par
ngulos positivos ou negativos, respectivamente.

CONTROLE DE INTERTRAVAMENTO

RESET Desliga todos os sinais externos de sada.


SIGNAL usado para ligar e desligar sinais externos. Nmeros positivos de sinal ligam os sinais
correspondentes, e nmeros negativos de sinal desligam.
SIGNAL 1, 4 Desliga o sinal de sada 1 e liga o sinal de sada 4.
WAIT usado para controlar a execuo do programa com base nos sinais de entrada.
WAIT SIG(1001, -1003) Pra a execuo do programa at que o sinal externo (de entrada) 1001 esteja ligado e o
sinal de entrada 1003 esteja desligado.
REACT VAR1, SUBR2 Monitorizao contnua do sinal binrio externo identificado como varivel VAR1 e procura por
uma transio de sinal do seu estado actual para o estado alternativo.

CONTROLE DO PROGRAMA

A linguagem VAL II contm um determinado nmero de sequncias de instrues que podem


ser utilizadas para organizar logicamente seces de programas do utilizador e para controlar a ordem
em que elas so executadas. Estes comandos de controle do programa incluem:
IF... THEN... ELSE... END O formato desta sequncia convencional, excepto que a palavra chave END usada
para significar o fim da sequncia de comandos.
WHILE... DO... END O formato desta sequncia convencional, excepto que a palavra chave END usada
para indicar o fim da sequncia de comandos.
DO... UNTIL Este comando opera na sequncia inversa em relao ao comando WHILE... DO, j que
a condio lgica testada depois que os comandos ou grupos de comandos so
executados.
CASE... OF... VALUE... END Esta sequncia proporciona um meio de executar um grupo de instrues entre qualquer
nmero de grupos.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 29


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Anexo 2

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 30


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

LINGUAGEM RAIL
A linguagem RAIL uma linguagem de programao desenvolvida pela Automatix para o seu
sistema de CAM (Computer Aided Manufacturing).

DESCRIO GERAL

Pode ser utilizada para controlar sistemas de fabrico tendo comandos especficos para
controlar um equipamento de solda, alm disso possui comandos para controlar o rob numa linha de
montagem e permitir a sua ligao a perifricos, tais como alimentadores de peas, sensores,
conveyors e equipamentos de manuseamento de materiais.

Alm disso, integra ainda comandos para interface com um sistema de viso que se destina a
verificar a qualidade ou identificar determinado componente da linha de fabrico.

CARACTERSTICAS

As principais caractersticas da linguagem RAIL so:

- comandos para movimentar o rob, incluindo aproximao ou afastamento de posies;

- comandos de solda do rob e meios para ajustar os parmetros de solda, como a voltagem e
a taxa de avano do arame de solda;

- um mtodo simples de acesso aos input e output que estejam ligados a equipamentos;

- comandos para carregar programas a partir do sistema de arquivo, exibir variveis ou


programas do utilizador, editar e/ou armazenar programas;

- nomes de variveis com comprimento at 20 caracteres;

- estruturas de controlo semelhantes s disponveis no Pascal, tais como, IF...THEN...ELSE,


WHILE...DO, WAIT, etc;

- expresses aritmticas, comparativas e lgicas;

- uma biblioteca de funes incorporada no sistema, que contm as principais funes


matemticas (seno, coseno, raiz quadrada, ...).

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 31


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

POSIES

Esta linguagem possui trs tipos de dados para posies do rob: pontos, trajectria e sistema
de coordenadas de referencia.

Pontos

Um ponto indica-nos a posio e a orientao do gripper relativamente a um sistema de


coordenadas de referncia, normalmente localizado na base do rob. Exemplo:

P1=(300,0, 200,0, 100,0, 50,0, 25,0, 35,0)

Os trs primeiros valores so dimenses lineares expressas em milmetros ou polegadas,


indicando as coordenadas x, y, z do orgo terminal (gripper) no espao. Os trs ltimos valores so os
angulos de orientao em graus relativamente ao sistema de referencia espacial.

Trajectrias

A trajectria uma srie de pontos ligados entre si. Quando o rob comandado para se
movimentar ao longo de uma trajectria, ele movimenta-se suavemente atravs de cada ponto na
trajectria, sem parar ou diminuir a marcha em qualquer dos pontos intermdios. Uma trajectria
especificada indicando os pontos que a definem, como no seguinte comando PATH:

SEAM1 = PATH (P1, P2, P3, P4)

Sistemas de coordenadas de referncia

Um sistema de coordenadas de referncia definido no sistema RAIL, definindo a origem, um


ponto ao longo do eixo x e um ponto situado no plano xy.

COMANDOS DO MOVIMENTO DO ROB

O comando bsico o MOVE. O comando RAIL suporta 3 tipos de movimentos do rob:


rectilneo, assncrono e circular.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 32


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Movimento Linear

O movimento rectilneo da ponta da ferramenta realizado por maio de interpolao linear.


Este movimento a condio de default no sistema RAIL, se o utilizador no definir um dos outros
tipos de movimentos, o rob ir movimentar-se linearmente.
MOVE P1 Comando para um movimento rectilneo.

Movimento Assncrono

O movimento assncrono um movimento de interpolao de junta do brao do rob. O brao


movimentado de ponto a ponto usando o menor movimento possvel para cada articulao e de
modo coordenado, de forma que todas as juntas comeam o movimento ao mesmo tempo.

Este movimento tem a vantagem de permitir a execuo mais rpida de um movimento.

MOVE SLEW P1 Comando para um movimento assncrono definido usando o comando SLEW.

Movimento Circular

Esta especificao de movimento faz com que o brao do rob se movimente de tal forma que
a ponta da ferramenta se desloque ao longo de um arco circular formado pelos pontos indicados no
caminho.
CIRCLE Comando que usado para especificar uma interpolao circular num comando de
movimento. Por exemplo: MOVE CIRCLE PATH (P1, P2, P3, P4).

Aproximao e Afastamento

APPROACH 50 FROM P1 O primeiro comando faz com que a ferramenta se movimente at uma posio 50 mm a
partir do ponto P1 ao longo do eixo z da ferramenta. O segundo comando faz com que a
M
ferramenta se afaste 50 mm do ponto.
DEPART 50

Rotao da ferramenta

ROTATE HAND 180 Comando para girar o actuador de 180 no sentido horrio, em volta do eixo de rotao.

Abertura e fecho do gripper

OPEN Comando que controla a abertura do actuador do tipo gripper.


CLOSE Comando que controla o fecho do actuador do tipo gripper

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 33


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Solda

WELD Comando que permite a realizao de uma operao de solda num ponto ao longo de um
caminho.

COMANDOS LEARN

O conjunto LEARN utilizado para definir dados de posies com a consola de programao.
O comando pode ser utilizado para programar pontos no espao ou relativamente a outras posies
predefinidas. Pode tambm ser usado para ensinar trajectrias e sistemas de coordenadas.
LEARN P1, P2, P3, P4 Neste comando, os quatro pontos so ensinados movimentando o brao para as posies
designadas, usando as teclas de movimento da consola de programao e pressionando a
tecla de registo para armazenar cada posio de ponto na sequncia adequada.
LEARN FRAME Este comando facilita ao utilizador o ensino de 3 posies. Estas posies correspondem
origem do sistema de coordenadas, um ponto ao longo do eixo x e um ponto no plano xy do
sistema de coordenadas.

SOLDA

A linguagem RAIL proporciona uma variedade de opes para controlar um rob para
operaes de solda. Como j foi referido anteriormente o comando bsico de solda da linguagem RAIL
o WELD, para mais facilmente se entender como funciona este comando, apresentamos de seguida
um exemplo:

WELD SEAM1 WITH WELDSCHED[3] Neste comando a trajectria de solda chamada de SEAM1. A clausula WITH
WELDSCHED[3] identifica que os parmetros de solda a serem usados
durante essa trajectria so definidos no programa de solda 3.

ENTRADA/SADA

INPUT PORT SWITCH1 7 Este comando define uma varivel chamada SWITCH1 para ser uma informao de
entrada para a unidade controladora atravs da porta de entrada nmero 7.
OUTPUT PORT MOTOR3 15 Define a varivel MOTOR3 como uma sada da unidade controladora atravs da porta
15. Durante o programa, essa sada pode ser ligada ou desligada por meio dos
comandos MOTOR3 = ON e MOTOR3 = OFF.
WAIT UNTIL Este comando usado para sincronizar a execuo de um programa em linguagem RAIL
com alguma condio. Quando este comendo encontrado, a execuo do programa
interrompida at que a condio de teste esteja satisfeita.
WAIT 2 SEC Este comando utilizado para retardar a execuo do programa para um intervalo
WAIT 2 especificado de tempo. Este intervalo de tempo especificado em segundos (SEC) ou
em milisegundos (MSEC). Se este intervalo no for especificado as unidades de tempo
- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 34
Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

WAIT 2000 MSEC sero consideradas como sendo segundos. Logo, cada um dos comandos aqui
considerados teriam um retardo de tempo idntico.

ENTRADA/SADA PARA OPERADOR E SISTEMA DE ARQUIVOS

READ L os dados numricos introduzidos pelo operador. Os nmeros devem ser inteiros ou reais.
READS usado para ler dados introduzidos em forma de cadeia de caracteres (Ex: texto contendo
quaisquer caracteres ASCII, caracteres alfabticos, nmeros, pontuao, etc) pelo operador.
WRITE Este comando usado para escrever mensagens para o operador no monitor de vdeo
SAVE usado para guardar o valor corrente das variveis de RAIL, e/ou as definies escritas pelo
utilizador, num arquivo ou numa fita.
SAVE PARTFILE PARTCOUNT, GOODPARTS, BADPARTS Este comando proporciona um meio de guardar os
valores correntes das variveis (PARTCOUNT,
GOODPARTS, BADPARTS) na lista de variveis
existentes na fita. O nome do arquivo PARTFILE.
LOAD PARTFILE Carrega o arquivo da fita cassete para a memria do computador.
FILER usado para operaes tais como a listagem do contedo de uma fita para copiar ou apagar
arquivos, e assim por diante.

CONTROLE DO PROGRAMA

A linguagem RAIL contm um conjunto de comandos tpicos para controle do programa, como
IF... THEN, IF... THEN... ELSE e outros. O comando WHILE... DO permite ao programador continuar a
execuo de um determinado comando durante o tempo que uma condio especificada de teste
permanecer verdadeira.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 35


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

ANEXO 3

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 36


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

LINGUAGEM AML

A linguagem AML uma linguagem de programao interactiva de alto nvel desenvolvida pela
IBM Corporation para ser utilizada no seu rob IBM 7565.

DESCRIO GERAL

Como o nome indica uma linguagem de manufactura que possui diversos tipos e operadores
de dados, sub-rotinas de sistema, estruturas de controlo da linguagem, estao de exibio de dados e
controlos de input/output de arquivos, edio interactiva e facilidade de eliminao de erros, assim
como identificadores do sistema para ajudar a melhorar a leitura do programa.

uma linguagem orientada para sub-rotinas, ou seja, os programas so escritos estruturando


a aplicao como um conjunto de chamadas para as sub-rotinas escritas pelo utilizador e tambm
daquelas que integram o sistema. A utilizao destas sub-rotinas, quer sejam implementadas pelo
utilizador quer aquelas que integram o sistema, so feitas da mesma maneira.

COMANDOS AML

Existem trs tipos de comandos na linguagem AML:

- comando executvel;

- comando de declarao de varivel;

- comando de declarao de sub-rotinas.

Os comandos em AML so semelhantes a frases em ingls, o seu sentido captado


interpretando em primeiro lugar as palavras e as expresses nela embutidas. Com excepo de casos
especiais, todos os comandos AML terminam num ponto-e-virgula (;).

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 37


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Comandos Executveis

Os comandos executveis realizam clculos, comparaes e outras funes semelhantes.


Constituem a lgica que o interpretador deve executar e diferem dos outros dois tipos de comandos
porque no preservam armazenamento ou proporcionam nomes para variveis ou sub-rotinas.

O comando consiste num rtulo opcional e a expresso a ser interpretada. Um ponto-e-virgula


termina o comando. O rtulo separado da expresso por dois-pontos(:).

rtulo: expresso;

Exemplo:

CALC: 5-1/2*10

Comandos de Declarao de Varivel

Os comandos de declarao de varivel tm a seguinte forma:

id: NEW expresso;

ou

id: STATIC expresso;

Os componentes do comando de declarao de varivel so os seguintes: o nome da varivel


(chamado id na linguagem AML); o comando que identifica o comando como um comando de
declarao e uma expresso que o interpretador avalia para determinar o tipo de varivel e o valor
inicial; um ponto-e-virgula a terminar o comando.

Exemplos:

X1: NEW 12,0;

Neste comando declarado um valor inicial de 12,0 varivel X1.

X2: NEW (2,5*X1);

Neste comando declarado a varivel X2 atravs de uma expresso que a avalia em relao
ao produto de 2,5 vezes o valor corrente de X1.

As variveis NEW so interpretadas sempre que a sub-rotina dentro da qual residem


chamada. O interpretador analisa a expresso do lado direito da vrgula de cada vez que uma sub-

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 38


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

rotina chamada, e reservado espao para armazenamento da nova varivel. Quando a execuo
acaba e o controlo devolvido ao programa principal, o espao alocado para a varivel nova
libertado.

Declaraes de variveis STATIC s so interpretadas quando as variveis so declaradas, e


isto ocorre no momento da primeira chamada para a sub-rotina na qual elas residem.

Ao contrrio das variveis NEW, as variveis STATIC no so libertadas do armazenamento


quanto termina a execuo da sub-rotina; elas permanecem armazenadas, assim como os valores
correspondentes, mesmo quando o programa no est a ser executado. Assim, o ltimo valor
conservado para qualquer varivel STATIC est disponvel para uso futuro no programa principal.

Os comandos NEW e STATIC so usados pelo interpretador para determinar como tratar uma
varivel declarada. Para variveis que ficam de fora da sub-rotina no existe diferena na maneira
como o comando interpretado. A diferena aplica-se apenas para a utilizao numa sub-rotina.

Comando de Declarao de Sub-rotina

Uma sub-rotina consiste numa coleco de comandos AML. Os comandos de declarao


de sub-rotina servem para lhe reservar espao no armazenamento a atribuir um nome para
referncia futura no programa. Os comandos de declarao de sub-rotina tm a seguinte
forma:

id: SUBR(p1, p2, p3...pn);

subrstatement1;

subrstatement2;

...

subrstatementn;

END;

Os componentes da declarao de sub-rotina so os seguintes:

- o "id", ou nome da sub-rotina, que identifica a sub-rotina para referncia


subsequente seguida por dois-pontos (:);

- o comando SUBR, que serve para declarar a sub-rotina em AML;

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 39


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

- parmetros (p1, p2, p3...pn), que so transferidos do programa principal para


use na chamada da sub-rotina. Quando especificados estes devem ser
colocados entre parnteses;

- o corpo da sub-rotina, que consiste em comandos AML, cada um terminando


com um ponto-e-virgula (;):

subrstatement1 ;

subrstatement2;

...

subrstatementn;

Esses comandos tm o mesmo formato a seguem as mesmas regras que outros comandos
AML. O ponto-e-vrgula (;) depois do ltimo comando (subrstatementn) a antes do comando
END opcional, e o comando END, indica o fim da sub-rotina.

Um ponto-e-vrgula (;) segue o comando END. Regras especiais acerca do sinal (;) aplicam-se
ao comando END para sub-rotinas armazenadas dentro de outras.

CONSTANTES E VARIVEIS

A linguagem AML usa vrios tipos de constantes a de variveis, que podem ser nmeros
inteiros reais ou cadeias. Constantes e variveis conjuntas so tambm possveis no sistema AML,
incluindo conjuntos que contm uma combinao de nmeros inteiros, nmeros reais e elementos em
cadeia. Os conjuntos so includos entre parnteses angulares < >, e os elementos so separados por
vrgulas.

A linguagem AML permite a definio de conjuntos bidimensionais, alm dos conjuntos


convencionais de uma dimenso. Um conjunto bidimensional contm ao mesmo tempo fileiras a
colunas de elementos. Um uso tpico de um conjunto bidimensional seria definir um arranjo de
coordenadas no espao de trabalho de um rob. Um exemplo de comando de declarao de varivel :

R:NEW < <-6,0,-25,0, 3,1>, <-6,0,-2,2, 3,5>,

<1,3, 0,5, 3,2>, <5,2,-25,1, 3,0>,

<8,1,-2,2, 3,3>, <8,4, 15,5, 3,5> >;


- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 40
Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

Os elementos individuais do conjunto bidimensional esto entre parnteses angulares e


podemos incluir mais de duas dimenses. Nesse exemplo, um conjunto bidimensional usado para
representar um arranjo tridimensional. O valor de R pode ser representado graficamente para os seis
pontos.
Valores das coordenadas correspondentes
R X Y Z
1 -6,0 -25,0 3,1
2 -6,0 -2,2 3,5
3 1,3 0,5 3,2
4 5,2 -25,1 3,0
5 8,1 -2,2 3,3
6 8,4 15,5 3,5

Pode-se ter acesso aos elementos individuais desse conjunto na linguagem AML por meio dos
smbolos R(1), R(2) etc. Por outras palavras, R(4) representa (5,2, 25,1, 3,0). Isto poderia ser til para
identificar um ponto no espao para o qual o rob seria dirigido.

COMANDOS DO CONTROLO DO PROGRAMA

A linguagem AML tem alguns comandos de controlo do programa para a execuo condicional
do programa. Essas expresses condicionais incluem os comandos IF...TI-IEN, IF...THEN...ELSE,
WHILE...DO a REPEAT...UNTIL.

Os comandos IF...THEN a IF...THEN...ELSE tm a interpretao convencional.

O comando WHILE...DO permite ao programador executar repetitivamente uma expresso, at


que uma condio seja satisfeita. A forma do comando :

WHILE condio DO expresso

O comando REPEAT...UNTIL semelhante ao comando WHILE...DO, excepto que a ordem de


condio a expresso invertida. A sua forma genrica , portanto:

REPEAT expresso UNTIL condio

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 41


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

COMANDOS DO MOVIMENTO

A linguagem AML foi projectada para o rob IBM 7565, que tem coordenadas com uma
configurao mxima de seis juntas mais a garra. As juntas 1, 2 e 3 so lineares, enquanto as 4, 5 e 6
so rotacionais. A garra tambm considerada linear em termos de abertura entre seus dedos.

Os comandos de movimento para o rob IBM 7565 requerem a especificao da junta e da


distncia a ser percorrida. A distncia pode ser especificada ou dando um nome s coordenadas no
espao de trabalho para as quais o rob deve se dirigir ou especificando a distncia incremental a ser
percorrida. Os dois comandos associados so MOVE e DMOVE. Por exemplo, o comando

MOVE (<JX,JY>, <8,5, 1,5>);

indica que as duas juntas JX a JY deveriam ser movimentadas para seus valores correspondentes de
coordenadas de 8,5 a 1,5 in (inches), respectivamente.

O comando DMOVE usado para realizar um movimento relativo posio corrente. Por
exemplo, o comando

DMOVE(JZ, 3,0);

movimentaria o punho do rob 3 ir para cima numa direco vertical.

Dois outros comandos de movimento em linguagem AML so AMOVE e GUIDE.

O comando AMOVE proporciona o mesmo movimento bsico a especificao da trajectria


que o comando MOVE; a diferena que este completa o movimento antes de continuar com qualquer
comando subsequente no programa. Com o comando AMOVE, o sistema pode realizar muitas tarefas
enquanto o movimento est sendo concludo, como funes de processamento de dados ou clculos.
Obviamente, qualquer movimento subsequente deve esperar que o movimento actual esteja completo.
O formato do comando AMOVE o mesmo que o comando MOVE:

AMOVE (<JX,JY>, <8,5, 1, 5>);

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 42


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

O comando GUIDE permite o use de uma consola de programao para movimentar o


conjunto especificado de juntas sob controle de direccionamento motorizado. O consola de
programao do rob IBM possui teclas de controle que correspondem s juntas e direces
particulares. Para cada junta existe uma tecla para os sentidos positivo e negativo que pode ser
pressionada para conseguir o movimento desejado da junta. Quanto mais tempo a tecla pressionada,
mais rapidamente a junta se movimenta. Quando a tecla libertada, o movimento da junta pra. Uma
vez movimentado o rob para a posio desejada, o movimento da junta pra, a tecla "END" no
consola de programao pressionada, o conjunto de posies dos eixos exibido no monitor, e o
controle devolvido para o interpretador de AML. Por exemplo, vamos considerar o seguinte comando:

GUIDE (<JX,JY,JZ>);

Isto faria os eixos x, y e z movimentarem-se atravs do consola de programao. O utilizador


poderia ento movimentar esses eixos com as teclas do consola de programao. Terminada a
manipulao, o usurio pressiona a tecla "END", e o seguinte tipo de informao exibido no monitor:

<2,03700, 27,600, 4,00300>

Essa informao poderia ento ser usada para definir um comando MOVE, se desejado.

A velocidade de execuo de um movimento programado estabelecida com o comando


SPEED. O comando

SPEED (0,5)

ajusta a velocidade para quaisquer movimentos subsequentes (at que a velocidade seja alterada)
para 0,5 vezes a velocidade plena. Velocidades vlidas variam de 0,0 at 1,0 vezes a velocidade
mxima do rob.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 43


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

COMANDOS PARA SENSORES

O rob IBM 7565 proporciona um interface de entrada/sada para sensores para ser ligado com
vrios equipamentos dentro da clula de trabalho, tais como sensores, dispositivos, ferramentas,
alimentadores e outros. O sistema tem uma entrada ou sada digital de 1 bit, assim como uma
entrada/sada digital de vrios bits (at 16 bits). O sistema IBM 7565 suporta at 64 definies de
entrada/sada lgica. Se o rob for equipado com uma garra com sensores, comandos adicionais so
possveis para interligao com seus sensores.

Entrada/sada para sensores

Trs dos comandos mais importantes para entrada/sada de sensores na linguagem AML so:
DEFIO, SENSIO a MONITOR.

O comando DEFIO usado para definir um dispositivo lgico de entrada/sada para sensores,
ao qual pode-se ter acesso atravs dos comandos SENSIO ou MONITOR. A forma do comando DEFIO

DEFIO (group,type,format,sbit,length,scale,offset)

Os cinco primeiros parmetros entre parnteses so obrigatrios, e os dois ltimos so


opcionais.

- Group um nmero inteiro ou um conjunto que especifica o canal de entrada/sada.

- Type refere-se a um dispositivo de entrada ou de sada (0 para entrada e diferente de


zero para sada).

- Format um nmero inteiro ou conjunto que especifica o formato dos dados de


entrada/sada do sensor. Um 1 especifica que um contacto fechado corresponde a -1 e
um contacto aberto corresponde a zero. Um 2 significa que o contacto fechado
corresponde a 1 e o valor do contacto aberto novamente zero.

- Sbit um nmero inteiro ou um conjunto que especifica o nmero de bit do comeo de


campo de entrada/sada. Os nmeros de bits variam de 0 a 15, sendo o bit 0 o mais
esquerda.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 44


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

- Length um nmero inteiro ou um conjunto que especifica o comprimento do campo


do bit. Os campos de bits variam de 1 a 16 bits.

- Scale um nmero real ou conjunto opcional que especifica o factor da escala que
deve ser usado para dimensionar a entrada/sada de modo a tornar seu tamanho
compatvel com o sistema. O valor default 1.

- Offset um nmero real ou um conjunto opcional que especifica a constante a ser


usada para afastamento lateral da escala. O valor default 0.

O comando DEFIO retorna a definio de um bit ou um conjunto vizinho de bits aos quais se
pode ter acesso pelo comando SENSIO. O retorno chamado de ionum.

O ionum um nmero inteiro ou um conjunto que especifica o identificador numrico para cada
entrada/sada definida. O valor deve ser usado em todas as referncias para essa entrada/sada lgica
em particular.

O formato do comando SENSIO :

SENSIO(ionum,padro)

- ionum o valor (ou valores) que determina(m) a entrada ou sada que deve ser
realizada. At dez ionums podem ser especificados num nico comando SENSIO,
permitindo a execuo de 10 entradas/sadas a partir do mesmo comando;

- padro um nmero inteiro, um nmero real, um conjunto que especifica o endereo


para operaes de entrada ou os dados a serem usados para operaes de sada.

Um exemplo do use dos comandos DEFIO a SENSIO seria:

DEFIO (21,0,1,0,1);

1016

SENSIO (1016,INT)

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 45


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

O 21 no comando DEFIO refere-se ao canal 21; o primeiro 0 indica que o tipo entrada; o
primeiro 1 indica o formato; o segundo 0 indica o primeiro bit do campo, e o segundo 1 indica que o
campo tem um comprimento de 1 bit. O comando DEFIO retorna o ionum a ser fornecido pelo comando
SENSIO (1016). O INT usado para referenciar os valores sob o controle do programa AML..

O comando MONITOR permite o uso de um ou mais dos canais de entrada/sada para a leitura
dos sensores a intervalos regulares de tempo. Isto pode ser usado para projectar um sistema de
interrupo para monitorizao de segurana, por exemplo.

O comando MONITOR difere do comando SENSIO, j que permite uma monitorizao quase
que contnua de sinais emitidos por sensores em vez de pontos especficos no programa AML.

Capacidades sensoras da garra

Existe uma garra com capacidades sensoras para o rob IBM 7565. Essas capacidades
incluem avaliao da fora com medidores de deformao (strain gauges) e avaliao ptica com um
dodo emissor de luz.

Os sensores podem ser usados com comandos SENSIO a MONITOR. Os monitores de


deformao so usados para detectar foras positivas e negativas em trs direces. Os medidores de
deformao que correspondem s trs direces so:

- Sensores de ponta: Esses sensores indicam se existe uma fora que pressiona de
baixo para cima na garra. Isto poderia ocorrer, por exemplo, se a garra fosse
pressionada contra a mesa de trabalho. Teria tambm um valor se um objecto
estivesse agarrado pela garra com esta orientao vertical, o peso do objecto iria fazer
com que a fora fosse registada nestes sensores. Os comandos SET a SRT em
linguagem AML so usados como identificadores lgicos de entrada/sada para os
sensores da direita nos comandos SENSIO a MONITOR.

- Sensores de presso: Se a garra for fechada sobre um objecto, esses sensores de


presso indicaro a presso com valores positivos de medio. Se a garra for
introduzida fechada dentro de um copo e depois for aberta contra os lados do mesmo,
- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 46
Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

sero indicados valores negativo. Os comandos SLP a SRP, em linguagem AML, so


usados como identificadores de entrada/sada lgica para os comandos SENSOR e
MONITOR.

- Sensores laterais: Se a garra for movimentada contra um obstculo lateral, esses


sensores iro indicar a presena do obstculo. Os comandos SLS a SRS, em
linguagem AML, so usados como identificadores de entrada/sada lgica para os
comandos SENSOR e MONITOR.

O comando LED, em linguagem AML, pode ser usado com os comandos SENSIO a MONITOR
para determinar se um objecto est bloqueando o dodo emissor de luz. Por exemplo, o comando

SENSOR(LED,INT)

-1

retorna zero para indicar que nenhum objecto est a bloquear o LED, enquanto um valor de -1
indica que nenhum objecto est a bloquear o caminho da luz. O comando LED identifica o nmero de
entrada/sada lgica do circuito detector de luz da garra.

PROCESSAMENTO DE DADOS

A linguagem AML contm algumas capacidades de processamento de dados para interligao


com perifricos. O rob IBM 7565 inclui os seguintes dispositivos de processamento de dados: teclado
e monitor, impressora (opcional), disco (opcional), disquete, consola de programao (que inclui um
visor de 10 caracteres) e uma linha de comunicaes, que permite a comunicao entre sistemas e
estaes de trabalho diferentes, incluindo a transferncia de arquivos entre sistemas. Existem 14
canais disponveis para transferir dados entre o sistema e os dispositivos perifricos. Alguns canais so
reservados: o canal 0 para o terminal de teclado e monitor, o canal 1 para a impressora,, o canal 2
para o consola de programao e o canal 3 o arquivo de mensagens do sistema. Os canais
remanescentes podem ser usados para ter acesso a arquivos armazenados em discos do utilizador.

Vrios comandos podem ser usados pelo programador para definir a comunicao do sistema
para os perifricos. Estes incluem os comandos WRITE, PRINT e DISPLAY.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 47


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

O comando WRITE usado para escrever um registo lgico dentro do arquivo atravs de um
canal definido.

WRITE(0, `Good Morning');

O comando escreveria as palavras "Good Morning" no terminal de exibio atravs do canal 0.


O comprimento mximo do registo que transmitido depende do canal de sada.

Se um comando WRITE emitido para o canal 0 (terminal de exibio), o comprimento


mximo de 79 caracteres. Se um comando WRITE emitido para o canal 1 (impressora), o
comprimento mximo de 132 caracteres. Se o comprimento dos dados for maior que o comprimento
mximo de registo, aparecer uma mensagem de erro.

O comando PRINT escreve os valores de uma lista de expresses num canal de dados
correntemente aberto. PRINT diferente de WRITE porque os dados na expresso so convertidos em
formato de caracteres antes de ser exibidos e porque mais de um registo pode ser transmitido para o
dispositivo. Com o comando WRITE, apenas um registo est escrito para o dispositivo.

Uma outra diferena entre PRINT a WRITE que os dados de sada so guardados at um
caractere EOL ou EOP (fim de linha ou de impresso) ser detectado ou a capacidade do buffer ser
excedida. Mais uma vez o nmero do canal deve ser fornecido como um dos argumentos no comando.

O comando DISPLAY o mesmo que o comando PRINT dirigido para o canal 0. No requer
nenhuma identificao do canal. O comando seguinte serve como ilustrao:

DISPLAY(`Good Morning', EOL);

O comando READ usado para receber dados de um dispositivo perifrico. Ele l um registo
lgico do canal especificado. O comando seguinte ilustra o formato do comando READ:

READ(0, DATA1);

(Isto iria ler um arquivo chamado DATA1)

Outros comandos do sistema incluem ERASE (para apagar um arquivo de um disco a libertar o
espao ocupado por ele, COPYFILE (para copiar um arquivo de um disco para o outro ou para o
mesmo disco.

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 48


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

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

2 - Tipos de programao de robs ................................................................................................. 4

3 - Mtodos de programao de robs............................................................................................. 6

3.1 - Mtodos de programao on-line......................................................................................... 6

3.1.1 - Programao por amostragem ou programao por ensino............................................. 6

3.1.2 - Programao pela consola........................................................................................... 8

3.2 - Mtodos de programao off-line ......................................................................................... 9

4 - Processos de desenvolvimento de um programa de rob........................................................... 12

Passo 1: Analisar e decompor a tarefa numa [...]. ................................................................... 12

Passo 2: Identificar e especificar todas [...]............................................................................. 14

Passo 3: Identificar quaisquer tipos [...].................................................................................. 16

Passo 4: Desenhar e desenvolver o programa completo e toda a sua documentao................ 17

Passo 5: Testar e depurar o programa [...]. ............................................................................ 17

Passo 6: Testar o programa no rob real. .............................................................................. 17

5 - Programando com sensores externos....................................................................................... 19

6 - Linguagens de programao de robs ..................................................................................... 21

6.1 - Linguagens textuais de programao de robs ................................................................... 21

6.2 - Geraes de linguagens de programao de robs............................................................. 22

6.2.1 - Linguagens de primeira gerao ................................................................................. 22

6.2.2- Linguagens de segunda gerao ................................................................................. 23

6.2.3 - Linguagem de futura gerao ..................................................................................... 25

Anexos

Linguagem VAL II .................................................................................................................... 27

DESCRIO GERAL ........................................................................................................ 27

COMANDOS MONITOR ...................................................................................................... 27

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 49


Automao e Robtica I Tcnicas e Linguagens de Programao de Robs

COMANDOS DE MOVIMENTO.............................................................................................. 28

CONTROLE DO GRIPPER.................................................................................................. 28

CONTROLE DE CONFIGURAO ......................................................................................... 29

CONTROLE DE INTERTRAVAMENTO..................................................................................... 29

CONTROLE DO PROGRAMA .............................................................................................. 29

Linguagem RAIL...................................................................................................................... 31

DESCRIO GERAL ........................................................................................................ 31

CARACTERSTICAS ......................................................................................................... 31

POSIES .................................................................................................................... 32

COMANDOS DO MOVIMENTO DO ROB ................................................................................ 32

COMANDOS LEARN ......................................................................................................... 34

SOLDA ......................................................................................................................... 34

ENTRADA /SADA ............................................................................................................ 34

ENTRADA /SADA PARA OPERADOR E SISTEMA DE ARQUIVOS.................................................... 35

CONTROLE DO PROGRAMA .............................................................................................. 35

Linguagem AML ...................................................................................................................... 37

DESCRIO GERAL ........................................................................................................ 37

COMANDOS AML........................................................................................................... 37

CONSTANTES E VARIVEIS............................................................................................... 40

COMANDOS DO CONTROLO DO PROGRAMA .......................................................................... 41

COMANDOS DO MOVIMENTO............................................................................................. 42

COMANDOS PARA SENSORES............................................................................................ 44

PROCESSAMENTO DE DADOS............................................................................................ 47

- 2000/2001 - Ricardo Silva, Rui Cabral, Henrique Carvalho 50