Você está na página 1de 101

SISTEMA DE

TREINAMENTO EM

ED-7220C
ROBÓTICA

Manual de Experiências

1
ÍNDICE
ED-7220C

CAPÍTULO – 1. VISÃO GERAL DO CONTROLADOR ED-MK4 ...................................................... 06

1.1 Introdução ................................................................................................................................. 06


1.2 Modos de Operação .................................................................................................................. 06
1.3 Operação do Robô .................................................................................................................... 06
1.4 As Portas do Motor ................................................................................................................... 07
1.5 Portas Auxiliares ....................................................................................................................... 08
1.6 Sistema de Coordenada ............................................................................................................ 08
1.7 Comandos de Movimento de Posição ........................................................................................ 09
1.8 Controles do Motor .................................................................................................................... 09
1.9 Movendo os Motores ................................................................................................................. 10
2.0 Operação de Entrada / Saída .................................................................................................... 10
2.1 Características de Proteção ....................................................................................................... 11

CAPÍTULO – 2. O AJUSTE DE COMANDO DO CONTROLE MANUAL ......................................... 12

2.1 Iniciando um Comando ou Função ............................................................................................ 12


2.2 Entrando Números e Outras Informações ................................................................................. 12
2.3 Se Você Mudar de Idéia ............................................................................................................ 12
2.4 Se Você tem um Problema ....................................................................................................... 13
2.5 Descrição das Teclas ................................................................................................................ 13
2.5.1 Edit / Replace ........................................................................................................................ 13
2.5.2 Run / Halt ............................................................................................................................... 14
2.5.3 Erase / Delete Next ................................................................................................................ 14
2.5.4 On Input / Switch Go To ......................................................................................................... 15
2.5.5 Set Label ................................................................................................................................ 16
2.5.6 Go To Label ............................................................................................................................ 17
2.5.7 Set Output ............................................................................................................................. 17
2.5.8 Wait on Input / Switch ............................................................................................................ 18
2.5.9 Go To Soft Home .................................................................................................................... 19
2.5.10 Set Soft Home ...................................................................................................................... 20
2.5.11 Relative ................................................................................................................................. 20
2.5.12 Velocity ................................................................................................................................ 20
2.5.13 Delay .................................................................................................................................... 22
2.5.14 Open .................................................................................................................................... 22
2.5.15 Close .................................................................................................................................... 23
2.5.16 Aux ...................................................................................................................................... 23
2.5.17 As Chaves do Motor ............................................................................................................. 24
2.5.18 As Teclas das Setas ............................................................................................................ 29
2.5.19 Stop (Parar) .......................................................................................................................... 30
2.5.20 Config (Configuração) ........................................................................................................... 31

CAPÍTULO – 3. EXEMPLO DE PROGRAMAS DO CONTROLE MANUAL ..................................... 35

3.1 Introdução ................................................................................................................................. 35


3.2 Setup ........................................................................................................................................ 35
3.3 Jump ......................................................................................................................................... 37
3.4 Criando Movimentos .................................................................................................................. 39

CAPÍTULO – 4. ENTRADA E SAÍDA .............................................................................................. 40

4.1 Introdução ................................................................................................................................. 40


4.2 Entrada de Aplicações .............................................................................................................. 41
4.3 Saída de Aplicações ................................................................................................................. 43
4.4 Obtendo 5V Através da Alimentação do I/O ............................................................................... 44

CAPÍTULO – 5. DESCRIÇÃO DOS COMANDOS DO MENU PRINCIPAL ...................................... 47

5.1 Config ........................................................................................................................................ 48


5.2 Do ............................................................................................................................................. 49

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

CAPÍTULO – 6. O EDITOR ............................................................................................................ 53

6.1 Append ..................................................................................................................................... 54


6.2 Delete ....................................................................................................................................... 55
6.3 Edit ........................................................................................................................................... 56
6.4 Examine .................................................................................................................................... 57
6.5 Find ........................................................................................................................................... 58
6.6 Insert ......................................................................................................................................... 59
6.7 List ............................................................................................................................................ 60
6.8 Listl ........................................................................................................................................... 60
6.9 New ........................................................................................................................................... 61
6.10 Print ........................................................................................................................................ 61
6.11 Printl ........................................................................................................................................ 61
6.12 Quit ......................................................................................................................................... 62
6.13 Remove ................................................................................................................................... 62
6.14 Skip ........................................................................................................................................ 62
6.15 Teach ...................................................................................................................................... 63

CAPÍTULO – 7. DESCRIÇÃO DOS COMANDOS ........................................................................... 66

7.1 Acos ......................................................................................................................................... 66


7.2 Arc ............................................................................................................................................ 67
7.3 Arcx .......................................................................................................................................... 68
7.4 Aux ........................................................................................................................................... 68
7.5 Beep ......................................................................................................................................... 69
7.6 Clearpath ................................................................................................................................... 69
7.7 Close ........................................................................................................................................ 69
7.8 Cls ............................................................................................................................................ 70
7.9 Cos, sin,tan .............................................................................................................................. 70
7.10 End ......................................................................................................................................... 71
7.11 Error_check ............................................................................................................................. 71
7.12 For...To... / Next ...................................................................................................................... 72
7.13 Get_Answer ............................................................................................................................ 72
7.14 Gosub ..................................................................................................................................... 73
7.15 Goto ........................................................................................................................................ 73
7.16 Grip ......................................................................................................................................... 74
7.17 Hardhome ................................................................................................................................ 74
7.18 Home ...................................................................................................................................... 74
7.19 If...Then ................................................................................................................................... 75
7.20 Ifmicro... Then ......................................................................................................................... 76
7.21 Ifsig...Then .............................................................................................................................. 76
7.22 Input ........................................................................................................................................ 77
7.23 Local ....................................................................................................................................... 78
7.24 Move ....................................................................................................................................... 78
7.25 Move To ................................................................................................................................... 79
7.26 Movegh .................................................................................................................................... 80
7.27 Movegh To ............................................................................................................................... 80
7.28 Movep ..................................................................................................................................... 81
7.29 Moves ..................................................................................................................................... 82
7.30 Movexs .................................................................................................................................... 82
7.31 Movex ..................................................................................................................................... 83
7.32 Movex To ................................................................................................................................. 83
7.33 Movexp .................................................................................................................................... 84
7.34 Offline ...................................................................................................................................... 84
7.35 Offset ...................................................................................................................................... 85
7.36 OffsetX .................................................................................................................................... 87
7.37 Online ..................................................................................................................................... 87

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

Códigos de Erro .............................................................................................................................. 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.

1.2 MODOS DE OPERAÇÃO

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.

Os Capítulos 5 e 6 fornecem uma operação detalhada do modo Controlador Manual.

1.3 OPERAÇÃO DO ROBÔ

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:

A Abertura e fechamento da mão.


B Rotação da mão.
C Movimento azimutal da mão.
D Rotação do cotovelo.
E Rotação do ombro.
F Rotação do corpo.

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:

A Abertura e fechamento da mão.


B Rotação da mão.
C Subida da mão (eixo Z).
D Rotação do cotovelo.
E Rotação do ombro.

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.

1.4 AS PORTAS DO MOTOR

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

Movimento Trapezoidal Movimento Triangular

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.

1.5 PORTAS AUXILIARES

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.

1.6 SISTEMA DE COORDENADA

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.

O sistema de coordenada XYZ para o ED-7220C, XR-4 e SCARA é ilustrado a seguir.

O apêndice fornece maiores detalhes do sistema de coordenada XYZ ou Cartesiana.

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.

1.8 CONTROLES DO MOTOR

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.

1.9 MOVENDO OS MOTORES

O procedimento geral para mover um motor é o seguinte:


Garanta que o modo correto do motor seja configurado.
Configure os registros necessários de acordo com o modo do motor.
Execute o comando do movimento.
Nem todos estes passos são necessários para todos os modelos. Uma descrição mais detalhada para
cada modo é dado a seguir.

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

Configurando Um Nível de Potência do Motor

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.

2.0 OPERAÇÃO DA ENTRADA / SAÍDA

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

2.1 INICIANDO UM COMANDO OU FUNÇÃO

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.

2.2 ENTRANDO NÚMEROS E OUTRAS INFORMAÇÕES

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.

2.3 SE VOCÊ MUDAR DE IDÉIA

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

2.5 DESCRIÇÃO DAS TECLAS

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.

MODE refere-se aos modos PLAY ou EDIT.


LINE# refere-se ao modo EDIT ( e algumas vezes ao modo RUN) e é sempre o número de registro atual.
LINE#+1 refere-se ao modo EDIT e é o registro atual mais um. Note que o número da linha não irá mudar
se a tecla REPLACE foi usada ao invés do ENTER. As descrições presumem que a tecla ENTER seja
usada.

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.

Se um programa ainda existe na memória o display irá mostrar:

Se não existir programa o display irá mostrar:

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.

Se não existir programa o display irá mostrar:

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.

Se a chave RUN/HALT é pressionada, a execução será suspensa. Se o comando a ser executado é um


comando para mover o motor, o motor irá desacelerar ate a parada. O display irá mostrar:

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.

2.5.3 ERASE / DELET NEXT

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

Para proteger contra apagamentos acidentais o controle irá mostrar:

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.

A função delet-next é disponível quando o sistema esta em modo edit.


O registro atual é apagado ou removido do arquivo do controle. Uma vez o registro removido do arquivo ele
é perdido para sempre. Você não pode apagar o cabeçalho do registro.

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:

Tecla ON INP/SW/ GO TO é pressionada

Entrada 04 selecionada (Pressiona-se 0 e depois 4)

15
O estado desligado (estado a ser alcamçado) é selecionado.

Label 2 é selecionado

Tecla ENTER é pressionada

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.

2.5.5 SET LABEL


Ajustes de rótulos para um comando de atalho condicional ou incondicional.

Esta função é disponível somente no modo edit.

Você deve inserir o rótulo usando as teclas de dígitos ou setas. A faixa válida de rótulo é 1 a 99.

Os displays seguintes mostram um exemplo de um rótulo ajustado para o valor 2.

Tecla SET LABEL é pressionada

Label 2 é selecionado utilizando tanto os dígitos quanto as setas

Tecla ENTER pressionada

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

Este comando implementa um atalho incondicional para um rótulo especificado.

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.

Os displays seguintes mostram um exemplo onde o rótulo é 2:

Tecla GO TO LABEL é pressionada

Label 2 é selecionado utilizando tanto os dígitos quanto as setas

Tecla ENTER pressionada

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.

2.5.7 SET OUTPUT

Este comando ajusta uma saída especificada para um estado especificado.

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.

Tecla SET OUTPUT é pressionada

A Saída 2 é selecionada utilizando as teclas de dígitos

17
Estado desligado é selecionado utilizando as teclas Desligar e Seta para Baixo

Tecla ENTER é pressionada

A saída será ajustada imediatamente.

2.5.8 WAIT ON INP/SW


Espera até que a entrada selecionada (ou chave) combine com o estado especificado.

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:

Tecla WAIT ON INP/SW pressionada

Entrada 02 selecionada (0 é pressionado e depois 2)

O estado desligado (estado de espera) é selecionado

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.

2.5.9 GO TO SOFT HOME

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.

Uma seqüência típica de exibições é a seguinte:

Tecla GO TO SOFT HOME pressionada

Tecla ENTER pressionada

19
Ao completar o movimento.

2.5.10 SET SOFT HOME

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.

Tecla VELOCITY pressionada. Velocidade atual do sistema em 80%

50% selecionado utilizando as teclas numéricas ou setas

Tecla ENTER pressionada

Como mencionado anteriormente, pressionando a chave de velocidade imediatamente após pressionando


uma chave de motor permite a você mudar a velocidade do motor selecionado .Isto é disponível somente
para motores em modo de velocidade trapezoidal. E ainda, diferente de um movimento do motor, você pode
ajustar somente uma velocidade de motor por registro. O exemplo a seguir assume que o controle manual
esta no sistema de coordenada de articulação e motor D esta em modo trapezoidal usando posição
absoluta.

Tecla Motor D presisonada. A posição atual é de 230 contagens do encoder

Tecla VELOCITY pressionada imediatamente.


A velocidade atual do motor é de 63% da velocidade do sistema

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.

Os seguintes displays mostram um exemplo de um delay de 5 unidades ou 5 décimos de segundo.

Tecla DELAY pressionada

5 é entrado utilizando tanto as teclas numéricas como as setas

Tecla ENTER pressionada

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

Tecla OPEN é pressionada

22
Tecla ENTER é pressionada e efetua a execução

Ao completar o movimento

Se a garra já esta aberta não haverá 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 é:

Tecla CLOSE pressionada

Tecla ENTER é pressionada e começa a execução

Ao completar o movimento

Se a garra já esta fechada não haverá 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.

Tecla AUX é pressionada

Porta 2 é selecionada utilizando as teclas numéricas. Nível de potência atual é 0

50% é selecionado utilizando tanto as teclas numéricas como as setas

Tecla +/- é pressionada para mudar o sinal

Tecla ENTER é pressionada

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.

1) Modo Articulação. Para selecionar o motor em modo trapezoidal.


2) Modo XYZ. Os motores requisitados estão em modo trapezoidal.
3) Modo Velocidade. O motor selecionado esta em modo velocidade.

Verifique a descrição da Chave CONFIG para informações de ajustes 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.

Cada um dos casos acima serão discutidos na seqüência.

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.

Mantendo a tecla pressionada irá movimentar o motor lentamente na mesma velocidade.

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.

Tecla do motor D pressionada. A posição atual é de 230 contagens do encoder

Motor D movido para a posição 400 utilizando as teclas de setas

Motor E selecionado. A posição atual é de 500 contagens do encoder

