13. Eixo de Extensão

13.1. Definir Parâmetros do Eixo de Extensão 485

Novo na versão python: SDK-v2.0.3

Protótipo

AuxServoSetParam(servoId,servoCompany,servoModel,servoSoftVersion, servoResolution,axisMechTransRatio)

Descrição

Define os parâmetros do eixo de extensão 485

Parâmetros Obrigatórios

  • servoId: ID do servo driver, faixa [1-15], correspondente ao ID do escravo;

  • servoCompany: Fabricante do servo driver, 1-Dynatect;

  • servoModel: Modelo do servo driver, 1-FD100-750C;

  • servoSoftVersion: Versão do software do servo driver, 1-V1.0;

  • servoResolution: Resolução do codificador;

  • axisMechTransRatio: Relação de transmissão mecânica;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.2. Obter Parâmetros de Configuração do Eixo de Extensão 485

Novo na versão python: SDK-v2.0.3

Protótipo

AuxServoGetParam(servoId)

Descrição

Obtém os parâmetros de configuração do eixo de extensão 485

Parâmetros Obrigatórios

  • servoId: ID do servo driver, faixa [1-15], correspondente ao ID do escravo;

Parâmetros Padrão

Nenhum

Valor de Retorno

  • Código de erro: Sucesso-0 Falha - errcode;

  • servoCompany: Fabricante do servo driver, 1-Dynatect;

  • servoModel: Modelo do servo driver, 1-FD100-750C;

  • servoSoftVersion: Versão do software do servo driver, 1-V1.0;

  • servoResolution: Resolução do codificador;

  • axisMechTransRatio: Relação de transmissão mecânica;

13.3. Habilitar/Desabilitar Eixo de Extensão 485

Novo na versão python: SDK-v2.0.3

Protótipo

AuxServoEnable(servoId,status)

Descrição

Habilita/desabilita o eixo de extensão 485

Parâmetros Obrigatórios

  • servoId: ID do servo driver, faixa [1-15], correspondente ao ID do escravo;

  • status: Estado de habilitação, 0-desabilitar, 1-habilitar;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.4. Definir Modo de Controle do Eixo de Extensão 485

Novo na versão python: SDK-v2.0.3

Protótipo

AuxServoSetControlMode(servoId,mode)

Descrição

Define o modo de controle do eixo de extensão 485

Parâmetros Obrigatórios

  • servoId: ID do servo driver, faixa [1-15], correspondente ao ID do escravo;

  • mode: Modo de controle, 0-modo posição, 1-modo velocidade;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.5. Definir Posição Alvo do Eixo de Extensão 485 (Modo Posição)

Novo na versão python: SDK-v2.0.3

Protótipo

AuxServoSetTargetPos(servoId,pos,speed)

Descrição

Define a posição alvo do eixo de extensão 485 (modo posição)

Parâmetros Obrigatórios

  • servoId: ID do servo driver, faixa [1-15], correspondente ao ID do escravo;

  • pos: Posição alvo, mm ou °;

  • speed: Velocidade alvo, mm/s ou °/s;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.6. Definir Torque Alvo do Eixo de Extensão 485 (Modo Torque) - Temporariamente não disponível

Novo na versão python: SDK-v2.0.3

Protótipo

AuxServoSetTargetTorque(servoId,torque)

Descrição

Define o torque alvo do eixo de extensão 485 (modo torque)

Parâmetros Obrigatórios

  • servoId: ID do servo driver, faixa [1-15], correspondente ao ID do escravo;

  • torque: Torque alvo, Nm;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.7. Definir Homing do Eixo de Extensão 485

Novo na versão python: SDK-v2.0.3

Protótipo

AuxServoHoming(servoId,mode,searchVel,latchVel)

Descrição

Define o homing do eixo de extensão 485

Parâmetros Obrigatórios

  • servoId: ID do servo driver, faixa [1-15], correspondente ao ID do escravo;

  • mode: Modo de homing, 1-homing na posição atual; 2-homing no limite negativo; 3-homing no limite positivo;

  • searchVel: Velocidade de busca, mm/s ou °/s;

  • latchVel: Velocidade de fixação, mm/s ou °/s;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.8. Limpar Informações de Erro do Eixo de Extensão 485

Novo na versão python: SDK-v2.0.3

Protótipo

AuxServoClearError(servoId)

Descrição

Limpa as informações de erro do eixo de extensão 485

Parâmetros Obrigatórios

  • servoId: ID do servo driver, faixa [1-15], correspondente ao ID do escravo;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.9. Obter Estado do Servo do Eixo de Extensão 485

Novo na versão python: SDK-v2.0.3

Protótipo

AuxServoGetStatus(servoId)

Descrição

Obtém o estado do servo do eixo de extensão 485

Parâmetros Obrigatórios

  • servoId: ID do servo driver, faixa [1-15], correspondente ao ID do escravo;

Parâmetros Padrão

Nenhum

Valor de Retorno

  • Código de erro: Sucesso-0 Falha - errcode;

  • servoErrCode: Código de falha do servo driver

  • servoState: Estado do servo driver bit0:0-desabilitado; 1-habilitado; bit1:0-parado; 1-em movimento; bit2:0-limite positivo não acionado; 1-limite positivo acionado; bit3:0-limite negativo não acionado; 1-limite negativo acionado; bit4:0-posicionamento não concluído; 1-posicionamento concluído; bit5:0-homing não concluído; 1-homing concluído;

  • servoPos: Posição atual do servo mm ou °;

  • servoSpeed: Velocidade atual do servo mm/s ou °/s;

  • servoTorque: Torque atual do servo Nm;

13.10. Definir Velocidade Alvo do Eixo de Extensão 485 (Modo Velocidade)

Novo na versão python: SDK-v2.0.3

Protótipo

AuxServoSetTargetSpeed(servoId,speed)

Descrição

Define a velocidade alvo do eixo de extensão 485 (modo velocidade)

Parâmetros Obrigatórios

  • servoId: ID do servo driver, faixa [1-15], correspondente ao ID do escravo;

  • speed: Velocidade alvo, mm/s ou °/s;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.11. Definir Número do Eixo de Dados do Eixo de Extensão 485 no Feedback de Estado

Novo na versão python: SDK-v2.0.3

Protótipo

AuxServosetStatusID(servoId)

Descrição

Define o número do eixo de dados do eixo de extensão 485 no feedback de estado

Parâmetros Obrigatórios

  • servoId: ID do servo driver, faixa [1-15], correspondente ao ID do escravo;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.12. Definir Aceleração/Desaceleração do Movimento do Eixo de Extensão 485

Novo na versão python: SDK-v2.0.5

Protótipo

AuxServoSetAcc(acc, dec)

Descrição

Define a aceleração/desaceleração do movimento do eixo de extensão 485

Parâmetros Obrigatórios

  • acc: Aceleração do movimento do eixo de extensão 485

  • dec: Desaceleração do movimento do eixo de extensão 485

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.13. Definir Aceleração/Desaceleração de Parada de Emergência do Eixo de Extensão 485

Novo na versão python: SDK-v2.0.5

Protótipo

AuxServoSetEmergencyStopAcc(acc, dec)

Descrição

Define a aceleração/desaceleração de parada de emergência do eixo de extensão 485

Parâmetros Obrigatórios

  • acc: Aceleração de parada de emergência do eixo de extensão 485

  • dec: Desaceleração de parada de emergência do eixo de extensão 485

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.14. Obter Aceleração/Desaceleração do Movimento do Eixo de Extensão 485

Novo na versão python: SDK-v2.0.5

Protótipo

AuxServoGetAcc()

Descrição

Obtém a aceleração/desaceleração do movimento do eixo de extensão 485

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

  • Código de erro: Sucesso-0 Falha - errcode

  • acc: Aceleração do movimento do eixo de extensão 485

  • dec: Desaceleração do movimento do eixo de extensão 485

13.15. Obter Aceleração/Desaceleração de Parada de Emergência do Eixo de Extensão 485

Novo na versão python: SDK-v2.0.5

Protótipo

AuxServoGetEmergencyStopAcc()

Descrição

Obtém a aceleração/desaceleração de parada de emergência do eixo de extensão 485

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

  • Código de erro: Sucesso-0 Falha - errcode

  • acc: Aceleração de parada de emergência do eixo de extensão 485

  • dec: Desaceleração de parada de emergência do eixo de extensão 485

