Programas de robôs

O RoboDK é um simulador voltado para aplicações de robôs industriais. Isso significa que os programas de robôs podem ser criados, simulados e gerados off-line para um braço de robô e um controlador de robô específicos. Em outras palavras, o RoboDK é um software para programação off-line.

Para criar programas de robôs, é necessário selecionar um robô, carregar as ferramentas do robô e usar um ou mais recursos de CAD para criar programas, adicionando alvos ou usando ferramentas específicas (como a conversão de programas CNC em programas de robôs).

Uma extensa biblioteca de robôs industriais está disponível em . Os robôs industriais são modelados no RoboDK da mesma forma que se comportam usando controladores específicos do fornecedor, incluindo limites de eixo, senso de movimento e vinculação de eixo.

Robot Programs - Imagem 1

Esta seção mostra como os programas do robô podem ser criados, simulados e gerados para um controlador de robô específico usando a interface gráfica do usuário (GUI) do RoboDK.

Programação off-line

Programação off-line (ou programação fora da linha) significa programar robôs fora do ambiente de produção. A programação off-line elimina o tempo de inatividade da produção causado pela programação no chão de fábrica (programação usando a botoeira de ensino).

A simulação e a programação off-line permitem estudar vários cenários de uma célula de robô antes de configurar a célula de produção. Os erros comumente cometidos no projeto de uma célula de trabalho podem ser previstos a tempo.

A programação off-line é a melhor maneira de maximizar o retorno sobre o investimento em sistemas de robôs e requer ferramentas de simulação adequadas. O tempo para a adoção de novos programas pode ser reduzido de semanas para um único dia, permitindo a robotização da produção de curto prazo.

Criar um programa

Uma simulação pode ser realizada adicionando uma sequência de instruções em um programa. Cada instrução representa um código específico para um controlador específico; no entanto, o RoboDK oferece uma interface gráfica do usuário (GUI) para criar facilmente programas de robôs, de forma genérica, sem a necessidade de escrever código.

O código específico de um controlador de robô será gerado automaticamente quando o programa for gerado. Para criar um novo programa vazio usando a interface gráfica do usuário do RoboDK:

1.Selecione Program➔Robot Programs - Imagem 2 Add Program      
Como alternativa, selecione o botão correspondente na barra de ferramentas.

2.Selecione Tools➔ Rename item... (F2) para renomear o programa

Essa ação criará um programa vazio e permitirá adicionar novas instruções clicando com o botão direito do mouse no programa ou selecionando uma instrução no menu Program (Programa). A próxima seção Program Instructions (Instruções do programa) fornece mais informações sobre como adicionar instruções.

Robot Programs - Imagem 3

Instruções do programa

É possível adicionar novas instruções clicando com o botão direito do mouse em um programa ou no menu Program, conforme mostrado na seção anterior.

Esta seção descreve as instruções suportadas pela interface gráfica do usuário do RoboDK para a programação off-line do robô.

Movimento conjunto

Selecione Program➔Robot Programs - Imagem 4 Move Joint Instruction para adicionar uma nova instrução de movimento articular. Como alternativa, selecione o botão correspondente na barra de ferramentas.

A menos que um alvo seja selecionado antes de adicionar a instrução, a instrução de movimento criará um novo alvo e eles serão vinculados. Se o alvo for movido, o movimento também será modificado.

Se essa for a primeira instrução adicionada ao programa, mais duas instruções serão adicionadas antes da instrução de movimento: uma seleção de quadro de referência e uma seleção de quadro de ferramenta. Isso garantirá que, quando o programa chegar à instrução de movimento, o robô esteja usando os mesmos quadros de referência e de ferramenta usados para criar esse novo alvo.

Robot Programs - Imagem 5

Movimentação linear

Selecione Program➔Robot Programs - Imagem 6 Move Linear Instruction para adicionar uma nova instrução de movimento linear. Como alternativa, selecione o botão correspondente na barra de ferramentas.

A menos que um alvo seja selecionado antes de adicionar a instrução, a instrução de movimento criará um novo alvo e eles serão vinculados. Se o alvo for movido, o movimento também será modificado.

