Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

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

Prévia do material em texto

1 
ROBÓTICA 
 
Programando em AML – Parte 1 
José Hamilton Chaves Gorgulho Júnior 
Professor do Departamento de Produção da Universidade Federal de Itajubá – UNIFEI 
gorgulhojunior@ig.com.br 
 
 
INTRODUÇÃO 
 Enquanto as linguagens de programação de CLP’s e CNC’s são divulgadas em livros, 
revistas e páginas na Internet, pouco se lê sobre a programação dos robôs que é, para muitos, 
um grande mistério. Como não há nenhuma padronização o que se tem hoje é uma grande 
quantidade de linguagens que inviabiliza às editoras abordar uma delas. Como são poucos os 
cursos técnicos e de formação profissional que dispõem de meios de fornecer conhecimentos 
sobre programação de robôs o aprendizado fica, basicamente, restrito aos treinamentos 
realizados nas próprias empresas, usuárias ou fornecedoras, desses equipamentos. 
 
 A proposta desta série de 3 artigos é apresentar uma linguagem de fácil assimilação que 
permita aos leitores entender o “espírito da coisa”. Dessa forma, munido de um conhecimento 
preliminar, ficará mais simples encarar um futuro treinamento em uma outra linguagem, quando 
ingressar na vida profissional. 
 
A PROPOSTA DE APRENDIZAGEM 
 É fato consumado que para se aprender uma linguagem de programação é necessário 
programar. Sendo assim, para que a aprendizagem seja efetiva, propõem-se que a 
programação seja realizada no simulador citado no artigo Conhecendo o Robô SCARA 
(edição no 13, página 35), que pode ser obtido em http://www.iem.efei.br/gorgulho/robo.html, 
em versões 16 e 32 bits (ambiente Windows ). 
 
 Este software simula o robô IBM 7535, de configuração SCARA. A grande vantagem do 
uso desta configuração é o movimento do braço, que apesar de ser executado por juntas 
rotacionais, ocorre no plano XY, simplificando muito a visualização e o aprendizado. Robôs que 
executam complexos movimentos espaciais trariam apenas dificuldades ao iniciante. 
 
 A linguagem utilizada por este equipamento é a AML (A Manufacturing Language), mais 
especificamente a AML/Entry Version 3. Trata-se de uma linguagem de estrutura e comandos 
simples que permitirão uma assimilação rápida. 
mailto:gorgulhojunior@ig.com.br
http://www.iem.efei.br/gorgulho/robo.html
 2 
IBM 7535 
 A Figura 1 exibe uma representação do robô, bem como as dimensões da área de 
trabalho. O controle da garra envolve as coordenadas XY, a posição vertical e sua orientação R 
(rotação no plano XY). Por tratar-se de acionamento pneumático o movimento vertical possui 
apenas duas posições possíveis: totalmente em baixo (sem pressão) e totalmente em cima 
(com pressão). O órgão terminal que equipará o robô é uma garra pneumática com retorno por 
mola, ou seja, sem pressão ela permanece aberta. 
 
 
Figura 1 – Vista do IBM 7535 e dimensões de sua área de trabalho. 
 
REGRAS BÁSICAS DA LINGUAGEM 
 A primeira regra básica é que toda linha encerra-se com o caractere ponto-e-vírgula. 
Outra regra refere-se às palavras que serão usadas. Alguns comandos requerem que um nome, 
que chamaremos de identificador, seja adotado pelo programador e que deve atender aos 
seguintes requisitos: 
 Até 72 caracteres; 
 O primeiro caractere deve ser alfabético; 
 Os demais caracteres podem ser alfabéticos, numéricos ou o caractere sublinhado (_); 
 O caractere sublinhado (_) não pode ser o último caractere do identificador; 
 Caracteres especiais, como o asterisco, não são permitidos; 
 
O USO DOS COMENTÁRIOS 
Um bom programa, seja em que linguagem for, deve possuir explicações que permitam 
que uma outra pessoa possa entender a sua lógica. Além disso, passado algum tempo, o 
próprio criador do programa terá muitas facilidades em lembrar-se do que fez se tiver colocado 
informações claras. 
 
 3 
