Baixe o app para aproveitar ainda mais
Prévia do material em texto
SCORBASE TUTORIAL BÁSICO DE ACIONAMENTO Jorge Sampaio S. J. SCORBASE TUTORIAL BÁSICO DE ACIONAMENTO Jorge Sampaio S. J. Instituto Federal de Educação, Ciência e Tecnologia do Maranhão Campus Imperatriz PREFÁCIO O tutorial a seguir foi sintetizado a partir de saberes e tutoriais próprios dos criadores do software SCORBASE, da empresa Intelitek, Inc. É idealizado para facilitar a leitura e compreensão dessa grande ferramenta de aprendizagem acerca de diversas áreas da Robótica. O robô utilizado, também de autoria da empresa, chama-se SCORBOT-ER 4U. Este foi desenvolvido para emular um robô industrial, com estrutura aberta de forma que permita aos estudantes e professores a capacidade de observar e aprender o mecanismo de funcionamento. Fontes que basearam o presente tutorial: 100342-H Scorbase-USB-v56 <http://bit.ly/scorbasemanual> 200033_A_TP for Controller USB and USB-Pro <http://bit.ly/tp-intelitek> ER4u_User_Manual <http://bit.ly/scorbot-er4u> Por fim, agradeço a você, estudante ou professor, e que possa usufruir de forma positiva do presente tutorial e, com isso, difundir o incrível universo da robótica. Jorge Sampaio S. J. Acadêmico de Engenharia Elétrica Instituto Federal de Educação, Ciência e Tecnologia do Maranhão - Campus Imperatriz 24 de fevereiro de 2017 SUMÁRIO . CAPÍTULO 1: INTRODUÇÃO AO SCORBASE .................................................................................... 1 CAPÍTULO 2: HOMING E CONTROLE .............................................................................................. 2 2.1 Informações Iniciais ................................................................................................................... 2 2.2 Homing ....................................................................................................................................... 2 2.3 Go Home Command ................................................................................................................... 4 2.4 Modo On-Line / Modo Off-Line ................................................................................................. 4 2.5 Control On / Control Off – Con/COff ........................................................................................ 4 CAPÍTULO 3: DEFININDO POSIÇÕES .............................................................................................. 6 3.1 Coordenadas Cartesianas e Juntas ............................................................................................. 6 3.2 Posições Absolutas e Relativas ................................................................................................... 8 3.3 Gravar e Ensinar ......................................................................................................................... 9 3.4 Manual Movement ..................................................................................................................... 9 3.5 Robot Movement ...................................................................................................................... 10 3.6 Teach Positions ......................................................................................................................... 11 3.7 Gravando Posições (Sistema de Juntas) ................................................................................... 13 3.8 Ensinando Posições (Coordenadas XYZ) ................................................................................. 14 3.9 Janela Positions ........................................................................................................................ 15 3.10 Barras de dados de posição .................................................................................................... 16 3.11 Usando um console de instruções com SCORBASE ............................................................... 17 CAPÍTULO 4: EDIÇÃO DE PROGRAMAS ........................................................................................ 19 4.1 Abrindo e fechando um programa ............................................................................................ 19 4.2 Ferramentas de Edição ............................................................................................................. 20 4.3 Adição e Edição de Comandos ................................................................................................. 21 4.4 Comandos de Controle de Eixos .............................................................................................. 22 4.5 Comandos de Fluxo de Programa ............................................................................................ 31 4.6 Comandos de Entrada/Saída ................................................................................................... 41 4.7 Comandos Avançados ............................................................................................................... 47 CAPÍTULO 5: EXECUTANDO PROGRAMAS ................................................................................... 51 5.1 Executando um programa ........................................................................................................ 51 5.2 Executando Programa de parada ............................................................................................. 51 5.3 Barras de diálogo para entrada e saída .................................................................................... 52 5.4 Arquivo de Registro do SCORBASE ......................................................................................... 53 CAPÍTULO 6: CONSOLE DE INSTRUÇÕES - TEACH PENDANT .................................................. 54 6.1 Análise preliminar .................................................................................................................... 54 6.2 Operação................................................................................................................................... 54 6.3 Teclas de Funções ..................................................................................................................... 55 6.3 Painel ........................................................................................................................................ 60 1 1 INTRODUÇÃO AO SCORBASE O SCORBASE para SCORBOT-ER 4u é um software de controle para programação e operação robóticas. Ele apresenta numerosas utilidades: Comunicação com o controlador do robô por meio de USB. Controle e exibição em tempo real de cinco eixos robóticos, garra e dois eixos periféricos. Total suporte e exibição em tempo real de oito entradas digitais, oito saídas digitais, quatro entradas analógicas e duas saídas analógicas. Definição de posições e exibição por meio de movimento manual robótico em referência ao Sistema de Coordenadas de Juntas (unidades codificadoras). O Sistema Cartesiano de Coordenadas (X,Y, Z, Elevação e Giro1) é também usado. Definição de movimento robótico com os comandos Go to Position, Go Linear e/ou Go Circular, com configurações de velocidade ativas em porcentagem (que depende da configuração denominada Nível de Experiência). Configuração padrão de 1000 posições e 10000 linhas de programa ativos. Interrupção na programação de respostas de manipulação para mudanças no estado de entrada digital. Programação Variável, em três níveis de complexidade, para moderar a curva de aprendizagem. Isto torna possívela inserção de iniciantes em um nível mais baixo e avançado através dos níveis, sendo cada vez mais habilidosos em programação robótica. Salvar e Carregar projetos. Pode ser instalado como parte de RoboCell, um software de gráfico interativo que produz simulações do robô e outros dispositivos na célula de trabalho (workcell). 1 Elevação e Giro são, respectivamente e em inglês, Pitch e Roll. 2 2 HOMING E CONTROLE 2.1 Informações Iniciais A localização do robô e de seus eixos periféricos é monitorada e controlada utilizando codificadores. Para iniciar os codificadores e obter desempenho repetível, os eixos devem primeiramente alcançar uma posição pré-definida conhecida como hard home. Todas as posições e movimentos registrados se referem à posição hard home. O procedimento de direcionar ao estado inicial (homing) executa o hard home para os eixos selecionados. SCORBASE oferece dois comandos relacionados com a posição inicial. Search Home (ou Procurar Origem) é o procedimento para direcionar ao estado inicial. Durante o Search Home, cada eixo é levado à sua origem separadamente. O controlador ativa o eixo do motor atualmente alojado até que seu micro-interruptor seja pressionado. Assim, o controlador inicializa o contador do codificador de eixo e leva à origem o próximo eixo. Depois que todos os eixos configurados forem alojados em suas respectivas origens, o procedimento termina. Go Home (ou Ir à Origem) envia os eixos selecionados para a posição onde o valor dos codificadores é zero. Esse comando não leva os eixos para a posição inicial. Esses dois comandos estão disponíveis em três níveis: 1. Search/ Go home all (Procurar/ Todos na posição inicial): se aplica a todos os eixos ativos. 2. Search/ Go home robot (Procurar/ Robô na posição inicial): se aplica ao robô. 3. Search/ Go home peripherals (Procurar/ Periféricos na posição inicial): se aplica aos eixos 7 e 8. 2.2 Homing Search Home All Axes Para começar o procedimento homing, faça um dos seguintes comandos: Selecione Run | Search home – all axes. Clique no ícone de Search Home: Uma janela abre mostrando o número do eixo sendo posicionado em sua origem atualmente. Cada vez que um eixo está na posição inicial com sucesso, uma marca de verificação aparece próximo do número do eixo. Após os cinco eixos e a garra estiverem na posição inicial, uma marca de verificação aparece próximo do robô. 3 FIGURA 2.1 Janela do homing. Para abortar o homing com o processo ainda em progresso, faça um dos seguintes comandos: Pressione [F9] no teclado (Comando de Parar) Pressione o botão vermelho EMERGENCY no controlador. Pressione a chave EMERGENCY no Teach Pendant (espécie de controle remoto que acompanha o controlador). Se o procedimento homing falhar, uma mensagem aparece. O comando Search Home - all axes executa o homing do motor bem como quaisquer dispositivos periféricos que estejam configurados no menu Options | Peripherals Setup Menu. Esse comando pode somente ser utilizado quando o SCORBASE estiver On-Line. Se o sistema já foi colocado em sua posição inicial e você colocar o SCORBASE no modo Off- line, não há necessidade de utilizar o homing quando retornar ao modo On-Line. Quando o SCORBASE estiver no Modo Off-Line, ou quando o RoboCell está instalado e se encontra no modo de simulação (Simulation Mode), o homing não é necessário. Tal procedimento inicializa os valores de Junta e XYZ de acordo com a definição do software. Todos os codificadores são colocados para zero, enquanto as coordenadas cartesianas do robô são definidas de acordo com o modelo do software. Search Home - Robot Esse comando roda o homing no próprio robô. O homing dos periféricos é habilitado somente após que o sistema estiver na origem. Search Home - Peripherals Esse comando roda o homing nos periféricos configurados. O homing do robô é habilitado somente após que o sistema estiver na origem. 4 2.3 Go Home Command Go Home All Axes – Robot - Peripherals Depois que os eixos passarem pelo homing, selecione Run | Go Home – All Axes para enviar os eixos de volta às suas posições iniciais a qualquer momento. Este comando envia o robô e periféricos à posição onde o valor dos codificadores dos eixos equivale a zero. O comando Go Home não roda o homing. Selecione o comando Go Home – Robot ou Go Home – Peripherals para enviar o eixo selecionado à sua respectiva posição inicial. 2.4 Modo On-Line / Modo Off-Line SCORBASE pode rodar no modo On-Line ou no modo Off-Line. No modo On-Line, o programa comunica-se com o controlador por meio da porta USB. Se estado Control On é selecionado, o programa controla o robô, periféricos e o dispositivo I/O. No modo Off-Line, o SCORBASE pode ser usado somente no estado Control Off (útil para programação e depuração). O modo ativo é exibido na barra de status (estado). Se o SCORBASE for aberto no modo On-Line, ou este é selecionado no menu Options, a seguinte mensagem aparece, sinalizando que o programa busca pelo controlador. Se este for detectado, o modo On-Line é ativado. Senão, o Off-Line permanece como modo ativo. FIGURA 2.2 Status de busca do controlador. 2.5 Control On / Control Off – Con/COff O estado Control On (Controle Ligado) habilita o servo controle dos eixos. Esse estado é disponível somente no modo On-Line. Se estiver no modo Control Off (Controle Desligado), os comandos de movimento dos eixos não podem ser executados. O estado de Controle é exibido no canto inferior direito da barra de status. Para habilitar o controle dos eixos, faça um dos seguintes comandos: Selecione o menu Options e em seguida Control On. Clique no ícone de Control On: Pressione [F5] no teclado. Para desabilitar o controle, faça um dos seguintes comandos: Selecione o menu Options (Opções) e em seguida Control Off. Clique no ícone de Control Off: Se você desabilitar o controle e o SCORBASE abrir em modo On-Line, ou se o Modo On-Line for selecionado depois de detectar o controlador, a mensagem a seguir aparece. Pressione OK para habilitar o controle ou pressione Cancel para permanecer no modo Off-Line. 5 FIGURA 2.3 Tela de confirmação de Control On. O controlador automaticamente desabilita o controle se algum impacto no robô for detectado, houver algum erro de trajetória ou ocorrer um erro de sobrecarga térmica durante a execução dos comandos de movimento. Se você tentar mover os eixos quando o controle estiver desabilitado, a mensagem de erro a seguir aparece: FIGURA 2.3 Mensagem de erro sobre o movimento de eixos. Enquanto o SCORBASE estiver no modo Off-Line, o estado de Controle não pode ser alterado. 6 3 DEFININDO POSIÇÕES Todo projeto no SCORBASE inclui um conjunto de posições pré-definidas e um programa que envia o robô de uma posição para outra. Antes de executar um programa, todas as posições devem ser definidas. O SCORBASE oferece várias ferramentas que definem e armazenam posições que serão usadas nos programas. As seguintes ferramentas do SCORBASE são usadas no processo para definir a posição. Manual Movement Dialog Box. Teach Positions Dialog Box. Robot Movement Dialog Box. Position Data Dialog Bar. Positions Window. Para ativar as caixas de diálogo que serão altamente utilizadas para a definição da posição, selecione Window e em seguida Teach & Edit. Quaisquerdos quatro métodos seguintes podem ser usados para definição da posição: Nº Método Nível 1 Juntas com Posição Absoluta 1-2-Pro 2 Juntas com Posição Relativa 2-Pro 3 Coordenadas Cartesianas com Posição Absoluta 2-Pro 4 Coordenadas Cartesianas com Posição Relativa 2-Pro Para definir posições periféricas, o software deve estar no nível Pro. 3.1 Coordenadas Cartesianas e Juntas Para definir uma posição no SCORBASE, utilizamos os sistemas de coordenadas cartesianas ou os sistemas de juntas. Nos dois sistemas, define-se uma posição robótica usando cinco parâmetros derivados dos dados fornecidos pelos cinco codificadores de eixos. Um codificador é um sensor de movimento angular anexado ao eixo motor. A posição periférica é sempre definida através de uma variável que armazena a saída do sensor (valor do codificador) dessa posição. Sistema de Juntas A posição do robô em juntas é definida por cinco valores de ângulo, representando cada ângulo das articulações. Os nomes das articulações são Base, Ombro, Cotovelo, Elevação e Giro. 7 FIGURA 3.1 Juntas Robóticas. Por exemplo, após direcionar ao estado inicial, a posição do robô em coordenadas de juntas é: Eixo 1 – Base em 0º. Eixo 2 – Ombro em –120º. Eixo 3 – Cotovelo em torno de 95º. Eixo 4 – Elevação em torno de 88º. Eixo 5 – Giro em 0º. Sistema de coordenadas cartesianas (XYZ) A posição do robô em coordenadas cartesianas (ou XYZ) é definida por esses parâmetros: A distância do Tool Center Point (TCP)2 a partir do ponto de origem (parte inferior central da base do robô), ao longo dos três eixos que descrevem o espaço tridimensional (X, Y, Z). Os ângulos de Elevação (Pitch) e Giro (Roll) da garra, especificado em unidades angulares. 2 Tool Center Point (ou Ponto Central da Ferramenta) é de onde se obtém o ponto que será tomado como referência para os movimentos da ferramenta, permitindo a obtenção das características de precisão, resolução, etc. no percurso de movimento do robô. Fonte: http://bit.ly/2hgE6d9 8 FIGURA 3.2 Tool Center Point em coordenadas XYZ. Por exemplo, após o homing, a posição do robô em coordenadas cartesianas é definido como: X – em torno de 169 mm. Y – 0 mm . Z – em torno de 503 mm. Elevação (Pitch) – em torno de 63º. Giro (Roll) – 0º. Uma posição gravada em um sistema de coordenadas pode ser convertida pelo SCORBASE para outro sistema de coordenadas. 3.2 Posições Absolutas e Relativas O SCORBASE oferece dois métodos para definir um robô sua posição periférica: Absoluto e Relativo. Os dois métodos são aplicáveis em coordenadas cartesianas e em juntas. Uma posição absoluta é definida usando os cinco parâmetros de posição do robô. Se o sistema de coordenadas de junção for usado, a posição do robô é definida usando os ângulos Base, Ombro, Cotovelo, Elevação e Giro. No sistema de coordenadas XYZ, uma posição é definida usando os valores X, Y, Z em milímetros e os ângulos de Elevação e Giro, em graus. Uma posição absoluta é geralmente uma posição fixa no espaço mundial. Uma posição relativa é uma posição cujas coordenadas são definidas como um deslocamento de uma coordenada de posição de referência. Se as coordenadas da posição de referência mudam, a posição relativa se move junto com ela, mantendo o mesmo deslocamento. Uma posição relativa pode ser definida em valores de Coordenadas Cartesianas ou Juntas. Uma posição também pode ser definida como relativa à corrente. Neste caso, a posição relativa é calculada como um deslocamento das coordenadas da posição atual do robô. 9 3.3 Gravar e Ensinar Embora os termos teach (ensinar) e record (gravar) sejam frequentemente usados indistintamente, SCORBASE difere ambos de acordo com as seguintes definições: Record position: define uma posição de robô em um sistema de juntas. Teach position: define uma posição do robô em um sistema de coordenadas cartesianas. 3.4 Manual Movement Grava-se uma posição do robô (em coordenadas de juntas) ao manipular este para a posição requerida e, então, gravar no programa. A caixa de diálogo Manual Movement permite controle direto e manipulação do robô e seus eixos periféricos. É automaticamente aberta ao abrir um projeto, ou quando a configuração Window | Teach & Edit é selecionada. Para abrir essa caixa de diálogo quando não houver projeto aberto, selecione View | Manual Movement. FIGURA 3.3 Manual Movement (Sistema de Juntas). Nota: O eixo 6 não é aplicável a SCORBOT-ER 2u. Os eixos 7 e 8 estão disponíveis utilizando a caixa de diálogo Options | Hardware. Explica-se, a seguir, o funcionamento de cada botão na caixa Manual Movement (ou pressionando suas respectivas teclas), controlando o robô e seus movimentos periféricos. Ao selecionar Joints (Juntas), ao clicar os botões (ou pressionar as respectivas teclas) move-se um eixo do robô por vez, como descrito abaixo: Juntas 1 / Q Rotaciona a BASE para direita e para esquerda. 2 / W Move o OMBRO para cima e para baixo. 3 / E Move o COTOVELO para cima e para baixo. 4 / R Move o pulso (ELEVAÇÃO) para cima e para baixo. 5 / T Rotaciona o pulso (GIRO) para direita e para esquerda. 6 / Y Abre e fecha a garra via servo controle. 7 / U Move o eixo periférico #7 (se conectado) 8 / I Move o eixo periférico #8 (se conectado) 10 Ao selecionar XYZ, ao clicar os botões (ou pressionar as respectivas teclas) move-se o TCP, como descrito a seguir. Os movimentos em XYZ são às vezes uma combinação de movimentos simultâneos de poucos eixos. FIGURA 3.4 Manual Movement (Sistema XYZ). XYZ 1 / Q TCP se move ao longo do eixo X (para frente e para trás). 2 / W TCP se move ao longo do eixo Y (para direita e para esquerda). 3 / E TCP se move ao longo do eixo Z (para cima e para baixo). 4 / R Os eixos se movem em ordem para mudar o ângulo de elevação da garra; a posição do TCP não muda. 5 / T A garra gira; a posição do TCP não muda Para os dois casos, os seguintes botões controlam o movimento interno da garra. Fecha completamente a garra. Abre completamente a garra. O robô pode ser manipulado pela Manual Movement somente após submeter o mesmo ao homing. Uma mensagem de erro de limite de eixo pode aparecer ao manipular um robô que não se encontra a partir de sua posição inicial. O movimento de um eixo continua conforme um botão ou tecla é pressionada, ou até ao atingir um limite de software ou hardware. 3.5 Robot Movement A caixa de diálogo Robot Movement permite controle interativo sobre o robô nos modos XYZ e Juntas. Ao clicar numa imagem de eixo ou os botões XYZPR (XYZ, Elevação e Giro). Para abrir a Robot Movement, selecione View | Robot Movement. 11 FIGURA 3.5 Robot Movement. 3.6 Teach Positions A caixa de diálogo Simple/Expanded Teach Positions permite: Ensinar posições (em coordenadas cartesianas). Gravar posições (em coordenadas de juntas). Enviar os eixos às posições gravadas (quando o programa não estiver rodando). Ir para uma posição (Go to Position). Ir em linha reta (Go Linear). Ir em um movimento circular (Go Circular). Para exibir a descrição da função de cada ícone na Teach Positions, posicione o mouse sobre o ícone desejado sem clicar. O usuário pode definir 1000 posições. Um computador melhor (CPU e memória) pode permitir mais posições. Simple (Level 1) FIGURA 3.6 Teach Positions (Simple – Level 1). Position Number Umnome numérico para a posição. Record Grava a posição atual (em coordenadas de juntas) de acordo com o número da posição exibido em Position Number. Delete Apaga da memória a posição exibida em Position Number. Go to Position Executa o comando Go to Position, que envia o TCP do robô da posição atual para a posição selecionada. 12 Speed Seleciona a velocidade de todos os comandos de movimento. 10 como a mais rápida, 1 como a mais lenta, 5 como padrão. Simple (Advanced Level) FIGURA 3.7 Teach Positions (Advanced – Level 2). No nível avançado, a caixa de diálogo oferece todos os comandos disponíveis no Nível 1 e todos os seguintes: Expand Alterna entre os modos Expanded e Simple da Teach Position. Absolute / Relative to Define posições como absoluta ou relativa a outra posição. Quando Relative to é selecionada, um campo aparece. Selecione uma posição existente ou a atual (Current). Expand (Advanced e Pro Levels) Clique em Expand para abrir o modo expandido da Teach Positions. FIGURA 3.8 Teach Positions (Advanced – Level 2) no modo Expand. X (mm), Y (mm), Z (mm), Pitch (deg), Roll (deg) Campos que exibem ou mudam as coordenadas cartesianas da posição selecionada. Get Position Exibe as coordenadas cartesianas da posição selecionada Clear Limpa todos os campos com as coordenadas da posição. Os dados da posição não mudam. Teach Ensina a posição utilizando o sistema de coordenadas cartesianas. 13 Go Circular Executa o comando Go Circular to Position. Este comando envia o robô em uma trajetória circular para a posição alvo (no campo Position Number) através de uma posição especificada em Via Position. Via Position Seleciona a posição intermediária através da qual o movimento Go Circular passa. Go Linear to Position Executa o comando Go Linear to Position. Envia os eixos em uma linha reta para a posição selecionada. Simple Alterna entre os modos Expanded e Simple da Teach Position. Simple (Pro Level) FIGURA 3.9 Teach Positions (Simple - Pro). No nível Pro, a caixa de diálogo oferece todos os comandos apresentados e os seguintes: Include Axes Instrui o controlador para definir coordenadas para eixos do robô, periféricos ou ambos. Uma posição periférica pode ser gravada apenas no nível Pro. Duration Define o tempo que leva para completar um comando de movimento. O tempo é definido em décimos de segundos. Estes comandos permanecem disponíveis quando alternar o modo de Teach Positions para Expand. 3.7 Gravando Posições (Sistema de Juntas) Gravando Posição absoluta (Níveis 1, 2 & Pro) Para gravar uma posição absoluta: 1. Use o Manual Movement ou o Robot Movement para mover o robô para a posição desejada. 2. Clique em Teach Position. 3. Digite um número de posição no campo Position Number ou selecione um número existente se desejar modificar uma posição pré-definida. 4. Selecione Absolute. 5. Selecione Include Axes (Robot ou Peripherals): a. Robot: gravar uma posição para os eixos do robô. b. Peripherals: gravar uma posição para os eixos periféricos (Nível Pro somente) c. O usuário pode selecionar os dois casos. 14 6. Para gravar a posição atual, clique no ícone Record. Gravando Posição Relativa (Nível Pro) Para gravar uma posição relativa: 1. Defina uma posição de referência. 2. Mova o robô para a posição cujas coordenadas que você desejar seja relativa a outra posição. 3. No campo Position Number em Teach Positions, digite um novo número de posição. 4. Selecionte Relative to e digite um número (ou selecione o atual – Current) como posição referência. 5. Clique em Record. 3.8 Ensinando Posições (Coordenadas XYZ) Para ensinar (teach) uma posição em coordenadas XYZ, clique em Expand. Ensinando Posição XYZ Absoluta (Níveis 2 & Pro) Para ensinar uma posição XYZ absoluta: 1. Clique em Expand. 2. Digite os valores de XYZ, Pitch (Elevação) e Roll (Giro). 3. Clique em Teach. Para usar coordenadas de posição existentes para definir uma nova posição (ou modificar as coordenadas): 1. No campo Position Number em Teach Positions, selecione um número de posição absoluta. 2. Clique em Get Position. Os valores XYZPR da posição agora aparecem nos campos XYZ, Pitch e Roll. Se a posição é relativa, somente os valores deslocados serão exibidos. 3. No campo Position Number, digite um número diferente (ou se preferir permaneça com o mesmo número, caso queira sobrescrever os dados desta posição existente). 4. Para gravar uma posição para os eixos do robô, clique em Robot. 5. Para gravar uma posição para os eixos periféricos, clique em Peripherals. 6. Em um ou mais campos de coordenadas, digite um novo valor (em milímetros ou graus). 7. Clique em Teach. Atenção: Se clicar em Record, as coordenadas atuais do TCP serão escritas para a posição selecionada. Ensinando Posição XYZ Relativa (Níveis 2 & Pro) Para ensinar uma posição XYZ relativa: 1. Tenha certeza de já ter gravado uma posição de referência. 2. No campo Position Number, em Teach Positions, digite um novo número de posição. 3. Selecione Relative to e digite o número da posição de referência. Todos os campos de coordenadas XYZ são vazios ou mostram 0 (zero). 4. Em um ou mais campos de coordenadas, digite um novo valor (em milímetros ou graus). 5. Clique em Teach. Se a posição de referência muda, a posição relativa muda de acordo. 15 3.9 Janela Positions Positions A janela Positions exibe uma lista de posições no atual projeto aberto. A lista é apresentada em forma de tabela. Por padrão, a tabela apresenta informações sobre posições no Sistema de Juntas e Sistema Cartesiano de Coordenadas. Quando totalmente aberta, a janela é dividida horizontalmente em dois painéis. Ao arrastar a borda inferior da janela, revelará o painel inferior. O painel superior exibe todas as posições no projeto (Position Inventory Panel). O painel inferior (Watch Panel) exibe as posições que foram selecionadas para observação. FIGURA 3.10 Janela Window, com os painéis superior e inferior. Cada coluna da porção superior da tabela representa uma posição. Para manipular a lista: Selecione uma posição (coluna). Clique-direito para exibir a janela popup. Janela Popup Position FIGURA 3.11 Janela Popup Position. 16 Position #X Exibe o número da posição. Delete Apaga a posição selecionada Delete All Apaga todas as posições listadas de Position Inventory Panel (painel superior) e da memória do SCORBASE. Add Watch Copia os dados da posição para a lista de observação, visível em Watch Panel (painel inferior). Show Joint Mostra apenas os valores de Juntas de todas as posições. Show XYZ Mostra apenas os valores XYZPR de todas as posições. Show Both Mostra tanto os valores de Juntas quanto os valores XYZPR, de todas as posições. As posições periféricas sempre são exibidas usando contagem de codificadores. Watch Popup Position FIGURA 3.12 Watch Popup Position. Position #X Exibe o número da posição. Delete Apaga a posição selecionada da lista de observação, mas não afeta sua presença na lista geral. Delete All Apaga todas as posições listadas da lista de observação, mas não afeta sua presença na lista geral. Show Joint Mostra apenas os valores de Juntas de todas as posições. Isso pode ser configurado para um valor diferente no painel superior. Show XYZ Mostra apenas os valores XYZPR de todas as posições. Isso podeser configurado para um valor diferente no painel superior. Show Both Mostra tanto os valores de Juntas quanto os valores XYZPR, de todas as posições. 3.10 Barras de dados de posição SCORBASE oferece as três barras de diálogo que exibem todos os eixos, contagem dos codificadores e posição do robô em referência ao Sistema de Coordenadas Cartesianas (XYZ) e Sistema de Juntas. Todas as barras de diálogo são acessíveis em todos os níveis através do menu 17 View. Elas também podem ser abertas ou fechadas através dos comandos View | Show All Dialog Bars ou View | Close All Dialog Bars. Barra Encoder Counts A barra Encoder Counts exibe os valores atuais dos codificadores de cada um dos oito eixos. FIGURA 3.13 Barra Encoder Counts. Para exibir essa barra, selecione View | Dialog Bar | Encoders. Os valores dos codificadores mudam sempre que os eixos se movem. Aqueles valores são configurados para zero (ou perto de zero) depois que o comando Search Home All Axes é executado. Barra XYZ A barra XYZ exibe os valores atuais do Sistema Cartesiano de Coordenadas (XYZPR) do TCP. FIGURA 3.14 Barra XYZ. Para exibir a barra XYZ, selecione View | Dialog Bar | XYZ. Os valores mostrados no exemplo anterior são os valores de Juntas depois que o comando Search Home é executado. Barra Joints A barra Joints exibe os ângulos entre os dois elos da junta, em graus. FIGURA 3.15 Barra Joints. Para exibir essa barra, selecione View | Dialog Bar | Joints. Os valores mostrados no exemplo anterior são os valores XYZ depois que o comando Search Home é executado. 3.11 Usando um console de instruções com SCORBASE O Console de Intruções (Teach Pendant) é um terminal portátil que permite ao operador controle direto de eixos do robô e eixos periféricos. Além de controlar o movimento dos eixos, o Teach Pendant pode ser usado para gravar posições, enviando os eixos para posições gravadas e outras funções. Para controlar os eixos do Teach Pendant, SCORBASE deve ser operado no modo On-Line, e o comutador Teach/Manual no console deve estar em Teach. Isso desabilita o controle dos eixos através das caixas do SCORBASE. Todas as operações do Teach Pendant são refletidas nas caixas de diálogo do SCORBASE. Por exemplo, as posições gravadas pelo console irão aparecer na lista Position Number na caixa Teach 18 Positions; os valores dos codificadores e XYZ irão mudar em Encoder Counts e caixas de diálogo XYZ. Os princípios de operação do console de instruções estão descritas no Capítulo 6 desse tutorial. 19 4 EDIÇÃO DE PROGRAMAS Um programa no SCORBASE é um conjunto de funções escritas pelo usuário para controlar o robô, equipamentos periféricos e comunicar com dispositivos externos I/O. Este capítulo explica a criar e editar um programa no SCORBASE. As seguintes ferramentas são usadas para preparar os programas no software: 1. Editor de comandos do programa. 2. Árvore de comandos listada no SCORBASE. 4.1 Abrindo e fechando um programa Todo programa no SCORBASE é parte de um projeto do mesmo. Um projeto também inclui posições definidas pelo usuário, dados do projeto e, se o software RoboCell estiver instalado, uma célula virtual (arquivo 3dc). Somente um projeto pode ser aberto por vez. Para abrir um programa salvo em um projeto (no formato .WS), use um dos seguintes passos: Abra File | Open Project...; Clique no ícone ; Pressione os botões Ctrl e O no teclado ao mesmo tempo (Ctrl + O). Em todos os casos, a janela Load Project irá abrir, permitindo a você selecionar o projeto que contenha o programa que queira editar. O programa é exibido na janela Program. Para criar um novo projeto, use um dos seguintes passos: Selecione File | New Project; Clique no ícone ; Pressione os botões Ctrl e N no teclado ao mesmo tempo (Ctrl + N). Por padrão, o novo projeto é aberto com o layout Teach & Edit, que exibe quatro janelas: Program, que contém o programa do SCORBASE. Manual Movement Teach Positions Workspace, que mostra os dados do projeto, ou seja, o programa do usuário, display gráfico (se instalado) e a árvore de comandos do SCORBASE. A janela Program contém o texto do programa do SCORBASE carregado. Sua barra de título mostra o nome do projeto. Também é apresentado, por padrão, sua barra de ferramentas de programação. A barra de ferramentas contém uma lista suspensa de todas as sub-rotinas (ou comandos) disponíveis, para rápida navegação. FIGURA 4.1 Janela Program. 20 A janela Workspace contém duas abas para alternar entre os arquivos do projeto (Project) e os comandos disponíveis de acordo com o nível de experiência (Commands). FIGURA 4.2 Janela Workspace. 4.2 Ferramentas de Edição SCORBASE possui uma linguagem de programação baseada em texto onde cada comando é uma simples linha de texto. Os programas do SCORBASE são editados por meio das opções de edição que são acessadas: Por meio do menu Edit; Pressionando as teclas designadas; Ao clicar com o mouse na janela Program para abrir um menu pop-up. Cut – Ctrl + X Deleta o texto selecionado ou linhas do programa, e coloca-os nos clipboards do Windows e do SCORBASE. Copy – Ctrl + C Copia o texto selecionado ou linhas do programa presentes nos clipboards do Windows e do SCORBASE. Paste – Ctrl + V Insere o conteúdo do clipboard do SCORBASE dentro do programa. Find – Ctrl + F Abre uma caixa de diálogo que permite que você procure por qualquer frase, como um comando ou texto. FIGURA 4.3 Janela Find in Program. Find Next – [F3] Repete a última operação Find para a próxima ocorrência. (Acessível também na janela Find). Command/Remark (*...) Insere ou deleta o asterisco no começo da linha de comando. O SCORBASE ignora as linhas de comando que iniciam com um asterisco. Este recurso é útil para depuração (debugging). Go to Line Abre uma janela que exibe o número total de linhas no programa e leva o cursor ao número de uma linha. Digite o número. O editor do programa saltará para a linha que especificar. 21 FIGURA 4.4 Janela Go To Line. Go to Selected Line Automaticamente rola a janela Program para exibir a linha que você selecionou. Isto é muito útil para grandes programas quando você seleciona uma linha particular e, em seguida, rola para longe desta. Em programas muito curtos que se encaixam em uma simples janela, esta função não tem efeito visível. Além disso, use o teclado para as seguintes funções: [Ins] Alterna entre o modo Insert (inserir) e Overwrite (sobrescrever). O modo ativo no momento é apresentado na barra de Status no canto inferior da janela do SCORBASE. No modo Insert, um novo comando é inserido no programa por cima da linha marcada pelo cursor. [Del] Deleta a linha ou as linhas que estão marcadas pelo cursor. [Ctrl + Home] Leva o cursor para a primeira linha do programa. [Ctrl + End] Leva o cursor para a última linha do programa. 4.3 Adição e Edição de Comandos Os comandos do SCORBASE são organizados na Árvore de Comandos, apresentada na janela Workspace. SCORBASE exibe somente os comandos que estão disponíveis no nível de experiência configurado (L1, L2 ou Pro). No nível introdutório (L1), somente comandos básicos aparecem na Árvore de Comandos. No nível avançado (L2), o número de comandos aumenta em relação ao L1. No nível profissional (Pro), todos os comandos são acessíveis. Para ver a Árvore de Comandos, clique na aba Commands na janela Workspace.Os comandos do SCORBASE estão agrupados nestas categorias: Axis & Control Program Flow Inputs & Outputs Advanced – por padrão, esta categoria está escondida. Selecione Options | Advanced Options | Advanced Commands para mostrar esses commandos. Vision - por padrão, esta categoria está escondida. Selecione Options | Advanced Options | ViewFlex Commands para mostrar esses commandos. Ao clicar em uma categoria, abre a lista de comandos. Para adicionar comandos a um programa, use um dos seguintes passos: Clique duplo no comando desejado na Árvore de Comandos. Digite as duas letras na janela Program em caixa alta que se encontram ao lado do comando. Clique nos ícones de comando na janela Program (aplicável somente em comandos selecionados) 22 Se você trabalha com o modo Insert ligado, uma nova linha de comando é adicionada acima da linha selecionada. Se você trabalha no modo Overwrite, um novo comando substitui a linha selecionada. Alterne entre os dois modos pressionando a tecla [Ins]. Muitos comandos abrem caixas de diálogo ao completar os parâmetros presentes na linha de comando. Para mudar um parâmetro de comando, clique no comando para reabrir a caixa de diálogo de comandos. Mude o parâmetro desejado, e clique em OK para fechar a caixa de diálogo. Por razões de segurança, certos parâmetros não são acessíveis pelo usuário, ou seja, eles aparecem acinzentados, e só podem ser modificados por meio do suporte pessoal da Intelitek, empresa responsável pelo SCORBASE. 4.4 Comandos de Controle de Eixos NÍVEL 1 Introdutório (L1) NÍVEL 2 Avançado (L2) NÍVEL PRO Profissional OG Open Gripper (1, 2, Pro) Abre totalmente a garra. CG Close Gripper (1, 2, Pro) Fecha totalmente a garra (por si mesmo ou com um objeto agarrado) GP Go to Position (1, 2, Pro) Abre a caixa de diálogo Go to Position. Este comando envia o robô para uma posição gravada em um tempo curto, usando o controle Point to Point (Ponto a Ponto). No controle Point to Point, todos os eixos se movem independentemente e não há controle na trajetória do TCP. 23 FIGURA 4.5 Caixa de diálogo Go to Position no modo Joint. Controle de Movimento Target Position O destino do movimento. Digite um número ou uma variável neste campo. Velocidade – Duração Fast Executa o movimento na velocidade mais rápida possível. Speed Executa o movimento em uma velocidade mais baixa. Digite um número de 1 a 99 (%) ou uma variável no campo Speed. Por padrão, encontra-se em 50% (velocidade média). Duration Executa o movimento em uma quantidade específica de tempo. Digite o tempo em dezenas de segundo, ou uma variável. Disponível apenas no Nível Pro. Via Position A posição segundo a qual o destino do movimento é alcançado. Digite um número ou variável neste campo. GL Go Linear to Position #_Speed (2, Pro) Envia o Tool Center Point (TCP) do robô de sua posição atual para uma posição-alvo, ao longo de um movimento linear (linha reta). O movimento linear se aplica somente nos eixos do robô. Para esse movimento, a velocidade pode também ser definida em mm/s. 24 FIGURA 4.6 Caixa de diálogo Go to Position no modo Linear. GC Go Circular to Position #_Speed (2, Pro) Envia o TCP do robô em um movimento. O comando circular segue o círculo definido em três posições (posição atual do TCP, posição-alvo e posição intermediária especificada no campo Via Position). O movimento circular se aplica somente ao robô. Via Position A posição segundo a qual o destino do movimento é alcançado. Digite um número ou variável neste campo. FIGURA 4.7 Caixa de diálogo Go to Position no modo Circular. 25 JA Jaw (2, Pro) Move a mandíbula da garra para um alcance específico. FIGURA 4.8 Caixa de diálogo Jaw. A precisão não é garantida se a largura for menor que 5mm ou maior que 65mm. A mandíbula ativa o servo controle do motor da garra, enquanto que os comandos Open Gripper e Close Gripper não usam o servo controle especificado. IL If Limit Switch <#> on jump to <Label> (2, Pro) O IL é um comando de salto condicional. Executa o programa de pular para linha que conter o Label especificado, se o micro-interruptor do eixo selecionado for pressionado (On). FIGURA 4.9 Caixa de diálogo If. Digite o número do eixo ou variável no campo Limit Switch. Digite o nome do Rótulo (Label) no campo Jump to. RP Record Position #_ (Pro) Quando este comando é executado (durante a execução do programa), o controlador grava os dados da posição atual para uma posição específica. 26 FIGURA 4.10 Caixa de diálogo Record Position. Digite um número de posição ou variável no campo Record present position as position. O comando Record Position é muito útil quando uma posição (e todas as posições relativas que se referem a ela) deve ser realocada, durante a execução do programa. Este comando atualiza os dados da posição. SA Set Axis#_ (to Zero) (2, Pro) Inicia (começa em zero) a contagem do codificador do eixo selecionado. FIGURA 4.11 Caixa de diálogo Set Axis. SC Start Conveyor (Pro) Inicia a esteira com uma velocidade controlada. O movimento da esteira irá continuar até que o comando Stop Conveyor (ST) for executado. FIGURA 4.12 Caixa de diálogo Start Conveyor. 27 Digite o número do eixo no campo Axis. Digite um número ou variável no campo Speed. Selecione a direção do movimento (Plus ou Minus). Quando estiver operando a velocidade controlada por meio dos comandos Start/Stop Conveyor, não grave posições, e/ou use o comando Set Axis (to Zero) da esteira, no mesmo programa. ST Stop Conveyor (Pro) Para o movimento de forma contínua da esteira que foi iniciada por meio do comando Start Conveyor (SC). SG Set Variable to Gripper Sensor (Pro) Atribui o valor da abertura da garra (em milímetros) para uma variável. Este comando é muito útil quando for necessário medir o objeto na garra, ou para checar o estado da garra (aberta, fechada ou prendendo um objeto). Este comando não está disponível para SCORBOT-ER 2u. FIGURA 4.13 Caixa de diálogo Set Variable. WR Write Ordena que a garra converta as letras especificadas em letras em uma peça específica. O tamanho é controlado configurando a Escala (de 1 a 10). FIGURA 4.14 Caixa de diálogo Write. 28 CN Control On Permite o controle dos eixos por meio do controlador. CF Control Off Desabilita o controle dos eixos pelo controlador. TJ Teach Position By Joints (Pro) Ensina a posição definida pelas posições absolutas das articulações. Digite um único número na caixa Position Number. Digite os valores para Base, Shoulder, Elbow, Pitch e Roll em centésimos de graus. FIGURA 4.15 Caixa de diálogo Teach Position (Absolute Joints). O botão Get Position copia os valores da posição atual do robô nos campos apropriados, enquanto o botão Clear limpa os valores de todas os campos. RJ Teach Position By Joints Relative to Position (Pro) Ensina a posição definida pelas posições das articulações relativas a outra posição definida. Digite um único número na caixa Position Number. Digite os valores para Base, Shoulder, Elbow, Pitch e Roll em centésimos de graus e escolha de qual ponto essa posição será calculada. FIGURA 4.16 Caixa de diálogo Teach Position (Relative Joints). 29 TX Teach Position by XYZ (Pro) Ensina a posição definida pelas coordenadascartesianas absolutas do TCP (Tool Center Point). Digite um único número na caixa Position Number. Digite os valores para X, Y e Z em centésimos de milímetros, e Pitch e Roll em centésimos de graus. FIGURA 4.17 Caixa de diálogo Teach Position (Absolute XYZ). RX Teach Position by XYZ Relative to Position (Pro) Ensina a posição definida pelas coordenadas cartesianas do TCP (Tool Center Point) relativas a outra posição definida. Digite um único número na caixa Position Number. Digite os valores para X, Y e Z em centésimos de milímetros, e Pitch e Roll em centésimos de graus. FIGURA 4.18 Caixa de diálogo Teach Position (Relative XYZ). SJ Set Variable to Joint Position (Pro) Permite que você configure uma variável para o valor de uma articulação específica em um número de posição específica. 30 FIGURA 4.19 Caixa de diálogo Set Variable to Joint Position. Digite o nome da variável no campo Variable Name e selecione o número da posição da lista suspensa em Position Number. Digite um número inteiro entre 1 e 5 para o Joint Number, conforme o seguinte: Base – 1; Shoulder – 2; Elbow – 3; Pitch – 4; Roll – 5. Também é possível inserir uma variável que contenha um desses valores. SX Set Variable to Cartesian Position (Pro) Permite que você configure uma variável para o valor de uma coordenada cartesiana específica em um número de posição específica. FIGURA 4.20 Caixa de diálogo Set Variable to Cartesian Position (Relative XYZ). Digite o nome da variável no campo Variable Name e selecione o número da posição da lista suspensa em Position Number. Digite um número inteiro entre 1 e 5 para o Joint Number, conforme o seguinte: X – 1; Y – 2; Z – 3; Pitch – 4; Roll – 5. Também é possível inserir uma variável que contenha um desses valores. 31 4.5 Comandos de Fluxo de Programa Nível 1 – Introdutório (L1) Nível 2 – Avançado (L2) Nível Pro – Profissional WT Wait (10ths of second) (1, 2, Pro) Para a execução do programa para um tempo especificado em décimos de um segundo. FIGURA 4.21 Caixa de diálogo Wait. WC Wait For Condition (2, Pro) Para a execução do programa até que a condição definida for realizada. 32 FIGURA 4.22 Caixa de diálogo Wait For Condition. JU Jump to (1, 2, Pro) Este comando de pulo não condicional permite que o ponteiro do programa salte para a linha especificada no rótulo. Digite o nome do rótulo no campo Jump to. Tenha certeza de incluir a linha com esse rótulo no programa. FIGURA 4.23 Caixa de diálogo Jump To. Quando o comando Jump to é usado, este é checado na caixa de diálogo. Pode-se modificar o comando para IF (salto condicional) somente nos níveis 2 e Pro. RE Remark (2, Pro) Permite a inserção de uma linha de comentário para explicações e documentações dentro do programa. Digite até 47 caracteres de texto, incluindo espaços. FIGURA 4.24 Caixa de diálogo Remark. 33 RB Ring Bell (2, Pro) Quando executado, este comando produz um bip, usando o autofalante interno do computador. RT Reset Timer (Pro) O SCORBASE utiliza um temporizador (timer) que mede o tempo em unidades de décimos de segundo. O temporizador começa a operar quando o SCORBASE é aberto. O comando Reset Timer reinicia o valor do temporizador do SCORBASE para 0 (zero). Para usar o temporizador, o valor do mesmo deve ser atribuído para uma variável, utilizando o comando Set Variable. SV Set Variable to Computation (1, 2, Pro) Permite que se atribua um valor ou uma expressão (resultado de uma computação específica) para uma variável. O comando abre a caixa Set Variable (Computation é selecionado por padrão). FIGURA 4.25 Caixa de diálogo Set Variable (default). No nível 2, o valor desse comando pode somente ser resultado da computação. No nível Pro, os valores das variáveis podem ser derivados de outras fontes. Variable Name Digite o número da variável. O primeiro caractere deve ser uma letra. Value or Expression Digite um valor ou uma fórmula. Para configurar a variável em um valor fixo, digite um número (no intervalo de ±1000000). Operadores Aritméticos + Adição * Multiplicação - Subtração / Divisão \ Divisão de Ponto Flutuante Operadores Algébricos ^ Potência (aumenta o primeiro argumento para a potência do segundo argumento). 34 MOD Módulo (retorna o resto do primeiro argumento dividido pelo segundo) Operadores Lógicos (Booleanos) NOT Não AND E OR Ou XOR Ou exclusivo EQV Equivalente (Valores nulos ou booleanos somente) IMP Implicação (Valores nulos ou booleanos somente) O resultado de uma operação lógica é 1 (Verdadeiro) ou 0 (Falso). Qualquer operando com um valor diferente de zero é considerado verdadeiro, enquanto um valor igual a zero é considerado falso. Um valor atribuído usando o comando SV pode ser usado para salto condicional usando o comando IF <Condition> Jump. As ações podem ser geradas de acordo com o valor da variável. O exemplo seguinte salta o cursor do programa para um rótulo (label) se decorrer mais que três segundos após reiniciar o contador: Reset Timer ... Set Variable TIME to timer IF TIME > 30 jump to PICKUP VT | Set Variable to Timer (Pro) Permite que se atribua o valor atual do temporizador do SCORBASE para uma variável. O temporizador do SCORBASE começa a operar quando o software iniciar. Para inicializar o temporizador em um programa, use o comando Reset Timer (RT). FIGURA 4.26 Caixa de diálogo Set Variable (Timer). 35 IF | If Jump to (2, Pro) Um comando condicional, que é utilizado para determinar o fluxo do programa em relação ao valor das variáveis. FIGURA 4.27 Caixa de diálogo If / Jump. Se a condição no campo If é true, a execução do programa pula para a linha especificada no rótulo do campo Jump to. Se é false, salta para a linha seguinte. Se Digite a condição. A condição inclui um nome de variável, um operador de comparação e outro nome de variável, ou um número. Saltar Para Digite o nome de um rótulo (label). Tenha certeza de incluir uma linha com este rótulo no seu programa. Exemplo: Se COUNTER > 0 saltar para START_LOOP Ir para posição 1 velocidade 5 ... START_LOOP: Ir para posição 2 velocidade 5 Se o valor do Contador (Counter) for maior que zero, o robô irá para a posição #1. Se o valor do Contador for igual ou menor que zero, o robô irá para a posição #2. Se necessário, use dois sinais de igualdade (==) como operadores. Por exemplo: Se COUNTER == 0 saltar para END O comando If Jump to pode ser convertido em um comando de pulo incondicional ao selecionar Jump (em vez de If). SS Set Subroutine (2, Pro) Cria uma sub-rotina. Você pode programar até 64 sub-rotinas em um programa. 36 FIGURA 4.28 Caixa de diálogo Set Subroutine. Digite um nome ou número para a sub-rotina. Crie sub-rotinas somente no fim do programa principal. Cada sub-rotina deve terminar com o comando Return from Subroutine. RS Return from Subroutine (2, Pro) Marca o fim da sub-rotina. No tempo de execução, este comando termina a execução da sub- rotina e o programa resume a execução da linha que segue o comando Call Subroutine. Cada sub- rotina deve terminar com o comando Return from Subroutine. CS Call Subroutine (2, Pro) Ativa a sub-rotina especificada. FIGURA 4.29 Caixa de diálogo Call Subroutine.Use esse comando do programa principal ou de outro comando de sub-rotina. Você pode chamar a mesma sub-rotina repetitivamente no mesmo programa. Você pode chamar uma sub-rotina de um script no Visual Basic que for carregado. Acrescente o prefixo SCRIPT. no começo do nome da sub-rotina do Visual Basic. Se mais que um script do VB for carregado, é de responsabilidade do programador garantir que não haja conflito de nomes. Depois que a sub-rotina é executada, o programa resume a execução da linha que segue o comando Call Subroutine. RU Run Subroutine (Pro) Ativa a sub-rotina. 37 FIGURA 4.30 Caixa de diálogo Run Subroutine. Escreve um nome de subrotina ou seleciona um do menu apresentado. Para incluir a subrotina no programa do SCORBASE, pressione o botão Program. Para rodar a subrotina, pressione o botão Execute. Quando o comando é iniciado, a execução do programa principal continua, e a subrotina roda normalmente. SCORBASE facilita a operação de mais de 100 programas. LA Label (1, 2, Pro) Marca uma linha do programa que é referenciada pelo comando Jump. FIGURA 4.31 Caixa de diálogo Label. No campo Label, digite um nome. Não inclui espaços vazios; use um sublinhado. Não use o mesmo nome de rótulo mais de uma vez. PS Print to Screen & Log (2, Pro) Instrui SCORBASE. Para imprimir strings contendo dados, mensagens e valores de variáveis para um arquivo log, para janela de mensagem ou ambos. 38 FIGURA 4.32 Caixa de diálogo Print. Digite texto e espaços. Para imprimir um valor de uma variável, coloque o nome da variável entre aspas simples. Por exemplo, VARX=’X’ irá imprimir como VARX=50 (quando o valor de X for 50). Para imprimir um valor de variável de um script do Visual Basic, inclua “SCRIPT.” Seguido do nome da variável entre aspas simples. Por exemplo: VARY=’SCRIPT.Y’ irá imprimir como VARY=100 (quando o valor de SCRIPT.Y for 100). Selecione o destino de impressão desejado. SM Send Message (Pro) Envia uma mensagem para MANAGER, Robot Device Driver, CNC Device Driver ou Device Driver. FIGURA 4.33 Caixa de diálogo Send Message (Device). Para uma mensagem para o MANAGER, selecione o tipo de mensagem da lista de tipos disponíveis. Digite um Task ID e selecione uma mensagem do menu listado. Consulte o manual de usuário Open CIM para mais detalhes. Para outros drivers de dispositivos, digite o ID do Dispositivo que deseja receber a mensagem e digite o string a ser enviado. 39 FIGURA 4.34 Caixa de diálogo Send Message (Manager). MC Send Command (Pro) Envia um comando para o CNC Device Driver. Esta é a mesma caixa de diálogo do comando SM (Send Message), exceto que o dispositivo padrão é o CNC Device Driver, e a mensagem padrão é um comando, em vez de um string. FIGURA 4.35 Caixa de diálogo Send Message (CNC Device). LS Load Script (Pro) Carrega um script do Visual Basic através da seguinte janela: FIGURA 4.36 Caixa de diálogo Load Script. O script deve ser localizado no mesmo subdiretório do arquivo do projeto. Entretanto, é responsabilidade do programador assegurar que não haja conflitos de nome. 40 EN End Program (Pro) Este comando simplesmente apresenta o comando End na linha selecionada do programa. Isto significa o fim do programa. Pode ser usado em mais de uma sub-rotina, assim como sub-rotinas que respondem a várias condições de erros. 41 4.6 Comandos de Entrada/Saída Nível 1 – Introdutório (L1) Nível 2 – Avançado (L2) Nível Pro – Profissional II If Input # On/Off Jump (1, 2, Pro) Leva o programa a saltar para um rótulo ou chamar uma sub-rotina, se o estado da entrada digital testada corresponde ao status especificado (On ou Off). FIGURA 4.37 Caixa de diálogo If Input. No campo Input Number, digite o número da entrada digital (1-8) ou uma variável. Selecione On ou Off para o estado da entrada. Selecione Jump ou Call subroutine; em seguida, preencha o campo ativo. No campo Jump to Label, digite o nome de um rótulo (label). No campo Call subroutine, digite o nome de uma sub-rotina ou uma variável. OI On Input Interrupt # On/Off (Pro) Estabelece a condição para um serviço que interrompe a entrada. O serviço (Call Subroutine ou Run Subrotine) será realizado sempre que a condição (estado da entrada) é satisfeita, independentemente do ponteiro posicionado no programa. 42 FIGURA 4.38 Caixa de diálogo On Input. Input Number Digite o número de uma entrada digital, uma variável ou a palavra ANY. O uso da palavra ANY leva qualquer entrada (1-8) ao estado interrompido. On/Off Selecione o estado da entrada. Call Subroutine Digite o nome de uma sub-rotina que será executada em caso de interrupção. A execução do programa principal será suspensa até que se complete a sub-rotina. Run Subrotine Digite o nome de uma sub-rotina que será executada em caso de interrupção. A execução do programa principal continua e a sub-rotina é gerada como um processo simultâneo. Um comando de interrupção faz com que o programa trave o comando que está sendo executado (que também pode ser um movimento ou um atraso) e execute imediatamente o comando relacionado a esta interrupção. Se o comando especificado for Call Subroutine, o programa será retomado do ponto onde foi suspenso, ao passo que se complete a execução da sub-rotina. Se o comando especificado é Run Subrotine, o programa principal retoma imediatamente depois que o processo simultâneo iniciar. Um comando de interrupção pode ser habilitado ou desabilitado através do EI (Enable Interrupt) e DI (Disable Interrupt) descritos posteriormente. Exemplo: FIGURA 4.39 Caixa de diálogo On Input Interrupt (Call). Isto insere a seguinte linha de código: On Input Interrupt 1 On Call Subroutine GET001 Quando a entrada 1 é ligada, o programa imediatamente chama a sub-rotina GET001. Se quaisquer eixos estiverem se mexendo quando a interrupção ocorrer, eles pararão imediatamente. 43 Quando a sub-rotina for concluída (o comando RS – Return from Subroutine é acionado), os eixos irão reassumir a posição e estado que foram interrompidos e o programa irá continuar daquele ponto. DI Disable Interrupt # (Pro) Define a interrupção de uma entrada específica a se tornar inativa. Quando uma interrupção é inativa, ela é ignorada até que o comando EI (Enable Interrupt) é reativo. FIGURA 4.40 Caixa de diálogo Disable Interrupt. Input Number Digite o número da entrada, uma variável ou a palavra ALL. Enable/Disable Selecione Enable para modificar o comando. EI Enable Interrupt # (Pro) Define a interrupção de uma entrada específica a se tornar ativa. Quando uma interrupção é ativa, ela aguarda por um estado de interrupção (definido usando o comando OI – On Interrupt descrito anteriormente). FIGURA 4.41 Caixa de diálogo Enable Interrupt. Input Number Digite o número da entrada, uma variável ou a palavra ALL. Enable/Disable Selecione Disable para modificar o comando. ON Turn On Output # (1, 2, Pro) Define o estado de uma saída específica a On. As configurações padrão de Digital e On podem ser modificadas. 44 FIGURA 4.42 Caixa de diálogo Turn On Output. Número de saída Digite um número ou tipo de nome de variável. OF Turn Off Output # (1, 2, Pro) Define o estado de uma saída específica a Off. As configurações padrão de Digital e Off podem ser modificadas.FIGURA 4.43 Caixa de diálogo Turn Off Output. Número de saída Digite um número ou tipo de nome de variável. AO Set Analog Output # (Pro) Define o estado de uma saída analógica específica. A configuração padrão analógica pode ser modificada. FIGURA 4.44 Caixa de diálogo Set Analog Output. 45 Número de saída Digite um número (1 ou 2) ou uma variável. Intervalo de valores Digite um número entre 0 e 255 que corresponde a voltagem da saída. O intervalo da voltagem da saída é entre 0 e 10 Volts. AI Set Variable to Analog Input # (Pro) Define o valor da entrada analógica específica para uma variável. FIGURA 4.45 Caixa de diálogo Set Variable (Analog). Número de saída Digite o nome da variável. O primeiro caractere do nome deve ser uma letra. Número de entrada analógica Digite um número de entrada (1-4) ou uma variável, onde o valor da variável é um inteiro entre 0 e 255, correspondente a voltagem entre 0 e 10 Volts. WN | WAIT for Digital Input # On Para a execução do programa até que a entrada selecionada seja acionada. FIGURA 4.46 Caixa de diálogo Wait For Digital Input On. 46 WN | WAIT for Digital Input # Off Para a execução do programa até que a entrada selecionada seja desligada. FIGURA 4.47 Caixa de diálogo Wait For Digital Input Off. 47 4.7 Comandos Avançados Os comandos avançados somente estão disponíveis no Nível Pro, mostrados na Árvore de Comandos e selecionando Options | Advanced Options | Advanced Commands. Nível Pro – Profissional UP Use Parameter Set (Pro) Especifica o conjunto de parâmetros a ser utilizado. Abra a lista selecionando o conjunto de parâmetros desejado e clique em OK. FIGURA 4.48 Caixa de diálogo Use Parameter Set. PV Set Parameter Value (Pro) Define o valor para um parâmetro de dispositivo selecionado pelo nome. Os detalhes do parâmetro selecionado são automaticamente exibidos. FIGURA 4.49 Caixa de diálogo Set Parameter Value. 48 Eixo Abra a lista para selecionar o eixo que você necessita mudar o parâmetro. Nome Abra a lista para selecionar o parâmetro cujos valores necessitam mudar. Valor Digite um novo valor 4.8 Comandos de Visão Os comandos de visão somente estão disponíveis no Nível Pro, mostrados na Árvore de Comandos e selecionando Options | Advanced Options | ViewFlex Commands. Para uma visão detalhada desses comandos, veja o VIEWFLEX USER MANUAL (http://bit.ly/viewflex-intelitek). Nível Pro – Profissional SN Snap Captura uma imagem. FO Find Object Encontra objetos de acordo com o nome de modelo padrão salvo na pasta padrão. Retorna o número de instâncias do objeto. FIGURA 4.50 Caixa de diálogo Find Object. 49 Digite o nome do modelo no campo Model Name. A variável do SCORBASE deve ser apresentada no campo Variable of Object Instances. Todas as coordenadas e características mínimas (de “bolha”) devem ser colocados na tabela Results. FB Find Blobs Encontra “bolhas” de acordo com a análise do nome da bolha que foi salva na respectiva pasta. Retorna o número de instâncias da bolha. FIGURA 4.51 Caixa de diálogo Find Blobs. Digite o nome do modelo no campo Blob Name. A variável do SCORBASE deve ser apresentada no campo Variable of Blob Instances. Todas as coordenadas e características mínimas (de “bolha”) devem ser colocados na tabela Results. SP Set Position Determina o valor da coordenada da tabela Results em um número de posição do SCORBASE. No campo Position, insira o número da posição do SCORBASE. No campo Row insira o número da posição da fileira na tabela Results. No campo Z (mm) insira a coordenada Z; por padrão, o valor da coordenada Z será a mesma do valor da posição calibrada. Z pode ser uma variável ou constante. FIGURA 4.52 Caixa de diálogo Set Position. EF External Function Executa a função ou sub-rotina que o usuário escreve no Matrox script. FIGURA 4.53 Caixa de diálogo External Function. 50 Os resultados da função serão atribuídos à variável. No campo Script Name, insira o nome do script na pasta correspondente. No campo Function, insira a função ou nome da sub-rotina que está no script. No campo Parameter, insira o parâmetro que pode ser uma variável ou constante do SCORBASE (somente disponível para ViewFlex do SCORBASE para o ER-4u). No campo Return, insira a variável SCORBASE que irá obter o retorno da função. GV Get Value Recebe o valor de qualquer célula da tabela Results. FIGURA 4.54 Caixa de diálogo Get Value. No campo Variable Name, insira a variável do SCORBASE. O valor da célula será atribuído para a variável. No campo Row, insira a fileira da célula da tabela Results. No campo Column, insira o nome da coluna da tabela Results, que pode ser um número ou o nome exato da coluna. CT Change Table Modifica o valor de qualquer célula da tabela Results. FIGURA 4.55 Caixa de diálogo Change Table. No campo Row, insira a fileira da célula da tabela Results. No campo Column, insira o nome da coluna da tabela Results, que pode ser um número ou o nome exato da coluna. No campo Value, insira a variável do SCORBASE ou constante que desejar obter. 51 5 EXECUTANDO PROGRAMAS A Janela de Programas e as barras de diálogo descritas nesse capítulo são usadas para ativar e monitorar a execução do programa. Selecione Window e, em seguida, Run Screen para exibir somente a janela de programas, que mostra a seção do programa executada no momento. Status Bar – indica a linha executada no momento ou valor de uma variável. Inputs and Outputs Dialog Bars – mostra a Entrada Analógica, Saída Analógica, Entrada Digital, valores de Saída Digital. Para ativar as barras de diálogo que são muito úteis para a execução do programa, selecione View e, em seguida, Dialog Bars. Log file – grava os dados durante a execução do programa. 5.1 Executando um programa O SCORBASE oferece três modos de rodar um programa. Para selecionar um desses, faça um dos seguintes passos: Clique no ícone Run apropriado na barra de ferramentas. Selecione uma das opções Run no Run Menu. Pressione a tecla da função. Single line [F6] Executa a linha selecionada no momento. Single cycle [F7] Executa o programa a partir da linha selecionada no momento. Para de rodar quando a última linha for executada. Continuous [F8] Executa o programa a partir da linha selecionada no momento. Após a execução da última linha, a execução do programa continua a partir da primeira linha. A tecla [Run] no Teach Pendant (console de instruções) não pode ser usada para iniciar a execução dos programas no SCORBASE 5.2 Executando Programa de parada Stop e Pause são os dois métodos de parada de execução de programa do SCORBASE. Para parar ou pausar programas do SCORBASE, faça um dos seguintes passos: Clique no ícone apropriado na barra de ferramentas; Selecione Run e Stop ou Run e Pause. Pressione [F9] ou [F10]. Tenha certeza de que a aplicação do SCORBASE está numa janela ativa para pressionar STOP. 52 Stop [F9] A execução do programa para imediatamente. Use este comando somente em emergências. Se a área de trabalho é conectada somente para um robô estacionário como ER-4u, o comando STOP é diretamente enviado ao dispositivos. Entretando, outros dispositivoscomo ER-400 AGV Mobile Robot requerem ao usuário definir uma sub-rotina com o nome ON_STOP. Quando o botão STOP ou o botão [F9] é pressionado, a sub-rotina ON_STOP é chamada. A sub-rotina deve conter uma linha como Turn Off Output 1. A figura a seguir mostra um exemplo para usar com o ER-400 AGV Mobile Robot.: FIGURA 5.1 Exemplo com Stop. Pause [F10] Para a execução do programa somente depois que o comando atual foi executado. Assim, os eixos podem continuar se movendo (para completar seu movimento) depois que o comando Pause acabar. 5.3 Barras de diálogo para entrada e saída Digital Inputs & Outputs As barras de diálogo Digital Inputs & Outputs mostram o estado das entradas e saídas digitais do controlador. O display é disponível em todos os modos de operação. FIGURA 5.2 Barras Digital Inputs & Outputs. Nas duas barras, quando o estado I/O (Input/Output) for Off (false), o número correspondente do I/O é verde escuro. Quando for On (true), o número correspondente é verde claro. Se o controle está ligado, os dezesseis LEDs de Output/Input (Saída/Entrada) do painel frontal refletirão o estado I/O, e ao clicar em um número de saída da barra Digital Output alterna o estado das saídas digitais do controlador. No modo Off-Line, a barra Digital Output pode também ser usada para simular o estado das estradas digitais do controlador. Esta opção é útil para checar o comando If Input#_onJump. No modo On-Line, para testar a resposta do programa para o comando If Input#_onJump, reduza o terminal de entrada indicado para uma entrada digital aterrada. 53 Analog Inputs & Outputs SCORBASE pode monitorar e controlar quatro entradas analógicas e duas saídas analógicas. As barras de diálogo Analog Inputs & Outputs mostram os valores das entradas e saídas analógicas do controlador. Estas barras podem também ser abertas ou fechadas utilizando os comandos View | Show All Dialog Bars ou View | Close All Dialog Bars. FIGURA 5.3 Barras Analog Inputs & Outputs. A resolução das entradas e saídas analógicas é 8-bit. A extensão é de 0 (mínimo) a 255 (máximo). Valores de saída podem ser manipulados quando o SCORBASE estiver On-Line. Para mudar o valor de uma saída analógica, faça um dos seguintes: Clique em Output (a cor transforma de amarelo claro a branco), e digite um número. Utilize o comando AO (Set Analog Output #). Quando o controlador receber um sinal de entrada analógica de um dispositivo externo, o valor (0-255) do sinal é refletido no campo Input Value. 5.4 Arquivo de Registro do SCORBASE O arquivo de registro do SCORBASE grava a mensagem impressa utilizando o comando PS (Print to Screen Log). Para imprimir uma mensagem do arquivo de registro, clique em Log File ou Screen and Log File. FIGURA 5.4 Comando Print to Screen. O arquivo Log é aberto toda vez que o SCORBASE for carregado. Para ver o conteúdo do arquivo, abra SCBS.LOG usando um editor de texto (como, por exemplo, WordPad). O arquivo é localizado no subdiretório no SCORBASE denomidado BIN. O programa gera um arquivo de backup SCBS.BAK do arquivo SCBS.LOG toda vez que o programa fecha. 54 6 CONSOLE DE INSTRUÇÕES - TEACH PENDANT 6.1 Análise preliminar O Console de Instruções (do inglês Teach Pendant) é um controle portátil de qualidade industrial que foi adaptado para o ambiente educacional. O Teach Pendant é um terminal portável sofisticado para operar e controlar os eixos conectado ao controlador do robô. Ele é equipado com um botão de emergência (Emergency Stop), um comutador seletor (Auto/Teach), um interruptor de segurança (Dead Man switch) e 24 teclas de funções. O Teach Pendant pode ser montado em um gancho fornecido, fora da área de trabalho do robô. 6.2 Operação O interruptor Auto/Teach no Teach Pendant deve estar na posição Teach para permitir o console total controle dos eixos. O interruptor de segurança (Dead Man) e o botão de emergência (Emergency Stop) assegurando segurança ao operador. O interruptor Dead Man deve permanecer pressionado o tempo todo para operar o Teach Pendant; se soltar esse botão, o Teach Pendant será inoperante. Esta restrição é por motivos de segurança. Interruptor Auto/Teach Este interruptor habilita o usuário a escolher entre manipular o controlador robótico do Teach Pendant ou do computador: Quando esse interruptor estiver na posição Teach, o console tem total controle dos eixos. Os comandos e funções do SCORBASE que afetam o movimento dos eixos (como o botão Control On, execução do programa, o comando Go to Position e a caixa Manual Movement) não podem ser ativados do SCORBASE. Quando o interruptor estiver na posição Auto, o Teach Pendant é desabilitado, e o SCORBASE tem total controle de todos os eixos. Se o interruptor for alterado de Auto para Teach enquanto os programas estão rodando, a execução é abortada. Interruptor Dead Man O interruptor de segurança Dead Man é um botão alongado do lado direito do Teach Pendant, como mostra a imagem a seguir. 55 FIGURA 6.1 Interruptor Dead Man. Enquanto o Teach Pendant estiver no modo Teach, este botão deve permanecer pressionado o tempo todo para permitir controle dos eixos através do console. Se o Dead Man for solto quando estiver no modo Teach, todos os eixos irão parar e o console estará inoperante. Assim, o texto Emergency! irá aparecer na tela para indicar que uma parada de emergência ocorreu. Botão Emergency O botão Emergency é um botão vermelho que se encontra na face do Teach Pendant e funciona do mesmo jeito do Emergency Button no controlador. FIGURA 6.1 Interruptor Dead Man. O botão Emergency pode ser ativado independente do estado do console (ou seja, tanto no modo Teach e Auto). Pressione o botão para ativar; solte para desativar. Quando o botão é pressionado, o sistema vai ao estado de emergência. Para cancelar o estado de emergência do Teach Pendant, solte o botão de emergência. Pressione Control On/Off para acionar o controle. 6.3 Teclas de Funções O teclado do Teach Pendant tem 24 botões codificados por cores. A maioria dos botões são multifuncionais: por exemplo, alguns botões incluem um comando de guiar um eixo e uma função numérica. O controlador reconhece os botões pela ordem que eles são pressionados. Assim, a função numérica será ativa somente se uma função como Speed (velocidade) ou Move (mover) for pressionado primeiro; de outra forma, o comando de guiar um eixo será ativo. Os comandos do console podem ser executados somente quando ele estiver no modo Teach e o interruptor Dead Man é pressionado. Enter/Execute O comando Enter/Execute aceita e/ou executa o comando a ser teclado. 56 Joints/XYZ O comando Joint/XYZ seleciona o sistema de coordenadas para execução de comandos. Assim, pressione esse comando de Joints (Juntas) para Cartesian (Cartesianas – XYZ) e vice-versa. Dependendo do sistema ativo de coordenadas: os movimentos manuais dos eixos são executados de acordo com as coordenadas de juntas ou coordenadas XYZ. o comando Record Position do console grava posições ou em coordenadas de juntas ou coordenadas XYZ. Clear/Group Select O comando Clear/Group Select limpa um comando parcialmente teclado. Group Select não é disponível no Teach Pendant. Os grupos de eixo A (eixos do robô), B (eixos periféricos) e G (garra) são automaticamente ativados quando um número de eixo é selecionado. Move + Manual Quando em: modo de juntas,
Compartilhar