Vous êtes sur la page 1sur 319

EPSON RC+

Material de Treinamento de
Programação e Operações
SPEL+Linguagem
SPEL+ Linguagem ABRIL DE 2015
1º DIA - MANHÃ

SPEL+ Linguagem JULHO de 2012

©2012 EPSON AMERICA INC Todos os direitos reservados


Orientação

• Nomes dos Clientes, Empresas, Formulários dos Clientes;


• Layout do Prédio, Banheiros, Sala de Descanso;
• Apostilas;
• Canetas, Blocos de Anotações, Livros;
• Horários do Treinamento;
• Formulários do Cliente;
• Programa do Treinamento;
• Saídas de Emergência e Política de Reciclagem;
Guia de
Reciclagem

A Epson West está em conformidade com a Norma ISO 14001,


de Sistema de Gestão Ambiental, e um dos requisitos dessa
Norma é que nós tenhamos definidos os objetivos e os alvos
ambientais abrangendo os aspectos ambientais mais
importantes relacionados a essa instalação. Um dos aspectos
mais importantes dessa instalação é a utilização de papel e
embalagem, que tem impacto ambiental nos aterros. Devido a
isso, um de nossos objetivos é reduzir resíduos sólidos através
da reciclagem.

Reciclamos os seguintes itens nas nossas instalações:

 Papelão™  Paletes de madeira


 Copos de papel  Paletes de Metal
 Papéis diversos  Latas de Alumínio
 Garrafas de Plástico  Garrafas de Vidro
 Cartuchos de tinta  Papel filme para embalagens

 Cintas de plastic
Guia de
Reciclagem

Definições:

Papéis Diversos - papel colorido, papel multi-cópias sem carbono, Fardos de


Papel, papel cartão (papelão branco fino) e qualquer papel que tenha
acabamento ou brilho sobre ele.

Papel cartão (papelão fino)- normalmente encontrado como embalagem de


nossos cartuchos. Se você rasgá-lo, e o interior for branco, e não marrom ou
cinza, este tipo de compensado pode ser reciclado com a mistura de papéis.
Se é marrom ou cinza, então é reciclado com o papelão.

Papelão - é o papelão ondulado e o papelão fino marrom encontrado em


qualquer embalagem do produto.
Visão Geral da Linha de Produtos

• Especificações do Controlador:
• Descrição
• Windows
• Componentes do Hardware
• Robôs Suportados
RC620+ Modelos de Robôs Epson

2 Eixos
(Tipo YZ)

. ..

EPSON
Identificação das Peças
Frontal

(1) Entrada de Instrução TP do tipo bypass ou Conexão (7) Porta USB para dispositivo de drive portátil de
Flutuante de Instrução. Quando a Conexão conexão comum para o Sistema Operacional
Flutuante não estiver acoplada, conecte o Plugue Windows.
Bypass TP/OP • Drive óptico
(2) LEDs indicativos dos botões TEACH / AUTO / PROGRAM. (9) Status do Controlador Display em 2 Linhas
(3) O botão TRIGGER inicializa a transferência do status do (10) Chave de Alimentação
controlador para MEMORY (11) Chave de Desligamento Principal
(4) Porta MEMORY do dispositivo do drive portátil de (12)(13) Entrada dupla de ar filtrado
conexão comum para o ambiente do controlador
(14) Unidade do Drive / Conexão do Manipulador
RC620.
Etiqueta de Identificação (2 unidades Opcionais)
(5) HDD - LED indicativo de Atividade de Acesso ao Disco -2 -1
(6) A chave SHUTDOWN pode ser utilizada para sair do (15) Número de Série da Unidade do Controlador.
Windows quando não houver um KB anexado. Pode ser
utilizado na ocorrência de desligamento anormal do PC
ao ser pressionado por 5 segundos.
Identificação das Peças

Lateral

(16) Modelo & n° de Série da Unidade de Controle,


Fabricação, dados e outras informações.
(17) MT – Configurações Personalizadas do Manipulador
Identificação das Peças

Parte traseira

(18) Painel de conexão para Placa da CPU, portas (27) Conector 1 MC/SIGNAL – Conexão de Sinal do
seriais ou USB. Robô . Encoders do Motor etc.
(19) Quadro para expansão PCI e Barramento (28) Etiqueta de Verificação da Conexão 2 (manipulador
Master de Campo. opcional)
(20) Slot da Placa da CPU (29) Etiqueta de Verificação de Conexão 1 - ID de
(21) Conexão Geral de Rede Ethernet LAN- manipulador
2 da CPU.
(30) Conector MC/SIGNAL 2 – Sinal do Robô
(22) DU OUT - Conecta-se à opção de Unidade de (opcional)
Drive. (23) R-IO – Função (31) Conector M/C POWER 2 – Conexão de alimentação
Adicional IO. (24) EMERGENCY do motor do Robô (opcional)
– Emergência / Conector de Integração de (32) Conector M/C POWER 1 – Conexão de alimentação
Segurança do motor do Robô.
(25) LAN-1 SPEL+ Conexão de Rede Ethernet. (26) (33) AC IN 200 – Fase Única 240 VCA
IO – Conector de Integração Entrada / Saída. (34) Slot Especial – Expansão Opcional IO, RS232C,
Barramento de Campo IO Slave, Placas do Gerador
24 Entradas, 16 Saídas. de Pulso
RC620+ Especificação Parcial
Item Especificação
Modelo Unidade de controle RC620 Controlador Robô
Padrão :Intel® Celeron TM M Processor
CPU
Alta-velocidade (opção) : Intel® Core TM Duo Processor
Até oito (8) servomotores AC conectáveis
Eixos Controláveis
(Limitados pela potência total domotor)
Linguagem de
programação e EPSON RC + 6.0
Controle Manipulador software de controle (linguagem multi-tarefa do robô)
do Robô do robô
Até oito (8) controles Simultâneos de juntas
Controle de Junta
Servocontrole AC do Software
Tamanho Máximo do Objeto : 8 MB
Área dos dados de ponto : 1000 pontos (por arquivo)
Capacidade da Área Variável do backup : Máximo de 400KB (Incluí a área de memória para a
Memória tabela de gerenciamento.)
Aprox. 4000 variáveis (Depende do tamanho das
variáveis arrays.)
Remoto
Método de Ensino Direto
MDI(Manual Data Input )
Incluindo 8 entradas, 8
Entrada: 24 saídas com alteração de
Padrão I/O
Sinais externos de Saída:16 atribuição de função
entrada/saída remota permitida
Padrão I/O Entrada: 24
Por Unidade de Drive
(Unidade de Drive) Saída:16

10
RC620+ Especificação Parcial
Item Especificação
Entrada: 32 por placa Adição de
I/O
Saída: 32por placa 4 placas é permitida
RS-232C 4 ch por placa Adição de 2 placas é permitida
1 ch por placa
Slot Especial
PROFUBUS-DP
Fieldbus I/O slave DeviceNet
(Max. 4 slots) Adição de 1 placa é permitida
CC-Link
EtherNet/IP
Número de eixos controladores Adição de
Gerador de Pulso
4 ch por placa 4 placas é permitida
Placa de expansão Adição de 2
Placa de expansão
Avançada placas é permitida

PCI slot 1 ch por placa


Fieldbus I/O master PROFIBUS – DP Adição de
DeviceNet 1 placa é permitida
EtherNet/IP

11
RC620+ Especificação Parcial
Fonte de Alimentação AC 200 V à AC 240 V
Fase única 50/60 Hz
Consumo Máximo de Potência
2.5 kVA(Depende do modelo do Manipulador)
Isolamento
100 M ou mais
Resistência
Temperatura Nominal 5 a 40 C
Humidade Relativa Nominal 20% a 80% (sem condensação)

12
Diagrama
de Blocos
do Sistema

13
Controlador do Robô RC180 Micro
Sistema de Acionamento

• Controlador de “Baixo Custo e


Alto Desempenho”

• Servo PLC (o RC180 é acionado por PLC)


– Sinais DeviceNet, Profibus DP, Profinet, CC-
Link, Ethernet IP ou de reconhecimento
interno.
– Execução Remota Possível através de Ethernet
(LAN) ou Porta Serial (RS232C) .

• Independente (Não precisa estar


conectado a um PC durante o
funcionamento)
– Programado por RC+ mas pode funcionar
de forma independente com OP1 ou como
• EPSON RC+ Programação Ambiental Dispositivo Remoto.
5.x - SPEL+ Language – Pode conectar RC+ “em funcionamento”

• Links de comunicação do
Computador para o RC180 – USB ou • Controlado por PC
Ethernet (LAN) – Possui suporte para o Guia VB (Componente
Microsoft .NET)
• Pacote de Simulação incluído!

14
RC180
Exemplo de um
Sistema

15
1.2 Especificações Padrão
Item Especificação
Modelo Controlador do Robô RC 180
(Especificação UL: RC180-UL)
CPU 32 bits Ultra Processador de Baixa Voltagem
Eixos Controláveis Até seis (6) servomotores AC conectáveis
Controle Linguagem de EPSON RC+5.0
Manipulador do programação e Software (uma linguagem multi-tarefa para robô)
Robô do Controle do Robô
Controle de Junta Até seis (;6) controle Simultâneos de juntas
Servocontrole AC do Software
Controle de Velocidade Movimento PTP: Programável na faixa de 1 a 100%
Movimento CP: Programável (Valor Real a ser manualmente inserido)
Controle de Movimento PTP: Programável na faixa de 1 a 100%
aceleração/desaceleração Movimento CP: Programável (Valor Real a ser manualmente inserido)
Controle de PTP (Controle Ponto a Ponto)
Posicionamento CP (Controle de Percurso Contínuo)
Capacidade de Tamanho Máximo do Objeto: 4MB
Memória Área de Dados de Ponto: 1000 pontos (por arquivo)
Área variável de Backup: Max. 100 KB (Inclui área de memória para tabela de gerenciamento.)
Aprox. 1000v ariáveis (Depende do tamanho das variáveis de arrays.)

16
Especificação RC180
Remoto
Método de Ensino Direto
MDI (Manual Data Input)
Incluindo 8 entradas, 8 saídas
Sinais externos de entrada/saída Entrada:24 com função remota atribuída.
I/O Padrão
(padrão) Saída:16 Alteração de atribuição
permitida.
Interface de comunicação
Ethernet 1 canal
(padrão)
Entrada: 32 por placa Adição de
I/O
Saída:32 por placa 4 placas é permitida
RS-232C:4 por placa
Adição de 2 placas é permitida
Opções I/O Fieldbus: 1 canal por placa
PROFINET
(Max 4 slots) Interface de comunicação PROFIBUS-DP
Adição de
DeviceNet
CC-Link
1 placa é permitida
EtherNet/IP

17
Especificação RC180
Item Especificação
-Interruptor de parada de Emergência
-Entrada da porta de segurança
-Modo de baixa potência
Características de Segurança -Freio Dinâmico
-Detecção de erro da desconexão do cabo codificador
-Detecção de motor sobrecarregado
- Torque irregular do moto (Manipulador fora de controle) detecção
-Detecção de erro de velocidade do motor
-Posicionando em overflow - falha do regulador – detecção
-Velocidade em overflow – falha do regulador-detecção
-Detecção de irregularidade da CPU
-Detecção de erro de some de verificação da memória
-Detecção de super aquecimento no Módulo do Driver do Motor
-Detecção de soldagem de relé
-Detecção de sobretensão
-Detecção de erro da ventoinha
Fonte de Alimentação AC 200 V a 240 V
Fase única 50/60 Hz
Consumo Máximo de Potência 2.5 kVA (Depende do modelo do Manipulador)

18
Especificação RC180
Resistência de Isolamento 1100 M ohms ou mais
Temperatura Nominal Ambiente 5 a 40C
Umidade Relativa Nominal 20% a 80% (sem condensação)
Peso * 1 Para robô SCARA* 2 9.0 kg Unidade de base sem opção

Para robô de seis eixos *3 10.5 kg Unidade de base + Unidade


do Driver Prosix
Unidade Opcional 1.0 kg Em caso de instalação de
duas placas opcionais

*1 O peso da unidade é indicado no Controlador


Verifique o peso antes da transferência ou relocação das unidades e evite a suspensão da unidade de
forma inadequada.
Além disso, mantenha as mãos, dedos e pés protegidos contra ferimentos graves.
*2Incluindo série RS
*3Incluindo Série C3, Série S5.

19
(1) Filtro/Ar (5) Identificação (9) Conexão (13) Chave de (17) RC+ (21) Porta do
Padrão-1 ou MT de de Sinal do Alimentação, Porta de Dispositivo
Opção-2 Especificação Robô Apenas não Programação TP/OP
Especial UL. USB
(2) LED de (6) Controlador (10)Parada E (14) (18) Porta de (22) Porta IO
Status Teach/ SN Conexão de Travamento da Comun. LAN 24 entradas
Auto/ Program Segurança Chave de 16 saídas
Alimentação
(3) Display (7) Conexão de (11) Entrada (15) Guia do (19) Porta da (23) Controlador
de Segmentos Sinal do Motor AC 200 – Cabo Memória de Bateria
240V

(4) (8) Anexar ao (12) (16) Opções (20) Botão (24) Alojamento
Identificação Modelo Parafusos Unidades 1 & 2 Acionador da do Acionador de
da Assinatura do Robô recartilhado Porta de Seis Eixos
do Dispositivo / Número de Série para fins Memória
múltiplos

20
RC90

21
RC90
Item Especificação

Modelo Controlador do Robô RC90


CPU Micro Processador de 32 bits

Eixos do Controlador servomotores 4 AC

Linguagem de EPSON RC+ 5.0


programação e (Uma linguagem multi-tarefa de robô ) Versão
Software de 5.4.1 ou posterior é recomendada.
controle de robô

Controle simultâneo de até 4 juntas


Controle da Junta
Servocontrole AC do Software
Controle manipulador do Movimento PTP: Programável na faixa de
robô 1 a 100%
Controle de
Velocidade Movimento CP: Programável (Valor real a ser inserido de
forma manual.)

Movimento PTP: Programável na faixa de 1 a 100%


Controle de
Aceleração/ Movimento CP Automático: Programável (Valor real a ser
inserido de forma manual.)
Desaceleração

PTP (Controle ponto a ponto) CP


Controle de posicionamento
(Controle de Percurso Contínuo)

Tamanho Máximo do Objeto: 4 MB


Área de Dados do Ponto: 1000 pontos (por arquivo) Área variável
Capacidade
de backup: Max. 100 KB (Inclui a área de memória
de Memória
da tabela de gerenciamento.) Aprox. 1000 variáveis (Depende do tamanho das
variáveis do array.)

Remoto
Método de Direto
Ensino MDI (Entrada dos Dados Manuais)

22
RC90
Incluindo 8 entradas,
Entrada Entrada: 24 8 entradas com função
externa/sinais de I/O Padrão
remota. Alteração permitida.
saída (padrão) Saída: 16

Interface de
comunicação (padrão)
Ethernet 1 canal

porta RS-232C 1 porta

Entrada: 24 por placa Adição de:


Expansão I/O
2 placas é permitida
Saída: 16 por placa

RS-232C : 2 canais por Adição de:

placa 2 placas é permitida


Opções
(Max. 2 slots)
Interface de Fieldbus I/O: 1 canal por placa.
comunicação PROFIBUS-DP
DeviceNet Adição de
1 Placa é permitida
CC-Link

23
(9) (4) RC90 (19)

(Lado esquerdo)
(5)
(1)
(6)
(7) (3) (20)
(8)
(2)
(18)

(20) (10) (11) (12) (13) (14) (15) (16) (17)

1. Interruptor de Alimentação 8. Identificação de Verificação de 15. Acionador de Memória


Conexão
2. AC em 9. Alimentação MC (Potência do motor) 16. LAN

3. LED 10. Sinal MC (Posição) 17. Conector IO

4. Filtro da Ventoinha 11. Emergência/Segurança 18. RS232C

5. Identificação de Assinatura 12. Suspensão de Instrução (TP2) 19. Slots Opcionais (2)

6. Identificação MT 13. Conexão PC 20. Braçadeira do Cabo x 2

7. Controlador S/N 14. Memória (Status do Controlador) 21. Bateria (interior do chassi)

24
RC90 & LS Conexão do Robô

Manipulador da Série LS3


(LS3-401S)

RC90 Controlador

Cabo de Energia M/C

Cabo de Sinal M/C

25
Precauções de Segurança do Robô

• Mantenha o robô dentro do seu campo de visão


• Com o uso de E-Stop
• Nunca se aproxime do espaço de movimentação do robô enquanto ele estiver
executando uma tarefa.
• Sempre utilize (ative) o E-Stop ao entrar na área de trabalho
• Quando os Servos são energizados, é possível conhecer o ponto de
controle e ajuste de Potência

26
Segurança do Robô
• Sempre que você estiver trabalhando com os robôs ou outro equipamento de
automação, a segurança deve ser a prioridade. Ao projetar as células do robô, os
seguintes tópicos devem ser considerados no momento da instalação:
• Observação Importante: É muito importante que você instale um botão ESTOP de
fácil alcance à partir do seu PC de desenvolvimento. Consulte o manual de seu
controlador para saber mais detalhes sobre fiação.
• Recomenda-se que a especificação de requisitos de segurança RIA/ANSI 15.06 seja
atendida e utilizada como guia para o design da célula.
• A ligação elétrica da unidade do acionador do controlador deve ser de realizada de forma
que ela possa ser bloqueada ou marcada na posição desligada a fim de evitar que ela
seja ligada enquanto alguém estiver na área de trabalho. Poderia ser simplesmente um
plugue e um cabo receptor, de modo que o plugue pudesse ser removido e marcado, ou
uma caixa de desconexão com trava.
• Utilize barreira luminosa de segurança, tapete, porta de segurança, ou outro dispositivo
semelhante para parar o robô se alguém entrar na área de trabalho. Recomenda-se a
utilização de portas de segurança.
• O circuito de parada de emergência deve remover a energia de todos os componentes
externos que devem ser desligados durante uma emergência. Não presuma que o
controlador do robô desligue todas as saídas mesmo que ele tenha sido configurado para
tal atividade. Por Exemplo, se um cartão I/O estiver com defeito, o controlador não
desligará o componente conectado a uma saída. A parada de emergência no controlador
é programada para remover a potência do motor do robô, mas não as fontes de
alimentação externas.
• Utilize proteções ou luzes para indicar que a célula do robô está funcionando de maneira cíclica.
• Utilize software de limite de movimentos a fim de evitar que os movimentos do robô
sejam obstruídos devido a um ponto de tradução errônea. Consulte a parte da ajuda
que trata das limitações.

27
Segurança do Robô
Potência do Robô

Segue abaixo explicação sobre o status da potência do robô em relação a restrição de operação:

Status de operação proibida: O robô não pode ser operado.


Status Restrito (baixa potência): O robô pode ser operado em condições de baixa potência ou
baixo torque.
Status Irrestrito(alta potência): O Robô pode ser operado sem restrição.
Durante o status de operação proibida, o robô não irá funcionar, independentemente das ações de
controle executadas pelo operador. Durante a operação, quando o circuito de proteção abrir, o sistema
será alterado para status de operação proibida.

O robô funcionará em baixa velocidade e torque em status restrito (baixa potência). Em status
irrestrito (alta potência), o robô operará conforme velocidade e torque programados.

Caso o robô precise executar um movimento inesperado, o status restrito (baixa potência) diminui a
velocidade de operação, permitindo que o operador evite o perigo. O torque também é diminuído para
minimizar ferimento grave ao operador se ele for atingido pelo robô. Os valores máximos da
velocidade de diminuição e de torque são ajustados de acordo com o robô utilizado e não pode ser
alterado pelo usuário.

Como precaução de segurança, o status inicial de potência do robô será definido para status restrito
(de baixa potência) ou para status de operação proibida. O sistema não vai mudar para status
irrestrito (alta potência) se os procedimentos adequados não forem seguidos.

Quando o sistema estiver em status restrito (de baixa potência) ou status de operação proibida, uma
única falha não causará uma ação de fuga que ultrapasse a velocidade atribuída ou diminuição de
torque. Isto ocorre devido ao circuito de multi-proteção e circuito de monitoração mútua no sistema
de controle.

28
Segurança do Robô
Proteção

Há um circuito de entrada de proteção no


conector de EMERGÊNCIA localizado
nos controladores que se conectam com o
AVISO interruptor de intertravamento do
dispositivo de segurança. A fim de
proteger as pessoas que trabalham com o
robô, é importante estar ciente de que o
interruptor de intertravamento está
conectado e operando de forma adequada.

O robô pára imediatamente e entra em status de pausa se uma proteção fechada