Em empresas que contam com vários programadores é interessante a adoção de um 
cabeçalho identificador com informações relevantes como: função do programa, nome do 
programador, data da programação, tarefas executadas, materiais manipulados, cliente 
solicitante etc. Cada empresa deve definir quais informações são importantes. 
 
Na linguagem AML o indicador de comentário são dois sinais negativos (--). O 
comentário pode estar sozinho em uma linha ou na mesma linha de um comando (desde que 
esteja após o ponto-e-vírgula). 
 
A ESTRUTURA DA LINGUAGEM AML 
 A linguagem AML é baseada em sub-rotinas que tem um começo e um final claramente 
definidos. Cada sub-rotina deverá ter um identificador único, seguido pelo comando SUBR. 
Deve-se utilizar o caractere dois-pontos (:) para separar o identificador do comando. As sub-
rotinas são encerradas com o comando END. 
 
 O programa AML é formado por uma sub-rotina principal que poderá conter outras sub-
rotinas internas. Estas sub-rotinas internas devem ser definidas logo no início da sub-rotina 
principal. Alguns comandos específicos são permitidos antes da declaração da sub-rotina 
principal. São comentários e comandos que definem constantes, contadores e pallet’s. A figura 
2 apresenta um esquema da estrutura da linguagem. 
 
Região para definição de:
 constantes
 contadores
 pallet's
Id1
Id2
Id3
:Subr; -- Início da sub-rotina principal
 :Subr;
 .
 .
 .
 End;
 :Subr;
 .
 .
 .
 End;
 .
 .
 .
 .
 .
End; -- Fim da sub-rotina principal
Sub-rotina interna 1
Sub-rotina interna 2
Comandos da
sub-rotina principal
 
Figura 2 – Estrutura da linguagem AML. 
 4 
 Na linguagem AML as sub-rotinas internas podem receber parâmetros. Isso permite a 
elaboração de programas mais curtos e flexíveis. Porém, este recurso não foi implementado no 
simulador e, portanto, não poderá ser explorado. 
 
CONTROLE DO EIXO VERTICAL (EIXO Z) 
Os comandos que controlam este eixo são UP, para fornecer pressão e subir o eixo Z e 
DOWN, para cessar a pressão. O peso próprio do eixo vertical, somado ao peso do órgão 
terminal e da carga fazem com que volte para a posição inferior. Nota-se que são comandos 
extremamente simples, diretos e de fácil memorização. 
 
 O eixo Z possui sensores de fim de curso que informam se está na posição superior ou 
inferior. Dessa forma o 7535 aguarda durante um tempo que o sinal proveniente dos 
respectivos sensores seja enviado para que o programa continue a sua execução. O tempo 
padrão é de 1.5 segundos. Caso o eixo Z não atinja a posição neste tempo um erro OT (Over 
Time) é gerado, interrompendo o programa. Isso pode ocorrer se a pressão da linha de ar 
comprimido baixar muito ou a garra ficar presa no processo. 
 
 A linguagem AML abre uma possibilidade de controle sobre o tempo de espera padrão, 
mas que não foi implementada no simulador. São os comandos UP(tempo) e DOWN(tempo), 
onde tempo pode variar de 0 até 25.5 segundos em passos de 0.1 segundo. Um valor igual a 
zero fará com que o programa espere indefinidamente até que o eixo atinja a posição. 
 
CONTROLE DA GARRA 
A posição natural, devido ao retorno por mola, é aberta. Para controlar a garra têm-se os 
comandos GRASP (fecha) e RELEASE (abre). Um detalhe deve ser observado. O IBM 7535 
executa imediatamente os comandos já que não há sensores de fim de curso para indicar se a 
garra já encerrou o movimento de abertura ou fechamento. Sendo assim é necessário adotar 
um cuidado para evitar que, por exemplo, a garra se feche antes de ter chegado na posição 
inferior onde deveria pegar uma peça. 
 