Motor E movido para a posição 750 usando as teclas de setas

Motor D selecionado novamente. A posição atual é de 400 contagens do encoder

Motor D movido para a posição 450 usando as teclas de setas

Tecla ENTER pressionada

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.

Os displays seguintes fornecem um exemplo típico de seqüência de chaves de um movimento XYZ.

Motor F selecionado. O eixo padrão selecionado é o eixo X

Tecla de seta pressionada para mover o motor F

Tecla de seta liberada. A posição X foi alterada

27
Tecla CONFIG é pressionada para selecionar e exibir o eixo Y

O motor E é selecionado

A tecla de seta é pressionada para mover o motor E e então é liberada

A tecla CONFIG é pressionada 4 vezes para exibir a posição do eixo X


Note que a posiçào do eixo X mudou de acordo com o tempo

Tecla ENTER pressionada

MODO VELOCITY (velocidade)

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.

Tecla seta para baixo é pressionada até -50% da velocidade do sistema

Tecla ENTER pressionada

2.5.18 AS TECLAS DE SETAS

As teclas de setas possuem muitas funções. Isto inclui:

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

1) Para uma discussão sobre movimento de motores verifique o capítulo intitulado.


THE MOTOR KEYS (As chave de motor)

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:

VG,100 Ajusta a velocidade do sistema para 100 porcento


PD,E,100 (etc.) MC Mova para o ponto um.
VG,10 Ajusta o sistema de velocidade para 10 porcento.

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.

2.5.19 STOP (parar)

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.

2.5.20 CONFIG (configuração)

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.

CONFIG SYSTEM MENU

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 TRANSFER MENU permite a você transferir arquivos para e de EEPROM.

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.

GRIP MENU (menu Garra)

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.

TYPE MENU (menu Tipo)

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.

COORD MENU (menu coordenadas)

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.

TAKING CONTROL FOR THE HOST

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.

Fig. 2-1 CAMINHOS DE CONFIGURAÇÃO

33
NOTAS

34
CAPÍTULO 3

EXEMPLO DE PROGRAMAS DO CONTROLE MANUAL

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.

A configuração que faremos é:


O tipo de robô será 7220 / XR-4.
Motores de A ate F estarão em modo trapezoidal
Motores de G ate H estarão em modo idle.
A garra estará ativada
O sistema de coordenadas será articulação.

Nos iremos então solicitar um procedimento de hard home (posição zero) para iniciar o braço robô.

Tecla a Pressionar Informação do Display

Display inicial PLAY

Selecionando o Tipo de Robô

CONFIG CONFIG SYSTEM


GO TO HARD HOME

UP ARROW CONFIG SYSTEM


TRANSFER MENU

UP ARROW CONFIG SYSTEM


SETTINGS MENU

ENTER SETTINGS CFG


MODE MENU

UP ARROW SETTINGS CFG


COORD MENU

35
UP ARROW SETTINGS CFG
TYPE MENU

ENTER TYPE CFG


Tipo atual de robô

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.

Selecionando Modos de Motor

SETTINGS CFG
TYPE MENU

UP ARROW SETTINGS CFG


GRIP MENU

UP ARROW SETTINGS CFG


VERSION

UP ARROW SETTINGS CFG


MODE MENU

ENTER MODE CFG


MOTOR A MENU

1 ENTER MOTOR A CFG


Modo atual do motor

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

3 UP ARROW MODE CFG


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

ESCAPE SETTINGS CFG


MODE MENU

DOWN ARROW SETTINGS CFG


VERSION

DOWN ARROW SETTINGS CFG


GRIP MENU

ENTER GRIP CFG


estado atual da garra

Se a segunda linha do display mostra ENABLED, então pressione ESCAPE.

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.

Selecionando o Sistema de Coordenadas

SETTINGS CFG
GRIP MENU

UP ARROW SETTINGS CFG


VERSION

UP ARROW SETTINGS CFG


MODE MENU

UP ARROW SETTINGS CFG


COORD MENU

ENTER COORD CFG


Sistema de coordenada atual.

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.

Executando um Hard Home

CONFIG CONFIG SYSTEM


GO TO HARD HOME

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.

SL-2 Line 1 Cria Rótulo “2”.


OB,1,1 Line 2 Liga Saída 1.
OB,1,0 Line 3 Desliga Saída 1.
GL,2 Line 4 Desvia para o Rótulo “2”.

Set Label SL,- Line 0


2 SL,2- Line 0
Enter SL2 Line 1

Set Output OB,- Line 1


1 OB,1- Line 1
ON OB,1,1,- Line 1
Enter OB,1,1 Line 2

Set Output OB,- Line 2


1 OB,1,- Line 2
OFF OB,1,0- Line2
Enter OB,1,0 Line 3

Go To Label GL,- Line 3


2 GL,2- Line 3
Enter GL,2 Line

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.

SL,2 Line 1 Cria Rótulo “2”.


OB,1,1 Line 2 Liga Saída 1.
OB,1,0 Line 3 Desliga Saída 1.
LI,12,1,2 Line 4 Se a Chave 4 Estiver Ligada Então Desvia para o
Rótulo “2”.

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.

Para modificar a linha atual use a seguinte seqüência de teclas:

On Inp/Sw Go To LI,- Line 4


1 LI,1- Line 4
2 LI,12,- Line 4
On LI,12,1,- Line 4
2 LI,12,1,2- Line 4
Replace LI,12,1,2 Line 4

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.

3.4 CRIANDO MOVIMENTOS

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

OBS: Não implementado para o robo ED-7220C

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.

A figura 4.1 mostra uma configuração típica de entrada.

FIGURA 4.1

A figura 4.2 mostra uma configuração típica de saída.

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

Dessa forma se a entrada esta ligada o LED correspondente estará aceso.

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

ENTRADA Circuito Integrado


código 7407
Inversor de Coletor Aberto

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.

4.3 SAÍDA DE APLICAÇÕES

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

4.4 OBTENDO 5 VOLTS ATRAVÉS DA ALIMENTAÇÃO DO I/O

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

Descrição dos Comandos do Menu Principal

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

Config ................................................ Ajustes do Robô Talk

Do ....................................................... Ajusta um comando simples de Robô Talk

Edit ..................................................... Cria ou muda um programa

Files ................................................... Lista o diretório do disquete

Load ................................................... Carrega um programa do disquete

Quit .................................................... Deixa o Robô Talk

Run .................................................... Executa um programa

Save ................................................... Armazena um programa no disquete

Teach ................................................. Define uma posição do robô

Todos os comandos principais podem ser executados tanto digitando o nome do comando inteiro ou sua
primeira letra.

O restante deste capítulo irá descrever cada comando do menu principal.

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:

Robot Mode ( XR or SCARA)


Gripper Mode ( motor, Aux, output )
Programming mode ( ONLINE, OFFLINE)
Gripper Closure Distance

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.

5.2 DO Modo de execução direta

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

A seqüência seguinte irá mostrar “This is the DO mode” na tela.