13.16. Exemplo de Código de Controle do Eixo de Extensão

 1from fairino import Robot
 2import time
 3import threading
 4# Estabelece conexão com o controlador do robô, retorna um objeto robô se bem-sucedido
 5robot = Robot.RPC('192.168.58.2')
 6retval = robot.AuxServoSetParam(1, 1, 1, 1, 131072, 15.45)
 7print(f"AuxServoSetParam is: {retval}")
 8servoCompany = 0
 9servoModel = 0
10servoSoftVersion = 0
11servoResolution = 0
12axisMechTransRatio = 0.0
13retval, servoCompany, servoModel, servoSoftVersion, servoResolution, axisMechTransRatio = robot.AuxServoGetParam(1)
14print(f"servoCompany {servoCompany}\n"
15      f"servoModel {servoModel}\n"
16      f"servoSoftVersion {servoSoftVersion}\n"
17      f"servoResolution {servoResolution}\n"
18      f"axisMechTransRatio {axisMechTransRatio}\n")
19retval = robot.AuxServoSetParam(1, 10, 11, 12, 13, 14)
20print(f"AuxServoSetParam is: {retval}")
21retval, servoCompany, servoModel, servoSoftVersion, servoResolution, axisMechTransRatio = robot.AuxServoGetParam(1)
22print(f"servoCompany {servoCompany}\n"
23      f"servoModel {servoModel}\n"
24      f"servoSoftVersion {servoSoftVersion}\n"
25      f"servoResolution {servoResolution}\n"
26      f"axisMechTransRatio {axisMechTransRatio}\n")
27retval = robot.AuxServoSetParam(1, 1, 1, 1, 131072, 36)
28print(f"AuxServoSetParam is: {retval}")
29time.sleep(3)
30robot.AuxServoSetAcc(3000, 3000)
31robot.AuxServoSetEmergencyStopAcc(5000, 5000)
32time.sleep(1)
33emagacc = 0.0
34emagdec = 0.0
35acc = 0.0
36dec = 0.0
37error,emagacc, emagdec = robot.AuxServoGetEmergencyStopAcc()
38print(f"emergency acc is {emagacc}  dec is {emagdec}")
39error,acc, dec = robot.AuxServoGetAcc()
40print(f"acc is {acc}  dec is {dec}")
41robot.AuxServoSetControlMode(1, 0)
42time.sleep(2)
43retval = robot.AuxServoEnable(1, 0)
44print(f"AuxServoEnable disenable {retval}")
45time.sleep(1)
46servoErrCode = 0
47servoState = 0
48servoPos = 0.0
49servoSpeed = 0.0
50servoTorque = 0.0
51retval, servoErrCode, servoState, servoPos, servoSpeed, servoTorque = robot.AuxServoGetStatus(1)
52print(f"AuxServoGetStatus servoState {servoState}")
53time.sleep(1)
54retval = robot.AuxServoEnable(1, 1)
55print(f"AuxServoEnable enable {retval}")
56time.sleep(1)
57retval, servoErrCode, servoState, servoPos, servoSpeed, servoTorque = robot.AuxServoGetStatus(1)
58print(f"AuxServoGetStatus servoState {servoState}")
59time.sleep(1)
60retval = robot.AuxServoHoming(1, 1, 5, 1,100)
61print(f"AuxServoHoming {retval}")
62time.sleep(3)
63retval = robot.AuxServoSetTargetPos(1, 200, 30,100)
64print(f"AuxServoSetTargetPos {retval}")
65time.sleep(1)
66retval, servoErrCode, servoState, servoPos, servoSpeed, servoTorque = robot.AuxServoGetStatus(1)
67print(f"AuxServoGetStatus servoSpeed {servoSpeed}")
68time.sleep(8)
69robot.AuxServoSetControlMode(1, 1)
70time.sleep(2)
71robot.AuxServoEnable(1, 0)
72time.sleep(1)
73robot.AuxServoEnable(1, 1)
74time.sleep(1)
75robot.AuxServoSetTargetSpeed(1, 100, 80)
76time.sleep(5)
77robot.AuxServoSetTargetSpeed(1, 0, 80)
78robot.CloseRPC()

13.17. Configuração dos Parâmetros de Comunicação UDP do Eixo de Extensão

Novo na versão python: SDK-v2.1.2

Protótipo

ExtDevSetUDPComParam(ip, port, period, lossPkgTime, lossPkgNum, disconnectTime, reconnectEnable, reconnectPeriod, reconnectNum, selfConnect)

Descrição

Configuração dos parâmetros de comunicação UDP do eixo de extensão

Parâmetros Obrigatórios

  • ip: Endereço IP do CLP;

  • port: Número da porta;

  • period: Período de comunicação (ms, temporariamente não disponível);

  • lossPkgTime: Tempo de detecção de perda de pacotes (ms);

  • lossPkgNum: Número de perdas de pacotes;

  • disconnectTime: Duração de confirmação de desconexão da comunicação;

  • reconnectEnable: Habilitação de reconexão automática em caso de desconexão da comunicação 0-desabilitar 1-habilitar;

  • reconnectPeriod: Intervalo de reconexão (ms);

  • reconnectNum: Número de tentativas de reconexão

  • selfConnect: Se estabelece conexão automaticamente após reinicialização; 0-não estabelecer; 1-estabelecer

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.18. Obter Parâmetros de Comunicação UDP do Eixo de Extensão

Novo na versão python: SDK-v2.0.4

Protótipo

ExtDevGetUDPComParam()

Descrição

Obtém os parâmetros de comunicação UDP do eixo de extensão

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

  • Código de erro: Sucesso-0 Falha - errcode;

  • ip: Endereço IP do CLP;

  • port: Número da porta;

  • period: Período de comunicação (ms, temporariamente não disponível);

  • lossPkgTime: Tempo de detecção de perda de pacotes (ms);

  • lossPkgNum: Número de perdas de pacotes;

  • disconnectTime: Duração de confirmação de desconexão da comunicação;

  • reconnectEnable: Habilitação de reconexão automática em caso de desconexão da comunicação 0-desabilitar 1-habilitar;

  • reconnectPeriod: Intervalo de reconexão (ms);

  • reconnectNum: Número de tentativas de reconexão

  • selfConnect: Se reconecta automaticamente após reinicialização do painel de controle; 0-não reconectar; 1-reconectar

13.19. Carregar Comunicação UDP

Novo na versão python: SDK-v2.0.4

Protótipo

ExtDevLoadUDPDriver()

Descrição

Carrega a comunicação UDP

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.20. Descarregar Comunicação UDP

Novo na versão python: SDK-v2.0.4

Protótipo

ExtDevUnloadUDPDriver()

Descrição

Descarrega a comunicação UDP

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.21. Restaurar Conexão Após Desconexão Anormal da Comunicação UDP do Eixo de Extensão

Novo na versão python: SDK-v2.0.4

Protótipo

ExtDevUDPClientComReset()

Descrição

Restaura a conexão após desconexão anormal da comunicação UDP do eixo de extensão

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.22. Fechar Comunicação Após Desconexão Anormal da Comunicação UDP do Eixo de Extensão

Novo na versão python: SDK-v2.0.4

Protótipo

ExtDevUDPClientComClose()

Descrição

Fecha a comunicação após desconexão anormal da comunicação UDP do eixo de extensão

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.23. Configuração dos Parâmetros do Eixo de Extensão UDP

Novo na versão python: SDK-v2.0.4

Protótipo

ExtAxisParamConfig(axisId, axisType, axisDirection, axisMax, axisMin, axisVel, axisAcc,axisLead, encResolution, axisOffect, axisCompany, axisModel, axisEncType)

Descrição

Configuração dos parâmetros do eixo de extensão UDP

Parâmetros Obrigatórios

  • axisId: Número do eixo [1-4];

  • axisType: Tipo de eixo de extensão 0-translação; 1-rotação;

  • axisDirection: Direção do eixo de extensão 0-positiva; 1-negativa;

  • axisMax: Posição máxima do eixo de extensão mm;

  • axisMin: Posição mínima do eixo de extensão mm;

  • axisVel: Velocidade mm/s;

  • axisAcc: Aceleração mm/s2;

  • axisLead: Passo mm;

  • encResolution: Resolução do codificador;

  • axisOffect: Deslocamento do ponto inicial da solda no eixo de extensão;

  • axisCompany: Fabricante do driver 1-Huichuan; 2-Huichuan; 3-Panasonic;

  • axisModel: Modelo do driver 1-Huichuan-SV-XD3EA040L-E, 2-Huichuan-SV-X2EA150A-A, 1-Huichuan-SV620PT5R4I, 1-Panasonic-MADLN15SG, 2-Panasonic-MSDLN25SG, 3-Panasonic-MCDLN35SG;

  • axisEncType: Tipo de codificador 0-incremental; 1-absoluto;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.24. Aquisição de Parâmetros de Eixo Estendido via UDP

