Académique Documents
Professionnel Documents
Culture Documents
Material de Treinamento de
Programação e Operações
SPEL+Linguagem
SPEL+ Linguagem ABRIL DE 2015
1º DIA - MANHÃ
Cintas de plastic
Guia de
Reciclagem
Definições:
• 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
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
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
• 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
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
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
23
(9) (4) RC90 (19)
(Lado esquerdo)
(5)
(1)
(6)
(7) (3) (20)
(8)
(2)
(18)
5. Identificação de Assinatura 12. Suspensão de Instrução (TP2) 19. Slots Opcionais (2)
7. Controlador S/N 14. Memória (Status do Controlador) 21. Bateria (interior do chassi)
24
RC90 & LS Conexão do Robô
RC90 Controlador
25
Precauções de Segurança do Robô
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:
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
29
Segurança doRobô
Modos de Operação
A operação do robô é possível sob as seguintes condições:
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.
31
Segurança doRobô
Parada de
Emergência
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
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
36
Robôs SCARA RS3
37
Robô Módulos EZ
Por ex., série X5 RU-HMSz tipo A
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.)
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.
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
.
45
TP1
Visão Frontal
Visão Traseira
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)
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:
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.
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.
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.
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:
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.
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
65
Freio Ligado / Desligado
> Brake On, 1
> Brake Off, 1
66
Discussão de Palavras-chave
67
Função Pulse
Função Pulse
Veja também o exemplo
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
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)
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
Function test
Real uvar
uvar = 1.123
Print “The value of uvar is: ”, uvar
Fend
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
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.
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
79
Projetos
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.
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?
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
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$
90
Tipos de Dados
• A seguinte tabela mostra os diferentes tipos de dados para a
linguagem SPEL+.
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:
93
Valores Iniciais
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"
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
97
de
98
Exemplo "For/Next"
FOR . . . NEXT
FUNCTION Demo1
INTEGER count
FOR count = 1 To 10
GO P(count)
NEXT count
99
de
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
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
108
Pontos
Orientações em SEIS EIXOS
109
Comandos de Movimento
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.
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.
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.
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
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
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
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
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
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
123
Sistema de Coordenadas de Ferramentas de 6 Eixos
Tlset para robôs de seis eixos
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
Desvio de ferramentas XY
Extremidade da ferramenta
Desvio de ferramentas Z
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.
127
TLSET
Selecione a Ferramenta #
128
TLSET
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.
132
Modo de Comando
> 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ô.
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:
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
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.
Z=0
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
4 5 6
1 2 3
P21 P22
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)
145
Declaração da Função
Function...Fend
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.
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
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.
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
pply
Bestcwe
Asms
4
······· ·· · ··
Boxes ! 5
......,_,,, ..1
s
Planes 7
8
Weight
9 v
lnertia
XYZLimti•
c:t .........
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
155
Lab #6
156
Depurador
• Discussão:
• Pontos de Parada
• Etapa
• Step Into
• Step Over
• Resume
• Visão Imediata
• Ajuda (GUI)
157
Depurador
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:
159
Depurador
Entrando em um programa:
Há dois comando no menu Run que são
utilizados para acessar o código.
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
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
167
Controle de Movimentação
Otimização
• Discussão:
• Potência Alta/Baixa
• Velocidade
• Aceleração
• Timers
168
POTÊNCIA
169
VELOCIDADE
170
Aceleração
[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)
172
Lab #7
• Implemente os comandos de
Velocidade, Aceleração, e Potência
no Lab#5
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
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.
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)
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 ]]
179
Lab #8
180
Lab #9
181
Movimentos Interpolados
• Discussão:
• Arc
• Move
• CP on/off
• Velocidades
• Accels
• Processamento paralelo durante o movimento
(i.e., !Dn!)
182
Movimentos Interpolados
183
SpeedS
184
Accels
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 :
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 !
191
Lab #10
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
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].
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
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
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:
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:
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 }
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.
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
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
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,
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.
229
de Memória I/O
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)
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
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
Entrada
verificada
Fim do Movimento
para JS = 1
238
Comando para Saída:
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
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
FEND
240
Exemplo de Multitarefas com
Memória I/O e o Comando
Sense
Esse exemplo a seguir executa:
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.
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”
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
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:
259
Propriedades do Projeto
260
Propriedades do Projeto
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
263
Propriedades do Projeto
264
Propriedades do Projeto
265
Propriedades do Projeto
266
Propriedades do Projeto
267
Propriedades do Projeto
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.
270
Comando de Macros (Menu de Ferramentas)
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
273
Comandos de
Multitarefa
Associados
A tabela abaixo mostra os comandos do programa que são
utilizadas para multitarefas.
– Comando Objetivo
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
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.
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:
281
Traps
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
283
Trap (Status do Sistema 6.x)
Parâmetros
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:
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.
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
289
Histórico do Sistema
290
Ferramentas do Controlador
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
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
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
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.
305
Introdução aos Tópicos Avançados
Comunicações em Série:
OPCIONAL
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.
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
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
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.
317