A solução é usar o comando DELAY(tempo) que, como o próprio nome sugere, gasta 
um determinado tempo antes de seguir para o próximo comando. O parâmetro tempo tem 
como valores válidos a faixa que vai de 0 até 25.5 segundos, em incrementos de 0.1 segundo. 
Esse parâmetro também pode ser uma constante. O valor 0 (zero) indica uma espera infinita, 
mas essa opção não foi implementada no simulador, que aceita apenas a faixa de valoresque 
vai de 0.1 até 25.5 segundos. 
 5 
PROGRAMA 1 
 De posse dos comandos já apresentados é possível elaborar um primeiro programa que 
servirá principalmente para entender a forma de uso do simulador. Após carregar o simulador, 
use a opção Arquivo do menu principal, seguida na opção Novo. Em seguida digite o programa 
exibido pela Figura 3. 
 
 
Figura 3 – Primeiro programa. 
 
 O simulador possui uma rotina de tratamento de erros que apresenta o local do erro e 
informações sobre como agir para corrigi-lo. Mas podem ocorrer erros não previstos e o 
simulador, por não encontrar tratamento adequado, encerra sua execução. Sendo assim, 
sempre salve o programa digitado antes de prosseguir. 
 
 A próxima etapa, como mostra o menu principal, é Compilar o programa. Da mesma 
forma como ocorre no robô real, a compilação procura por erros lógicos e de sintaxe. Se 
houver um erro, como mostra a Figura 4, realize a correção, salve e compile novamente. 
Quando não houver mais erros a opção Simular fica disponível no menu principal. 
 
 
Figura 4 – Erro no programa da Figura 3. 
 
 Acionar a opção Simular do menu principal faz surgir a tela principal da simulação, 
mostrada pela Figura 5. Nota-se a vista superior do robô, e duas vistas adicionais relacionadas 
 6 
à garra na parte inferior direita (sendo uma vista lateral e a outra de topo). Na parte inferior da 
tela está o indicador de coordenadas que é composto pelas cotas X e Y e pela rotação R da 
garra. Como o robô ainda está desligado os valores não estão sendo mostrados. 
 
 
Figura 5 – Tela de simulação com o robô desligado. 
 
 Ligue o robô com o botão Manip Power. A luz vermelha ao lado do botão se acenderá e 
o eixo Z, que estava na posição inferior, devido à falta de ar comprimido, irá subir. Isto ocorre 
por motivos de segurança. A próxima tarefa é fazer com que o braço se mova e estando na 
posição superior os riscos de colisão são minimizados. Esse movimento inicial será 
denominado de referenciamento. 
 
 Este equipamento, como vários outros robôs e máquinas CNC, possui um sistema de 
medição incremental. Isto significa que ao ser ligado o sistema de controle não tem como saber 
a posição em que se encontram as partes móveis. Os fabricantes adotam rotinas especiais de 
movimentação para que cada elemento móvel encontre um sensor instalado em local 
específico e de posição conhecida. Quando estes sensores são acionados o controle do 
equipamento passa a conhecer a posição atual e pode, então, ir para qualquer outra posição 
com segurança (isso explica porque impressoras e scanners fazem sons e movimentos 
quando são ligados – também possuem medição incremental e seguem suas rotinas 
automáticas de referenciamento). 
 7 
 Após ligar o robô deve-se acionar o botão Return Home para que ocorra o 
referenciamento. O simulador mostra os eixos Teta1, Teta2 e R girando lentamente em busca 
de suas referências. Assim que encontram os eixos afastam-se rapidamente para, em seguida, 
voltar à origem e confirmar a posição. Essa tarefa só é executada quando o robô é ligado. Em 
qualquer outro momento pode-se usar o botão Return Home para, rapidamente, trazer os 
eixos para a origem (coordenadas X=650 mm, Y=0 mm e R= 0º ). 
 
 Acione o botão Auto para entrar no modo de execução automática. O menu de opções 
que se abrirá está exibido na Figura 6 e o texto do botão ficará vermelho. A parte inferior do 
painel refere-se às portas de entrada e saída, que serão discutidas posteriormente. 
 
 
Figura 6 – Painel de controle na opção Auto. 
 
 A única opção disponível é Start Cycle. Acione este botão e o programa começará a 