DO<return>
: Type “This is the DO mode”
This is the DO mode
:Q

5.3 EDIT Criando ou alterando um programa

Edit permite ao usuário criar um novo programa aplicativo ou editando um existente.


O editor são realmente dois editores em um; um para texto ou o programa o outro para definir ou mudar as
variáveis de posição do robô. Inúmeras funções são disponíveis para que seja feita a alteração, listando
imprimindo e examinando o programa em um procedimento simples.
O capítulo 6 contem um descrição profunda de todos os comandos do editor.

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.

5.5 LOAD Carrega um programa do disquete


Em muitos casos, um programa que foi escrito será armazenado em um disquete para uso futuro. O
comando LOAD permite ao usuário carregar estes programas salvos e torná-los então disponíveis para
execução.

O formato geral do comando LOAD é

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.

Se o nome de arquivo não é determinado, O Robo Talk irá responder com

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.

5.6 QUIT Sair do Robo Talk

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.

5.7 RUN Executa um programa

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

5.8 SAVE Armazena um programa no disquete

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.

O formato geral do comando SAVE é

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.

Se não é dado o nome do arquivo, o Robo Talk irá responder com

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.

5.9 TEACH Define um ponto de localização

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 é

TEACH <point name>

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.

Texto do Comando Função

Append Insere texto no final do seu programa

Apaga as linhas especificadas no


Delete
seu programa

Permite que mudanças sejam feitas


Edit
em uma linha especificada

Encontra uma série de caracteres e


Find
faz dessa linha a atual

Insert Insere um texto na linha atual

List Lista seu programa na tela

Limpa o editor para um novo


New
programa

Imprime o seu programa através de


Print
uma impressora

Quit Retorna ao menu principal

Skip Vai para uma linha especificada

<return> Mostra a próxima linha

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

Mostra e posiciona o robô no


ponto especificado e permite
Examine
a você fazer mudanças na
posição

Lista todos os pontos


LISTL
(localização) programados

Imprime a localização dos


PRINTL pontos através de uma
impressora

Apaga uma variável de ponto


Remove
de seu programa

Permite que variáveis de


Teach
ponto sejam criadas

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

Teach: Guia o robô


Insert: introduz um
através de uma série
texto em seu Todos os outros
de movimentos
programa. Control - Z comandos do editor
usando o controle
a stop
manual

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.

O resto deste capítulo consiste de uma discussão detalhada desses comandos.

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

Assuma que o programa abaixo esta atualmente no modo editor.


1 WAITFOR 3
2 MOVE 0,10, 143, 33, 146
3 IFSIG 4 THEN MOVEP P23

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.

Se você entrou com o seguinte:

4 EM NOW WAITFOR 6
5 ^Z

Você deve ver:

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.

O formato geral do comando é

D <FIRST LINE #> [< LAST LINE#>]<RETURN>

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

Assuma que o programa abaixo esta atualmente no modo editor

1 SETI A=1
2 CLS
3 TYPE “PASSAR #:”;
4 TYPE A

Após Digitar

D 2<return>

Seu programa será parecido com isto:

1 SETI A=1
2 TYPE “PASSAR #:”;
3 TYPE

Após digitar

D 2 3 <return>

Seu programa irá parecer com isto:

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.

O formato geral do comando edit é

E <LINE #> <return>

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

Apaga um caractere da posição


DEL
atual

Copia o resto de uma linha e


END ou RETURN
finaliza o edit

Copia um caractere de uma


->
linha antiga para uma nova linha

Retrocede e apaga o caractere (


<-
o mesmo que BACKSPACE)

Cancela o edit; a linha antiga


ESC
não é modificada

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

Assuma que você tenha o seguinte como linha 1 no seu programa.

1 type “ESTE É UM TESTE”

A letra A esta faltando na sentença. Para consertar você deve digitar primeiro

E 1 <return>

Sua tela irá ficar então

1 type “ESTE É UM TESTE”


1 _

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

Agora digite um espaço e a letra A. Você irá ver

1 type “ESTE É UM TESTE”


1 type “ESTE É A

Pressione a tecla seta direita até que as aspas finais apareçam, então pressione <return>.
A linha 1 será agora

1 type “ESTE É UM TESTE”

Assuma que a linha 4 é

4 IF A<10 THEN THEN GOTO 100

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

4 IF A<10 THEN THEN GOTO 100


4 IF A<10 _

Agora, pressione a tecla DEL cinco vezes. Você ira ver

4 IF A<10 THEN THEN GOTO 100


4 IF A<10 /T//H/E//N/ /_

Você deve agora digitar <return> ou END e o resto da linha será copiado na nova linha. A linha quatro irá
agora ficar

4 IF A<10 THEN GOTO 100

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.

Você irá ver

enter new value for motor B (<cr> to skip):

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.

Após digitar um T para o prompt CHANGE?, o Robo Talk irá mostrar:

Teach point xxxxx

Onde xxxxx é o nome do ponto que esta sendo modificado.

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.

Se o string especificado não for encontrado, O Robo Talk irá mostrar:

<character string> NOT FOUND

Exemplo

Assuma que o seguinte programa está atualmente no editor.

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

Assuma que o seguinte programa esta atualmente em seu editor.

1 REM ESTE É UM PEQUENO PROGRAMA


2 MOVEP POINT
3 WAITFOR 3
4 MOVEP POINT 1
5 HOME

Para inserir uma nova linha de texto iniciando na linha 3, você primeiro digita

S 3 <return>

posiciona o editor na linha 3. Você irá ver

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

1 REM ESTE É UM PEQUENO PROGRAMA


2 MOVEP POINT
3 CLOSE - 1
4 WAITFOR 3
5 MOVEP POINT 1
6 HOME

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>

A segunda forma lista somente as linhas especificadas

L <FIRST LINE #> [<LAST LINE #>]<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.

Assuma que o seguinte programa esta atualmente no editor.

1 REM MOSTRAR OS NÚMERO 1 ATÉ 10


2 REM E MOVER O MOTOR F
3 SETI C=1
4 10 TYPE C
5 MOVE 0, 0, 0, 0, C
6 SETI C=C+10
7 IF C<101 THEN GOTO 10

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.

O display LISTL aparece como segue:

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.

Programas e pontos que são apagados não podem ser recuperados!

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.

A saída PRNTL aparece como a seguir

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

Se os pontos P0, P1, P2, P3, e P4 são definidos, então digitados

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

Assuma que o seguinte programa esta atualmente no editor.

1 REM MOSTRAR OS NÚMERO 1 ATÉ 10


2 REM E MOVER O MOTOR F
3 SETI C=1
4 10 TYPE C
5 MOVE 0, 0, 0, 0, C
6 SETI C=C+1
7 IF C<11 THEN GOTO 10

Para mostrar e fazer a linha 4 como a atual, você deve digitar

S 4 <return>

Do Editor. Você deverá ver então

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

Teach point BOX


Point box entered
Point box 1 entered
Point box 2 entered

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.

