Baixe o app para aproveitar ainda mais
Prévia do material em texto
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. Treinamento em Programação de Nível Intermediário para o Controlador DX-100 Curso: TP-12 Programação Intermediária do DX-100 Página 2 Curso: TP-12 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 3 Curso: TP-12 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 ..................................................................................... 13 2.2 JUMP*LABEL e *LABEL ...................................................................................... 14 2.2.1 JUMP para Ignorar Linhas ............................................................................................. 14 2.2.2 JUMP para Criar um Loop ............................................................................................. 16 2.2.3 Uso da Instrução *LABEL ............................................................................................. 17 2.3 JUMP JOB ........................................................................................................... 17 2.4 COMMENT .......................................................................................................... 18 2.5 TIMER (Temporizador) ........................................................................................ 19 2.6 PAUSE................................................................................................................. 19 3.0 IF e IF-THEN .......................................................................... 20 3.1 Condição IF Baseada em Entradas (IN#) ............................................................ 21 3.2 “IF” Baseada em Input Group .............................................................................. 23 3.3 “IF” Baseada em Variável .................................................................................... 23 3.4 Editando uma Condição “IF” Existente ................................................................ 24 3.5 Removendo um Tag “IF” ...................................................................................... 26 3.6 Condições com IN#( ), IG#( ) ou VAR .................................................................. 27 3.7 IFTHEN; ELSEIF; ELSE e ENDIF ....................................................................... 28 4.0 VARIÁVEIS E INSTRUÇÕES ARITMÉTICAS ........................ 29 4.1 Variáveis Aritméticas ........................................................................................... 29 4.1.1 Visualizando variáveis aritméticas ................................................................................. 29 4.1.2 Editando Variáveis ......................................................................................................... 30 4.2 Instruções Aritméticas ......................................................................................... 30 4.2.1 INC (Incremento) ........................................................................................................... 31 4.2.2 DEC (Decrementar) ....................................................................................................... 32 4.2.3 SET................................................................................................................................. 33 4.2.4 CLEAR........................................................................................................................... 34 5.0 MONITORANDO ENTRADAS E SAÍDAS .............................. 36 5.1 Monitorando Entradas Universais ........................................................................ 36 5.2 Monitorando Saídas Universais ........................................................................... 38 5.3 Status Binário e Grupos de I/O ............................................................................ 40 Programação Intermediária do DX-100 Página 4 Curso: TP-12 6.0 INSTRUÇÕES DE I/O ............................................................. 41 6.1 DOUT OT#( ) Saída Digital .................................................................................. 41 6.2 DOUT OG#( ) Saída Digital de Grupos ................................................................ 42 6.3 PULSE OT#( ) ou OG#( ) .................................................................................. 43 6.4 WAIT.................................................................................................................... 44 6.5 DIN (Digital Input) ................................................................................................ 45 6.6 AOUT (Saída Analógica) ..................................................................................... 46 6.7 Monitorando Saídas Analógicas .......................................................................... 46 7.0 FUNÇÕES EXTRAS DE VELOCIDADE ................................. 47 7.1 Traverse Run Time (TRT) .................................................................................... 47 7.2 Speed Override ...................................................................................................48 8.0 FUNÇÃO PASSWORD DX100 ............................................... 50 8.1 Opção de Proteção por Senha ............................................................................ 50 9.0 MODOS ESPECIAIS ............................................................... 51 9.1 Special Run em Modo Play ................................................................................. 51 9.1.1 Low Speed Start ............................................................................................................. 51 9.1.2 Speed Limit .................................................................................................................... 52 9.1.3 Dry-Run Speed ............................................................................................................... 52 9.1.4 Check-Run ..................................................................................................................... 53 9.1.5 Machine Lock ................................................................................................................ 53 9.2 Special Run em Modo Teach ............................................................................... 53 9.2.1 Machine Lock em Teach ................................................................................................ 54 9.2.2 Weave Prohibit em Teach ............................................................................................... 54 10.0 USER FRAMES..................................................................... 55 10.1 Criando um User Frame ...................................................................................... 56 10.2 Selecionando um User Frame ............................................................................. 57 10.3 Posição Atual em USER ...................................................................................... 58 11.0 TOOL CONTROL POINT (TCP) ............................................ 59 11.1 Lista de Ferramentas e Seleção .......................................................................... 59 11.1.1 Selecionar o número da Ferramenta ........................................................................... 59 11.1.2 Selecionando uma ferramenta .................................................................................... 60 11.2 Entrada de Dados de TCP Manual ...................................................................... 61 11.3 Calibração de Ferramentas ................................................................................. 62 Programação Intermediária do DX-100 Página 5 Curso: TP-12 ÍNDICE DE FIGURAS Figura 1. 1: Inform List ........................................................................................................................ 7 Figura 1. 2: Menu CONTROL da Inform List ..................................................................................... 8 Figura 2. 1: Conectando Programas com a Instrução CALL ............................................................. 10 Figura 2. 2: Abrindo um Programa Filho com Direct Open .............................................................. 11 Figura 2. 3: Instrução RET no Programa Filho .................................................................................. 11 Figura 2. 4: Enfileirando Programas com CALL ............................................................................... 13 Figura 2. 5: Seqüência de Programas com o Programa Filho Ativo .................................................. 14 Figura 2. 6: Jump para Saltar Linhas ................................................................................................. 14 Figura 2. 7: Jump para Criação de Loop ............................................................................................ 16 Figura 2. 8: Instrução Jump Job ......................................................................................................... 17 Figura 3. 1: Programa com Várias Funções “IF” ............................................................................... 20 Figura 3. 2: Exemplo de IF Baseado em uma Entrada Universal ...................................................... 21 Figura 3. 3: Tela de Detalhes para CALL IF IN# ............................................................................... 21 Figura 3. 4: Exemplo de IF baseado em um Grupo de Entradas Universais ..................................... 23 Figura 3. 5: Exemplo de IF com Variável .......................................................................................... 23 Figura 3. 6: Alterando Valores Numéricos na Linha de Buffer .......................................................... 25 Figura 3. 7: Acesso a Tela de Detalhes da Função “IF” ..................................................................... 25 Figura 3. 8: Condição com Status de Entradas .................................................................................. 27 Figura 3. 9: Condicional com Status de Grupo de Entradas .............................................................. 27 Figura 3. 10: Condição com uma Variável Byte ................................................................................ 27 Figura 3. 11: Várias Instruções de Controle ....................................................................................... 28 Figura 4. 1: Variáveis Aritméticas ...................................................................................................... 29 Figura 4. 2: Exemplo com Variável Byte ........................................................................................... 30 Figura 4. 3: Instruções Aritméticas .................................................................................................... 31 Figura 4. 4: Exemplo de Programa com INC ..................................................................................... 31 Figura 4. 5: Exemplo de Programa usando DEC ............................................................................... 32 Figura 4. 6: Exemplo de Instrução SET com Constante .................................................................... 33 Figura 4. 7: Exemplo de Instrução SET com Variáveis ..................................................................... 34 Figura 4. 8: Exemplo de Programa com Instrução CLEAR .............................................................. 34 Figura 5. 1: Tela de Entradas Universais SIMPLE e DETAIL .......................................................... 36 Figura 5. 2: Simulação de Entradas ................................................................................................... 37 Figura 5. 3: Verificação de Simulação ............................................................................................... 38 Figura 5. 4: Tela DETAIL para Saídas Universais ............................................................................. 39 Figura 5. 5: Valores de um Grupo de 8 Bits em Binário .................................................................... 40 Figura 5. 6: Telas de Entrada e Saída Universal ................................................................................ 40 Figura 6. 1: Exemplo de Instrução DOUT ......................................................................................... 41 Figura 6. 2: Exemplo de Programa Usando DOUT para um Grupo .................................................. 42 Programação Intermediária do DX-100 Página 6 Curso: TP-12 Figura 6. 3: DOUT com uma Variável Byte ...................................................................................... 42 Figura 6. 4: Exemplo de Programa com Instruções PULSE .............................................................. 43 Figura 6. 5: Exemplo de Instruções WAIT......................................................................................... 44 Figura 6. 6: Exemplo de Programa Usando DIN ...............................................................................45 Figura 6. 7: Exemplo de Programa com a Instrução AOUT .............................................................. 46 Figura 7. 1: Tela da Função TRT ........................................................................................................ 47 Figura 7. 2: Speed Override ............................................................................................................... 49 Figura 8. 1: A Tela de Login para Digitar o Nome de Usuário e Senha ............................................. 50 Figura 9. 1: Special Run Disponíveis................................................................................................. 51 Figura 10. 1: Pontos de um User Frame............................................................................................. 55 Figura 10. 2: Exemplo de User Frames .............................................................................................. 55 Figura 10. 3: Coordenadas de Usuário ............................................................................................... 56 Figura 10. 4: Definindo um User Frame ............................................................................................ 56 Figura 10. 5: Lista de Coordenadas de Usuário ................................................................................. 57 Figura 11. 1: Seleção de Ferramentas Múltiplas ................................................................................ 59 Figura 11. 2: Seleção de Ferramentas ................................................................................................ 60 Figura 11. 3: TCP Referência de cada Movimento ............................................................................ 60 Figura 11. 4: Digitando as Dimensões das Ferramentas .................................................................... 61 Figura 11. 5: Exemplo dos 05 pontos de Referência para Calibração ............................................... 62 Figura 11. 6: Gravando os Pontos TC1 a TC5 de um TCP ................................................................ 63 Figura 11. 7: Tela de Dados de Ferramenta ....................................................................................... 64 Programação Intermediária do DX-100 Página 7 Curso: TP-12 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. Programação Intermediária do DX-100 Página 8 Curso: TP-12 Figura 1. 2: Menu CONTROL da Inform List 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 9 Curso: TP-12 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. Programação Intermediária do DX-100 Página 10 Curso: TP-12 Figura 2. 1: Conectando Programas com a Instrução CALL 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. Programação Intermediária do DX-100 Página 11 Curso: TP-12 Figura 2. 2: Abrindo um Programa Filho com Direct Open 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! Garantacaminho 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. Programação Intermediária do DX-100 Página 12 Curso: TP-12 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 13 Curso: TP-12 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. Programação Intermediária do DX-100 Página 14 Curso: TP-12 Figura 2. 5: Seqüência de Programas com o Programa Filho Ativo 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 Programação Intermediária do DX-100 Página 15 Curso: TP-12 CUIDADO! Garanta que o caminho do robô esteja livre caso as linhas sejam ignoradas. Programação Intermediária do DX-100 Página 16 Curso: TP-12 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 17 Curso: TP-12 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; Programação Intermediária do DX-100 Página 18 Curso: TP-12 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. Programação Intermediária do DX-100 Página 19 Curso: TP-12 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, antesdo 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. Programação Intermediária do DX-100 Página 20 Curso: TP-12 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 21 Curso: TP-12 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 Programação Intermediária do DX-100 Página 22 Curso: TP-12 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. Programação Intermediária do DX-100 Página 23 Curso: TP-12 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 24 Curso: TP-12 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 25 Curso: TP-12 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 26 Curso: TP-12 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 27 Curso: TP-12 3.6 Condições com IN#( ), IG#( ) ou VAR Os exemplosabaixo 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 28 Curso: TP-12 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 29 Curso: TP-12 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 Preciosion D000-D099 -2147483649 a +2147483647 Distância (Microns) Real R000-R099 ±3.400000 E+38 (mínimo/máximo) ±9.999999 E-38 (valores entre -1 e +1) Cálculos Aritméticos Avançados (DIV, SQRT, SIN, COS, ATAN, etc.) 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 30 Curso: TP-12 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 31 Curso: TP-12 Função Sintaxe Exemplo Resultado INC Adiciona um no valor da variável especificada INC B<endereço> INC I<endereço> INC D<endereço> INC B023 INC I023 INC D023 Se o conteúdo for = 6, o resultado é 7 DEC Adiciona um no valor da variável especificada DEC B<endereço> DEC I<endereço> DEC D<endereço> DEC B023 DEC I023 DEC D023 Se o conteúdo for = 6, o resultado é 5 SET Seta o dado 1 igual ao dado 2 SET <Data 1> <Data 2> SET I012 3 I012 passa a valer 3 CLEAR Limpa os valores das variáveis CLEAR <endereço> CLEAR I007 4 CLEAR I007 ALL Limpa I007, 8, 9 e 10 Limpa I007 em diante (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 32 Curso: TP-12 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 33 Curso: TP-123. 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 34 Curso: TP-12 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 35 Curso: TP-12 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 36 Curso: TP-12 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 Para procurar por uma entrada específica na tela DETAIL: Programação Intermediária do DX-100 Página 37 Curso: TP-12 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 Programação Intermediária do DX-100 Página 38 Curso: TP-12 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 39 Curso: TP-12 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 40 Curso: TP-12 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 2322 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 41 Curso: TP-12 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. Programação Intermediária do DX-100 Página 42 Curso: TP-12 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 43 Curso: TP-12 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 44 Curso: TP-12 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áriado DX-100 Página 45 Curso: TP-12 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 46 Curso: TP-12 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 47 Curso: TP-12 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 48 Curso: TP-12 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 49 Curso: TP-12 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 50 Curso: TP-12 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 51 Curso: TP-12 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 52 Curso: TP-12 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 Programação Intermediária do DX-100 Página 53 Curso: TP-12 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. Programação Intermediária do DX-100 Página 54 Curso: TP-12 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 55 Curso: TP-12 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 56 Curso: TP-12 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 57 Curso: TP-12 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;
Compartilhar