rodar e as demais opções do painel de comando serão liberadas. O botão Stop interrompe a 
execução na linha que estiver sendo executada. O botão Stop Cycle interrompe a execução 
do programa quando for encontrado o comando END da sub-rotina principal. As outras funções 
serão discutidas posteriormente. 
 
 A Figura 7 mostra a seqüência de eventos que deverão ser observados durante a 
execução do Programa1. Da esquerda para a direita tem-se: posição inicial, descida da garra 
 8 
com o comando Down; fechamento da garra com o comando Grasp, subida do eixo Z com o 
comando Up e abertura da garra com o comando Release (que faz voltar ao estado inicial). 
 
 
Figura 7 – Execução do Programa1. 
 
MOVIMENTANDO O BRAÇO 
 A linguagem AML utiliza-se de dois comandos para mover o braço e, simultaneamente, 
orientar a garra. Um dos comandos realiza um movimento absoluto, ou seja, a coordenada da 
posição final do movimento está relacionada com a origem do sistema de coordenadas XY. O 
outro comando faz com que a movimentação seja relativa à posição atual. 
 
 Para movimentação absoluta o comando é PMOVE(PT(x, y, r)) onde os valores de x e y 
são em milímetros e r em graus. Outra forma de uso é criar uma constante com a coordenada 
desejada e usar o nome da constante no comando, ou seja, PMOVE(constante). A criação de 
constantes será abordada no próximo artigo. 
 
 O comando para movimentação relativa, também chamada de incremental, é 
DPMOVE(x, y, r). O comando inicia-se com a letra D devido a palavra Delta, indicando que o 
movimento ocorre em relação à posição atual. Uma observação importante refere-se ao 
primeiro movimento executado pelo programa. Esse movimento não pode ser relativo e o 
simulador apresentará uma mensagem de erro durante a compilação. 
 
PROGRAMA 2 
 A Figura 8 exibe um programa que executará alguns movimentos do braço. É usado 
tanto o comando de movimentação absoluta quanto incremental. Após a digitação, salve o 
programa e compile, indo em seguida para a tela de simulação. Observe que, durante a 
execução da simulação um pequeno ponto azul é posicionado nas coordenadas de destino do 
movimento. 
 
 9 
 Note que o terceiro movimento executa um giro da garra para a posição de 90 graus. 
Essa posição é mantida no movimento seguinte. O último movimento, que retorna o braço para 
a origem (x=650 e y=0), também leva a garra para a posição inicial (r=0). 
 
 
Figura 8 – Programa que movimenta o braço. 
 
 O simulador possui o recurso de mostrar o caminho percorrido pela garra. Acione a 
opção Traço superior do menu Visualizar. O resultado da simulação do Programa 2 após o 
acionamento desta função está na Figura 9. 
 
 
Figura 9 – Simulação do Programa 2. 
 10 
 A opção Visualizar do menu apresenta outras funções. Em sistemas mais lentos pode-
se mostrar o esqueleto ao invés do braço. As vistas superior e lateral da garra podem ser 
escondidas também, bem como os eixos. As outras funções (área linear, traço inferior e 
contadores) serão explicadas futuramente. No menu há a opção Limpar Área que apaga os 
traços deixados pela garra. 
 
COMENTÁRIOS FINAIS 
 Esta primeira parte apresentou a forma de trabalho do simulador, a estrutura da 
linguagem AML, suas regras principais e os comandos mais básicos. Com esses comandos já 
é possível criar programas completos, mas sem muitos recursos. O próximo artigo irá mostrar 
como criar constantes, usar contadores, manipular as portas de interface e executar 
movimentos em linha reta. 
 
REFERÊNCIAS 
IBM, AML/Entry Version 3 User’s Guide, IBM Manufacturing System – Software Library, First 
Edition, 1984. 
Gorgulho Júnior, J. H. C., Conhecendo o Robô SCARA, Revista Mecatrônica Atual, Ano 3, 
edição no 13, página 35, Dezembro/2003 - Janeiro/2004.

Mais conteúdos dessa disciplina