Os movimentos conjuntos e os movimentos lineares se comportam da mesma forma e podem ser facilmente alternados de um tipo para o outro.

Da mesma forma que a instrução Joint Move, se essa for a primeira instrução adicionada a um programa, mais duas instruções serão adicionadas antes da instrução de movimento: uma seleção de Reference Frame e uma seleção de Tool Frame.

Ao contrário dos movimentos conjuntos, os movimentos lineares são sensíveis às singularidades do robô e aos limites dos eixos. Por exemplo, os robôs de 6 eixos não podem atravessar uma singularidade após um movimento linear. A imagem a seguir mostra um exemplo que diz que a junta 5 está muito próxima de uma singularidade (0 graus). [...] Em vez disso, considere um movimento de junta. Como mostrado na imagem a seguir.

Robot Programs - Imagem 7

Se um movimento linear não for estritamente necessário, clique com o botão direito do mouse na instrução de movimento e altere-a para Joint Instruction (Instrução conjunta)

Robot Programs - Imagem 8

Como alternativa, o alvo, o TCP ou a posição do quadro de referência devem ser modificados para evitar a singularidade.

Definir quadro de referência

Selecione Program ➔Robot Programs - Imagem 9Set Reference Frame Instruction para usar um quadro de referência específico. Isso atualizará o quadro de referência fornecido no controlador para as instruções de movimento a seguir e alterará o quadro de referência ativo do robô no RoboDK para fins de simulação. Isso significa que as instruções de movimento para alvos específicos (alvos cartesianos) serão feitas com relação ao último quadro de referência definido.

O quadro de referência é uma variável também conhecida como Work Object (robôs ABB), UFRAME (robôs Fanuc), FRAME (para robôs Motoman) ou $BASE (para robôs KUKA).

Robot Programs - Imagem 10

Definir quadro de ferramentas

Selecione Program ➔Robot Programs - Imagem 11 Set Tool Frame Instruction para usar um quadro de ferramenta específico (TCP). Isso atualizará o quadro de ferramentas fornecido no programa para as instruções de movimento a seguir e alterará o quadro de ferramentas ativo do robô no RoboDK para fins de simulação. Isso significa que as instruções de movimento para um alvo específico (alvos cartesianos) serão feitas com relação ao último quadro de ferramentas definido.

A estrutura de referência é uma variável também conhecida como ToolData (robôs ABB), UTOOL (robôs Fanuc), TOOL (para robôs Motoman) ou $TOOL (para robôs KUKA).

Robot Programs - Imagem 12

Movimento circular

Selecione Program➔Robot Programs - Imagem 13 Move Circular Instruction para adicionar uma nova instrução de movimento circular. Como alternativa, selecione o botão correspondente na barra de ferramentas.

A menos que dois alvos sejam selecionados antes de adicionar a instrução, a instrução de movimento não criará novos alvos. É necessário adicionar mais dois alvos separadamente e vinculá-los a partir da instrução de movimento circular, conforme mostrado na próxima imagem.

Robot Programs - Imagem 14

O caminho circular é um arco criado a partir do ponto em que o robô está localizado, passando pelo primeiro ponto circular (Target Linked 1) e terminando no ponto final (Target Linked 2).

Definir velocidade

Selecione Program➔Robot Programs - Imagem 15 Set Speed Instruction para adicionar uma nova instrução que altere a velocidade e/ou a aceleração. É possível especificar a velocidade e as acelerações no espaço da articulação e no espaço cartesiano.

Ative os casos correspondentes para impor uma velocidade e/ou aceleração específica no programa. A velocidade do robô é aplicada a partir do momento em que essa instrução é executada.

A velocidade do robô também pode ser alterada no menu de parâmetros do robô: Clique duas vezes no robô e, em seguida, selecione parâmetros.

Robot Programs - Imagem 16

Mostrar mensagem

Selecione Program➔Robot Programs - Imagem 17 Show Message Instruction para adicionar uma nova instrução que exibirá uma mensagem no pendente de aprendizagem.

Robot Programs - Imagem 18

Pausa

