Você está na página 1de 70

Treinamento

em Programação de
Nível Intermediário
para o Controlador
DX-100
Curso: TP-12

As informações contidas neste manual são de uso exclusivo da


MOTOMAN INC, não podem ser copiadas, reproduzidas e
transmitidas por qualquer meio sem autorização documentada pela
MOTOMAN ROBÓTICA DO BRASIL.

Revisão Técnica: Rogério Vitalli (Eng. Mecatrônico, Msc)


rogerio.vitalli@motoman.com.br

São Bernardo do Campo - SP


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

PREFÁCIO

PROPÓSITO DESTE MANUAL

Os manuais do Centro de Educação Técnica da Motoman não podem ser


utilizados como ferramentas para treinamentos particulares. Esse manual deve ser
usado em conjunto com o curso de Programação Básica DX100

QUEM DEVE USAR ESSE MANUAL

Esse manual é fornecido apenas para alunos do curso de Programação


Intermediária do controlador DX100. Não use esse manual como referência se
você não tiver feito o curso e recebido o certificado do instrutor do Centro de
Educação Técnica da Motoman.

COMO USAR ESSE MANUAL

Esse manual de treinamento foi criado de acordo com a estrutura diária do curso
de Programação Intermediária DX100. Foi criado para ajudar os estudantes a
entender as operações básicas e funções do controlador DX100 e um robô
Motoman correspondente. Use esse manual como um guia passo-a-passo através
do curso.

AVISO LEGAL

As informações contidas nesse manual são baseadas na hipótese de que o


controlador DX100 está no modo de edição e usando linguagem Standard. Fique
ciente de que os atalhos apresentados no manual podem variar devido à outras
opções, versão de software e configurações.

A informação contida neste documento é de propriedade da Motoman Robótica do


Brasil e não pode ser copiada, reproduzida ou transmitida para terceiros sem a
autorização expressa da Motoman.

Devido à constante atualização de nossos produtos, nos reservamos do direito de


mudar especificações sem aviso prévio. YASNAC e Motoman são marcas
registradas da YASKAWA Electric Manufacturing.

NOTA: Esse manual não pode ser revendido e não pode ser vendido
separadamente. Todos os manuais de treinamento desenvolvidos pelo Centro de
Educação Técnica Motoman são registrados. Não copie qualquer parte deste
manual.

Programação Intermediária do DX-100 Página 2 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

