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 pendente de ensino 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 pendente de ensino 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 pendente de aprendizagem)
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 Edit➔ Copy
5.Selecione uma pasta na unidade KRC
6.Selecione Edit Paste➔
Ao gerar programas de robô para os controladores de robô KUKA KRC, o senhor 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 o senhor os inseriu no RoboDK. O código a seguir mostra um exemplo do que o RoboDK gera para um programa de robô KUKA SRC:
---- Ferramenta de configuração (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]
; ----------------------------------
; ---- Referência de configuração (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 quadros de referência numerados, o senhor 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 quadro de base numerado. O senhor deve certificar-se de que o quadro 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. O senhor deve certificar-se 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 Reset program
4.Inicie o programa selecionando o botão verde "Play" no pendente de aprendizagem
As etapas a seguir permitem que o senhor 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.Select
2.Selecione uma ferramenta e edite ou recupere a posição X,Y,Z do TCP.
As etapas a seguir permitem que o senhor recupere as articulações do robô:
1.Selecionar
2.Selecione o modo Joints (Articulações) e use a coluna da esquerda para obter as articulações do robô
Algumas seções do menu exigem direitos de "Especialista" ou "Administrador". As etapas a seguir permitem entrar no modo "Expert":
1.Selecione
2.Selecione Expert (ou Administrator).
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 Robot Drivers.
O senhor 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 o senhor use a opção RoboDK Run on robot 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 o senhor 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 More options (Mais opções) da janela Connection to Robot (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 pendente de ensino 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 pendente de aprendizagem 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➔ Add port➔ 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 (o senhor 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 Startup do menu Iniciar.
O C3 Bridge Server já está pronto. O senhor pode deixar esse programa em execução. Esse servidor permite que o senhor 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_Configuration.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 Connection to Robot. 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 START➔ Todos os programas➔ Acessórios➔ de comando
ou START➔ 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:
CONECTAR 172.1.1.10 7000 6
5.Se for bem-sucedido, o senhor verá o seguinte resultado:
SMS:Conectando
Conectado
SMS:Trabalhando...
SMS:Pronto
6.Solicite a posição atual da articulação do robô digitando o comando CJNT:
CJNT
SMS:Trabalhando...
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 0.00000
SMS:Pronto
7.Execute a configuração automática com o comando CONFIGURE FORCE:
CONFIGURAR FORÇA
SMS:Trabalhando...
Solicitação do estado do programa do robô
O estado atual do programa do robô é #P_FREE
Leitura da configuração atual ($config.dat)
Leitura completa, atualizando a configuração
Adição da definição da variável COM_ACTION
Adição da definição da variável COM_ACTCNT
Adição da definição da variável COM_ROUNDM
Adição da definição da variável COM_VALUE1
Adição da definição da variável COM_VALUE2
Adição da definição da variável COM_VALUE3
Adição da definição da variável COM_VALUE4
Adição da definição da variável COM_E6AXIS
Adição da definição da variável COM_FRAME
Adição da definição da variável COM_POS
Adição da definição da variável COM_E6POS
As linhas de configuração foram atualizadas: 11 adicionadas, 0 removidas, 0 atualizadas, 659 total
Verificação da existência de um arquivo de backup antigo ($config.bak)
Existe um arquivo de backup antigo, que deve ser excluído
Criação de um novo arquivo de backup ($config.bak)
Backup concluído, gravando nova configuração
A nova configuração foi gravada com sucesso
Verificando a existência do arquivo de programa (RoboDKsync543.src)
O arquivo do programa não existe
Gravação do arquivo de programa no sistema do robô
A configuração está concluída
SMS:Pronto
8.Agora seu robô está pronto para funcionar, tudo o que o senhor 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 More options (Mais opções) da janela Connection to Robot (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 plug-in de dispositivos USB no pendente de ensino 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 pendente de aprendizagem 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➔ Add port➔ 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 START➔ All programs➔ Clique com o botão direito do mouse em startup➔ Open
c.Cole o atalho na pasta de inicialização
O servidor KUKAVARPROXY agora está pronto. O senhor 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 o senhor pode encontrar ao usar os drivers do robô KUKA com o RoboDK.
O senhor deve entrar no grupo de usuários Expert 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 (o senhor 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:
Nome da imagem PID Nome da sessão Nome da sessão# Uso de memória
========================= ======== ================ =========== ============
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 o senhor 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 START➔ Todos os programas➔ Startup). 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 (expert). Uma condição adicional é interromper todos os intérpretes: 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 intérpretes, o senhor 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.
O senhor 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 o senhor 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 o senhor a entender como o sistema KUKA é construído:
●KRC\R1\System\$config.dat
●KRC\R1\System\bas.src
●KRC\R1\Mada\$machine.dat
Se o senhor 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 o senhor 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)
O senhor está dizendo que deseja usar o índice 9 do MACHINE_FRAME_DAT. O senhor 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 o senhor tiver uma plataforma giratória sincronizada com o braço do robô.
Por exemplo, se o senhor tiver o índice BASE_DATA 9 disponível, deverá usar o seguinte código com o driver.
;--------
Substitua essa definição de $BASE pelas duas linhas a seguir
O senhor pode fazer com que o driver KUKA RoboDKSynch funcione com eixos externos:
; $BASE = {FRAME: X 0, Y 0, Z 0, A 0, B 0, C 0} ; Comente esta linha
BASE_DATA[9] = {FRAME: X 0, Y 0, Z 0, A 0, B 0, C 0}
BAS(#ex_BASE,9
a função ex_BASE do BAS vincula-se a um MACHINE_DEF fixo
visível na função BAS
As duas linhas anteriores são equivalentes às seguintes,
; se a função BAS usar o índice 2 para a definição da máquina
; 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, o senhor 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, o senhor 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 o senhor 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 Tools➔ Options➔ guia Drivers.
2.Marque a opção Provide Cartesian coordinates with respect to the reference (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 o senhor deseja usar.
Por exemplo, se o senhor quiser usar o quadro de referência base número 5, o arquivo RoboDKsync.src deverá ter a seguinte aparência (a primeira linha está comentada, o senhor 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.
O senhor pode usar o RoboDK para calibrar os robôs KUKA que já foram calibrados pela KUKA usando a opção Absolute Accuracy. No entanto, o senhor deve certificar-se de desativar essa opção no controlador do robô KUKA. Quando o senhor 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, o senhor deve definir a variável DEACTIVATE_ABS_ACCUR como TRUE. O senhor pode encontrar essa variável no arquivo KRC:\STEU\MADA\$custom.dat (por volta da linha 73).
O senhor 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.