Selecione Program➔Robot Programs - Imagem 19 Pause Instruction para adicionar uma nova instrução que pausará a execução do programa por algum tempo ou interromperá o programa até que o operador deseje retomá-lo.

Robot Programs - Imagem 20

Chamada de programa

Selecione Program➔Robot Programs - Imagem 21 Program Call Instruction para adicionar uma chamada a um subprograma do programa atual.

Por padrão, essa é uma chamada de bloqueio para um programa específico. Entretanto, é possível alternar para Insert Code para inserir um código específico no local dessa instrução. Isso pode ser útil para um aplicativo específico e um controlador específico.

Robot Programs - Imagem 22Robot Programs - Imagem 23

Mudar de Program Call para Start Thread para provocar uma chamada sem bloqueio para um subprograma. Nesse caso, o controlador iniciará um novo thread. Essa opção só está disponível para determinados controladores e só funciona para operações específicas.

Definir/esperar IO

Selecione Program➔Robot Programs - Imagem 24 Set or Wait I/O Instruction para alterar o estado das saídas digitais (DO). Por padrão, essa instrução é definida como Set Digital Output (Definir saída digital). Essa instrução também permite esperar que uma entrada digital (DI) específica mude para um estado específico.

O IO Name pode ser um número ou um valor de texto se for uma variável nomeada. O IO Value pode ser um número (0 para False e 1 para True) ou um valor de texto se for um estado nomeado.

Robot Programs - Imagem 25

Defina Wait for Digital Input para interromper a execução do programa até que uma entrada específica mude para um valor específico. Além disso, a maioria dos controladores de robôs suporta um atraso de tempo limite para gerar um erro se o tempo de espera exceder um valor específico. Marque a opção Timeout (ms) para ativar esse recurso.

Robot Programs - Imagem 26

A alteração das entradas e saídas digitais simuladas criará novas variáveis de estação. Para verificar o estado dessas variáveis, o senhor pode clicar com o botão direito do mouse na estação e selecionar Parâmetros da estação. Também é possível ler ou modificar essas variáveis por meio da API.

Definir o valor de arredondamento

Selecione Program➔Robot Programs - Imagem 27 Set Rounding Instruction para alterar a precisão do arredondamento. A precisão de arredondamento usada para suavizar as bordas entre movimentos consecutivos. Essa alteração tem efeito a partir do momento em que é executada em um programa (da mesma forma que todas as outras instruções), portanto, é comum definir esse valor no início de um programa.

Sem uma instrução de arredondamento, o robô atingirá a velocidade de 0 no final de cada movimento (a menos que o próximo movimento seja tangente ao movimento anterior). Isso provocará altas acelerações e mudanças rápidas de velocidade para garantir a melhor precisão para cada movimento.

Esse valor também é conhecido como Blending radius (Universal Robots), ZoneData (robôs ABB), CNT/FINE (robôs Fanuc), Cornering (robôs Mecademic) ou $APO.CDIS/$APO.CPTP/Advance (robôs KUKA).

Robot Programs - Imagem 28

Alguns controladores exigem a definição desse valor como uma porcentagem; por exemplo, em um controlador Fanuc, se o senhor quiser fornecer o comando CNT5, deve inserir o valor 5.

O senhor também pode especificar o parâmetro de arredondamento na janela Program Events se estiver gerando seus programas para usinagem de robôs, impressão 3D ou seguimento de curva/ponto.

Robot Programs - Imagem 29

Os testes de precisão de caminho do RoboDK podem permitir uma melhor compreensão dos efeitos de diferentes estratégias de arredondamento.

Evento de simulação

Selecione Program➔Robot Programs - Imagem 30 Simulation Event Instruction para provocar um evento de simulação específico. Os eventos de simulação não têm impacto sobre o código gerado e são usados apenas para provocar um evento específico para fins de simulação.

Os eventos de simulação que usam a interface gráfica do usuário permitem que o senhor:

Anexar ou desanexar objetos às ferramentas do robô

mostrar ou ocultar objetos ou ferramentas

alterar a posição de objetos e quadros de referência

Robot Programs - Imagem 31