Todas as teclas de setas


ENTER
END
GO SOFT HOME
1, 10

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.

1 REM UM PROGRAMA DE EMPILHAR CAIXAS


2 TYPE “PROGRAMA DE EMPILHAMENTO DE CAIXAS”
3 FOR C = 1 TO 100

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>

Você irá ver

6 NEXT Editor Ready

Neste ponto digite

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:

1 REM UM PROGRAMA DE EMPILHAR CAIXAS


2 TYPE “PROGRAMA DE EMPILHAMENTO DE CAIXAS”
3 FOR C = 1 TO 100
4 TYPE “PASS”;
5 TYPE C
6 MOVEP BOX
7 MOVEP BOX1
8 MOVEP BOX2
9 NEXT

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.

Por exemplo, se você tinha instruído o seguinte comando Teach:

Teach point BOX

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.

Instruções de programa de Controle

BEEP CLS END


ERROR _CHECK FOR...TO.../ NEXT GET_ ANSWER
GOSUB GOTO IF...THEN...
IFMICRO...THEN IFSIG...THEN... INPUT
LOCAL PAUSE REM
RETURN SEND SETI
TROFF TRON TYPE
WAITFOR

Instruções de Controle de Robô

ARC ARCX AUX


CLEARPATH CLOSE GRIP
HARDHOME HOME MOVE
MOVE TO MOVEGH MOVEGH TO
MOVEP MOVES MOVEXS
MOVEX MOVEX TO MOVEXP
OFFLINE OFFSET OFFSETX
ONLINE OPEN OUTSIG
PATH POINT SEARCH
SETPATH SETPATHX VEL

Funções

ACOS ASIN ATAN


COS SIN TAN

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.

7.1 ACOS, ASIN, ATAN Funções Trigonométricas Inversas

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.

O formato geral do comando é

<floating point variable> = ACOS <floating point variable>


<floating point variable> = ASIN <floating point variable>
<floating point variable> = ATAN <floating point variable>

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.

O programa seguinte irá converter coordenadas cartesianas para coordenadas polares.

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.

O formato geral do comando é


ARC <point1>, <point2> [, <loop>][, <velocyt>][, <max move>]

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:

ARC SP1, DP1

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.

ARC XSP1, XDP1

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.

Os parâmetros opcionais propiciam controle de movimentos adicionais. Se <loops> é 0 ou não especificado


então o arco especificado por <point1> e <point2> será atravessado. De qualquer forma <loops> especifica
o numero de círculos a atravessar e pode ser fracionário. Por exemplo <loops> = 0,5 irá fazer com que a
metade de um circulo seja atravessada.

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

ARC SP1, DP1, 1.5, 0.5, 1.0

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.

O formato geral do comando é


ARCX <X1>, <Y1>, <Z1>, <X2>, <Y2>, <Z2>, [, <loop>][, <velocyt>][, <max move>]

Onde <X1>, <Y1>, e <Z1> é a localização do ponto intermediário e <X2>, <Y2>, <Z2> é a localização de
destino. Por exemplo:

ARCX 0.0, 108.35, 321.44, 0.0, 188.46, 403.67

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

Os parâmetros opcionais proporcionam controle de movimentos adicionais e são os mesmos daqueles


definidos no comando ARC.

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.

7.4 AUX Controle da Porta Aux

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.

AUX <port number>

Onde <port number> pode ser 1, -1, 2 ou -2.

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.

AUX <port number> = <output level>

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

BEEP não aceita comandos e não produz mensagens de erro.

O seguinte seguimento de programa espera para que a entrada #2 vá para o estado low então produz um
beep:

100 IFSIG 2 THEN GOTO 100


BEEP

7.6 CLEARPATH Limpa Trajetória Contínua do ED-MK4

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.

A forma geral do comando é

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.

7.7 CLOSE Controle da Garra

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.

A forma geral do comando é

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.

O programa a seguir fechará completamente a garra e então abrirá novamente

REM CLOSE THE GRIP


CLOSE -1
REM OPEN IT
OPEN -1

O programa a seguir fechará a garra em 30 contagens usando a variável G.

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.

7.8 CLS Limpar a Tela

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.

A forma geral do comando é

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”

7.9 COS, SIN, TAN Funções Trigonométricas

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.

A forma geral do comando é

<floating point variable> = COS <floating point variable>


<floating point variable> = SIN <floating point variable>
<floating point variable> = TAN <floating point variable>

O programa a seguir converterá coordenadas polares para coordenadas cartesianas.

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

Estas funções não produzem mensagens de erro.

7.10 END Marca Final de Programa

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.

A forma do comando END é

END

Este programa moverá para o PONT1 mas não para o POINT2.

TYPE “AGORA MOVENDO PARA O POINT1”


MOVEP POINT1
END
TYPE “ISTO NÃO VAI SER MOSTRADO”
MOVEP POINT2

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

7.11 ERROR_CHECK Lista o Conteúdo da Pilha de Erros do ED-MK4

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.

Um erro Unknown command será gerado se configurado para ED-MK4.

7.12 FOR ... TO ... / NEXT Controle de Loop do Programa

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

O programa a seguir é um exemplo em que um loop é embutido em outro.

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.

7.13 GET_ANSWER Interroga o Controlador ED-MK4

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.

A forma geral do comando é.

GET_ANSWER <string>

A string pode ser uma string literal entre aspas ou uma string variável.

Um erro Unkown command será gerado se configurado para ED-MK3.

7.14 GOSUB Chama Sub-rotinas

O comando GOSUB é usado para chamar uma sub-rotina nomeada.

A forma geral do comando é.

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.

REM PEGAR 20 BLOCOS


FOR A=1 TO 20
GOSUB 100
GOSUB 200
NEXT
END
100 REM PEGAR BLOCO
MOVEP BLOCK
MOVEP BLOCK1
MOVEP BLOCK2
CLOSE -1
RETURN
200 REM COLOCAR O BLOCO ABAIXO
MOVEP BLOCK5
MOVEP BLOCK6
MOVEP BLOCK7
OPEN -1
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.

7.15 GOTO Desvia para um Label

O comando GOTO é usado para transferir a execução do programa para a linha com o label especificado
na declaração GOTO.

A forma geral do comando GOTO é.

GOTO <label>

Onde <label> é qualquer label definido no programa.

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”

Se o label especificado não é definido no programa, você verá.

Label not defined

7.16 GRIP Fecha a Garra e Registra a Contagem

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.

A forma do comando GRIP é.

GRIP

7.17 HARDHOME Encontra Todas as Micro Chaves

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.

A forma geral do comando HARDHOME é.

HARDHOME

Para executar o comando HARDHOME, as micro chaves de todos os eixos devem estar acionadas
(pressionadas).

7.18 HOME Envia o Robô para a Posição Home

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:

REM PEGUE O BLOCO E RETORNE A HOME


MOVEP B
MOVEP B1
MOVEP B2
TYPE “BLOCO SEGURO”
HOME