for aberta, ou se o estado de “abertura de proteção de segurança” for liberado. A
descrição abaixo explica como a entrada de proteção funciona.

Proteção Fechada: O robô pode operar automaticamente em status irrestrito


(alta potência).

Proteção Aberta: O robô pára imediatamente, os motores são desligados, e


operação posterior torna-se impossibilitada até que a proteção esteja fechada e
as instruções sejam executadas, ou o modo Attend seja LIGADO e o circuito
habilitado esteja acionado.

29
Segurança doRobô
Modos de Operação
A operação do robô é possível sob as seguintes condições:

• O circuito de proteção está fechado

• O Modo de Instrução está LIGADO e o circuito de ativação está acionado.


No Modo de Instrução, o robô só pode ser movido a baixa velocidade. O
robô parará se o circuito de ativação não estiver acionado. Consulte a tabela
abaixo. Quando o circuito de proteção estiver aberto, o robô parará. Se o
modo de Instrução estiver DESLIGADO, os motores serão desligados. Se o
modo de Instrução estiver LIGADO, os motores continuarão ligados.

Condição Modo de Instrução Modo de Instrução


O robô pode se mover
Proteção Fechada sob controle do
O robô só pode se mover a
programa a qualquer
baixa velocidade quando o
O robô parará aos poucos, interruptor de ativação de 3
se estiver se movendo. Os posições (homem morto)
Proteção Aberta motores serão desligados. estiver acionado.
O movimento do robô não
pode ser iniciado.

30
Segurança doRobô
Configuração do Modo de Alimentação
Uma mudança para o status restrito (baixa potência) pode ser feita mediante a execução de uma
linha de comando de mudança de status de potência (Alimentação), independentemente dos
modos de proteção ou operação. Isso garante a segurança do operador e reduz a possibilidade de
o equipamento periférico ser destruído ou danificado como resultado de uma operação
descuidada.

Em contraste, ao passar para o status irrestrito (alta potência), o status dos modos de proteção e
de operação têm precedência sobre uma linha de comando de mudança de status de potência.

Além disso, quando o modo de operação é ligado ou reiniciado, o sistema automaticamente


retorna ao status restrito (baixa potência).

A tabela abaixo mostra a relação entre os modos de proteção e de alimentação.

Status da Modo de Alimentação Explicação


Proteção Baixo Alto
sdaso O robô não pode
Todas as operações Todas as
Aberta ser operado
do robô estão operações do robô
quando a proteção
proibidas estão
Status restrito Status irrestrito Pode-se mudar para
Fechada (baixa potência) (alta potência) o status de alta
para o robô para o robô potência apenas

31
Segurança doRobô
Parada de
Emergência

O Controlador está equipado com uma entrada redundante de parada de


emergência. Se o circuito de parada de emergência normalmente fechado estiver
quebrado, a energia fornecida para todos os motores será desligada (e entrará no
status independente) e o robô será parado por freio dinâmico.

O caminho que o robô seguirá do momento


em que o interruptor de parada de
emergência é pressionado até o dispositivo
parar, bem como a própria posição de
parada, não podem ser determinada
positivamente. Em muitos casos, a posição
de parada não excederá a posição alvo para
ATENÇÃO a operação anterior à parada de emergência.
Dependendo da condição da carga útil do
robô e da velocidade de operação,
derrapagens são inevitáveis. Levando isso
em conta, certifique-se de que a disposição
dos equipamentos periféricos inclua espaço
suficiente.

32
Primeiros passos

• Discussão:
• Sistemas de Coordenadas de Robôs
• Botão de ativação de freio com motor desligado
• Primeiros passos
• Ligando o Epson RC+
• TP (Painel de Controle)
• Comando de Impressão
• Tutorial do laboratório 1 do Manual do Sistema de
controle de robôs RC+ Epson

33
Robôs SCARA Série G
Ativação de freio do eixo Z

Robôs da série G possuem


um Botão de ativação de
freio para as juntas 3 e 4.
Não mova a junta 3 ou a
junta 4 à força
manualmente sem antes
pressionar o botão de
ativação de freio.
Nota: A alimentação do
controlador deve estar
ligada para a operação do
circuito de ativação do freio

Esse ponto, centro de


Teta 1 é a coordenada X=0, Y=0

Observe que os robôs SCARA mais comuns, na Localização Global 0, nunca poderiam alcançar a coordenada do ponto
X = 0, Y = 0, uma vez que isso é fisicamente impossível. Exceção: Epson RS SCARA sem base

34
Robôs SCARA Série G
Robôs série G possuem
um Botão de ativação
de freio para as juntas
Junta 3, Junta 4
3 e 4. Não mova a
junta 3 ou a junta 4 à
Botão de ativação
força manualmente de freio
sem antes pressionar o
botão de ativação de
freio. Nota: A
alimentação do
controlador deve estar
ligada para a operação
do circuito de ativação
do freio.

35
Robôs SCARA RS4

Os robôs série RS possuem um


botão de ativação de freio para
a junta 3. Não mova a junta 3 à
força manualmente sem antes
pressionar o botão de ativação
de freio. Nota: A alimentação do
controlador deve estar ligada
para a operação do circuito de
ativação do freio

Botão de ativação de freio do eixo Z

Esse ponto, centro de


Teta 1 é a coordenada X=0, Y=0

36
Robôs SCARA RS3

Esse ponto, centro de


Teta 1 é a coordenada X=0, Y=0

37
Robô Módulos EZ
Por ex., série X5 RU-HMSz tipo A

Botão de ativação de freio do eixo

Os Módulos EZ possuem
um botão de ativação de
freio para junta aplicável Origem
com freio opcional. Não +Y
mova a junta com o freio
opcional à força
manualmente +X
sem antes pressionar o
botão de ativação de freio.
Nota: A alimentação do
controlador deve estar
ligada para a operação do
circuito de ativação do freio.

38
Robô de Série de seis eixos C3 exibido

198 65 250 86 76 23
5
h

- -
-
...
li
li
li
I
I
'
I '-2-M4
profundidade 7

Posição Z =O []

·- J:

-------------------------- I

39
Robô de Série de seis eixos C3 exibido

+X

40
2.3 Requisitos relacionados a segurança
Condições operacionais e tolerâncias específicas para a segurança estão descritas nos manuais do robô, do
controlador e dos outros dispositivos. Leias também os outros manuais

O padrão de segurança dos sistemas do robô e outros exemplos são mencionados nesse capítulo. Portanto,
para assegurar que as medidas de segurança estão completas, por favor consulte os outros padrões também
listados.

(Observação: A descrição seguinte é apenas uma lista dos padrões de segurança necessários.)

ENISO 10218-1 Robôs para ambientes industriais – requisitos de Segurança-Parte 1:

ENISO12100-1 Segurança do maquinário – Conceitos básicos, princípios gerais de design –Parte 1:


Terminologia básica, metodologia

ENISO 12100-2 Segurança do Maquinário-Conceitos básicos, princípios gerais do design – Parte 2:


Princípios técnicos

ENISO 13849-1 Segurança do maquinário – Segurança- peças relacionadas de sistemas de controle –


Parte1: Princípios gerais de design

EM 60204-1 Segurança do maquinário – Equipamentos elétricos das máquinas – Parte 1: Requisitos


gerais

EN55011 Equipamentos médicos, científicos e industriais de radiofrequência – Características de


distúrbio eletromagnético – Limites e métodos de medida