Protótipo

ExtAxisGetParamConfig(self, axisID)

Descrição

Aquisição de parâmetros de eixo estendido via UDP

Parâmetros Obrigatórios

  • axisID:Número do eixo estendido [1-4]

  • axisType:Tipo de eixo estendido 0-linear; 1-rotativo

  • axisDirection:Direção do eixo estendido 0-positiva; 1-negativa

  • axisMax:Posição máxima do eixo estendido mm

  • axisMin:Posição mínima do eixo estendido mm

  • axisVel:Velocidade mm/s

  • axisAcc:Aceleração mm/s²

  • axisLead:Passo mm

  • encResolution:Resolução do encoder

  • axisOffect:Deslocamento do eixo estendido para ponto inicial da solda

  • axisCompany:Fabricante do driver 1-Hechen; 2-Inovance; 3-Panasonic

  • axisModel:Modelo do driver 1-Hechen-SV-XD3EA040L-E, 2-Hechen-SV-X2EA150A-A, 1-Inovance-SV620PT5R4I, 1-Panasonic-MADLN15SG, 2-Panasonic-MSDLN25SG, 3-Panasonic-MCDLN35SG

  • axisEncType:Tipo de encoder 0-incremental; 1-absoluto

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro Sucesso-0 Falha- errcode

13.25. Definir Posição do Robô em Relação ao Eixo de Extensão

Novo na versão python: SDK-v2.0.4

Protótipo

SetRobotPosToAxis(installType)

Descrição

Define a posição do robô em relação ao eixo de extensão

Parâmetros Obrigatórios

  • installType: 0-robô instalado no eixo externo, 1-robô instalado fora do eixo externo;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.26. Definir Configuração dos Parâmetros DH do Sistema de Eixo de Extensão

Novo na versão python: SDK-v2.0.4

Protótipo

SetAxisDHParaConfig(axisConfig,axisDHd1,axisDHd2,axisDHd3,axisDHd4,axisDHa1, axisDHa2,axisDHa3,axisDHa4)

Descrição

Define a configuração dos parâmetros DH do sistema de eixo de extensão

Parâmetros Obrigatórios

  • axisConfig: Configuração do eixo externo, 0-trilho linear de 1 grau de liberdade, 1-posicionador tipo L de 2 graus de liberdade, 2-3 graus de liberdade, 3-4 graus de liberdade, 4-posicionador de 1 grau de liberdade;

  • axisDHd1: Parâmetro DH do eixo externo d1 mm;

  • axisDHd2: Parâmetro DH do eixo externo d2 mm;

  • axisDHd3: Parâmetro DH do eixo externo d3 mm;

  • axisDHd4: Parâmetro DH do eixo externo d4 mm;

  • axisDHa1: Parâmetro DH do eixo externo a1 mm;

  • axisDHa2: Parâmetro DH do eixo externo a2 mm;

  • axisDHa3: Parâmetro DH do eixo externo a3 mm;

  • axisDHa4: Parâmetro DH do eixo externo a4 mm;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.27. Habilitar Eixo de Extensão UDP

Novo na versão python: SDK-v2.0.4

Protótipo

ExtAxisServoOn(axisID, status)

Descrição

Habilita o eixo de extensão UDP

Parâmetros Obrigatórios

  • axisID: Número do eixo [1-4];

  • status: 0-desabilitar; 1-habilitar;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.28. Homing do Eixo de Extensão UDP

Novo na versão python: SDK-v2.0.4

Protótipo

ExtAxisSetHoming(axisID, mode, searchVel, latchVel)

Descrição

Homing do eixo de extensão UDP

Parâmetros Obrigatórios

  • axisID: Número do eixo [1-4];

  • mode: Modo de homing 0-homing na posição atual, 1-homing no limite negativo, 2-homing no limite positivo;

  • searchVel: Velocidade de busca (mm/s);

  • latchVel: Velocidade de fixação da busca (mm/s);

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.29. Iniciar Jog do Eixo de Extensão UDP

Novo na versão python: SDK-v2.0.4

Protótipo

ExtAxisStartJog( axisID, direction, vel, acc, maxDistance)

Descrição

Inicia o jog do eixo de extensão UDP

Parâmetros Obrigatórios

  • axisID: Número do eixo [1-4];

  • direction: Direção de rotação 0-reversa; 1-positiva;

  • vel: Velocidade (mm/s);

  • acc: Aceleração (mm/s);

  • maxDistance: Distância máxima de jog;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.30. Parar Jog do Eixo de Extensão UDP

Novo na versão python: SDK-v2.0.4

Protótipo

ExtAxisStopJog(axisID)

Descrição

Para o jog do eixo de extensão UDP

Parâmetros Obrigatórios

  • axisID: Número do eixo [1-4];

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.31. Exemplo de Código de Configuração e Jog do Eixo de Extensão UDP

 1from fairino import Robot
 2from fairino.Robot import RobotState
 3import time
 4
 5def main():
 6    # Adicionar dados de estado em tempo real a serem obtidos (se necessário)
 7    # rtn = AddRobotRealtimeState([RobotState.ExaxisCoordID])
 8    # if rtn != 0:
 9    #     print(f"✗ Falha ao adicionar campo, código de erro: {rtn}")
10    #     return None
11    # print("✓ Campo adicionado com sucesso")
12
13    # Estabelecer conexão com o controlador do robô
14    robot = Robot.RPC('192.168.58.2')
15    time.sleep(0.5)  # Aguardar conexão e recebimento de dados
16
17    # Configurar parâmetros de comunicação UDP
18    rtn = robot.ExtDevSetUDPComParam("192.168.58.88", 2021, 2, 100, 3, 200, 1, 100, 5, 1)
19    print(f"ExtDevSetUDPComParam rtn is {rtn}")
20
21    # Obter parâmetros de comunicação UDP
22    error, param = robot.ExtDevGetUDPComParam()
23    print("ExtDevGetUDPComParam return ", error)
24    print("Parâmetros de comunicação do eixo estendido UDP: ", param)
25
26    # Carregar driver UDP
27    robot.ExtDevLoadUDPDriver()
28
29    # Definir tempo de conclusão do comando do eixo estendido
30    rtn = robot.SetExAxisCmdDoneTime(5000.0)
31    print(f"SetExAxisCmdDoneTime rtn is {rtn}")
32
33    # Habilitação servo do eixo estendido
34    rtn = robot.ExtAxisServoOn(1, 1)
35    print(f"ExtAxisServoOn axis id 1 rtn is {rtn}")
36    rtn = robot.ExtAxisServoOn(2, 1)
37    print(f"ExtAxisServoOn axis id 2 rtn is {rtn}")
38    time.sleep(2)
39
40    # Homing do eixo estendido
41    robot.ExtAxisSetHoming(1, 0, 10, 2)
42    time.sleep(2)
43    rtn = robot.ExtAxisSetHoming(2, 0, 10, 2)
44    print(f"ExtAxisSetHoming rtn is {rtn}")
45
46    time.sleep(4)
47
48    # Definir posição relativa do robô em relação ao eixo estendido
49    rtn = robot.SetRobotPosToAxis(1)
50    print(f"SetRobotPosToAxis rtn is {rtn}")
51
52    # Definir configuração de parâmetros DH do eixo estendido
53    rtn = robot.SetAxisDHParaConfig(10, 20, 0, 0, 0, 0, 0, 0, 0)
54    print(f"SetAxisDHParaConfig rtn is {rtn}")
55
56    # Configurar parâmetros do eixo estendido 1
57    rtn = robot.ExtAxisParamConfig(1, 1, 1, 1000, -1000, 1000, 1000, 1.905, 262144, 200, 1, 0, 0)
58    print(f"ExtAxisParamConfig axis 1 rtn is {rtn}")
59
60    # Obter configuração de parâmetros do eixo estendido 1
61    rtn, axisType, axisDirection, axisMax, axisMin, axisVel, axisAcc, axisLead, encResolution, axisOffect, axisCompany, axisModel, axisEncType = robot.ExtAxisGetParamConfig(1)
62    print(f"axis id 1 ExtAxisGetParamConfig : axisType {axisType}, axisDirection {axisDirection}, axisMax {axisMax}, axisMin {axisMin}, axisVel {axisVel}, axisAcc {axisAcc}, axisLead {axisLead}, encResolution {encResolution}, axisOffect {axisOffect}, axisCompany {axisCompany}, axisModel {axisModel}, axisEncType {axisEncType}")
63
64    # Configurar parâmetros do eixo estendido 2
65    rtn = robot.ExtAxisParamConfig(2, 1, 1, 1000, -1000, 1000, 1000, 4.444, 262144, 200, 1, 0, 0)
66    print(f"ExtAxisParamConfig axis 2 rtn is {rtn}")
67
68    # Obter configuração de parâmetros do eixo estendido 2
69    rtn, axisType, axisDirection, axisMax, axisMin, axisVel, axisAcc, axisLead, encResolution, axisOffect, axisCompany, axisModel, axisEncType = robot.ExtAxisGetParamConfig(2)
70    print(f"axis id 2 ExtAxisGetParamConfig : axisType {axisType}, axisDirection {axisDirection}, axisMax {axisMax}, axisMin {axisMin}, axisVel {axisVel}, axisAcc {axisAcc}, axisLead {axisLead}, encResolution {encResolution}, axisOffect {axisOffect}, axisCompany {axisCompany}, axisModel {axisModel}, axisEncType {axisEncType}")
71
72    time.sleep(3)
73
74    # Teste de jog do eixo estendido 1
75    robot.ExtAxisStartJog(1, 0, 10, 10, 30)
76    time.sleep(1)
77    robot.ExtAxisStopJog(1)
78    time.sleep(3)
79    robot.ExtAxisServoOn(1, 0)
80
81    time.sleep(3)
82
83    # Teste de jog do eixo estendido 2
84    robot.ExtAxisStartJog(2, 0, 10, 10, 30)
85    time.sleep(1)
86    robot.ExtAxisStopJog(2)
87    time.sleep(3)
88    robot.ExtAxisServoOn(2, 0)
89
90    # Descarregar driver UDP
91    robot.ExtDevUnloadUDPDriver()
92
93    # Fechar conexão
94    robot.CloseRPC()
95
96
97# Chamar função de teste
98main()

