Automao e Robtica I
Tcnicas e Linguagens de
Programao de Robs
- 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.
Figura 1
No final do brao do rob, est situado um rgo terminal. Nas figuras abaixo podemos ver
alguns dos mais utilizados.
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
Dados em CAD podem ser utilizados, por exemplo as dimenses das partes e as
relaes geomtricas entre elas;
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:
Figura 6
o V+ - Adept (1989);
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.
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:
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.
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.
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.
Mudar, mais tarde, o modo como a tarefa executada pode trazer elevadas despesas e ser mais
propenso a erros.
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.
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.
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.
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.
FimDoProcedimento;
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 5: Testar e depurar o programa utilizando um simulador do rob e do seu espao de trabalho.
Este passo, como obvio apenas se aplica aos mtodos de programao off-line.
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.
No tendo em conta todos estes aspectos, poder dar origem a acidentes, custos
desnecessrios de produo e falhas muito dispendiosas.
b. Sensores de um eixo
c. Interruptores
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.
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 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.
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
(Automatically, Programmed Tooling), o HELP, uma linguagem desenvolvida pela General Electric
Company sob licena da firma italiana DEA.
comunicao com outros computadores. Essas linguagens no podem facilmente ser ampliadas para
futuros melhoramentos.
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.
Anexo 1
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
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.
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
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
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
CONTROLE DO PROGRAMA
Anexo 2
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
- 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;
POSIES
Esta linguagem possui trs tipos de dados para posies do rob: pontos, trajectria e sistema
de coordenadas de referencia.
Pontos
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:
Movimento Linear
Movimento Assncrono
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.
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.
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.
ANEXO 3
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.
COMANDOS AML
- comando executvel;
Comandos Executveis
rtulo: expresso;
Exemplo:
CALC: 5-1/2*10
ou
Exemplos:
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.
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.
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.
subrstatement1;
subrstatement2;
...
subrstatementn;
END;
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.
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.
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.
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.
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);
GUIDE (<JX,JY,JZ>);
Essa informao poderia ento ser usada para definir um comando MOVE, se desejado.
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.
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.
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)
- 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.
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.
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;
DEFIO (21,0,1,0,1);
1016
SENSIO (1016,INT)
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.
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.
- 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.
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
Vrios comandos podem ser usados pelo programador para definir a comunicao do sistema
para os perifricos. Estes incluem os comandos WRITE, PRINT e DISPLAY.
O comando WRITE usado para escrever um registo lgico dentro do arquivo atravs de um
canal definido.
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:
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);
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.
ndice
1 - Introduo ................................................................................................................................ 1
Anexos
COMANDOS DE MOVIMENTO.............................................................................................. 28
CONTROLE DO GRIPPER.................................................................................................. 28
CONTROLE DE INTERTRAVAMENTO..................................................................................... 29
Linguagem RAIL...................................................................................................................... 31
CARACTERSTICAS ......................................................................................................... 31
POSIES .................................................................................................................... 32
SOLDA ......................................................................................................................... 34
COMANDOS AML........................................................................................................... 37
CONSTANTES E VARIVEIS............................................................................................... 40
COMANDOS DO MOVIMENTO............................................................................................. 42
PROCESSAMENTO DE DADOS............................................................................................ 47