SUMÁRIO
1.0 INFORM LIST ............................................................................ 7
1.1 Tecla INFORM LIST .................................................................................................. 7
1.2 Nível de Linguagem............................................................................................... 8
2.0 INSTRUÇÕES DE CONTROLE ................................................ 9
2.1 CALL e RET .......................................................................................................... 9
2.1.1 Conectando Programas com CALL ................................................................................. 9
2.1.2 Direct Open .................................................................................................................... 10
2.1.3 Uso da Instrução RET .................................................................................................... 11
2.1.4 Seqüência de Programas Filhos ..................................................................................... 12
2.2 JUMP*LABEL e *LABEL ...................................................................................... 13
2.2.1 JUMP para Ignorar Linhas ............................................................................................. 13
2.2.2 JUMP para Criar um Loop ............................................................................................. 14
2.2.3 Uso da Instrução *LABEL............................................................................................. 15
2.3 JUMP JOB ........................................................................................................... 15
2.4 COMMENT .......................................................................................................... 16
2.5 TIMER (Temporizador) ........................................................................................ 17
2.6 PAUSE................................................................................................................. 17
3.0 IF e IF-THEN .......................................................................... 18
3.1 Condição IF Baseada em Entradas (IN#) ............................................................ 19
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

Programação Intermediária do DX-100 Página 3 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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 FUNÇÃO PASSWORD DX100 ............................................... 47
8.1 Opção de Proteção por Senha ............................................................................ 47
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 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 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 do DX-100 Página 4 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

ÍNDICE DE FIGURAS

Figura 1. 1: Inform List ........................................................................................................................ 7


Figura 1. 2: Menu CONTROL da Inform List ..................................................................................... 7

Figura 2. 1: Conectando Programas com a Instrução CALL ............................................................... 9


Figura 2. 2: Abrindo um Programa Filho com Direct Open .............................................................. 10
Figura 2. 3: Instrução RET no Programa Filho .................................................................................. 11
Figura 2. 4: Enfileirando Programas com CALL............................................................................... 12
Figura 2. 5: Seqüência de Programas com o Programa Filho Ativo .................................................. 12
Figura 2. 6: Jump para Saltar Linhas ................................................................................................. 13
Figura 2. 7: Jump para Criação de Loop ............................................................................................ 14
Figura 2. 8: Instrução Jump Job ......................................................................................................... 15

Figura 3. 1: Programa com Várias Funções “IF” ............................................................................... 18


Figura 3. 2: Exemplo de IF Baseado em uma Entrada Universal ...................................................... 19
Figura 3. 3: Tela de Detalhes para CALL IF IN# ............................................................................... 19
Figura 3. 4: Exemplo de IF baseado em um Grupo de Entradas Universais ..................................... 20
Figura 3. 5: Exemplo de IF com Variável .......................................................................................... 20
Figura 3. 6: Alterando Valores Numéricos na Linha de Buffer.......................................................... 22
Figura 3. 7: Acesso a Tela de Detalhes da Função “IF” ..................................................................... 22
Figura 3. 8: Condição com Status de Entradas .................................................................................. 24
Figura 3. 9: Condicional com Status de Grupo de Entradas .............................................................. 24
Figura 3. 10: Condição com uma Variável Byte ................................................................................ 24
Figura 3. 11: Várias Instruções de Controle ....................................................................................... 25

Figura 4. 1: Variáveis Aritméticas ...................................................................................................... 26


Figura 4. 2: Exemplo com Variável Byte ........................................................................................... 27
Figura 4. 3: Instruções Aritméticas .................................................................................................... 28
Figura 4. 4: Exemplo de Programa com INC..................................................................................... 28
Figura 4. 5: Exemplo de Programa usando DEC ............................................................................... 29
Figura 4. 6: Exemplo de Instrução SET com Constante .................................................................... 30
Figura 4. 7: Exemplo de Instrução SET com Variáveis ..................................................................... 31
Figura 4. 8: Exemplo de Programa com Instrução CLEAR .............................................................. 31

Figura 5. 1: Tela de Entradas Universais SIMPLE e DETAIL .......................................................... 33


Figura 5. 2: Simulação de Entradas ................................................................................................... 34
Figura 5. 3: Verificação de Simulação ............................................................................................... 35
Figura 5. 4: Tela DETAIL para Saídas Universais ............................................................................. 36
Figura 5. 5: Valores de um Grupo de 8 Bits em Binário .................................................................... 37
Figura 5. 6: Telas de Entrada e Saída Universal ................................................................................ 37

Figura 6. 1: Exemplo de Instrução DOUT ......................................................................................... 38


Figura 6. 2: Exemplo de Programa Usando DOUT para um Grupo .................................................. 39
Figura 6. 3: DOUT com uma Variável Byte ...................................................................................... 39
Figura 6. 4: Exemplo de Programa com Instruções PULSE .............................................................. 40
Figura 6. 5: Exemplo de Instruções WAIT......................................................................................... 41

Programação Intermediária do DX-100 Página 5 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

Figura 6. 6: Exemplo de Programa Usando DIN ............................................................................... 42


Figura 6. 7: Exemplo de Programa com a Instrução AOUT .............................................................. 43

Figura 7. 1: Tela da Função TRT........................................................................................................ 44


Figura 7. 2: Speed Override ............................................................................................................... 46

Figura 8. 1: A Tela de Login para Digitar o Nome de Usuário e Senha............................................. 47

Figura 9. 1: Special Run Disponíveis................................................................................................. 48

Figura 10. 1: Pontos de um User Frame............................................................................................. 52


Figura 10. 2: Exemplo de User Frames.............................................................................................. 52
Figura 10. 3: Coordenadas de Usuário ............................................................................................... 53
Figura 10. 4: Definindo um User Frame ............................................................................................ 53
Figura 10. 5: Lista de Coordenadas de Usuário ................................................................................. 54

Figura 11. 1: Seleção de Ferramentas Múltiplas ................................................................................ 56


Figura 11. 2: Seleção de Ferramentas ................................................................................................ 57
Figura 11. 3: TCP Referência de cada Movimento ............................................................................ 57
Figura 11. 4: Digitando as Dimensões das Ferramentas .................................................................... 58
Figura 11. 5: Exemplo dos 05 pontos de Referência para Calibração ............................................... 59
Figura 11. 6: Gravando os Pontos TC1 a TC5 de um TCP ................................................................ 60
Figura 11. 7: Tela de Dados de Ferramenta ....................................................................................... 61

Programação Intermediária do DX-100 Página 6 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 7 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 8 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 9 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 10 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

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.

Programação Intermediária do DX-100 Página 11 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

2.1.4 Seqüê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

Programação Intermediária do DX-100 Página 12 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

CUIDADO! Garanta que o caminho do robô esteja livre caso as linhas sejam
ignoradas.

Programação Intermediária do DX-100 Página 13 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 14 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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;
2. Pressione a tecla INFORM LIST;

Programação Intermediária do DX-100 Página 15 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 16 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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. Selecione PAUSE;
5. Pressione [INSERT], ENTER para inserir o PAUSE no programa.

Programação Intermediária do DX-100 Página 17 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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”

Programação Intermediária do DX-100 Página 18 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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
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.
Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 20 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 21 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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”

Programação Intermediária do DX-100 Página 22 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 23 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 24 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 25 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 26 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 27 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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:

Programação Intermediária do DX-100 Página 28 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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;

Programação Intermediária do DX-100 Página 29 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 30 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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;

Programação Intermediária do DX-100 Página 31 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 32 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 33 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 34 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

Quando um programa é executado em TEST START ou em PLAY com qualquer


entrada simulada, o controlador perguntará se o programa deve mesmo ser
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.

Programação Intermediária do DX-100 Página 35 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 36 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 37 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.
Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 39 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 40 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 41 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 42 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 43 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 44 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 45 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 46 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 47 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 48 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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


quando o modo Dry-run está habilitado.

Programação Intermediária do DX-100 Página 49 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 50 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 51 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 52 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 53 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 54 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 55 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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

Programação Intermediária do DX-100 Página 56 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 57 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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;

Programação Intermediária do DX-100 Página 58 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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;

Programação Intermediária do DX-100 Página 59 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 60 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

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.

Programação Intermediária do DX-100 Página 61 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

ANEXOS
Soluções propostas pela MOTOMAN ROBÓTICA DO BRASIL

Programação Intermediária do DX-100 Página 62 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

Programação Intermediária do DX-100 Página 63 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

Programação Intermediária do DX-100 Página 64 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

Programação Intermediária do DX-100 Página 65 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

Programação Intermediária do DX-100 Página 66 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

Programação Intermediária do DX-100 Página 67 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

Programação Intermediária do DX-100 Página 68 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

Programação Intermediária do DX-100 Página 69 Curso: TP-12


Via Anchieta Km 22,5 - № 129, São Bernardo do Campo
CEP: 09823-000, Vila Marchi, Fone: (11) 4352-3002

Programação Intermediária do DX-100 Página 70 Curso: TP-12