13.32. Definir Ponto de Referência do Sistema de Coordenadas do Eixo de Extensão - Método de Quatro Pontos

Novo na versão python: SDK-v2.0.4

Protótipo

ExtAxisSetRefPoint(pointNum)

Descrição

Define o ponto de referência do sistema de coordenadas do eixo de extensão - Método de quatro pontos

Parâmetros Obrigatórios

  • pointNum: Número do ponto [1-4];

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.33. Calcular Sistema de Coordenadas do Eixo de Extensão - Método de Quatro Pontos

Novo na versão python: SDK-v2.0.4

Protótipo

ExtAxisComputeECoordSys()

Descrição

Calcula o sistema de coordenadas do eixo de extensão - Método de quatro pontos

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

  • Código de erro: Sucesso-0 Falha - errcode;

  • coord: Valor do sistema de coordenadas do eixo de extensão [x,y,z,rx,ry,rz];

13.34. Definir Ponto de Referência do Sistema de Coordenadas do Posicionador - Método de Quatro Pontos

Novo na versão python: SDK-v2.0.4

Protótipo

PositionorSetRefPoint(pointNum)

Descrição

Define o ponto de referência do sistema de coordenadas do posicionador - Método de quatro pontos

Parâmetros Obrigatórios

  • pointNum: Número do ponto [1-4];

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.35. Calcular Sistema de Coordenadas do Posicionador - Método de Quatro Pontos

Novo na versão python: SDK-v2.0.4

Protótipo

PositionorComputeECoordSys()

Descrição

Calcula o sistema de coordenadas do posicionador - Método de quatro pontos

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

  • Código de erro: Sucesso-0 Falha - errcode;

  • coord: Valor do sistema de coordenadas do posicionador [x,y,z,rx,ry,rz];

13.36. Definir Pose do Ponto de Referência de Calibração no Sistema de Coordenadas da Extremidade do Posicionador

Novo na versão python: SDK-v2.0.4

Protótipo

SetRefPointInExAxisEnd(pos)

Descrição

Define a pose do ponto de referência de calibração no sistema de coordenadas da extremidade do posicionador

Parâmetros Obrigatórios

  • pos: Valor da pose [x,y,z,rx,ry,rz];

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.37. Aplicar Sistema de Coordenadas do Eixo de Extensão

Novo na versão python: SDK-v2.0.4

Protótipo

ExtAxisActiveECoordSys(applyAxisId,axisCoordNum,coord,calibFlag)

Descrição

Aplica o sistema de coordenadas do eixo de extensão

Parâmetros Obrigatórios

  • applyAxisId: Número do eixo de extensão bit0-bit3 correspondem aos números dos eixos de extensão 1-4, por exemplo, aplicar eixos de extensão 1 e 3 é 0b 0000 0101, ou seja, 5;

  • axisCoordNum: Número do sistema de coordenadas do eixo de extensão;

  • coord: Valor do sistema de coordenadas [x,y,z,rx,ry,rz];

  • calibFlag: Flag de calibração 0-não, 1-sim;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.38. Obter Sistema de Coordenadas do Eixo de Extensão

Novo na versão python: SDK-v2.1.2

Protótipo

ExtAxisGetCoord()

Descrição

Obtém o sistema de coordenadas do eixo de extensão

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

  • Código de erro: Sucesso-0 Falha - errcode

  • coord: Sistema de coordenadas do eixo de extensão

13.39. Exemplo de Código de Calibração do Sistema de Coordenadas do Eixo de Extensão

 1from fairino import Robot
 2import time
 3import threading
 4# Estabelece conexão com o controlador do robô, retorna um objeto robô se bem-sucedido
 5robot = Robot.RPC('192.168.58.2')
 6rtn = robot.ExtDevSetUDPComParam("192.168.58.88", 2021, 2, 100, 3, 200, 1, 100, 5, 1)
 7print(f"ExtDevSetUDPComParam rtn is {rtn}")
 8rtn,udp_params = robot.ExtDevGetUDPComParam()
 9ip, port, period, lossPkgTime, lossPkgNum, disconnectTime, reconnectEnable, reconnectPeriod, reconnectNum = udp_params