Como para todos os comandos de movimento, se um motor atolar, você verá.

Motor <MOTOR> stalled

7.19 IF...THEN... Execução Condicional

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.

A forma geral da declaração IF...THEN... é.

IF <EXP1> <condition> <EXP2> THEN <statement>

Onde <EXP1> e <EXP2> são expressões numéricas, e <condition> é uma das seguintes condições.

Condição Símbolo do RoboTalk


Menor que <
Maior que >
Igual a =

E <statement> é qualquer declaração do RoboTalk.

O programa a seguir imprimirá a palavra TRUE três vezes. A palavra FALSE não será impressa nenhuma
vez.

REM DEMONSTRAÇÃO IF...THEN...


IF 10 > 5 THEN TYPE “VERDADEIRO”
IF 10 > 20 THEN TYPE “FALSO”
IF 10 < 20 THEN TYPE “VERDADEIRO”
IF 10 < 5 THEN TYPE “FALSO”
IF 10 = 10 THEN TYPE “VERDADEIRO”
IF 10 = 5 THEN TYPE “FALSO”

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.

REM EXIBA 1 ATÉ 100


SETI A = 1
10 TYPE A;
SETI A = A + 1
IF A < 101 THEN GOTO 10
TYPE “ “
END

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.

7.20 IFMICRO...THEN... Execução Condicional

O comando IFMICRO...THEN... é similar tanto ao IF...THEN... como ao IFSIG...THEN... exceto que é


usado para testar o estado de uma das oito micro chaves localizadas no robô e nos acessórios do motor
com encoder (se estiverem instalados). A forma geral do IFMICRO...THEN... é.

IFMICRO <switch letter> [,<switch letter>...] THEN <statement>

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.

IFMICRO C THEN TYPE “CHAVE C ESTÁ FECHADA”

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.

REM ACHAR CHAVE


10 MOVEGH 0,1
IFMICRO H THEN GOTO 20
GOTO 10
20 TYPE “MICRO CHAVE H FOI ACHADA”

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.

7.21 IFSIG...THEN... Execução Condicional

O comando IFSIG...THEN... é similar ao IF exceto que é usado para testar o estado de uma das oito
entradas de sinais.

A forma geral de IFSIG...THEN... é.

IFSIG <signal #>[,<signal #>...] THEN <statement>

Onde <signal #> é qualquer uma das oito entradas de sinal e <statement> é qualquer declaração do
RoboTalk. Por exemplo.

IFSIG 2,-3 THEN TYPE “ENTRADA 2 ESTÁ LIGADA E 3 ESTÁ DESLIGADA”

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.

IFSIG -2 THEN TYPE “ENTRADA 2 ESTÁ DESLIGADA”

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.

REM PEGAR CAIXAS DA ESTEIRA


WAITFOR 4
10 GOSUB 100
CLOSE -1
GOSUB 200
OPEN -1
IFSIG 4 THEN GOTO 10
END
100 REM POSIÇÃO ACIMA DA ESTEIRA
MOVEP C
MOVEP C1
MOVEP C2
RETURN
200 REM COLOCAR CAIXA ABAIXO
MOVE D
MOVE D1
RETURN

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.

7.22 INPUT Entrada a Partir do Teclado do Computador

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

INPUT [”character string”,] <variable name>

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.

5 TYPE “1 - MOVE O MOTOR D”


TYPE “2 - MOVE O MOTOR E”
TYPE “3 - MOVE O MOTOR F”
TYPE “”
10 INPUT “SELECIONE UM OPÇÃO“, A
TYPE “”
IF A = 1 THEN GOTO 20
IF A = 2 THEN GOTO 30
IF A = 3 THEN GOTO 40
GOTO 10

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.

7.23 LOCAL Define Variável Local de Sub-rotina

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

LOCAL <variable name> [, <variable name, ...]

Como um exemplo, considere um programa que conte de 1 a 10 no programa principal imprimindo o


quadrado deste número e utilize a sub-rotina para calcular o cubo do número elevado ao quadrado no
programa principal.

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.

7.24 MOVE Movimento de Articulação Incremental

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.

A forma geral do comando é.

MOVE <B>, <C>, <D>, <E>, <F>

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.

Por exemplo, se o robô está posicionado no momento em.

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 passo de 1 é a menor quantidade que o motor pode mover.

O programa a seguir coloca caixas em um pálete e compensa a altura a cada etapa.

REM ALOCAR CAIXAS NO PÁLETE


REM INICIALIZAR VARIÁVEIS CRESCENTES
SETI D = 100
SETI E = 57
10 GOSUB 100
MOVEP START
MOVE 20,30,234+D,143+E,600
OPEN -1
SETI D = D + 30
SETI E = E - 5
IF E > 0 THEN GOTO 10
REM LOOP ATÉ O MÁXIMO DE CADA
END
100 EM GET A BOX
MOVEP GET
MOVEP GET1
CLOSE -1
RETURN

Como para todos os comandos de movimento, um atolamento do motor mostrará.

Motor <motor letter> stalled

7.25 MOVE TO Movimento de Articulação Absoluto

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.

A forma geral do comando é.

MOVE TO <B>, <C>, <D>, <E>, <F>

Onde B, C, D, E e F são os números de passos do encoder do motor para os motores B até F,


respectivamente, a partir da posição Home. Você deve entrar com as quantidades para cada um dos
cinco encoders. Por exemplo, se o robô está no momento em.

Motor B C D E F
Posição10 100 50 400 700

Após a execução do comando MOVE TO 40,100,-200,300,645 o robô moverá para.

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

Como todos os comandos de movimento, se um motor atolar será mostrado.

Motor <motor letter> stalled

7.26 MOVEGH Comando de Movimento Incremental

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.

A forma geral do comando é.

MOVEGH <G>, <H>

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 programa a seguir pega blocos de uma esteira controlada pelo motor G.

REM PEGAR BLOCO DA ESTEIRA


1 REM LOOP ATÉ A ENTRADA 1 DESLIGAR
GOSUB 100
GOSUB 200
IFSIG 1 THEN GOTO 1
END
100 REM MOVER ESTEIRA
MOVEGH 100,0
RETURN
200 REM PEGAR BLOCO
MOVEP GET
MOVEP GET1
CLOSE -1
MOVEP DROP
MOVEP DROP1
OPEN -1
RETURN

Como todos os comandos de movimento, se um motor atolar será mostrado.

Motor <motor letter> stalled

7.27 MOVEGH TO Comando de Movimento Absoluto

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.

A forma geral do comando é.

MOVEGH TO <G>, <H>

Onde G e H são os números de passos do encoder do motor para os motores G e H, respectivamente, a


partir da posição Home. Você deve entrar com as quantidades para cada um dos dois encoders.

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.

REM PEGAR BLOCOS DA MESA


