O RoboDK suporta todos os controladores de robôs KUKA desde o KRC2, incluindo os controladores KUKA KRC3 e KRC4. Esta documentação é baseada em um controlador KRC4. O controlador de robô KRC4 executa o sistema operacional Microsoft Embedded Windows 7. Os controladores anteriores, como o KRC2, executam o Windows 95. O terminal de programação do robô mostra uma "HMI", que é um programa que a KUKA desenvolveu para ser executado no Windows e é a interface que o usuário do robô deve usar para manipular o robô.
As seções a seguir demonstram operações típicas usando um terminal de programação de robô da KUKA para preparar um novo programa no RoboDK e transferi-lo para o robô.
Siga estas etapas para carregar um programa de um disco USB em seu controlador de robô KUKA KRC4.
1.Insira o disco USB no controlador do robô (é muito mais rápido do que usar a conexão do terminal de programação)
2.Se o disco USB não for exibido, será necessário entrar no modo Administrador
3.Selecione o arquivo do disco USB
4.Selecione Editar ➔ Copiar
5.Selecione uma pasta na unidade KRC
6.Selecione Editar ➔ Inserir
Ao gerar programas de robô para os controladores de robô KUKA KRC, Você pode definir os sistemas de coordenadas ($BASE) e as ferramentas ($TOOL) com as mesmas coordenadas inseridas no RoboDK ou sistemas de coordenadas numeradas e ferramentas numeradas, respectivamente.
Por padrão, o RoboDK exporta a pose completa (valores XYZABC) da sua ferramenta e o sistema de coordenadas da mesma forma que Você os inseriu no RoboDK. O código a seguir mostra um exemplo do que o RoboDK gera para um programa de robô KUKA SRC:
; ---- Setting tool (TCP) ----------
; TOOL_DATA[3]={FRAME: X 116.058,Y 0.0,Z 219.481,A 0.0,B 60.0,C 0.0}
$TOOL = {FRAME: X 116.058,Y 0.0,Z 219.481,A 0.0,B 60.0,C 0.0}
; $TOOL=TOOL_DATA[3]
; ----------------------------------
; ---- Setting reference (Base) ----
; BASE_DATA[1]={FRAME: X 640.289,Y -290.0,Z 0.0,A 90.0,B 0.0,C 0.0}
$BASE = {FRAME: X 640.289,Y -290.0,Z 0.0,A 90.0,B 0.0,C 0.0}
; $BASE = BASE_DATA[1]
; ----------------------------------
Por outro lado, se preferir vincular sua ferramenta (variável $TOOL) e o sistema de coordenadas (variável $BASE) a ferramentas e frames de referência numerados, Você pode alterar as seguintes variáveis no pós-processador:
●FRAME_INDEX: Defina essa variável como True para vincular seu sistema de coordenadas a um frame de base numerado. Você deve certificar-se de que o frame de referência tenha um número na estação do RoboDK, conforme mostrado na imagem a seguir.
●TOOL_INDEX: defina essa variável como True para vincular sua ferramenta a uma ferramenta numerada. Você deve se certificar de que sua ferramenta tenha um número na estação RoboDK, conforme mostrado na imagem a seguir.
Siga estas etapas para iniciar um programa de robô em seu controlador KUKA KRC4.
1.Selecione um programa na unidade de memória do KRC
2.Selecionar Selecionar na tela
3.Selecione o botão "R" (superior) e Resetar o Programa
4.Inicie o programa selecionando o botão verde "Play" no terminal de programação
As etapas a seguir permitem que você crie ou modifique as ferramentas do robô (TCP) a partir do controlador do robô, também conhecido como $TOOL na programação do robô KUKA KRC):
1.Selecione
2.Selecione uma ferramenta e edite ou recupere a posição X,Y,Z do TCP.
As etapas a seguir permitem que você veja as posições de eixos do robô:
1.Selecionar
2.Selecione o modo Específico do eixo e use a coluna da esquerda para obter as articulações do robô
Algumas seções do menu exigem direitos de "Perito" ou "Administrador". As etapas a seguir permitem entrar no modo "Perito":
1.Selecione
2.Selecione Perito (ou Administrador).
3.Digite a senha, se necessário (a senha padrão é "kuka")
Os drivers de robô oferecem uma alternativa à programação off-line (em que um programa é gerado e, em seguida, transferido para o robô e executado). Com os drivers de robô, é possível executar uma simulação diretamente no robô (Programação on-line). Mais informações estão disponíveis na seção Drivers de Robô.
Você pode estabelecer uma conexão entre o RoboDK e o seu controlador KUKA para mover o robô automaticamente a partir do seu computador. Isso permite que você use a opção RoboDK Executar no Robô para programação e depuração on-line. A conexão pode ser estabelecida por meio de uma conexão Ethernet padrão (TCP/IP).
Se Você não usar uma versão recente do RoboDK, poderá estar usando o driver legado (apikuka, baseado no projeto KUKAVARPROXY). Para usar o driver atual, certifique-se de que o driver kukabridge esteja selecionado na seção Mais opções da janela Conexão com o robô.
Siga estas etapas para configurar o driver do RoboDK para a KUKA:
1.Obtenha o arquivo do instalador do C3 Bridge (executável c3setup) neste link.
2.Usando a KUKA HMI, copie o arquivo de instalação c3setup.exe para a área de trabalho do seu controlador ou para uma pasta do sistema de controle.
3.Conecte um mouse (opcional, mas recomendado).
É possível plug-in de dispositivos USB no terminal de programação ou no controlador (não é necessário reinicializar).
Como alternativa, é possível estabelecer uma conexão de área de trabalho remota.
Essas etapas também podem ser realizadas usando a tela sensível ao toque do terminal de programação e o teclado virtual.
4.Usando o aplicativo KUKA HMI, é possível abrir o menu principal usando o botão KUKA
a.
b.
5.Localize o arquivo c3setup-1.6.1.exe copiado anteriormente e execute-o. Siga as instruções do instalador.
6.Permitir a porta 7000 (ou outra porta se a porta 7000 estiver ocupada, consulte a nota abaixo) para comunicação TCP/UDP (esta etapa não é necessária nos controladores KUKA KRC2):
a.Restaurar a HMI.
b.
c.NAT➔ Adicionar porta➔ Número da porta 7000
d.Definir protocolos permitidos: TCP/UDP
7.Inicie o C3 Bridge Server a partir do atalho na área de trabalho ou do item do menu Iniciar (Você pode pular esta etapa caso tenha selecionado Run C3 Bridge Server na última etapa da instalação).
8.Para iniciar o C3 Bridge Server automaticamente na inicialização do sistema, copie o atalho do aplicativo da área de trabalho para a pasta INICIARup do menu Iniciar.
O C3 Bridge Server já está pronto. Você pode deixar esse programa em execução. Esse servidor permite que você troque valores de variáveis globais entre o sistema de controle KUKA e o PC remoto, faça download e upload de programas KRL, controle a execução de programas KRL e muito mais.
A configuração adicional do sistema de controle pode ser feita de duas maneiras: automaticamente, usando o modo interativo do driver kukabridge (somente KRC4) e manualmente, editando os arquivos do sistema de controle do robô no KUKA HMI. Vamos dar uma olhada nas duas abordagens.
O C3 Bridge Server armazena suas configurações no Registro do Windows. Siga estas etapas para alterar a porta de rede:
1.Encerrar o servidor C3 Bridge.
2.Abra o Registry Editor e navegue até HKEY_CURRENT_USER\SOFTWARE\C3 Bridge Interface.
3.Altere o valor da chave NetworkTcpPort para um valor diferente de 7000 (por exemplo, 7001).
4.Inicie o C3 Bridge Server novamente e repita a etapa 6 da seção anterior (abra o acesso à porta apropriada).
As versões mais recentes do C3 Bridge Server (1.7.1 e superiores) oferecem suporte a opções de linha de comando. Em particular, a porta do servidor pode ser alterada executando-se o aplicativo com o parâmetro -tcpPort. Por exemplo:
c3bridge.exe -tcpPort 7001
O script KUKA_Auto_Configuração.py na pasta C:\RoboDK\Library\Scripts pode ser usado para realizar a configuração automática do sistema de controle KUKA. Nesse caso, a estação atual do RoboDK deve conter pelo menos um robô KUKA com o endereço IP e a porta corretos na janela Conexão com o Robô. O script pode ser chamado no menu Tools (Ferramentas)➔ Run Script (Executar script) ou pela tecla de atalho Shift+S.
Pré-requisitos: RoboDK versão 5.5.2 ou superior, sistema operacional Windows, caminho de instalação C:\RoboDK.
1.Abra o shell de comando com INICIAR ➔ Todos os programas➔ Acessórios➔ Prompt de comando
ou INICIAR ➔ Executar➔ cmd.
2.Altere o diretório para C:\RoboDK\bin e inicie o kukabridge.exe executando os seguintes comandos:
c:
cd C:\RoboDK\bin
..\api\Robot\kukabridge.exe
3.Agora o KUKA Bridge Driver está sendo executado no modo interativo.
4.Estabeleça uma conexão com o sistema de controle digitando CONNECT <endereço IP do robô> <porta> <número de eixos do robô>, por exemplo:
CONNECT 172.1.1.10 7000 6
5.Se for bem-sucedido, você verá o seguinte resultado:
SMS:Connecting
Connected
SMS:Working...
SMS:Ready
6.Solicite a posição atual da articulação do robô digitando o comando CJNT:
CJNT
SMS:Working...
JNTS 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
SMS:Ready
7.Execute a configuração automática com o comando CONFIGURE FORCE:
CONFIGURE FORCE
SMS:Working...
Requesting robot program state
Current robot program state is #P_FREE
Reading current Configuração ($config.dat)
Read complete, updating Configuração
Adding definition of variable COM_ACTION
Adding definition of variable COM_ACTCNT
Adding definition of variable COM_ROUNDM
Adding definition of variable COM_VALUE1
Adding definition of variable COM_VALUE2
Adding definition of variable COM_VALUE3
Adding definition of variable COM_VALUE4
Adding definition of variable COM_E6AXIS
Adding definition of variable COM_FRAME
Adding definition of variable COM_POS
Adding definition of variable COM_E6POS
Configuração lines have been updated: 11 added, 0 removed, 0 updated, 659 total
Checking existence of old backup file ($config.bak)
Old backup file exists, deleting it
Creating new backup file ($config.bak)
Backup completed, writing new Configuração
New Configuração was successfully written
Checking existence of program file (RoboDKsync543.src)
Program file does not exists
Writing program file to robot system
Configuração is complete
SMS:Ready
8.Agora seu robô está pronto para funcionar, tudo o que você precisa fazer é selecionar e executar o programa RoboDKsync543.src.
As próximas etapas consistem em configurar manualmente o programa principal que tratará dos movimentos do robô:
1.Add-in a declaração das seguintes variáveis globais:
Para isso, localize e modifique o arquivo "KRC:\R1\SYSTEM\$CONFIG.DAT" por meio da KUKA HMI. A pasta "KRC:\R1\" também pode ser acessada a partir da unidade C:\ no seguinte caminho do Windows: "C:\KRC\ROBOTER\KRC\".
INT COM_ACTION=0
INT COM_ACTCNT=0
REAL COM_ROUNDM=0
REAL COM_VALUE1=0
REAL COM_VALUE2=0
REAL COM_VALUE3=0
REAL COM_VALUE4=0
DECL E6AXIS COM_E6AXIS
DECL FRAME COM_FRAME
DECL POS COM_POS
DECL E6POS COM_E6POS
2.Copie o programa RoboDKsyncVER.src da KUKA SRC para a pasta KRC\R1\PROGRAM. O sufixo VER no nome do arquivo indica a versão do programa (por exemplo, RoboDKsync543.src).
3.Inicie manualmente o programa RoboDKsyncVER.src para fazer com que o robô ouça os comandos provenientes do computador.
Se o programa RoboDKsyncVER.src não estiver em execução, o RoboDK ainda será capaz de ler as articulações do robô se o C3 Bridge Server estiver em execução no controlador do robô.
O driver antigo da KUKA é chamado apikuka e é usado em conjunto com o KUKAVARPROXY. Essa solução agora está obsoleta e está sendo descontinuada pelo RoboDK. Se quiser usar esse driver, certifique-se de que ele esteja selecionado na seção Mais opções da janela Conexão com o robô.
Siga estas etapas para configurar o driver legado para a KUKA:
1.Conecte um mouse (opcional, mas altamente recomendado).
É possível a conexão de dispositivos USB no terminal de programação ou no controlador (não é necessário reinicializar).
Como alternativa, é possível estabelecer uma conexão de área de trabalho remota.
Essas etapas também podem ser realizadas usando a tela sensível ao toque do terminal de programação e o teclado virtual.
9.Usando o aplicativo KUKA HMI, é possível abrir o menu principal usando o botão KUKA
a.
b.
10.Copie a pasta KUKAVARPROXY na área de trabalho (ou em algum lugar no PC do controlador)
11.Permitir a porta 7000 para comunicação TCP/UDP (esta etapa não é necessária nos controladores KUKA KRC2):
a.Selecione a HMI.
b.
c.NAT➔ Adicionar porta➔ Número da porta 7000
d.Definir protocolos permitidos: TCP/UDP
12.Inicie o programa KUKAVARPROXY.EXE no controlador do robô (em execução no Windows).
13.As etapas a seguir permitem iniciar o driver automaticamente no controlador na reinicialização (recomendado):
a.Crie um atalho para o arquivo KUKAVARPROXY.EXE
b.Selecione Windows INICIAR ➔ Todos os programas ➔ Clique com o botão direito do mouse em INICIARup➔ Abrir
c.Cole o atalho na pasta de inicialização
O servidor KUKAVARPROXY agora está pronto. Você pode deixar esse programa em execução. Esse servidor permite a troca de variáveis globais do controlador KUKA para o PC remoto.
As próximas etapas consistem em configurar o programa principal que tratará dos movimentos do robô:
1.Add-in a declaração das seguintes variáveis globais:
Para isso, localize e modifique o arquivo "KRC:\R1\SYSTEM\$CONFIG.DAT" por meio da KUKA HMI. A pasta "KRC:\R1\" também pode ser acessada a partir da unidade C:\ no seguinte caminho do Windows: "C:\KRC\ROBOTER\KRC\".
INT COM_ACTION=0
INT COM_ACTCNT=0
REAL COM_ROUNDM=0
REAL COM_VALUE1=0
REAL COM_VALUE2=0
REAL COM_VALUE3=0
REAL COM_VALUE4=0
DECL E6AXIS COM_E6AXIS
DECL FRAME COM_FRAME
DECL POS COM_POS
DECL E6POS COM_E6POS
2.Copie o programa RoboDKsyncVER.src da KUKA SRC para a pasta KRC\R1\PROGRAM. O sufixo VER no nome do arquivo indica a versão do programa (por exemplo, RoboDKsync543.src).
3.Inicie manualmente o programa RoboDKsyncVER.src para fazer com que o robô ouça os comandos provenientes do computador.
Se o programa RoboDKsyncVER.src não estiver em execução, o RoboDK ainda poderá ler as juntas do robô se o programa KUKAVARPROXY estiver em execução no controlador do robô.
Esta seção explica como determinar, diagnosticar e corrigir problemas que Você pode encontrar ao usar os drivers do robô KUKA com o RoboDK.
Você deve entrar no grupo de usuários Perito no controlador KUKA para solucionar problemas com a porta 7000.
1.
2.
3.Abra o shell de comando com START➔ All programs➔ Accessories➔ Command
ou START➔ Executar➔ cmd
4.Solicite uma lista de todas as conexões e portas de escuta usando o comando:
netstat -a -b -n -o -p TCP | findstr :7000
5.Se a resposta não contiver nenhuma cadeia de caracteres, então a porta 7000 está livre e pode ser usada para a operação do driver. As etapas subsequentes podem ser ignoradas.
6.Se a resposta ao comando da etapa 4 fosse assim:
TCP 0.0.0.0:7000 0.0.0.0:0 LISTENING 1840
7.O último número na linha acima é o identificador de processo (PID). Ele pode ser usado para obter informações sobre o nome do processo usando o seguinte comando (Você deve usar o seu número em vez de 1840):
tasklist /fi "PID eq 1840"
8.O resultado do comando tasklist contém informações sobre o processo que está escutando na porta 7000. Exemplo de saída:
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
c3bridge.exe 1840 Console 1 5,912 K
9.Se a porta estiver ocupada pelos processos KukavarProxy.exe ou c3bridge.exe, o sistema estará pronto para trabalhar com o driver selecionado. Se a porta estiver ocupada por algum outro aplicativo, será necessário encerrá-lo ou alterar o número da porta do C3 Bridge Server.
Se Você estiver usando o KUKAVARPROXY e quiser atualizar para o C3 Bridge Server, não é necessário nenhum procedimento específico de desinstalação. Minimize a KUKA HMI, feche o KUKAVARPROXY e certifique-se de que ele não seja carregado automaticamente na inicialização do sistema (nenhum atalho em INICIAR➔ Todos os programas➔ INICIARup). Não é necessário excluir o arquivo executável do KUKAVARPROXY.
Os procedimentos de configuração automática ou manual do sistema de controle podem falhar. Na maioria das vezes, isso se deve à incapacidade de substituir o arquivo $config.dat. Esse arquivo só pode ser editado por um usuário com privilégios avançados (Perito). Uma condição adicional é interromper todos os interpretadores: robot e submit. Para interromper o interpretador do robô, basta cancelar qualquer programa selecionado ou selecionar nenhum programa se o sistema de controle tiver acabado de ser carregado. Para cancelar o interpretador de envio, use a HMI conforme mostrado nas figuras abaixo para os sistemas KRC2 e KRC4, respectivamente:
Caso o arquivo $config.dat ainda esteja bloqueado após a interrupção de todos os interpretadores, você pode interromper completamente a execução da parte do software do sistema de controle do robô. No sistema KRC2, clique na área retangular ao lado dos indicadores de status (S I R) e clique no botão Exit (Sair):
No sistema KRC4, clique no ícone verde do robô na área da bandeja e selecione Stop KRC:
Depois de parar o software de controle, o arquivo C:\KRC\ROBOTER\KRC\R1\System\$config.dat pode ser modificado usando qualquer editor de texto. Execute uma reinicialização do sistema operacional para aplicar as alterações.
Você deve poder usar o driver e o pós-processador com os controladores de robôs da KUKA, mesmo que tenha eixos externos, como uma plataforma giratória. Recomendamos que você use um sistema de coordenadas numeradas ou um sistema de coordenadas com a definição de máquina correta que já esteja definida no controlador do robô.
Os seguintes arquivos do controlador do robô KUKA ajudarão você a entender como o sistema KUKA é construído:
●KRC\R1\System\$config.dat
●KRC\R1\System\bas.src
●KRC\R1\Mada\$machine.dat
Se você tiver uma plataforma giratória, a posição da origem da plataforma giratória deverá ser definida em uma variável MACHINE_DEF do arquivo config.dat. Quem instalou o sistema deve ter fornecido um exemplo para gerar um programa usando uma plataforma giratória sincronizada com base na função BAS.
Por exemplo, quando Você chama a função BAS em seu arquivo SRC usando o sinalizador ex_BASE e um determinado índice, como o índice 9:
BASE_DATA[9] = {FRAME: X 0, Y 0, Z 0, A 0, B 0, C 0}
BAS(#ex_BASE,9)
Você está dizendo que deseja usar o índice 9 do MACHINE_FRAME_DAT. Você também deve examinar as definições BAS e EX_BASE para ver a qual índice de máquina (MACH_IDX) seu controlador está se referindo por padrão. A matriz BASE_DATA definida logo antes de chamar a função BAS no arquivo SRC pode ser apenas o deslocamento do dispositivo montado na plataforma giratória.
Talvez seja necessário alterar manualmente a variável $BASE com o pós-processador ou driver para que seja a origem da plataforma giratória se você tiver uma plataforma giratória sincronizada com o braço do robô.
Por exemplo, se você tiver o índice BASE_DATA 9 disponível, deverá usar o seguinte código com o driver.
;--------
; Replace this the $BASE definition by the following 2 lines
; to make the KUKA RoboDKSynch driver work with external axes:
; $BASE = {FRAME: X 0, Y 0, Z 0, A 0, B 0, C 0} ; Comment this line
BASE_DATA[9] = {FRAME: X 0, Y 0, Z 0, A 0, B 0, C 0}
BAS(#ex_BASE,9)
; the BAS ex_BASE function links to a fixed MACHINE_DEF index
; visible in the BAS function
; The previous two lines are equivalent to the following,
; if the BAS function uses index 2 for the Machine definition
; BASE_DATA[9] = {FRAME: X 0, Y 0, Z 0, A 0, B 0, C 0}
; $BASE=EK(MACHINE_DEF[2].ROOT,MACHINE_DEF[2].MECH_TYPE,BASE_DATA[9])
;--------
$BASE=EK(EX_AX_DATA[1].ROOT,EX_AX_DATA[1].EX_KIN,EX_AX_DATA[1].OFFSET)
Para o pós-processador, você poderia substituir a linha anterior na função setFrame do pós-processador para usar essa definição $BASE se quiser levar em conta o deslocamento entre a plataforma giratória e o dispositivo de fixação:
$BASE=EK(MACHINE_DEF[2].ROOT, MACHINE_DEF[2].MECH_TYPE, {%s})' % self.pose_2_str(pose)
Como alternativa, ao usar o driver, você pode isolar o sistema de coordenadas seguindo o procedimento descrito abaixo (para que não seja necessário combinar perfeitamente a cinemática dos eixos externos no RoboDK).
Por exemplo, para poder usar o driver do RoboDK por padrão, a cinemática dos eixos externos definidos no controlador do robô deve corresponder à cinemática criada no RoboDK. Além disso, se você tiver uma plataforma giratória, o ponto raiz da plataforma giratória deve corresponder à posição da plataforma giratória definida no RoboDK.
Siga estas etapas para usar o driver usando um sistema de coordenadas conhecido:
1.Selecione Ferramentas ➔ Opções ➔ guia Drivers.
2.Marque a opção Fornecer coordenadas cartesianas com relação à referência.
3.Substitua a variável $BASE do seu arquivo de programa RoboDKsync.src pelo sistema de coordenadas que você deseja usar.
Por exemplo, se você quiser usar o frame de referência base número 5, o arquivo RoboDKsync.src deverá ter a seguinte aparência (a primeira linha está comentada, Você deverá encontrá-la por volta da linha 25):
; $BASE = {FRAME: X 0,Y 0,Z 0,A 0,B 0,C 0}
$BASE = BASE_DATA[5]
Esse sistema de coordenadas deve ter sido definido no controlador do robô KUKA e o RoboDK não substituirá esse valor.
Você pode usar o RoboDK para calibrar os robôs KUKA que já foram calibrados pela KUKA usando a opção Absolute Accuracy. No entanto, você deve certificar-se de desativar essa opção no controlador do robô KUKA. Quando você calibra um robô KUKA que já foi calibrado pela KUKA usando a opção Absolute Accuracy (Precisão Absoluta), é importante desativar essa opção para que possa calibrá-lo usando o RoboDK.
Para desativar a precisão absoluta da KUKA, você deve definir a variável DEACTIVATE_ABS_ACCUR como TRUE. Você pode encontrar essa variável no arquivo KRC:\STEU\MADA\$custom.dat (por volta da linha 73).
Você pode se certificar de que a opção de precisão absoluta da KUKA foi desativada corretamente movendo o robô para uma posição conhecida (por exemplo, mova os eixos do robô real e no RoboDK para a posição inicial) e verifique se a posição cartesiana exibida pelo controlador do robô corresponde à mesma posição cartesiana exibida pelo RoboDK.