10patam = (
11    f"\nip {ip}\nport {port}\nperiod {period}\nlossPkgTime {lossPkgTime}\n"
12    f"lossPkgNum {lossPkgNum}\ndisConntime {disconnectTime}\nreconnecable {reconnectEnable}\n"
13    f"reconnperiod {reconnectPeriod}\nreconnnun {reconnectNum}"
14)
15print(f"ExtDevGetUDPComParam rtn is {rtn}{patam}")
16robot.ExtDevLoadUDPDriver()
17rtn = robot.ExtAxisServoOn(1, 1)
18print(f"ExtAxisServoOn axis id 1 rtn is {rtn}")
19rtn = robot.ExtAxisServoOn(2, 1)
20print(f"ExtAxisServoOn axis id 2 rtn is {rtn}")
21time.sleep(2)
22robot.ExtAxisSetHoming(1, 0, 10, 2)
23time.sleep(2)
24rtn = robot.ExtAxisSetHoming(2, 0, 10, 2)
25print(f"ExtAxisSetHoming rtn is {rtn}")
26time.sleep(4)
27rtn = robot.SetRobotPosToAxis(1)
28print(f"SetRobotPosToAxis rtn is {rtn}")
29rtn = robot.SetAxisDHParaConfig(1, 128.5, 206.4, 0, 0, 0, 0, 0, 0)
30print(f"SetAxisDHParaConfig rtn is {rtn}")
31rtn = robot.ExtAxisParamConfig(1, 1, 1, 1000, -1000, 1000, 1000, 1.905, 262144, 200, 1, 0, 0)
32print(f"ExtAxisParamConfig axis 1 rtn is {rtn}")
33rtn = robot.ExtAxisParamConfig(2, 1, 1, 1000, -1000, 1000, 1000, 4.444, 262144, 200, 1, 0, 0)
34print(f"ExtAxisParamConfig axis 2 rtn is {rtn}")
35toolCoord = [0, 0, 210, 0, 0, 0]
36robot.SetToolCoord(1, toolCoord, 0, 0, 1, 0)
37jSafe = [115.193, -96.149, 92.489, -87.068, -89.15, -83.488]
38j1 = [117.559, -92.624, 100.329, -96.909, -94.057, -83.488]
39j2 = [112.239, -90.096, 99.282, -95.909, -89.824, -83.488]
40j3 = [110.839, -83.473, 93.166, -89.22, -90.499, -83.487]
41j4 = [107.935, -83.572, 95.424, -92.873, -87.933, -83.488]
42descSafe = [0.0,0.0,0.0,0.0,0.0,0.0]
43desc1 = [0.0,0.0,0.0,0.0,0.0,0.0]
44desc2 = [0.0,0.0,0.0,0.0,0.0,0.0]
45desc3 = [0.0,0.0,0.0,0.0,0.0,0.0]
46desc4 = [0.0,0.0,0.0,0.0,0.0,0.0]
47exaxisPos = [0.0,0.0,0.0,0.0]
48offdese = [0.0,0.0,0.0,0.0,0.0,0.0]
49error, descSafe = robot.GetForwardKin(jSafe)
50robot.MoveJ(joint_pos=jSafe,tool= 1,user= 0,vel= 100)
51time.sleep(2)
52error, desc1 = robot.GetForwardKin(j1)
53robot.MoveJ(joint_pos=j1,tool= 1,user= 0,vel= 100)
54time.sleep(2)
55actualTCPPos = [0.0,0.0,0.0,0.0,0.0,0.0]
56error, actualTCPPos = robot.GetActualTCPPose(0)
57robot.SetRefPointInExAxisEnd(actualTCPPos)
58rtn = robot.PositionorSetRefPoint(1)
59print(f"PositionorSetRefPoint 1 rtn is {rtn}")
60time.sleep(2)
61robot.MoveJ(joint_pos=jSafe,tool= 1,user= 0,vel= 100)
62robot.ExtAxisStartJog(1, 0, 50, 50, 10)
63time.sleep(1)
64robot.ExtAxisStartJog(2, 0, 50, 50, 10)
65time.sleep(1)
66error, desc2 = robot.GetForwardKin(j2)
67rtn = robot.MoveJ(joint_pos=j2,tool= 1,user= 0,vel= 100)
68rtn = robot.PositionorSetRefPoint(2)
69print(f"PositionorSetRefPoint 2 rtn is {rtn}")
70time.sleep(2)
71robot.MoveJ(joint_pos=jSafe,tool= 1,user= 0,vel= 100)
72robot.ExtAxisStartJog(1, 0, 50, 50, 10)
73time.sleep(1)
74robot.ExtAxisStartJog(2, 0, 50, 50, 10)
75time.sleep(1)
76error, desc3 = robot.GetForwardKin(j3)
77robot.MoveJ(joint_pos=j3,tool= 1,user= 0,vel= 100)
78rtn = robot.PositionorSetRefPoint(3)
79print(f"PositionorSetRefPoint 3 rtn is {rtn}")
80time.sleep(2)
81robot.MoveJ(joint_pos=jSafe,tool= 1,user= 0,vel= 100)
82robot.ExtAxisStartJog(1, 0, 50, 50, 10)
83time.sleep(1)
84robot.ExtAxisStartJog(2, 0, 50, 50, 10)
85time.sleep(1)
86error, desc4 = robot.GetForwardKin(j4)
87robot.MoveJ(joint_pos=j4,tool= 1,user= 0,vel= 100)
88rtn = robot.PositionorSetRefPoint(4)
89print(f"PositionorSetRefPoint 4 rtn is {rtn}")
90time.sleep(2)
91axisCoord = [0.0,0.0,0.0,0.0,0.0,0.0]
92error,axisCoord = robot.PositionorComputeECoordSys()
93robot.MoveJ(joint_pos=jSafe,tool= 1,user= 0,vel= 100)
94print(f"PositionorComputeECoordSys rtn is {axisCoord[0]} {axisCoord[1]} {axisCoord[2]} {axisCoord[3]} {axisCoord[4]} {axisCoord[5]}")
95rtn = robot.ExtAxisActiveECoordSys(3, 1, axisCoord, 1)
96print(f"ExtAxisActiveECoordSys rtn is {rtn}")
97robot.CloseRPC()

13.40. Movimento do Eixo de Extensão UDP

Novo na versão python: SDK-v2.1.4

Protótipo

ExtAxisMove(pos,ovl,blend=-1)

Descrição

Movimento do eixo de extensão UDP

Parâmetros Obrigatórios

  • pos=[exaxis[0],exaxis[1],exaxis[2],exaxis[3]]: Posição alvo (posição eixo 1 ~ posição eixo 4);

  • ovl: Porcentagem de velocidade

Parâmetros Padrão

  • blend: Parâmetro de suavização (mm ou ms), -1, aguardar conclusão do movimento, padrão -1

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.41. Exemplo de Código de Movimento do Eixo de Extensão UDP

1from fairino import Robot
2import time
3# Estabelece conexão com o controlador do robô, retorna um objeto robô se bem-sucedido
4robot = Robot.RPC('192.168.58.2')
5axisPos = [20,0,0,0]
6robot.ExtAxisMove(axisPos, 50, -1)
7robot.CloseRPC()
8return 0

13.42. Movimento Síncrono do Eixo de Extensão UDP com Movimento Articular do Robô

Novo na versão python: SDK-v2.0.4

Protótipo

ExtAxisSyncMoveJ(joint_pos,tool,user,exaxis_pos, desc_pos=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], vel=20.0, acc=0.0, ovl= 100.0,  blendT=-1.0, offset_flag=0, offset_pos=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0])

Descrição

Movimento síncrono do eixo de extensão UDP com movimento articular do robô

Parâmetros Obrigatórios

  • joint_pos: Posição articular alvo, unidade [°];

  • desc_pos: Pose cartesiana alvo, unidade [mm][°]

  • tool: Número da ferramenta, [0~14]

  • user: Número da peça, [0~14]

  • exaxis_pos: Posição do eixo externo 1 ~ posição do eixo externo 4

Parâmetros Padrão

  • desc_pos: Pose cartesiana alvo, unidade [mm][°] valor inicial padrão [0.0,0.0,0.0,0.0,0.0,0.0], o valor padrão usa o valor de retorno da cinemática direta;

  • vel: Porcentagem de velocidade, [0~100] padrão 20.0;

  • acc: Porcentagem de aceleração, [0~100] temporariamente não disponível, padrão 0.0;

  • ovl: Fator de escala de velocidade, [0~100] padrão 100.0;

  • blendT: [-1.0]-movimento concluído (bloqueado), [0~500.0]-tempo de suavização (não bloqueado), unidade [ms] padrão -1.0;

  • offset_flag: [0]-sem deslocamento, [1]-deslocamento no sistema de coordenadas da peça/base, [2]-deslocamento no sistema de coordenadas da ferramenta padrão 0;

  • offset_pos: Valor de deslocamento da pose, unidade [mm][°] padrão [0.0,0.0,0.0,0.0,0.0,0.0];

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode;

13.43. Exemplo de Código de Movimento Síncrono do Eixo de Extensão UDP com Movimento Articular do Robô

 1from fairino import Robot
 2# Estabelece conexão com o controlador do robô, retorna um objeto robô se bem-sucedido
 3robot = Robot.RPC('192.168.58.2')
 4# Configura parâmetros de comunicação UDP e carrega
 5robot.ExtDevSetUDPComParam("192.168.58.88", 2021, 2, 100, 3, 100, 1, 100, 10)
 6robot.ExtDevLoadUDPDriver()
 7# Configura parâmetros do eixo de extensão
 8robot.SetAxisDHParaConfig(4, 200, 200, 0, 0, 0, 0, 0, 0)
 9robot.SetRobotPosToAxis(1)