10 MOVEGH 0,300
REM AGORA PEGAR BLOCO DA MESA
GOSUB 100
REM COLOCAR BLOCO ABAIXO
GOSUB 200
REM GIRAR A MESA PARA O PRÓXIMO BLOCO
MOVEGH TO 0,0
IFSIG 1 THEN GOTO 10
END
100 REM PEGAR BLOCO
...
RETURN
200 REM COLOCAR BLOCO ABAIXO
...
RETURN

Como todos os comandos de movimento, se um motor atolar será mostrado.

Motor <motor letter> stalled

7.28 MOVEP Move para uma Localização da Articulação

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

MOVEP <joint location name>

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.

A linha a seguir de código envia o robô para a localização POINT10.

MOVEP POINT10

Como todos os comandos de movimento, se um motor atolar será mostrado:

Motor <motor letter> stalled

Se o ponto especificado não for definido como localização de articulação, o RoboTalk mostrará.

Point type mismatch

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.

A forma geral do comando é.

MOVES <point> [, <velocity>][, <max move>]

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.

Os parâmetros opcionais fornecem controle adicional sobre o movimento. O parâmetro <velocity> é a


velocidade que o percurso é feito e é um número entre 0.0 e 1.0. O valor padrão é 1.0. Um valor 0.0 resultará
em uma velocidade muito lenta.

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.

A forma geral do comando é.

MOVEXS <X>, <Y>, <Z> [, <velocity>][, <max move>]

Onde <X>, <Y> e <Z> definem a posição destino. Por exemplo.

MOVEXS 0.0, 188.46, 403.67

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.

7.31 MOVEX Movimento Cartesiano Incremental (Não implementado ED-7220C)

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.

A forma geral do comando é.

MOVEX <X>, <Y>, <Z>, <A>, <T>

Onde X, Y, Z, A e T são os parâmetros da coordenada cartesiana. X, Y e Z são as coordenadas lineares


enquanto A e T são as localizações angulares para a deflexão do pulso e para o eixo de rotação do pulso,
respectivamente. A unidade para o X, Y e Z é a polegada ou milímetro dependendo da configuração no
comando CONFIG; a unidade para A e T é sempre o graus.

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.

Por exemplo, se o robô está no momento em.

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

Como todos os comandos de movimento, se um motor atolar será mostrado.

Motor <motor letter> stalled

Se o destino em coordenadas cartesianas for um ponto ilegal, o RoboTalk apresentará uma mensagem de
erro.

7.32 MOVEX TO Movimento Cartesiano Absoluto (Não implementado ED-7220C)

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

A forma geral do comando é.

MOVEX TO <X>, <Y>, <Z>, <A>, <T>

Onde X, Y, Z, A e T são os parâmetros da coordenada cartesiana de destino. A unidade para o X, Y e Z é


a polegada ou milímetro dependendo da configuração no comando CONFIG; a unidade para A e T é sempre
o graus.

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

Como todos os comandos de movimento, se um motor atolar será mostrado.

Motor <motor letter> stalled

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.

A forma geral do comando é.

MOVEXP <cartesian location name>

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.

A linha a seguir de código envia o robô para a localização XPOINT.

MOVEXP XPOINT

Como todos os comandos de movimento, se um motor atolar será mostrado.

Motor <motor letter> stalled

Se o ponto especificado não for definido como localização cartesiana, o RoboTalk mostrará.

Point type mismatch

7.34 OFFLINE Ignora um Motor

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

OFFLINE <motor letter>[, <motor letter>][,...<motor letter>]

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

Existem três razões principais para querer remover um motor.

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.

A linha a seguir removerá o motor B.

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.

Se você especificar o motor A ou um motor maior que a letra H, você verá.

Out of bounds error

7.35 OFFSET Offset de Posição do Encoder

O comando OFFSET é usado para alterar a localização do próximo comando de movimento por uma
quantidade especificada para cada encoder de motor.

A forma geral do comando é.

OFFSET <motor letter> = <amount>

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

Primeiramente moverá o robô para.

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

Lembre-se: um comando OFFSET, ou lista de comandos OFFSET, afetarão o comando de movimento


imediatamente após os comandos OFFSET, e não a todos os comandos de movimento. Este é o porquê
de você normalmente colocar os comandos OFFSET em uma sub-rotina e usar o comando GOSUB para
configurar os offset como é mostrado no exemplo a seguir.

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.

Um programa para executar isto deve parecer com este.

1 REM EMPILHAR CAIXAS EM TRES NÍVEIS


2 FOR L = 0 TO 2
3 GOSUB 100
4 GOSUB 200
5 MOVEP BOX0
6 OPEN -1
7 NEXT
8 END
9 REM SEGUINDO AS SUBROTINAS
10 100 REM PEGAR CAIXA
11 MOVEP GET
12 CLOSE -1
13 RETURN
14 200 REM OFFSET
15 OFFSET D = L * 125

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

7.36 OFFSETX Offset de Posição Cartesiana (Não implementado ED-7220C)

O comando OFFSETX é usado para alterar a localização do próximo comando de movimento cartesiano
por uma quantidade especificada para cada eixo cartesiano.

A forma geral do comando é.

OFFSETX <cartesian axis> = <offset amount>

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.

Veja o comando OFFSET sobre o uso deste comando.

7.37 ONLINE Ativa um Motor Removido

O comando ONLINE é usado para retornar um motor, que tenha sido previamente removido (no mesmo
programa), ao serviço.

A forma geral do comando é.

ONLINE <motor letter> [,<motor letter>][,<motor letter>]

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

Restaurará os motores B e C para o serviço.

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

Out of bounds error

7.38 OPEN Comando de Abertura da Garra

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 completamente e então irá fechá-la.

REM ABRIR A GARRA


OPEN -1
REM FECHAR
CLOSE -1

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

7.39 OUTSIG Linha de Controle do Sinal de Saída

O comando OUTSIG é usado para acionar e desacionar as oito linhas de sinal de saída do robô.

A forma geral do comando é.

OUTSIG <signal #> [,<signal #>, ...]

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 primeiramente acionará as portas 1 e 2 e então irá desacioná-las.

REM LIGAR AS SAÍDAS DE SINAL 1 E 2


OUTSIG 1,2
REM AGORA DESLIGA-LAS
OUTSIG -1,-2

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.

REM DESLIGA SINAL 2 E SOLDA


123 OUTSIG -2
REM SOLDA
GOSUB 100
REM SOLDA FEITA, ATIVAR ESTEIRA
OUTSIG 2
GOTO 123
...
...

Se você especificar uma porta externa à faixa de 1 até 8, você verá:

Out of bounds

7.40 PATH Movimento de Trajeto Contínuo MARK IV

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.

A forma geral do comando é.

PATH [<velocity>][,<max move>]

Os parâmetros opcionais proporcionam controle adicional ao movimento. O parâmetro <velocity> é a


velocidade que o movimento é efetuado e é um número entre 0.0 e 1.0. O valor padrão é 1.0. Um valor de
0.0 resultará em uma velocidade muito baixa.

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.

Refira-se também aos comandos CLEARPATH, SETPATH e SETPATHX.

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.