Por exemplo, se o robô se mover para um local específico para pegar um objeto, podemos configurar um evento Attach object para mover esse objeto junto com o robô. Então, depois que o robô tiver se movido e estiver pronto para deixar os objetos, podemos configurar um evento Detach object para deixar quaisquer objetos que a ferramenta tenha pegado.

Robot Programs - Imagem 32

Simular programa

Clique duas vezes no programaRobot Programs - Imagem 33 para iniciar a simulação do programa.

Alternativamente:

1.Clique com o botão direito do mouse no programa

2.Selecione Executar

Uma barra de simulação aparecerá na parte inferior se o programa for clicado duas vezes. É possível deslizar a simulação para movê-la para frente ou para trás usando a barra de simulação.

Robot Programs - Imagem 34

Por padrão, o RoboDK simula 5 vezes mais rápido do que o tempo real. Isso significa que, se um programa levar 30 segundos para ser executado, ele será simulado em 30/5=6 segundos. Acelerar a simulação aumenta essa proporção para 100. As velocidades de simulação normal e rápida podem ser alteradas no menu  MotionTools➔ Options➔.

Robot Programs - Imagem 37

Generate Program

Quando o senhor tiver um programa pronto para ser exportado para o robô, poderá gerar o arquivo de programa exigido pelo controlador do robô.

Siga estas etapas para gerar um programa de robô:

1.Clique com o botão direito do mouse em um programa.

2.Selecione Generate Robot Program (F6).

Em seguida, o senhor verá o programa do robô exibido em um editor de texto.

Robot Programs - Imagem 38

Por padrão, os programas do robô são salvos na pasta Documents (C:/Users/Your Name/Documents/RoboDK/Programs/). O senhor pode alterar essa pasta selecionando Tools (Ferramentas)➔ Options (Opções), selecione a guia Program (Programa) e clique em Set (Definir) ao lado da pasta Robot programs (Programas do robô).

Como alternativa, o senhor também pode clicar com o botão direito do mouse em um programa e selecionar Generate Robot Program as ... (Shift+F6) para gerar o programa especificando o local onde gostaria de salvá-lo.

Programa de transferência

É possível transferir um programa do computador diretamente para o robô. Essa opção geralmente envia o programa para o robô por meio do protocolo FTP ou de outros protocolos específicos, como o uso de mensagens de soquete ou conexão serial. Primeiro, é necessário inserir as configurações de IP e FTP do robô no menu de conexão do robô:

1.Clique com o botão direito do mouse em um robô.

2.Selecione Connect to robot... Uma janela será exibida à esquerda.

3.Digite o IP do robô.

4.Selecione More options (Mais opções) para inserir as configurações de FTP e as credenciais de FTP (se necessário)

Robot Programs - Imagem 39

Depois que as configurações de rede tiverem sido fornecidas e o robô estiver conectado corretamente, siga estas etapas para transferir o programa para o robô diretamente do RoboDK:

1.Clique com o botão direito do mouse em um programa.

2.Selecione Enviar programa para o robô (Ctrl+F6).

Uma janela pop-up exibirá o status (sucesso ou falha).

Selecionar o pós-processador

A conversão da simulação do RoboDK em um programa de robô específico é feita por um Post Processor. O pós-processador define como os programas do robô devem ser gerados para um robô específico. Cada robô tem um pós-processador específico/default por padrão no RoboDK.

Para selecionar um pós-processador específico para um robô:

1.Clique com o botão direito do mouse em um robô ou programa.

2.Selecione Select Post Processor.

3.Escolha um pós-processador na lista.

4.Selecione OK.

Robot Programs - Imagem 40   Robot Programs - Imagem 41

A alteração foi aplicada e o programa pode ser gerado novamente para ver o resultado.

Os pós-processadores do RoboDK oferecem total flexibilidade para gerar programas de robôs para requisitos específicos. O RoboDK oferece pós-processadores para a maioria das marcas de robôs. Os pós-processadores podem ser facilmente criados ou modificados. Para obter mais informações sobre pós-processadores, consulte a seção dedicada aos pós-processadores.

Configurações de geração de programas

O senhor pode personalizar a forma de gerar programas para o seu robô.