10robot.ExtAxisParamConfig(1, 0, 1, 100, -100, 10, 10, 12, 131072, 0, 1, 0, 0)
11# Habilita e faz homing do eixo de extensão
12robot.ExtAxisServoOn(1, 0)
13robot.ExtAxisSetHoming(1, 0, 20, 3)
14# Calibra o sistema de coordenadas do eixo de extensão
15pos = []  # Insira as coordenadas do ponto de calibração aqui
16robot.SetRefPointInExAxisEnd(pos)
17robot.PositionorSetRefPoint(1)  # Esta operação deve ser repetida 4 vezes (com 4 pontos)
18error,coord = robot.PositionorComputeECoordSys()
19robot.ExtAxisActiveECoordSys(1, 1, coord, 1)
20# Ponto inicial e final do movimento síncrono
21startdescPose = []  # Insira as coordenadas específicas
22startjointPos = []  # Insira as coordenadas específicas
23startexaxisPos = []  # Insira as coordenadas específicas
24enddescPose = []  # Insira as coordenadas específicas
25endjointPos = []  # Insira as coordenadas específicas
26endexaxisPos = []  # Insira as coordenadas específicas
27# Move para o ponto inicial
28robot.ExtAxisMove(startexaxisPos, 20, -1)
29offdese = [0, 0, 0, 0, 0, 0]
30robot.MoveJ(joint_pos=startjointPos,tool= 1,user= 1,vel= 100,acc= 100,ovl= 100,exaxis_pos= startexaxisPos,blendT= 0,offset_flag= 0,offset_pos= offdese)
31robot.ExtAxisSyncMoveJ(endjointPos, enddescPose, 1, 1, endexaxisPos, 100, 100, 100, -1, 0, offdese)
32robot.CloseRPC()

13.44. Movimento Síncrono do Eixo de Extensão UDP com Movimento Linear do Robô

Novo na versão python: SDK-v2.1.5

Protótipo

ExtAxisSyncMoveL(desc_pos, tool, user, exaxis_pos, joint_pos=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], vel=20.0, acc=0.0, ovl=100.0, blendR=-1.0, search=0, offset_flag=0, offset_pos=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],config=-1)

Descrição

Movimento síncrono do eixo de extensão UDP com movimento linear do robô

Parâmetros Obrigatórios

  • desc_pos: Pose cartesiana alvo, unidade [mm][°];

  • tool: Número da ferramenta, [0~14];

  • user: Número da peça, [0~14];

  • exaxis_pos: Posição do eixo externo 1 ~ posição do eixo externo 4;

Parâmetros Padrão

  • joint_pos: Posição articular alvo, unidade [°] valor inicial padrão [0.0,0.0,0.0,0.0,0.0,0.0], o valor padrão usa o valor de retorno da cinemática inversa;

  • vel: Porcentagem de velocidade, [0~100] padrão 20.0;

  • acc: Porcentagem de aceleração, [0~100] temporariamente não disponível, padrão 0.0;

  • ovl: Fator de escala de velocidade, [0~100] padrão 100.0;

  • blendR: [-1.0]-movimento concluído (bloqueado), [0~500.0]-tempo de suavização (não bloqueado), unidade [ms] padrão -1.0;

  • search: [0]-sem busca de posição do arame, [1]-com busca de posição do arame;

  • offset_flag: [0]-sem deslocamento, [1]-deslocamento no sistema de coordenadas da peça/base, [2]-deslocamento no sistema de coordenadas da ferramenta padrão 0;

  • offset_pos: Valor de deslocamento da pose, unidade [mm][°] padrão [0.0,0.0,0.0,0.0,0.0,0.0];

  • config: Configuração do espaço articular para cinemática inversa, [-1]-calcular com base na posição articular atual, [0~7]-calcular com base em uma configuração específica do espaço articular, padrão -1

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode;

13.45. Exemplo de Código de Movimento Síncrono do Eixo de Extensão UDP com Movimento Linear do Robô

 1from fairino import Robot
 2# Estabelece conexão com o controlador do robô, retorna um objeto robô se bem-sucedido
 3robot = Robot.RPC('192.168.58.2')
 4# Configura parâmetros de comunicação UDP e carrega
 5robot.ExtDevSetUDPComParam("192.168.58.88", 2021, 2, 100, 3, 100, 1, 100, 10)
 6robot.ExtDevLoadUDPDriver()
 7# Configura parâmetros do eixo de extensão
 8robot.SetAxisDHParaConfig(4, 200, 200, 0, 0, 0, 0, 0, 0)
 9robot.SetRobotPosToAxis(1)
10robot.ExtAxisParamConfig(1, 0, 1, 100, -100, 10, 10, 12, 131072, 0, 1, 0, 0)
11# Habilita e faz homing do eixo de extensão
12robot.ExtAxisServoOn(1, 0)
13robot.ExtAxisSetHoming(1, 0, 20, 3)
14# Calibra o sistema de coordenadas do eixo de extensão
15pos = []  # Insira as coordenadas do ponto de calibração
16robot.SetRefPointInExAxisEnd(pos)
17robot.PositionorSetRefPoint(1)  # Deve ser chamado 4 vezes para calibração
18error,coord = robot.PositionorComputeECoordSys()
19robot.ExtAxisActiveECoordSys(1, 1, coord, 1)
20# Ponto inicial e final do movimento síncrono
21startdescPose = []  # Insira as coordenadas
22startjointPos = []  # Insira as coordenadas
23startexaxisPos = []  # Insira as coordenadas
24enddescPose = []  # Insira as coordenadas
25endjointPos = []  # Insira as coordenadas
26endexaxisPos = []  # Insira as coordenadas
27# Move para o ponto inicial
28robot.ExtAxisMove(startexaxisPos, 20, -1)
29offdese = [0, 0, 0, 0, 0, 0]
30robot.MoveJ(joint_pos=startjointPos, tool= 1,user= 1,vel= 100,acc= 100,ovl= 100,exaxis_pos= startexaxisPos,blendT= 0)
31# Executa movimento linear síncrono
32robot.ExtAxisSyncMoveL(endjointPos, enddescPose, 1, 1, endexaxisPos, 100, 100, 100, 0, 0, offdese)
33robot.CloseRPC()

13.46. Movimento Síncrono do Eixo de Extensão UDP com Movimento de Arco do Robô

Novo na versão python: SDK-v2.1.5

Protótipo

ExtAxisSyncMoveC(desc_pos_p, tool_p, user_p,exaxis_pos_p, desc_pos_t, tool_t, user_t,exaxis_pos_t,joint_pos_p=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], joint_pos_t=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],vel_p=20.0, acc_p=100.0, offset_flag_p=0, offset_pos_p =[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], vel_t=20.0, acc_t=100.0, offset_flag_t=0, offset_pos_t=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], ovl=100.0, blendR=-1.0, config=-1)

Descrição

Movimento síncrono do eixo de extensão UDP com movimento de arco do robô

Parâmetros Obrigatórios

  • desc_pos_p: Pose cartesiana do ponto de caminho, unidade [mm][°];

  • tool_p: Número da ferramenta no ponto de caminho, [0~14];

  • user_p: Número da peça no ponto de caminho, [0~14];

  • exaxis_pos_p: Posição do eixo externo no ponto de caminho (posição eixo 1 ~ posição eixo 4) padrão [0.0,0.0,0.0,0.0];

  • desc_pos_t: Pose cartesiana do ponto alvo, unidade [mm][°];

  • tool_t: Número da ferramenta, [0~14];

  • user_t: Número da peça, [0~14];

  • exaxis_pos_t: Posição do eixo externo no ponto alvo (posição eixo 1 ~ posição eixo 4) padrão [0.0,0.0,0.0,0.0];

Parâmetros Padrão

  • joint_pos_p: Posição articular alvo, unidade [°] valor inicial padrão [0.0,0.0,0.0,0.0,0.0,0.0], o valor padrão usa o valor de retorno da cinemática inversa;

  • joint_pos_t: Posição articular alvo, unidade [°] valor inicial padrão [0.0,0.0,0.0,0.0,0.0,0.0], o valor padrão usa o valor de retorno da cinemática inversa;

  • vel_p: Porcentagem de velocidade no ponto de caminho, [0~100] padrão 20.0;

  • acc_p: Porcentagem de aceleração no ponto de caminho, [0~100] temporariamente não disponível, padrão 0.0;

  • offset_flag_p: Se há deslocamento no ponto de caminho [0]-sem deslocamento, [1]-deslocamento no sistema de coordenadas da peça/base, [2]-deslocamento no sistema de coordenadas da ferramenta padrão 0;

  • offset_pos_p: Valor de deslocamento da pose no ponto de caminho, unidade [mm][°] padrão [0.0,0.0,0.0,0.0,0.0,0.0];

  • vel_t: Porcentagem de velocidade no ponto alvo, [0~100] padrão 20.0;

  • acc_t: Porcentagem de aceleração no ponto alvo, [0~100] temporariamente não disponível, padrão 0.0;

  • offset_flag_t: Se há deslocamento no ponto alvo [0]-sem deslocamento, [1]-deslocamento no sistema de coordenadas da peça/base, [2]-deslocamento no sistema de coordenadas da ferramenta padrão 0;

  • offset_pos_t: Valor de deslocamento da pose no ponto alvo, unidade [mm][°] padrão [0.0,0.0,0.0,0.0,0.0,0.0];

  • ovl: Fator de escala de velocidade, [0~100] padrão 100.0;

  • blendR: [-1.0]-movimento concluído (bloqueado), [0~1000]-raio de suavização (não bloqueado), unidade [mm] padrão -1.0;

  • config: Configuração do espaço articular para cinemática inversa, [-1]-calcular com base na posição articular atual, [0~7]-calcular com base em uma configuração específica do espaço articular, padrão -1

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode;