Um comando CLEARPATH é automaticamente executado quando um programa é inicializado e também


na finalização. Durante a execução do programa entretanto, mais que um comando PATH pode ser
encontrado. Isto pode resultar em um movimento indesejado se não for manipulado corretamente. O fragmento
de programa a seguir ilustra isto.

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.

Certas combinações de pontos ou localizações, velocidades e valores máximos de movimento podem


resultar em movimentos inválidos que não são possíveis de serem completados. Isto pode acontecer
especialmente se o movimento resultar em uma distância muito grande para ser completada em 1/60
segundo. Erros como Move too long, Out of bounds ou Interpolation move out of bounds indicam tais
problemas. Em geral, mover para outra localização inicial, alterar levemente um ou mais pontos ou
localizações ou usar diferentes parâmetros opcionais removerão os erros.

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.

A forma geral do comando é.

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.

A linha de código a seguir atrasará a execução do programa por aproximadamente 10 segundos.

PAUSE 100

Esta linha pausará o programa por 1 segundo.

PAUSE 10

O comando PAUSE gerará um erro Out of bounds se o valor do tempo for menor que 1 ou maior que 3000.

7.42 POINT Configura Localização de Ponto

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 -

POINT <location variable>


Ou
POINT <cartesian location variable>

Segunda forma -

POINT <location variable> = <B>, <C>, <D>, <E>, <F>


Ou
POINT <cartesian location variable> = <X>, <Y>, <Z>, <A>, <T> (Não implementado ED-7220C)

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.

A forma geral do comando é.

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.

REM ESTE É UM PROGRAMA QUE


REM EXIBE A MENSAGEM “ESTE É UM TESTE”
REM NA TELA DO COMPUTADOR
TYPE “ESTE É UM TESTE”

7.44 RETURN Declaração de Retorno de Sub-rotina

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.

A forma geral do comando é.

RETURN

Lembre-se que aqui estamos nos referindo a palavra RETURN, não a tecla do teclado do computador.

O programa a seguir.

TYPE “ESTA É A LINHA UM”


GOSUB 100
TYPE “ESTA É A LINHA TRES”
END
100 TYPE “ESTA É A LINHA DOIS”
RETURN
200 TYPE “ISTO NUNCA SERÁ EXECUTADO”
RETURN

Imprimirá a seguinte mensagem na tela.

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.

RETURN without GOSUB

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.

A forma geral do comando é.

SEARCH <motor label>,<direction/step increment>,<port number>

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.

7.46 SEND Envia String para o ED-MK4

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.

7.47 SETI Função de Designação

O SETI é usado para designar a uma variável um valor inteiro. A forma geral do comando é.

SETI <variabel name> = <integer value>

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.

A seguir são fornecidos exemplos do comando SETI.

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

Se os parênteses estiverem desbalanceados como em “10+5))/3”, você verá.

Unknown command ou Syntax error in line x

7.48SETPATH Define Ponto para Trajeto Contínuo do ED-MK4

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.

A forma geral do comand é.

SETPATH <point>

Onde <point> é um ponto de coordenada cartesiana definida previamente ou um ponto de localização de


articulação.
Comandos SETPATH múltiplos definem um trajeto que o robô percorrerá. O trajeto definido é executado
usando o comando PATH e é percorrido de maneira definida pelo SETPATH. O trajeto pode ser apagado
usando o comando CLEARPATH.

94
Refira-se ao comando PATH para exemplos do uso do comando SETPATH.

7.49 SETPATHX Define Ponto Cartesiano para Trajeto Contínuo do ED-MK4

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.

A forma geral do comando é.

SETPATHX <X>, <Y>, <Z>

Onde <X>, <Y> e <Z> define uma localização de coordenada cartesiana.

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.

Refira-se ao comando PATH para exemplos do uso do comando SETPATHX.

7.50 TROFF Desabilita o Modo Verificação

O comando TROFF é usado para desabilitar o modo de verificação.

A forma geral do comando é.

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

7.51 TRON Habilita o Modo Verificação

O comando TRON é usado para habilitar o modo de verificação.

A forma geral do comando é.

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

7.52 TYPE Saída para a Tela

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.

A forma geral para mostrar string é.

TYPE “<string>”[;]

Onde <string> é qualquer conjunto de caracteres.

A forma geral para mostrar número é.

TYPE <numeric expression>[;]

Onde <numeric expression> é qualquer expressão numérica válida. Por exemplo.

TYPE “ISTO É UMA STRING”

Imprimirá.

ISTO É UMA STRING.

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.

TYPE “ESTE É O VALOR DE A:”;


A=10
TYPE A

Mostrará.

ESTE É O VALOR DE A: 10

Exemplos.

96
Após executar este programa:

REM EXEMPLOS DA EXIBIÇÃO DE SAÍDA


TYPE “EXEMPLOS DE SAÍDA “;
FOR C = 0 TO 2
TYPE “ ESTE É O NÚMERO DE LOOP“;
TYPE C
FOR B = 1 TO 10
TYPE B;
NEXT
NEXT
END

Você visualizará.

ESXEMPLOS DE SAÍDA ESTE É O NÚMERO DE LOOP 0


1 2 3 4 5 6 7 8 9 10 ESTE É O NÚMERO DE LOOP 1
1 2 3 4 5 6 7 8 9 10 ESTE É O NÚMERO DE LOOP 2
1 2 3 4 5 6 7 8 9 10

7.53 VEL Ajusta a Velocidade do Motor do ED-MK4

O comando VEL ajusta a velocidade do motor especificado pelo ED-MK4. A forma geral do comando é.

VEL <motor letter>=<velocity>

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.

7.54 WAITFOR Espera para Condição de Sinal

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.

A forma geral do comando é.

WAITFOR <input #>[,<input #>...]

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

REM ESPERAR SINAL 7 LIGAR E 5 DESLIGAR


WAITFOR 7,-5
TYPE “SINAIS COMBINAM”

Se você especificar um sinal fora da faixa de 1 a 8, verá.

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.

ERROS DE PROGRAMA DO CONTROLADOR MANUAL

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.

69 IMODE Movimento de interpolação fora de faixa.

70 POS_OUT Posição XYZ fora de faixa.

80 STK_A_S Chave limite A emperrado.


81 STK_B_S Chave limite B emperrado.
82 STK_C_S Chave limite C emperrado.
83 STK_D_S Chave limite D emperrado.
84 STK_E_S Chave limite E emperrado.
85 STK_F_S Chave limite F emperrado.
86 STK_G_S Chave limite G emperrado.
87 STK_H_S Chave limite H emperrado.

91 INV_RBT Tipo de robô especificado inválido.


92 INV_MOT Robô especificado inválido.
93 INV_CTL Tipo de controlador inválido.
94 INV_PND Modo do Controlador Manual inválido.
95 STOP Parada de emergência.
96 INV_XYZ XYZ especificado inválido.
97 XYZ_PAR Parâmetro XYZ inválido.

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

Você também pode gostar