Programação Intermediária Motoman DX100
Sumário
1.0 INFORM LIST 4
1.1 Tecla INFORM LIST 4
1.2 1.2 Nível de Linguagem 5
2.0 INSTRUÇÕES DE CONTROLE 6
2.1 2.1 CALL e RET 6
2.1.1 Conectando Programas com CALL 6
2.1.2 Direct Open 7
2.1.3 Uso da Instrução RET 8
2.1.4 Sequência de Programas Filhos 10
2.2 JUMP*LABEL e *LABEL 11
2.2.1 JUMP para Ignorar Linhas 11
2.2.2 JUMP para Criar um Loop 13
2.2.3 Uso da Instrução *LABEL 14
2.3 JUMP JOB 14
2.4 COMMENT 15
2.5 TIMER (Temporizador) 16
2.6 PAUSE 16
3.0 IF e IF-THEN 17
3.1 Condição IF Baseada em Entradas (IN#) 18
3.2 “IF” Baseada em Input Group 20
3.3 “IF” Baseada em Variável 20
3.4 Editando uma Condição “IF” Existente 21
3.5 Removendo um Tag “IF” 23
3.6 Condições com IN#( ), IG#( ) ou VAR 24
3.7 IFTHEN; ELSEIF; ELSE e ENDIF 25
4.0 VARIÁVEIS E INSTRUÇÕES ARITMÉTICAS 26
4.1 Variáveis Aritméticas 26
4.1.1 Visualizando variáveis aritméticas 26
4.1.2 Editando Variáveis 27
4.2 Instruções Aritméticas 27
4.2.1 INC (Incremento) 28
4.2.2 DEC (Decrementar) 29
4.2.3 SET 30
4.2.4 CLEAR 31
5.0 MONITORANDO ENTRADAS E SAÍDAS 33
5.1 Monitorando Entradas Universais 33
5.2 Monitorando Saídas Universais 35
5.3 Status Binário e Grupos de I/O 37
6.0 INSTRUÇÕES DE I/O 38
6.1 DOUT OT#( ) Saída Digital 38
6.2 DOUT OG#( ) Saída Digital de Grupos 39
6.3 PULSE OT#( ) ou OG#( ) 40
6.4 WAIT 41
6.5 DIN (Digital Input) 42
6.6 AOUT (Saída Analógica) 43
6.7 Monitorando Saídas Analógicas 43
7.0 FUNÇÕES EXTRAS DE VELOCIDADE 44
7.1 Traverse Run Time (TRT) 44
7.2 Speed Override 45
8.0 8.0 FUNÇÃO PASSWORD DX100 47
8.1 Opção de Proteção por Senha 47
9.0 9.0 MODOS ESPECIAIS 48
9.1 Special Run em Modo Play 48
9.1.1 Low Speed Start 48
9.1.2 Speed Limit 49
9.1.3 Dry-Run Speed 49
9.1.4 Check-Run 50
9.1.5 Machine Lock 50
9.2 Special Run em Modo Teach 50
9.2.1 Machine Lock em Teach 51
9.2.2 Weave Prohibit em Teach 51
10.0 10.0 USER FRAMES 52
10.1 Criando um User Frame 53
10.2 Selecionando um User Frame 54
10.3 Posição Atual em USER 55
11.0 11.0 TOOL CONTROL POINT (TCP) 56
11.1 Lista de Ferramentas e Seleção 56
11.1.1 Selecionar o número da Ferramenta 56
11.1.2 Selecionando uma ferramenta 57
11.2 Entrada de Dados de TCP Manual 58
11.3 Calibração de Ferramentas 59
Programação Intermediária Motoman DX100
1.0 INFORM LIST
O INFORM LIST contém todas as instruções que não são de movimentação.
Essas instruções executam funções de controle de ferramenta e sequência do
programa, operam e monitoram entradas e saídas e executam operações
aritméticas. A disponibilidade das instruções depende da versão e opcionais de
software e da aplicação ativa no controlador DX100.
1.1 Tecla INFORM LIST
A tecla INFORM LIST funciona apenas no modo de EDIÇÃO e
GERENCIAMENTO. O cursor deve estar no lado dos endereços do programa.
A lista é aberta e fechada através da tecla INFORM LIST; ela aparece no lado
direito da tela conforme mostra a figura:
Figura 1. 1: Inform List
Cada título representa uma categoria de funções disponíveis. Uma seleção
errada pode ser desfeita pressionando o botão CANCEL.
Figura 1. 2: Menu CONTROL da Inform List
4
Programação Intermediária Motoman DX100
NOTA: Toque a tela para alternar o cursor entre a Inform List e a última linha do
programa selecionada pelo cursor.
1.2 Nível de Linguagem
Existem três diferentes níveis de linguagem (LANGUAGE LEVEL). O mais
baixo possui apenas as instruções básicas e o maior possui todas as funções
disponíveis
SUBSET A linguagem SUBSET disponibiliza no INFORM LIST as
funções de MOTION, IN/OUT, ARITH, CONTROL, SHIFT
e DEVICE;
STANDARD A linguagem STANDARD disponibiliza todas as funções
padrão do INFORM LIST (Inclusive funções opcionais,
quando habilitadas);
EXPANDED A linguagem EXPANDED disponibiliza todas as funções
disponíveis, além de:
• Permite alocar variáveis locais no JOB HEADER;
• Permite endereçamento de array para qualquer tipo de variável;
• Todas as funções disponíveis podem ser utilizadas
(Por exemplo, a função CWAIT não aparece em SUBSET e
STANDARD).
NOTA: Instruções existentes em um programa serão executadas, independente do nível
de linguagem selecionado.
Para configurar o nível de linguagem, siga os seguintes passos:
1. Abra o Main Menu;
2. Selecione SETUP;
3. Selecione TEACHING COND;
4. Selecione o Language Level ativo;
5. Pressione SELECT, escolha o nível desejado e pressione SELECT.
NOTA: Esse manual é baseado no nível de linguagem STANDARD
5
Programação Intermediária Motoman DX100
2.0 INSTRUÇÕES DE CONTROLE
As instruções de controle, como CALL, RET, JUMP ou PAUSE, são usadas para
controlar a seqüência do programa em execução. Essas quatro instruções podem
ter instruções condicionais atreladas, permitindo que o controlador decida sobre a
execução da instrução.
2.1 CALL e RET
A instrução CALL permite que um programa chame outro como uma sub-rotina.
O programa que chama o outro é chamado de “Pai”. O programa chamado é o
“filho”, que pode ser finalizado com a instrução RET ou pelo fim do programa
(linha END). O controlador continuará executando o programa pai com a próxima
linha após a instrução CALL executada.
2.1.1 Conectando Programas com CALL
Programas podem ser conectados criando um programa Pai com instruções
CALL para cada programa Filho na ordem que eles devem ser executados.
Figura 2. 1: Conectando Programas com a Instrução CALL
6
Programação Intermediária Motoman DX100
NOTA: As teclas FWD/BACK não executam instruções que não sejam de movimento. A
instrução CALL deve ser executada em TEACH usando INTERLOCK+TEST
START para execução contínua.
CUIDADO! Se o programa chamado tiver instruções de movimento, tenha
certeza de que o caminho do robô está livre.
Para programar uma instrução CALL, faça o seguinte:
1. Em TEACH, mova o cursor para o lado dos endereços da linha acima da linha
em que a instrução CALL será inserida;
2. Pressione a tecla INFORM LIST;
3. Selecione CONTROL a partir da INFORM LIST;
4. Selecione CALL. Pressione SELECT caso queira inserir alguma função extra;
5. Selecione o nome do programa a direita com o cursor e pressione SELECT;
6. Selecione o programa a ser chamado na lista que surge;
7. Pressione ENTER para aceitar as mudanças feitas na linha de Buffer (linha
temporária);
8. Pressione [INSERT] e ENTER para inserir a instrução no programa.
2.1.2 Direct Open
Pressionar a tecla DIRECT OPEN com o cursor no lado dos endereços de uma
linha com uma instrução CALL JOB:1234 abrirá esse programa 1234.
Figura 2. 2: Abrindo um Programa Filho com Direct Open
7
Programação Intermediária Motoman DX100
Pressione DIRECT OPEN novamente para fechar o programa filho e retornar ao
programa Pai.
NOTA: Acessar um programa por DIRECT OPEN permite a edição do mesmo, assim
como execução por FWD/BACK ou INTERLOCK+TEST START.
2.1.3 Uso da Instrução RET
A instrução RET faz com que um programa filho seja finalizado antes que o
cursor chegue a linha final do programa. Isso faz com que apenas as instruções
anteriores ao RET sejam executadas.
No exemplo abaixo, se a condicão for verdadeira, o programa filho será finalizado
na linha 0003 e o programa pai continuará a execução da linha 0004. Se a
condicional for falsa, o programa filho continuará sendo executado até a instrução
END, e depois retornar ao programa pai.
Figura 2. 3: Instrução RET no Programa Filho
CUIDADO! Garanta caminho livre para o robô caso a instrução RET seja
executada.
Para inserir uma instrução RET em um programa, faça o seguinte
1. Mova o cursor para o lado dos endereços e pressione a tecla INFORM LIST;
2. Selecione CONTROL;
3. Selecione RET. Acesse a tela de detalhes caso seja necessário;
4. Pressione ENTER para fechar a tela de detalhes, caso esta tenha sido aberta;
5. Pressione [INSERT], ENTER para inserir a instrução na linha abaixo do
cursor.
8
Programação Intermediária Motoman DX100
NOTA: Quando um programa filho é executado manualmente, sem ter sido chamado
por uma instrução CALL, a tentativa de execução da instrução RET gera o
alarme 4440 – UNDEFINED RETURN JOB.
9
Programação Intermediária Motoman DX100
2.1.4 Sequência de Programas Filhos
A instrução CALL pode ser usada dentro de programas filhos para chamar outro
programa. Com isso, uma seqüência de programas pai/filho é criada, permitindo
que o controlador saiba para qual programa voltar com as instruções RET ou
END.
Até doze programas podem ser seqüenciados, onde o primeiro programa está no
nível um. O exemplo abaixo mostra uma seqüência de programas filho:
Figura 2. 4: Enfileirando Programas com CALL
Para mostrar a seqüência de programas, faça o seguinte:
1. Em PLAY, selecione DISPLAY no menu superior;
2. Selecione JOB STACK.
Um asterisco “*” aparece indicando que a tela sempre será mostrada em modo
PLAY. Para remover a tela, repita o procedimento acima.
Figura 2. 5: Seqüência de Programas com o Programa Filho Ativo
10
Programação Intermediária Motoman DX100
NOTA: O alarme 4452 STACK MORE THAN 12 (JOB CALL) surge caso mais de 12
programas sejam chamados em sequência.
2.2 JUMP*LABEL e *LABEL
A instrução JUMP*LABEL funciona apenas com a instrução *LABEL.
Juntas, elas instruem o controlador a ir de uma linha com a instrução
JUMP*LABEL para outra com a mesma função *LABEL.
Essas instruções podem ser utilizadas para pular uma parte do programa ou criar
um loop infinito.
NOTA: Um label automaticamente inclui um asterisco (*). O programador pode alterar
os caracteres padrão, LABEL, por até 8 caracteres usando qualquer
combinação de letras, números e símbolos.
2.2.1 JUMP para Ignorar Linhas
Para ignorar uma parte de um programa, a instrução JUMP*LABEL precisa
preceder a instrução *LABEL.
No exemplo abaixo, o controlador pulará as linhas 6, 7 e 8, encontrando o label
correspondente na linha 9, e continuará a execução na linha 10 (se a condição for
verdadeira); caso contrário, o controlador executará todas as linhas.
Figura 2. 6: Jump para Saltar Linhas
11
Programação Intermediária Motoman DX100
CUIDADO! Garanta que o caminho do robô esteja livre caso as linhas sejam
ignoradas.
12
Programação Intermediária Motoman DX100
2.2.2 JUMP para Criar um Loop
Para criar um loop, a instrução *LABEL deve preceder a JUMP*LABEL
No exemplo abaixo, o controlador passa pela instrução *LABEL na linha 5 até
chegar à instrução JUMP*LABEL na linha 11. O programa voltará até a linha 5 e
executará aquela parte do programa novamente enquanto a condição for
verdadeira. Quando a condição for falsa, o controlador não voltará para a linha do
label, seguindo para a linha 12.
Figura 2. 7: Jump para Criação de Loop
Para inserir uma instrução JUMP*LABEL, siga o seguinte procedimento:
1. Em TEACH, mova o cursor para o lado dos endereços da linha acima da qual
se deseja inserir a instrução JUMP;
2. Pressione a tecla INFORM LIST;
3. Selecione CONTROL;
4. Selecione JUMP;
5. “JUMP*LABEL” aparece na linha de buffer. Selecione a palavra LABEL (ou
algum outro nome que esteja após o asterisco, caso a instrução já tenha sido
usada) com o cursor e pressione SELECT;
6. Digite o novo nome da LABEL no teclado (até 8 caracteres) e pressione
ENTER;
7. Pressione [INSERT], ENTER para inserir a instrução no programa.
13
Programação Intermediária Motoman DX100
2.2.3 Uso da Instrução *LABEL
Uma instrução *LABEL sempre deve ser inserida em um programa quando uma
instrução JUMP*LABEL for usada. O nome da *LABEL deve ser exatamente
igual ao nome presente na instrução JUMP*LABEL
Para inserir um label em um programa, siga os seguintes passos:
1. Em TEACH, mova o cursor para o lado dos endereços;
2. Pressione a tecla INFORM LIST;
3. Selecione CONTROL;
4. Selecione LABEL;
5. “*LABEL” aparece na linha de buffer. Selecione o nome do label e pressione
SELECT;
NOTA: Um label sempre vem precedido de um asterisco (*) e o não pode haver duas
instruções *LABEL com o mesmo nome.
6. Digite o nome desejado para a Label e pressione ENTER;
7. Pressione [INSERT], ENTER para inserir o Label no programa.
2.3 JUMP JOB
A função JUMP JOB:(nome) é usada para encerrar o programa ativo e chamar
outro totalmente diferente, sem nenhuma relação com o primeiro. O controlador
não retorna para o programa original quando termina a execução do programa.
Na linha 3 do exemplo abaixo, o controlador interrompe a execução do programa
original e iniciar a execução do programa R até sua instrução END (se a condição
for verdadeira); caso contrário, o programa original continua sendo executado.
Figura 2. 8: Instrução Jump Job
Para inserir uma instrução JUMP JOB no programa, faça o seguinte:
1. Em TEACH, mova o cursor para o lado dos endereços na linha acima onde se
deseja inserir a instrução JUMP JOB;
14
Programação Intermediária Motoman DX100
2. Pressione a tecla INFORM LIST;
3. Selecione CONTROL;
4. Selecione JUMP;
5. Pressione SELECT para acessar a tela de detalhes;
6. Com o cursor no asterisco, pressione SELECT;
7. Selecione a Tag “JOB:” e pressione SELECT;
8. Mova o cursor para a direita e pressione SELECT para acessar a lista de
programas. Selecione o programa desejado e pressione SELECT;
9. Pressione ENTER para aceitar as modificações feitas, fechar a tela de
detalhes e retornar ao programa;
10. Pressione [INSERT], ENTER para inserir a instrução no programa.
2.4 COMMENT
Comentários são mensagens do programados para o operador, identificados no
programa pelo apóstrofo (‘) e têm no máximo 32 caracteres
Para inserir um comentário em um programa, faça o seguinte:
1. Em TEACH, mova o cursor para o lado dos endereços;
2. Pressione a tecla INFORM LIST;
3. Selecione CONTROL;
4. Selecione COMMENT;
5. Um apóstrofo (‘) aparece na linha de buffer. Mova o cursor para a direita,
selecionando COMMENT, e pressione SELECT;
NOTA: O comentário pode ter até 32 caracteres, incluindo letras, números e símbolos.
Um botão de Espaço está disponível. Ao pressionar e segurar a tecla SHIFT o
cursor se move para a linha de nome, permitindo o uso do cursor para
direita/esquerda e o uso do Backspace para apagar caracteres individuais. A
tecla CANCEL apaga todos os caracteres digitados.
6. Digite o comentário desejado e pressione ENTER;
7. Pressione [INSERT], ENTER para inserir o comentário no programa.
15
Programação Intermediária Motoman DX100
2.5 TIMER (Temporizador)
A instrução TIMER causa um delay na execução do programa até que o valor da
instrução seja alcançado. O cursor permanece na linha enquanto o robô aguarda o
encerramento do TIMER.
A instrução TIMER é usada quando o robô precisa ficar em uma posição por um
período de tempo, como por exemplo, antes do início de um arco de solda.
O TIMER pode assumir valores entre 0.01 e 655.35 segundos.
Para inserir uma instrução TIMER no programa, faça o seguinte:
1. Em TEACH, mova o cursor para o lado dos endereços;
2. Pressione a tecla INFORM LIST;
3. Selecione CONTROL;
4. Selecione TIMER;
5. Selecione o campo T= (em segundos) e pressione SELECT;
6. Digite o valor desejado (de 0.01 a 655.35s) e pressione ENTER;
7. Pressione [INSERT], ENTER para inserir o TIMER no programa.
NOTA: Em alguns sistemas, a instrução TIMER pode ser acessada pressionando o
botão “1” no teclado numérico.
2.6 PAUSE
A instrução PAUSE é usada para programar um hold para suspender a execução
do programa. A lâmpada de START apaga, e o robô mantém sua posição
A linha de mensagem mostra
Para continuar o programa, pressione START
Para programar uma instrução PAUSE, faça os seguintes passos:
1. Em TEACH, mova o cursor para o lado de endereços;
2. Pressione a tecla INFORM LIST;
3. Selecione CONTROL ;
4. vkcSelecione PAUSE;
5. Pressione [INSERT], ENTER para inserir o PAUSE no programa.
16
Programação Intermediária Motoman DX100
3.0 IF e IF-THEN
A condição IF é uma condição que diz se a instrução de controle a ela atrelada
será executada. Ela pode ser adicionada na Linha de Buffer (linha temporária)
para uma nova instrução no lado dos endereços, ou para uma instrução existente
no lado das instruções.
A condição IF só pode ser acessada pela tela de detalhes das seguintes
instruções de controle:
• JUMP;
• CALL;
• RET;
• PAUSE.
As condições disponíveis para a função IF são
• IN# - verifica o status de uma Input (ON ou OFF);
• IG# - verifica o status de um input group (= ou <>; 0 a 255);
• Var – compara valores de variáveis (=,<>,>,>=,< ou <=).
O programa abaixo mostra um exemplo para cada uso da instrução IF com várias
instruções de controle:
Figura 3. 1: Programa com Várias Funções “IF”
17
Programação Intermediária Motoman DX100
3.1 Condição IF Baseada em Entradas (IN#)
Quando um IF é baseado no status de uma entrada universal, as únicas escolhas
disponíveis são ON ou OFF.
Figura 3. 2: Exemplo de IF Baseado em uma Entrada Universal
Para programar um CALL, RET, JUMP ou PAUSE com um IF baseado
numa entrada universal, faça o seguinte:
1. Selecione a instrução principal da linha de buffer e pressione SELECT para
acessar a tela de detalhes;
2. Selecione o campo CONDITION “UNUSED” e pressione SELECT;
3. Selecione “IF” e pressione SELECT;
4. Selecione TARGET e pressione SELECT;
Figura 3. 3: Tela de Detalhes para CALL IF IN#
5. Selecione IN# e pressione SELECT;
6. Selecione o número da entrada e pressione SELECT;
7. Digite o valor da entrada desejada e pressione ENTER;
8. Mova o cursor para baixo até CONDITION “ON”. Pressione SELECT para
18
Programação Intermediária Motoman DX100
escolher entre ON e OFF;
9. Pressione ENTER conforme necessário para aceitar as alterações e voltar à
tela de programa;
10. Pressione [INSERT], ENTER para inserir a instrução no programa.
19
Programação Intermediária Motoman DX100
3.2 “IF” Baseada em Input Group
Quando um “IF” se baseia em um grupo de Entradas Universais, o controlador
pode comparar seu valor usando os operadores “=” (igual) ou “<>” (diferente).
Figura 3. 4: Exemplo de IF baseado em um Grupo de Entradas Universais
Para programar um CALL, RET, JUMP ou PAUSE com um IF IG#( ) =
baseado em um grupo de entradas universais, faça o seguinte:
1. Selecione a instrução principal da linha de buffer e pressione SELECT para
acessar a tela de detalhes;
2. Selecione o campo CONDITION “UNUSED” e pressione SELECT;
3. Selecione “IF” e pressione SELECT;
4. Selecione TARGET e pressione SELECT;
5. Selecione IG# e pressione SELECT;
6. Selecione o número do grupo e pressione SELECT;
7. Digite o número do grupo desejado e pressione ENTER;
8. Selecione CONDITION e pressione SELECT. Selecione CONSTANT e
pressione SELECT;
9. Selecione o valor e pressione SELECT. Digite o valor da combinação binária
desejada (0-255) e pressione ENTER;
10. Pressione ENTER para aceitar as informações digitadas e voltar para a tela de
programa;
11. Pressione [INSERT], ENTER para inserir a instrução no programa.
3.3 “IF” Baseada em Variável
Quando o IF se baseia em uma variável, o controlador compara o conteúdo de
uma variável usando alguns dos operadores lógicos.
Figura 3. 5: Exemplo de IF com Variável
20
Programação Intermediária Motoman DX100
Os operadores abaixo podem ser usados para comparação de variáveis
= Igual;
<> Diferente;
> Maior que;
>= Maior ou Igual;
< Menor que;
<= Menor ou Igual.
Para programar um CALL, RET, JUMP ou PAUSE com um IF baseado em
uma variável, faça o seguinte:
1. Selecione a instrução principal da linha de buffer e pressione SELECT para
acessar a tela de detalhes;
2. Selecione o campo CONDITION “UNUSED” e pressione SELECT;
3. Selecione “IF” e pressione SELECT;
4. Selecione TARGET, IN#, e pressione SELECT;
5. Selecione o tipo de variável desejada e pressione SELECT;
6. Selecione o endereço da variável e pressione SELECT;
7. Digite o número do endereço da variável desejado e pressione ENTER;
8. Selecione CONDITION “=” e pressione SELECT;
9. Selecione o operador lógico desejado e pressione SELECT;
10. Selecione o valor da condição e pressione SELECT;
11. Digite no teclado numérico o valor desejado e pressione ENTER;
12. Pressione ENTER novamente para aceitar as alterações e voltar à tela de
programa;
13. Pressione [INSERT], ENTER para inserir a instrução no programa.
3.4 Editando uma Condição “IF” Existente
Apenas valores numéricos de uma condicional podem ser alterados diretamente da
linha de buffer.
21
Programação Intermediária Motoman DX100
Figura 3. 6: Alterando Valores Numéricos na Linha de Buffer
Para alterar o tipo de condicional, a tela de detalhes deve ser utilizada
A tela de detalhes para “IF” pode ser acessada selecionando a tag “IF” na linha
temporária e pressionando SELECT ou selecionando o ícone “I” na tela de
detalhes da instrução principal da linha.
Figura 3. 7: Acesso a Tela de Detalhes da Função “IF”
22
Programação Intermediária Motoman DX100
Para editar uma tag IF, faça o seguinte:
1. Acesse a tela de detalhes do IF;
2. Selecione com o cursor o TARGET atual e pressione SELECT;
3. Selecione o novo tipo do TARGET e pressione SELECT;
4. Confirme as mudanças pressionando ENTER, inserindo-as no programa.
3.5 Removendo um Tag “IF”
Quando a função LEARNING é VALID, as instruções de controle aparecem na
linha temporária já com o condicional IF. Caso o IF não seja necessário, ele
precisa ser removido seguindo os passos abaixo.
Esse procedimento também deve ser usado para remover um IF de uma linha já
existente no programa
Para remover uma tag IF da linha temporária, faça o seguinte:
1. Pressione SELECT para acessar a tela de detalhes da instrução;
2. Selecione o campo CONDITION “IF” e pressione SELECT;
3. Selecione “UNUSED” e pressione SELECT;
4. Pressione ENTER para retornar à tela do programa;
5. Pressione ENTER para inserir as mudanças no programa.
23
Programação Intermediária Motoman DX100
3.6 Condições com IN#( ), IG#( ) ou VAR
Os exemplos abaixo mostram a diferença do uso, em uma condicional IF, de status
de entradas individuais ou grupos e variáveis.
No exemplo abaixo, um programa ou qualquer combinação dos programas serão
executados em cada ciclo do programa pai.
Figura 3. 8: Condição com Status de Entradas
Observe que no próximo exemplo, em cada ciclo do programa pai, apenas um
programa será executado. Entretanto, se durante a execução do programa DX a
IG#(1) mudar seu valor para 2, o programa R será chamado. Do mesmo modo, se
a IG#(1) mudar para 4 durante a execução do programa R, o programa C será
chamado no mesmo ciclo.
Figura 3. 9: Condicional com Status de Grupo de Entradas
Nesse último exemplo, apenas um programa será executado em cada ciclo do
programa pai. Isso acontece, pois o valor da variável Byte B004 só será uma vez
em cada ciclo, na instrução localizada na linha 0001.
Figura 3. 10: Condição com uma Variável Byte
24
Programação Intermediária Motoman DX100
3.7 IFTHEN; ELSEIF; ELSE e ENDIF
As instruções IFTHEN e ENDIF fazem a execução de uma parte de um programa
condicional, baseado no status de uma IN#( ), IG#( ) ou pela comparação de uma
variável a outra ou a uma constante.
As instruções ELSEIF e ELSE devem ser inseridas em qualquer lugar entre o
IFTHEN e o ENDIF.
NOTA: A instrução ENDIF é automaticamente inserida abaixo da IFTHEN.
O exemplo abaixo mostra várias combinações dessas instruções de controle.
Figura 3. 11: Várias Instruções de Controle
NOTA: As instruções ELSE e ENDIF não possuem tela de detalhes.
25
Programação Intermediária Motoman DX100
4.0 VARIÁVEIS E INSTRUÇÕES
ARITMÉTICAS
Qualquer valor que não seja constante, ou seja, que possa variar em um programa
deve ser armazenado em um tipo apropriado de variável.
O controlador DX100 possui os seguintes tipos de variáveis:
ARITHMETIC [Byte, Integer, Double Precision e Real];
POSIÇÃO [Robot, Station, Base];
STRING [Caracteres ASC II].
Variáveis globais estão disponíveis para todos os programas, permitindo ser
manipulada por qualquer programa.
4.1 Variáveis Aritméticas
Cada variável aritmética pode armazenar um valor numérico. O tipo da variável
determina os valores que a variável pode receber.
Tipo Endereços Limites Aplicação
Integer I000-I099 -32768 a +32767 Contadores
Double
D000-D099 -2147483649 a +2147483647 Distância (Microns)
Preciosion
±3.400000 E+38
Cálculos Aritméticos
(mínimo/máximo)
Real R000-R099 Avançados (DIV, SQRT,
±9.999999 E-38
SIN, COS, ATAN, etc.)
(valores entre -1 e +1)
Byte B000-B099 0-255 Comunicação I/O
Figura 4. 1: Variáveis Aritméticas
4.1.1 Visualizando variáveis aritméticas
Para visualizar o conteúdo de qualquer tipo de variável, tanto em TEACH
como em PLAY, faça o seguinte:
1. No Menu Principal, selecione VARIABLE;
2. Selecione o tipo de variável desejado (INTEGER, DOUBLE, etc.);
3. Localize o número da variável desejada com o cursor
ou
Com o cursor sobre qualquer variável, pressione SELECT, digite no teclado
numérico o número do variável desejada e pressione ENTER
26
Programação Intermediária Motoman DX100
ou
Na área de menus superior, selecione EDIT e SEARCH. Digite o número da
variável desejada e pressione ENTER.
4.1.2 Editando Variáveis
O conteúdo de uma variável aritmética pode ser editado manualmente apenas em
TEACH.
Para alterar o valor de uma variável, siga os seguintes passos:
1. Selecione a variável desejada;
2. Selecione o conteúdo da variável (valor a direita) e pressione SELECT;
3. Digite o valor desejado (dentro dos limites da variável) no teclado numérico e
pressione ENTER.
Figura 4. 2: Exemplo com Variável Byte
4.2 Instruções Aritméticas
O menu ARITH do INFORM LIST contém uma vasta seleção de instruções
usadas para cálculos em geral. A tabela a seguir lista as instruções usadas para
contadores, começando por um valor inicial, e limpando o conteúdo de uma
seqüência de variáveis para o padrão, zero.
27
Programação Intermediária Motoman DX100
Função Sintaxe Exemplo Resultado
Adiciona um no valor INC B<endereço> INC B023
Se o conteúdo for =
INC da variável INC I<endereço> INC I023
6, o resultado é 7
especificada INC D<endereço> INC D023
Adiciona um no valor DEC B<endereço>
DEC B023 DEC Se o conteúdo for =
DEC da variável DEC I<endereço>
I023 DEC D023 6, o resultado é 5
especificada DEC D<endereço>
Seta o dado 1 igual
SET SET <Data 1> <Data 2> SET I012 3 I012 passa a valer 3
ao dado 2
Limpa I007, 8, 9 e 10
Limpa os valores das CLEAR I007 4
CLEAR CLEAR <endereço> Limpa I007 em diante
variáveis CLEAR I007 ALL
(I007-I099)
Figura 4. 3: Instruções Aritméticas
NOTA: Todas as funções aritméticas são acessadas através do INFORM LIST, no
submenu ARITH.
4.2.1 INC (Incremento)
A instrução INC incrementa o valor armazenado em uma variável (+1). Por
exemplo, se I012 tem 6 no seu valor, após a execução da instrução INC012, ele
terá 7 em seu valor. A instrução INC só pode ser utilizada com as variáveis tipo B,
I e D.
Figura 4. 4: Exemplo de Programa com INC
A função INC é usada para contadores sem valor limite durante a execução de
programas. Pode ser usado para contar número de ciclos ou peças produzidas pela
célula.
A função INC deve estar depois do que deve ser contado de modo a evitar erros de
contagem caso haja interrupção no programa. Logo, a instrução INC deve ser
colocada no final de um programa conforme exemplo abaixo.
NOTA: Se o incremento de uma variável exceder o limite do tipo de variável usado, o
alarme 4446: OVER VARIABLE LIMIT ocorrerá, interrompendo a execução
do programa na linha da instrução.
Para inserir uma função INC no programa, faça o seguinte:
28
Programação Intermediária Motoman DX100
1. Em TEACH, mova o cursor para o lado dos endereços;
2. Pressione a tecla INFORM LIST;
3. Selecione ARITH;
4. Selecione INC;
5. Selecione a instrução INC com o cursor na linha temporária e pressione
SELECT para acessar a tela de detalhes;
6. Selecione o ícone e pressione SELECT;
7. Selecione o tipo de variável desejado (B, I ou D); pressione SELECT;
8. Selecione o número da variável e pressione SELECT, digite o número
desejado (0 a 99) no teclado numérico e pressione ENTER;
9. Pressione [INSERT], ENTER para inserir a instrução no programa.
4.2.2 DEC (Decrementar)
A instrução DEC decrementa o valor armazenado em uma variável (-1). Por
exemplo, se I022 tem 10 no seu valor, após a execução da instrução DEC I022, ele
terá 9 em seu valor. A instrução DEC só pode ser utilizada com as variáveis do
tipo B, I e D.
A instrução DEC deve ser usada para alcançar uma meta de produção. Uma
variável é selecionada para armazenar o valor necessário de peças a ser
produzidas. Ela será decrementada cada vez que uma peça for produzida. Para
melhor resultados, faça o decremento somente no final do programa de produção.
Figura 4. 5: Exemplo de Programa usando DEC
NOTA: Se o decremento de uma variável exceder o limite do tipo de variável usado, o
alarme 4446: OVER VARIABLE LIMIT ocorrerá, interrompendo a execução
do programa na linha da instrução.
Para inserir uma função DEC no programa, faça o seguinte:
1. Em TEACH, mova o cursor para o lado dos endereços;
2. Pressione a tecla INFORM LIST;
29
Programação Intermediária Motoman DX100
3. Selecione ARITH;
4. Selecione DEC;
5. Selecione a instrução DEC com o cursor na linha temporária e pressione
SELECT para acessar a tela de detalhes;
6. Selecione o ícone e pressione SELECT;
7. Selecione o tipo de variável desejado (B, I ou D); pressione SELECT;
8. Selecione o número da variável e pressione SELECT, digite o número
desejado (0 a 99) no teclado numérico e pressione ENTER;
9. Pressione [INSERT], ENTER para inserir a instrução no programa.
4.2.3 SET
A instrução SET armazena qualquer valor em uma variável. Isso permite que o
programa determine valores iniciais para variáveis sem depender da entrada
manual de valores. Pode também ser usada para zerar uma variável individual; se
for zerar mais de uma variável consecutiva, utilize a função CLEAR.
Figura 4. 6: Exemplo de Instrução SET com Constante
Para inserir uma função SET em um programa, faça o seguinte:
1. Em TEACH, mova o cursor para o lado dos endereços;
2. Pressione a tecla INFORM LIST;
3. Selecione ARITH;
4. Selecione SET;
5. Selecione a instrução SET com o cursor na linha temporária e pressione
SELECT para acessar a tela de detalhes;
6. Selecione o ícone e pressione SELECT;
7. Selecione o tipo de variável desejado (B, I ou D) e pressione SELECT;
8. Selecione o número da variável e pressione SELECT, digite o número
desejado (0 a 99) no teclado numérico e pressione ENTER;
9. Selecione SOURCE, pressione SELECT e entre um valor constante no
teclado numérico e pressione ENTER;
10. Pressione ENTER para aceitar as mudanças feitas na tela de detalhes;
11. Pressione [INSERT], ENTER para inserir a instrução no programa.
30
Programação Intermediária Motoman DX100
NOTA: Na tela de detalhes, a instrução SET pode ser configurada para armazenar o
valor de uma variável em outra, desde que os valores não excedam os limites do
tipo de variável usado caso os tipos de variáveis usados sejam diferentes.
Figura 4. 7: Exemplo de Instrução SET com Variáveis
4.2.4 CLEAR
A instrução CLEAR permite que variáveis consecutivas sejam zeradas. A primeira
variável da seqüência procede a instrução CLEAR. No exemplo abaixo, CLEAR
I007 4 zera o conteúdo de 4 variáveis, I007, I008, I009 e I010.
Figura 4. 8: Exemplo de Programa com Instrução CLEAR
Na tela de detalhes de CLEAR, a tag ALL pode ser selecionada, fazendo com que
todas as variáveis, a partir da variável digitada na instrução, sejam zeradas. Por
exemplo, CLEAR B000 ALL zera todas as variáveis a partir de B000 (B000 até
B099).
Para inserir uma instrução CLEAR em um programa, faça o seguinte:
1. Em TEACH, mova o cursor para o lado dos endereços;
2. Pressione a tecla INFORM LIST;
3. Selecione ARITH;
4. Selecione CLEAR;
5. Selecione a instrução CLEAR com o cursor na linha temporária e pressione
SELECT para acessar a tela de detalhes;
6. Selecione o ícone e pressione SELECT;
7. Selecione o tipo de variável desejado; pressione SELECT;
8. Selecione o número da variável e pressione SELECT, digite o número
desejado (0 a 99) no teclado numérico e pressione ENTER;
9. Para escolher quantas variáveis serão zeradas, siga os seguintes passos:
Selecione CLEAR NUM e pressione SELECT;
Digite o número de variáveis a serem zeradas;
31
Programação Intermediária Motoman DX100
Pressione [INSERT] ENTER para inserir a instrução no programa.
ou
Para zerar de uma variável selecionada até a 099, faça o seguinte:
Selecione CLEAR NUM e pressione SELECT;
Selecione o ícone e pressione SELECT;
Selecione ALL e pressione SELECT;
Pressione [INSERT], ENTER para inserir a instrução no programa.
32
Programação Intermediária Motoman DX100
5.0 MONITORANDO ENTRADAS E
SAÍDAS
É possível monitorar o estado e/ou alterar a descrição de qualquer entrada ou
saída universal tanto em TEACH como em PLAY.
NOTA: A tela de I/O para Entradas e Saídas Universais oferece dois modos de exibição.
A tela DETAIL mostra um grupo por tela, com nome e estado. A tela SIMPLE
mostra vários grupos por tela apenas com o indicador de Bit/Byte.
5.1 Monitorando Entradas Universais
Para acessar a tela de exibição de entradas universais, siga os seguintes
passos:
1. No Menu Principal, selecione IN/OUT;
2. Selecione UNIVERSAL INPUT;
3. Para mudar a tela, selecione DISPLAY na área de menus;
4. Selecione entre DETAIL ou SIMPLE.
Figura 5. 1: Tela de Entradas Universais SIMPLE e DETAIL
33
Programação Intermediária Motoman DX100
Para procurar por uma entrada específica na tela DETAIL:
Com a tela em DETAIL, leve o cursor em qualquer campo IN#( ) e pressione
SELECT. Digite o número da entrada desejada e pressione ENTER
Ou
Com a tela em DETAIL, selecione EDIT. Selecione SEARCH SIGNAL NO.
Digite o número da entrada desejada e pressione ENTER.
NOTA: Existem 256 grupos de entrada disponíveis no controlador DX100.
Individualmente, elas são numeradas de IN#(1) até IN#(2048).
Para forçar uma entrada (simular que a entrada está acionada), faça o
seguinte em TEACH:
1. Na tela da entrada desejada em DETAIL, leve o cursor para o campo perto do
símbolo de status;
2. Pressione SELECT para preencher o campo com SIM;
3. Selecione o símbolo de status [❍] da entrada a ser simulada;
4. Segure a tecla INTERLOCK e pressione SELECT para alternar o status da
❍
entrada entre [ ] ON e [ ] OFF.
Para remover a opção de simulação de entradas, repita o procedimento acima.
Figura 5. 2: Simulação de Entradas
Quando um programa é executado em TEST START ou em PLAY com qualquer
entrada simulada, o controlador perguntará se o programa deve mesmo ser
34
Programação Intermediária Motoman DX100
executado com a simulação. Isso evita simulações não intencionais e,
conseqüentemente, acidentes e colisões que podem ocorrer.
Figura 5. 3: Verificação de Simulação
5.2 Monitorando Saídas Universais
Para monitorar Saídas Universais, faça o seguinte:
1. No Menu Principal, selecione IN/OUT;
2. Selecione UNIVERSAL OUTPUT;
3. Para mudar a tela, selecione DISPLAY na área de menus;
4. Selecione entre DETAIL ou SIMPLE.
Para procurar por uma saída específica na tela DETAIL:
Leve o cursor em qualquer campo OT#( ) e pressione SELECT. Digite o
número da entrada desejada e pressione ENTER
Ou
Selecione EDIT. Selecione SEARCH SIGNAL NO. Digite o número da saída
desejada e pressione ENTER.
A tela DETAIL permite forçar as saídas universais para ON/OFF.
35
Programação Intermediária Motoman DX100
Figura 5. 4: Tela DETAIL para Saídas Universais
Para forçar uma saída (simular que a saída está acionada), faça o seguinte
em TEACH:
1. Selecione o símbolo de status [❍] da saída a ser forçada;
2. Segure a tecla INTERLOCK e pressione SELECT para alternar o status da
entrada entre [ ] ON e [ ] OFF.
NOTA: Existem 256 grupos de saídas universais disponíveis no controlador DX100.
Individualmente, elas são numeradas de OT#(1) até OT#(2048).
36
Programação Intermediária Motoman DX100
5.3 Status Binário e Grupos de I/O
Os dois estados possíveis de uma entrada digital é ON=1 e OFF=0. Os 8 bits de
um grupo de I/O podem ser vistos como um byte, que pode ser convertido para
um valor decimal. A tabela abaixo mostra um exemplo de conversão para
128+16=144.
IN#/OT# (8) (7) (6) (5) (4) (3) (2) (1)
Valor em Base Binária 27 26 25 24 23 22 21 20
Valor Decimal 128 64 32 16 8 4 2 1
Estado do Bit 1 0 0 1 0 0 0 0 =144
Figura 5. 5: Valores de um Grupo de 8 Bits em Binário
O status de cada grupo é exibido como valor decimal no campo “__:DEC” no
topo da tela do grupo.
Figura 5. 6: Telas de Entrada e Saída Universal
Na figura acima, o primeiro grupo de entradas IG#001 tem valor 107
(1+2+8+32+64). O primeiro grupo de saídas OG#001 tem valor 205
(1+4+8+64+128).
37
Programação Intermediária Motoman DX100
6.0 INSTRUÇÕES DE I/O
Um sistema robótico raramente trabalha sem interação com outros dispositivos. O
controlador deve se comunicar com equipamentos externos, como fontes de solda,
posicionadores, dispositivos, sensores. A comunicação pode ser feita através do
uso de Entradas e Saídas Universais (I/O). A linguagem INFORM III possui
instruções de I/O digitais e analógicas.
6.1 DOUT OT#( ) Saída Digital
A instrução DOUT com a tag OT#( ) opera apenas uma saída universal. É
utilizado a qualquer hora que um dispositivo, como uma lâmpada, grampo, garra,
deve ser ligado ou desligado.
O exemplo abaixo mostra a função DOUT sendo utilizada com uma única saída
universal (OT#):
0003 DOUT OT#(3) ON
0004 MOVL V=2000
0005 MOVL V=2000
0006 DOUT OT#(3) OFF
Figura 6. 1: Exemplo de Instrução DOUT
Para inserir uma instrução DOUT OT#( ) em um programa, faça o seguinte:
1. Em TEACH, mova o cursor para o lado dos endereços;
2. Pressione a tecla INFORM LIST;
3. Selecione IN/OUT;
4. Selecione DOUT;
5. Pressione SELECT para acessar a tela de detalhes;
6. Selecione a linha OUTPUT TO, pressione SELECT, mova o cursor para OT#
e pressione SELECT;
7. Selecione o número da Output, pressione SELECT, digite o número da
Output desejada e pressione ENTER;
8. Selecione o valor DATA, pressione SELECT para escolher entre ON/OFF;
9. Pressione ENTER para voltar para a tela do programa;
10. Pressione [INSERT], ENTER para inserir a instrução no programa.
NOTA: Como padrão, uma output alterada para ON permanecerá nesse estado até que
seja alterada em um programa ou manualmente para OFF.
38
Programação Intermediária Motoman DX100
6.2 DOUT OG#( ) Saída Digital de Grupos
A instrução DOUT com a tag OG#( ) consegue manipular os 8 bits de um grupo
de saídas universais, podendo alterar o valor decimal do grupo (0-255). O valor
decimal é convertido para binário, onde cada bit identifica uma das saídas do
grupo em questão.
Por exemplo, o resultado de DOUT OG#(1) = 162 faz com que as saídas 2,6 e 8
sejam ligadas (2+32+128=162) e o restante seriam desligadas.
No exemplo abaixo, as saídas 1 e 5 seriam ligadas (1+16 = 17) e todos os outros
bits seriam desligados. A instrução DOUT OG#(1) = 0 desliga todas as 8 saídas do
grupo.
0004 DOUT OG#(1) 17
0005 MOVL V=2000
0006 DOUT OG#(1) 0
Figura 6. 2: Exemplo de Programa Usando DOUT para um Grupo
DOUT de grupo também pode referenciar uma variável Byte para valores 0-255
0004 DOUT OG#(1) B000
Figura 6. 3: DOUT com uma Variável Byte
Para programar uma instrução DOUT OG#( ) para um grupo de saídas
universais, faça o seguinte:
1. Em TEACH, mova o cursor para o lado dos endereços do programa;
2. Pressione a tecla INFORM LIST;
3. Selecione IN/OUT;
4. Selecione DOUT;
5. Pressione SELECT para acessar a tela de detalhes;
6. Mova o cursor para a linha OUTPUT TO, pressione SELECT. Selecione OG#
e pressione SELECT;
7. Selecione o número do grupo, pressione SELECT. Digite o número do OG#
desejado e pressione ENTER;
8. Selecione DATA e pressione SELECT. Selecione CONSTANT e pressione
SELECT novamente;
9. Selecione o valor e pressione SELECT. Digite o valor desejado no teclado
numérico e pressione ENTER;
10. Pressione ENTER para aceitar as mudanças e retornar ao programa;
11. Pressione [INSERT], ENTER para inserir a instrução no programa.
39
Programação Intermediária Motoman DX100
6.3 PULSE OT#( ) ou OG#( )
A instrução PULSE age como um botão momentâneo para Saídas Universais.
Pode ser usado para comunicação com PLCs, dando um pulso em determinada
saída por 0,3 segundos. Também é usado para acionar equipamentos que precisam
ficar ligados por um certo período de tempo, como cortadores de arame, válvula
de “purge” de uma linha de gás, etc.
Porém, a instrução PULSE não pára a execução do programa; o cursor vai para a
próxima linha e continua processando as instruções enquanto a instrução PULSE
age na saída.
O programa abaixo mostra uma instrução PULSE com uma saída individual,
OT#(8), com uma tag de tempo T=1.50. Na linha 7, o PULSE em grupo, OG#(1)
127, vai pulsar as saídas 1 a 7 pelo tempo padrão de 0.3 segundos.
0003 MOVJ VJ = 12.50 PL=0
0004 PULSE OT#(8) T=1.50
0005 TIMER T=1.55
0006 MOVJ VJ = 6.25
0007 PULSE OG#(1) 127
Figura 6. 4: Exemplo de Programa com Instruções PULSE
Para inserir uma instrução PULSE OT#( ) para uma saída, faça o seguinte:
1. Em TEACH, mova o cursor para o lado dos endereços do programa;
2. Pressione a tecla INFORM LIST;
3. Selecione IN/OUT;
4. Selecione PULSE;
5. Pressione SELECT para acessar a tela de detalhes;
6. Selecione OUTPUT NO e pressione SELECT, digite o número da saída
OT#( ) e pressione ENTER;
7. Se for preciso, selecione TIME UNUSED e pressione SELECT. Selecione
“T=” e pressione SELECT. Selecione o valor, pressione SELECT e digite o
tempo desejado para o pulso (0.01-655.35) e pressione ENTER;
8. Pressione ENTER para aceitar as mudanças e retornar ao programa;
9. Pressione [INSERT], ENTER para inserir a instrução no programa.
NOTA: Insira um TIMER logo depois de um PULSE se necessário. Para acesso rápido
ao TIMER, pressione [1] no teclado numérico. Podem-se usar valores entre
0.01 e 655.35.
40
Programação Intermediária Motoman DX100
6.4 WAIT
A instrução WAIT é usada quando o programa do robô depende de um sinal de
uma switch, sensor, PLC, etc. Isso abrange IN#, OT#, IG#, OG#, IGH#, OGH#
(universais) e SIN#, SOUT# (específicos), assim como outras variáveis Byte. Um
TIMER pode ser usado com WAIT. Quando o timer é utilizado, o robô espera que
a condição seja verdadeira ou até que o tempo se esgote, o que vier primeiro.
NOTA: Se a condição já for verdadeira quando o controlador for executar a instrução
WAIT, não há qualquer espera.
A seguir, todas as possibilidades da instrução WAIT:
WAIT IN#(3)=ON [espera até que a IN#3 fique ON];
WAIT IG#(1)=255 [espera até que o IG#(1) = 255];
WAIT IN#(5)=OFF T=3.25 [espera que a IN#5 seja desligada por 3.25s,
continuando para a próxima linha].
Figura 6. 5: Exemplo de Instruções WAIT
CUIDADO! Quando o timer é utilizado, por exemplo, WAIT IN#(7)=ON T=2.50,
imediatamente abaixo coloque uma instrução de controle com uma
condicional IF.
Para programar uma instrução WAIT para uma entrada universal, faça o
seguinte:
1. Em TEACH, mova o cursor para o lado de endereços do programa;
2. Pressione INFORM LIST, selecione IN/OUT e selecione WAIT;
3. Pressione SELECT para abrir a tela de detalhes;
4. Selecione WAIT TARGET e pressione SELECT. Selecione IN#( ) e
pressione SELECT;
5. Selecione o número da entrada e pressione SELECT. Digite o número
desejado no teclado numérico e pressione ENTER;
6. Para alternar CONDITION entre ON e OFF, selecione ON/OFF e pressione
SELECT;
7. Se necessário, selecione TIME UNUSED; pressione SELECT e selecione T=.
Selecione o valor do tempo e pressione SELECT. Digite o tempo limite
(0.01-655.35) para a instrução WAIT e pressione ENTER;
8. Pressione ENTER para aceitar e retornar à tela do programa;
9. Pressione [INSERT], ENTER para inserir a instrução no programa.
41
Programação Intermediária Motoman DX100
6.5 DIN (Digital Input)
A instrução DIN (Digital Input) é usada para armazenar o estado de I/O em uma
variável Byte. As informações de I/O são recebidas de um CLP, chave
thumbwheel (chave hexadecimal) ou qualquer outro dispositivo de entrada. Isso
inclui I/O universais: IN#, OT#, IG#, OG#, IGH# e OGH# ou específicos: SIN# e
SOUT#, assim como qualquer outra variável Byte.
Quando a instrução DIN é executada, o controlador verifica o estado de uma
entrada ou saída e armazena o valor binário na variável Byte. Esse valor será entre
0 e 255, conteúdo este que deverá ser utilizado posteriormente no programa.
01 DIN B005 IG#(1)
Figura 6. 6: Exemplo de Programa Usando DIN
Para inserir uma instrução DIN em um programa, siga os seguintes passos:
1. Em TEACH, mova o cursor para o lado dos endereços;
2. Pressione a tecla INFORM LIST;
3. Selecione IN/OUT;
4. Selecione DIN;
5. Pressione SELECT para acessar a tela de detalhes;
6. Selecione INPUT TO, pressione SELECT, digite o número da variável Byte e
pressione ENTER;
7. Selecione INPUT FROM, selecione SELECT, e selecione IG#( ) e pressione
SELECT;
8. Selecione o número do Input Group e pressione SELECT. Digite o número do
grupo no teclado e pressione ENTER;
9. Pressione ENTER para aceitar e retornar à tela do programa;
10. Pressione [INSERT], ENTER para inserir a instrução no programa.
42
Programação Intermediária Motoman DX100
6.6 AOUT (Saída Analógica)
Em um sistema de descarga padrão cada robô envolvido no processo deve ter um
canal de saída analógico. Em um sistema de solda a arco requere dois canais
analógicos por robô. Os canais podem assumir valores entre ±14.00 VDC.
Equipamentos periféricos são acionados por esse sinal.
No exemplo abaixo, se o fluxo máximo de um aplicador de cola é 100ccm, a
instrução AOUT para 7.00 VDC faz com que o aplicador despeje 50ccm de cola.
04 AOUT AO#(1) 7.00
Figura 6. 7: Exemplo de Programa com a Instrução AOUT
Para inserir uma instrução AOUT em um programa, faça o seguinte:
1. Em TEACH, mova o cursor para o lado dos endereços;
2. Pressione a tecla INFORM LIST;
3. Selecione IN/OUT;
4. Selecione AOUT;
5. Pressione SELECT para acessar a tela de detalhes;
6. Selecione o ícone e pressione SELECT;
7. Selecione CONSTANT para o canal de saída e pressione SELECT;
8. Selecione o número do canal de saída e pressione SELECT;
9. Digite o número do canal no teclado e pressione ENTER;
10. Selecione ANALOG DATA e pressione ENTER;
11. Digite o valor da voltagem desejada e pressione ENTER;
12. Pressione ENTER para aceitar e retornar à tela do programa;
13. Pressione [INSERT], ENTER para inserir a instrução no programa.
6.7 Monitorando Saídas Analógicas
Saídas analógicas podem ser monitoradas em TEACH e em PLAY.
Para monitorar saídas analógicas, siga os seguintes passos:
1. No Main Menu, selecione IN/OUT;
2. Selecione ANALOG OUTPUT.
43
Programação Intermediária Motoman DX100
7.0 FUNÇÕES EXTRAS DE
VELOCIDADE
7.1 Traverse Run Time (TRT)
A função TRT (disponível no menu EDIT) calcula a velocidade dos pontos
marcados baseado no tempo de movimentação desejado em segundos (utiliza o
algoritmo de otimização do DX-100) . A função altera as velocidades do programa
para alcançar o tempo desejado no programa inteiro ou em uma parte dele.
NOTA: O programa selecionado deve ser executado antes da função TRT para
estabelecer um primeiro tempo de movimentação.
Para executar a função TRT, faça o seguinte:
1. Em TEACH, mova o cursor para a primeira linha que se deseja alterar a
velocidade no lado das instruções;
2. Segure SHIFT e pressione SELECT;
3. Selecione as linhas desejadas para executar a função;
NOTA: Instruções CALL e JUMP não podem ser selecionadas no passo anterior.
4. Selecione EDIT no menu superior;
5. Selecione TRT;
Figura 7. 1: Tela da Função TRT
44
Programação Intermediária Motoman DX100
6. Selecione SETTING TIME;
7. Digite o valor desejado em segundos e pressione ENTER;
8. Selecione EXEC. O tempo de movimentação é mostrado.
NOTA: Se o tempo desejado não for alcançado na primeira execução do TRT, pressione
EXEC novamente até que o resultado seja o desejado.
9. Quando terminar, selecione CANCEL para voltar para o programa.
7.2 Speed Override
Essa função faz com que todas as velocidades CONSTANTES do programa sejam
alteradas de acordo com uma porcentagem (10-150%) na execução em PLAY.
Para acessar essa função no menu UTILITY, o controlador deve estar em PLAY e
nenhum programa pode estar sendo executado.
CUIDADO! A função SPEED OVERRIDE altera as velocidades de movimentos de
programas filho e sub-rotinas, desde que esses movimentos sejam
executados.
Para usar a função SPEED OVERRIDE, faça o seguinte:
1. Em TEACH, coloque o cursor na linha a ser executada e mude para modo
PLAY;
2. Pressione o botão PLAY MODE ENABLE;
3. Selecione UTILITY nos menu superior;
4. Selecione SPEED OVERRIDE;
NOTA: Um asterisco (*) aparece ao lado de SPEED OVERRIDE quando habilitado. A
mensagem “Over-riding speed” aparece na linha de mensagem.
45
Programação Intermediária Motoman DX100
Figura 7. 2: Speed Override
5. Selecione RATIO 100% e pressione SELECT;
6. Digite a porcentagem desejada (10%-150%) e pressione ENTER;
7. Mova o cursor para MODIFY OFF e pressione SELECT para mudar para
ON;
NOTA: A opção SPEED ADJUSTMENT MODIFY [OFF] não sobrescreve os valores
das velocidades quando o botão START é pressionado, permitindo uma previsão
da nova velocidade. Deve ser usado repetidamente até que a velocidade de
execução seja aceitável.
8. Pressione START para executar o programa com a alteração na velocidade;
9. Para voltar à velocidade normal, volte para TEACH ou refaça os passos 2 e 3
para desabilitar o Speed Override.
NOTA: Se qualquer programa envolvido estiver com a opção EDIT LOCK: ON, o
SPEED OVERRIDE não pode ser executado. O alarme menor 4476 “Cannot
Edit (Edit Lock Job)” ocorrerá.
46
Programação Intermediária Motoman DX100
8.0 FUNÇÃO PASSWORD DX100
8.1 Opção de Proteção por Senha
A função Password do DX100 pode armazenas até 100 usuários e senhas com
níveis de segurança individuais. Essa função permite que um usuário logue no
controlador por vez.
Um tempo de ociosidade também pode ser configurado, para deslogar
automaticamente um usuário em modo de operação quando nenhuma tecla for
pressionada pelo período de tempo configurado.
Para logar, faça o seguinte:
1. Selecione SYSTEM INFO e LOGON;
2. Com o cursor em USER NAME pressione SELECT;
3. Digite o nome de usuário;
NOTA: Os nomes de usuário diferem letras maiúsculas e minúsculas.
4. Com o cursor em PASSWORD pressione SELECT;
5. Com o teclado numérico, digite a senha e pressione ENTER.
O usuário está logado.
Figura 8. 1: A Tela de Login para Digitar o Nome de Usuário e Senha
Para deslogar, faça o seguinte:
1. Selecione SYSTEM INFO e LOGOFF;
2. Verifique o USER NAME e selecione EXECUTE.
47
Programação Intermediária Motoman DX100
9.0 MODOS ESPECIAIS
Existem vários modos de executar um programa em PLAY ou em TEACH com
limitações ou restrições para que seja mais fácil encontrar os erros ou por razões
de segurança.
O menu SETUP SPECIAL RUN, localizado no menu UTILITY, pode limitar a
velocidade de execução de um programa, não permitir a execução de instruções
DEVICE, etc.
9.1 Special Run em Modo Play
Special Run Mode Speed Device
Low Speed Start Cursored Step at 10% Max no DEVICE
Speed Limit Limit 25% Max / Prog. Spd DEVICE!
Dry-Run Speed CONSTANT 10% Max no DEVICE
Check-Run Prog. Spd no DEVICE
Machine Lock Prog. Spd, no MOTION no DEVICE
Figura 9. 1: Special Run Disponíveis
Para habilitar um modo de execução especial, faça o seguinte:
1. Selecione o modo PLAY;
2. Na tela de programação, selecione UTILITY no menu superior;
3. Selecione SETUP SPECIAL RUN;
4. Coloque o cursor sobre o modo desejado e pressione SELECT para habilitar
ou desabilitar;
5. Clique em COMPLETE para retornar à tela de programação.
NOTA: Todos os modos de execução especiais estão desabilitados quando o controlador
é energizado. Cada modo tem que ser habilitado individualmente quando
desejado.
9.1.1 Low Speed Start
O modo Low Speed Start move o robô para o ponto selecionado a uma velocidade
constante de 10% da velocidade máxima (independente da velocidade
programada) sem executar qualquer instrução externa e pára. O modo é
automaticamente desabilitado e, ao pressionar novamente o botão START, o
programa é executado normalmente.
48
Programação Intermediária Motoman DX100
Essa função permite um reinício de ciclo seguro do meio de um programa. Além
disso, depois de uma parada de emergência, o operador pode querer reiniciar o
programa do ponto anterior de onde o mesmo foi interrompido (usando o cursor
em TEACH) ao invés de continuar a mesma trajetória de antes da emergência.
NOTA: O pendant do robô mostra a mensagem “SLOW SPEED mode” na linha de
mensagens quando este modo está ativo.
9.1.2 Speed Limit
O modo Speed Limit limita todas as velocidades em 25% da velocidade máxima.
Movimentos que não excedam essa velocidade são executados na velocidade
programada.
Movimentos com velocidade maiores que o limite serão executados da seguinte
forma:
VJ = 25.00;
V=375.0 mm/sec;
VR=90.0 deg/sec.
CUIDADO! Instruções externas são executadas; por isso, ativar apenas o modo
SPEED LIMIT em programas que executam instruções DEVICE com
velocidades maiores que o limite de 25% não é recomendado.
Combinar os modos CHECK RUN e SPEED LIMIT faz com que o robô se
movimente devagar e não execute nenhuma instrução DEVICE.
NOTA: O pendant mostra a mensagem “Speed Limit mode” na linha de mensagens
quando o modo SPEED LIMIT está habilitado.
9.1.3 Dry-Run Speed
O modo Dry-Run executa o programa inteiro sem executar instruções DEVICE.
Além disso, todos os movimentos são executados com um limite de 10% da
velocidade máxima (VJ=10.00, V=150.0mm/sec e VR=36.0deg/sec).
Esse modo pode ser útil para movimentar o robô após manutenção da graxa do
manipulador.
NOTA: O pendant mostra a mensagem “Dry-Run mode” na linha de mensagens
49
Programação Intermediária Motoman DX100
quando o modo Dry-run está habilitado.
9.1.4 Check-Run
O modo Check-Run faz com que o programa seja executado na velocidade
programada, sem as instruções DEVICE (ARCON, GUNON, LASERON,etc.). A
única instrução desse tipo que é executado é a HAND ON/OFF.
Esse modo é usado para checar visualmente a trajetória do programa na
velocidade programada sem que o processo seja executado.
NOTA: O pendant mostra a mensagem “Check Mode” quando o modo Check está
habilitado.
9.1.5 Machine Lock
O modo Machine Lock executa a parte lógica do programa, sem movimentos ou
instruções DEVICE (exceto a instrução HAND ON/OFF). Esse modo é usado
normalmente para testar a comunicação entre o controlador e equipamentos
externos, assim como para verificar todos os tipos de alarme além do Internal
Shock Sensor para Collision Detect.
NOTA: O pendant mostra a mensagem “Machine Lock Mode” na linha de mensagem
quando o modo Machine Lock está habilitado.
9.2 Special Run em Modo Teach
Modos de execução especiais também estão disponíveis no modo TEACH. Eles
permitem que o modo INTERLOCK + TEST START seja executado com as
limitações nas instruções DEVICE e velocidade de no máximo 25% da máxima.
Para habilitar um modo de execução em TEACH, faça o seguinte:
1. Selecione o modo TEACH;
2. Na tela de programação, selecione UTILITY no menu superior;
3. Selecione SETUP SPECIAL RUN;
4. Coloque o cursor sobre o modo desejado e pressione SELECT para habilitar
ou desabilitar;
5. Clique em COMPLETE para retornar à tela de programação.
NOTA: O modo INTERLOCK+TEST START executa o programa com os modos
habilitados. Os modos habilitados em TEACH permanecem habilitados até que
sejam desabilitados.
50
Programação Intermediária Motoman DX100
9.2.1 Machine Lock em Teach
O modo Machine Lock em TEACH executa a parte lógica do programa, sem
movimentos ou instruções DEVICE (exceto a instrução HAND ON/OFF). Esse
modo é usado normalmente para testar a comunicação entre o controlador e
equipamentos externos, assim como para verificar todos os tipos de alarme além
do Internal Shock Sensor para Collision Detect.
9.2.2 Weave Prohibit em Teach
O modo Weave Prohibit não permite que as intruções WVON WEV#( ) e WVOF
sejam executadas em TEACH. Isso permite que trajetórias interpoladas sejam
checadas sem que a ferramenta faça o movimento de WEAVING programado.
51
Programação Intermediária Motoman DX100
10.0 USER FRAMES
Um sistema de coordenada personalizado, que retrata exatamente o plano de
trabalho do robô, é muito útil durante a programação de uma trajetória. O DX100
suporta até 63 sistemas de coordenadas definidos pelo usuário, chamados de User
Frames (UF #01-63)
Um User Frame é um plano definido pelos pontos ORG, XX e XY:
• ORG A posição de origem do user frame;
• XX Um ponto na direção positiva do eixo X;
• XY Um ponto no lado Y positivo do plano.
Figura 10. 1: Pontos de um User Frame
Com essas informações, o controlador cria um sistema de coordenadas XYZ.
O local de gravação do ponto ORG é de escolha do programador.
O vetor criado entre os pontos ORG e XX determina a direção X+ do sistema.
O ponto XY, juntamente com os pontos ORG e XX, determinam o plano do user
frame. A direção Z+ é perpendicular ao plano XY.
CUIDADO! O operador deve confirmar qual User Frame será usado antes de
movimentar o robô na coordenada USER.
Figura 10. 2: Exemplo de User Frames
52
Programação Intermediária Motoman DX100
10.1 Criando um User Frame
Para criar um User Frame, siga o seguinte procedimento:
1. Em TEACH, no MAIN MENU, selecione ROBOT;
2. Selecione USER COORDINATE;
3. Selecione o User Frame desejado com o cursor e pressione SELECT;
Figura 10. 3: Coordenadas de Usuário
NOTA: Frames não definidos são indicados por um círculo vazio. Frames previamente
definidos são indicados por um círculo preenchido (●).
4. Selecione com o cursor “SET POS: ORG”;
5. Selecione qualquer coordenada (menos USER). Energize os motores e
movimente o TCP para o ponto ORG do sistema a ser definido;
6. Com motores energizados, pressione MODIFY, ENTER. O círculo do ponto
ORG é preenchido;
Figura 10. 4: Definindo um User Frame
53
Programação Intermediária Motoman DX100
7. Pressione SELECT, selecione XX para poder modificá-lo;
8. Movimente o TCP até o ponto XX, seguindo o sentido X+ no coordenada;
9. Com os motores energizados, pressione MODIFY, ENTER. O círculo do
ponto XX será preenchido;
10. Pressione SELECT, selecione XY para modificá-lo;
11. Movimente o TCP do robô para qualquer ponto na direção Y+ para
determinar o plano XY e a direção Z+;
12. Com os motores energizados, pressione MODIFY, ENTER. O círculo do XY
será preenchido;
13. Com os 03 pontos gravados, selecione COMPLETE;
14. Para nomear o user frame, selecione [name área] e pressione SELECT;
15. Digite o nome desejado, até 16 caracteres, e pressione ENTER.
NOTA: Para verificar os pontos marcados em ORG, XX e XY, selecione o ponto
desejado em “SET POS:” (o cursor piscará se o robô não estiver na posição
gravada), pressione FWD até que o robô chegue na posição desejada e o cursor
pare de piscar.
10.2 Selecionando um User Frame
Com o user frame criado, ele pode ser ativado para movimentação selecionando o
mesmo na lista de USER COORD SELECT. Este será o USER COORD ativo até
que o número seja mudado.
Para acessar a USER COORD SELECT LIST, faça o seguinte:
1. Selecione User Coordinates com a tecla COORD . O ícone de status
mostra o sistema de coordenada ativo;
Para alterar o sistema de coordenada ativo, siga os passos abaixo.
2. Pressione e segure a tecla SHIFT e pressione a tecla COORD + .A
lista de coordenadas de usuário é mostrada;
Figura 10. 5: Lista de Coordenadas de Usuário
54
Programação Intermediária Motoman DX100
3. Selecione o sistema de coordenada desejado. Esse sistema agora está
selecionado para uso;
4. Para fechar a lista, pressione e segure SHIFT e depois pressione COORD para
retornar à tela de programação.
10.3 Posição Atual em USER
Para mostrar a posição atual do TCP em coordenadas XYZ do user frame
desejado, faça o seguinte:
1. Selecione ROBOT no Main Menu;
2. Selecione CURRENT POSITION;
3. Pressione SELECT. Selecione USER e pressione SELECT novamente;
4. Digite o número do User Frame desejado (na linha User_coord_no.=) e
pressione ENTER.
55
Programação Intermediária Motoman DX100
11.0 TOOL CONTROL POINT (TCP)
Cada TCP no DX100 é armazenado como 6 elementos representando um
deslocamento em relação à flange do robô em X,Y,Z em milímetros e Rx,Ry,Rz
em graus. O DX100 pode armazenar até 64 TCPs diferentes.
Um único robô pode precisar apenas de uma ferramenta para executar a aplicação,
conseqüentemente apenas um TCP, como uma tocha de solda por exemplo. Em
uma célula com vários robôs e ferramentas, mais TCPs são necessários.
A numeração dos TCPs segue a seguinte regra:
• Tool No. 00 Ferramenta padrão para robôs com apenas 01 TCP;
• Tool No. 01-63 Ferramentas Adicionais.
11.1 Lista de Ferramentas e Seleção
Configurar Tool No. Switch para PERMIT em TEACHING CONDITION permite
a configuração e seleção de até 64 arquivos de TCP diferentes.
NOTA: Selecionando PROHIBIT mantém a última ferramenta selecionada, mas a
calibração só fica disponível para a de número 00.
11.1.1 Selecionar o número da Ferramenta
Para permitir ou não a seleção de múltiplas ferramentas, faça o seguinte:
1. Selecione SET-UP a partir do Main Menu;
2. Selecione TEACHING CONDITION;
3. Selecione TOOL NO. SWITCH, pressione SELECT e escolha PERMIT ou
PROHIBIT.
Figura 11. 1: Seleção de Ferramentas Múltiplas
56
Programação Intermediária Motoman DX100
11.1.2 Selecionando uma ferramenta
Para selecionar uma ferramenta da lista de ferramentas, faça o seguinte:
1. Selecione qualquer COORD (exceto USER) com a tecla COORD ;
2. Segure , pressione . Selecione a ferramenta desejada.
3. Pressione SHIFT + COORD para fechar a lista.
Figura 11. 2: Seleção de Ferramentas
Todas as instruções de movimentação são referenciadas por um TCP. Essa
referência é mostrada na parte superior da tela de programação.
Figura 11. 3: TCP Referência de cada Movimento
Uma boa calibração de TCP é importante para operações precisas de interpolação
em MOVL, MOVC e MOVS.
Isso também inclui a precisão das tags PL e CR e a velocidade correta de TCP
expressa na instrução de movimentação (V e VR).
Durante o movimento do robô em RECT, TOOL ou USER, o controlador
referencia a ferramenta para movimento do TCP.
Existem dois métodos de configurar um TCP:
• Definição MANUAL de cada um dos 06 elementos (X,Y,Z,Rx,Ry e Rz)
• Calibração apenas dos pontos X,Y e Z.
57
Programação Intermediária Motoman DX100
11.2 Entrada de Dados de TCP Manual
A entrada de dados manual de TCP é normalmente usada para alterar os dados Rx,
Ry e Rz em graus depois da calibração dos pontos X, Y e Z em milímetros.
Contudo, é possível configurar manualmente as coordenadas X,Y e Z caso se
tenha esses dados medidos precisamente anteriormente.
Figura 11. 4: Digitando as Dimensões das Ferramentas
Para entrar com as dimensões da ferramenta manualmente, faça o seguinte:
1. Em TEACH, a partir do Main Menu, selecione ROBOT;
2. Selecione TOOL. Se a lista aparecer, selecione a ferramenta; pressione
SELECT;
3. Mova o cursor para a primeira dimensão da ferramenta a ser modificada e
pressione SELECT;
58
Programação Intermediária Motoman DX100
4. Digite o valor da dimensão ou ângulo (referente à flange do robô) no teclado
numérico e pressione ENTER;
5. Repita os passos 3 e 4 para cada dimensão a ser alterada.
Agora o TCP está definido. Para garantir a precisão da ferramenta, use as teclas
Rx, Ry e Rz em coordenada TOOL para rotacionar a ferramenta em volta do TCP.
O TCP não deve se mover durante a rotação. Se houver alguma movimentação,
algum dos pontos (X,Y ou Z) estão imprecisos.
Além disso, confira as direções de operação de X, Y e Z em coordenada TOOL; o
sentido Z+ deve estar alinhado com a direção da aplicação. Por exemplo, ao invés
do sentido Z+ padrão da flange, para uma tocha de solda, o valor Ry=-60° foi
digitado na coordenada da ferramenta B.
Se a movimentação com as teclas +/- X,Y,Z não for como desejado, então Rx,Ry
ou Rz estão com valores incorretos.
11.3 Calibração de Ferramentas
O menu UTILITY possui um método automático que calcula as dimensões X, Y e
Z da ferramenta a partir de 5 pontos de referência ensinados com uma variedade
de orientações.
Figura 11. 5: Exemplo dos 05 pontos de Referência para Calibração
A calibração resultante representa os deslocamentos, em milímetros, da flange do
robô (eixo T) até o TCP desejado.
Para calibrar as dimensões X, Y, e Z do TCP, siga os seguintes passos:
1. Selecione um ponto fixo na célula do robô;
2. Em TEACH, no Main Menu, selecione ROBOT;
59
Programação Intermediária Motoman DX100
3. Selecione TOOL;
4. Selecione UTILITY no menu superior;
5. Escolha CALIBRATION;
NOTA: Para limpar o conteúdo de pontos previamente gravados, selecione DATA no
menu superior e selecione CLEAR DATA. Clique em YES na janela que surge.
6. Energize os motores e escolha qualquer coordenada (menos TOOL) para
movimentar o TCP desejado para o ponto fixo, pressione MODIFY e
ENTER. O primeiro ponto, TC1, está gravado e o círculo preenchido.
Figura 11. 6: Gravando os Pontos TC1 a TC5 de um TCP
7. Pressione SELECT. Selecione o próximo ponto TC2;
8. Repita os passos 6 e 7 até gravar o ponto TC5. Varie a orientação da
ferramenta o máximo possível na gravação dos pontos;
NOTA: Para verificar o ponto que um TC foi gravado, use a tecla FWD para mover
para o ponto desejado. Quando o cursor parar de piscar o robô estará na
posição gravada.
9. Depois que todos os pontos forem gravados selecione COMPLETE.
Depois da calibração, os novos dados de XYZ da ferramenta são mostrados.
60
Programação Intermediária Motoman DX100
Figura 11. 7: Tela de Dados de Ferramenta
10. Digite manualmente os valores de Rx, Ry e Rz em graus.
Para verificar a precisão dos dados, siga os passos 11 até o 14:
11. Pressione a tecla COORD até que a coordenada seja selecionada na
linha de status. Se o sistema trabalhar com apenas um ferramenta, pule para o
passo 13; Se o sistema usa mais de uma ferramenta, pressione SHIFT +
COORD para mostrar a lista de ferramentas e selecione a ferramenta
recentemente calibrada. Pressione SHIFT + COORD para sair da lista.
12. Para garantir a precisão do TCP, faça com que o robô rotacione a
ferramenta em volta do TCP gravado com as teclas Rx, Ry e Rz. O ponto deve
ficar fixo durante a rotação;
13. Verifique as direções de X, Y e Z em coordenada TOOL;
14. A direção Z+ deve estar na direção da aplicação (direção do arame de
solda, aproximação da garra de manipulação, deposição de material, direção do
jato para corte com água, plasma, etc.)
Para esse ajuste, os valores de Rx, Ry e Rz devem ser digitados manualmente.
CUIDADO! Os dados de ferramenta são ativados imediatamente. Antes de
executar um programa, utilize os métodos FWD/BACK e TEST START
para confirmar a trajetória e modificar os pontos necessários.
Lembre-se de que os pontos gravados anteriormente em PULSE
continuarão movimentando o robô da mesma forma. Entretanto, o
novo TCP será controlado durante as interpolações das trajetórias
dos movimentos MOVL, MOVC e MOVS.
61