13.47. Exemplo de Código de Movimento Síncrono do Eixo de Extensão UDP com Movimento de Arco do Robô

 1from fairino import Robot
 2# Estabelece conexão com o controlador do robô, retorna um objeto robô se bem-sucedido
 3robot = Robot.RPC('192.168.58.2')
 4# Configura parâmetros de comunicação UDP e carrega
 5robot.ExtDevSetUDPComParam("192.168.58.88", 2021, 2, 100, 3, 100, 1, 100, 10)
 6robot.ExtDevLoadUDPDriver()
 7# Configura parâmetros do eixo de extensão
 8robot.SetAxisDHParaConfig(4, 200, 200, 0, 0, 0, 0, 0, 0)
 9robot.SetRobotPosToAxis(1)
10robot.ExtAxisParamConfig(1, 0, 1, 100, -100, 10, 10, 12, 131072, 0, 1, 0, 0)
11# Habilita e faz homing do eixo de extensão
12robot.ExtAxisServoOn(1, 0)
13robot.ExtAxisSetHoming(1, 0, 20, 3)
14# Calibra o sistema de coordenadas do eixo de extensão
15pos = []  # Insira as coordenadas do ponto de calibração
16robot.SetRefPointInExAxisEnd(pos)
17robot.PositionorSetRefPoint(1)  # Chame 4 vezes para completar a calibração
18coord = []
19error,coord = robot.PositionorComputeECoordSys()
20robot.ExtAxisActiveECoordSys(1, 1, coord, 1)
21# Ponto inicial, ponto intermediário e ponto final do arco síncrono
22startdescPose = []# Insira as coordenadas
23startjointPos = []# Insira as coordenadas
24startexaxisPos =[]  # Insira as coordenadas do eixo de extensão
25middescPose = []# Insira o ponto intermediário
26midjointPos = []
27midexaxisPos =[]
28enddescPose = []
29endjointPos = []
30endexaxisPos =[]
31# Move para o ponto inicial
32robot.ExtAxisMove(startexaxisPos, 20, -1)
33offdese = [0, 0, 0, 0, 0, 0]
34robot.MoveJ(joint_pos=startjointPos,tool= 1,user= 1,vel= 100,acc= 100,ovl= 100,exaxis_pos= startexaxisPos,blendT= 0,offset_flag= 0,offset_pos= offdese)
35# Inicia movimento de arco síncrono
36robot.ExtAxisSyncMoveC(midjointPos,middescPose,1,1,midexaxisPos,
37                       endjointPos,enddescPose,1,1,endexaxisPos,
38                       100,100,0,offdese,
39                       100,100,0,offdese,
40                       100,0)
41robot.CloseRPC()

13.48. Definir DO de Extensão

Novo na versão python: SDK-v2.0.4

Protótipo

SetAuxDO(DONum,bOpen,smooth,block)

Descrição

Define o DO de extensão

Parâmetros Obrigatórios

  • DONum: Número do DO;

  • bOpen: Interruptor True-Ligado, False-Desligado;

  • smooth: Se é suave True - Sim, False - Não;

  • block: Se é bloqueante True - Sim, False - Não;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.49. Definir AO de Extensão

Novo na versão python: SDK-v2.0.4

Protótipo

SetAuxAO(AONum,value,block)

Descrição

Define o AO de extensão

Parâmetros Obrigatórios

  • AONum: Número do AO;

  • value: Valor analógico [0-4095];

  • block: Se é bloqueante True - Sim, False - Não;

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.50. Definir Tempo de Filtro de Entrada do DI de Extensão

Novo na versão python: SDK-v2.0.4

Protótipo

SetAuxDIFilterTime(filterTime)

Descrição

Define o tempo de filtro de entrada do DI de extensão

Parâmetros Obrigatórios

  • filterTime: Tempo de filtro (ms);

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.51. Definir Tempo de Filtro de Entrada do AI de Extensão

Novo na versão python: SDK-v2.0.4

Protótipo

SetAuxAIFilterTime(AINum,filterTime)

Descrição

Define o tempo de filtro de entrada do AI de extensão

Parâmetros Obrigatórios

  • AINum: Número do AI;

  • filterTime: Tempo de filtro (ms);

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.52. Aguardar Entrada DI de Extensão

Novo na versão python: SDK-v2.0.4

Protótipo

WaitAuxDI(DINum,bOpen,time,errorAlarm)

Descrição

Aguarda a entrada DI de extensão

Parâmetros Obrigatórios

  • DINum: Número do DI;

  • bOpen: Interruptor True-Ligado, False-Desligado;

  • time: Tempo máximo de espera (ms);

  • errorAlarm: Se continua o movimento True - Sim, False - Não

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.53. Aguardar Entrada AI de Extensão

Novo na versão python: SDK-v2.0.4

Protótipo

WaitAuxAI(,AINum,sign,value,time,errorAlarm)

Descrição

Aguarda a entrada AI de extensão

Parâmetros Obrigatórios

  • AINum: Número do AI;

  • sign: 0-maior que; 1-menor que;

  • value: Valor do AI;

  • time: Tempo máximo de espera (ms);

  • errorAlarm: Se continua o movimento True - Sim, False - Não

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.54. Obter Valor do DI de Extensão

Novo na versão python: SDK-v2.0.4

Protótipo

GetAuxDI(DINum,isNoBlock)

Descrição

Obtém o valor do DI de extensão

Parâmetros Obrigatórios

  • DINum: Número do DI;

  • isNoBlock: Se é não bloqueante True - Bloqueante false - Não bloqueante;

Parâmetros Padrão

Nenhum

Valor de Retorno

  • Código de erro: Sucesso-0 Falha - errcode;

  • isOpen: 0-Desligado; 1-Ligado;

13.55. Obter Valor do AI de Extensão

Novo na versão python: SDK-v2.0.4

Protótipo

GetAuxAI(AINum,isNoBlock)

Descrição

Obtém o valor do AI de extensão

Parâmetros Obrigatórios

  • AINum: Número do AI;

  • isNoBlock: Se é não bloqueante True - Bloqueante False - Não bloqueante

Parâmetros Padrão

Nenhum

Valor de Retorno

  • Código de erro: Sucesso-0 Falha - errcode;

  • value: Valor de entrada;

13.56. Exemplo de Código de IO de Extensão

 1from fairino import Robot
 2import time
 3import threading
 4# Estabelece conexão com o controlador do robô, retorna um objeto robô se bem-sucedido
 5robot = Robot.RPC('192.168.58.2')
 6for i in range(128):
 7    robot.SetAuxDO(i, True, False, True)
 8    time.sleep(0.1)
 9for i in range(128):
10    robot.SetAuxDO(i, False, False, True)
11    time.sleep(0.1)
12for i in range(409):
13    value1 = i * 10
14    value2 = 4095 - i * 10
15    robot.SetAuxAO(0, value1, True)
16    robot.SetAuxAO(1, value2, True)
17    robot.SetAuxAO(2, value1, True)
18    robot.SetAuxAO(3, value2, True)
19    time.sleep(0.01)
20robot.SetAuxDIFilterTime(10)
21robot.SetAuxAIFilterTime(0, 10)
22for i in range(20):
23    curValue = False
24    error, curValue = robot.GetAuxDI(i, False)  # Nota: a referência de passagem de parâmetros pode precisar de ajuste interno da biblioteca
25    print(f"DI{i}   {curValue}")
26curValue = -1
27for i in range(4):
28    error, curValue = robot.GetAuxAI(i, True)  # Também atentar para a passagem por referência
29    print(f"AI{i}   {curValue}")
30robot.WaitAuxDI(1, False, 1000, False)
31robot.WaitAuxAI(1, 1, 132, 1000, False)
32robot.CloseRPC()

13.57. Habilitar Dispositivo Móvel

Novo na versão python: SDK-v2.0.5

