É possível adicionar novas instruções clicando com o botão direito do mouse em um programa ou no menu Programa, conforme mostrado na seção anterior.
Dica: Selecione uma instrução específica para adicionar uma nova instrução após a instrução selecionada.
Dica: É possível arrastar e soltar instruções dentro de um programa ou entre diferentes programas para reordená-las.
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 Joint
Selecione Programa ➔ Instrução Movimento Joint para adicionar uma nova instrução de movimento Joint. Como alternativa, selecione o botão correspondente na barra de ferramentas.
A menos que um ponto seja selecionado antes de adicionar a instrução, a instrução de movimento criará um novo ponto e eles serão vinculados. Se o ponto 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 frame de referência e uma seleção de frame de ferramenta. Isso garantirá que, quando o programa chegar à instrução de movimento, o robô esteja usando os mesmos frames de referência e de ferramenta usados para criar esse novo ponto.
Observação: Clique com o botão direito do mouse na instrução de movimento e selecione Opções de pontos... (F3) para abrir o menu de opções de ponto. O ponto pode ser modificado nessa janela ou diretamente na visualização 3D.
Movimento Linear
Selecione Programa ➔ Instrução Movimento Linear para adicionar uma nova instrução de movimento linear. Como alternativa, selecione o botão correspondente na barra de ferramentas.
A menos que um ponto seja selecionado antes de adicionar a instrução, a instrução de movimento criará um novo ponto e eles serão vinculados. Se o ponto for movido, o movimento também será modificado.
Os movimentos joint 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 Movimento Joint, 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 Frame de Referência e uma seleção de Frame de Ferramenta.
Importante: Recomenda-se manter o primeiro movimento de cada programa como um Movimento Joint usando um ponto Joint. Isso definirá corretamente a configuração desejada a partir do primeiro movimento e garantirá que o robô real esteja se movendo da mesma forma que foi simulado.
Ao contrário dos movimentos joint, 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 o eixo 5 está muito próximo de uma singularidade (0 graus). [...] Em vez disso, considere um movimento Joint. Como mostrado na imagem a seguir.
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 Movimento Joint.
Como alternativa, o ponto, o TCP ou a posição do frame de referência devem ser modificados para evitar a singularidade.
Definir frame de referência
Selecione Programa ➔ Instrução Definir Frame de Referência para usar um frame de referência específico. Isso atualizará o frame de referência fornecido no controlador para as instruções de movimento a seguir e alterará o frame de referência ativo do robô no RoboDK para fins de simulação. Isso significa que as instruções de movimento para pontos específicos (pontos cartesianos) serão feitas com relação ao último frame de referência definido.
O frame 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).
Observação: Controladores específicos suportam a configuração de frames de referência usando um frame de referência numerado (como os controladores Fanuc e Motoman). Nesse caso, o nome do frame de referência pode terminar com um número (por exemplo, Frame 4 para definir o índice de Frame 4).
Definir frame de ferramentas
Selecione Programa ➔ Instrução Definir Frame de Ferramenta para usar um frame de ferramenta específico (TCP). Isso atualizará o frame de ferramentas fornecido no programa para as instruções de movimento a seguir e alterará o frame de ferramentas ativo do robô no RoboDK para fins de simulação. Isso significa que as instruções de movimento para um ponto específico (pontos cartesianos) serão feitas com relação ao último frame 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).
Observação: Controladores específicos suportam a configuração de frames de ferramentas usando uma ferramenta numerada (como os controladores Fanuc e Motoman). Nesse caso, o nome do frame de ferramentas pode terminar com um número (por exemplo, Tool 4 para definir o índice de ferramenta 4).
Movimento circular
Selecione Programa ➔ Instrução Movimento Circular para adicionar uma nova instrução de movimento circular. Como alternativa, selecione o botão correspondente na barra de ferramentas.
A menos que dois pontos sejam selecionados antes de adicionar a instrução, a instrução de movimento não criará novos pontos. É necessário adicionar mais dois pontos separadamente e vinculá-los a partir da instrução de movimento circular, conforme mostrado na próxima imagem.
O caminho circular é um arco criado a partir do ponto em que o robô está localizado, passando pelo primeiro ponto circular (Ponto vinculado 1) e terminando no ponto final (Ponto vinculado 2).
Importante: não é possível realizar um círculo completo com apenas uma instrução circular. Um círculo completo deve ser dividido em dois movimentos circulares separados.
Definir velocidade
Selecione Program ➔ Instrução Definir Velocidade 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.
Observação: Nem todos os controladores de robôs suportam a configuração de acelerações com precisão.
Importante: Definir a velocidade correta é importante para calcular com precisão o tempo do programa (tempo de ciclo). Mais informações estão disponíveis na seção de tempo de ciclo.
Mostrar mensagem
Selecione Programa ➔ Instrução Exibir Mensagem para adicionar uma nova instrução que exibirá uma mensagem no terminal de programação.
Observação: Nem todos os controladores de robôs suportam a exibição de mensagens no terminal de programação a partir de um programa. Nesse caso, essa instrução não terá efeito.
Pausa
Selecione Programa➔ Instrução Pausa 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.
Observação: Defina o valor do atraso de pausa como -1 para pausar o programa até que o operador deseje retomá-lo. Nesse caso, a instrução será automaticamente denominada Stop.
Importante: Na simulação, uma pausa de 5 segundos levará 1 segundo para ser simulada para a proporção de simulação padrão de 5. Mais informações estão disponíveis na seção Simulação.
Chamada de programa
Selecione Programa ➔ Instrução Chamada de Programa 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 Inserir Cógido 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.
Dica: Clique em Selecionar Programa para preencher automaticamente o campo de texto. Caso contrário, uma correspondência de texto também deverá funcionar. Se houver uma correspondência de nome com o subprograma usado na instrução, esse subprograma será simulado no RoboDK.
Dica: digite várias linhas para configurar automaticamente várias instruções de chamada de programa em uma linha.
Mudar de Chamada de Programa para Iniciar Tópico 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.
Dica: Um programa principal usado somente para fins de simulação pode usar a opção Iniciar Tópico para iniciar a simulação de vários programas ao mesmo tempo (por exemplo, quando dois ou mais robôs são simulados).
Definir/aguardar IO
Selecione Programa ➔ Instrução Definir ou Aguardar I/O para alterar o estado das saídas digitais (DO). Por padrão, essa instrução é definida como 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 Nome de I/O pode ser um número ou um valor de texto se for uma variável nomeada. O Valor de I/O pode ser um número (0 para Falso e 1 para Verdadeiro) ou um valor de texto se for um estado nomeado.
Observação: Essa instrução também suporta a configuração de saídas analógicas (AO) ou a espera por entradas analógicas (AI) em alguns controladores de robôs. Nesse caso, é possível fornecer números decimais ou texto específico em vez de números.
Defina Aguardar por Entrada Digital 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.
Dica: É uma boa prática, por exemplo, se o robô tiver um hardware específico na célula (como uma pinça ou um eixo de fresagem), ativar esse hardware específico usando uma saída digital (DO) e, em seguida, aguardar que uma entrada digital (DI) específica mude para um estado específico.
A alteração das entradas e saídas digitais simuladas criará novas variáveis de estação. Para verificar o estado dessas variáveis, você 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 Programa ➔ Instrução Definir Arredondamento 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).
Observação: Defina o valor Arredondamento como -1 para provocar movimentos finos. Isso significa que o robô não arredondará as bordas da trajetória.
Dica: Um valor de arredondamento alto garantirá uma velocidade constante no caminho do robô em troca da perda de precisão nas bordas do caminho. Dependendo da aplicação, é comum encontrar uma boa relação entre a precisão e uma velocidade suave.
Alguns controladores exigem a definição desse valor como uma porcentagem; por exemplo, em um controlador Fanuc, se você quiser fornecer o comando CNT5, deve inserir o valor 5.
Você também pode especificar o parâmetro de arredondamento na janela Eventos de Programase estiver gerando seus programas para usinagem com robôs, impressão 3D ou seguimento de curva/ponto.
Os testes de precisão de trajetória do RoboDK podem permitir uma melhor compreensão dos efeitos de diferentes estratégias de arredondamento.
Simulação de Eventos
Selecione Programa ➔ Instrução Simulação de Eventos 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 você:
●Anexar ou desanexar objetos às ferramentas do robô
●mostrar ou ocultar objetos ou ferramentas
●alterar a posição de objetos e frames de referência
Por exemplo, se o robô se mover para um local específico para pegar um objeto, podemos configurar um evento Anexar objeto 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 Desanexar objeto para deixar quaisquer objetos que a ferramenta tenha pegado.
Observação: Eventos específicos também podem ser simulados usando macros (é necessário ter experiência em programação). Por exemplo, com o uso da API, é possível fazer com que os objetos apareçam aleatoriamente em locais específicos para uma simulação de retirada e colocação.
Observação: Ao anexar um objeto à ferramenta, o objeto mais próximo será anexado se não estiver mais distante de uma determinada distância. Essa distância é de 200 mm por padrão e pode ser alterada em: Ferramentas ➔ Opções➔ Distância máxima para anexar um objeto a uma ferramenta de robô. Além disso, por padrão, a distância é verificada a partir do local do TCP até a referência do objeto. Como alternativa, é possível usar a distância entre o TCP e a geometria do objeto selecionando Verificar a menor distância entre o TCP e a forma do objeto.