Escolar Documentos
Profissional Documentos
Cultura Documentos
TREINAMENTO EM
ED-7220C
ROBÓTICA
Manual de Experiências
1
ÍNDICE
ED-7220C
2
5.3 Edit ........................................................................................................................................... 49
5.4 Files .......................................................................................................................................... 50
5.5 Load .......................................................................................................................................... 50
5.6 Quit ........................................................................................................................................... 50
5.7 Run ........................................................................................................................................... 50
5.8 Save .......................................................................................................................................... 51
5.9 Teach ........................................................................................................................................ 51
3
7.38 Open ....................................................................................................................................... 87
7.39 Outsig ..................................................................................................................................... 88
7.40 Path ........................................................................................................................................ 89
7.41 Pause ..................................................................................................................................... 91
7.42 Point ....................................................................................................................................... 91
7.43 Rem ........................................................................................................................................ 92
7.44 Return ..................................................................................................................................... 92
7.45 Search .................................................................................................................................... 93
7.46 Send ....................................................................................................................................... 94
7.47 Seti ......................................................................................................................................... 94
7.48 Setpath ................................................................................................................................... 94
7.49 Setpathx ................................................................................................................................. 95
7.50 Troff ......................................................................................................................................... 95
7.51 Tron ......................................................................................................................................... 95
7.52 Type ........................................................................................................................................ 96
7.53 Vel ........................................................................................................................................... 97
7.54 Waitfor .................................................................................................................................... 97
APÊNDICE ...................................................................................................................................... 99
4
5
ED-7220C
SISTEMA DE TREINAMENTO EM ROBÓTICA
MANUAL DE INSTRUÇÕES
ÍNDICE
CAPÍTULO 1
Visão Geral do Controlador ED-MK4
1.1 INTRODUÇÃO
O ED-MK4 pode controlar a série ED de robôs e acessórios. Isto inclui o braço de robô ED-7220C, o braço
de robô XR-4, o robô SCARA e um número bastante grande de acessórios tais como esteiras, mesas X-Y,
motores experimentais com ou sem encoder e várias garras de objetivos especiais ou de final de curso.
Até oito motores com encoder e dois motores sem encoder pode ser controlado. Um motor com encoder
é aquele que possui encoder incremental para fornecer informações de distância, direção e velocidade.
Cada um dos motores com encoder podem ser programados para executar movimentos trapezoidais,
rodar a uma velocidade constante programada, ter uma tensão aplicada programável ou ainda o motor pode
ser desabilitado. Cada um dos motores sem encoder podem ter uma tensão aplicada programável.
E ainda, o ED-MK4 pode ler oito entradas, ler oito chaves de entrada e controlar oito saídas.
O ED-MK4 pode ser programado via computador ou através do Controlador Manual (Pendant). Uma maior
flexibilidade é obtida quando se trabalha conectado ao computador. Enquanto no modo de controle via
computador, o Controlador Manual (Pendant) pode ser usado como um dispositivo para ensinar os pontos.
O controlador ED-MK4 pode ser operado tanto via computador ou via Controlador Manual (Pendant). Daqui
em diante, estes serão referenciados como modo computador e modo Controlador Manual respectivamente.
No modo via computador, são obtidas todas as funções e maior flexibilidade. E ainda, o Controlador
Manual (Pendant) pode ser usado como um dispositivo que proporcione um meio simples de mover o robô
ou os motores sem a necessidade de qualquer conhecimento da posição atual do robô ou motores.
O Capítulo 4 fornece uma descrição completa de cada comando disponível no modo computador.
O modo Controlador Manual proporciona uma operação independente. Nenhum computador será necessário.
Os programas podem ser editados, executados e armazenados para posterior acesso mesmo que o
sistema seja desligado. Caso desejado, um computador pode ser conectado para transferir arquivos para
armazenamento ou restauração no ou do disco flexível ou disco rígido. Adicionalmente um computador
pode iniciar a execução de um programa do Controlador Manual ou pode interrogar o controlador enquanto
o Controlador Manual estiver em operação.
O controlador ED-MK4 pode ser configurado como o controlador do ED-7220C, controlador do XR-4, controlador
do SCARA ou como um controlador genérico.
O SCARA foi projetado para ser similar a série IBM 7536 SCARA. Robôs similares a estes são montados
por alguns fabricantes japoneses e americanos. Algumas destas unidades possuem o eixo Z programável
enquanto outras não, embora sejam disponíveis normalmente como opcionais.
6
Quando usado como controlador do XR-3 ou XR-4, as portas A – F são usadas para controlar o robô e as
portas G e H estão disponíveis para acionarem acessórios. Os motores do robô são designados como:
Quando usado como um controlador do SCARA, as portas A – E são usadas para controlar o robô e as
portas F – H estão disponíveis para acionarem acessórios. Os motores do robô são designados como:
Diferentemente do ED-7220C e XR-4, o SCARA possui três micro chaves em todos os quatro eixos. Duas
das chaves fornece os limites de posição e se excedido o motor correspondente irá parar. A terceira chave,
como no ED-7220C e XR-4, proporciona um meio de mandar o motor para a posição HOME.
Quando usado como um controlador genérico, todos as oito portas estão disponíveis para acionarem
motores sobre vários modos.
Quando configurado como controlador do ED-7220C, XR-4 ou SCARA, a porta A pode ser usada como
controladora da garra (configuração padrão) ou como uma porta de controladora de um acessório.
Cada uma das portas de controle de motor com encoder podem ser configuradas de um de quatro modos:
Modo Ocioso (Idle Mode): Neste modo nenhuma alimentação é aplicada ao motor. A porta deve ser
configurada para o modo ocioso se um motor não estiver conectado. Se um motor com encoder é conectado,
a posição do motor será continuamente atualizada mas não terá significado.
Modo Trapezoidal (Trapezoidal Mode): Neste modo um motor com encoder é comandado para mover para
uma posição específica com uma dada velocidade e aceleração.
Ë chamado de modo trapezoidal porque uma plotagem da velocidade versus tempo fornecerá uma curva
trapezoidal. O motor acelera até uma dada velocidade e em um determinado ponto, desacelerará até que
o destino final seja alcançado. Se, durante a desaceleração, o motor alcançar a metade do curso de seu
movimento, o motor desacelerará sem ter alcançado sua velocidade programada. Neste caso um perfil
triangular será gerado.
Geralmente, para mover um motor para uma determinada posição envolve a configuração de certos registros
do motor seguido de algum tipo de comando de movimento.
V máx V máx
Velocidade
Velocidade
Tempo Tempo
Figura 1.1
7
Modo Velocidade (Velocity Mode): Neste modo um motor com encoder é comandado para mover a uma
velocidade específica. Independentemente da velocidade ser alterada, o motor acelerará ou desacelerará
até que sua velocidade alcance a velocidade programada.
Modo Loop Aberto (Open Loop Mode): Neste modo uma tensão variável é aplicada ao motor sem
encoder. Se um motor com encoder for conectado, a posição do motor será continuamente atualizada mas
não terá significado. Este modo não é disponível no modo Controlador Manual (Pendant). Na realidade, isto
faz com que a porta seja uma porta auxiliar como descrito a seguir.
Quando configurado para braço de robô ED-7220C ou XR-4, as portas B – F devem estar no modo trapezoidal.
Quando configurado como braço de robô SCARA, as portas B – E devem estar no modo trapezoidal. Em
ambos os casos, se a porta A é usada para controlar uma das garras padrão, esta também deve estar no
modo trapezoidal.
As portas auxiliares podem ser conectadas à até dois motores sem encoder e aplicar uma tensão e
polaridade programada. Estas portas são úteis para acionarem acessórios quando nem a posição e nem
a velocidade é importante.
Os robôs XR3, XR-4 e SCARA podem ser movidos no sistema de coordenadas de articulação ou no
sistema de coordenada XYZ. No sistema de coordenada de articulação, os motores são movidos a dadas
distâncias em função do número de contagens do encoder. No sistema de coordenada XYZ, os motores
são movidos a dadas distâncias em milímetros ou graus.
No modo computador você pode usar ambos os sistemas de coordenada a qualquer momento enquanto
que no modo Controlador Manual (Pendant) você deve especificar um ou outro.
Figura 1.2
Se o ED-MK4 for configurado como controlador genérico, então o sistema de coordenada de articulação
deve ser usado.
8
1.7 COMANDOS DE MOVIMENTO DE POSIÇÃO
Quando um único motor é comandado a mover para alguma posição, ele executa à uma velocidade
programada. Quando mais de um motor são comandados a executarem movimentos simultâneos, eles
executam à uma velocidade que depende não somente da velocidade programada individualmente mas
também do tipo de movimento especificado.
Os motores podem ser comandados a executarem movimentos de modo que eles começam ao mesmo
tempo mas podem parar em tempos diferentes dependendo da distância que cada motor deve mover e a
velocidade que cada motor está programado. Este tipo de movimento é referido como movimento
independente.
Um movimento coordenado é aquele no qual os motores começam ao mesmo tempo e também param ao
mesmo tempo. Como os motores devem para ao mesmo tempo, suas velocidades tornam-se uma função
do motor que leva mais tempo para mover. Essencialmente o controlador computa o tempo e cada motor
deve levar para percorrer o movimento. Após determinar qual motor levará mais tempo para mover, o
controlador computa a velocidade (menor) necessária para todos os outros motores que moverão de tal
modo que eles levem o mesmo tempo.
Por último, o movimento XYZ é aquele no qual uma posição é especificada no sistema de coordenada XYZ
e os motores movem coordenadamente. Um movimento XYZ é disponível somente quando o ED-MK4 é
configurado para um braço de XR-3, XR-4 ou SCARA.
No modo computador estes comandos podem ser misturados enquanto que no modo Controlador Manual
(Pendant) você deve especificar o sistema de coordenada de articulação para movimento independente ou
coordenado ou o sistema de coordenada XYZ para movimento XYZ. Se o sistema de coordenada de
articulação é usado no modo Controlador Manual (Pendant), todos os movimentos do robô usarão
automaticamente os comandos de movimento coordenado. As portas acessórias utilizarão automaticamente
o movimento independente. Se o sistema de coordenada XYZ é usado no modo Controlador Manual (Pendant),
então todos os movimentos do robô utilizarão automaticamente o movimento XYZ enquanto as portas
acessórias utilizarão comandos de movimento independente. Se o ED-MK4 é configurado como um
controlador genérico, então o Controlador Manual utilizará o comando de movimento independente.
Cada uma das portas para motor com encoder possuem um conjunto de registradores ou informações
associadas.
Dependendo do modo que o motor está e do movimento desejado você deve efetuar a configuração de
vários registros antes que o comando de movimento seja acionado.
Posição de Destino: Esta é a posição para a qual o motor moverá no modo de coordenada de articulação
quando um comando de movimento coordenado ou independente for dado. Os tipos de movimentos
disponíveis são descritos a seguir. Ambos os registros de destino absoluto e relativo são disponíveis. Um
movimento relativo é aquele no qual a distância movida é relativa a posição atual do motor.
Posição de Destino XYZ: Esta é a posição para o qual o eixo moverá no modo de coordenada XYZ quando
um comando de movimento XYZ for dado. Como no modo de articulação, um registro de destino XYZ
relativo é válido.
Velocidade Desejada do Motor: Esta é a velocidade que o motor alcançará quando comandado para
efetuar um movimento de posição ou quando no modo de velocidade. É expresso como uma porcentagem
da velocidade do sistema.
Velocidade do Sistema: Esta é a velocidade máxima que qualquer motor pode alcançar. É também
expressa como uma porcentagem. Reduzindo este valor, todos os motores terão a velocidade reduzida.
Aceleração do Sistema: É a porcentagem do valor máximo da aceleração do sistema que cada motor
pode alcançar quando o comando é executado.
9
PWM (Modulação da Largura do Pulso): É o nível de potência do motor expresso como uma porcentagem
associada com cada motor. Pode ser lido a qualquer momento mas pode ser escrito somente quando o
motor associado estiver no modo de loop aberto.
Um Movimento Trapezoidal
Para executar um movimento trapezoidal o motor deve estar no modo trapezoidal. A aceleração do sistema
não pode ser zero assim como a velocidade do sistema e a velocidade do motor que você deseja mover não
pode ser zero. Você deve configurar o registro de destino absoluto ou o registro de destino relativo. Se o
registro de destino relativo não for zero, existirá precedente e o registro de destino absoluto será atualizado
após o movimento. Após o movimento, o registro de destino relativo tornará zero para evitar futuros
movimentos não intencionais.
Note que nem o sistema de aceleração e nem o sistema de velocidade pode ser alterado se qualquer motor
estiver executando um movimento trapezoidal. Você também não pode alterar o destino ou a velocidade do
motor que ainda estiver executando um movimento trapezoidal.
Controlando a Velocidade
Para fazer um motor mover a uma velocidade específica, este deve estar no modo velocidade. A aceleração
do sistema não deve ser zero assim como a velocidade do sistema. Configurando a velocidade do motor
desejada, o motor irá acelerar até que a velocidade desejada seja alcançada. Você pode alterar a velocidade
do motor, a velocidade do sistema e a aceleração do sistema a qualquer momento. (Entretanto, se algum
um outro motor ainda estiver executando um movimento trapezoidal, você não pode alterar a aceleração do
sistema ou a velocidade do sistema como indicado acima).
Para configurar um nível de potência do motor, você simplesmente garante que o motor esteja no modo
loop aberto e escreve a porcentagem de potência do motor que você deseja para o registro do PWM do
motor. Você pode alterar o nível de potência a qualquer momento.
Tanto as entradas como as saídas são isoladas opticamente do resto do sistema. E ainda, todas as
entradas e saídas possuem limitação de corrente. Isto proporciona proteção para os trabalhos internos do
controlador contra ruído elétrico e no caso da corrente ou tensão máxima permitida ser excedida.
As entradas e saídas podem fazer interface com uma grande variedade de dispositivos incluindo sensores
padrão industriais. O Capítulo 4 fornece exemplos de aplicações enquanto o apêndice fornece detalhes de
especificações para cada porta.
Tanto as entradas como as saídas possuem um LED associado que proporciona visualização instantânea
dos estados das portas. Se uma entrada estiver habilitada, isto é, passando corrente, o LED correspondente
acenderá. Similarmente se uma saída estiver habilitada, seu LED correspondente acenderá.
E ainda, oito chaves são incluídas e podem ser usadas para facilitar o desenvolvimento do programa ou
eles podem ser usados como oito entradas adicionais.
10
2.1 CARACTERÍSTICAS DE PROTEÇÃO
Além das características de proteção incorporadas as entradas e saídas, características adicionais são
fornecidas para proteger o motor e as portas auxiliares e qualquer dispositivo como o robô conectado a
elas. Estas características incluem detecção de final de curso, limitação de corrente do amplificador do
motor e tecla de parada de emergência no Controlador Manual (Pendant).
Os finais de curso são condições quando o motor é comandado para mover a alguma posição ou mover-se
a alguma velocidade e não pode. Finais de curso somente podem ser detectados por motores com Encoder.
Tipicamente, quando um final de curso é detectado o motor é comandado a parar e permanecer na posição
em que o final de curso ordenou. Portanto o ED-MK4 e a serie ED de robôs e acessórios são construídos
para resistir a mal tratos, esta característica prevê a não necessidade de lubrificação no equipamento.
Limites de corrente ocorrem quando a corrente através do amplificador do motor excede algum fator de
ajuste de nível. Estes limites são ajustados acima do limite da corrente de fim de curso do motor e
tipicamente só será ativada se ocorrer um curto nos terminais de alimentação do motor. Se uma corrente
limite ocorrer a alimentação é removida de todos os amplificadores dos motores e não pode ser religada
novamente ate que um comando particular é recebido pelo controlador, portanto fornece tempo ao operador
para determinar e remover a falha que esta causando a corrente limite.
A chave de parada de emergência funciona como um botão de função de pânico. Se, por alguma razão, um
robô ou um acessório parece estar fora de controle ou um obstáculo está perto de ser encontrado, a chave
stop pára o sistema imediatamente.
ANOTAÇÕES
11
CAPÍTULO 2
O AJUSTE DE COMANDO DO CONTROLE MANUAL
Certos comandos não são disponíveis durante certos modos de operação. Por exemplo você não pode
ajustar um rótulo (LABEL) ou pular para um rótulo se o controle manual está em modo play. Neste caso o
controle simplesmente irá ignorar a tecla. Geralmente se nada parece acontecer ou se o display não muda
quando você pressiona uma tecla, então a função designada não esta disponível para o modo que você
esta rodando atualmente.
Em outros casos o controle manual não pode executar um comando ou função ate que ele tenha sido
ajustado ou configurado. Por exemplo você pode rodar um programa manual se o programa não foi editado
ou carregado. Usualmente o controle irá lembra-lo mostrando uma mensagem no display. Um erro comum
é tentar entrar no modo de edição sem ter executado um hard home. A mensagem NO-HARD irá aparecer
no display para lembra-lo.
Certos comandos requerem dados para então executar. Comandos podem requerer informação de simples
digito, um número em alguma faixa, Uma tecla yes/no ou on/off ou uma combinação delas.
Quando entrar com informação de dígito simples como um número de saída você pressiona o dígito desejado.
Para selecionar uma porta de entrada você deve pressionar dois dígitos. Por exemplo para selecionar
entrada 1 você pressiona 0 seguido de 1. Para selecionar entrada 12 (chave 4) você pressiona 1 então 2.
Alguns comandos, como o ajuste de uma saída, requerem um estado on ou off para ser inserido. Outros
comandos requerem uma resposta yes ou no. Por exemplo, se você tentar apagar um arquivo controle
manual, o controle manual irá perguntar se você realmente quer apagar este arquivo. Duas chaves são
fornecidas para habilitar você para ajustar estados ou responder perguntas. A tecla da SETA PARA CIMA
serve para ajustar o estado ON ou responder perguntas afirmativamente. A tecla da SETA PARA BAIXO
seve para ajustar o estado OFF ou responder as perguntas negativamente.
Quando entrar com um numero de muitos dígitos, isto é, um que possua uma gama de possíveis valores
você pode usar as teclas de dígitos para entrar com eles ou as teclas de setas para percorrer a faixa para
cima e para baixo através da faixa. Se a tecla de seta for usada os números irão incrementar ou decrementar
em uma relação tão longa quanto a tecla for mantida pressionada.
Todos os números possuem um valor mínimo e máximo associado com eles. Se enquanto você esta
pressionando a seta para cima, o máximo valor é ultrapassado, o número irá retornar ao valor mínimo
válido e continuar deste ponto. Da mesma maneira se enquanto você estiver pressionando a tecla da seta
para baixo, se o valor mínimo é ultrapassado o número irá retornar ao valor máximo válido e continuar. Se
após usar as teclas de setas, uma tecla de dígito é pressionada o número será apagado e substituído pelo
novo dígito. Com a adição de novos dígitos os dígitos anteriores irão se mover para a posição dos próximos
dígitos. Se você adicionou dígitos e o valor máximo é excedido o número será ajustado para o seu máximo.
Alguns comandos requerem um número negativo. Por exemplo, um motor em modo velocidade tem uma
faixa de velocidade de -100% a +100%. A chave +/- pode ser usada para trocar o sinal de um número a ser
inserido.
A tecla ESCAPE geralmente tira você de qualquer função que esteja executando sem fazer nenhuma
alteração. Por exemplo se você iniciou a função SET OUTPUT pressionando as teclas correspondentes,
você pode pressionar ESCAPE a qualquer momento ANTES DE PRESSIONAR ENTER, sem fazer nenhuma
modificação no sistema ou programa atual. Tenha cuidado em teclar ESCAPE muitas vezes. Esta tecla é
também usada para terminar uma sessão de edição.
12
2.4 SE VOCÊ TEM UM PROBLEMA
Ocasionalmente algo sai errado. Você pensou que o motor estivesse em modo trapezoidal mas quando
você programa sua velocidade você descobre que esta em modo velocidade. Rapidamente o motor parte
enviando os braços do robô diretamente para o seu copo de café favorito. Ou alguém tem a sua gravata
presa pelas correias. A tecla STOP é designada justamente para estes e outros tipos de emergência. A
tecla STOP para imediatamente todos os motores incluindo as portas auxiliares. A tecla STOP impõe
uma parada de emergência e não permite que o motor desacelere. Como resultado objetos que estejam
sendo transportados poderão se arremessados como acontece com um carro em alta velocidade no qual
o freio é acionado de repente. Por esta razão, STOP deverá ser usado somente em situações onde podem
ocorrer danos a objetos ou pessoas se não for parado rapidamente
Incluso na descrição dos comandos a seguir estão amostras do que o display irá mostrar quando você
pressionar as teclas. Desde que muitos dos comandos são disponíveis em mais de um modo as descrições
a seguir são usadas para reduzir a explicação da função.
2.5.1 EDIT/REPLACE
Pressionando esta tecla quando em modo play permite a você instruir um novo programa ou editar um
programa existente. Pressionando esta tecla ao invés de ENTER quando você tiver terminado em modo
edit irá recolocar o registro atual no arquivo com o comando exato instruído. O cabeçalho do registro não
pode ser recolocado.
Para entrar no modo edit, um “hard home” (posição zero) deve ser executado com sucesso.
Entrando no modo edit, todos os motores em modo trapezoidal irão se mover para a posição zero, isto é,
suas posições 0 são definidas pela rotina “hard home” durante o movimento para a posição de zero o
display irá mostrar:
Uma vez que a posição de zero foi alcançada todas as saídas serão desligadas e a edição pode ser
iniciada.
Para terminar uma sessão de edição pressione a tecla ESCAPE quando o controle não requisitar nenhuma
entrada adicional.
13
2.5.2 RUN/HALT
Pressionando esta tecla executa um programa de controle manual. O programa deverá ter sido editado
antes ou carregado de uma EEPROM ou um computador.
Como no modo edit, um hard home (posição zero) deve ser executado com sucesso.
Entrando no modo run, todos os motores em modo trapezoidal irão se mover para a posição zero, isto é,
suas posições 0 são definidas pela rotina hard home durante o movimento para a posição de zero o display
irá mostrar:
Uma vez que a posição de zero tenha sido alcançada todas as saídas serão desligadas e a execução irá
iniciar. Assim que cada registro é executado seu número de linha e comando básico será mostrado.
Pressionando RUN/HALT neste ponto irá resumir a execução enquanto pressionando a tecla ESCAPE irá
terminar o modo run e o sistema irá entrar no modo play.
Se durante a execução ocorrer um erro, o modo run irá terminar, o sistema irá entrar no modo play e uma
condição de erro será anunciada no campo de função do display. Um erro típico poderá ser se um motor
engripou, um limite de corrente foi excedido, um rótulo de programa fui perdido ou a tecla de emergência foi
pressionada.
A função erase é disponível quando o sistema esta em modo play. Isto é usado para remover da memória
um arquivo de instrução existente no controle manual. ( Isto não irá afetar nenhum arquivo armazenado em
EEPROM).
14
Se você deseja apagar o arquivo pressione YES a tecla com ( SETA ACIMA). Para abortar esta função
pressione NO (SETA ABAIXO ) ou a tecla ESCAPE. Uma vez que você tenha respondido o display irá
mostrar:
Uma vez que o arquivo tenha sido apagado será perdido para sempre a não ser que tenha sido armazenado
em EEPROM ou em um computador ou disco.
Você pode recolocar o registro apagado entrando um novo comando e pressionando a tecla ENTER ou
REPLACE. Pressionando SETA ACIMA ou SETA ABAIXO serão mostrados os registros atuais ou próximos
se eles existirem.
2.5.4 ON INP/SW GO TO
IF THE INPUT (or SWITCH) MATCHES THE SPECIFIED STATE THEN JUMP TO LABEL
*”Se a entrada ( ou chave) coincidir com o estado especificado então vá para o rótulo”
Este comando implementa um atalho condicional para um rótulo especifico. Se a condição existe o atalho
é feito se não existe a execução continua para o próximo registro no arquivo.
Esta função é disponível somente no modo edit. É executada somente no modo run.
Você deve entrar com o número da entrada (ou chave) (01 a 08 ou 09 a 16 ) usando as teclas de dígitos,
seguido do estado (ON/OFF) que você deseja testar usando a tecla on/off e finalmente o rótulo que você
deseja alcançar usando as teclas de dígitos/ setas. A faixa de rótulo válido é de 1 a 99.
Uma seqüência típica de teclas para programar um JUMP TO LABEL 2 IF INPUT 04 IS OFF é o seguinte:
15
O estado desligado (estado a ser alcamçado) é selecionado.
Label 2 é selecionado
Este comando é executado somente durante o modo run. Se um atalho deve ser pego o programa irá pular
para o primeiro rótulo casado do arquivo inicial. Se não puder ser encontrados rótulos casados o modo run
irá terminar e error será mostrado. Rótulos em duplicata não serão checados.
Você deve inserir o rótulo usando as teclas de dígitos ou setas. A faixa válida de rótulo é 1 a 99.
16
Rótulos em duplicata não são checados. Se o programa faz um atalho para um rótulo ele usa o primeiro
rótulo encontrado no inicio do arquivo.
2.5.6 GO TO LABEL
Esta função é disponível somente no modo edit. É executada somente no modo run.
Você deve inserir com o rótulo usando a tecla de dígitos ou setas. A faixa válida de rótulo é 1 a 99.
Este comando é executado somente durante o modo run. Se um atalho deve ser pego o programa irá pular
para o primeiro rótulo casado do arquivo inicial. Se não puder ser encontrados rótulos casados o modo run
irá terminar e error será mostrado. Rótulos em duplicata não serão checados.
Você deve entrar com o número da saída ( 1 a 8 ) usando as teclas de dígitos, seguido do estado (ON/
OFF) que você deseja ajustar usando as teclas on/off. O exemplo seguinte torna a saída 2 off.
17
Estado desligado é selecionado utilizando as teclas Desligar e Seta para Baixo
Este comando implementa uma espera até que o estado atual da entrada (ou chave) selecionada coincida
com o estado especificado.
Você deve entrar com o número da entrada (ou chave) de 01 até 08 ou de 09 até 16 utilizando as teclas de
dígitos, seguido do estado (ligado/desligado) que você quer comparar utilizando as teclas liga/desliga.
Uma seqüência típica para programar uma espera na entrada 02 para ser desligada seria a seguinte:
18
A tecla ENTER é pressionada
O estado desejado não combina com o estado atual e o sistema fica em espera.
Este resultado do display ocorre se uma espera não for requisitada ou se a tecla ESCAPE é
pressionada quando o sistema está esperando por uma combinação como no display anterior.
Se o modelo do robô for 7220 ou XR-4 com controle ativado, os motores de B até F que estão
no modo trapezoidal irão se mover para a última posição de descanso (soft home) definida. Se
o controle estiver desativado, o motor A irá se mover para sua posição de descanso.
Se o modelo do robô for o SCARA com controle ativado, os motores de B até F que estiverem
no modo trapezoidal irão se mover para a última posição de descanso definida. Se o controle
estiver desativado, o motor A irá se mover para sua posição de descanso.
Se o controlador estiver configurado para o modo genérico então todos os motores que estiverem
no modo trapezoidal irão se mover para a posição de descanso.
A posição descanso é definida como a posição em que os motores estão ao ligar, depois que
um hard home é executado ou sempre que a tecla SET SOFT HOME é pressionada, o que
ocorrer por último.
Quando no modo de edição, esta função não é armazenada no programa pendente. Em vez de
um conjunto de kernels PD ou PX seguido de um kernel MC ou MC ser armazenado, a gravação
é parecida com qualquer gravação de movimento do motor. Note que a função GOTO SOFT
HOME não é permitida no sistema de coordenadas XYZ.
19
Ao completar o movimento.
Este comando define a posição atual de todos os motores e suas posições de descanso (soft home). Ao
ligar e após a execução de um hard home, a posição de descanso é definida como zero.
A posição armazenada esta nas coordenadas das junções. Soft home não é determinado no sistema de
coordenadas xyz.
O fato de que o soft home foi ajustado é anunciado no campo de comando central.
No entanto , no modo edit, este comando não é armazenado no arquivo de programa não ira mudar o
numero de linha. Note que isto também significa você não ver por muito tempo o comando central associado
com o número de linha atual.
2.5.11 RELATIVE
Esta função especifica que o próximo motor ou movimento axial será feito RELATIVO a corrente do motor
ou posição axial. Será abortado se qualquer outra função que não seja motor ou chaves axiais forem
usadas ou se a tecla ESCAPE for pressionada. O modo relativo é encerrado também quando a tecla é
pressionada.
O fato de que o modo relativo foi ajustado é anunciado no campo de comando central.
No entanto , no modo edit, este comando não é armazenado no arquivo de programa não ira mudar o
numero de linha. Note que isto também significa você não ver por muito tempo o comando central associado
com o número de linha atual.
Quando uma chave de motor ou eixo é pressionada comando central será PR ao invés de PD ou PY ao
invés de PX para mostrar que o movimento será feito com relação a posição atual dos motores ou eixos.
2.5.12 VELOCITY
Esta é uma chave de função dupla. Se não foi pressionada chave de motor esta função permite a você
mudar a velocidade do sistema. Se uma chave de motor foi pressionada então pressionando esta chave
imediatamente após irá permitir a você mudar a velocidade dos motores selecionados. O motor deve estar
no modo trapezoidal. ( Lembre que uma velocidade de motor é uma função da velocidade do sistema).
Você deve entrar com o valor da velocidade usando as chave de setas. A faixa válida de velocidade tanto
para velocidade do sistema quanto para velocidade do motor é de 0 a 100%. ( Lembre-se que em modo
trapezoidal uma velocidade negativa não é reconhecida).
Note que quando o sistema de velocidade é ajustado, os motores em modo de velocidade irão imediatamente
mudar suas velocidades para combinar com a nova velocidade do sistema.
20
Um exemplo de ajuste de velocidade será mostrado a seguir como um exemplo de ajustar a velocidade de
um motor selecionado.
50% da velocidade do sistema é seleciondo utilizando tanto teclas numéricas como as setas
21
Tecla ENTER pressionada
2.5.13 DELAY
Esta função permite a você entrar com um retardo de 1 a 3000 unidades. Sendo que cada unidade é de 1/
10 segundos isto corresponde a um retardo máximo de 5 minutos. Uma entrada de zero não é aceita
porque você não pode parar o timer durante a execução do programa.
O delay não é executado no modo edit. Durante o modo play o delay pode ser terminado pressionando a
tecla ESCAPE.
Você deve entrar com o delay usando as teclas de dígitos ou as teclas de setas.
Se o sistema esta em modo play o valor ajustado ira iniciar contando ate 0.
2.5.14 OPEN
Abertura da garra
Esta função é disponível quando o sistema é configurado para os tipos de robô 7220, XR-4, ou SCARA e
a garra é disponível.
A seqüência de chaves é:
22
Tecla ENTER é pressionada e efetua a execução
Ao completar o movimento
2.5.15 CLOSE
Fechamento da garra.
Esta função é disponível quando o sistema é configurado para os tipos de robô 7220, XR-4, ou SCARA e a
garra é disponível.
A seqüência de chaves é:
Ao completar o movimento
2.5.16 AUX
Esta função permite a você ajustar ambas as portas auxiliar porta 1 ou auxiliar porta 2 para a mesma
porcentagem da potência e polaridade do motor.
Você deve entrar com o número da porta (1 ou 2) usando as teclas de dígitos seguida da porcentagem da
potência do motor (-100 a 100) usando as teclas de dígitos. Um número negativo é ajustado entrando com
a magnitude de potência do motor desejada e então trocar o sinal pressionando a tecla +/- .
23
Uma vez a porta selecionada o ajuste atual é mostrado.
O exemplo a seguir mostra a porta 2 sendo ajustada para -50% da potência máxima do motor.
AS CHAVES DO MOTOR
As chaves do motor são usadas para mover os motores para novas posição em novas velocidades.
As chaves operam em um destes modos.
Alem disso estas chaves permitem a você ajustar diretamente a velocidade de um motor se o motor esta
em modo trapezoidal. Verifique a Chave VELOCITY para maiores informações.
24
Joint Mode (modo articulação)
No modo joint um motor pode fazer tanto um movimento absoluto como um movimento relativo a sua atual
posição dependendo se o modo relativo foi ajustado ou não usando a chave RELATIVE. Se a chave relative
não foi pressionada imediatamente antes de selecionar um motor então o modo absoluto é usado e o
comando central será o símbolo PD. Da outra forma o comando é o símbolo PR. A discussão a seguir irá
usar o exemplo PD mas o mesmo se aplica a ambos os modos.
Dois tipos de comandos de movimento são implementados no modo joint. Para o robô 7220 ou XR-4,
motores B a F irão ocupar seus próprios registros e o registro será anexado ao comando central MC
(coordenado). Isto é eles irão se mover de modo coordenado quando o programa é executado. A posição
de todos os motores B-F, serão armazenadas se eles todos movidos ou não. Motores G e H ( e A se a
garra esta desativada ) irão ocupar seus próprios registros e o comando central MI (movimento independente)
é anexado. Novamente, a posição de ambos G e H (e A ) serão armazenados mesmo que tenham sido
todos movimentados ou não. Em outras palavras você não pode misturar motores de robô (B a F) com
motores que não sejam do robô.
O mesmo é verdade para o sistema robô SCARA exceto o motor F é também considerado um motor que
não é do robô.
No caso de um robô do tipo GENÉRICO todos os movimentos irão usar o comando central MI.
Para mover um motor é necessário duas chave em seqüência. Primeiro selecione o motor pressionando a
chave do motor correspondente. Segundo, use a tecla SETA ACIMA ou SETA ABAIXO para iniciar o
movimento na direção desejada a velocidade do movimento varia dependendo da ação na tecla. Pressionando
a tecla uma vez e soltando rapidamente irá resultar em mudança de posição de quatro contagens do
encoder.
4 contagens
seta acima
LENTO
seta abaixo
atraso
Uma vez que a velocidade baixa foi iniciada se você soltar o botão e pressionar rapidamente novamente
a velocidade irá aumentar.
4 contagens
seta acima
LENTO
seta abaixo
atraso atraso
Você pode continuar selecionando diferentes motores, movimentando-os até que a posição desejada
seja alcançada.
25
Os displays seguintes mostram um exemplo aonde os motores D e E são movimentados para novas
posições.
Por exemplo somente discutindo, se o tipo de robô era 7220, XR-4, ou SCARA o registro deve ser
anexado com MC caso contrário MI.
26
XYZ MODO
No modo XYZ , motores B a F para o 7220 ou robô XR-4 ou motores B a E para o robô SCARA podem
ser usados para fazer movimentos XYZ. Motores G e H (e F para o robô SCARA e A se a garra esta
desativada ) irá operar como no modo joint .
Como no modo joint os eixos podem fazer tanto um movimento absoluto ou um movimento relativo de suas
posições atuais dependendo se o modo relativo foi ou não ajustado usando a chave RELATIVE. Se a chave
relative não foi pressionada imediatamente antes de ter selecionado um eixo então o modo absoluto é
usado e a indicação do comando central será do tipo PX. Caso contrario o comando central e do tipo PY.
A discussão seguinte irá usar exemplos PX mas o mesmo se aplica a ambos os modos, O comando
central move anexado ao registro quando ENTER é pressionado é MX.
Trabalhando no modo XYZ é algo mais complicado que o modo joint porque informações de eixo devem ser
agora incluídas. Movimento dos motores por si só é idêntico ao do modo joint, mas o display é
consideravelmente diferente.
O display irá mostrar duas partes de informação. A primeira é que o motor foi selecionado para ser
movimentado. Isto é anunciado entre parênteses seguido de “AXIS” no campo de função. A segunda parte
da informação é a posição do eixo selecionado que é mostrada na segunda linha do display. Quando
entramos na primeira vez a função move XYZ a segunda linha do display irá mostrar a posição atual do eixo
X. Para visualizar outros eixos você pressiona a tecla CONFIG. Pressionando várias vezes a tecla CONFIG
irá fazer com que a segunda linha do display mostre em seqüência a posição atual de cada eixo. A
seqüência é X,Y,Z,A então T. X,Y e Z são mostrados em milímetros e A e T são em graus.
Pressionando a tecla SETA ACIMA ou SETA ABAIXO irá afetar o movimento do motor selecionado motor
em modo joint. A segunda linha mostrando o eixo selecionado irá atualizar cada vez que a tecla SETA é
solta.
Isto quer dizer que uma posição de eixo não pode mudar sem que um motor tenha sido movimentado. Um
exemplo é se o robô esta alinhado totalmente para cima, movendo o motor E não terá efeito sobre a
posição do eixo X.
27
Tecla CONFIG é pressionada para selecionar e exibir o eixo Y
O motor E é selecionado
Quando uma tecla de motor é pressionada no qual o modo é velocidade, pressionando a tecle SETA
ACIMA ou SETA ABAIXO irá causar a mudança da velocidade do motor. O motor irá para a nova velocidade
que foi trocada. Pressionando a SETA ACIMA ira causar uma aproximação do seu limite positivo enquanto
pressionando a SETA ABAIXO ira causar uma aproximação do seu limite negativo.
Pressionando uma tecla de seta uma vez e soltando rapidamente irá causar uma mudança de um porcento
em velocidade enquanto segurando a tecla pressionada irá causar a mudança de velocidade par algum
valor de aceleração ajustado de fábrica
Os displays seguintes mostram um exemplo de um motor G com sua velocidade sendo ajustada para
-50% da velocidade do sistema.
28
Tecla do motor G é pressionada. A velocidade atual é de 100% da velocidade do sistema.
1) Mover motores
2) Selecionar menus ou itens de menus quando da configuração do sistema
3) Percorrer um programa quando editando
4) Responder perguntas
5) Ajustar valores
6) Ajustar estados de saídas e entradas
2) Para uma discussão sobre o uso das teclas de setas quando configuramos o sistema verifique na
sessão o capítulo intitulado CONFIG.
3) Quando Editando, as teclas de setas permitem a você andar no programa um registro por vez.
Pressionando a tecla SETA ACIMA irá andar no programa em ordem ascendente enquanto pressionando
a tecla SETA ABAIXO irá andar no programa em ordem descendente. Cada registro é mostrado e executado
com exceção de instruções jump ou go to e cabeçalhos de registro não são executadas.
Se o registro atual é o último registro do arquivo então pressionando a tecla SETA ACIMA o primeiro
registro será mostrado e possivelmente executado. Se o registro atual é o primeiro registro no arquivo
pressionando então a tecla SETA ABAIXO será mostrado o cabeçalho do registro. Isto permite a você
inserir um registro como primeiro registro. O cabeçalho do registro não pode ser apagado ou recolocado.
Pressionando a tecla SETA ACIMA quando o cabeçalho do registro é mostrado o ultimo registro será
mostrado e possívelmente executado.
Como instruções secundárias não são executadas deve-se ter especial atenção no movimento do robô
quando se executa um programa passo a passo. O robô não irá ter os mesmos movimentos que teria
como se estivesse no modo run. Por exemplo, digamos que o os registros seguintes estejam em um
arquivo de controle manual e o registro atual é o primeiro registro listado:
29
SD, 100 Retardo para 10 segundos
LS, 1, 0, 10 Vá para a linha 10 se a chave 1 está desligada.
LP, E. 100 (etc.) MC Mova para o ponto um
GL, 20 Vá para o rótulo 20
SL, 10 Rótulo 10
PD,E,200 (etc.) MC Mova para o ponto dois
SL,20 Rótulo 20
Quando a tecla SETA ACIMA é pressionada o comando LS será mostrado mas não executado. Pressionando
a tecla SETA ACIMA novamente irá fazer com que o robô se mova para o ponto 1 mesmo que a chave 1
esteja ou não.
Do mesmo modo pressionando a tecla SETA ACIMA novamente o comando GL será mostrado e de novo
não executado Pressionando a tecla SETA ACIMA novamente irá fazer com que o robô se mova para o
ponto dois sempre pensando que durante o modo run o comando não teria sido pulado.
Quando se usa a tecla SETA ABAIXO cuidados adicionais deverão ser tomados porque o programa esta
sendo executado de uma maneira contrária. Considere os seguintes registros de arquivo de controle manual:
Se o registro atual é o primeiro registro relacionado então ande através do programa usando a SETA
ACIMA irá fazer com que o robô se mova para o ponto um com uma velocidade do sistema de 100
porcento. Se o registro atual é o último registro relacionado então andando no programa usando SETA
ABAIXO irá fazer o robô mover-se para o mesmo ponto porem com um sistema de velocidade de 10
porcento.
Deve se ter mais considerações quando se usar as entradas e saídas para interligar com equipamentos ou
dispositivos externos. Geralmente, a menos que você esteja certo de qual sistema possui, você deve ter
todos os dispositivos e equipamentos externamente conectados desligados quando estiver editando.
4) Quando o sistema de comando manual precisa de uma questão respondida ele irá perguntar a você
especificamente pressione a tecla sim ou não. Para responder YES pressione a tecla SETA ACIMA e para
responder NO pressione SETA ABAIXO.
5) Valores como rótulos, velocidades ou ajustes PWM podem ser ajustados usando as chave d dígitos ou
podem ser incrementados usado as chaves de setas. A SETA ACIMA irá incrementar os valores enquanto
a SETA ABAIXO irá decrementar os valores.
Todos os valores tem um ajuste mínimo e máximo associado a ele. Por exemplo sistema de velocidade
pode ser ajustado de 0 a 100 porcento. Quando usamos a SETA ACIMA o valor irá aumentar ate 100 então
retornar a 0 e iniciar de lá. Do mesmo modo usando a SETA ABAIXO o valor irá decrescer até que o valor
mínimo seja alcançado então irá pular para o valor máximo ajustado e iniciar decrescendo de lá.
6) Quando o estado de uma saída ou uma entrada precisa ser ajustado pressione a SETA ACIMA para
ajustar o estado ON ou pressione a SETA ABAIXO para ajustar o estado OFF.
Pressionando esta tecla para todos os motores imediatamente incluindo as portas auxiliares. As saídas
não são modificadas
A tecla STOP impõe uma parada de emergência e não permite que o motor desacelere. Como resultado
objetos que estejam sendo transportados poderão se arremessados como acontece com um carro em alta
velocidade no qual o freio é acionado de repente. Por esta razão, STOP deverá ser usado somente em
situações onde podem ocorrer danos a objetos ou pessoas se não for parado rapidamente.
30
Se o sistema esta outro modo que não seja o modo play, o modo irá terminar.
Se um arquivo estiver sendo transferido para um computador a sinalização de final de arquivo será enviada
e a transferencia terminada.
Esta tecla permite a você executar certas funções que não são freqüentes ou configurar o sistema para
uma aplicação particular ou tipo de robô. Alem disso ela permite ao ED-MK4 ser controlado quando em
modo host.
É um menu guia de significados um conjunto de itens são apresentados em que você escolhe um
pressionando a tecla ENTER. O item pode ser uma função ou um menu de funções. Verifique a figura 6-1
que mostra os caminhos de CONFIG que podem se pegos.
A primeira linha do display do controle manual sempre mostra o menu em que você esta atualmente. A
segunda linha do display mostra a função ou menu que você pode selecionar pressionando ENTER.
Para executar uma função ou selecionar um menu de funções pressione ENTER. Para mover de função a
função dentro de um menu pressione a tecla SETA ACIMA ou SETA ABAIXO. Você deixa um menu
pressionando a tecla ESCAPE.
Em alguns casos quando uma função é executada o CONFIG é desativado. Em outros casos você
ultrapassou um nível e continua selecionando funções do menu.
Um exemplo será primeiramente discutido ilustrando como se mover na função CONFIG seguido da descrição
de cada função que pode ser chamada.
O primeiro menu apresentado é o CONFIG SYSTEM menu. O primeiro item apresentado será a função GO
TO HARD HOME. Se a tecla ENTER é pressionada o sistema irá executar um hard home e terminar o
CONFIG. Se ao invés disso a tecla SETA ABAIXO é pressionada, MENU SETTINGS irá aparecer. Se ao
invés a tecla SETA ACIMA é pressionada, o menu TRANSFER MENU irá aparecer. Pressionando ENTER
nesse ponto fará com que TRANSFER MENU seja selecionado e a função LOAD USER irá aparecer. Se
a tecla ENTER é pressionada neste ponto um programa de controle manual será carregado de uma EEPROM.
Se ao invés a tecla SETA ACIMA ou SETA ABAIXO é pressionada a função SAVE USER aparece. Se a
qualquer momento a tecla ESCAPE é pressionada CONFIG é encerrado.
Agora que a operação básica do CONFIG foi explicada segue agora uma descrição detalhada de cada
menu e função. A descrição presume que o ED-MK4 esta no modo de controle manual.
Como previamente mencionado CONFIG SYSTEM é o menu inicial com GO TO HARD HOME como
primeira função apresentada.
Neste menu você pode executar a função GO TO HARD HOME, selecionar o menu TRANSFER MENU ou
selecionar SETTINGS MENU.
Executando a função GO TO HARD HOME irá fazer o ED MK4 zerar o robô atualmente selecionado. Note
que se o tipo de robô atual é GENERIC, nenhum movimento será inserido no motor porém o sistema irá
considerar que um home foi executado com sucesso par propósitos de modo edit e run. O CONFIG irá
terminar quando a tecla ENTER é pressionada.
Selecionando o SETTINGS MENU permite a você mudar um modo de motor, selecione o sistema de
coordenadas no qual o controle irá operar, selecione o tipo de robô que será controlado e ative ou desative
a garra.
31
Qualquer mudança feita nestes ajustes são armazenadas em EEPROM ( com exceção do sistema de
coordenadas XYZ) para que você não tenha que reconfigurar o sistema cada vez que você ligar o ED MK4.
Também, em especial quando você termina o CONFIG quando uma função é executada, você permanece
com o SETTINGS MENU para que você possa continuar a configuração. Você encerra o CONFIG pressionando
a tecla ESCAPE quando o SETTINGS MENU esta ativo.
TRANSFER MENU
A primeira função apresentada é LOAD USER. Pressionando ENTER neste ponto irá fazer com que o
programa do controle manual armazenado na EEPROM seja transferido para RAM para edição ou execução.
Durante a transferencia a segunda linha do display irá mostrar LOADING. Pressionando uma das teclas de
setas estará presente a função SAVE USER. Pressionando ENTER neste ponto irá fazer com que o
programa de controle manualmente a RAM, se existir, seja transferido e armazenado na EEPROM. Se não
existir programa a mensagem NO PROGRAM irá aparecer na primeira linha do display. Durante a
transferencia a segunda linha do display irá mostrar SAVING. Uma vez que a transferencia seja completada
o CONFIG é encerrado.
Quando transferimos para a EEPROM, é possível que o programa de controle manual seja muito grande
para o espaço disponível. Quando isto ocorre, a mensagem EEPROM FULL irá aparecer na segunda linha
do display. A EEPROM possui aproximadamente 7.5 K de memória. Isto é suficiente para muitas aplicações.
Dependendo dos tipos de comando feitos no programa, aproximadamente 100 pontos podem ser
armazenados em mais de 700 linhas.
SETTINGS MENU
Como mencionado anteriormente, este menu permite a você mudar um modo de motor, selecione o sistema
de coordenadas no qual o controle manual irá operar, selecione o tipo de robô que será controlado e ative
ou desative a garra.
Mesmo que um menu seja selecionado com o SETTINGS MENU a configuração atual irá aparecer no
display. Pressionando ENTER não irá portanto efetuar mudanças salvo se a função selecionada foi
modificada.
Assumindo que a garra esta desativada. Selecionando o GRIP MENU irá fazer com que a função DISABLE
apareça. Pressionando ENTER não haverá nenhum efeito senão o de retornar você ao SETTINGS MENU
porque a condição atual da garra é desativada. Se ao contrario as teclas de setas tivessem sido usadas
para selecionar a função ENABLE, e então a tecla ENTER fosse pressionada o estado da garra teria
mudado. Novamente você teria retornado ao SETTINGS MENU para continuar a configuração.
Da mesma maneira, quando TYPE MENU é selecionado o tipo de robô atual irá aparecer na segunda linha
do display. Você esta apto a selecionar os tipos de robô XR, SCARA, ou GENERIC.
Os mesmos passos se aplicam para COORD MENU onde você pode escolher JOINT ou XYZ como sistema
de coordenadas. Um hard home deve ser completado com sucesso antes que XYZ seja escolhido. Uma
vez que XYZ é escolhido ele não retornará ao religar devido a necessidade de um hard home com sucesso.
MODE MENU
Para modificar um modo de motor você deve primeiramente selecionar o motor que você deseja modificar.
Neste caso não existe default de motor e MOTOR A será a primeira função disponível. Uma vez que um
motor seja selecionado o modo do motor atual correspondente irá aparecer.
32
MOTOR MENU
Como já mencionado o modo atual do motor selecionado irá aparecer na segunda linha do display. Se você
quer ajustar o modo do motor para TRAPEZOIDAL, VELOCITY ou IDLE. OPEN LOOP não é aceito. Ao
invés de retornar ao SETTINGS MENU quando ESCAPE é pressionado ou um novo modo é selecionado
você retornará ao MODE MENU então você pode selecionar outros motores os quais você deseja mudar.
Presumindo que um computador esta controlando o sistema e portanto o controle manual esta no modo
host. Se o computador é desligado sem passar o controle de volta, o controle manual não irá reconhecer
isto e irá permanecer em modo host.
Portanto um reconhecimento deve ser feito para o ED-MK4 ter o controle de volta sem desligar. Simplesmente
pressione ENTER, o controle será transferido para o controle manual. Se você se enganou e não deseja
transferir o controle, pressione simplesmente ESCAPE.
33
NOTAS
34
CAPÍTULO 3
3.1 INTRODUÇÃO
Os exemplos seguintes mostram como o controle manual pode ser usado para programar o controlador
ED-MK4 e um braço de robô conectado. Os exemplos irão usar o braço robô 7220 porem o mesmo
conceito se aplica para o XR-4, SCARA ou qualquer acessório.
O equipamento necessário é o controlador ED-MK4 com controle manual e o braço robô 7220 ou XR-4.
Certifique-se de que toda a a energia esta desligada e conecte todos os equipamentos de acordo com os
procedimentos descritos no capítulo dois.
Uma vez que todos os equipamentos estejam conectados, ligue o controlador ED-MK4. Se o controlador
foi previamente configurado para 7220, XR-4 ou SCARA com porta A do motor configurada em modo
trapezoidal e a garra ativada, a garra irá fechar e então abrir. O LCD deverá mostrar PLAY no canto superior
direito.
Como enviado de fábrica, o controlador esta configurado para operar com o robô XR-3 ou XR-4, modo
articulação, garra ativada e todos os motores em modo trapezoidal.
3.2 SETUP
Se você não esta certo de qual configuração esta no sistema, agora é a vez de checar e modifica-lo se
necessário. A seguir será apresentado a seqüência de chaves passo a passo para configurar o sistema
para os exemplos apresentados.
Nos iremos então solicitar um procedimento de hard home (posição zero) para iniciar o braço robô.
35
UP ARROW SETTINGS CFG
TYPE MENU
Se o tipo atual de robô não é XR-3 ou XR-4, use as teclas de setas para selecionar XR-3 / XR-4 então
pressione ENTER. Se o tipo de robô atual já é XR-3 / XR-4 então pressione ESCAPE. Se o motor da garra
esta em modo trapezoidal e ativado a garra irá fechar e então abrir.
SETTINGS CFG
TYPE MENU
Se o modo atual do motor não é TRAPEZOIDAL então pressione também a tecla de Seta ate que
TRAPEZOIDAL seja selecionado e pressione ENTER. Caso contrario pressione ESCAPE.
2 MODE CFG
MOTOR A MENU
Repita os passos de 1 a 3 para motores de B a F. Para motores G e H selecione o modo IDLE durante o
passo 2 desde que nada esteja conectado nestas portas.
Ativando a Garra
36
De outra forma se o display mostra DISABLED, pressione também as teclas de seta para selecionar
ENABLE e então pressione ENTER. Se você tinha ativado a garra ela irá fechar e então abrir.
SETTINGS CFG
GRIP MENU
Se o sistema de coordenada atual é JOINT então pressione ESCAPE. Caso contrario use as teclas de
setas para selecionar JOINT então pressione ENTER.
SETTINGS CFG
COORD MENU
ESCAPE PLAY
Neste ponto todas as modificações que você tenha feito deverão ter sido salvas na EEPROM. Se você
desligar o controlador você não precisara reconfigurar o sistema salvo se você tiver mudado o equipamento
como para um braço SCARA, adicionado acessórios ou deseja usar sistema de coordenadas XYZ para
programação do controle manual.
ENTER PLAY
HARD HOME
Este display irá permanecer ate que o hard home tenha completado e execução.
Em Operação PLAY
3.3 JUMPS
As instruções de JUMP são de dois tipos: condicional e incondicional. O primeiro exemplo irá mostrar um
jump incondicional onde uma saída é desligada e ligada continuamente. O segundo exemplo irá mostrar o
mesmo programa porem o programa irá terminar se a chave esta desligada.
Esteja certo que você esta no modo PLAY antes de iniciar. Se esta em modo EDIT simplesmente pressione
ESCAPE. Se o sistema esta em modo RUN, primeiro pressione HALT seguido de ESCAPE.
Pressione a tecla EDIT para iniciar o modo EDIT. Se a mensagem de erro NO-HARD é mostrada então um
hard home deve ser executado. (Verifique SETUP descrito acima.) O robô irá retornar para sua posição
zero se ele tiver sido movido antes de executar um hard home.
37
Se o display mostra EDIT READY então um programa já existe. Pressione ESCAPE para deixar EDIT
então pressione ERASE. Responda “yes” para remover o arquivo existente então pressione EDIT novamente.
O programa que desejamos criar é designado a ligar e desligar a saída continuamente. Isto requer uma
instrução de jump
Que faz com que a instrução de controle possa ser repetida. Para usar uma instrução de jump um rótulo
dizendo aonde o sistema deve ir deve ser especificado.
Lembre-se de que todas as saídas são desligadas quando o modo EDIT é iniciado, evitando-nos o problema
de inicializá-las.
O programa completo será mostrado a seguir pela seqüência de chaves usada para cria-lo.
Uma vez que o programa tenha sido introduzido, pressione ESCAPE para deixar o modo EDIT. Pressionando
RUN irá executar o programa e você poderá ver o led associado a saída 1 piscando ligado e desligado.
Para terminar o programa pressione HALT seguido de ESCAPE. Se ao invés de ESCAPE você pressionar
Run, o programa irá continuar a execução. STOP também irá terminar o programa porém é usualmente
reservado para uso em emergência.
O segundo exemplo é similar ao primeiro porém o termino do programa irá depender de um ajuste de
chave. Isto é implementado usando uma instrução de jump condicional. Se a condição é reconhecida, o
jump é feito. Se a condição não é reconhecida, a execução continua para a próxima instrução. Se não
existe próxima instrução o programa irá terminar.
Neste exemplo uma instrução de jump incondicional foi substituída por um jump condicional. Se a chave
esta ligada, o programa irá continuar a execução. Se a chave esta desligada, a execução irá terminar
desde que não existam mais instruções.
38
Nos podemos inserir este programa como antes, após apagar o anterior, ou nos podemos modificar o
programa existente.
Para modificar o programa inicie o modo EDIT pressionando a tecla EDIT. Use a tecla SETA ACIMA ou
SETA ABAIXO para percorrer os passos do programa ate que a instrução jump na linha quatro seja alcançada.
Lembre-se de que muitas instruções são executadas quando percorremos o programa passo a passo.
Instruções de jump não.
Existem três métodos para modificar o programa. Nos podemos deletar a linha atual e então inserir a nova
instrução ou nos podemos modificar a linha atual ou, finalmente, nos podemos estar na linha anterior a
linha em questão, inserir a nova instrução, pular para a instrução antiga e apaga-la. Obviamente, modificar
a linha é a melhor opção.
Pressione ESCAPE para deixar o modo EDIT. Esteja certo de que a chave 12 esta ligada então pressione
RUN. O programa irá continuar executando ate que a chave 12 seja desligada. Novamente, se você desejar,
você pode terminar o programa pressionando HALT seguido de ESCAPE.
Criar movimentos envolve selecionar o motor que você deseja mover e pressionar SETA ACIMA ou SETA
ABAIXO para efetuar movimento. Assumindo que você esta em modo edit, pressionando ENTER irá então
armazenar o novo ponto na memória.
Com algumas limitações você pode selecionar e mover diferentes motores em qualquer ordem e a qualquer
momento antes de pressionar a tecla ENTER. Verifique a sessão “Chaves de Motor “no capítulo 6, “O
ajuste de Comando do Controle Manual”, para detalhes específicos.
“Embora não seja geralmente usado, você pode misturar movimentos de robô articulação e XYZ usando o
controle manual. Para misturar movimentos articulação e XYZ de qualquer forma requer que você deixe o
modo edit, mude o sistema de coordenadas através da tecla CONFIG e reentre no modo edit. Porque o
modo edit reentrando, o robô retorna para a posição hard home e você terá que andar através do programa
para retornar ao ponto em que você estava. Tenha em mente também que reentrando no modo edit irá
causar o reset de qualquer saída previamente programada.”
39
CAPÍTULO 4
ENTRADA E SAÍDA
4.1 INTRODUÇÃO
O painel frontal do ED-MK4 inclui oito entradas, oito saídas e oito chaves que juntos a um ajuste de
comando abrangente fornece um sistema de controle de I/O flexível e expansivo. As entradas e saídas
podem ser interligadas com inúmeros I/O de controladores e sensores industriais. Os comandos incluem
bit de leitura e escrita, porta de leitura e escrita e de comutação de saída. Incluso no painel existe um
conector que fornece aproximadamente +12 volts e até 3 amp de corrente para alimentar os I/O de
controladores e sensores externos.
Ambas entradas e saídas são opticamente isoladas do resto do sistema e são de corrente limitada. Isto
proporciona proteção para o funcionamento interno do controlador contra ruídos elétricos e em caso do
valor máximo permitido de tensão e corrente ser excedido.
O estado atual de cada entrada e saída é anunciado por um LED correspondente. Se o LED esta aceso a
entrada ou saída correspondente esta ligada, isto é, circula corrente. Se o LED esta apagado então a
entrada ou saída correspondente esta desligada.
As oito chaves podem ser usadas como oito entradas adicionais ou podem ser usadas para simular as
entradas normais permitindo a você desenvolver programas sem exigir de você instalar o circuito externo
normalmente requerido quando interligamos em outro equipamento ou dispositivo.
FIGURA 4.1
FIGURA 4.2
40
4.2 ENTRADA DE APLICAÇÕES
A figura 4.3 mostra dois exemplos de uma entrada controlada por uma chave e um relê respectivamente. O
sinal de +12 volts e terra vem do conector de força do I/O no painel frontal do ED-MK4. No caso do relê, a
bobina será controlada por algum dispositivo externo e é eletricamente isolada do ED-MK4. ( Normalmente
um diodo será colocado em paralelo com a bobina para prevenir picos de corrente quando o campo magnético
da bobina é desligado.) O resistor de 1K ohm é usado como um limitador de corrente, de outra forma
quando a chave é fechada ou o relê é energizado um curto quase direto existirá entre o +12 volts e o terra.
Sendo que a entrada aparece como um diodo a corrente permitida a fluir através da entrada é
aproximadamente (12-.7) / 1k ou 11.3 mA que é suficiente para acionar o transistor do opto acoplador.
FIGURA 4.3
A figura 4.4 é um exemplo mostrando um dispositivo externo que é eletricamente conectado ao painel
frontal do ED-MK4.
Para estas aplicações o terminal terra do conector de força do I/O deve ser conectado no dispositivo
externo.
O 7407 é um inversor coletor aberto. Quando a entrada do inversor esta alta a saída é aterrada permitindo
que a corrente flua através da entrada do ED-MK4 tornando ela e o LED correspondente ligados. Se a
entrada do inversor está baixa a saída está desligada não flui corrente e a entrada do ED-MK4 está
desligada
FIGURA 4.4
41
Não é incomum para sensores fornecer uma saída analógica ao invés de um simples estado de ligado ou
desligado. A figura 4.5 apresenta um exemplo usando um conversor A/D permitindo ao ED-MK4 usar estes
sensores.
Buffer
74LS240 Conversor
Entradas A/D
ou
74LS244
Veja Ampliação
Ampliação
Alimentação
E/S Entrada
FIGURA 4.5
Infelizmente para se obter uma resolução decente todas as oito entradas precisarão ser usadas.
Normalmente em uma aplicação que requeira um conversor A/D, entradas adicionais são necessárias. De
fato, você pode encontrar aplicações mesmo sem conversores A/D onde mais de oito entradas são
necessárias. As portas de entrada do ED-MK4 podem ser expandidas multiplexando as entradas requeridas
e usando as saídas como um seletor de endereço. A Figura 4.6 mostra este exemplo.
Selecione
Multiplexador 8 Entradas
Entradas
2:1
4 Entradas
Alimentação Livres
E/S
FIGURA 4.6
Note como a saída é configurada. Entradas TTL precisam de uma tensão muito baixa para reconhecer
como uma entrada baixa e uma tensão de 2.5 volts ou mais para reconhecer como uma entrada alta. As
saídas do ED-MK4, quando ligadas e passando corrente, tem uma pequena queda de tensão entre seus
terminais. Se as entradas inversoras estão amarradas em nível alto através de um resistor de polarização
positiva e uma saída do ED-MK4 usada para curto circuitar a entrada para terra, a entrada de tensão
resultante pode não ser baixa o suficiente para ser reconhecida.
42
.Usando um resistor de polarização de terra garantindo uma tensão baixa e tornando a saída do ED-MK4
ligada ira causar uma tensão alta válida a ser colocada através do resistor. Note que isto muda o sentido ou
lógica das saídas do ED-MK4. Isto é, com a saída do ED-MK4 desligada, a saída do inversor será alta. Se
um resistor de polarização positiva foi usado, a saída do inversor devera estar baixa.
A figura 4.7 mostra uma saída controlando uma entrada. Novamente um resistor é usado para limitar a
corrente e o conector de alimentação do I/O fornece o sinal +12 volts e terra. Quando a saída esta alta a
entrada estará ligada e ambos os LEDs correspondentes estarão acesos.
SAÍDA ENTRADA
FIGURA 4.7
Se uma aplicação necessita de uma completa isolação elétrica então um dos dois exemplos a seguir
mostrados na figura 4.8 podem ser usados.
SAÍDA
SAÍDA Relé
Isolador
Óptico
FIGURA 4.8
Ocasionalmente você pode encontrar uma aplicação requerendo mais saídas do que as disponíveis. A
figura 4.9 mostra uma configuração simples para expandir o número de saídas.
Assumindo que o sinal de latch enable esta ativo na transição de alto para baixo. Isto é, as entradas do
latch tornam-se saídas quando o sinal do latch enable muda de terra para 5 volts. Assumindo também que
as saídas são inativas quando em nível alto. Para inicializar o sistema você deverá ajustar as saídas
correspondentes as entradas dos latches ligados. Então para cada sinal de latch enable você irá desligar
a saída correspondente tornando-a então ligada. Isto causa um sinal de latch enable baixo tornado dessa
forma todas as saídas finais como desligadas. ( Lembre a discussão acima sobre saídas e entradas TTL
no exemplo expansão de entrada).
43
Para ligar, por exemplo, a saída superior do banco superior, você deve ajustar a saída correspondente do
ED-MK4 em nível alto e garantir que as outras três saídas estavam no mesmo estado que estavam do
último latch. Você poder então desligar e ligar o sinal de latch correspondente. Note que após a inicialização,
ao invés de ligar e desligar o sinal de latch da saída, você pode usar o comando to toggle (chavear) na
saída.
1 saída livre
Saídas
Ativar
Latch
Latch
12 saídas
4bits
Ativar
Latch
Latch
Alimentação
4bits
de E/S
Ativar
Latch
Latch
4bits
FIGURA 4.9
Quando realizamos experiências algumas vezes surge a necessidade de uma alimentação de +5 volts.
Alguns dos exemplos acima usaram esta alimentação. O circuito a seguir é apresentado para sua facilidade.
Ele é capas de fornecer até 1 amp Em + 5 volts e pode ser usado em paralelo com a fonte de +12 volts
necessária para sua aplicação. Naturalmente a corrente disponível na fonte de +12 volts irá diminuir.
44
Saída
Alimentação Regulador
E/S de Tensão
FIGURA 4.10
45
ANOTAÇÕES
46
Capítulo 5
O Robô Talk possui 10 comandos em seu menu principal que o usuário controla a operação do Robô Talk
e os programas aplicativos os comandos são.
Comandos Descrição
Todos os comandos principais podem ser executados tanto digitando o nome do comando inteiro ou sua
primeira letra.
47
5.1 CONFIG Ajustes do Robô Talk
O comando CONFIG permite ao usuário ajustar o Robô Talk em vários modos de operação e armazenar
estes parâmetros em um arquivo no disquete para que o Robô Talk pegue este default toda vez que tenha
sido reiniciado. O CONFIG da ao usuário controle sobre:
Digitando CONFIG através do menu principal irá gerar as seguintes telas mostrando os parâmetros de
CONFIG e seus ajustes atuais.
1. Mode : XR
2. Gripper: motor
3. Offline
4. Gripper count to full closure: 60
5. Communication port (1-2): 1
6. XYZ Parameters......
7. Controller Mode ED-MK4
8. I/O Module: Offline
Change ? (y/n): -
Respondendo NO ( ou qualquer resposta que não seja yes) para o prompt change irá deixar os ajustes
atuais como o mostrado e o Robô Talk irá retornar ao menu principal. Se for respondido YES, o Robô Talk
irá perguntar ao usuário qual dos oito parâmetros a modificação deve ser feita. Quando o numero da linha
desejada correspondente ao parâmetro a ser mudado é introduzido, O Robô Talk irá mostrar o nome do
parâmetro e as opções disponíveis. Quando o ajuste desejado é introduzido, o novo ajuste será armazenado
no disquete atual no arquivo de configuração (chamado CONFIG.RT ) que será lido cada vez que o Robô
Talk é iniciado. O menu de configuração irá reaparecer junto com os novos ajuste e o usuário é novamente
questionado se uma mudança deve ser feita.
O MODO parâmetros coloca o Robô Talk em um dos dois modos XR ou SCARA. A única diferença entre
estes dois modos é a implementação da rotina HARDHOME. E importante mudar o modo para casar o
robô atualmente conectado ao controlador do robô antes de tentar iniciar o robô.
O parâmetro dois é usado para ajustar o modo da Garra. O Robô Talk permite ao usuário uma ação direta
de OPEN e CLOSE na porta A do motor (que é uma configuração padrão) ou nas portas AUX e OUTPUT I/
O. No modo motor o sistema deve ter o motor padrão da garra conectado na porta A. Os comandos OPEN
e CLOSE irão ativar a porta do motor A e abrir e fechar a garra. Se uma garra que não seja padrão como um
fim de curso a vácuo ou magnético esta sendo usado, configure o Robô Talk para um dos dois modos AUX
ou OUTPUT. No modo AUX, um comando CLOSE irá ligar a porta um do motor auxiliar; um comando
OPEN irá desligar a porta aux. Quando configurado para o modo OUTPUT, as respostas para os comandos
OPEN e CLOSE são os mesmos como no modo AUX exceto que o nível de saída da porta TTL um será
ativado ao invés da porta AUX. Precauções devem ser tomadas no uso dos modos AUX e OUTPUT visto
que outros comandos alem de OPEN e CLOSE podem controlar as portas AUX 1 e OUTPUT 1.
O terceiro parâmetro direciona o Robô Talk a entrar no modo ONLINE ou OFFLINE. No modo ONLINE, o
controlador do robô e um robô devem ser conectados no computador e o Robo Talk irá mandar todos os
comandos relacionados para o controlador em tempo real. Esta é a configuração padrão. O modo OFFLINE
permite ao usuário criar programas e rodar programas não relacionados com o Robo Talk sem a necessidade
de ter um controlador de robô e um robô conectado ao computador. Este modo é especialmente útil
quando estudamos Robo Talk e programação de robótica e os recursos de robótica não são disponíveis.
O quarto parâmetro controla a quantidade de movimento para abrir totalmente a garra usada. O contagem
1024 que esta presente de fábrica é para a garra padrão que vem com o robô 7220 e não precisa ser
mudada salvo quando uma garra que não seja padrão é usada.
48
Quando o Robo Talk é configurado para o controlador ED-MK4, muda o valor para 240. (Ao selecionar ED-
MK3 ou ED-MK4, como descrito acima, este parâmetro automaticamente muda.) Este parâmetro pode ser
usado para restringir a quantidade de abertura da garra ajustando o parâmetro para um valor menor que o
original. O Robo Talk implementa uma simulação de uma garra pneumática e nela a garra sempre tenta
fechar totalmente. Na inicialização do robô, a garra deve ser permitida a fechar totalmente então a partir
dessa posição a garra é aberta pela quantidade especificada pelo quarto parâmetro.
O quinto parâmetro é usado para especificar qual porta de comunicação esta conectada no controlador do
robô. Muitas placas seriais são configuradas como COM 1 quando vem do fabricante.
O sexto parâmetro é diferente das seleções anteriores neste ele chama uma tela separada que é usada
para especificar constantes usadas em movimentos de coordenadas cartesianas. Verifique o capítulo 8
para mais informações a respeito desta seleção.
O sétimo parâmetro é usado para configurar o Robô Talk para ambos os controladores ED-MK3 ou ED-
MK4. Esta presente de fábrica para operação do ED-MK4. Quando mudar este parâmetro você deve
verificar a mudança de parâmetro de fechamento da garra ( número 5). Se você deseja um fechamento de
garra diferente do default você deve alterar o parâmetro de fechamento após mudar os parâmetros do
controlador. Nota: Programas feitos usando um ED-MK3 não são necessariamente compatíveis
com um ED-MK4 e vice e versa. O ED-MK4 aumenta a resolução do encoder do robô por um fator de
quatro. Como resultado programas escritos para um ED-MK3 e rodados em um ED-MK4 irá fazer com que
o motor se mova muito mais. Similarmente programas escritos para um ED-MK3 e rodado em um ED-MK4
irá fazer com que motor não se desloque o suficiente. Alem disso, alguns comandos não são transportados
entre sistemas e irá resultar em erros de sintaxe ou não reconhecimento de mensagens de comando.
O oitavo parâmetro permite que a comunicação seja estabelecida com o módulo de Entrada/Saída. Se
você não tem o módulo I/O, ou se ele não está conectado, este parâmetro irá permanecer OFFLINE
(desconectado). Informações adicionais estão disponíveis no Manual do Módulo de I/O que é embalado
junto com o Modulo I/O.
O comando DO coloca o robô no modo de execução direta onde comandos individuais podem ser executados
sem estar inseridos no contesto de um programa de aplicação. A execução direta é útil quando verificamos
o funcionamento de um novo sistema onde os efeitos dos ajuste de várias entradas e saídas podem ser
avaliados. Alem disso, o robô pode ser movimentado com os comandos MOVE e MOVE TO, permitindo ao
usuário estudar os efeitos dos vários caminhos entre os pontos finais.
Uma vez que o modo DO foi introduzido o Robo Talk irá mostrar
:
Os dois pontos são o prompt do modo DO. O Robo Talk irá permanecer no modo DO até que um Q
<return> seja digitado retornando o controle novamente para o menu principal.
Exemplo
DO<return>
: Type “This is the DO mode”
This is the DO mode
:Q
49
5.4 FILES Mostra o diretório do disco
O comando FILES lista o conteúdo do disquete atual. Somente arquivos do programa Robo Talk serão
mostrados (arquivos com a extensão RT) não todos os arquivos. FILES é útil para determinar qual nome de
programa deve ser usado para que um programa possa ser salvo cujo nome já não exista.
LOAD [ <filename>[.ext]>]
Onde <filename.ext> é o nome do arquivo que está sendo carregado do disquete no computador. O nome
do arquivo deve ser de acordo com o software que esta sendo usado com o Robo Talk. Somente extensões
.RT e .DAT, referentes ao arquivo de programa e posição respectivamente, são permitidas.
enter filename:
Se uma extensão é determinada, somente aquele arquivo será carregado; no entanto se não é dada a
extensão, ambos o programa e seu arquivo de posição serão carregados.
A flexibilidade da sintaxe LOAD filename, permite ao usuário criar um programa e usar inúmeros arquivos
de localização; isto permite também que um arquivo de localização ser usado com inúmeros programas
aplicativos.
Exemplo
Suponha que um programa chamado CREATE é para ser usado para estudar um sistema de operação
paletizado e os pontos para este experimento em particular esta localizado em um arquivo chamado
CASE1. O comando de LOAD apropriado será
LOAD CRATE.RT
LOAD CASE1.DAT
Se um nome de arquivo que é especificado no comando LOAD não existe no disquete atual. O Robo Talk
irá responder com : Cannot open program file ou Cannot open location file.
Para sair do ambiente do Robo Talk e retornar ao nível DOS do computador digite QUIT.
Quando QUIT é executado, O Robo Talk irá perguntar ao usuário se isto é o que ele deseja; digitando YES
para a pergunta “Return to system?” Irá completar o retorno ao nível DOS, o sistema de controle manual irá
sair também do modo host. Quando o controlador ED-MK3 é usado o display do controle irá mudar de H
para P significando modo play. Para o ED-MK4 irá mudar de HOST para PLAY.
O comando RUN é usado para executar um programa d Robo Talk que foi criado ou carregado de um
disquete. O formato geral de um comando RUN é
RUN [<n>]
50
Onde <n> é uma constante inteira opcional, com valor máximo de 32.767, que especifica o numero de
vezes que o programa será executado. Se <n> for omitido, o programa irá executar uma vez. Se <n > for
ajustado para -1 (ou qualquer valor negativo), o Robo Talk irá executar o programa 32.767 vezes ou ate que
a tecla A (aborto) seja pressionada
Exemplo
Suponha que o programa atual ë para ser executado 5 vezes; o comando RUN apropriado é
RUN 5
Nota: Pressionando a barra de espaço irá parar temporariamente a execução até que seja pressionada
novamente. Durante esse período o A (aborto) e T (trace on/off) não estão ativas
Em muitos casos, um programa que foi escrito será armazenado em um disquete para uso futuro. O
comando SAVE permite ao usuário salvar o programa e torná-lo então disponível para futura execução.
SAVE [<filename[.ext]>]
Onde <filename.ext.> é o nome do arquivo que é para ser salvo no disquete. O nome do arquivo deve estar
de acordo com o software DOS que esta sendo usado com Robo Talk. Somente extensões de .RT e .DAT,
referentes ao programa e extensão de arquivo respectivamente são permitidas.
Enter filename:
Se é dada uma extensão, somente aquele arquivo será salvo; no entanto se não é dada uma extensão
ambos o programa e sua localização ou arquivo de posição serão salvos.
A flexibilidade da sintaxe SAVE filename, permite ao usuário criar um programa e usar inúmeros arquivos
de localização; isso também permite que uma localização de arquivo seja usada com inúmeros programas
aplicativos.
Exemplo
Suponha que um programa chamado CREATE é para ser usado para estudar um sistema de operação
paletizado e os pontos para este experimento em particular será salvo em um arquivo chamado CASE1. O
comando de SAVE apropriado será
SAVE CREATE. RT
SAVE CREATE1.DATE
Se um nome de arquivo, que é especificado no comando SAVE, é ilegal, isto é não tem .RT ou DAT como
uma extensão. O Robo Talk irá responder com
Invalid filename.
O comando TEACH é usado para definir uma localização de robô e determinar um nome a ela. A diferença
entre o uso do comando TEACH através do menu principal e o comando TEACH no editor é que o comando
editor também insere um comando MOVEP no programa a ser editado. O comando TEACH pode ser
usado para criar um grupo de variáveis de posição independente do uso delas em um programa; portanto
um numero de pontos pode ser assinalados antes da criação do programa.
51
O formato geral do comando TEACH é
Onde <point name> é o nome a ser designado para o ponto que foi definido; <point name> pode ter ate
oito caracteres.
Quando o comando TEACH .e executado, o computador passa o controle para o Controle Manual e o
usuário pode mover o robô para a localização desejada. Com o acionamento da tecla ENTER no controle
manual, o Robo Talk irá armazenar o ponto e designar a ele o nome especificado. Pontos adicionais podem
ser introduzidos com o determinador de nome de pontos do Robo Talk para cada ponto que são os mesmos
que o nome especificado porem com um anexado ascendente. Por exemplo, se os seguinte comando foi
introduzido.
TEACH box
O primeiro ponto definido será determinado o nome box e o próximo será designado o ponto box1, etc.
O Robo Talk não armazena o status da garra como uma parte de um ponto de localização, de qualquer
forma as chaves da garra funcionam através do controle manual quando definindo um ponto. Isto é útil
quando se aproxima o ponto de contato, onde o tamanho do objeto pode ser determinado, com o propósito
de agarrar, antes de definir um ponto.
Para terminar uma seção de instrução pressione a tecla END para o ED-MK3 ou ESCAPE para o ED-MK4.
Você pode terminar também pressionando a tecla RETURN no teclado. No entanto quando se usa o
teclado do ED-MK4 o RETURN pode ser usado somente imediatamente após um ENTER ou antes de uma
seleção de motor.
End.
52
Capítulo 6
O Editor
O editor do Robo Talk é realmente dois editores combinados em um. O primeiro é o editor de texto muito
parecido com o próprio BASIC. O segundo é o editor de movimento do robô que é usado para instruir e
modificar movimentos de robô usando o controle manual.
Geralmente falando, o editor possui três modos de operação : Insert, Teach, e Command. Quando no modo
Insert, tudo que você digita é inserido no computador ate que você digite um control Z ou ESC no início de
uma nova linha. No modo Teach, o controle manual se torna ativo e você pode posicionar o robô e definir
uma seqüência de movimentos. No modo Command, o editor esta esperando para aceitar um instrução.
Instruções estas obtidas listando e imprimindo seu programa para modificar uma linha de seu programa.
De fato, ambos o modo Insert e o modo Teach são alcançados pela saída do próprio comando do modo
Command. Abaixo esta uma lista dos comandos do editor.
TABELA 6.1
Os Comandos do Editor
Em conjunto com o Controle Manual você pode também usar o editor para criar e modificar pontos de
localização. Um ponto é uma localização especifica do robô definida pelo número de passos de encoder
que cada motor foi movimentado a partir da posição hard home. Abaixo esta uma lista de comandos de
movimento do editor.
53
Comando Função
TABELA 6.2
Comandos de Movimento do Editor
Todos os comandos exceto LISTL e PRINTL podem ser obtidos também digitando a letra maiúscula de
cada comando, ou a palavra total. Todos os comandos que precisem de um parâmetro de numero de
linha devem ter um espaço entre o comando e o numero de linha. O diagrama abaixo mostra a
estrutura para o editor.
Command mode
TABELA 6.3
Estrutura do comando do editor
Você pode perceber sempre que esta no modo comando porque o editor mostra a mensagem “Editor
Ready” na sua tela. Isto significa que você pode dar a ele um comando. Quando você esta em modo insert,
você irá ver sucessivos números de linhas.
6.1 APPEND
O comando Append instrui o editor a ir para o final do seu programa e no modo insert. Assim que você
inserir um texto, você estará adicionando nova linha no final do seu programa.
Exemplos
Para reiniciar a edição de novas linhas após a linha 3, você deve digitar
54
A <return>
Você irá ver imediatamente o numero de linha 4 e o cursor estará posicionado dois espaços a direita dele.
Neste ponto, você está no modo insert e pode começar a entrar com o novo texto.
4 EM NOW WAITFOR 6
5 ^Z
1 WAITFOR 3
2 MOVE 0, 0, 10, 143, 33,146
3 IFSIG 4 THEN MOVEP P23
4 EM NOW WAITFOR 6
6.2 DELETE
Delete remove as linhas especificadas de um programa.
Isto irá apagar as linhas iniciando com o número da primeira linha ate o número da ultima linha e fás da
primeira linha a linha atual. Se você apagar linhas no meio de seu programa, as linhas abaixo das que
foram apagadas irão se mover para cima preenchendo o espaço deixado. Um espaço deve separar o
comando e o numero da linha
Exemplos
1 SETI A=1
2 CLS
3 TYPE “PASSAR #:”;
4 TYPE A
Após Digitar
D 2<return>
1 SETI A=1
2 TYPE “PASSAR #:”;
3 TYPE
Após digitar
D 2 3 <return>
1 SETI A=1
55
6.3 EDIT
O comando Edit é usado para modificar uma simples linha de programa. Por exemplo, se você cometeu
um erro de digitação e descobriu isto após ter acionado o <return>, você deverá usar o Edit para corrigir o
problema.
Onde <LINE> é o número de linha que você deseja editar. Um espaço deve separar o comando e o número
da linha. Após você ter digitado o comando, você irá ver a linha que você deseja modificar na tela e seu
cursor estará posicionado diretamente abaixo dela, abaixo do primeiro caractere. Neste ponto as seguintes
teclas de edit estarão ativas:
Tecla Função
TABELA 6.4
Funções das chaves editando
Para inserir novos caracteres, avance usando a seta direita no IBM-PC, para a posição desejada de
inserção e digite os novos caracteres. Você não estará escrevendo sobre o texto existente ate aquele
ponto porque ele será copiado após o novo texto. Lembre-se : quando usar as teclas de setas, a função
Num-Lock deve estar desligada.
Exemplos
A letra A esta faltando na sentença. Para consertar você deve digitar primeiro
E 1 <return>
Com a posição do cursor indicada pelo traço. Avance com o espaço após o S do IS usando a seta direita.
Sua tela irá ficar assim
56
1 type “ESTE É UM TESTE”
1 type “ESTE É_
Pressione a tecla seta direita até que as aspas finais apareçam, então pressione <return>.
A linha 1 será agora
Como você pode ver, a palavra THEN foi digitada acidentalmente duas vezes. Para remover a palavra a
mais, primeiro digite
E 4 <return>
E usando a seta direita, avance ate o T do primeiro THEN. Sua tela deverá ficar
Você deve agora digitar <return> ou END e o resto da linha será copiado na nova linha. A linha quatro irá
agora ficar
Cada vez que você usa a tecla DEL, o caractere apagado será mostrado entre os sinais de divisão.
6.4 EXAMINE
O comando eXamine é usado para mostrar os passos do motor dos pontos de localização instruídos
usando o controle manual e opcionalmente modificá-los. O formato geral do comando é
X <POINT NAME>
Onde <POINT NAME> é o nome do ponto que você deseja examinar e possivelmente modificar. Você deve
deixar um espaço entre o “X” e o nome do ponto, após entrar com o comando eXamine, o robô irá mover-
se para o ponto especificado. ( Esta também é uma maneira de descobrir onde um ponto nomeado esta
localizado no espaço )
Exemplo
Assuma que o ponto P1 tenha os seguintes passos de motor designados para ele
(B to H): 10, 200, 150, 300, 780, 0, 0
Após digitado
X P1 <return>
57
Você deverá ver as contagens do motor para P1 mostradas na tela:
B C D E F G H
10 200 150 300 780 0 0
Change? (Yes/No/Teach) _
E o robô será movimentado para a posição definida por P1. Neste ponto você pode mudar os passos do
motor para P1 respondendo Y ou T para a pergunta Change. Outra resposta a ser dada será a resposta
NO. Se você responder NO, então nenhuma mudança será feito no ponto P1. Se você responder yes, você
será questionado para nova informação.
Um <return> sozinho irá deixar o passos do motor B sem alteração; qualquer novo número que você
introduza seguido de um <return> irá tornar-se o novo ponto para o motor B. O controle irá permanecer com
o mesmo motor até que um <return> seja digitado sem número. Após cada entrada de uma nova posição
do motor, o robô será movimentado para nova localização. Você irá ver um prompt similar para cada motor.
Desde que o motor A controla a garra, ele não define uma posição e portanto não pode ser editado com a
função eXamine.
Se você respondeu com um T para o prompt CHANGE ?, você ativou o Controle Manual que permite a você
redefinir a localização do ponto movimentando o robô com as chaves de movimento de motor. Quando o
robô tenha sido posicionado no local desejado, pressione a tecla END (ENTER se estiver usando o ED-
MK3) no teclado do Controle Manual ou <return> no teclado do comutador. Desde que o estado da garra
não é uma posição relacionada, as chaves de controla da garra no Controle Manual funcionam mas não
são registradas quando a tecla ENTER é pressionada. Nota: Se você está usando um controlador ED-MK4
a tecla ENTER do teclado esta travada uma vez que um motor esta selecionado até que uma tecla ENTER
ou ESCAPE do controle tenha sido pressionada.
6.5 FIND
O comando FIND é designado para ajudar a fazer mudanças fácil e rapidamente. O comando permite ao
programador encontrar uma seqüência de caracteres especificados no programa e fazer a linha em que ele
aparece tornar-se a linha atual. O formato do comando FIND é
F:<character string><return>
Não deve existir espaço entre o F e os dois pontos. O Robo Talk irá aceitar até 16 caracteres no character
string, irá iniciar a procura do string a partir da posição da linha atual e continua ate que o final do programa
sege alcançado. Uma palavra parecida sempre será encontrada independente do grupo total de caracteres,
por exemplo grupos de letras acima e abaixo são considerados.
Exemplo
58
1 REM ESTE É UM PEQUENO PROGRAMA
2 MOVEP POINT
3 WAITFOR 3
4 MOVEP POINT 1
5 HOME
E que o editor tem a linha 1 como linha atua. Para encontrar a primeira ocorrência para POINT 1 coloque
o seguinte comando no editor:
F:POINT1<return>
O Robo Talk irá encontrar POINT1 na linha 4 e retornar para o prompt do editor com a linha 4 como linha
atual.
4 MOVEP POINT1
Editor Ready:
6.6 INSERT
O comando insert é usado para entrar no modo insert do editor. Isto é como você introduzir texto no seu
programa. Quando se usa o comando insert, você sempre estará introduzindo texto na posição da linha
atual. A linha atual e a que esta sendo mostrada diretamente abaixo do “Editor Ready”. Se você esta
criando um novo programa a partir do inicio, então digitando I seguido de um <return> irá sempre iniciar
inserindo texto na linha 1.
Enquanto você estiver inserindo texto pode usar a seta de retrocesso para retornar e corrigir um erro antes
de teclar <return>. Para parar de inserir, você deve digitar um control - Z ou ESC como primeiro caractere
na nova linha. Digitando control - Z em qualquer outro ponto de uma linha não terá nenhum efeito. Todos os
outros controles e teclas especiais são desativadas durante o insert.
Nenhuma linha excedendo 80 caracteres será introduzida. Se isto ocorre, o editor irá terminar
automaticamente esta linha e pular para a próxima linha.
Se você entrar com texto no meio do seu programa, todas as linha seguintes ao ponto de entrada irão se
mover para baixo para formar espaço para as novas linhas que você esta digitando. Nenhuma linha antiga
será sobrescrita ou apagada.
Exemplos
Para inserir uma nova linha de texto iniciando na linha 3, você primeiro digita
S 3 <return>
3 WAITFOR 3
Editor Ready:
Agora digite
I <return>
59
Para iniciar a introdução do texto. Você irá ver o numero 3 e o seu cursor estará posicionado a direita dele.
Entre com a seguinte linha.
CLOSE -1
Seguido de um return. Você irá ver então o numero 4 aparecer. Você pode continuar a introduzir texto, ou
digitar um control-Z ou ESC para parar e retornar para o modo comando. Se você digitar um control-Z nesse
ponto e então listar o programa você irá ver
6.7 LIST
O comando List é usado para mostrar seu programa no computador. Existem duas formas deste comando.
A primeira lista o programa inteiro e é
L <return>
Serão listadas as linhas iniciando com o número em PRIMEIRA LINHA ate o numero em ULTIMA LINHA
e fará do numero em PRIMEIRA LINHA a linha atual. Um espaço deve ser colocado entre L e o número da
primeira linha e entre os dois números de linhas. Se a ULTIMA LINHA for omitida, todas as linhas a partir
da primeira serão listadas.
Se você digitar L seguido de um <return>, você ira ver todo o programa listado na tela.
Se você digitar L 3 5 <return> você ira ver
3 SETI C=1
4 10 TYPE C
5 MOVE 0, 0, 0, 0, C
A listagem, que esta sendo mostrada na tela do computador pode ser temporariamente interrompido para
permitir que seja lido pressionando a BARRA DE ESPAÇO. O display irá permanecer parado até que a
BARRA DE ESPAÇO sege pressionada novamente. Você pode também abortar uma lista longa pressionando
a tecla <return>; isto irá fazer você retornar ao prompt Editor.
6.8 LISTL
LISTL permite ao operador mostrar todas as localizações de pontos atualmente programadas e seus
valores de posição.
60
O comando lista os valores de posição para os motores B ate H; os valores são o numero de contagens
de encoder a partir da posição home. Os pontos XYZ são também listados na unidade default para medição.
O motor A não é listado porque ele não é usado para posicionamento do braço do robô, somente para
controlar a garra.
B C D E F G H
Point1 0 10 50 5 300 -20 0
Point2 -40 0 0 80 20 0 0
x y z a t
Xpoint3 0.00 108.35 321.34 0.00 0.00
6.9 NEW
O comando NEW irá apagar qualquer programa que estiver atualmente no editor e limpar todos os pontos
de localização instruídos com o Controle Manual. Ele torna o editor pronto para um novo programa.
6.10 PRINT
O comando Print irá imprimir seu programa inteiro par a impressora. Isto assumindo que você tenha
configurado seu hardware como mostrado no capítulo 1.
O IBM-PC imprime para uma porta paralela padrão de impressora. A impressora pode estar conectada
todo o tempo.
Nota: Se a impressora não esta online no momento em que PRINT é selecionado, um erro de
DOS irá ocorrer isto pode finalizar o Robo Talk retornando você ao prompt do DOS.
6.11 PRINTL
O comando PRINTL irá imprimir os pontos de localização atuais programados e seus valores de posição
para a impressora. Isto assumindo que você tenha configurado seu hardware como mostrado no capítulo 1.
O IBM-PC imprime para uma porta paralela padrão de impressora. A impressora pode estar conectada
todo o tempo.
O comando imprime os valores de posição para os motores de B até H; os valores são o numero de
contagens de encoder a partir da posição home. Os pontos XYZ são também impressos na unidade default
para medição. O motor A não é impresso porque ele não é usado para posicionamento do braço do robô,
somente para controlar a garra.
B C D E F G H
Point1 0 10 50 5 300 -20 0
Point2 -40 0 0 80 20 0 0
x y z a t
Xpoint3 0.00 108.35 321.34 0.00 0.00
Nota: Se a impressora não esta online no momento em que PRINT é selecionado, um erro de
DOS irá ocorrer isto pode finalizar o Robo Talk retornando você ao prompt do DOS.
61
6.12 QUIT
O Quit é usado para deixar o editor e retornar ao menu principal. Seu programa, e quaisquer mudanças
estarão intactas e poderão ser reeditadas mais tarde.
6.13 REMOVE
Remove é usado para apagar uma localização de ponto instruído usando o controle manual do sistema. O
formato geral deste comando é
R <POINT NAME>
Onde <POINT NAME> é o ponto a ser removido. O espaço é necessário entre o R e o nome. Para cada
programa o Robo Talk permite 100 pontos de localização a ser definidos e instruídos através do controle
manual.
Exemplos
R P3
Irá remover o ponto P3, deixando P0, P1, P2, e P4 atualmente no sistema.
6.14 SKIP
Skip é usado para ir a uma linha especificada e torná-la a linha atual. O formato geral deste comando é
S <LINE #><return>
Onde <LINE #> é a linha que você deseja ir. Um espaço deve separar o comando e o numero da linha.
Exemplos
S 4 <return>
4 10 TYPE C
Editor Ready:
Isto significa que o editor esta posicionado na linha 4. Com o uso do Insert como seu próximo comando,
você pode iniciar a introdução de um texto neste ponto.
62
6.15 TEACH
O comando Teach é usado para ativar o controle manual, definir pontos de localização movimentando o
robô e automaticamente inserir comandos MOVEP para estes pontos no programa atual. O formato geral
do comando é
T <POINT NAME>
Onde <POINT NAME> é o primeiro ponto em uma seqüência de pontos a ser instruídos. O espaço entre
o T e o nome do ponto é necessário.
O método de instruir o robô consiste em usar as teclas de controle de motor no Controle Manual para
mover o robô até a posição requerida e então pressionando a tecla ENTER no controle para inserir aquela
localização no editor. O comando Teach também permite ao usuário inserir comandos de garra no programa.
Sendo que definindo uma posição e ajustando o estado da garra são duas ações não relacionadas, o
comando Teach não permite programar ambas a ações ao mesmo tempo. Veja abaixo para maior discussão.
Você deve instruir uma série de pontos sem reentrar o comando Teach porque o Robo Talk irá numero após
o nome do ponto e incrementar esse número de um após cada comando de ENTER. Por exemplo. Se você
iniciou instruindo uma CAIXA de ponto, e instruiu três pontos, você pode ver o seguinte na sua tela
Para parar o teach, você pressiona a tecla END no controla ou ( ESCAPE para o Mark IV), ou tecla
<return> no teclado do computador. ( Quando se esta usando o controle MARK IV, a tecla <return> está
travado uma vez que um motor é selecionado e permanece travado ate que um ENTER através do controle
seja pressionado.) Cada vez que você pressiona a tecla ENTER do controle, o editor irá automaticamente
entrar com um comando MOVEP ou um comando de garra no seu programa na posição da linha atual. Por
exemplo, se a linha atual no seu programa é 4 e você está instruindo um ponto P12, após pressionar
ENTER, a seguinte linha será introduzida em seu programa.
4 MOVEP P12
Por esta razão é importante ter certeza que a linha atual é onde você deseja que estas instruções MOVEP
sejam colocadas. Mesmo que as instruções MOVEP sempre sejam introduzidas em seu programa quando
você esta instruindo os pontos, você pode apaga-las ou reorganiza-las mais tarde. Elas são introduzidas
por pura conveniência.
As seguintes teclas do controlador manual do ED-MK4 estão ativas quando instruímos um ponto.
Para mover um motor, pressione a tecla do motor desejado então use as teclas de seta acima e seta
abaixo para move-lo. O ENTER é usado para definir um ponto uma vez que você tenha o robô na sua
posição desejada. ESCAPE retorna o controle para o Robo Talk e o teclado do computador.
Exemplos
Assuma que o seguinte programa esta atualmente no editor.
63
4 TYPE “PASS”;
5 TYPE C
6 NEXT
O loop principal para o programa de empilhamento das caixas foi definido, mas nenhum movimento foi feito
ainda. Você deseja iniciar os movimentos na linha 6, então você digita
S 6 <return>
T BOX <return>
Agora usando o controle manual, mova o robô para que ele peque as caixas e as empilhe. Nas varias
posições apropriadas do robô você deve pressionar a tecla ENTER para salvar aquela localização. Se você
definiu três pontos e então pressionou END ( para o controlador MARK IV pressione a tecla ESCAPE ),
seu programa irá ficar:
As instruções MOVEP foram introduzidas nas linha 6, 7 e 8. Todas as outras linha foram movidas para
baixo.
O Robo Talk não registra status da garra com os registros de posição: Então quando usamos o controle
manual no editor, um comando MOVEP ou um comando de garra (CLOSE ou OPEN) irá ser inserido no
programa. Quando o comando manual esta ativo, o Robo Talk irá detectar que operação esta sendo usada,
uma das duas um movimento de motor ou uma operação de garra. Se somente as teclas de garra foram
usadas e o status da garra foi mudado. O Robo Talk irá introduzir um comando CLOSE ou OPEN em um
programa dependendo do estado da garra quando a tecla ENTER foi pressionada. De qualquer forma se o
robô foi movimentado, o Robo Talk irá inserir um comando MOVEP para a nova localização no programa.
As chave de garra são sempre ativas, mesmo quando movendo o robô, porém somente a posição e não o
estado da garra será registrado.
Com, o controle ativado, você aciona o robô usando as chaves de movimento do motor. O ponto introduzido
no Robo Talk irá ter o nome BOX e um comando MOVEP BOX será inserido no programa.
Se você responder para o mesmo comando Teach pressionando somente as chaves de controle da garra
no controle manual, o comando introduzido no Robo Talk irá ser um dos dois um CLOSE ou um OPEN
dependendo do estado da garra no momento que a tecla ENTER foi pressionada. O nome de localização
não é usado nem é o sufixo do numero do nome do ponto incrementado. Esta característica é incluída para
facilita programações simples de uma serie de ações do robô e ter estas ações colocadas em ordem
consecutiva em seu programa. Comandos de garra podem também ser inseridos no programa como qualquer
outro comando do Robo Talk sem o uso do comando Teach usando o modo Insert do editor.
Fim.
64
ANOTAÇÕES
65
Capítulo 7
Descrições dos comandos
A linguagem de programação do Robo Talk possui mais de 50 instruções, comandos e funções mais
comandos do editor. Estas instruções e comandos podem ser retiradas em instruções de programa de
controle e instruções de controle de robô como listado abaixo.
Funções
O resto deste capítulo contem uma descrição detalhada de cada comando. Quando discutimos possíveis
mensagens de erro geradas por cada comando, a mensagem “Syntax error” não esta incluída nesta
discussão porque é comum para todos os comandos e indica simplesmente que uma linha foi introduzida
incorretamente.
Estas três funções aceitam argumentos e retornam o valor trigonométrico apropriado em graus. Desde que
estas são funções elas não podem ser usadas como comando por elas mesmas mas são para ser usadas
em tarefas de instruções e expressões.
As funções ACOS e ASIN aceitam argumentos na faixa de -1 a 1. A função ACOS retorna valores de 0 180
graus enquanto a função ASIN retorna valores de -90 a 90 graus. A variável usada para ter o valor devera ser
um tipo ponto flutuante, se não, ira resulta somente em valor inteiro.
66
10 INPUT “ENTRE X “, @ X
20 INPUT “ENTRE Y “, @ Y
30 @ R = (@ X *@ X + @ Y * @ Y ) ^ 0,5
40 @ T = ATAN(@ Y/@ X)
50 TYPE “RAIO = “;
60 TYPE @R
70 TYPE “TETA = “;
80 TYPE @ T
Se o argumento para uma função esta fora dos limites da função trigonométrica aparece um erro “Out of
Bounds”
7.2 ARC ED-MK4 Movimento Circular de Ponto Definido (Não implementado ED-7220C)
O comando ARC move o robô em um arco ou círculo a partir da posição atual através de dois pontos
predefinidos. O comando pode ser usado somente com uma combinação de um ED-MK4 e um robô XR-3.
Um coprocessador será necessário para o seu computador.
Onde <poit1> é a posição intermediária e <point2> a posição de destino.<point> pode ser um ponto de
coordenada cartesiana ou um ponto de localização de articulação.
Por exemplo:
Irá causar um deslocamento da garra do robô da atual posição através de um ponto de localização de
articulação pré definido SP1 para o ponto de localização de articulação pré definido DP1 ao longo de um
círculo.
Irá causar um deslocamento da garra do robô da atual posição através de um ponto de coordenada cartesiana
pré definido XSP1 para o ponto de coordenada cartesiana pré definido XDP1 ao longo de um círculo.
O parâmetro <velocity> é a velocidade com que o circulo ou arco é atravessado e é um numero entre 0.0
e 1.0. O valor default é 1.0. Um valor de 0.0 resulta em um velocidade muito baixa.
O parâmetro <max move> é a distancia máxima a percorrer em milímetros por tich. Um tich corresponde
a 1/60 de um segundo. O parâmetro deverá permanecer pequeno de outra forma um erro Move too long
pode ser gerado. O valor default é 1mm.
O comando
Isto ira resultar em atravessar uma vez e meia um circulo definido pela posição atual, SP1e DP1, a uma
velocidade metade da atual do sistema. É permitido um movimento máximo de 1mm por 1/60 seg.
Certas combinações de pontos, velocidades e valores máximos de movimento podem resultar em movimentos
inválidos ou movimentos que são incapazes de ser completados. Isto pode acontecer devido a pontos
serem idênticos, pontos em uma linha ou o movimento resulta em uma distância muito grande para ser
completada em 1/60 seg. Erros como Move too long, Out of bounds, ou Interpolation move out of
bounds indica esses problemas. Em geral, movendo para um outro local de inicio, mudando um ou mais
pontos levemente ou usando parâmetros opcionais diferentes irá remover o erro.
67
7.3 ARCX ED-MK4 Movimento Circular Cartesiano (Não implementado ED-7220C)
O comando ARCX move o robô em um arco ou círculo a partir da localização atual através de duas
localizações cartesianas. O comando pode ser usado somente com uma combinação de um ED-MK4 e
um robô XR-3. Um coprocessador será necessário para o seu computador.
Onde <X1>, <Y1>, e <Z1> é a localização do ponto intermediário e <X2>, <Y2>, <Z2> é a localização de
destino. Por exemplo:
Irá fazer com que a garra do robô se desloque da posição atual através da localização atual (0.0, 108.35,
321.44) para a localização (0.0, 188.46, 403.67).
O comando
ARCX 0.0, 108.35, 321.44, 0.0, 188.46, 403.67, 1.5, 0.5, 1.0
Isto irá resultar em atravessar uma vez e meia um circulo definido pela posição atual e as duas localizações
feitas a uma velocidade metade da atual do sistema. É permitido um movimento máximo de 1mm por 1/60
seg.
Certas combinações de pontos, velocidades e valores máximos de movimento podem resultar em movimentos
inválidos ou movimentos que são incapazes de ser completados. Isto pode acontecer devido a pontos
serem idênticos, pontos em uma linha ou o movimento resulta em uma distância muito grande para ser
completada em 1/60 seg. Erros como Move too long, Out of bounds, ou Interpolation move out of
bounds indica esses problemas. Em geral, movendo para um outro local de inicio, mudando um ou mais
pontos levemente ou usando parâmetros opcionais diferentes irá remover o erro.
O AUX é usado para controlar as portas auxiliares no controlador do robô. As portas podem ser usadas
para rodar os motores fornecidos nos robôs XR e motores sem encoder. Existem duas portas auxiliares,
porta 1 e porta 2.
O comando AUX do controlador ED-MK3 emprega um argumento que é o numero da porta que é para ser
controlada. Para ligar uma porta, você usa o numero da porta positivo; para desliga-la você usa o numero
da porta negativo.
O comando AUX do controlador ED-MK4 emprega um argumento que é o numero da porta AUX, também 1
ou 2. O segundo argumento ajusta o nível de saída 0 a 100 por cento da potência disponível do motor. Se
uma porcentagem negativa é dada, a saída de tensão será invertida.
Onde <port number> pode ser 1 ou 2 e <output level> pode variar de -100 a 100
68
O argumento usado pela instrução AUX pode também ser uma variável. Por exemplo, o programa seguinte
irá LIGAR e então DESLIGAR ambas as portas em um ED-MK3.
SETI A=1
REM MUDA QUANDO LIGADA
10 AUX A
SETI A=A+1
IF A<3 THEN GOTO 10
REM MUDA QUANDO DESLIGADA
SET A=-1
20 AUX A
SETI A=A-1
IF A>-3 THEN GOTO 2
Um erro de tempo de execução “Invalide Device” é gerado quando um número de porta inválido é usado.
7.5 BEEP
O seguinte seguimento de programa espera para que a entrada #2 vá para o estado low então produz um
beep:
O CLEARPATH limpa o arranjo que contém um conjunto de localizações ou pontos definidos pelo SETPATH
ou SETPATHX. O comando somente pode ser usado com uma combinação do robô XR-4 ou ED-MK4. Um
coprocessador matemático para o computador é necessário.
CLEARPATH
O CLEARPATH deve ser usado antes de armazenar um novo conjunto de localizações ou pontos. O
comando é automaticamente executados quando um programa é inicializado e/ou finalizado. O CLEARPATH
deve ser usado exclusivamente no modo DO.
Refira-se aos comandos PATH, SETPATH e SETPATHX para informações adicionais sobre movimento
contínuo. A descrição do comando PATH contém um exemplo que mostra o uso do CLEARPATH.
O comando CLOSE é usado para fechar a garra padrão do robô ou para acionar a AUX1 ou a OUTPUT1
para operar uma garra não padrão. O argumento opcional é a quantidade que a garra deve ser fechada em
contagens do encoder se usado no modo motor. Se a garra deve ser completamente fechada, nenhum
argumento ou o argumento -1 deve ser usado.
CLOSE [<quantidade>]
Onde a < quantidade> opcional pode ser um número positivo ou -1. Se você utilizar o comando CLOSE
com um argumento maior que o movimento da garra possa executar (1024 contagens para o ED-7220C,
240 contagens para o ED-XR4), o restante do argumento é descartado (e perdido) mas não causa erro de
execução.
69
Quando você desejar que a garra seja fechada completamente, você não deve usar o argumento. Isto
garantirá a compatibilidade com versões futuras tanto do robô como do RoboTalk.
Quando o arquivo de configuração ajusta a garra no modo AUX ou OUTPUT, qualquer argumento é ignorado
e a AUX1 ou OUTPUT1 é acionada. Este modo pode ser usado para operar uma válvula de ar elétrica, uma
solenóide DC ou outro dispositivo para controlar outras garras diferentes da garra padrão acionada por
motor.
SETI G=30
REM FECHA A GARRA APÓS 30 CONTAGENS
CLOSE G
Você deve ter cuidado com a porção de um argumento maior que o movimento da garra que será descartada
e perdida. Isto significa que qualquer cálculo que você possa fazer com a posição de abertura da garra
pode não ser mais precisa.
O comando CLS é usado para limpar a tela do computador. Qualquer informação escrita anteriormente na
tela será apagada e o cursor será posicionado no canto superior esquerdo da tela. O comando CLS não
tem efeito enquanto o sistema estiver no modo TRACE.
CLS
O programa a seguir imprimirá a mensagem HELLO na tela, então apagará a tela toda, e então imprimirá
a mensagem HELLO AGAIN.
TYPE “ALÔ”
CLS
TYPE “ALÔ NOVAMENTE”
Estas três funções aceitam argumentos em graus e retornam o valor trigonométrico adequado. A variável
usada para obter o valor deve ser do tipo ponto flutuante, caso contrário, somente teremos um resultado de
valor inteiro. Como estes são funções, não podem ser usados comandos por eles mesmos, mas são
usados como declarações de atribuições ou expressões.
70
10 INPUT “ENTRE COM O RAIO”, @R
20 INPUT “ENTRE COM O TETA”, @T
30 @X = @R * COS(@T)
40 2Y = @R * SIN(@T)
50 TYPE “X = “;
60 TYPE @X
70 TYPE “Y = “;
80 TYPE @Y
O comando END é usado para marcar o final de seu programa. Embora o final físico do programa também
finalize o seu programa, o comando END pode ser usado para terminar a execução em qualquer ponto do
programa. O comando END é útil quando sob-rotinas são usadas porque elas estão normalmente localizadas
no final do programa. Sem o comando END, o programa executará a primeira sub-rotina que encontrar.
END
O programa a seguir usa o comando END para evitar que o programa passe para as sub-rotinas do final do
programa.
FOR A = 1 TO 10
REM PEGA O BLOCO
GOSUB 100
REM COLOCA O BLOCO NA MESA
GOSUB 200
NEXT
END
100 REM SUBROTINA PARA PEGRA O BLOCO
MOVEP B1
CLOSE -1
MOVEP B2
RETURN
200 REM SUBROTINA PARA COLOCAR O BLOCO NA MESA
MOVEP T1
MOVEP T2
OPEN -1
HOME
RETURN
O comando ERRO_CHECK somente pode ser usado se o RoboTalk for configurado para o controlador ED-
MK4. Este comando mostra todos os erros do ED-MK4 que foram armazenados na pilha de erros. Após o
comando ERROR_CHEK ser executado, a pilha de erros será esvaziada.
71
A forma geral do comando é
ERROR_CHECK
Se a pilha de erros já estiver vazia, a mensagem Error stack is empty será impressa.
O comando FOR...TO... controla a execução de um grupo de linhas de programa localizado entre a linha
FOR...TO... E a linha que contém a declaração NEXT. A forma geral do comando é.
FOR < variable name> = <Start variabel exp> TO <End variable exp>
...
...
NEXT
Onde <variable name> é qualquer uma das 26 variáveis inteira do RoboTalk e <variable exp> é qualquer
expressão inteira válida do RoboTalk. Quando o comando FOR...TO... é executado a variável especificada
(variable name) é ajustada para o mesmo valor de Start variable exp. A execução do programa é continuada
com as declarações seguintes até que a declaração NEXT seja alcançada, e neste instante o programa é
retornado para o comando FOR...TO.... A variável é incrementada por um e comparada com o valor de End
variable exp. Se a variável for maior que End variable exp, o programa é desviado para linha logo após a
declaração NEXT, caso contrário, o programa continua a execução com a linha após o comando FOR...TO....
Se o valor de Start variable exp for maior que o valor de End variable exp, as linhas de programa entre o
comando FOR...TO... e a declaração NEXT será ignorada e o programa continuará com a linha após a
declaração NEXT. Se o valor de Start variable exp for igual ao valor de End variable exp, as linhas do
programa do loop FOR / NEXt será executado uma vez.
O comando FOR...TO... pode ser embutido dentro de outro comando FOR...TO..., até 1000 níveis no
RoboTalk.
O programa a seguir moverá o motor D 5 vezes em incrementos de 10 passos começando com a posição
100.
SETI = 10
FOR A = B TO B+4
MOVE TO 0,0,A*10,0,0
NEXT
FOR A = 1 TO 10
TYPE A
FOR B = 1 TO 5
TYPE B;
NEXT
TYPE “”
NEXT
Um erro de execução ocorrerá se uma declaração NEXT for encontrada sem o comando FOR...TO...
correspondente. Um erro também ocorrerá se forem utilizados muitos níveis de loop.
O comando GET_ANSWER somente pode ser usado se o RoboTalk tiver sido configurado pelo controlador
ED-MK4.
72
Este comando envia uma string ao controlador ED-MK4 e recebe e mostra a informação retornada. A string
enviada ao ED-MK4 deve representar um comando válido do ED-MK4 que é designado para fornecer uma
resposta.
GET_ANSWER <string>
A string pode ser uma string literal entre aspas ou uma string variável.
GOSUB <label>
Onde <label> deve começar a primeira linha da sub-rotina desejada. Todas as sub-rotinas devem ser
finalizadas pela declaração RETURN. O comando GOSUB pode ser embutido em outro, até 200 níveis.
Significa que você pode chamar até 200 sub-rotinas antes que um RETURN seja necessário.
O programa a seguir chama duas sub-rotinas, a primeira em 100 e a segunda em 200. Note como ambas
as sub-rotinas terminam em RETURN.
Se você chamar um label que não existe no programa, Label not defined será mostrado. Se você tiver
embutido mais que 200 GOSUB, Too many nested GOSUBs será mostrado.
O comando GOTO é usado para transferir a execução do programa para a linha com o label especificado
na declaração GOTO.
GOTO <label>
73
Quando um comando GOTO é encontrado no programa, a execução continuará com a primeira declaração
após o label especificado. Isto faz com as declarações após o GOTO sejam puladas.
O programa a seguir imprimirá a mensagem “this will print” na tela. A mensagem “this will not print” não
será impressa na tela porque o comando GOTO força a execução do programa a pulá-lo.
GOTO 130
TYPE “ISTO NÃO SERÁ MOSTRADO”
130 TYPE “ISTO SERÁ MOSTRADO”
O comando GOTO é muito útil quando combinado com as declarações IF...THEN..., IFMICRO...THEN... e
IFSIG...THEN.... Por exemplo, o programa a seguir entrará em loop até que o sinal 3 passe para nível alto.
10 MOVEP P
MOVEP P1
MOVEP P2
IFSIG -3 THEN GOTO 10
TYPE “ROTINA COMPLETA”
O comando GRIP é uma versão otimizada do comando CLOSE. Difere pelo fato da variável Z ser ajustada
para o número de contagem do encoder da garra, após o término do comando. A contagem do encoder que
é armazenada indica o deslocamento da garra com relação a posição totalmente fechada. Este comando
pode ser usado para calibrar o tamanho do objeto pego ou detectar se a garra realmente pegou algo. Após
o comando ter sido executado, a variável Z pode ser testada ou usada na declaração da atribuição.
GRIP
O comando HARDHOME é usado para reiniciar o robô e retorná-lo para a posição de Hardware Home
encontrando o centro das micro chaves em todos os eixos sobre o controle do programa. Usualmente você
não irá utilizar este comando porque normalmente você terá respondido Yes para a pergunta de reinicialização
no início do RoboTalk. Se você deseja retornar o robô para a posição Hardware Home, você deve usar o
comando HOME porque é muito mais rápido. Use HARDHOME quando você realmente deseja executar a
rotina completa de HARDHOME. Será o caso por exemplo após um erro de execução ou alguma outra
situação onde um robô possa ter perdido a informação de contagem. O HARDHOME não gera nenhuma
mensagem de erro.
HARDHOME
Para executar o comando HARDHOME, as micro chaves de todos os eixos devem estar acionadas
(pressionadas).
O comando HOME é usado para retornar o robô para a posição Home. A posição Home é a posição
Hardware Home. O robô não tenta encontrar o centro das micro chaves; ele move para a posição onde a
contagens de todos os encoders é zero. É muito mais rápido do que o comando HARDHOME e é geralmente
o comando que você deve retornar o robô para sua posição Home. O comando HOME não afeta a posição
da garra.
74
A forma geral do comando é.
HOME
O comando HOME é normalmente usado no final do programa para retornar o robô para sua posição
Home. Por exemplo:
A declaração IF...THEN... é usada para testar uma condição e, se a condição for verdadeira, executar a
declaração após o THEN. Se a condição é falsa, a execução do programa continua com a linha seguinte
da declaração IF / THEN. As condições declaradas são condições matemáticas ou relacionais.
Onde <EXP1> e <EXP2> são expressões numéricas, e <condition> é uma das seguintes condições.
O programa a seguir imprimirá a palavra TRUE três vezes. A palavra FALSE não será impressa nenhuma
vez.
Você pode usar variáveis nas expressões e elas são muito úteis para criar e controlar loops. O programa a
seguir imprimirá os números de 1 até 100.
75
A declaração IF...THEN... somente pode gerar uma mensagem de erro de sintaxe diretamente, entretanto,
a declaração seguinte ao THEN pode gerar uma mensagem de erro adequada para o próprio erro.
Onde <switch letter> é uma das letras de A até H, correspondendo as oito micro chaves do robô e
acessórios e <statement> é qualquer declaração do RoboTalk. Por exemplo.
Imprimirá a mensagem somente se a micro chave do motor C estiver fechada quando esta declaração for
executada. Se a micro chave estiver aberta, a execução do programa continuará com a próxima linha. Isto
é, uma condição verdadeira é especificada como sendo a condição em que a micro chave está fechada.
Uma condição falsa é quando estiver aberta. Se múltiplas micro chaves forem especificadas, todas as
condições devem ser verdadeiras antes da declaração após o THEN ser executada.
A declaração IFMICRO...THEN... é geralmente usada para reposicionar o robô e acessórios para alguma
posição conhecida. Como o RoboTalk possui um comando de HARDHOME incorporado, que envia todos
os motores para a posição Hardware Home, o uso mais comum de IFMICRO é para posicionar acessórios,
que não são enviados para a posição Home automaticamente. O código seguinte posicionará o motor H
em sua micro chave. A rotina assume que a micro chave está em um dos finais de curso do acessório.
Se uma micro chave especificada não estiver na faixa de A até H, então Out of Bounds será mostrado.
Lembre-se, entretanto, que a declaração seguinte ao THEN pode gerar uma mensagem de erro adequada
para seu próprio erro.
O comando IFSIG...THEN... é similar ao IF exceto que é usado para testar o estado de uma das oito
entradas de sinais.
Onde <signal #> é qualquer uma das oito entradas de sinal e <statement> é qualquer declaração do
RoboTalk. Por exemplo.
Imprimirá a mensagem somente se o sinal 2 estiver acionado E o sinal 3 estiver desacionado. Se o sinal 2
estiver desacionado OU o sinal 3 estiver acionado, a execução do programa continuará com a próxima
linha. Note que você pode verificar o sinal se está desabilitado colocando um sinal de menos (-) na frente
do número do sinal. Por exemplo.
76
Imprimirá a mensagem se o sinal 2 estiver desabilitado.
A declaração IFSIG...THEN... é geralmente usada para sincronizar a operação do robô com eventos externos,
tais como operação de uma esteira. O código a seguir continuará a remover as caixas da esteira enquanto
o sinal 4 estiver acionado.
Se o número do sinal não estiver entre 1 e 8, então Out of Bouds será mostrado. Lembre-se, entretanto,
que a declaração seguinte do THEN pode gerar uma mensagem de erro adequada para seu próprio erro.
O comando INPUT permite ao usuário entrar, diretamente do teclado do computador, com constantes
numéricas inteiras ou reais ou string e atribuir este valor à variável do RoboTalk. A forma geral do comando
INPUT é.
Onde [”character string”] é um grupo opcional de caracteres entre aspas dupla que serão mostrados na
tela do computador e <variable name> é qualquer variável válida do RoboTalk. Quando entrar com um
número decimal, o nome da variável deve ser precedida do caracter @. Quando entrar com uma variável
string, o nome da variável deve ser precedida do caracter $. Se a string de caracter opcional não é usada,
o RoboTalk mostrará um prompt ? na tela; se a string caracter é usada, nenhum prompt, com exceção da
string caracter será mostrada. As aspas dupla deve estar vazia, isto é, não deve conter nenhum caracter,
assim o prompt ? será suprimido.
O comando INPUT pode ser usado para alterar variáveis durante o tempo de execução to ajustar os loops,
mover o robô para uma posição específica, selecionar de um menu e outras ações que devam ser
determinadas por intervenção do usuário. O exemplo a seguir ilustra como uma seleção de menu pode ser
feita usando o comando INPUT.
77
20 MOVE 0,0,10,0,0
GOTO 5
30 MOVE 0,0,0,10,0
GOTO 5
40 MOVE 0,0,0,0,10
GOTO 5
Se uma entrada ilegal é feita em resposta ao comando INPUT, retry:_ será mostrada para permitir que você
redigite a entrada correta.
O comando LOCAL permite o uso de variáveis numa sub-rotina que tenham o mesmo nome de variáveis
usadas no programa principal, mas que são definidas e visíveis apenas dentro da sub-rotina. Uma vez que
a sub-rotina é abandonada, a variável e seu valor não são mais usados. O comando LOCAL é útil para evitar
que o programador tenha problema de interação entre variáveis do programa principal e da sub-rotina
chamada. Se o comando LOCAL não é usado para criar o nome de uma variável local de uma sub-rotina,
então a variável tem a mesma definição e valor que no programa principal.
A forma do comando LOCAL é.
10 FOR A = 1 TO 10
B=A*A
GOSUB 100
NEXT
END
100 LOCAL A
A=B^3
RETURN
Neste exemplo, o programa principal permanece no loop por 10 vezes ajustando a variável A de 1 a 10 e
ajusta a variável B para o quadrado de A. A sub-rotina em 100 é chamada, define a variável A como local e
ajusta-a para o cubo de B. Como a variável A é definida como local na sub-rotina, ela é tratada como uma
variável separada da variável A do programa principal, permitindo que a variável A do programa principal
mantenha o valor mesmo que passe pela sub-rotina. Entretanto como a variável B não foi declarada como
local, ela mantém o valor que tinha no programa principal e é visível na sub-rotina. Somente variáveis
inteiras e decimais podem ser declaradas como local, variáveis string não podem ser declaradas como
local.
O comando MOVE é usado para mover os cinco motores dos eixos do robô em números especificados de
passos do encoder a partir da posição corrente. É um comando de movimento incremental ou relativo de
maneira contrária a um comando de movimento absoluto.
Onde B, C, D, E e F são os números de passos dos encoders dos motores B até F, respectivamente. Você
deve sempre entrar com a quantidade dos cinco motores. Se você não quer que um motor mova, entre com
o valor zero (0) para aquele motor. O comando MOVE é um comando de movimento relativo. Significa que
o motor moverá um número específico de passos a partir da posição corrente (atual). O motor da porta A
não é inclusa no comando MOVE pois é dedicada para controle da garra.
78
O motor da porta A não é inclusa no comando MOVE pois é dedicada para controle da garra.
Motor B C D E F
Posição10 100 50 400 700
Após executar o comando MOVE 10, 10, -10, -10, 10 o robô moverá para a posição.
Motor B C D E F
Posição20 110 40 390 710
O comando MOVE TO é similar ao MOVE exceto que posicionará os cinco motores dos eixos do robô
em um número específico de passos do encoder a partir da posição Home. O MOVE TO é um comando
de movimento absoluto, significando que o robô moverá para posições especificadas dos encoders de
cada motor a partir das posições atuais.
Motor B C D E F
Posição10 100 50 400 700
79
Motor B C D E F
Posição40 100 -200 300 645
O programa a seguir posicionará o robô na sua posição Home ao final do programa. (MOVE TO 0,0,0,0,0
é equivalente ao comando HOME).
MOVEP POINT
MOVEP POINT1
MOVEP POINT2
MOVE TO 0,0,0,0,0
O comando MOVEGH é similar ao MOVE exceto que move os motores G e H. Ele moverá os encoders
dos motores G e H para um número específico de passos a partir da posição atual. Isto faz com que o
comando MOVEGH seja um comando de movimento incremental ou relativo. Os motores G e H são
normalmente usados para controlar acessórios como esteiras e carrosséis.
Onde G e H são os números de contagens dos motores G e H. Você deve entrar com a quantidade para
ambos os motores. Se você deseja que apenas um dos motores mova, então forneça a contagem zero
para o outro motor.
O comando MOVEGH TO é similar ao MOVE TO exceto que é usado para controlar os motores G e H. Ela
posicionará os encoders dos motores G e H nas posições de contagem absoluta a partir da posição Home.
O MOVEGH TO é um comando de movimento absoluto.
80
Os motores G e H são normalmente usados para controlar acessórios como esteiras e carrosséis.
O programa a seguir utiliza um carrossel controlado pelo motor H. A cada passagem pelo programa, a
mesa é girada 300 contagens e então retornada para a posição inicial.
A declaração MOVEP diz ao RoboTalk para enviar o robô para uma localização específica. A localização
deve ser um ponto nomeado definido com o Controlador Manual e deve ser definido como uma localização
de articulação, não uma localização cartesiana; isto é, o nome do ponto não deve começar com a letra x.
A forma geral do comando é:
Onde <joint location name> é qualquer localização de articulação definida correntemente ou um novo
ponto a ser definido. Todas as localizações de ponto são caracterizados como movimentos absolutos a
partir da posição Home. Refira-se ao comando TEACH no Capítulo 5 para aprender como ensinar um ponto
de localização com o Controlador Manual a partir do menu principal ou o Capítulo 6 para ensinar um ponto
enquanto no editor.
MOVEP POINT10
Se o ponto especificado não for definido como localização de articulação, o RoboTalk mostrará.
81
7.29 MOVES Movimento em Linha Reta para um Ponto Definido pelo ED-MK4 (Não implementado
para ED-7220C)
O comando MOVES é usado para mover a garra em linha reta a partir da posição corrente para o ponto pré
definido. O comando pode ser usado somente com uma combinação do ED-MK4 e do robô XR-4. Um
coprocessador matemático para o computador é necessário.
Onde <point> é a posição destino e pode ser um ponto de coordenada cartesiana ou um ponto de localização
de articulação. Por exemplo.
MOVES DP1
Fará com que a garra do robô mova da posição corrente para o ponto DP1 de localização de articulação pré
definida por meio de uma linha reta.
MOVES XDP1
Fará com que a garra do robô mova da posição corrente para o ponto XDP1 de coordenada cartesiana pré
definida por meio de uma linha reta.
O parâmetro <max move> é a distância máxima do percurso em milímetros por ponto. Um ponto corresponde
a 1/60 de segundo. O parâmetro deve ser mantido pequeno, caso contrário um erro Move too long pode ser
gerado. O valor padrão é 1mm.
Certas combinações de pontos, velocidades e movimento máximos podem resultar em movimentos inválidos
ou movimentos que sejam impossíveis de serem executados. Isto pode acontecer devido a um ponto estar
fora da faixa ou uma distância requerida muito grande para ser percorrida em 1/60 segundos. Erros tais
como Move too long, Out of bounds ou Interpolation move out of bounds indicam tais problemas. Em geral,
mover para uma outra posição inicial, alterar levemente o ponto ou usar parâmetros opcionais diferentes
pode remover o erro.
7.30 MOVEXS Movimento em Linha Reta com Coordenadas Cartesianas do ED-MK4 (Não
implementado ED-7220C)
O comando MOVEXS é usado para mover a garra em linha reta da posição corrente para uma localização
de coordenada cartesiana. O comando pode ser usado somente com uma combinação do ED-MK4 e do
robô XR-4. Um coprocessador matemático para o computador é necessário.
Fará com que a garra do robô mova da posição corrente para a localização (0.0, 188.46, 403.67) por meio
de uma linha reta.
Os parâmetros opcionais fornecem controle adicional sobre o movimento e são os mesmos dos definidos
no comando MOVES.
82
Certas combinações de pontos, velocidades e movimento máximos podem resultar em movimentos inválidos
ou movimentos que sejam impossíveis de serem executados. Isto pode acontecer devido a um ponto estar
fora da faixa ou uma distância requerida muito grande para ser percorrida em 1/60 segundos. Erros tais
como Move too long, Out of bounds ou Interpolation move out of bounds indicam tais problemas. Em geral,
mover para uma outra posição inicial, alterar levemente o ponto ou usar parâmetros opcionais diferentes
pode remover o erro.
O comando MOVEX é usado para mover a garra a uma distância especificada no espaço cartesiano a
partir da posição atual. É um movimento incremental ou relativo de modo contrário ao comando de movimento
absoluto.
Você sempre deve entrar com a quantidade para os cinco eixos. Se você não quer que um eixo mova,
forneça o parâmetro zero. O MOVEX é um comando de movimento relativo. Significa que o robô moverá
uma distância específica a partir da posição atual.
Motor X Y Z A T
Posição0 200 400 45 0
Após a execução do comando MOVEX 100, 0, -10, -45, 0 o robô estará em.
Motor X Y Z A T
Posição100 200 390 0 0
Se o destino em coordenadas cartesianas for um ponto ilegal, o RoboTalk apresentará uma mensagem de
erro.
O comando MOVEX TO é similar ao MOVEX exceto que irá posicionar a garra na posição cartesiana
especificada referenciada a origem do sistema de coordenada cartesiana do robô.
83
Por exemplo, se o robô está no momento em.
Motor X Y Z A T
Posição 0 100 450 45 0
Após a execução do comando MOVEX TO 40, 100, 200, -45, 0 o robô estará em.
Motor X Y Z A T
Posição 40 100 200 -45 0
O programa a seguir posicionará o robô XR-3 próximo de sua posição Home ao final do programa assumindo
que as unidades foram configuradas para milímetros.
MOVEXP XPOINT
MOVEXP XPOINT1
MOVEXP XPOINT2
MOVEX TO 0,99.22,491.33,0,0
Se o destino em coordenadas cartesianas for um ponto ilegal, o RoboTalk apresentará uma mensagem de
erro.
7.33 MOVEXP Movimento para uma Localização Cartesiana (Não implementado ED-7220C)
O comando MOVEXP diz ao RoboTalk para enviar o robô para uma localização especificada. A localização
deve ser um ponto nomeado definido com o Controlador Manual e deve ser definido como localização
cartesiana, não uma localização de articulação; isto é, o nome do ponto deve começar com a letra x.
Onde <cartesian location name> é qualquer localização cartesiana definida ou um novo ponto a ser definido.
Todos os pontos de localização são definidos como movimento absolutos a partir da posição Home. Refira-
se ao comando TEACH no Capítulo 5 para aprender como ensinar ponto de localização com o Controlador
Manual a partir do menu principal ou o Capítulo 6 para ensinar um ponto no modo editor. Refira-se ao
Capítulo 8 para informações sobre as coordenadas cartesianas.
MOVEXP XPOINT
Se o ponto especificado não for definido como localização cartesiana, o RoboTalk mostrará.
O comando OFFLINE é usado para dizer ao RoboTalk que um ou mais motores não estão disponíveis para
uso. Nenhuma ação é tomada para mover motores removidos mesmo que uma requisição de movimento
para o motor seja recebido.
84
A forma geral do comando é.
Onde <motor letter> é a letra do motor que você deseja remover. Você pode ter até sete motores na lista
(somente os motores de B até H podem ser especificados). Por exemplo, para remover os motores D e H
de serviço, você deve escrever.
OFFLINE D,H
1. Ele pode não existir na configuração atual. Por exemplo você pode ter uma garra personalizada que não
necessite do motor B.
2. Você pode desejar ver o efeito de seu programa em condições de falha; isto é, ver o que acontecerá se
um robô tiver menos motores.
3. Você pode querer remover todos os motores para permitir que o fluxo do programa seja testado sem a
atuação dos motores do robô.
A cada vez que você digita R para executar um programa a partir do menu do RoboTalk, todos os motores
são automaticamente habilitados de volta. Significa que se você deve incluir o comando OFFLINE antes de
cada programa que você deseja executar com motores removidos. Se você estiver sem algum motor do
robô, assegure-se de incluir o comando OFFLINE na primeira linha do programa em todos os programas
que você for usar. Os motores removidos podem ser habilitados novamente usando o comando ONLINE
dentro do programa.Um ponto a relembrar: um motor que não exista pode causar erros de atolamento na
execução do programa porque o RoboTalk assumirá que o motor não pode mover. Então você deve usar o
comando OFFLINE quando o motor não estiver presente.
OFFLINE B
Esta linha irá remover todos os motores que não forem da garra.
OFFLINE B,C,D,E,F,G,H
Isto deve ser usado para verificar o fluxo do programa sem a atuação real dos motores.
O comando OFFSET é usado para alterar a localização do próximo comando de movimento por uma
quantidade especificada para cada encoder de motor.
Onde <motor letter> é uma das letras de A até H e <amount> é o número de passos do encoder do motor
que o motor especificado deve ser deslocado e pode ser qualquer expressão numérica positiva ou negativa
válida. Por exemplo.
OFFSET C = 100
MOVE TO 0,0,0,0,0
85
Fará com que o motor mova para sua posição Home, com a exceção que o motor C deve estar a um offset
de 100 contagens. Você deve usar uma série de comandos OFFSET antes do comando de movimento. Por
exemplo, para colocar um offset de 100 contagens para o motor F e de -245 contagens para o motor D, a
partir do ponto BOX3, você deve escrever.
OFFSET F = 100
OFFSET D = -245
MOVEP BOX3
O efeito deve ser alterar a localização do ponto BOX3 na quantidade especificada pelos comandos OFFSET
precedentes. Você deve imaginar o comando OFFSET como uma carga de um contador dentro do RoboTalk.
A cada vez que um comando de movimento é executado, cada contador de OFFSET é adicionado aos
passos especificados do motor pelo comando de movimento. Uma vez que o comando de movimento seja
executado, todos os contadores são restaurados para zero. Significa que um OFFSET, ou lista de comandos
OFFSET somente serão válidos pelo primeiro comando de movimento que os segue.
Por exemplo.
OFFSET E = 125
MOVE TO 10,10,10,10,10
MOVE TO 10,10,10,10,10
Motor B C D E F
Posição 10 10 10 135 10
Então, após encontrar o segundo comando MOVE TO, o robô moverá para.
Motor B C D E F
Posição 10 10 10 10 10
O comando OFFSET é normalmente usado em situações onde uma atividade geral é deslocada ao longo
de um eixo. Por exemplo, imagine o empilhamento de caixas em 3 níveis de altura. O único parâmetro que
é alterado a cada caixa é a altura. Ao invés de ensinar três pontos diferentes, você deve ensinar somente
um ponto e então deslocar os motores D e E para cada novo nível.
86
16 OFFSET E = L * -100
17 RETURN
Note como o contador de nível L foi usado para avançar o offset para cada caixa adicional.
Se você entrar com um nome de motor inválido, verá: Out of bounds error
O comando OFFSETX é usado para alterar a localização do próximo comando de movimento cartesiano
por uma quantidade especificada para cada eixo cartesiano.
Onde <cartesian axis> é uma das letras X, Y, Z, A ou T e <amount> é uma constante decimal, valor
decimal ou expressão decimal que especifica a quantidade que o eixo será deslocado (offset) na próxima
instrução de movimento.
O comando ONLINE é usado para retornar um motor, que tenha sido previamente removido (no mesmo
programa), ao serviço.
Onde <motor letter> é a letra do motor que você quer colocar de volta ao serviço. Até sete motores podem
ser colocados na lista (somente os motores de B até H podem ser especificados). Por exemplo.
ONLINE B,C
O programa a seguir removerá primeiramente o motor B e então mais adiante no programa irá restaurá-lo.
OFFLINE B
MOVE 20,35,456,45,200
ONLINE B
MOVE TO 10,10,256,300,456
Se você especificar o motor A ou um motor com um valor maior que H, você verá:
O comando OPEN é usado para abrir a garra padrão do robô ou para desligar a AUX1 ou OUTPUT1 para
operar uma garra não padrão. O argumento opcional é a quantidade que a garra deve ser aberta na contagem
do encoder do motor se usado no modo motor. Se a garra deve ser completamente aberta, nenhum
argumento ou o argumento -1 deve ser usado. Quando o robô é inicializado, a garra é fechada totalmente
e então aberta. A forma geral do comando é.
OPEN [<amount>]
87
Onde a <amount> opcional pode ser qualquer número positivo ou -1. Se você usar o comando OPEN com
um argumento maior que a garra possa mover (1024 contagens para o ED-7220C, 240 contagens para o
ED-XR4), o restante do argumento é descartado (e perdido) mas não causa um erro de execução. Quando
você quer abrir a garra totalmente, você não deve usar argumento. Isto garantirá compatibilidade com
versões futuras tanto do robô como do RoboTalk.
Quando o arquivo de configuração ajusta a garra para o modo AUX ou OUTPUT, qualquer argumento é
ignorado e a AUX1 ou OUTPUT1 é desligada. Este modo pode ser usado para operar uma válvula de ar
elétrica, uma solenóide DC ou outro dispositivo para controlar garras que sejam diferente do motor da garra
padrão.
O programa a seguir abrirá a garra em 30 contagens usando a variável G. (Nós estamos assumindo que a
garra é fechada e que a posição fechada é tal que permita um movimento com um total de 30 contagens do
encoder. Se a garra foi fechada com um grande objeto, isto não deve ser o caso).
SETI G = 30
REM ABRIR 30 CONTAGENS DA GARRA
OPEN G
O comando OUTSIG é usado para acionar e desacionar as oito linhas de sinal de saída do robô.
Onde <signal #> define uma das oito portas de saída. Se o número da porta for positivo, a porta é acionada
(a linha passa para nível baixo). Se o número da porta é negativo, a porta é desacionada (a linha passa para
nível alto). As portas são numeradas de 1 até 8. Os sinais são normalmente usados para sincronizar
dispositivos externos, tais como outros robôs, esteiras, entre outros. Todas as portas são desacionadas
(estão em estado de nível alto) no início de execução de um programa. Portanto, se seu programa requer
que estes sinais sejam configurados, você deve explicitar a cada vez dentro de seu programa.
Nota: No controlador ED-MK3, acionar uma saída significa passar o sinal do nível lógico alto para o nível
lógico baixo. No controlador ED-MK4, acionar uma saída significa acionar a chave correspondente que
permite que a corrente flua no circuito de saída. Na restauração, todas as saídas são trazidas para o
estado de nível alto. Este é o modo mais conveniente de chavear dispositivos de estado sólido.
Exemplos:
O programa a seguir acionará todos os oito sinais e então irá desligá-los novamente usando loops e
variáveis.
88
REM TURN ALL ON THEM OFF
FOR A = 1 TO 8
OUTSIG A
NEXT
FOR B = -8 TO -1
OUTSIG B
NEXT
END
Um exemplo final mostra um fragmento de código do programa de soldagem. Uma vez que a solta é feita,
um sinal de saída é acionado. Este sinal diz à esteira para avançar para o próximo item na posição.
Out of bounds
O comando PATH é usado para inicializar um movimento de trajeto contínuo que foi previamente definido
usando os comandos SETPATH e/ou SETPATHX. O comando pode ser somente usado com uma combinação
do ED-MK4 e do robô XR-4. Um coprocessador matemático para o computador é necessário.
O parâmetro <max move> é a distância máxima do trajeto em milímetros por passo. Um passo corresponde
a 1/60 de um segundo. O parâmetro deve ser mantido pequeno, caso contrário um erro do tipo Move too
long pode ser gerado. O valor padrão é 1mm.
O comando.
PATH 0.5,1.0
Fará com que o trajeto seja feito com a metade da velocidade do sistema. Um movimento máximo de 1mm
por 1/60 segundo é permitido.
O exemplo a seguir garantirá em primeiro lugar que nenhuma localização de trajeto contínuo exista
previamente, então cria um movimento de trajeto contínuo usando três pontos previamente definidos e
finalmente executa o movimento de trajeto contínuo. Se o comando CLEARPATH não fosse usado e os
comandos anteriores SETPATH e SETPATHX tivessem sido executados, então as três localizações abaixo
seriam adicionados ao movimento existente e todos eles executados.
89
CLEARPATH
SETPATH POINT1
SETPATH POINT2
SETPATH POINT3
PATH
No exemplo acima, o movimento deve ser do POINT1 para o POINT2 e para o POINT3.
Nota: Pelo menos dois pontos devem ser configurados antes do trajeto ser gerado.
CLEARPATH
SETPATH POINT1
SETPATH POINT2
PATH
SETPATH POINT3
SETPATH POINT4
PATH
No exemplo acima, o robô primeiramente irá mover da posição atual para o POINT1, para o POINT2, então
o robô moverá novamente para o POINT1, para o POINT2, então para o POINT3 e finalmente para o
POINT4. Em alguns casos, esta série pode ser o movimento desejado, mas em outros o autor do programa
pode não ter a intenção de repetir o movimento do POINT1 para o POINT2. O programa seguir remove o
movimento repetido usando o comando CLEARPATH.
CLEARPATH
SETPATH POINT1
SETPATH POINT2
PATH
CLEARPATH
SETPATH POINT3
SETPATH POINT4
PATH
Os comandos SETPATH e SETPATHX podem ser misturados. O fragmento de programa a seguir é válido.
SETPATH POINT1
SETPATHX 0.0,108.35,321.44
SETPATHX 0.0,188.46,403.67
SETPATH POINT2
PATH
No exemplo acima, o movimento deve ser da posição atual para o POINT1, para a localização
(0.0,108.35,321.44), para (0.0,188.46,403.67) e finalmente para o POINT2.
Se o comando PATH for usado sem nenhuma localização previamente definida ou se somente uma
localização é definida, um erro Point not defined será gerado.
90
7.41 PAUSE Atrasos na Execução do Programa
O comando PAUSE é usado para atrasar a execução de seu programa por um período especificado de
tempo.
PAUSE <time>
Onde <time> é a duração do tempo para atraso em décimos de segundo e está na faixa de 1 a 3000. Você
pode interromper o atraso durante a execução teclando ESC ou A (Abort). Isto levará a execução do
programa para a próxima linha do programa.
PAUSE 100
PAUSE 10
O comando PAUSE gerará um erro Out of bounds se o valor do tempo for menor que 1 ou maior que 3000.
O comando POINT é usado para configurar uma variável de localização para a posição atual do robô ou
configurar uma variável de localização para um valor específico.
A forma do comando é.
Primeira forma -
Segunda forma -
Na primeira forma, o POINT é usado para configurar uma variável de localização igual a posição atual do
robô. Se o nome da variável de localização começar com a letra x, a variável será interpretada como um
ponto cartesiano. Na segunda forma, o POINT é usado para designar um ponto de localização para uma
variável. Os parâmetros da segunda forma correspondem aos eixos da articulação ou ao sistema de
coordenada cartesiana dependendo do tipo de variável de localização. Os parâmetros B, C, D, E e F
podem ser constantes inteiras, variáveis inteiras ou expressões inteiras. Os parâmetros X, Y, Z, A e T
podem ser constantes decimais, variáveis decimais ou expressões decimais.
O segmento de código a seguir utiliza o comando RT-Vision para ensinar o sistema Vision a encontrar a
localização de todos os objetos e designar àquelas localizações para a variável XOBJ[i].
CAPTURE
BINARIZE
SEGMENT
FOR I = 1 TO OBJECTS
POINT XOBJ[I] = I.CENTERX, I.CENTERY, 0.0, 0.0, I.ANGLE
NEXT
91
7.43 REM Observação, Documentação
O comando REM é usado para colocar um comentário ou observação no código fonte de seu programa.
Todo o texto entre o comando REM e o final da linha será ignorado pelo RoboTalk.
REM <remark>
Onde <remark> pode ser qualquer texto com tamanho de uma linha. Observações são úteis na documentação
do programa. Se você explicar o que cada rotina executa e como ela executa, será mais fácil para você e
outros entenderem seu programa mais tarde.
O programa a seguir imprimirá a mensagem ESTE É UM TESTE na tela. Nenhuma outra mensagem será
impressa porque as observações são ignoradas pelo RoboTalk.
A declaração RETURN é usada para provocar o retorno a partir de uma sub-rotina. Todas as sub-rotinas
devem ter sido chamadas através do comando GOSUB. Após o comando RETURN ter sido executado,
a execução do programa continuará na linha imediatamente após a linha do comando GOSUB que
chamou a sub-rotina.
RETURN
Lembre-se que aqui estamos nos referindo a palavra RETURN, não a tecla do teclado do computador.
O programa a seguir.
ESTA É A LINHA UM
ESTA É A LINHA DOIS
ESTA É A LINHA TRES
A linha 200 não é executada nunca porque o comando RETURN na sub-rotina 100 provoca o retorno da
execução para o programa principal.
Todos os comandos RETURN devem ser precedidos do GOSUB. Se um comando RETURN for encontrado
sem que tenha havido a declaração de um GOSUB, você verá a mensagem.
92
7.45 SEARCH Comando do Movimento Condicional
O comando SEARCH é um comando de alto nível que move um motor de um eixo especificado um
conjunto de número de contagens do encoder por interação, incrementando a variável Z por um a cada
interação e continua este processo até que a porta de entrada especificada case com o estado programado.
Onde <motor label> é qualquer um dos oito motores (A - H), <direction/step increment> é um número
inteiro positivo ou negativo e <port number> é qualquer número entre 1 e 8 representando uma das oito
portas de entrada do controlador.
Quando o comando SEARCH é executado, a variável Z é limpa e o motor especificado é movido em direção
e por uma quantidade especificada por <direction/step increment>. A variável Z é então incrementada por
um. Após o movimento ser completado, a porta de entrada especificada é verificada com relação a um
estado que esteja de acordo com o estado programado, isto é, ON ou OFF. Se não estiver de acordo, o
eixo é movido novamente, a variável Z é incrementada e a porta de entrada é verificada. Este processo
continua até que o estado da porta esteja de acordo ou o motor atole. Quando o estado da porta de entrada
casar com o estado programado, o comando SEARCH será abandonado com a variável Z contendo o
número total de interações que o comando SEARCH completou antes do estado da porta casar com o
programado.
Assuma que uma micro chave está embutida na mão do robô de tal modo que quando a garra toca um
objeto, o contato da chave feche e a porta de entrada passa para nível baixo (OFF).
O programa a seguir moverá o eixo D para baixo, um passo de cada vez, até que a garra entre em contato
com o objeto e neste momento o valor da variável Z é mostrada na tela.
1 MOVEP OBJECT
2 SEARCH D,-1,1
3 TYPE Z
4 END
A linha 1 move o robô para a posição acima do objeto. Na linha 2 o comando SEARCH move o braço para
baixo até que a porta de entrada passe para nível baixo (OFF). A linha 3 mostra o número de vezes que o
motor D foi movido antes da porta de entrada passar para nível baixo (OFF).
O próximo exemplo ilustra o uso do comando SEARCH na medida de distância entre dois sensores óticos
colocados na mesa e conectados às portas de entrada um e dois. Assuma que o braço seja posicionado
de tal modo que o movimento do motor F irá primeiramente interromper o sensor conectado à porta um e
o movimento seguinte interromperá o próximo sensor. A interrupção do sensor passará a entrada
correspondente para ON.
1 MOVEP SENSOR
2 10 IFSIG 1 THEN GOTO 20
3 MOVE 0,0,0,0,1
4 GOTO 10
5 20 SEARCH F,1,2
6 TYPE Z
A linha 1 posiciona o braço imediatamente antes de interromper o primeiro sensor. A linha 2 verifica a porta
de entrada um para conferir se o sensor foi interrompido, se não foi, o motor F é movido e a porta é
verificada novamente; isto continua até que o braço interrompa o primeiro sensor. O comando SEARCH é
agora executado movendo o motor F um passo a cada vez até que a porta de entrada dois passe para o
estado ON, que significa que o segundo sensor foi interrompido. A linha 6 é alcançada quando o comando
SEARCH for completado. Neste ponto a variável Z contém o número de contagens do encoder necessário
para mover do sensor um para o próximo.
93
Conhecendo-se a geometria do braço, pode-se converter a contagem do encoder em uma distância linear;
então usando o valor na variável Z, a distância entre os dois sensores pode ser calculada.
O comando SEND envia uma string ao controlador ED-MK4. A forma geral do comando é.
SEND <string>
Onde <string> é uma string literal ou uma variável string entre aspas.
A string deve representar um comando válido do ED-MK4. Um erro Unknown command será gerado se
configurado para ED-MK3.
O SETI é usado para designar a uma variável um valor inteiro. A forma geral do comando é.
Onde <variable name> é o nome da variável e <integer value> é o valor inteiro designado. Existem 26
variáveis no RoboTalk; as letras A - Z. O RoboTalk pode processar expressões complexas; portanto,
<integer value> pode ser uma constante ou qualquer expressão do RoboTalk válida, incluindo outras variáveis.
SETI A=10
SETI T=2
SETI G=A/3*T-23
SETI Z=0
O SETI é normalmente usado para formar uma parte de um loop contador. Por exemplo, o programa a
seguir imprimirá os números de 1 a 10 na tela.
SETI C=1
10 TYPE C;
SETI C=C+1
IF C<11 GOTO 10
END
O comando SETPATH é usado para adicionar uma localização ao movimento de trajeto contínuo. O comando
pode somente ser usado com uma combinação do ED-MK4 e do robô XR-4. Um coprocessador matemático
para o computador é necessário.
SETPATH <point>
94
Refira-se ao comando PATH para exemplos do uso do comando SETPATH.
O comando SETPATHX é usado para adicionar uma localização ao movimento de trajeto contínuo. O
comando pode somente ser usado com uma combinação do ED-MK4 e do robô XR-4. Um coprocessador
matemático para o computador é necessário.
Comandos SETPATHX múltiplos definem um trajeto que o robô percorrerá. O trajeto definido é executado
usando o comando PATH e é percorrido de maneira definida pelo SETPATHX. O trajeto pode ser apagado
usando o comando CLEARPATH.
TROFF
Lembre-se que a tela de verificação pode ser ativada usando tanto o comando TRON em seu programa ou
digitando T a qualquer momento enquanto o seu programa é executado (não pode ser quando estiver
interrompido). Normalmente, o par de comando TRON/TROFF é usado para verificar uma porção selecionada
de seu programa.
O programa a seguir verificará somente a região entre os comando TRON e TROFF a cada vez que o loop
é repetido.
SETI H=0
10 TYPE H
MOVEP P
TRON
MOVEP P1
MOVEP P2
CLOSE 10
TROFF
SETI H=H+1
IF H=100 THEN GOTO 20
GOTO 10
20 END
TRON
95
Lembre-se que a tela de verificação pode ser ativada usando tanto o comando TRON em seu programa ou
digitando T a qualquer momento enquanto o seu programa é executado (não pode ser quando estiver
interrompido). Normalmente, o par de comando TRON/TROFF é usado para verificar uma porção selecionada
de seu programa. A tela de verificação mostrará a posição de todos os oitos motores e o estado de todas
as entradas e saídas assim como as duas portas auxiliares. Mostrará a linha de comando de seu programa
que está sendo executada no momento, o valor de 26 variáveis e a tela de saída atual.
O programa a seguir verificará as duas linhas de código entre os comando TRON e TROFF.
MOVE 23,23,453,344,700
TRON
WAITFOR 3
MOVEP Q27
TROFF
HOME
O comando TYPE é a forma genérica de imprimir dados na tela no RoboTalk. Você pode usá-lo para
imprimir string de caracteres ou valores numéricos na tela. Existem duas formas de comando; uma para
mostrar strings, e outra para mostrar números.
TYPE “<string>”[;]
Imprimirá.
Seguido da ação de retorno / pular para próxima linha na tela de seu computador. Todas as strings
devem estar entre aspas dupla. A declaração.
TYPE 10/5+2
Mostrará o número 4 seguido da ação de retorno / pular para a próxima linha. Se você quer eliminar a ação
de retorno / pular para a próxima linha após a informação ser impressa na tela, coloque o ponto e vírgula no
final da linha. Por exemplo.
Mostrará.
ESTE É O VALOR DE A: 10
Exemplos.
96
Após executar este programa:
Você visualizará.
O comando VEL ajusta a velocidade do motor especificado pelo ED-MK4. A forma geral do comando é.
Onde <motor letter> é uma letra única entre A e H e <velocity> é uma variável inteira ou expressão com
valor entre -100 e 100.
Este valor respresenta uma porcentagem da máxima velocidade atual atingível para o motor especificado.
O comando VEL somente pode ser usado se o RoboTalk for configurado para o controlador ED-MK4. Um
erro Unknown command será gerado se configurado para ED-MK3.
O comando WAITFOR é usado para suspender a execução do programa até que as condições do sinal de
entrada especificado estejam no estado especificado.
Onde <input #> é qualquer um dos oito sinais de entrada. Você pode usar o comando WAITFOR para
esperar até que o sinal especificado seja habilitado (ON) usando um número de sinal positivo. Para esperar
até que o sinal especificado seja desabilitado (OFF), utilize um número de sinal negativo. Se mais que um
sinal de entrada for especificado no comando, todas as condições devem ser simultaneamente satisfeitas
antes da espera ser finalizada. Por exemplo.
WAITFOR 6
Suspenderá a execução do programa até que o sinal de entrada 6 seja habilitado (passe para nível alto),
enquanto.
WAITFOR -6
Suspenderá a execução do programa até que o sinal de entrada 6 seja desabiltado (passe para nível baixo,
isto é, seja aterrado). Se o sinal estiver no estado desejado quando o comando WAITFOR for encontrado,
então a execução do programa continuará imediatamente na linha seguinte sem o atraso.
97
O comando WAITFOR é gerado para sincronizar dois ou mais robôs, ou sincronizar a operação de um robô
com dispositivos externos, tais como esteira.
Este programa não excutará nada até que o sinal 7 seja habilitado (ON) e o sinal 5 seja desablitado (OFF).
Então imprimirá “SINAIS COMBINAM”.
Out of bounds
Fim.
98
Apêndice
Códigos de Erro
ERROS DE COMANDO
Código Significado
10 INV_CMD Comando inválido.
11 PAR_OUT Parâmetro fora da faixa.
12 MIS_PAR Falta parâmetro.
13 NO_DLIM Delimitador esperado não encontrado.
14 TOO_MNY Comando de string muito longa.
16 TP_ACTV O Controlador Manual está ativo ou ocupado.
ERROS DE COMUNICAÇÃO
Código Significado
20 HST_OVF Sobrecarga do buffer de entrada do computador.
21 HST_TMO Time out do USART do computador.
22 HST_ERR Erro do USART do computador (quadro, paridade, etc).
23 TP_OVL Sobrecarga do buffer de entrada do Controlador Manual.
24 TP_TMO Time out do USART do Controlador Manual.
25 TP_ERRO Erro do USART do Controlador Manual.
26 TP_OVRN Problema de sincronismo do USART do Controlador Manual.
27 HST_OVR Problema de sincronismo do USART do comutador.
ERROS DE DIAGNÓSTICOS
Código Significado
30 BAD_RAM Localização de RAM danificada.
32 TP_ERR Erro de diagnóstico retornado do Controlador Manual.
34 NO_TP Controlador Manual ausente.
Código Significado
40 LAB_ERR Falta de label.
41 NO_PGRM Nenhum programa na memória.
42 MEM_FUL Memória do Controlador Manual insuficiente.
43 EPM_FUL Memória EEPROM insuficiente.
44 RPL_ERR Não pode substituir o primeiro registro.
45 PROGRAM Um programa do Controlador Manual já existe.
ERROS DE EXECUÇÃO
Código Significado
50 HRD_ERR Falha na rotina do HARDHOME.
51 NO_HARD Hard home não ajustado.
52 NO_SOFT Soft home não ajustado.
53 AR_OVFL Sobrefaixa aritmética.
54 TRG_ERR Erro retornado da função trigger.
55 STK_ERR Erro de sobrefaixa de pilha.
56 BUSY Ainda executando um movimento trapezoidal.
57 NO_MOTR Motor inativo referenciado.
58 MOV_DAT Dados de movimento insuficiente (velocidade ou aceleração = 0).
59 BAD_MOV Modo do motor impróprio para o comando.
99
60 NO_A_SW Chave de limite A não encontrado.
61 NO_B_SW Chave de limite B não encontrado.
62 NO_C_SW Chave de limite C não encontrado.
63 NO_D_SW Chave de limite D não encontrado.
64 NO_E_SW Chave de limite E não encontrado.
65 NO_F_SW Chave de limite F não encontrado.
66 NO_G_SW Chave de limite G não encontrado.
67 NO_H_SW Chave de limite H não encontrado.
ERROS DE MOTOR
Código Significado
100 A STALL Motor A atolado.
101 B STALL Motor B atolado.
102 C STALL Motor C atolado.
103 D STALL Motor D atolado.
104 E STALL Motor E atolado.
105 F STALL Motor F atolado.
106 G STALL Motor G atolado.
107 H STALL Motor H atolado.
110 A CURRENT LIMIT Circuito de limite de corrente do motor A foi ativado.
111 B CURRENT LIMIT Circuito de limite de corrente do motor B foi ativado.
112 C CURRENT LIMIT Circuito de limite de corrente do motor C foi ativado.
113 D CURRENT LIMIT Circuito de limite de corrente do motor D foi ativado.
114 E CURRENT LIMIT Circuito de limite de corrente do motor E foi ativado.
115 F CURRENT LIMIT Circuito de limite de corrente do motor F foi ativado.
116 G CURRENT LIMIT Circuito de limite de corrente do motor G foi ativado.
117 H CURRENT LIMIT Circuito de limite de corrente do motor H foi ativado.
118 I CURRENT LIMIT Circuito de limite de corrente da porta auxiliar 1 foi ativado.
119 J CURRENT LIMIT Circuito de limite de corrente da porta auxiliar 2 foi ativado.
Revisão: 00
Data Emissão: 08/07/02
100
101