Siga estas etapas para ver as configurações de geração de programas:

1.Selecione Tools (Ferramentas) Options (Opções).

2.Selecione a guia Program (Programa).

Robot Programs - Imagem 42

Esse menu permite que o senhor personalize a geração de programas, como, por exemplo

1.Dividir os movimentos articulares em etapas menores.

2.Dividir os movimentos lineares em etapas menores.

3.Converter movimentos circulares em pequenos movimentos lineares.

4.Dividir grandes programas de robôs em subprogramas.

5.Especifique o local padrão para salvar os programas do robô.

6.Especifique o editor de texto padrão para os programas do robô.

Converter movimentos circulares em lineares

O senhor pode converter facilmente momentos circulares em pequenos movimentos lineares ao gerar programas para o seu robô. Isso é útil se o seu controlador não suportar movimentos em arco.

Siga estas etapas para gerar arcos como pequenos movimentos lineares:

1.Selecione Tools (Ferramentas) Options (Opções).

2.Selecione a guia Program (Programa).

3.Selecione Avoid arcs (Evitar arcos).

4.Especifique o tamanho máximo do arco (mm), que define o tamanho dos movimentos lineares ao longo do arco.

Robot Programs - Imagem 43

Dividir programas grandes de robôs

Programas de robôs grandes podem exceder as limitações do controlador do robô. As limitações do controlador podem ser o tamanho do arquivo ou o número de linhas por programa. Por exemplo, um programa de robô feito para usinagem de robôs ou impressão 3D pode ter milhares de linhas de código.

Nesse caso, é melhor dividir um programa tão longo em subprogramas menores, incluindo um programa principal que execute os subprogramas.

Siga estas etapas para dividir automaticamente um programa longo:

1.Selecione Tools➔ Options➔ Program.

2.Marque Limitar o número máximo de linhas por programa e forneça o número máximo desejado de linhas por programa a serem geradas por arquivo.

Robot Programs - Imagem 44

Subprogramas em linha

Quando o senhor gera um programa que chama um subprograma, o RoboDK criará automaticamente uma instrução para chamar esse subprograma. Por outro lado, o senhor pode personalizar a saída do programa para incorporar subprogramas diretamente no programa principal e evitar chamadas de programas.

Siga estas etapas para colocar subprogramas em linha e evitar chamar programas off-line:

1.Selecione Tools (Ferramentas)➔ Options (Opções).

2.Selecione a guia Program (Programa).

3.Marque a opção Inline subprograms (Subprogramas em linha).

A partir de agora, quando o senhor gerar programas que contenham subprogramas, obterá o conteúdo desses subprogramas diretamente no primeiro programa/principal.

Robot Programs - Imagem 45

Pós-processadores vs. Motoristas

Os pós-processadores e os drivers de robôs usam métodos diferentes para movimentar os robôs. Enquanto um pós-processador permite que o senhor gere programas off-line, um driver permite que o senhor se comunique em tempo real com o robô.

Um pós-processador é usado para programação off-line e é responsável por converter o programa do robô RoboDK na linguagem de programação nativa do controlador do robô associado. Por exemplo, o pós-processador ABB gera arquivos .mod para controladores IRC5. O pós-processador também inclui o upload do programa para o controlador do robô, geralmente por FTP. As seguintes funcionalidades de um programa são tratadas pelo pós-processador:

1.Gerar programa do robô

2.Gerar o programa do robô como...

3.Enviar programa para o robô

4.Partida no robô (em combinação com o motorista)

Robot Programs - Imagem 46

Um driver de robô permite o controle remoto do seu robô a partir do seu computador usando o RoboDK. Isso permite que o senhor execute as instruções do programa do RoboDK no controlador do robô em tempo real. Isso inclui a capacidade de chamar programas remotos no controlador. Por exemplo, o driver ABB envia comandos de movimento por meio de comunicação de soquete. As seguintes funcionalidades são tratadas pelo driver:

1.Ative a opção Run on Robot e, em seguida, clique duas vezes para executar o programa no robô usando o driver.

2.Iniciar no Robot (em combinação com o pós-processador)

Robot Programs - Imagem 47