Protótipo

TractorEnable(enable)

Descrição

Habilita o dispositivo móvel

Parâmetros Obrigatórios

  • enable: Estado de habilitação, 0-desabilitar, 1-habilitar

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.58. Homing do Dispositivo Móvel

Novo na versão python: SDK-v2.0.5

Protótipo

TractorHoming()

Descrição

Homing do dispositivo móvel

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.59. Movimento Linear do Dispositivo Móvel

Novo na versão python: SDK-v2.0.5

Protótipo

TractorMoveL(distance, vel)

Descrição

Movimento linear do dispositivo móvel

Parâmetros Obrigatórios

  • distance: Distância do movimento linear (mm)

  • vel: Porcentagem de velocidade do movimento linear (0-100)

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.60. Movimento de Arco do Dispositivo Móvel

Novo na versão python: SDK-v2.0.5

Protótipo

TractorMoveC(radio, angle, vel)

Descrição

Movimento de arco do dispositivo móvel

Parâmetros Obrigatórios

  • radio: Raio do movimento de arco (mm)

  • angle: Ângulo do movimento de arco (°)

  • vel: Porcentagem de velocidade do movimento de arco (0-100)

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.61. Parar Movimento do Dispositivo Móvel

Novo na versão python: SDK-v2.0.5

Protótipo

ProgramStop()

Descrição

Para o movimento do dispositivo móvel

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.62. Exemplo de Código do Dispositivo Móvel

 1from fairino import Robot
 2# Estabelece conexão com o controlador do robô, retorna um objeto robô se bem-sucedido
 3robot = Robot.RPC('192.168.58.2')
 4robot.ExtDevSetUDPComParam("192.168.58.2", 2021, 2, 50, 5, 50, 1, 50, 10, 1)
 5robot.ExtDevLoadUDPDriver()
 6rtn = robot.ExtAxisServoOn(1, 1)
 7rtn = robot.ExtAxisServoOn(2, 1)
 8time.sleep(2)
 9robot.ExtAxisSetHoming(1, 0, 10, 2)
10time.sleep(2)
11rtn = robot.ExtAxisSetHoming(2, 0, 10, 2)
12time.sleep(4)
13robot.ExtAxisParamConfig(1, 0, 0, 50000, -50000, 1000, 1000, 6.280, 16384, 200, 0, 0, 0)
14robot.ExtAxisParamConfig(2, 0, 0, 50000, -50000, 1000, 1000, 6.280, 16384, 200, 0, 0, 0)
15robot.SetAxisDHParaConfig(5, 0, 0, 0, 0, 0, 0, 0, 0)
16robot.TractorEnable(False)
17time.sleep(2)
18robot.TractorEnable(True)
19time.sleep(2)
20robot.TractorHoming()
21time.sleep(2)
22robot.TractorMoveL(100, 2)
23time.sleep(5)
24robot.TractorStop()
25robot.TractorMoveL(-100, 20)
26time.sleep(5)
27robot.TractorMoveC(300, 90, 20)
28time.sleep(10)
29robot.TractorMoveC(300, -90, 20)
30time.sleep(1)
31robot.CloseRPC()

13.63. Registrar Ponto do Sensor a Laser

Novo na versão python: SDK-v2.1.4

Protótipo

LaserRecordPoint(coordID)

Descrição

Registra o ponto do sensor a laser

Parâmetros Obrigatórios

  • coordID: Sistema de coordenadas do sensor a laser

Parâmetros Padrão

Nenhum

Valor de Retorno

  • Código de erro: Sucesso-0 Falha - errcode

  • joint: Posição articular do ponto identificado pelo sensor a laser

  • desc: Posição cartesiana do ponto identificado pelo sensor a laser

  • exaxis: Posição do eixo de extensão do ponto identificado pelo sensor a laser

13.64. Exemplo de Código para Registrar Ponto do Sensor a Laser

Novo na versão python: SDK-v2.1.4

 1from fairino import Robot
 2# Estabelece conexão com o controlador do robô, retorna um objeto robô se bem-sucedido
 3robot = Robot.RPC('192.168.58.2')
 4direction_point = [0, 0, 0]
 5rtn = robot.LaserTrackingSearchStart(2, direction_point, 10, 100, 10000, 2)
 6print(f"LaserTrackingSearchStart rtn is {rtn}")
 7robot.LaserTrackingSearchStop()
 8coord_id = 2
 9rtn, joint, desc, exaxis = robot.LaserRecordPoint(coord_id)
10print(f"rtn is {rtn}")
11print(f"desc_pos:{desc[0]},{desc[1]},{desc[2]},"
12      f"{desc[3]},{desc[4]},{desc[5]}")
13print(f"joint_pos:{joint[0]},{joint[1]},{joint[2]},{joint[3]},{joint[4]},{joint[5]}")
14print(f"exaxis pos is {exaxis[0]} {exaxis[1]} {exaxis[2]} {exaxis[3]}")
15off = [0] * 6
16robot.MoveJ(joint,tool=1,user=0,vel=100,acc=100,ovl=50,exaxis_pos=exaxis,blendT=-1,offset_flag=0,offset_pos=off)
17robot.CloseRPC()

13.65. Definir Estratégia de Movimento Síncrono do Eixo de Extensão com o Robô

Novo na versão python: SDK-v2.1.5

Protótipo

SetExAxisRobotPlan(strategy)

Descrição

Define a estratégia de movimento síncrono do eixo de extensão com o robô

Parâmetros Obrigatórios

  • strategy: Estratégia; 0-prioridade para o robô; 1-eixo de extensão síncrono com o robô

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode

13.66. Exemplo de Código para Definir Estratégia de Movimento Síncrono do Eixo de Extensão com o Robô

Novo na versão python: SDK-v2.1.5

 1from fairino import Robot
 2# Estabelece conexão com o controlador do robô, retorna um objeto robô se bem-sucedido
 3robot = Robot.RPC('192.168.58.2')
 4joint_pos1 = [-22.016, -49.217, 124.714, -161.100, -85.108, -0.333]
 5joint_pos2 = [-21.083, -46.613, 110.079, -147.796, -80.757, -0.330]
 6joint_pos3 = [-25.572, -60.090, 135.397, -163.889, -82.489, -0.345]
 7desc_pos1 = [2.637, -0.001, 30.673, 178.786, -4.134, 68.326]
 8desc_pos2 = [213.812, -1.440, 47.311, 177.410, 0.166, 68.946]
 9desc_pos3 = [444.342, -12.723, 82.470, -177.701, -1.325, 65.151]
10epos1 = [0.001, 0.000, 0.000, 0.000]
11epos2 = [299.977, 0.000, 0.000, 0.000]
12epos3 = [399.969, 0.000, 0.000, 0.000]
13offset_pos = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
14rtn = robot.SetExAxisRobotPlan(0)
15print(f"SetExAxisRobotPlan rtn is {rtn}")
16time.sleep(1)
17rtn = robot.ExtAxisSyncMoveL(desc_pos=desc_pos1,tool=1,user=0,vel=100,acc=100,ovl=100,blendR=-1,exaxis_pos=epos1,offset_flag=0,offset_pos=offset_pos)
18print(f"ExtAxisSyncMoveL 1 rtn is {rtn}")
19rtn = robot.ExtAxisSyncMoveL(desc_pos=desc_pos2,tool=1,user=0,vel=100,acc=100,ovl=100,blendR=-1,exaxis_pos=epos2,offset_flag=0,offset_pos=offset_pos)
20print(f"ExtAxisSyncMoveL 2 rtn is {rtn}")
21rtn = robot.ExtAxisSyncMoveL(desc_pos=desc_pos3,tool=1,user=0,vel=100,acc=100,ovl=100,blendR=-1,exaxis_pos=epos3,offset_flag=0,offset_pos=offset_pos)
22print(f"ExtAxisSyncMoveL 3 rtn is {rtn}")
23time.sleep(8)
24robot.CloseRPC()

13.67. Configuração do Tempo de Conclusão do Posicionamento do Eixo de Extensão UDP

Novo na versão python: SDK-v2.1.5

Protótipo

SetExAxisCmdDoneTime(time)

Descrição

Configuração do tempo de conclusão do posicionamento do eixo de extensão UDP

Parâmetros Obrigatórios

  • time: Tempo de conclusão do posicionamento [ms]

Parâmetros Padrão

Nenhum

Valor de Retorno

Código de erro: Sucesso-0 Falha - errcode