EN61000-6-2 Compatibilidade Eletromagnética (EMC – Parte 6-2: Padrões genéricos – Imunidade para
ambientes industriais

ANSI/RIA R15.06 Padrão Nacional Americano de Robôs Industriais e Sistemas de Robôs – Requisitos de
Segurança

41
Pontos dos Robôs
• Um ponto de robô é um conjunto de coordenadas que
definem uma posição na área de trabalho do robô. Cada
ponto em um robô controlado por SPEL+ possui quatro
coordenadas: X, Y, Z e U.

• As coordenadas X, Y e Z de um ponto são


especificadas em milímetros.

• O valor das coordenadas Z pode ser zero ou negativo. (SCARA)


• A coordenada U especifica a posição do eixo de rotação
em graus.
• Os pontos são referenciados com uso da letra P seguida de
um número inteiro ou variável inteira ou por uma etiqueta
definida no editor de arquivo do ponto ou manual e
diálogo de instrução

• Somente Pro Six


• O valor da coordenada Z pode ser positivo ou negativo
(ProSix)
• Os valores U, V e W especificam a posição do eixo de
rotação em graus para robôs ProSix.

42
Pontos dos Robôs
Instrução de Pontos dos Robôs
Se possível, a instrução deve ser realizada sem funcionários
dentro da área protegida.
O modo de Instrução pode ser usado para permitir que o robô
seja ativado ou movido a baixa velocidade quando a proteção
estiver aberta. Antes de entrar na área protegida, os operadores
de robôs que precisam mover o robô sob controle servo devem
mudar o modo de instrução para LIGADO
usando o interruptor seletor de modo do dispositivo opcional.
Em seguida, os operadores transportam o dispositivo opcional
no interior da área protegida. Como resultado, o modo de
operação não pode ser alterado do lado de fora do sistema de
proteção enquanto alguém estiver dentro da área protegida.
Modo de Instrução Desligado (Auto)
O robô não pode ser ativado sob alimentação com o circuito
de proteção aberto e os motores serão desligados. No
entanto, o robô pode ser movido manualmente para uma
posição com o circuito de proteção aberto e a posição pode
ser instruída.
Modo de Instrução Ligado (Instrução)
O robô pode ser ativado ou movido a baixa velocidade contanto que
o interruptor de ativação de 3 posições (homem morto) esteja acionado.

43
Pontos dos Robôs
Observe as seguintes diretrizes para
instrução de pontos:
• Os operadores dos robôs devem receber treinamento que
utilize o mesmo tipo de robô. Antes da instrução, o
operador deve estar totalmente familiarizado com
procedimentos de instrução.
• Antes da instrução, elimine todos os erros e avarias.
• Antes de o gerenciador do robô entrar no sistema de
proteção, confirme se os motores do robô apagam quando a
proteção está aberta e se os interruptores de parada de
emergência estão funcionando corretamente.
• O gerenciador do robô deve verificar visualmente o sistema
do robô e o interior do sistema de proteção para garantir que
não há riscos potenciais.
• Projete o sistema de modo a impedir que o sistema global
do robô seja iniciado a partir de qualquer local enquanto o
operador estiver dentro da área de proteção.
• Se houver a possibilidade de ocorrer uma situação de perigo
resultante da operação de um dispositivo que não seja o robô,
como um acionador, tome medidas necessárias para impedir
tal operação ou para garantir que estes dispositivos só possam
ser controlados pelo operador da instrução.

44
Pontos dos Robôs
.

Nova verificação de Ponto


Sempre verifique as localizações das coordenadas de instrução
reprogramadas em baixa alimentação antes de mudar o sistema
para a velocidade total de produção (Alta Potência) .
Nota Ao verificar a operação do sistema do robô, esteja sempre
preparado para falhas com configurações iniciais ou com a
fiação. Se o Manipulador funcionar de modo anormal com
configurações modificadas, pressione um interruptor pré-
determinado imediatamente para parar o Manipulador a fim
ajudar a prevenir contato com obstrução.
Se a verificação de baixa potência não for possível, sugere-se
executar a verificação sem as extremidades do braço,
ferramentais, extensões e peças. Garanta a ausência de
obstruções dentro do projeto do robô ou a área de trabalho
ampliada/restrita de aplicação poderá causar danos corporais
e/ou danos físicos mediante a execução de movimento
automático para dados de localização de pontos corrompidos
ou treinados incorretamente.

45
TP1
Visão Frontal
Visão Traseira

(1) Interruptor de Instrução/Automático (6) Interruptor de ativação


(2) Interruptor de Emergência (7) Alça
(3) Display
(4) Painel de Operação
(5) Cabo de Conexão

46
•Para mais informações, consulte o Manual do Controlador RC620

47
48
Comando de Impressão
• Envia dados para a janela atual do display, incluindo a
janela Run, a janela Operator, a janela Monitor e a
janela Macro.
• Primeiro verificamos o uso no modo de programação
para ajudar a apoiar o seu primeiro laboratório. Os
caracteres usados para fazer simples instruções de
impressão são:
(Palavra-chave)
Print “Hello World”
(Dados de saída)

Esse exemplo mostra o uso no Modo de Comando.

Falaremos mais sobre esse comando ao


longo do curso

49
Laboratório
seu
Siga estas instruções para criar um programa de aplicação simples para que
você possa se familiarizar com o ambiente de desenvolvimento do EPSON
RC+.
1. Ligue o EPSON RC+
Dê um duplo clique no ícone do EPSON RC+ no desktop.
2. Crie um novo projeto
a. Selecione New no menu Project.
b. Digite um nome para o projeto. Por exemplo, Lab
c. Clique em OK para criar o novo projeto.
Quando o novo projeto for criado, um programa chamado MAIN.PRG será
criado. Uma janela se abrirá com o título MAIN.PRG com um cursor
piscando no canto superior esquerdo. Agora você está pronto para digitar seu
primeiro programa.
3. Edite o programa
Digite as linhas de programa a seguir na janela de edição do MAIN.PRG.
Você pode usar caracteres maiúsculos ou minúsculos.
Function main
Print "This is my first program."
Fend
50
Laboratório
seu
4. Execute o programa
Pressione F5 para executar o programa. (F5 é o atalho para a seleção
Start no menu Run). Você verá a janela Project Build Status mostrando a
operação de criação.
Seu programa está compilado e carregado na memória. Se não
houver erros durante a criação, a janela Run aparecerá.
Aperte o botão Start na janela Run para executar o
programa. Deverá ser exibido o seguinte conteúdo na
janela run:
-> main started as Task 1
This is my first
program.
-> All Tasks Stopped
Agora vamos ajustar alguns pontos de robôs e modificar o programa para mover o
robô.

51
Lab 1
Criando seu primeiro
programa

52
Lab 1
Criando seu primeiro programa
SPEL+
SIX AXIS
5. Instrução de pontos dos robôs continuação APENAS PARA O ROBÔ SIX AXIS
Clique no ícone Robot Manager na barra de ferramentas principal. Clique na aba
da barra de ferramentas Robot Control Panel. Clique no botão Motor On para
ligar os motores do robô. Você verá a aba Jog and Teach, clique na aba Jog &
Teach.

• Selecione Jog Mode – Tool. Pressione o botão Teach P0 para armazenar a posição atual.
• Ative o robô pressionando o botão +Z de ativação. Mantenha o botão pressionado para
continuar ativando.
Solte quando o robô estiver a meio caminho fora da área de trabalho.
• Selecione Jog Mode – Joint Ative o robô > J5 -90 graus > J4 + 45graus.
• Agora mude o ponto atual para P1 clicando na seta para a direita no cursor Point # até que
o número do ponto seja 1.
• Pressione o botão Teach P1 . Aparecerá uma mensagem de confirmação para instrução do
ponto.
Selecione Yes.
• Selecione Jog Mode – Tool. Pressione o botão +X para ativar o robô na direção +X a
aproximadamente 50mm.
• Agora mude o ponto atual para P2 clicando na seta para a direita no cursor Point # até que
o número do ponto seja 2.
• Pressione o botão Teach P2 . Aparecerá uma mensagem de confirmação para instrução do
ponto.
Selecione Yes.
• Saia da tela de ativação pressionando o botão Close . Deverá aparecer uma caixa de
mensagem de verificação de mudança. Clique em Yes para salvar as alterações.

53
Lab 1
Criando seu primeiro programa
6. Modifique o programa para incluir comandos de movimento
de robô.
7. Insira três novos comandos Jump, dependendo do seu
tipo de robô, no programa MAIN.PRG, conforme
exibido abaixo:

Function main „For SCARA


Print "This is my first program."
Jump P1 „SCARA ONLY
Jump P2 „SCARA ONLY
Jump P0 „SCARA ONLY
Fend
Function main „For Six Axis
Jump3 Here –TLZ(25) , P1 –TLZ(25), P1 „Six Axis
Jump3 Here –TLZ(25) , P2 –TLZ(25), P2 „Six Axis
Jump3 Here –TLZ(25) , P0 –TLZ(25), P0 „Six Axis
Fend

54
Lab 1
Criando seu primeiro programa
Execute o programa
pressionando F5 ou
clique no ícone ,
em seguida clique no
botão Start na janela
Run. O robô deve pular
para cada um dos
pontos que você
instruiu.

55
Janela

56
Janela
r
Item Descrição
Text area Essa é a área que ocupa a maior parte da janela run. A
saída de seus programas é exibida aqui. Quando seu
programa utiliza um comando Input, você pode digitar a
entrada exigida nessa caixa de texto. Você pode usar as
barras de rolagem para ver o buffer de texto completo.
Se ocorrer um erro ao executar o programa, o número do
erro, o nome do arquivo do programa, o número da linha
e o nome da função serão exibidos nessa área de texto.
Você pode dar um duplo clique na linha em que o erro é
exibido para ir diretamente para a linha-fonte que causou
o problema.
Function Selecione uma função para iniciar. As funções estão em
ordem alfabética. A utilização de Form depois de criar o
GUI Function main personalizado é selecionada pelas
configurações de fábrica.
Form Selecione um Form para iniciar. Os Forms podem
ser criados pela opção Epson GUI Builder. Uma vez
que o Form é criado, ele pode ser selecionado aqui.

Low Power Quando esta caixa está selecionada, o SPEL + ignora o


comando Power High. Isso permite que você execute
seu programa no modo de baixa potência para verificar
a operação sem precisar alterar o programa.

57
Janela Run
Item Descrição
Speed Factor Especifica o fator de velocidade de movimento do robô.
O fator de velocidade é uma porcentagem do ponto
máximo para a velocidade do ponto e velocidade linear
interpolada. Por exemplo, se o seu programa executa a
velocidade 80 e o fator de velocidade é 50%, o robô se
moverá na velocidade 40.
Start Inicia a função exibida na lista suspensa de função.
Stop Para todas as tarefas. Se o robô estiver executado
um comando de movimento quando esse botão for
pressionado, o robô irá desacelerar até parar.
Pause Pausa todas as tarefas com a pausa ativada. Ativa o
botão Continue. Se o robô estiver executado um
comando de movimento quando esse botão for
pressionado, o robô irá desacelerar até parar.
Continue Continua tarefas pausadas.
CTRL+C O mesmo que o botão Stop.

58
Monitor I/O (Menu Tools)
A caixa de diálogo do Monitor
IO permite que você
monitore todas as entradas e
saídas do sistema. As
entradas são exibidas no lado
esquerdo da caixa de diálogo
e as saídas no direito.
Rótulos que foram definidos
com a utilização do I/O Label
Editor são exibidos próximos
a cada bit.
Depois que a caixa de
diálogo tiver sido aberta, os
status de entrada e saída
serão constantemente
atualizados.
Você também pode ligar e
desligar saídas quando não
houver programas sendo
executados dando um duplo
clique nos LEDs de saída.

Barra de ferramentas:

59
Editor de Etiquetas IO
• O editor de etiquetas I/O lhe permite definir etiquetas IO
intuitivas para cada projeto. As etiquetas podem ser usadas
em seus programas em execução, do visor de monitoração, ou
em macros.

60
SPEL+Referência de Idioma Manual
SPEL* Referência de Linguagem
Esta sessão descreve cada comando SPEL* de acordo com o padrão abaixo:

Syntax Syntax descreve o formato usado para cada comando. Para alguns comandos, há mais de uma sintaxe
exibida, junto a um número que seja referenciado na descrição do comando. Os parâmetros são exibidos
em itálico.

Parameters Descrevem cada um dos parâmetros para esse comando.

Return Values Descrevem qualquer valor que o comando retornar.

Description Dá detalhes sobre como o comando funciona.

Notes Passam informações adicionas que podem ser importantes sobre esse comando.

See Also Mostram outros comandos que sejam relacionados a esse comando. Veja o Índice para obter o número da
página dos comandos relacionados.

Example Dá um ou mais exemplos do uso desse comando

61
SPEL+Referência de Idioma Manual
SPEL* Referência de Idioma
SÍMBOLOS

Esse manual usa os seguintes símbolos para exibir em qual contexto o comando pode ser usado:

Pode ser usado na janela de comando.

Pode ser usado como sentença em um programa SPEL*.

Pode ser usado como função em um programa SPEL*.

62
Sentença Reset
• Restaura o controlador a um estado inicializado.
Sintaxe
Reset
Descrição
Reset restaura os seguintes itens:
• Estado de Paralisação de Emergência
• Estado de erro
• Bits de Saída (Todas as saídas desligadas;) (Interruptor de SW definível pelo usuário para
desligar essa função - veja Configuração de Sistema > Guia Opção Spel)
• Speed atual , SpeedR e SpeedS do robô (Inicializados aos valores padrão)
• Accel atual, AccelR e AccelS do robô (Inicializados aos valores padrão)
• Parâmetro LimZ atual do robô (Inicializado a 0)
• Fine atual do robô (Inicializados aos valores padrão)
• Power Low atual do robô (Modo de Baixa Energia ligado)
• PTPBoost atual do robô (Inicializados aos valores padrão)

O comando restauração deve ser usado para restaurar o controle após a ocorrência de erros.
NOTA
Muitos erros não permitirão a execução do programa até que um comando de restauração seja
executado, seja pelo modo de monitoração, pelo painel de controle do robô, ou
programaticamente

63
Sentença de Início do Motor
Sintaxe
Motor On | Off On energiza todos os motores | Off desliga a
energia de todos os motores

Descrição
O comando Motor On é usado para ligar o motor e liberar os freios para
todos os eixos. Motor Off é usado para desligar o motor e regular os
freios.

O comando Motor On inicializa os seguintes itens:

Speed atual, SpeedR, SpeedS (Inicializados aos valores padrão),


Accel, AccelR, AccelS (Inicializados aos valores padrão), e
parâmetro LimZ do robô (Inicializado a 0)
Fine atual (Inicializados aos valores padrão), Power
Low (Modo de Baixa Energia ligado), e PTPBoost do
robô (Initiacializados aos valores padrão)

64
Sfree / Slock
• SFREE: Remove energia do servo da junta de servo
especificada.
• SLOCK: Restaura energia do servo (da condição
"Servo Livre") à junta de servo especificada.

> SFree 1, 2
> SLock 1, 2

O SFree restaura as configurações iniciais de alguns Itens do Sistema:


Por motivos de segurança, o SFree inicializa alguns parâmetros
levando em conta a velocidade do braço do robô (Speed e
SpeedS) ( aceleração (Accel e AccelS) e o parâmetro LimZ.
***Não é um comando de Seis Eixos válido para o robô***

65
Freio Ligado / Desligado
> Brake On, 1
> Brake Off, 1

66
Discussão de Palavras-chave

Certos comandos em nosso ambiente de programação podem ser usados


como Sentenças e Funções. Ao usar um comando como uma sentença, o
usuário ou desenvolvedor está executando, tipicamente, uma ação
Controlador/Robô. Um exemplo simples seria o uso Motor On. Quando a
sentença de Motor On é executada (ex: >Motor On), os motores são
energizados. Quando Motor (sem a sintaxe On ou Off) é executado como
uma função, será interpretado como uma questão por parte do usuário ou
desenvolvedor se o estado do motor é ligado ou desligado. (ex: >Print
Motor)

67
Função Pulse
Função Pulse
Veja também o exemplo

Retorna um ponto do robô do qual a coordenada é especificada em pulsos.

Sintaxe
Pulse (J1, J2, J3, J4, [J5], [J6])

Parâmetros
J1, J2, J3, J4 O valor do pulso para as juntas de
1 a 4. O pul a instrução da faixa e deve ser um i

J5, J6 Opcional. Para uso em robôs de 6-


eixos.
Valores de Retorno
Um ponto do robô usando os valores de pulso especificados

Veja também

Exemplo
> Pulse
PULSE: 1: 0 pls 2: 0 pls 3: 0 pls 4: 0 pl

68
Comando Wait
• Força o programa a aguardar uma quantidade
específica de tempo ou até a condição inserida
especificada (usando Sw) seja alcançada.
• Exemplos:
Wait Sw(0) = 1 Aguarda (suspende) até o
H/W inserir 0 igual a 1 (alto)

Wait Aguarda 60.5 segundos, e então


60.5 continua a execução

Wait Sw(0) = 0 And Sw(1) = 1 Aguarda até que ambas as


condições Sw(0)=0 (baixo) And
Sw(1)=1 sejam alcançadas

Wait MemSw(1) = 1 Or Sw(1) = 1 Aguarda até qualquer uma das


condições MemSw(1)=1 Or
Sw(1)=1 sejam alcançadas

Wait 1; On 1 Aguarda um segundo, então


muda o bit de saída para 1 On

NOTA Multi-sentenças: Uma sentença de programa (uma linha de código) pode


conter diversas sentenças separadas pelo sinal de ponto e vírgula.

69
Sentença de Impressão
• Envia dados para a janela atual do visor,
incluindo as janelas Run, Operator, Monitor,
e Macro.
Sintaxe
Print [expressão [ , expressão... ] [ , ]
Parâmetros
Expressão Optional. Um número ou expressão em
sequência., (vírgula) Optional. Se uma vírgula é
posicionada no final da sentença, então um CRLF não será
adicionado.

Valores de Retorno:
Dados variáveis da sequência de caracteres especificados.

Descrição:
Print exibe dados variáveis ou sequências de
caracteres no visor.

70
Sentença de Impressão
• Exemplo de Sentença Print

O exemplo a seguir insere o valor da coordenada


na variável uvar - o valor é então impresso à atual
janela do visor.

Function test
Real uvar
uvar = 1.123
Print “The value of uvar is: ”, uvar
Fend

Visor da Janela Run ou Operator:


The value of uvar is: 1,123

71
Comando SW
Recupera ou exibe o estado das portas de entrada
selecionadas. (ex.: Sinais de I/O Discretos)
• Sintaxe:
Sw(bitNumber)
• Parâmetros:
A expressão bitNumberInteger representando uma porta de
entrada.
• Valores de Retorno:
Retorna 1 quando a entrada especificada está ligada e 0
quando a entrada especificada estiver desligada.
• Descrição:
Sw fornece uma verificação de estado das entradas. Sw é
mais usado, normalmente, para verificar o estado de uma
das entradas que pode ser conectada a um alimentador,
transportador, uma garra solenoide, ou uma série de outros
dispositivos que funcionam através de um I/O discreto.
Obviamente, o valor verificado com a instrução Sw possui
2 estados (1 ou 0). Isso indica quando o dispositivo está ligado
ou desligado.

NOTA
Multi-sentenças: Uma linha de sentença de programa pode
conter diversas sentenças separadas pelos sinais de ponto e
vírgula.
72
Comentários
• Use os comentários para
adicionar anotações aos seus
programas. Uma apóstrofe '
inicia um comentário.
• Exemplo:
Function Main
' ****** Treinamento Epson ******
' O código do aplicativo fica aqui embaixo..
Print “Hello World”
Fend

73
Cores do Editor

• Comentários são verdes


• Erros de sintaxe são
vermelhos
• SPEL+ Palavras-chave são
azuis

Conclusão de Sintaxe SmartSense

Um erro de sintaxe indica que o código no


NOTA

programa viola a sintaxe (i.e., regras


gramaticais) do Spel+.

74
Janela de Estado de Criação do Projeto

• Quando a criação
do projeto iniciar,
a janela de
estado de Criação
do Projeto será
apresentada.
Essa janela exibe
mensagens de
erro e progresso.

Clicar duas vezes


sobre a mensagem
de erro para ir à
linha do código
onde foi gerado o
erro.

75
Erros de Sintaxe

Se um acento
circunflexo (cursor)
está abaixo da linha
com o erro, então
uma breve
mensagem será
exibida na barra de
status. Por
exemplo, no
programa exibido
abaixo, a
mensagem é
exibida na barra
de status.

Mensagem de erro
na barra de status

76
Etiquetas dos Pontos
• Alguns pontos podem ser referenciados por seus nomes

• Você pode atribuir nomes a números de ponto para que você possa se referir a
pontos por nome em um programa. Atribua os nomes a partir do editor de
pontos através do Gerenciador do robô. Os nomes devem ser únicos para
cada número de ponto quando usados no mesmo arquivo de ponto.

Exemplo:
Function Main ‘Function declaration
Integer I ‘Defines Integer data
For i = 0 To 10 ‘Count loop init block
Jump Pick ‘Pick is point label
On GripDev ‘GripDev is bit label
Jump Place ‘Place ispoint label
Off GripDev
Next ‘Count loop end block
Fend ‘Function end declaration

77
Gerenciador do robô
Etiquetas de Ponto & Edição Direta de Posições
A EPSON RC+ lhe
fornece um editor
de planilhas para
pontos dos robôs.
Pode selecionar
pontos para
arquivos, definir
novos pontos,
editar pontos
existentes, e
etiquetar pontos ou
cortar, copiar e
colar pontos.

78
Lab2

• Modifique “Seu primeiro programa SPEL+” para


incluir comandos para ligar e desligar do I/O

• Use o Monitor IO para verificar a operação I/O

• Use o Editor de Etiqueta I/O para nomear todos os I/O

• Etiquete os pontos do robô

• Inclua a Sentença de Parada com um atraso de tempo

• Modifique o programa para incluir Comentários

79
Projetos

• Explicar estruturas de funções básicas


(Function/Fend)
• Visão Geral do Projeto
• Tipos de Arquivo
• Estrutura de Diretórios e Sub-diretórios
• Criando um projeto
• Compilar
• Re-compilar

80
O que é um programa SPEL?
• Um programa SPEL+ é um arquivo de texto que
possui uma ou mais definições de funções. Todo
arquivo de programa tem uma
extensão .PRG e fica alocado no diretório de projetos
do PC.
• Uma definição de função inicia com a sentença
Function e termina com a sentença Fend. Todas as
sentenças-fonte a serem executadas por uma função
devem estar incluídas no corpo da função.
• A combinação de sentenças Function...Fend pode ser
vista como um recipiente onde todas as sentenças
alocadas entre as sentenças Function e Fend
pertençam à tal função. Múltiplas funções podem
existir em um arquivo de programa.

NOTA Uma função é uma unidade autônoma do programa que executa


uma tarefa específica

81
O que é um projeto EPSON RC+?
Um projeto EPSON RC+ é uma coleção
de arquivos de programas SPEL+,
arquivos de pontos do robô, e
parâmetros de configuração usados
para executar um aplicativo.

82
Estrutura do Projeto
Clique no menu "Project", e então
selecione "edit" para adicionar e remover
programas de projeto, incluir e apontar
arquivos. O nome do arquivo de ponto
padrão é: robot1.pts

NOTA O primeiro arquivo de programa listado ao executar seu projeto pela janela
Run ou Operator é padrão. Isso quer dizer que sua execução iniciará
sequencialmente na primeira função incluída em main.prg. Todos os dados
de pontos serão recuperados de arquivos de ponto padrão a não ser que
sejam redirecionados com o comando LoadPoints.
83

83
Estrutura do Projeto 5.x
Clicando no menu "Project", e então
selecionando "edit" é a maneira de adicionar e
remover programas de projetos, incluir e
apontar arquivos. O nome do arquivo de ponto
padrão é: Points.pts

NOTA
O primeiro programa e arquivo de ponto listado ao executar seu projeto pela
janela Run ou Operator é padrão. Isso quer dizer que sua execução iniciará
sequencialmente na primeira função incluída em main.prg.
Todos os dados de pontos serão recuperados do arquivo Points.pts ao executar
comandos de movimento salvo direcionamento contrário.

84
Porque você precisa de projetos?

• Projetos são uma maneira segura e conveniente


de gerenciar seus aplicativos SPEL+. Toda
informação para cada aplicativo é mantida em
um projeto.
A manutenção de todos os códigos, configurações
do robô, variáveis de sistema, e definições de
ponto em um projeto, facilitará a abertura de um
projeto e sua execução ou edição. Além disso,
isto facilita a criação de novas versões de um
aplicativo e a execução de versões antigas.
• Os projetos facilitam a manutenção de seu
código do aplicativo com menor possibilidade
de perda.
• Existem também comandos para copiar e
renomear projetos, facilitando a criação de
novos projetos a partir de versões anteriores e a
criação de cópias de segurança.

85
Visão Geral dos Projetos
Sobre o projeto EPSON EC+?
• Cada projeto possui seu próprio diretório no disco. Isso mantêm
todos os arquivos para cada projeto separados entre si. Os
diretórios de projeto estão no diretório \EPSONRCxx\Projects.
Sub-diretórios também podem ser criados.
Os componentes a seguir compõem um projeto-
• Arquivo de projeto
– Um arquivo de projeto contém todas as informações que
descrevem o projeto. O arquivo é automaticamente
criado pela EPSON RC+. O arquivo de projeto não requer
edições do usuário, realizar tal processo pode causar
erros ao abrir o projeto.
O arquivo de projeto de interesse possui uma extensão
*sprj. O arquivo *.sprj é também o arquivo de ligação
VB Guide.
• Arquivos de fonte de programa
– Um arquivo de fonte de programa é um arquivo em ASCII
que contém uma ou mais funções SPEL+.
Cada função em SPEL+ pode ser executada como função
separada no controle do robô. Arquivos de programa
possuem a extensão *.PRG.

86
Visão Geral dos Projetos
Sobre o projeto EPSON EC+?
• Arquivos de ponto
– Um arquivo de ponto contém uma lista de pontos do robô. A
extensão do arquivo é PTS. Cada ponto descreve uma
coordenada Cartesiana na área de trabalho do robô. Arquivos de
ponto são associados a robôs de projeto. Cada robô em um
projeto possui seu próprio conjunto de arquivos de ponto. Cada
arquivo de ponto contém 1000 espaços reservados.

• Arquivos de Inclusão
– Contêm macros definidas pelo usuário para desenvolvimento do projeto.
Um arquivo de inclusão que possui macros definidas substitui
um nome simbólico ou conjunto de caracteres por um
valor sequencial ou numérico fixo associado.

• Modelos
– Novos modelos de projetos estão disponíveis para usuários
iniciantes. Modelos podem ser criados ao colocar um arquivo de
projeto na pasta associada de Modelos (Templates).

87
Criação de um projeto

• Antes de executar qualquer código em seu aplicativo,


deve-se primeiro criar o projeto.

• Para criar seu projeto de aplicativo -


– Selecione "Build" no menu "Project" ou clique no
botão Build na barra de tarefas.
Ou
a. Selecione "Rebuild" no menu Project. Isso irá
recriar todo o projeto.
Ou
– Selecione "Run" no menu "Run" ou clique no
botão "Run" na barra de tarefas. O projeto será
criado antes da janela "Run" aparecer.
Ou
– Selecione a janela "Operator" no menu "Run". O
projeto será criado antes da janela "Operator"
aparecer.
NOTA
A criação do projeto compila o código fonte de cada programa da Spel+ em um código de objeto e então
liga (conecta) todos os outros arquivos de objeto juntos. O comando "Build" realiza a quantidade
mínima de trabalho exigida para atualizar o projeto no controle do robô. A recriação compilará todo o
projeto.

Compilador: Um programa que traduz o texto escrito em uma linguagem de computadores (neste caso,
SPEL+ lite) para outra linguagem de computadores (código de objeto Epson RC+)

88
Programa de Recolhimento Expandido

• Byte
• Integer
• Real
• Duplo
• Longo
• String
• Booleano
• Estrutura de Loop Básica

89
Tipos de Dados Variáveis
• Uma variável é um nome simbólico
que é usado para identificar um
valor.
• Uma declaração de variável requer que o
tipo dos dados da variável seja
especificado seguido pelo símbolo que
será usado para representar o local da
memória.
Exemplo
Integer cycleCount
String partName$

• Você pode declarar diferentes tipos de


dados no seu programa. Todas as
variáveis devem ser declaradas.

90
Tipos de Dados
• A seguinte tabela mostra os diferentes tipos de dados para a
linguagem SPEL+.

Tipo de Dados Tamanho Faixa


• Boolean byte VERDADEIRO ou FALSO
• Byte 1 byte -128 a +127
• Integer 2 bytes -32768 a +32767
• Long 4 bytes -2147483648 a
+2147483647
• Real 4 bytes -3.40E+38 a 3.40E+38
• Double 8 bytes -1.79E+308 a 1.79E+30
• String 256 caracteres ASCII e ASCII Estendido

NOTA Quando uma variável é declarada em uma linha de


programação, o compilador deve reservar uma
quantidade específica da memória do computador.

91
Tipos de Dados
• Os nomes das variáveis não devem corresponder ou copiar qualquer
comando SPEL+.
• Os nomes das variáveis podem ter um tamanho de até 24 caracteres.
Correspondência de dados
EPSON RC+ C/C++

Boolean curto
Byte curto

Integer curto

Long int

Real Flutuação

Double duplo
String char [256]
* Nulo incluso

92
Tipos de Dados
Variável Dados
O acesso de leitura/gravação do
escopo de seu código fonte pode
ser:

• Global • Módulo • Local


(Projeto Inteiro) (Do Tamanho do (Somente
Programa) Função)

93
Valores Iniciais

• Todas as variáveis são inicializadas no


primeiro uso, exceto para as variáveis
Global Preserve. As Strings são definidas
como vazias, e todas as outras variáveis
ajustadas para zero.

94
Use "If...Then...Else…ElseIf" para estratégia de execução de condição
única ou múltipla. Condições embutidas são suportadas. (Condição IF
integrada e IF existente)
Exemplo –
Expressão usando técnica de linha única
IF SW(0) = 1 THEN PRINT "Input 0 ON" ELSE PRINT "Input 0 OFF"

ou a mesma expressão usando a técnica de múltiplas linhas:

IF SW(0) = 1 THEN
PRINT "Input 0 ON”
ELSE
PRINT "Input 0 OFF”
ENDIF „ ** “marcador final” ou fim de construção de sintaxe >
condição if.

95
Exemplo -
If Motor=Off Then
Motor On
EndIf

NOTA
A "Motor Function" retorna o estado de potência do
motor (0 = Motores desligados, 1 = Motores ligados).

96
de

• "For...Next"executa um conjunto de sentenças,


dentro de um loop, uma quantidade especificada
de vezes. O início do loop é a sentença "For". O
fim do loop é a sentença "Next". Uma variável é
usada para contar a quantidade de vezes que as
sentenças são executadas dentro do loop.

• A primeira expressão numérica é o valor inicial do


contador. Este valor pode ser positivo ou
negativo, contanto que a variável final e o
incremento Step se correspondam corretamente.

• A segunda expressão numérica é o valor final do


contador. Este é valor que, assim que alcançado,
termina o loop "For...Next" e o controle do
programa é passado para a próxima linha de
comando seguindo a Próxima linha de comando.

97
de

• As sentenças do programa depois da sentença


"For" são executadas até que uma Próxima
linha de comando seja alcançada. A variável
do contador é então incrementada pelo valor
Step definido pelo parâmetro de acréscimo.
Se a opção Step não for usada, o contador
aumenta em 1.

• A variável do contador é então comparada


com o valor final. Se o contador for menor ou
igual ao valor final, as sentenças seguindo o
comando "For" são executadas novamente.
Se a variável do contador estiver maior do
que o valor final, a execução vai além do loop
"For...Next" e continua com os comandos
logo após o comando "Next".

98
Exemplo "For/Next"

FOR . . . NEXT

FUNCTION Demo1
INTEGER count
FOR count = 1 To 10
GO P(count)
NEXT count

FOR count = 10 To 1 STEP -1


GO P(count)
NEXT count
FEND

99
de

• Especifica uma condição "While". Se atendidas, as


sentenças são executadas entre "Do" e "Loop", a
condição "While" é verificada novamente. A
execução das sentenças "Do….Loop" e a
reverificação da condição "While" continua
contanto que a condição "While" ou "Until" seja
atendida. Se nenhuma condição for especificada
"do...loop" irá circular indefindamente.

• Se a condição "While" não for atendida, o controle


do programa transfere para o comando seguindo o
Loop. Para uma condição "While" que não foi
atendida na primeira verificação, as sentenças
dentro das sentenças "Do...Loop" nunca são
executadas.

100
de

"Do….Loo
p"

Function Demo2
Integer A
A=1
Do While A < 10
Jump P1
On 1
Jump P2
Off 1
A=A+1
Loop
Print “ Program cycle finished”
Fend

101
Lab 3

• Adicionar Variável ao programa (Integer)

• Modificar programa para incluir Wait SW( # )

• Modificar programa para incluir loop For Next

• Print Contagem de variável através do loop

102
Conceitos e Uso de Movimento

• Gerenciador do robô:
– Controle do Robô
– "Jog & Teach" (Habilitação por Movimento)
– Pontos
– Distância de Movimento
– Teach, Delete
– Identificação de Ponto
– Nome do Arquivo do Ponto
– "Jump, Go, Move"
• Comando Go
• Comando Move
• Comando Jump

103
Operação do Robô - Painel de Controle
Aba do painel de controle
• Selecione ligar Robô
6.x somente *
• Motor Desligado /
Ligado
• Potência Baixa / Alta
• Status – Parar,
Proteção, Motor e
Potência
• Juntas Livres
(Somente Robô SCARA)
• Reset - Erros de
reinicialização que
requerem o comando
"Reset".
• Home – Movimento
do robô à posição
armazenada da junta
com prioridade de
execução da junta. EPSON RC+ Gerenciador do robô é uma interface ativa
às configurações de movimento mais comuns do
robô. Você pode alternar facilmente entre os itens
apenas selecionando a aba de sua escolha.

104
"Jog & Teach" ECP – Externo
Local, Ferramenta e Braço Ponto de Controle
Modo de Locomoção
Teclas de
"Jog".

Posição Atual
Valores

Configurações de
distância de
locomoção Continua,
longa, Média e
Destro ou Canhoto
Curta.
Orientação da Mão
A tecla de edição o
leva até a aba de
pontos onde é
possível mudar as
coordenadas de
direção. .

"Teach" pega os
dados da "Current
Movimento
Position" e armazena
Comandos
os valores atuais.
105
Seleção do Número do Seleção do
Ponto
& Edição do Nome
Arquivo do
Ponto Pontos
Coordenar
edição de dados

Posição do Ponto
Valores

Os arquivos do ponto possuem 1.000 posições editáveis. A edição pode ser feita dentro
NOTA do diálogo de Pontos. Os pontos de "Teach" são feitos pela aba de "Jog & Teach". A
extensão do arquivo do ponto é *.pts. O arquivo pts está contido dentro do arquivo de
seu projeto. O Epson RC+ pode ter vários arquivos de ponto. (6.x) Nome de arquivo
padrão robô1.pts / (5.x) Nome de arquivo padrão Pontos.pts
106
Pontos
SCARA Canhoto /
Destro

Canhoto(Lefty) Destro(Righty)

107
Pontos
RS3 Canhoto / Destro

Canhoto (Lefty) Destro (Righty)

108
Pontos
Orientações em SEIS EIXOS

Destro Canhoto Acima do Cotovelo Abaixo do


Cotovelo

Sem Virada Virada de Pulso

109
Comandos de Movimento

Movimento ponto a ponto


Os comandos ponto a ponto (PTP) movem o robô de
sua posição atual diretamente a um ponto
especificado. O movimento não pode ser em uma Go colocar
linha reta.
GO, executa um movimento PTP simultâneo de 4 Go P0
eixos, com desaceleração e parada em um ponto
especificado.
JUMP, Direciona o movimento PTP no formato de um
Jump pegar
portão a uma posição desejada. No movimento de Jump p1
portão, o 3º eixo levanta da posição atual à posição
mais alta das coordenadas Z (Z = 0), se move
horizontalmente à posição desejada acima enquanto
“girão” ao 4º ângulo do eixo, o 3º eixo desce até o
Pass colocar
ponto alvo. Pass P0, P1, P6..
PASS move o braço do robô próximo mas não através
das séries de ponto especificadas.

110
Comandos de Movimento
Movimento ponto a ponto
Os comandos ponto a ponto (PTP) movem o robô de sua posição
atual diretamente a um ponto especificado. O movimento não
pode ser em uma linha reta.
BGo, executa o movimento ponto a ponto relativo no
sistema de coordenada local selecionado conforme
BGo colocar
especificado na expressão do ponto de destino. BGo P0
• Se um sistema de coordenada local não estiver especificado, o
movimento relativo irá ocorrer no local 0 (Sistema de
Coordenada Base).
• Atributos de orientação do braço especificados na expressão do
ponto de destino são ignorados. O manipulador mantém os
atributos atuais de orientação do braço. Porém, para um
manipulador de 6 eixos, os atributos da orientação do braço são
alteradas automaticamente de maneira que a distância de
movimento da junta seja a menor possível.

TGo, Executa Movimento relativo ponto a ponto no


sistema de coordenada de Ferramenta Atual.
TGo pegar
• Atributos de orientação do braço especificados na expressão do TGo p1
ponto de destino são ignorados. O manipulador mantém os
atributos atuais de orientação do braço. Porém, para um
manipulador de 6 eixos, os atributos da orientação do braço são
alteradas automaticamente de maneira que a distância de
movimento da junta seja a menor possível.

111
Comandos de Movimento
Comandos de Movimento da Junta
PULSE, executa movimento PTP de 4 eixo Pulse 0,0,0,0
simultâneo usando os valores de pulso de eixos
especificados, com desaceleração e parada no valor Pulse 0, 12432,0,0
de pulso especificado.
JTRAN, O comando JTran pode ser usado para mover
uma junta do robô à posição especificada em graus ou JTran 1, 20
milímetros, dependendo do tipo da junta. A
velocidade e aceleração são as mesmas para os
comando de movimento ponto a ponto.
PTRAN, Use PTran para mover uma junta em PTran 1, 2000
uma quantidade especificada de pulsos da
posição atual.

112
Comandos de Movimento
Movimento Interpolado
O Movimento Interpolado (MI) movimenta o robô de sua posição
atual a um ponto especificado. O movimento pode ser em uma linha
reta, circular ou curvada.
Move colocar
Move, executa um movimento linear ou em linha reta onde todos os
eixos compensam para atender a uma interpolação de linha reta.
Move P0
Arc, A Interpolação Circular é um tipo de movimento curvado onde um
arco é definida com 3 pontos e o braço se move circularmente pelos 3 Arc Nove, Dez
pontos até finalmente chegar no 3º ponto. O Movimento Interpolado
Circular é normalmente usado em aplicações de processo, como
Arc P9,P10
distribuição.

Curve, "Curve" cria dados que movem o braço do manipulador pela CvMove “Myfile”
curva definida pelo pointList de série de pontos e armazena os dados
em um arquivo no controlador. O comando CVMove usa os dados no
arquivo criado pela "Curve" para mover o manipulador em um
caminho contínuo.

O processo de estimação de resultados entre os pontos de dados


testados é chamado de interpretação; o processo de estimação dos
resultados fora da faixa coberta pelos dados existentes é conhecido
como uma extrapolação.

113
Comandos de Movimento
Movimento Interpolado
O Movimento Interpolado (MI) movimenta o robô de sua posição atual a um
ponto especificado. O movimento, para os seguintes comando, será linear.
BMove,Executa movimento relativo interpolado linear no sistema de
coordenada local selecionado que tenha sido especificado na expressão do BMove colocar
ponto de destino.
• Se um sistema de coordenada local não estiver especificado, o movimento
BMove P0
relativo irá ocorrer no local 0 (Sistema de Coordenada Base).
• Atributos de orientação do braço especificados na expressão do ponto de
destino são ignorados. O manipulador mantém os atributos atuais de
orientação do braço. Porém, para um manipulador de 6 eixos, os atributos da
orientação do braço são alteradas automaticamente de maneira que a distância
de movimento da junta seja a menor possível.

TMove, Executa Movimento relativo interpolado linear no sistema de


coordenada de Ferramenta atual. TMove colocar
• Atributos de orientação do braço especificados na expressão do ponto TMove P0
de destino são ignorados. O manipulador mantém os atributos atuais de
orientação do braço. Porém, para um manipulador de 6 eixos, os
atributos da orientação do braço são alteradas automaticamente de
maneira que a distância de movimento da junta seja a menor possível.

114
Movimento do Robô
Jump3
Movimento de portão 3D. Jump3 é uma combinação de dois movimentos CP e um
movimento PTP.
Sintaxe
(1) Jump3 partida, chegada, destino [CarchNumber] [searchExpr] [!...!]
Parâmetros
partida O ponto de partida acima da posição atual usando uma expressão de ponto.

chegada O ponto de chegada acima da posição de destino usando uma expressão de ponto

Destino O destino desejado do movimento usando uma expressão de ponto. archNumber

[Opcional]. O número do arco (archNumber) especifica qual entrada da Tabela de Arco


será usada para o movimento do tipo Arco causado pelo comando Jump. o archNumber deve sempre ser
precedido pela letra C. (Entradas válidas são C0-C7.)
searchExpr [Opcional]. Uma expressão Sense, Till ou Find.
Sense | Till | Find; Sense Sw(expr) = {On | Off}; Till Sw(expr) = {On | Off};
Find Sw(expr) = {On | Off}
!...! [Opcional]. As sentenças do Processamento Paralelo podem ser adicionadas ao comando
"Jump" para que o "I/O" e outros comandos sejam executados durante o movimento.

115
Movimento do Robô
Movimento da envergadura
PTP/CP
Ponto de aproximação
Ponto de divergência
Movimento de
aproximação CP
Movimento
de divergência CP Ponto de Destino

Posição atual

Exemplo de Sentença Jump3


movimento do robô 6 axis que funciona como "Jump" do robô SCARA.
Jump3 P*-Z(100), P3-Z(100), P3
' Partida e chegada usando as coordenadas de ferramenta Z
Jump3 P*-TLZ(100), P3-TLZ(100), P3
' Partida usa a base (Coordenada Mundial) Z e chegada usam ferramenta
Z Jump3 P*+Z(100), P3-TLZ(100), P3

116
Movimento do Robô

Movimento da envergadura
PTP/CP
Ponto de aproximação
Ponto de divergência
Movimento de
aproximação CP
Movimento
de divergência CP Ponto de Destino

Posição atual

Jump3CP é uma combinação de três movimentos de CP. Exemplo


' movimento do robô 6 axis que funciona como "Jump" do robô
SCARA.
Jump3CP P*:Z(100), P3:Z(100), P3
' Partida e chegada usando as coordenadas de ferramenta Z
Jump3CP P*-TLZ(100), P3-TLZ(100), P3
' Partida usa base Z e chegada usa ferramenta Z Jump3CP P*+Z(100),
P3-TLZ(100), P3

117
Movimento do Robô (Robôs Six Axis e RSx)
J4Flag & J6Flag

Em alguns pontos na área de trabalho, o robô 6-Axis pode ter a mesma posição e
orientação mesmo se a quarta ou sexta juntas girarem 360°. Para distinguir entre esses
pontos, os atributos de ponto J4Flag e J6Flag são fornecidos.

Para especificar o J4Flag, adicione uma barra inclinada (/) seguida por J4F0 (-180 < o 4°
ângulo da junta <= 180) ou J4F1 (o 4° ângulo da junta <= -180 ou 180 < o 4°
ângulo da junta).

Para especificar o J6Flag, adicione uma barra inclinada (/) seguida por J6F0 (-180 < o 6°
ângulo da junta <= 180), J6F1 (-360 < o 6° ângulo da junta <= -180 ou 180 <o 6° ângulo da
junta <= 360), ou J6Fn (- 180*(n+1) < o 6° ângulo da junta <= 180*n ou 180*n <o 6° ângulo
da junta <= 180*(n+1)).

118
Lab #4

• Crie um novo projeto


• Habilite 2 Pontos
• Dê nomes aos pontos
• Utilize “pass” entre os pontos
• Utilize “move” entre os pontos
• Utilize “jump” entre os
pontos
• Utilize “arc” entre os pontos

119
DIA 2

120
Ferramentas

• Discussão:
• Sistemas de Coordenadas de Ferramentas
• Como criar uma ferramenta
• Como usar ferramentas na J&T Screen
• Comando TOOL e TLSET

121
Sistemas de Coordenadas de Ferramentas

Yt0
Yt1
Sistemas de Coordenadas da
Ferramenta 1
Xt1

b U em graus

Xt0
Y a Sistema de Coordenadas da Ferramenta 0

Sistema de Coordenadas Globais do Robô


Local 0
X

122
Sistema de Coordenadas de Ferramentas de 6 Eixos
Tlset para robôs de seis eixos
A origem da Ferramenta 0 é o flange lateral da sexta junta. Quando todas as juntas
estiverem na posição 0 grau, o eixo X do sistema de coordenadas da Ferramenta 0
alinha-se ao eixo Z do sistema de coordenadas do robô, o eixo Y alinha-se ao eixo X
do sistema de coordenadas do robô, e o eixo Z é perpendicular à face do flange, e
alinha-se ao eixo Y do sistema de coordenadas do robô, conforme mostrado na
figura abaixo:

Sistema de
coordenadas
Ferramenta 0

Sistema de coordenadas do Robô

123
Sistema de Coordenadas de Ferramentas de 6 Eixos
Tlset para robôs de seis eixos

Os sistemas de coordenadas são definidos para robôs


montados no teto e nas paredes, conforme mostrado nas
figuras abaixo.

Montagem lateral (parede) Montagem no Teto

Sistema de coordenadas do Robô

Sistema de coordenadas do Robô

Sistema de coordenadas
Ferramenta 0 Sistema de coordenadas
Ferramenta 0
124
O que é um desvio de ferramentas?
Centro de rotação da junta final
Superfície de montagem da do robô – Ferramenta 0

junta final do robô

Desvio de ferramentas XY

Ferramentas da ponta do braço

Extremidade da ferramenta

Desvio de ferramentas Z

A ferramenta padrão é conhecida como Ferramenta 0. A Ferramenta 0


utiliza a superfície de montagem e o centro de rotação da junta 6.
Ferramentas 1 – 15 são ferramentas do usuário e podem ter desvios
individuais aplicados. Os valores de desvios de ferramentas de usuário
representam um desvio Ortogonal que utiliza a ferramenta 0 como
posição de referência.

125
TLSET
(1) Abra a janela Jog and Teach. Verifique a configuração da
Ferramenta 0.
(2) Ative o eixo U para 0 grau ou configure para
0 grau. A coordenada U pode ser forçada a 0 grau instruindo um
ponto arbitrário e em seguida digitando 0 grau e clicando em set.

(3) Ative a ferramenta para o ponto alvo usando o modo Base.


(4) Na localização alvo, registre as coordenadas X e Y.
(5) Ative o eixo U 180 graus (para +180 ou -180).
Isso pode ser feito simplesmente girando o eixo U 180 graus mudando o valor
bruto de ativação para 180. Clique na tecla de ativação U+ ou U- apenas uma
vez.
(6) Ative o robô para o ponto alvo para realinhar a ferramenta.
(7) Registre as novas coordenadas X e Y.
(8) Para calcular os desvios de ferramentas, subtraia o
seguinte: X no passo 7 - X no passo 4 = delta X
Y no passo 7 - Y no passo 4 = delta Y ( * -1 para robô de seis eixos)
(9) Valor da ferramenta X = delta X / 2
Valor da ferramenta Y = delta Y/ 2
126
TLSET

(10) Vá para a aba


“Robot Manager >
Tools.
Digite o valor da
ferramenta X e o
valor da ferramenta Y
nas caixas de texto
"X" e "Y" (para
Ferramenta Número 1
para esse exemplo).
Atribua um valor de
"0" para "Z" e "U".
Feche a caixa de
diálogo Robot
Manager - aplique as
mudanças.

127
TLSET
Selecione a Ferramenta #

(11) Teste a ferramenta recém-


criada indo até a tela Robot
Manager > Jog and Teach.
Selecione a ferramenta
apropriada (Ferramenta 1
para esse exemplo).
Selecione uma “Distância de
ativação” de 10 graus.
Clique na tecla de ativação
U+ ou U-. O robô deve girar
sobre a ferramenta recém-
definida em oposição à
rotação sobre a linha central
do eixo Z. O centro da
Ferramenta deve
permanecer relativamente
parado. A ferramenta pode
oscilar durante a ativação
incremental, mas deve
retornar ao mesmo ponto de
partida. Se o robô não girar
sobre a nova ferramenta,
verifique os passos 8 e 9
listados acima.

128
TLSET

• Comando TLSet: Define um sistema de coordenadas de


ferramenta. Em outras palavras, TLSET especifica a origem
do sistema de coordenadas de ferramenta e o ângulo de
rotação do sistema de coordenadas da ferramenta 0.
Sintaxe:
número da ferramenta TLSET, posição x, posição y,
posição z, ângulo de rotação

• Ferramentas não são locais para um projeto, é preferível que


fiquem com o controlador do robô.
Exemplo:
TlSet 1, XY(100, 0, 0, 0) 'Define o sistema de
coordenadas da ferramenta 1 (mais „100 mm na direção
x do sistema manual de coordenadas)

129
Comando TOOL
• Comando Tool: Seleciona uma definição de ferramenta.
TOOL toolNum
Onde o ToolNum for um número inteiro de 0-15
representando cada uma das definições de ferramentas
para uso com as instruções de movimento seguinte.
• TOOL seleciona a ferramenta especificada pelo número
da ferramenta (toolNum). Quando o número da
ferramenta é 0, nenhuma ferramenta é selecionada e
todos os movimentos são feitos em relação ao centro
do flange de eixo U. No entanto, quando a entrada
TOOL 1-15 é selecionada, o movimento é feito em
relação à extremidade da ferramenta conforme
definido com a definição da ferramenta.
Exemplo:
Tool 1 'Seleciona a Ferramenta 1 como definido pelo
TLSet

130
Modo/Ponto de Comando
Manipulação
• Discussão:
• O que a janela Command faz
• Use Commands na janela do
Monitor:
– Motor On
– Slock
– Sfree
– Reset
– GO, Jump, Move
– On/Off
• Point Manipulation
• P*
• Here, Where
• Plist
• Math on Points

131
Modo de Comando
• A janela Command
simula um terminal
ASCII que se
comunica diretamente
com o controlador do
robô. Você pode
executar comandos
SPEL imediatos nessa
janela e ver os
resultados.

• Para abrir a janela


Monitor
a. Selecione Monitor
no menu Tools.
Ou
– Clique no botão
na barra
de ferramentas.

132
Modo de Comando

• SFREE: Remove energia do servo de


uma junta de servo especificada.
• SLOCK: Restaura energia do servo (da
condição "Servo Livre") à junta de
servo especificada.

> SFree 1, 2
> SLock 1, 2

133
Trabalhando Pontos de robôs
• Um ponto de robô é um conjunto de coordenadas
que definem uma posição na área de trabalho do
robô.
• Cada ponto em SPEL possui quatro coordenadas: X, Y, Z
e U. (o robô de seis eixos usa adicionalmente V e W).
• X, Y e Z são especificadas em milímetros.
• U é especificada em graus.
• Os pontos são referenciados pelo uso da letra P
seguidos por um número inteiro ou variável inteira.
• Você pode configurar um arquivo de ponto (.PTS) por projeto.
• O número padrão de pontos para cada arquivo de ponto é
1000.
• Um ponto pode ser à esquerda (/L) ou àdireita (/R).

134
Trabalhando Pontos de robôs
• Definindo pontos
– Você pode definir pontos em um comando de programa, com a
ferramenta Jog and Teach, ou na janela Monitor.
– Em uma instrução de programa ou na janela Monitor,
você pode atribuir coordenadas a um ponto, ou definir
um ponto que seja a posição atual do braço do robô.

P1 = XY(200, 100, -25, 0) ' Atribua coordenadas


P10 = Here ' Atribua um ponto à posição atual

• Referenciando pontos por nome


– Você pode atribuir nomes a números de ponto para que
você possa se referir a pontos por nome em um
programa. Atribua nomes a partir do editor de pontos
(ver Editando Pontos) ou na ferramenta Jog and
Teach. Os nomes devem ser únicos para cada número de
ponto quando usados no mesmo arquivo de ponto.

For i = 0 To 10
Go pick
Jump place
Next

135
Instrução Aritmética de Pontos
Alteração pontos
• Mudando para posições de desvio sem mudar os valores de
Instrução de Pontos:

JUMP P11 :X(30) „Define 30 para o valor de X


JUMP P25 +U(90) „Define 90 graus a U
Go P1 -TLZ(20) „Vai para P1 com um desvio z de -20mm
Go P1 -X(20) +Y(50) :Z(-25)„Vai para P1 com desvios relativos para X
e Y e um valor absoluto de Z.

Para configurar um valor absoluto para uma coordenada, use dois-pontos


seguidos da letra e do valor do eixo. Para adicionar um desvio relativo a uma
coordenada, use uma letra de eixo seguida pelo valor ou expressão do
desvio entre parênteses. Se o desvio é negativo, coloque um sinal de menos
antes da letra do eixo.

136
Instrução Aritmética de Pontos
Alteração pontos
 Alterando Pontos de Instrução com novos valores ou desvios:
P33 = P33 / R „Define P33 como orientação de braço direito

P21 = P20 :Z(-10)„Define P21 para P20 com Z a -10 mm


P1 = P1 +Z(10) „Define P1 10 mm mais alto em Z
P2 = P2 :U(180) „Define U para 180
 Função XY:
Retorna um ponto de coordenadas individuais que podem ser usados
em uma expressão de ponto.
P10 = XY(60, 30, -50, 45) + P20

137
Instrução Aritmética de Pontos/
Alteração de pontos


Comando Here:
Instrui um ponto de robô na posição atual.
Here P1 ' O mesmo que P1 = P*
Here pick ' O mesmo que pick = P*

Comando Where:
Retorna a posição atual do robô na janela Command.
>Where

Plist:
Exibe os dados do ponto.
> plist 10, 20
p10=160, 100, 0, 0
p12= 55, 340, 0, 0
p20= 50, 200, -100, -100>

138
LIMZ
Especifica ou exibe a altura máxima do eixo Z para o
comando JUMP. Esse comando pode resultar em
enorme ganho de tempo quando a retração completa do
eixo Z não for necessária. Observação: LimZ afeta
apenas o comando Jump do Robô SCARA.

Exemplo: LIMZ -50

Z=0

Z = -50 O comando Jump não é


possível se a posição do
Z = -100 robô ou a posição alvo for
maior que a especificada
em LimZ

NOTA
Tenha em mente que sua célula de trabalho deve ser projetada de
forma que o seu eixo Z se retraia o mínimo possível para garantir a
velocidade mais rápida de movimento.
139
Palete

• Discussão:
• O que define um palete
• Usando um palete em um programa

140
Palete

P23 [P24]
10 11 12

7 8 9 JUMP PALLET (2,9)

4 5 6

1 2 3
P21 P22

PALLET 2 P21, P22, P23, [P24], 3, 4

141
Palete
O exemplo a seguir transfere peças do palete 1 para o palete 2.

Function main
Integer index
Pallet 1, P1, P2, P3, 3, 5 'Define pallet 1
Pallet 2, P12, P13, P11, 5, 3 'Define pallet 2
For index = 1 To 15
Jump Pallet(1, index) ‟ Motion to point index on pallet 1
On 1 ‟ Gripper ON
Wait 0.5
Jump Pallet(2, index) ‟ Motion to point index on pallet 2
Off 1 „ Gripper OFF
Wait 0.5
Next
Fend

142
Lab nº 5
• Crie um novo projeto
• Certifique-se de:
– Rotular I/O
– Rotular os Pontos
– Usar FOR…NEXT
– Usar variáveis
– Usar a tela Jog and Teach
– Usar a janela Monitor (Ligar e desligar I/O)
– Usar Monitor I/O
– Usar Jump
• Use um loop For...Next para despaletizar e empilhar
discos
• Use um loop For...Next para repaletizar da pilha

143
• Explicação de Função
• Declaração de Função
• Chamada de Função
• Salvar Projeto, Salvar como
• Copiar Projeto
• Caixas/ Planos
• Lab 06

144
Function
Um procedimento Function é uma série de instruções
Epson RC+ incluída pelos comandos Function e Fend.
O procedimento Function realiza uma operação e em
seguida devolve o controle ao código de chamada. Ao
devolver o controle, ele pode opcionalmente devolver
um valor ao código de chamada. (Isso é conhecido
como passagem de parâmetros, e será discutido e
demonstrado na seção de tópicos avançados)

Cada vez que o procedimento é chamado, seus


comandos são executados, começando pelo primeiro
comando executável após o comando Function e
terminando com o primeiro comando Fend ou Exit
encontrado. A função principal será executada quando
o botão Start for pressionado.

145
Declaração da Função
Function...Fend

Uma função é um grupo de comandos de programa que inclui um comando Function


no início e um comando Fend no final.
Sintaxe..
Function funcName [(argList)] [As type]
comandpos..

Fend
Parâmetros..
funcName O nome que é dado ao grupo específico de comandos limitados
entre os comandos Function e Fend. O nome da função deve conter caracteres
alfanuméricos e pode ter até 64 caracteres. O uso de underline também é permitido.
argList Opcional. Lista de variáveis representando argumentos que são
passados ao procedimento Function quando este é chamado. Variáveis múltiplas são
separadas por vírgulas.

146
da
Function funcName [ {ByRef | ByVal} ] varName [( )] As type

ByRef Opcional. Especifique ByRef quando se referir à variável a ser vista pela
função de chamada. Nesse caso, a mudança de raciocínio em uma função pode ser
refletida na variável do lado da chamada.
ByVal Opcional. Especifique ByVal quando você não quiser que nenhuma
mudança no valor da variável seja vista pela função de chamada. This is default.
varName Required. O nome da variável representando o raciocínio; segue as
convenções de nomes padrão de variáveis. Se você utilizar uma variável de matriz
como raciocínio, você deve especificar ByRef. Por ex.: Function Myfunc (MyVar As
Integer) As Boolean
As typeRequired. Você deve declarar o tipo de raciocínio.
Valores de Retorno:
Valores cujos tipos de dados são especificados com a cláusula As ao final da
declaração de função.

147
da
Descrição
O comando Function indica o início de um grupo de comandos SPEL+. Para indicar
onde termina uma função, utilizamos o comando Fend . Todos os comandos
localizados entre os comandos Function e Fend são considerados parte da função.

A combinação de comandos Function...Fend poderia ser vista como um recipiente


onde todos os comandos localizados entre os comandos Function e Fend pertencem
a essa função. Funções múltiplas podem existir em um arquivo de programa.

Veja também
Call, Fend, Halt, Quit, Return, Xqt

148
Chamadas de Função
• O Comando Call gera a transferência de controle do
programa para uma função (definida em Function...Fend).
Isso significa que o comando Call faz a execução do
programa sair da função atual e entrar na função
especificada por Call. Em seguida, a execução do programa
continua naquela função até que um comando Exit
Function ou Fend seja alcançada. O controle em seguida
retorna para a função de chamada de origem na instrução
seguinte ao comando Call.
O arquivo de programa seguinte contém duas definições de
função. A função Main chama a função Func1.

MAIN.PRG
Function Main
Call Func1
Fend
Function Func1
Jump pickpnt
Fend
149
Salvando um projeto

– Utilize o comando Salvar na seleção do


menu Projeto para salvar todos os
programas e arquivos atualmente
abertos no protejo atual que precisam
ser salvo. Essa seleção de menu é
desativada se nada precisa ser salvo.

– Atalho da Barra de Ferramentas:

150
Salvar como
Salva todos os
arquivos do projeto
atual para um novo
drive e / ou nome de
projeto. O projeto
atual é preservado.
Uma cópia do projeto
atual é salva e aberta
no drive de sua
preferência. Tente
evitar a utilização de
uma unidade de disco
como Drive de
Projeto Novo.

Utilize Salvar Como no Menu Projeto para salvar o projeto atual


sob um nome ou drive diferente. Esse comando é útil para
realizar uma versão de teste de um projeto sem executar
alterações no projeto original.

151
Realizando cópias dos projetos

• Utilize o comando
Copiar Projeto no Menu
Projeto para copiar
todos os arquivos do
projeto atual para outro
drive de disco ou
diretório. Você
também pode salvar o
projeto com um nome
diferente. Este comando
é útil para fazer backups
ou transferir um projeto
para uma mídia de modo
que ele pode ser
carregado em outra
máquina.

152
Caixas/ Planos

,-•Robot Manager §
Conüol Panel Boxes

Jog & Teach Define boxes

pply

Bestcwe

Asms
4
······· ·· · ··
Boxes ! 5
......,_,,, ..1
s
Planes 7
8
Weight
9 v
lnertia

XYZLimti•

c:t .........

• A caixa normalmente define uma forma de cubo dentro da área


de trabalho do robô.
Quando a ferramenta do robô estiver dentro da caixa, o bit de
número da caixa atual será alto.

153
Caixas/ Planos
O comando Box é utilizado para definir área de verificação de aproximação. A área de
verificação de aproximação tem o objetivo de averiguar as aproximações do robô e dos
efetores na área de verificação de aproximação. A posição do atuador é calculada pela
ferramenta atual. A área de verificação de aproximação é estabelecida no sistema
coordenado de base do robô e está entre o mínimo e o máximo especificados entre X,Y
eZ.
Quando a área de verificação de aproximação é utilizada, o sistema detecta as
aproximações em qualquer status de potência de motor enquanto o controlador estiver
LIGADO.
Você também pode utilizar a função InsideBox para obter o resultado da verificação de
aproximação. InsideBox pode ser utilizada para condição de espera do comando Wait.
Você pode fornecer o resultado da verificação para o I/O definindo a configuração de
saída remota.
Limite Superior dos eixos X, Y e Z

Caixa1
Robô
Limite Inferior dos eixos X, Y e Z

Configure a Caixa 1 a partir da posição do Robô 1


• Box 1, 1, 100, 200, 0, 100, 0, 100
• O limite inferior dos eixos X, Y, Z é (100,0,0) e o limite
superior é (200,100,100)
• As coordenadas da superfície da caixa não estão incluídas
como condição interna.
154
Caixas/ Planos
O comando Plane é utilizado para definir o plano de verificação de aproximação. O plano
de verificação de aproximação tem o objetivo de averiguar se o robô e o efetor estão em
uma das duas áreas divididas pelo plano especificado de verificação de aproximação. A
posição do atuador é calculada pela ferramenta atual. A posição de verificação de
aproximação é definida ao usar o plano XY do sistema de coordenada de base. O plano
de verificação de aproximação detecta o terminal (InsidePlane) quando ele se aproxima
da área na lateral + Z do plano de verificação de aproximação.
Quando o plano de verificação de aproximação é utilizado, o sistema detecta as
aproximações em qualquer status de potência de motor enquanto o controlador estiver
LIGADO.

(1) Especifica um sistema de coordenadas para criar o plano de verificação de


aproximação por meio dos dados de ponto representando a translação e rotação com base
no sistema de coordenadas de base, e define o plano de de verificação de aproximação.
Exemplo:
Plane 1, XY(x, y, z, u, v, w) Plano 1, P1

(2) Define o plano de verificação de aproximação (coordenadas XP) através da


especificação do ponto de origem, do ponto ao longo do eixo X, e do ponto ao longo do
eixo Y. Utiliza as coordenadas X, Y, Z e ignora as coordenadas U, V, W. Calcula o eixo Z
em destro e define a direção da verificação de aproximação.
Exemplo:Plane 1, P1, P2, P3

155
Lab #6

• Marque três novos pontos

• Marque uma nova posição de home

• Crie o Box com os novos pontos e


faça o robô sair do mesmo indo
para a nova posição home

156
Depurador

• Discussão:
• Pontos de Parada
• Etapa
• Step Into
• Step Over
• Resume
• Visão Imediata
• Ajuda (GUI)

157
Depurador

EPSON RC + suporta o nível de depuração para ajudar a


encontrar erros de lógica em tempo de execução nos
programas que compilam e conectam com êxito, mas não
produzam os resultados esperados. Você pode definir pontos
de parada e depurar seu código de fonte. Você também pode
suspender uma Tarefa utilizando o comando de Interrupção
do Gerenciador de Tarefas e em seguida avançar para o
código.

NOTA
Um ponto de parada é um marcador, definido em uma linha
específica do código que faz com que o depurador suspenda a
execução do programa ao atingir essa linha de código.Pontos de
Parada ajuda a verificar se o programa está funcionando
corretamente.

158
Depurador

Definição e ajuste
dos pontos de
parada:

– Abra o programa onde


deseja definir
um ponto de parada,
em seguida clique na
margem cinza na linha
onde você
deseja parar. Clique no
Ponto de Parada
novamente para apagar
um ponto de parada ou
selecione Limpar Todos
os Pontos de Parada no
menu Run.

159
Depurador
Entrando em um programa:
Há dois comando no menu Run que são
utilizados para acessar o código.

– Step Into - passa por cada linha e também


pelas funções quando uma etapa é executada
no comando de Chamada.

– Step Over - passa por cada linha de código


semelhante a Step Into, mas é o único no
momento em que um comando de chamada é
executada.Todas as linhas de código dentro da
chamada atual são executadas sem
interrupção.É útil para linhas de código que
não devem ser interrompidas, possuem
dispositivo de alimentação ou controle de ação.

160
Depurador
Exibição de variáveis:
Para visualizar os
valores das variáveis,
você pode realizar um
dos seguintes tópicos:
Quando uma tarefa for
interrompida por
interrupção ou pelo
ponto de parada, você
pode ver o valor de
uma variável movendo
o cursor do mouse
sobre o nome dela. O
valor será exibido
em uma janela do tipo
dica de ferramenta
posicionada acima do
nome da variável.

161
Depurador

Exibição de variáveis:
• Selecione Variáveis de exibição no
menu Run para exibir a caixa de
diálogo de exibição variável. Esta
caixa de diálogo tem quatro abas
para visualização de variáveis
Globais, Preservadas, Modulares, e
Locais.
• Você pode alterar o valor de uma
variável marcando a caixa de
verificação Edit, em seguida digite o
novo valor na coluna de
valores.Depois, clique no botão
Write para alterar a variável.
Quando a caixa Edit for verificada,
os valores variáveis não são
automaticamente atualizados. Você
ode clicar no botão Read para
atualizar os valores.

162
Depurador

– Utilize o atalho
Resume ou selecione
Run | Resume para
retomar uma ou mais
das tarefas
interrompidas. Esse
comando está
disponível somente
quando uma ou mais
tarefas estiverem no
modo interrompido.

163
Ajuda

• Para abrir uma caixa de diálogo de pesquisa no


sistema de ajuda vá para o menu Help ou
simplesmente clique em qualquer palavra-chave
e pressione F1.

164
Ajuda
Ajuda baseada em HTML possui código de exemplo que
pode ser copiado e utilizado na criação de códigos.

165
robots.epson.com

Observações de
Suporte Técnico
e Lista de
Compatibilidade
de Hardware

166
Depurador Lab #6

• Utilize ferramentas do depurador,


aplique-as em Lab #6
• Pontos de Parada
• Step
• Step Into
• Step Over
• Resume
• Walk
• Call Stack

167
Controle de Movimentação
Otimização

• Discussão:
• Potência Alta/Baixa
• Velocidade
• Aceleração
• Timers

168
POTÊNCIA

• BAIXA POTÊNCIA – LOW POWER(default):


A potência do motor é limitada em 30%,
aceleração/desaceleração é limitada em 10%, e a
velocidade é limitada em 5%.
• POTÊNCIA ALTA – HIGH POWER

Potência total do motor/ total aceleração / desaceleração e velocidade


total é atingível
Sintaxe:

Power [ { High | Low } ]

169
VELOCIDADE

• SPEED, especifica exibe a velocidade do braço para


utilização conforme as instruções PTP. Um valor
de 1 - 100 %.
Sintaxe: Speed [ percent [ ,ZupSpeed, Zdnspeed ]]
Exemplo: Speed 20, 30, 30
O exemplo possui modificadores opcionais. Se os
modificadores opcionais não são utilizados, o valor
exigido é utilizado para ZupSpeed e Zdnspeed.

170
Aceleração

ACCEL, especifica ou exibe as taxas de aceleração e de desaceleração


para utilização com instruções PTP. Os valores são a partir de 1 até
100%
Sintaxe: ACCEL accel, decel [Zupaccel, Zupdecel, Zdnaccel, Zdndecel]
Exemplo: Accel 100, 100, 100, 100, 100, 50

[Modificadores Opcionais]
O exemplo possui modificadores opcionais, se os modificadores
opcionais não forem usados, os valores necessários são utilizados
para a accel e decel, respectivamente.

171
Timers
• SPEL+ 6.x possui 64 timers, TMR(0) - TMR(63)
• SPEL+ 5.x possui 16 timers, TMR(0) - TMR(15)

• Utilize TMRESET para redefinir os timers


• TMR( ) Exemplo:
TMRESET 1 'Resets and starts Timer 1
FOR A = 1 TO 10 'Performs operation 10 times
JUMP PA „A is Real Data Type
NEXT A
PRINT TMR(1) ‟Displays cycle time

172
Lab #7

• Adicione uma variável para o tempo de ciclo

• Implemente os comandos de
Velocidade, Aceleração, e Potência
no Lab#5

• Salve o Lab #5 como Lab #7 e


incorpore os comandos de velocidade
aceleração e timers. Execute o Lab #7

• Imprima o tempo de funcionamento do Ciclo

173
Otimização

• Discussão:
• Configurações Arch (GUI)
• Configurações LimZ
• Configurações Fine
• Configurações de carga (GUI)

174
Exemplo ARCH

10

40 P2

ARCH 1, 40, 10 „ defines Arch profile

JUMP PALLET ( 1,a) C1 „Applies Arch to Jump Pallet


P1
JUMP Droppnt C1 „ Applies Arch to Jump Statement

175
ARCH
• Move o braço a partir da posição atual para o
ponto de destino especificado usando a
movimentação ponto a ponto primeiro movendo
em uma direção vertical para cima, em seguida,
horizontalmente e verticalmente para baixo, a
fim de chegar ao ponto de destino final.
• ARCH arch_num, Z_up, Z_down
• Utilize o modificadorJUMP C para passar
para movimento arch.

Valores ARCH Default:

ARCH_num Z_up Z_down


0 30 30
1 40 40
2 50 50
3 60 60
4 70 70
5 80 80
6 90 90

176
FINE
• Especifica e exibe a precisão do posicionamento
para os pontos-alvos
• 0-65535 – é válido
• A verificação de conclusão do posicionamento
começa depois que a CPU na unidade do drive tiver
completado o envio do pulso de posição do alvo para o
sistema servo. Devido ao atraso do servo, o robô ainda
não terá chegado à posição de destino. Essa verificação
continua a ser executada a cada poucos milissegundos
até que cada junta tenha chegado dentro do ajuste de
intervalo especificado. Posicionamento é considerado
completo quando todos os eixos chegarem dentro dos
limites especificados. Uma vez que o posicionamento
for concluído, o controle do programa completo é
passado para o próximo comando.
A maior precisão adquirida é com o valor de 320 na (série G)

Se a precisão da série do robô for publicada a +/-


.020mm e seu requisito em exigência repetibilidade for
+/- .080mm, a formula será: (.080 / .020) * 320 =
1240

177
Peso
Comando de Wheight:
O comando de peso especifica
que a carga útil e final do
ferramental braço compensar a
distância.
Exemplo:
Wheight 5
Tabela de Peso
A configuração de peso também
pode ser ajustada a partir da
caixa de diálogo dos Parâmetros
do Robô no menu Projeto.
NOTA
1. Se a carga exceder a especificação
de carga nominal, em seguida a
aceleração / desaceleração e a
velocidade serão automaticamente
compensados. Por favor consulte o
Manual do Robô para tabelas de carga.
2. Não exceda o momento máximo de
inércia permitido para eixo U e o
centro de especificações de
excentricidade da gravidade.

178
Inércia
Utilize o comando de Inércia para
especificar o momento total de inércia
para a carga na Junta #4. Isso permite
que o sistema compense, de forma mais
precisa, os ganhos de aceleração,
desaceleração e o servo em junta #4.
Também é possível especificar a distância
a partir do centro da Junta # 4 para o
centro de gravidade na ferramenta da
ponta do braço e parte usando o
parâmetro de excentricidade.
Linha de comando:
Inércia [ loadInertia [ , eccentricity ]]

NOTA 1. Se a carga exceder a especificação


de carga nominal, em seguida a
) aceleração / desaceleração e a
velocidade serão automaticamente
compensados. Por favor consulte o
Manual do Robô para tabelas de carga.
2. Não exceda o momento máximo de
inércia permitido para eixo U e o
centro de especificações de
excentricidade da gravidade.

179
Lab #8

• Criando no projeto anterior Implemento e


tempo:
• Melhorias no Arch
• Melhorias
• LIMZ (não Variável) e em seguida (variável)
• Mudança de peso parar verificar como o
tempo de ciclo é afetado

180
Lab #9

• Criando no lab #8 (Salvar como Lab #9).


• Reinstrução de pontos com SFREE na tela J&T
• Use a Ferramenta 1 para pegar e a Ferramenta 0 para
posicionar
• Certifique-se de:
– Usar deslocamento de ferramenta
– Usar variáveis
– Usar For Next loop
– Usar Sfree para comando de pálete (SOMENTE SCARA)
– Manter o ângulo U fixo no local da pilha
– Pegar e Posicionar para paletizar com :U Absoluto
– Tempo do Ciclo de Impressão

Selecione a caixa de seleção Run Window


Low Power antes de pressionar start.

181
Movimentos Interpolados

• Discussão:
• Arc
• Move
• CP on/off
• Velocidades
• Accels
• Processamento paralelo durante o movimento
(i.e., !Dn!)

182
Movimentos Interpolados

• Existem quatro comandos de movimento primários de


"Movimentos Interpolados"
ARC
MOVE
CP
CURVE
• Para configurar a velocidade (speed) para
comandos de movimento interpolado, use o
comando SpeedS. Para configurar a
aceleração e a desaceleração, use o
comando AccelS.

183
SpeedS

 SPEEDS, Especifica ou exibe a velocidade do


braço para uso com os comandos de
movimento interpolado, como Move e Arc. Os
valores são
de 1 a 2000mm por segundo
Sintaxe: SpeedS [ mmPerSec ]

184
Accels

 ACCELS, Configura a aceleração e a


desaceleração para as instruções Straight Line e
Continuous Path do robô. (Ex.: Move e Arc.) Esse
é um valor único entre 1-25.000mm/seg*seg
Sintaxe: AccelS [ accel [, decel ] ]

185
Movimentos
Interpolados

• Comando MOVE :
Move o braço da posição atual para o ponto
especificado usando interpolação linear (ex.,
mover-se em linha reta) MOVE coordena
todos os 4 eixos para iniciar e parar ao
mesmo tempo.

186
Movimentos
Interpolados
• Comando ARC :

O comando ARC é usado para mover o braço em


movimento tipo circular da posição atual para a
posição final por meio de uma posição
intermediária. O sistema calcula
automaticamente uma curva com base nos 3
pontos e então se move ao longo da curva até
que o ponto definido como ponto final é
alcançado.

Ponto intermediário, ponto final ARC


Exemplo:
ARC P1, P2

Se a orientação do braço mudar (de Destro para


Canhoto ou vice-versa) durante o movimento de
interpolação circular, ocorrerá um erro.

187
CaminhoContínuo (CP)
• Configura o modo de movimento CP (Continuous Path)
para ligado ou desligado.
• O modo de movimento pode ser usado para as
instruções de movimento Arc, Go, e Move de robô. O
parâmetro CP faz o braço se mover para o destino sem
desacelerar.
Isso é feito para permitir que o usuário faça uma série
de instruções em sequência para fazer o braço se mover
ao longo de um caminho contínuo enquanto mantém
uma velocidade específica durante todo o movimento.
Exemplo:
Function CornerArc
Go P100
CP On
Move P101 'Do not stop at P101
Arc P102, P103 'Do not stop at P103
Move P104 'Decelerate to stop at P104
CP Off
Fend
• Quando o CP está ativado, as instruções Arc, Go, e Move
permitem a execução da próximo comando quando a
desaceleração inicia.

188
Curve
Comando Curve:
Define os dados e pontos necessários para mover o braço ao longo de
um caminho curvilíneo. Muitos pontos de dados podem ser definidos
no caminho para melhorar a precisão do caminho.
Sintaxe:
Curve fileName, closure, mode, numAxes, pointList
Fechamento: Especifica se a Curva definida é Fechada ou deixada
Aberta ao fim do movimento curvilíneo. Esse parâmetro deve ser
configurado para um ou dois valores possíveis.
Mode: Especifica se o braço está ou não automaticamente interpolado
na direção tangencial do eixo U. 0 = No;
2 =Yes
numAxes: Número inteiro entre 2-4, que especifica o número de
eixos controlados durante o movimento curvilíneo.
Exemplo: Curve "MyFile", C, 0, 4, P1, P2, ON 2, P(3:10)

189
Curve
CVmove:
Executa o movimento contínuo no caminho
ranhurado definido pelo comando Curve.
Sintaxe:
• CVmove fileName [CP] [searchExpr]
file Name String expressão para o caminho e nome do
arquivo para uso em dados de movimento do caminho
contínuo. Esse arquivo deve ser previamente criado pleo
comando Curve e armazenado em um disco rígido de
computador.
CP Opcional. Especifica o movimento do caminho
contínuo após o último ponto.
searchExpr Opcional. Uma expressão Till ou
Find.
Till | Find
Till Sw(expr) = {On |
Off}
Find Sw(expr) = {On | Off}

190
Processamento paralelo durante o movimento
Processamento paralelo durante o movimento:
• Comandos de processamento paralelo são ligados a comandos de
movimento para permitir que instruções I/O sejam executadas
simultaneamente ao início do curso do movimento. Isso significa
que o I/O pode ser executado enquanto o braço está se
movendo, sem precisar esperar o curso do braço parar e em
seguida executar o I/O.
• O modificador !Dn! processa instruções input/output em paralelo
com o movimento. Esse comando permite que você realize
operações I/O durante o movimento a distâncias pré-
determinadas. "n" é um número real entre 0 e 100, que
representa a posição dentro do movimento onde as instruções de
processamento paralelo (que seguem o parâmetro Dn) devem
começar. As instruções que seguem o parâmetro Dn iniciarão a
execução depois que n% do curso do movimento tiver sido
completado.
Por exemplo,
MOVE P1 ! D10; On 5; Wait 0.5; OFF 5 !
Jump P1 ! D80; On 1 !

• Quando usado com o comando Jump, %curso não inclui o


movimento vertical da junta Z. Para executar instruções depois
que o movimento vertical ascendente da junta Z tiver sido
completado, inclua D0 (zero) no início do comando.

191
Lab #10

• Crie um novo projeto


• Crie uma rotina de caminho contínuo
para demonstrar a distribuição
• Use 2 programas, um para cada
caminho (handout de 2 padrões)
• Use processamento paralelo para simular
rotação na cabeça de distribuição
• Use a janela de execução para testar padrões
separadamente

192
Lab #10 I Padrão

193
Lab #10 I Padrão

194
Lab #10 I Padrão

195
Lab #10 I Padrão
P1
!

Pl3

P13

196
Strings / Entrada & / Case /
Avançado Editando

• Discussão:
• Manipulação básica de string – incluindo
Chr$ (10 &13)
• Caixa Input
• Comando Input
• Select…Case

197
Trabalhando com strings

• Uma string em SPEL+ é um conjunto de caracteres


ASCII com extensão máxima de 256.
• Você deve declarar variáveis de string nos seus
programas com o tipo de dados String.
• Todos os nomes de variáveis de strings devem
terminar com o sufixo cifrão ($).

198
TrabalhandoCom Strings
• A tabela a seguir mostra os comandos de string disponíveis em SPEL+
lite.
Descrição das Palavras-chave
Asc Retorna o valor decimal ASCII do primeiro caractere de uma string.
Chr$ Converte um valor ASCII em uma string de um caractere.
FmtStr Formata uma expressão numérica ou a data/hora.
Hex$ Retorna uma string contendo o valor hexadecimal de um número. InStr
Retorna a posição de uma substring dentro de uma string.
LCase$ Retorna a string especificada em caracteres minúsculos.
Left$ Retorna uma substring começando pelo primeiro caractere de uma string. Len
Retorna a extensão (número de caracteres) de uma string.
LTrim$ Retorna a string especificada com espaços à esquerda removidos.
Mid$ Retorna uma substring de uma string.
ParseStr Analisa uma string em uma matriz de símbolos.
Right$ Retorna uma substring do fim de uma string.
RTrim$ Retorna a string especificada com espaços à direita removidos.
Space$ Retorna uma string contendo um número específico de espaços Str$
Converte um número em uma string.
String Declara uma variável de string em um programa.
Trim$ Retorna a string especificada com espaços à esquerda e à direita removidos.
UCase$ Retorna a string especificada em caracteres maiúsculos.
Val Converte uma string em um número.

199
Chr$
Chr$(número):
• Chr$ retorna uma string de caracteres (1 caractere) com valor ASCII
do número de parâmetro (alcance 1-255 ).
• O seguinte exemplo declara uma variável do tipo String e em seguida
atribui a string "ABC" a ela. O comando Chr$ é usado para converter os
valores numéricos ASCII nos caracteres "A", "B" e "C". O &H
é o número seguinte representado em forma hexadecimal. (&H41
significa Hex 41)

Function Test
String temp$
temp$ = Chr$(&H41) + Chr$(&H42) + Chr$(&H43)
Print "The value of temp = ", temp$
Fend

NOTA

200
Line Input #
O Line Input lê dados do dispositivo do display e atribui os dados a
uma variável de string usada na linha de comando Input. Quando
a linha de comando Input está pronta para receber dados do
usuário, ela gera um prompt "?" que será exibido no
dispositivo de display. A linha de dados de entrada, após o
prompt, é recebida como valor para a variável de string. Após
inserir a linha de dados, pressione a tecla [ENTER].

O exemplo abaixo mostra o uso do Line Input.

Function Main
String A$
Line Input #21, A$ 'Lê um dado de entrada de linha RC+ A$
Print A$
Fend
Portas comuns de entrada:
#21 = fluxo de dados RC+ (tipicamente do teclado)
#24 = fluxo de dados TP1 (Conexão Flutuante)

201
Sentença Input
Comando Input
Veja Também o Exemplo

Permite que dados numéricos sejam recebidos pelo teclado e armazenados em uma(s) variável(is).
Sintaxe
Input varName [ ,varName, varName,... ]
Parâmetros
varName Nome variável. Múltiplas variáveis podem ser usadas com o comando Input desde que sejam
separadas por vírgulas.
Descrição
Input recebe dados numéricos do visor e atribui a informação à(s) variável(is) usadas com a instrução Input.

Ao executar a instrução Input, um (?) aparece no visor. Após inserir a informação pressione a tecla de retorno
(Enter) no teclado.

Notas
Regras para Inserção Numérica
Quando valores numéricos são inseridos e dados não numéricos, além dos limitadores (vírgula), são encontrados
nesta entrada, o comando Input ignora os dados não numéricos e todos os dados seguintes aos dados não numéricos

Regras para Inserção de String


Ao inserir cadeias, caracteres alfanuméricos são permitidos como informação válida.

Outras Regras para Instruções de Inserção


- Quando mais de uma variável é especificada nas instruções, a inserção de dados numéricos desejados para
cada variável devem ser separados por um caractere de vírgula(" , ").
- Nomes de variáveis numéricas e nomes de variáveis em cadeia são permitidos. Porém, o tipo de arquivo a ser
inserido deve coincidir com o tipo de variável.

202
Select…Send
Exemplo:

Function Main
Select…Send:
Integer I
Especifica a fórmula de
ramificação e as sequências For I = 0 To 10
de instruções de ramos Select I
correspondentes. Case 0
Off 1;On 2;Jump P1
Select formula Case 3
Case item; statement
On 1;Off 2
.
. Jump P2;Move P3
Case item; statement Case 7
[Default; statement ] On 4
Send Default
On 7
Send
Next
Fend

203
Select…Send
• Se qualquer item Case for igual ao resultado da
fórmula Select, o comando desse item Case é
executado. Após a execução, o controle do
programa transfere para o comando posterior a
Send. (Select End)
• Se nenhum item Case for equivalente ao
resultado da fórmula Select, o comando Default
é executado e o controle do programa transfere
para o comando posterior a Send.
• Se o Default for omitido, nada é executado e o
controle do programa transfere para o
comando imediatamente posterior a Send.
• A fórmula Select pode incluir constantes,
variáveis, fórmulas variáveis, e operadores
lógicos que usam And, Or e Xor.
• O item Case pode incluir constantes e variáveis.
Instruções de item Case podem também ser
multi-instruções ou instruções de linhas
múltiplas.

204
Lab #11

• Criando no Lab #10


• O objetivo deste laboratório é criar um “Programa
de Seleção de Produto”
• 2 produtos e um menu “Exit” devem ser
selecionáveis em um comando de linha Input
• Quando selecionado, o programa usará um
Select…Case para chamar uma função
separada para o padrão específico.
• Use um Do… Loop sobre o Select…Case
para determinar se o menu “Exit” foi
selecionado.

205
Escopo Variável

• Discussão:
• Variáveis Globais
• Variáveis de Módulo
• Variáveis Locais
• Variáveis de Preservação Globais

206
Tipos de Variável e Escopo Variável
• Existem 3 escopos diferentes para variáveis em SPEL+
(Locais, de Módulo e Globais)
– Variáveis Locais só podem ser usadas dentro da
função em que foram declaradas
– Variáveis de Módulo são declaradas com um arquivo
.PRG específico, mas anteriores a qualquer função,
permitindo, portanto, que essas variáveis sejam
utilizadas por todas as funções dentro do arquivo .PRG
– Variáveis Globais são acessíveis a partir de qualquer
função. Elas também são acessíveis a partir do modo
monitor
Variáveis Locais: Variáveis de Módulo:
Function test Integer IntVar1, IntVar2
Integer IVar1, IVar2 Real MyRealVar
Real RealVar String MyDataStr$
String DataStr$ Integer MyArray(10)
Integer Array(10)
. Function main
. MyDataStr$ = “abc,def”
Fend …
Fend

207
Escopo Variável

Variáveis Globais:

Program 1: Main.prg Program 2:Loadpart.prg

Global Integer g_count Function loadpart


Function main For I = 1 To g_count
g_count = 30 Jump P(I)
Call loadpart ...
... Next I
Fend Fend

208
Variáveis Global Preserve
• Você pode preservar valores de variáveis globais utilizando o
parâmetro opcional de Preservar parâmetro ao declarar variáveis
globais.

Exemplo:

Global Preserve Long g_PartsCount

Você pode preservar valores de variáveis globais utilizando o


parâmetro opcional de Preservar parâmetro ao declarar variáveis
globais.

Variáveis preservadas são armazenadas no SRAM do controlador.

Se o tipo de dados de uma variável preservada é alterado, ou o

número de dimensões é alterado, a variável será limpa.

209
Multitarefas

• Discussão:
• O que é?
• Discuta a divisão de tempo
• Explique o Gerenciador de Tarefas,
seus recursos e sua utilidade
• Explique o comando XQT em sua
forma mais básica
• Explique o comando "Quit"

210
Multitarefas
– Para algumas aplicações, você pode querer
controlar outros equipamentos além do robô,
como transportadoras, unidades
manipuladoras, etc. Usando as multitarefas,
você pode controlar este outro equipamento
com suas próprias tarefas.
– SPEL+ suporta até (6.x) 32 tarefas, (5.x)
16 tarefas funcionando ao mesmo tempo. Uma
tarefa é o mesmo que uma função em SPEL+.
– Use o comando Xqt para iniciar outra função
(tarefa) dentro de uma função. Você pode
especificar um número de tarefa no comando
Xqt.

211
Multitarefas
Um exemplo para iniciar outra tarefa é
executar um sistema de transportadora para a
unidade de trabalho do robô.
Programa: Programa: CONVTASK.PRG
MAINTASK.PRG
Function Conveyor
Function Main Do
„ Start the conveyor task Select 1
Xqt Conveyor Case Sw(10) = 1
Off convCtrl
Do
Case Sw(11) = 0
„ ...Motion
On convCtrl
...
Send
Loop Wait .01
Fend Loop
Fend

212
Multitarefas
• Por que multitarefas?
– Sempre que houver um caso de processamento
assíncrono (ou seja, uma sequência de códigos
que pode se executada independentemente do
que acontecer no primeiro plano).
• Multitarefas é uma técnica para compartilhar um
único processador entre múltiplas linhas de
execução. O Epson RC+ irá "dividir o tempo"
das multitarefas - ou seja, dar a uma linha um
pouco de tempo do CPU, para então mudar para
outra linha em sequência.

213
Multitarefas
• Comando XQT
–O XQT inicia uma função na sua
própria tarefa de execução
processando independentemente
linhas de código junto com sua
tarefa originária e qualquer outra
tarefa ativa. Somente uma tarefa
pode controlar o movimento do
robô para todos os fins práticos
essa deve ser normalmente a tarefa
primária.

214
Encerrar
Encerra a execução de uma tarefa
especificada ou de todas as
tarefas.
Quit { taskName | taskNumber | All }

Este exemplo mostra duas tarefas que


são encerradas depois de 10
segundos.
Function main Function winc1
Xqt winc1 'Start winc1 function Do
Xqt winc2 'Start winc2 function On 1; Wait 0.2
Wait 10 Off 1; Wait 0.2
Quit winc1 'Terminate task winc1 Loop
Quit winc2 'Terminate task winc2 Fend
Fend
Function winc2
Do
On 2; Wait 0.5
Off 2; Wait 0.5
Loop
Fend

215
Gerenciador de Tarefas 6.x
A caixa de diálogos do Gerenciador
de Tarefas permite que você Pare
(suspenda), Reinicie e Encerre
(aborte) as tarefas.
– Quando o Gerenciador de Tarefas é
iniciado, você verá uma rede com
informações de status para 16
tarefas. Há 6 itens mostrados para
cada tarefa: Número da Tarefa,
Nome da Tarefa, Status, linha,
Função e Hora de Início.
– Nome da Número da Tarefa
– Tarefa Nome da função
que foi iniciada como
uma tarefa.
– Status Status atual da
tarefa: Em
Execução, Em
– Linha Número de linha em
execução
– Função Nome da função
– Programa Nome do programa
– Início Hora de início

216
Gerenciador de Tarefas 5.x
A caixa de diálogos do Gerenciador
de Tarefas permite que você Pare
(suspenda), Reinicie e Encerre
(aborte) as tarefas.
– Quando o Gerenciador de Tarefas é
iniciado, você verá uma rede com
informações de status para 16
tarefas. Há 6 itens mostrados para
cada tarefa: Número da Tarefa,
Nome da Tarefa, Status, linha,
Função e Hora de Início.
– Nome da Número da Tarefa
– Tarefa Nome da função
que foi iniciada como
uma tarefa.
– Status Status atual da
tarefa: Em
Execução, Em
– Linha Número de linha em
execução
– Função Nome da função
– Programa Nome do programa
– Início Hora de início

217
Gerenciador de Tarefas
Para Parar, Executar um Passo e Reiniciar
uma tarefa:
– Use o mouse para clicar na tarefa desejada
na lista de tarefas. Você pode clicar em
qualquer campo para selecionar uma tarefa.
O status atual da tarefa deve
ser 'Em Executado' antes que ela possa ser
parada. A tecla "Halt" ficará ativa depois
que você selecionar a tarefa.
– Depois que uma tarefa é parada, o código
fonte será exibido e o próximo Passo
será indicado. Você
pode clicar na tecla "Resume" para retomar
a execução ou executar "Step Into" ou "Step
Over" do menu "Run".
Para Pausar e Continuar tarefas.
– "Pause" permite que você "suspenda" todas
as tarefas habilitadas para pausa.
– Clique na tecla "Pause" para pausar as
tarefas habilitadas para pausa. O
robô irá desacelerar imediatamente até
parar.
– Após executar a Pausa, clique em
"Continue" para retomar todas as
tarefas suspensas.

• "Step into" (F11) é um recurso depurador a nível do código fonte. 218

218
Gerenciador de Tarefas
Opção Descrição
Halt Suspende a tarefa selecionada. Isso para temporariamente a
tarefa para que ela possa ser reinciada com a tecla "Resume".
"Halt" só pode ser executado quando uma tarefa estiver no
status Em Execução. Quando "Halt" é executado, a tecla
"Resume" ficará habilitada. Se um comando de movimento
estiver em execução quando "Halt" for usado, o movimento será
concluído antes da tarefa chegar no status Parado.
Resume Depois que uma ou mais tarefas foram suspensas com a tecla
"Halt" clique em "Resume" para que as tarefas suspensas
continuem de onde pararam.
Quit Isso para a tarefa selecionada permanentemente. Você não pode
reiniciar ("Resume") uma tarefa depois de executar "Quit".
Para reiniciar a tarefa, você deve iniciá-la dentro de um
programa ou da janela Run.
Pause Isso pausa todas as tarefas com a pausa ativada. Depois da
pausa, você deve usar "Continue" ou "Abort All."
Continue Este tecla continua todas as tarefas que foram pausadas com a tecla
"Pause.
Stop Esta tecla aborta todas as tarefas.

219
Lab #12

• Crie um novo projeto


• Utilização de uma tarefa de plano de
fundo, sequencialmente
ligue/desligue 8 saídas.
• Na tarefa principal, apenas execute “Jump”
entre dois pontos

220
DIA 3

221
Comandos IO Adicionais
Em Função:
Retoma o status da porta de Entrada H/W especificada. Cada
porta contém 8 canais de Entrada H/W.
Sintaxe: In(portNumber)
onde “portNumber” está entre 0 - 63, representando uma das
64 portas de entrada. Cada porta possui 8 bits de entrada, totalizando
512 canais de entrada H/W. O valor de retorno é um valor inteiro
entre 0-255. O valor de retor é de 8 bits, com cada bit
correspondendo a 1 canal de Entrada H/W.

Exemplo:
Presuma que os canais de Entrada 1, 5, 15 e 30 estejam
Ligados. Todos os outros canais de Entrada H/W estão
Desligados.
> print In(0)
34
> print In(1)
128
> print In(2)
0
> print In(3)
64

222
Comandos IO Adicionais
Valor do bit binário para representação da casa
decimal equivalente

128 64 32 16 8 4 2 1
Porta
7 6 5 4 3 2 1 0
0
Porta
15 14 13 12 11 10 9 8
1
Porta
23 22 21 20 19 18 17 16
2

• Se os bits 2, 4 e 6 fossem altos, qual seria o valor da porta 0?

• Se os bits 8, 11 e 14 fossem altos, qual seria o valor da porta 1?

• Se o bit, 23 fosse alto, qual seria o valor das portas 0 e 2?

223
Comandos IO Adicionais
Comando Out:
Configura simultaneamente os 8 bits de
saída H/W. Sintaxe: Out portNumber,
outData
• onde “portNumber” é um valor inteiro entre 0 e 63,
representando um dos 64 grupos de saída (cada grupo possui
8 saídas) que compõem as saídas H/W padrões e de
expansão. “outData” é um número inteiro entre 0-255,
representando o padrão do bit de saída para o grupo de
saída selecionado pelo “portNumber”.
Exemplo:
> Saída 1,6 'Acionam Saídas 9 & 10
> Saída 2,1 'Acionam Saída 16
> Saída 3,145 'Acionam Saídas 24,28 & 31
Função de Saída:
Retoma o status de um byte (8 bits) de saídas.
Sintaxe: Out(portNumber)
onde “portNumber” é um número inteiro entre 0 e 63,
representando um dos 64 grupos de saída (cada grupo possui
8 saídas) que compõem as saídas H/W padrões
e de expansão.
Exemplo:
Print Out(0)

224
Comandos IO Adicionais

Função "Oport"
Retoma o estado da saída H/W especificada.
Sintaxe: Oport(outnum)
onde “outnum” é um número entre 0-511, representando
uma das saídas H/W discretas padrões ou de expansão.
Exemplo:
> On 1
> Print Oport(1)
1
> Off 1
> Print Oport(1)
0
>

225
de Multitarefas

• Discussão:
• Propósito da Memória I/O
• Identificador da Memória I/O
• Monitor da Memória I/O
• Comandos associados à Memória
I/O

226
Memória
• Há 1024 memórias I/O. Você pode pensar na memória
I/O como um relé interno em um PLC. A Memória I/O é
usada como o I/O, mas não é um hardware físico. Você
pode usá-la para coordenar/sincronizar tarefas ou
certos eventos no código. O comando MemSw é usado
para verificar o estado atual do bit de memória
especificado. O comando MemOn liga o bit de memória,
o comando MemOff o desliga.

Por exemplo,

MemOn 1 „liga o bit de memória 1

MemOff cycDone „desligar o bit de memória


„definido no editor de identificação do
I/O
„chamado "cycDone".

227
Editor de Identificaçãode Memória I/O

• O editor de
identificação I/O
permite que você
defina nomes para
entradas, saídas e
memória I/O para
cada projeto.

• A identificação pode
ter até 16 caracteres
numéricos.

228
Monitor de Memória I/O
• O Monitor da memória I/O é
muito similar ao monitor do
I/O. A caixa de diálogo
"Monitor" da Memória I/O
permite que você monitore
os bits de entrada/saída no
controlador do robô. A caixa
de diálogo é organizada de
forma que 32 pontos de
memória I/O sejam exibidos
em cada página.

• Depois que a caixa diálogo é


aberta, o status para a aba
selecionada no momento é
atualizado constantemente.

• Você também pode ligar e


desligar bits de memória
quando os programas
tiverem em execução
clicando duas vezes nos
LEDs.

229
de Memória I/O

A Memória I/O possui os mesmos tipos de


comandos de controle de I/O que o hardware
físico do I/O.

– MemOn BitNumber ou Identificação


– MemOff BitNumber ou Identificação
– MemOut PortNumber, Estado
– MemSw( BitNumber ou Identificação )
– MemIn ( PortNumber )

230
de Memória I/O
MemON/MemOFF/MemSW(#):
• MemOn 1 LIGA (configura para 1) o bit especificado da memória I/O
do robô. Os 1024 bits da memória I/O bits normalmente são usados
como status de bits como VERDADEIRO/FALSO, CONCLUÍDO/NÃO
CONCLUÍDO, etc. O comando MemOn liga o bit de memória, o
comando MemOff o desliga OFF e o comando MemSw é usado para
verificar o estado atual do bit de memória especificado. O comando
"WAIT" também pode ser utilizado com o bit de memória para fazer
com que o sistema espere até que um status S/W especificado seja
configurado.

Exemplo:
MemOn 1
Wait MemSW (1)
Wait MemSW(done)

• A Memória IO é mantida durante "Estop", "Reset" e reinicialização


da Epson RC+ 6.0. A Memória IO não é mantida quando a força do
sistema é desligada.

231
Comandos de Memória I/O

MemIn(#):
• MemIn fornece a habilidade de ver o valor de 8 canais de memória
I/O de S/W
ao mesmo tempo.
Exemplo:
var1 = MemIn (0) 'Veja os 8 primeiros valores de I/O de S/W

MemOut:
• MemOut configura simultaneamente 8 saídas de
memória S/W usando a combinação dos valores de
"portnum" e "outdata" especificados pelo usuário para
determinar quais saídas serão configuradas. As 1024
saídas de memória S/W são divididas em 64 grupos de
8.
Exemplo:
MemOut 1,1 „Liga o bit de memória 8

232
Lab #13
• Criado no Lab #12
• Modifique o programa para executar as 8
primeiras saídas, espere que o identificador de
memória mude da tarefa principal.
• Então continue através das saídas restantes.
• Este lab demosntra Multitarefas Controladas,
certifique-se de incluir:
– Wait MemSw(#)
– Nomes das identificações de memória
– Verifique a condição da memória I/O
(Monitor da Mem I/O)

233
Manipulação e Controle
de Ponto Avançado

• Discussão:
• Importar
• C(x), C(y), C(z), C(u)
• Comando "Till"
• Comando "Sense"
• Tw, Js
• Sair
• Opções do Programa GUI Run

234
Importação de Arquivos
•Importe um arquivo no
projeto atual. Use este
comando para importar
programas, pontos,
identificadores, etc. de outros
projetos do EPSON RC+.
•Nomes dos arquivos do
programa para importação
devem ter uma extensão
.PRG. Arquivos de Programa.
•Nomes dos arquivos de
inclusão para importação
devem ter uma extensão
.INC. Inclua os Arquivos.
•Nomes do arquivos de
ponto para importação
devem ter uma
extensão .PTS.
•As identificações de I/O
•Observação: Se você precisa importar arquivos de versões devem ter o nome de arquivo
anteriores do EPSON RC+ ou do SPEL para Windows 2.0, IOLABEL.DAT.
primeiro você deve importar o projeto usando "Project | •Erros de usuário devem
Import", que converte os arquivos de ponto e arquivos de ter o nome de arquivo
identificação para os formatos do EPSON RC+. Então, você USERERRORS.DAT.
pode usar "File Import" para importar o arquivo desejado. •Macros devem ter a
extensão .MAC
235
Importar Projeto

A Importação de Projeto fornece a utilidade para converter


SPEL para Windows e versões anteriores do ESPON RC+ no
formato de arquivo mais atual do Epson RC+.

236
Comando "TILL"
Especifica e exibe uma condição de entrada que, quando
atendida, encerra o comando de movimento ("JUMP",
"GO" ou "MOVE") em progresso desacelerando e parando
o braço do robô.
Exemplo:
FUNCTION my_till
TILL SW(1) = 1
JUMP 3 Here –TLZ(20) P1-TLZ(10) P1-TLZ(10)
GO P1 TILL
FEND
Exemplo da Função TillOn
Go P0 Till Sw(2) = On
If TillOn Then
Print "Till condition occurred during motion to P0"
EndIf

237
Sense

• Use "SENSE" para especificar uma condição de entrada


a ser monitorada usando "JUMP".
• Se a condição do "SENSE" é "TRUE", o braço irá parar
acima da posição desejada.
• Use "JS" ( Jump Sense) para verificar se a condição do "SENSE"
foi atendida.

Entrada
verificada

Fim do Movimento
para JS = 1

Fim do Movimento para


JS =0

238
Comando para Saída:

Comando para Saída:


Sai de uma construção ou função
de loop. Sintaxe:
Exit { Do | For | Function }
Example -

For i = 1 To 10
If Sw(1) = On Then
Exit For
EndIf
Jump P(i)
Next i

239
Exemplo de Sense & Till
FUNCTION test

SENSE SW(trayPres) = 0 „stop above target if tray is not present


TILL SW(PartInPosition) = 0 „Terminates motion if part position fails

JUMP P1 C2 SENSE
IF JS = 1 THEN „If the robot stopped above the tray then
WAIT SW(trayPres)=1 „wait for tray shuttle into position
ENDIF
GO P1 TILL „Completes the motion till
If Tillon then
Print “Part not positioned, terminating operation”
Exit Function
Endif

OFF 1; WAIT 0.2 „Release placement

FEND

240
Exemplo de Multitarefas com
Memória I/O e o Comando
Sense
Esse exemplo a seguir executa:

• A tarefa em segundo plano controla o alimentador


da cuba. O alimentador da cuba gira até que uma
parte tenha chegado ao final da linha.
• Assim que uma parte esteja presente, o robô é
sinalizado para pegá-la.
• Após a parte ser pega, o robô irá sinalizar a tarefa
do alimentador da cuba para continuar circulando
as peças.
• Se uma peça não estiver presente ao final da linha
após o robô ter colocado a peça anterior, o robô
então voltará ao alimentador da cuba e aguardará em
cima da linha até que uma parte esteja presente.

241
Exemplo de Multitarefas com
Memória I/O e o Comando
Sense
Function main Function bowlFdr
MemOff partPres
Motor On
Do while MemSw(Cycle)
Sense MemSw(partPres)=0 If Sw(sensor)=0 then
Xqt bowlFdr On Bowl
Do While MemSw(Cycle) End If
Jump Pick Sense Wait Sw(Sensor)=1
Off Bowl
If Js=1 then
MemOn partPres
Wait MemSw(partPres)=1 Wait MemSw(partPres)=0
Go Pick Loop
End If Fend
On Grip
Jump Place!D10;MemOff partPres!
Off Grip
Loop
Fend

242
Função TW
Função TW:
• Retorna o status da condição WAIT.

• Retorna 0 se a condição WAIT for alcançada.

• Retorna 1 se o intervalo de tempo for percorrido.


Exemplo -

WAIT SW(1) = 1,4 „Wait up to 4 sec for input 1 to turn on


IF TW = 1 THEN
Print “Timed Out!”
ENDIF

243
Declarações CX, CY, CZ,
CU
Declarações CX, CY, CZ, CU:
• Determinam a coordenada de um ponto.
Exemplo -
CX(pick) = 25.34 „ Sets the X coordinate for point “pick”

Funções CX, CY, CZ, CU:


• Extrai o valor da coordenada do eixo de um ponto.
Exemplo-
Function cxtest
Real x
x = CX(pick)
Print "The X Axis Coordinate of point 'pick' is", x
Fend

244
Lab #14
• Crie um novo projeto
• Importe arquivo de ponto do Lab 13
• Crie simples Programas de Recolhimento
• Use o sensor do hardware para iniciar o
programa, com o TW de atraso especificado
• Use o sensor do hardware para monitorar por
condições de sense
• Analise Js como condição If Then (Paletes Chegaram?)
• Se o ponto for alcançado Então Imprima a mensagem,
Senão Sair
Função
• Certifique-se de incluir:
– If Then Else
– Wait SW()
– If JS then
– If TW

245
Explicação e Utilização do GUI

• Gerenciador do robô
• Configurando ambiente de
programa, e preferências
• Propriedades do Projeto
• Modo Automático
• Controle Remoto
• Utilização das macros
• Manuais de Ajuda
• Discussão:

246
Gerenciador do robô (Continuação)

Tabela Descrição
Arch Configurar os padrões ascendentes e
descendentes de Z na tabela Arch

247
Gerenciador do Robô
(continuação)

Tabela Descrição
Locals Define o sistema de coordenadas locais dentro do

sistema de coordenadas

da base. O assistente do Local ajuda a criar locais.

248
Gerenciador do Robô

Tabela Descrição
Tools Define manualmente os deslocamentos da ferramenta rotacional do
centro à unidade da chaveta do fuso de esferas. O
assistente do Tool também ajuda o usuário na criação de
deslocamentos da
ferramenta.

249
Gerenciador do Robô

Tabela Descrição
Arms Define manualmente os deslocamentos não-rotacionais do
centro à unidade da chaveta do fuso de esferas.

250
Gerenciador do Robô

Tabela Descrição
ECP Define o ponto de controle externo.

251
Operador do Robô (continuação)

Tabela Descrição
Boxes Box é usado para configurar a área de verificação de aproximação. A área de verificação de aproximação tem o objetivo de averiguar as

aproximações do robô e dos efetores na área de verificação de aproximação. A posição do efetor é calculada pela ferramenta atual. A área de verificação de

aproximação é estabelecida no sistema coordenado de base do robô e está entre o mínimo e o máximo especificados entre X, Y, e Z.

252
Gerenciador do robô (continuação)

Tabela Dica
Planes - A EPSON RC+ 6.0 possui uma caixa de diálogo "apontar e clicar" para definir o plano de verificação de
aproximação. A maneira mais fácil de configurar os valores do Plano é usando a página do Plano no Gerenciador do robô.

253
Gerenciador do robô (continuação)

Tabela Descrição
Weight Aplica parâmetros de
deslocamento de peso e físicos
para otimizar a aceleração.

254
Operador do Robô (continuação)

Tabela Descrição
Inertia Aplica configurações em
parâmetros de inércia de carga
para otimizar a aceleração. As
medidas são em kgm², consulte
o manual do robô para obter
detalhes específicos.

255
Operador do Robô (continuação)

Tabela Descrição
XYZ Limits Define os limites suaves
para o sistema de
coordenadas da base

256
Operador do Robô (continuação)

Tabela Descrição
Range Define os limites individuais do pulso da junta.
Configurações padrão são
baseadas na seleção do modelo do
robô.

257
Operador do Robô (continuação)

Tabela Descrição
Home Config Define a localização individual do pulso
da junta para a posição inicial. A
ordem HOME define a prioridade do
movimento da junta.

258
Configuração do Sistema
Modo Start:

Program- Esse modo lhe permite desenvolver os


projetos. Este também é o modo de
inicialização padrão.
Auto- Esse modo inicia o sistema e exibe a
janela Operator.
Use o botão Password para alterar a senha do modo de
inicialização.

259
Propriedades do Projeto

Versão, descrição e campos de


anotação do usuário gerais.

260
Propriedades do Projeto

Selecione os arquivos fonte que deseja


deixar no controlador. A configuração
padrão é armazenada apenas no
arquivo main.prg.

261
Propriedades do Projeto

Descrição
Item
Compilad [Default] é a configuração normal. Quando os projetos não podem
or ser criados adicionando palavras-chave, é possível selecionar a
Versão versão compatível para criá-los. Especifique a versão do
controlador que opera o projeto.
Verifique minuciosamente o tipo Booleano.
Rigoroso Quando a Compilação Rigorosa for verificada, não poderá
Compilar determinar valores íntegros às variáveis Booleanas.

262
Propriedades do Projeto

Configure as propriedades da janela Operator.

263
Propriedades do Projeto

Seleções de Programa: Para cada programa, é possível editar a


Legenda e selecionar se quer que o programa seja Habilitado para a
janela "Operator".

264
Propriedades do Projeto

Configure as opções Operator.

265
Propriedades do Projeto

Configure as propriedades do monitor IO.

266
Propriedades do Projeto

Números de Projeto da Câmera Inteligente

267
Propriedades do Projeto

Inicialização e Personalização do Criador de GUI

268
Configurações Remotas 6.x
O sistema Epson RC+ pode ser controlado pelo equipamento externo por meio
do Controle Remoto. O equipamento remoto pode executar diversos comandos,
incluindo Motor On/Off, Start, Pause, Continue, Abort, Select Program ..etc
O controle remoto requer duas
etapas:
1. Configure as entradas e saídas
do Controle Remoto
utilizando o guia de Controle
Remoto através do menu
Setup | System Configuration.
Os bits de 0 a 7 são ajustados
para controle remoto
conforme padrão.
2. Ajuste o dispositivo de
controle para remoto.
Quando o dispositivo de controle
estiver em modo remoto, os
comandos do robô e das tarefas
podem ser emitidos por meio do
dispositivo remoto.

269
Configurações Remotas 5.x
O sistema Epson RC+ pode ser controlado por um equipamento por meio do
Controle Remoto. O equipamento remoto pode executar diversos comandos
incluindo Motor On/Off, Start, Pause, Continue, Abort, Select Program, etc.

O controle remoto requer duas etapas:


1. Configure as entradas e saídas do
Controle Remoto utilizando da aba
Remote Control através do Setup |
Controller. Bits de 0 até
7 são ajustados para
remoto como padrão.
2. Ajuste o dispositivo de controle
para remoto.
Quando o dispositivo de controle
estiver em modo remoto, os comandos
do robô e das tarefas podem ser
emitidos por meio do dispositivo
remoto.

270
Comando de Macros (Menu de Ferramentas)

Pode-se criar macros de


comando do SPEL+ através
do Editor de Macro. Macros
são compostas de um ou
mais comandos SPEL. Um
comando macro pode utilizar
variáveis globais,
identificações I/O e
identificações de ponto.
Você pode atribuir uma
macro para cada uma das
teclas de função Alt.

271
Controle e Gerenciamento de Tarefas

• Discussão:
• XQT, Pause, Quit (Como e Quando usar)
• Halt, Resume
• Continue, Abort
• Configuração de Inicialização Remota
• Ir para

272
Controle e Gerenciamento de
Tarefas

Comando Xqt Revisto:


Inicia a execução de uma tarefa a partir de
outra tarefa. Xqt inicia a função especificada e
retorna imediatamente.

273
Comandos de
Multitarefa
Associados
A tabela abaixo mostra os comandos do programa que são
utilizadas para multitarefas.
– Comando Objetivo

– Halt Suspende a execução da tarefa

– Resume Reinicia uma tarefa que foi interrompida.

– Quit Interrompe uma ou todas as tarefas.

– Signal Envia um sinal para uma ou mais tarefas


que estão esperando por um sinal por meio

– WaitSig Aguarda um sinal de outra tarefa.

– Pause Pausa toda as tarefas que são configuradas

– Cont Continua todas as tarefas que estão em

– MyTask Retorna o número de tarefas do programa atual.

274
Controle e Gerenciamento de
Tarefas
Function Cycle
Integer I
For i = de 1 a 5
Jump pick On
Função principal vac Wait .2
Xqt flash 'Inicia função flash como Jump place
tarefa 2 Off vac
Xqt Cycle 'Inicia função Cycle como Wait .2
tarefa 3
Next I
Do
Fend
Wait 3 'Executa tarefa 2 por 3
Function flash
segundos
Do
Halt flash 'Suspende a tarefa
On 1
Wait 3
Wait 0.2
Resume flash ‟Retoma a tarefa
Off 1
Loop
Wait 0.2
Fend
Loop
Fend
275
Controle e Gerenciamento de
Tarefas
Esse exemplo exibe tarefas finalizadas através da entrada
watchdog .
Function winc1
Function main Do
Xqt winc1 'Inicia winc1 function
On 1; Wait 0.2
Xqt winc2 'Inicia winc2 function
Xqt watchdog „Inicia watchdog Off 1; Wait 0.2
Fend Loop
Fend
Function watchdog
Wait sw(1)=1 „aguarda sinal
Function winc2
Quit winc1 'Encerra tarefa winc1
Quit winc2 'Encerra tarefa winc2 Do
Off 1 On 2; Wait 0.5
Off 2 Off 2; Wait 0.5
Fend Loop
Fend

276
Controle e Gerenciamento de Tarefas
Function Main
Xqt SubTask1
Xqt SubTask2
Wait 1
Signal 1 (A faixa de sinal é de 0 a 63)
Fend

Function SubTask1
WaitSig 1
Print ”Signal received in SubTask1"
….
Fend

Função SubTask2
WaitSig 1
Print ”Signal received in SubTask2"
….
Fend
277
Lab #15

• Abra o Lab #12 e Salve como Lab #15


• Configure 4 entradas como Remote Signal
Start, Pause, Abort e Reset
• Inicie a tarefa principal com a entrada Remote Start
• Tarefa principal será a tarefa XQT em background
f• Utilize o monitor I/O para verificar a operação do
programa
• Esse lab deve incluir:
– Operação remota
– XQT
– Gerenciador de Tarefa GUI
– Monitor I/O GUI
– Sincronização de Sinal

278
Trap

• Discussão:
• Traps, todos os tipos listados

279
Traps
Define interrupções e o que deve acontecer quando
elas ocorrerem. As interrupções ocorrem quando a
condição de entrada for atendida. Há diversos tipos
de traps. Quatro traps são definidas pelo usuário e
acionadas pela condição de entrada.

TRAP trapnum, inputcondition XQT {funcname}

TRAP trapnum, inputcondition GoTo {Label}

TRAP trapnum, inputcondition call {Label}

280
Traps

Condições:
Essa condição deve retornar um
valor de (1) ou (0). As funções
e os operadores a seguir podem
ser utilizados na condição de
entrada:

Funções: Ctr, MemIn, MemSw, In,


InW, Oport, Out, OutW, Sw

281
Traps

• As traps são utilizadas para fazer com


que a execução do programa se ramifique
para uma identificação ou para habilitar
uma função para ser denominada ou
executada como uma tarefa quando um
certo evento ocorrer. Quatro traps são
definidas pelo usuário e acionadas pela
condição de entrada.

• Observe que as traps devem ser


reativadas antes que elas disparem
novamente. Para reativar uma trap,
execute um comando Trap no fim da
função de trap.

282
Traps
Define interrupções e o que deve acontecer quando ela ocorrerem. Com o
comando Trap, você pode pular para as identificações ou funções XQT
quando os eventos ocorrerem.
Há 2 tipos de comando Trap, conforme abaixo:
5.x somente e 6.x
- 4 Traps que causam interrupções de acordo com o status de entrada
definido pelo usuário
6.x para a funcionalidade trap do sistema adicional.
- 7 Traps que causam interrupções de acordo com o status do sistema.

Utilização da Sintaxe

Para definir uma trap do status do sistema, utilize a versão 6.x do software:
• Trap {Emergency | Error | Pause | SGOpen | SGClose | Abort | Finish } Xqt funcname

Para apagar a configuração de trap do status do sistema: (XQT não é


especificado)
• Trap {Number | Emergency | Error | Pause | SGOpen | SGClose | Abort | Finish }
Nota
– Versão 5.x suporta somente Trap {Número}

283
Trap (Status do Sistema 6.x)
Parâmetros

• Emergency No status "emergency stop", executa a função especificada.


• Error No status "error", executa a função especificada.
• Pause No status "pause", executa a função especificada.
• SGOpen Quando a proteção estiver aberta, executa a função especificada.
• SGOpen Quando a proteção estiver fechada, executa a função
especificada.
• Abort Todas as tarefas, com exceção das tarefas em background são
paradas (como quando um comando correspondente ao "Abort All" for
executado ou o botão "Pause" for pressionado) pelo usuário ou pelo
sistema, executa a função especificada.
• Finish Todas as tarefas com exceção das tarefas em background são
completas, executa função especificada. Isso não pode ser
executado sob a condição que realiza Trap Abort.
• funcname Função da tarefa de processamento de interrupção para a
qual Xqt é executado quando o status do sistema estiver como
"completed". Funções com raciocínio não podem ser especificadas.
Nota Nota: Função Trap ***Call do EPSON RC+4.x ou anterior é
substituida por Trap *** Xqt no EPSON RC+ 6.0. (Status do Sistema)

284
Trap (Trigger Definido pelo Usuário)
• Trap trapNumber, IOcondition GoTo {label} | Xqt
Parâmetros
trapNumber Número inteiro de 1-4, que representa qual dos 4 números
Trap deve ser usado. (SPEL suporta até 4 interrupções ativas Trap ao
mesmo tempo.)
iocondition Status de entrada especificado como acionador operador
comparativo [Evento] ( =, <>, >=, >, <, <=) [Número inteiro] As
seguintes funções e variáveis podem ser utilizadas no Evento:
Funções: Sw, In, InW, Oport, Out, OutW, MemSw, MemIn, MemInW,
Ctr, GetRobotInsideBox, GetRobotInsidePlane
Variáveis : Byte, Integer, Long global preserve variable, Global
variable, module variable. Além disso, usando os seguintes
operadores, você pode especificar as condições em eventos
múltiplos.
Operador: And, Or, Xor
Exemplo: Trap 1, Sw(5) = On Goto TrapGTOhandler: Trap 2,
Sw(5) = On And Sw(6) = Off Xqt TrapFunc2
Label: Goto label (MyGoto:) onde a execução do programa será transferida
quando o comando GoTo for utilizado com Trap e a condição de Trap
for satisfeita.
funcName Função que é executada quando Xqt e condição Trap for
atendida. A função com raciocínio não pode ser especificada.

285
Traps

Condições:
Essa condição deve retornar um
valor de (1) ou (0). As funções
e os operadores a seguir podem
ser utilizados na condição de
entrada:

Funções: Ctr, MemIn, MemSw, In,


InW, Oport, Out, OutW, Sw

286
Trap
• As traps são utilizadas para fazer com
que a execução do programa se ramifique
para uma identificação ou para habilitar
uma função para ser denominada ou
executada como uma tarefa quando um
certo evento ocorrer. Quatro traps são
definidas pelo usuário e acionadas pela
condição de entrada.

• Observe que as traps devem ser


reativadas antes que elas disparem
novamente. Para reativar uma trap,
execute um comando Trap no fim da
função de trap.

287
Exemplo de Trap
Função Principal
' Ative a trap abaixo:
• Aqui há um Trap 1 Sw(1) = On Xqt Sw1Trap
exemplo de trap.
Nesse exemplo, Do
quando a entrada 1 RunCycle
é ligada, a função
SWTrap a executa Loop
como uma tarefa. Fend

Função Sw1Trap
' Ligue saída 1 por 2 segundos
On 1, 2
' Aguarde a condição de trap para
limpar
Wait Sw(1) = Off „Aguarde até que o bit
esteja desligado
Reative a falha remota
Trap 1 Sw(1) = On Xqt Sw1Trap
Fend

288
Lab #16

• Utilizando Lab #15, incorpore TRAP Sw


• Realize uma Nova Função que será
Ativada a partir da Trap
• Na função Print para a tela “ Trap
Active”

289
Histórico do Sistema

Visualizar todo os eventos e erros


capturados pelo RC+

290
Ferramentas do Controlador

Backup do Controlador, Status e


Restauração para Estado de origem (Restaura o
Controlador)
291
Comando Propósito
Quando um erro
OnErr Use o comando OnErr para definir o local da
ocorrer em uma função rotina de correção de erro.
SPEL+ , você transferir Err Use Err para recuperar o número para o status
a execução para uma atual do erro. Use este comando na rotina de
correção do erro para determinar qual erro
rotina de tratamento ocorreu.
de erro para que ele Error Gera um erro definido pelo usuário que pode
seja processado. A ser encontrado por um gerenciador de erros.
rotina deve estar Era Use Era para recuperar o número do eixo no qual
o erro ocorreu. Isso normalmente é usado na
dentro de uma rotina de correção do erro.
definição de função. Erl Use Erl para recuperar o número da linha na qual
o erro ocorreu. Isso normalmente é usado na
Gerenciadores de erros rotina de correção do erro.
são locais para função, Ert Use Ert para recuperar o número da tarefa na
não para a tarefa. qual o erro ocorreu. Isso normalmente é usado
na rotina de correção do erro.
A tabela abaixo mostra
ErrMsg$ Use ErrMsg$ para recuperar a mensagem de erro
os comandos do
associada a um número especificado
programa que são de erro.
utilizados para EResume Retoma a execução depois que uma
tratamento de erro. rotina de correção de erro é concluída.

292
Exemplo:
O seguinte exemplo mostra Function Main Integer i, enum String value$
uma rotina simples de OnErr GoTo Errhandler
Do
correção de erro. Quando For i = 1 To 10
um erro ocorre, a execução Jump P0
Jump P1
Next
do programa identifica o Loop
"Errhandler", onde o Função "Exit" '** Evita execução de erro
„** não intencional
gerenciador de erros é ' *** Gerenciador de
erros *** Errhandler:
iniciado. O número do erro enum = Err(1)
é exibido e é solicitado que Do
o operador confirme para Print "Error #", enum, " ocorreu"
Print "Continue (Y ou N)"
continuar ou não. Se o Line Input #21, value$
operador digitar "N", então Select Ucase$(value$)
o programa executa a Case "Y"
Reinicialização dos EResume Next
Default
comandos para iniciar o Print "Quit All“
programa do início. Print “Y was not selected”
Quit All
Send
Loop
Fend

293
Lab #17
• Inicie um Novo Projeto para mover entre 2 pontos.
• Aumente o eixo Z até que um erro ocorra.
• Utilizando OnError Goto e um
gerenciador de erros, corrija a variável
da posição Z.
• Utilize o comando EResume depois de corrigir o
deslocamento de Z. Imprima a mensagem, o
número do erro e a posição atual de Z
entre os comandos de movimento.
• Esse lab deve incluir:
– Err(tasknum) „<<Mytask pode ser usado
– Errmsg$(Err(Ert))
– Ert „<< Retorna o número atual da tarefa
– Select / Send
– Do / While / Loop
– Call Function
– Print CZ(Here)

294
Editor de Erro do Usuário (Menu de Ferramentas)
• O editor de erro do usuário define os
erros de usuário que podem ser
encontrados por um gerenciador de
erros.
• Se um erro de usuário for encontrado por
um gerenciador de erros, então a função
ErrMsg$ irá exibir a mensagem de erro
definida no editor.
• A identificação definida pelo usuário pode
ser usada como uma constante no lugar do
erro #.
• Os números de erro do usuário são
fixos de 8000 a 8999.
• As identificações podem ter até 16
caracteres.
OnErr Goto ErrHandler • Recomenda-se que você use o prefixo
... ER_ para cada identificação de erro, em
letras maiúsculas, para a identificação.
On Vacuum Isso facilita a visualização da
identificação do erro no código Spel+.
Wait Sw(PartGripped), 1 • O comando de "Import" do menu
Se Tw=1 então "File" pode ser usado para importar erros
de usuário de outros projetos.
Error ER_GripError1
EndIf

295
Lab #18

• Usando o Lab #17, incorpore um


Erro definido pelo usuário #8000
• Utilize Project Save As
• Utilize o TW e intervalo em uma entrada
• Vá para o "Gerenciador de Erros" e
exiba o erro de usuário "Low Air Press
Warn".
• Coloque um comentário na frente da
linha de comamdo Onerr. Execute o
mesmo
programa e deixe a Epson capturar
e registrar o Erro de Usuário.

296
Local / Base

Comando Local
• Define e exibe os sistemas de coordenada local.
• Sintaxe:
Local localNumber, ( pLocal1 : pBase1 ), ( pLocal2 : pBase2 ), [ { L | R } ], [ BaseU ]
• Parâmetros
• localNumber: O número do sistema de coordenada local. Um total de 15 sistemas
de coordenada local (do valor inteiro de 1 a 15) pode ser definidos.
• pLocal1, pLocal2: Variáveis de ponto com dados de ponto no sistema de coordenada local.
• pBase1, pBase2: Variáveis de ponto com dados de ponto no sistema de coordenada base.
• L | R: Opcional. Alinhe a origem local para pontos de base esquerdos (primeiros)
ou direitos (segundos).
• BaseU : Opcional. Quando fornecidas, as coordenadas do eixo U estão no
sistema de coordenada base. Quando omitidas, as coordenadas do
eixo U estão no sistema de coordenada local.

297
Local / Base

Descrição
(1) Local define um sistema de coordenada local, especificando 2 pontos, pLocal1 e
pLocal2, contidos nele que coincidem com dois pontos, pBase1 e pBase2, contidos no
sistema de coordenada base.
Exemplo:
LOCAL 1, (P1:P11), (P2:P12)
P1 e P2 são pontos do sistema de coordenada local. P11 e P12 são pontos de sistema
de coordenada base.
Se a distância entre os dois pontos especificados no sistema de coordenada local não
for igual à distância entre os dois pontos especificados no sistema de coordenada
base, o plano XY do sistema de coordenada local é definido na posição onde o ponto
intermediário entre os dois pontos especificados no sistema de coordenada local
coincidem com aquele entre os dois pontos especificados no sistema de coordenada
base.
De maneira similar, o eixo Z do sistema de coordenada local é definido na posição
onde os pontos intermediários coincidem um com o outro.

298
Exercício Local

• Abra o Assistente do Robô


• Selecione a Aba "Locals"
• Selecione o Assistente Local
• Local Número 1
• Pontos Usados: 3-Origem, X, Y
• Alinhamento X, caso disponível
• Siga as instruções do Assistente para criar um
Local
• Selecione a Aba "Jog & Teach"
• Modo: World | Local: 1
• Jog X, Y, Z; Observe as direções da
coordenada e dados da posição atual.

299
Introdução aos Tópicos Avançados

Funções:
•Funções podem passar parâmetros por valor ou referência. Parâmetros
são passados ByVal por padrão.
•Funções podem retornar valores. Ao retornar valores, o nome da
função é designado ao valor que retornará.

NOTA
Por referência: É uma forma de passar o endereço, em vez do
valor, de um argumento a uma função. Isso permite que a função
acesse a variável real. Como resultado, o valor atual da variável
pode ser alterado pela função da qual será passada.
Por valor: É uma forma de passar o valor, em vez do endereço, de
um argumento a uma função. Isso permite que a função acesse uma
cópia da variável. Como resultado, o valor atual da variável não
pode ser alterado pela função da qual será passada.

300
Introdução aos Tópicos Avançados

Tópicos de Discussão:

• MyParam$
• MyReturnVal

301
Introdução aos Tópicos Avançados

Function main
String myParam$
Integer myReturnVal
myParam$=“Hello”
myReturnVal=test1(myParam$)
Print “Return value is”, myReturnVal
Print “myParam$=“, myParam$
myReturnVal=test2(ByRef myParam$)
Print “Return value is”, myReturnVal
Print “myParam$=“, myParam$
Fend

302
Introdução aos Tópicos Avançados
Function test1(comment$ as String) as Boolean
comment$=“Good Bye”
test1=True
Fend

Function test2(Byref comment$ as String) as Boolean


comment$=“Good Bye”
test2=False
Fend

Saída da Tela da Janela Run

Return value is -1
myParam$= Hello
Return value is 0
myParam$= Good Bye

303
Introdução aos Tópicos Avançados
Retorna o estado de 1 bit em um
número. Sintaxe
Parâmetros BTst
(number, bitNum)
number Especifica o número para o teste de bit com uma
expressão ou valor numérico.
bitNum Especifica o bit (íntegro, de 0 a 31) a ser testado. Valores
de Retorno
Retorna os resultados do teste de bit (íntegro, de 1 a 0) do
especificado
valor numérico.
Veja
também
BSet
BClr

304
Introdução aos Tópicos Avançados
Function CheckInputStartState
Integer a, b(8)
For a = 0 To 7 „------------
b(a) = BTst(In(1), a) „Checks input bits 8 thru 15.
Print b(a) „
Next „------------
If BTst(In(1), 5) And BTst(In(1), 6) And BTst(In(1), 7) = 1 Then
Print "Peripheral Devices Ready, OK to start"
Else
Print "Peripheral Devices Not Ready"
EndIf
Fend

For / Next example, each individual bit state is printed for the selected
port, in this case, In (1). The 8 values return the binary state.

If / Endif conditions bits 13, 14 & 15 indicating ready or not.

305
Introdução aos Tópicos Avançados
Comunicações em Série:
OPCIONAL

SPEL+ suporta as portas Windows RS-232C


padrão.

OpenCom #1
Print #1, "Send"
Line Input #1, response$
CloseCom #1

306
Introdução aos Tópicos Avançados
Usando pontos em um programa:
Ao rodar programas, o arquivo de ponto
padrão para cada robô é carregado na
inicialização. É
possível também definir pontos no programa,
ou carregá-los usando a sentença LoadPoints.

Function main
Integer I

LoadPoints "model1.pts"
For i = 0 To 10
Go pick
Jump place
Next i

307
Introdução aos Tópicos Avançados
Salvando e carregando pontos:
– Use LoadPoints para carregar um arquivo
de ponto para o robô atual. É possível
especificar opcionalmente o parâmetro de
Merge para mesclar pontos em um
arquivo com pontos que já foram
carregados. Não é possível carregar um
arquivo de ponto de um robô diferente
que esteja em uso.
– Use SavePoints para salvar os pontos para
o robô em uso. Se o arquivo de ponto não
está no projeto atual, será carregado
automaticamente.

For i = 1 To 10
P(i) = i, 100, 0, 0
Next i
SavePoints "TEST.PTS"

308
Introdução aos Tópicos Avançados
Função CurPos:
Retorna a posição atual do robô
especificado.

Exemplo -
Function main
Xqt ShowPosition
Do
Jump P0
Jump P1
Loop
Fend

Function ShowPosition
Do
P99 = CurPos
Print CX(P99), CY(P99)
Loop
Fend

309
Introdução aos Tópicos Avançados

Diretivas Pré-processador
Uma diretiva pré-processador instrui o
compilador a realizar alguma ação antes de
compilar o programa.

Nome Contante Utilização


#define Define um macro.
#ifdef ... #endif Compilação condicional.
#ifndef ... #endif Compilação condicional.
#include Inclui um arquivo.

310
Introdução aos Tópicos Avançados
Opcional:
Criador de GUI
• Permite ao usuário criar uma GUI completamente pelo
AmbienteRC+
• Criado para GUIs iniciantes (desenvolvedores avançados
devem usar VB Guide)
• Reduz em grande escala os esforços para criar e
depurar a GUI para os Sistemas Robóticos EPSON
• Cria e Depura as formas da GUI Forms dentro do Ambiente RC+
• Fornece muitos controles padrão: botão, etiqueta, caixa de texto,
etc.
• Possui controles especializados, tais como: visor de vídeo,
estado variável, estado I/O
• Automaticamente exibe o formulário principal na inicialização

311
Introdução aos Tópicos Avançados
Opcional:
Guia de Visão
– Interface "apontar e clicar" fácil de usar
– Alta gama de ferramentas de visão - correlação,
gota, polar, filtros de imagem, linhas, pontos,
molduras, leitura de Código de Barra (apenas 6.x).
– Objetos de Visão são criados, valores são
configurados, e as associações entre objetos
praticamente eliminam a codificação do programa
– "Apontar e clicar", passo-a-passo dos
procedimentos da câmera para calibração do robô
para aplicativos guiados por visão

312
Introdução aos Tópicos Avançados
Opcional:
Rastreio da Transportadora (apenas 6.x)
– Múltiplas transportadoras e robôs.
– Procedimento de calibração fácil, com "apontar e
clicar"
– Pode usar a visão ou um sinal de entrada discreto

OCR (apenas 6.x)


– Cria caracteres personalizados através
de um assistente integrado
– Interface "apontar e clicar"
– Resultados integrados através do Guia de Visão

313
Introdução aos Tópicos Avançados
Opcional:
Guia VB
Crie GUIs personalizadas
– Compartilhe informação facilmente entre programas Spel+ e
linguagens de programação .NET.
– Visor de vídeo "Arrastar e Largar" ao usar o Guia de Visão
– Aproveita a força de linguagens de alto nível
– Suporta RC+ e o arquivo da biblioteca .NET
– O depurador Epson RC+ funciona dentro do .Net

– A opção guia VB da EPSON RC+ permite usar Microsoft


Visual Basic .NET ou qualquer outra linguagem que
suporta a tecnologia .NET para executar seus aplicativos
robóticos. Isso dá o poder de criar interfaces de usuário
sofisticadas, usar bases de dados, e produtos de terceiros
designados para serem usados em VB.

314
Introdução aos Tópicos Avançados
Opcional:
Fieldbus IO
–Suporta os protocolos EthernetIP,
DeviceNet, Profibus-DP, ProfiNet (5.x)
e CC Link Fieldbus.
–Pode ser configurado como:
–CPU primária (master) em (6.x) ou
– CPU secundária (slave) (6.x) & (5.x).

315
Introdução aos Tópicos Avançados
Opcional:
Sistema de Movimento PG
– A opção Sistema de Movimento PG
(Pulse Generator) permite criar robôs
que usam guias e motores de terceiros.
Os robôs PG podem coexistir e se
comportar de forma similar aos robôs
comuns no sistema EPSON RC+. Use
robôs PG para controlar os equipamentos
auxiliares tal como tabelas XY, slides,
eixos rotatórios, etc.

316
Obrigado pelo seu interesse no
treinamento de robôs EPSON.

©2012 EPSON AMERICA INC Todos os direitos reservados

317

Vous aimerez peut-être aussi