11. Periféricos do Robô

11.1. Configurar Garra

Protótipo

SetGripperConfig(company,device,softversion=0,bus=0)

Descrição

Configura a garra

Parâmetros Obrigatórios

  • company: Fabricante da garra, 1-Robotiq, 2-Huiling, 3-Tianji, 4-Dahuan, 5-Zhixing;

  • device: Número do dispositivo, Robotiq(0-2F-85 series), Huiling(0-NK series,1-Z-EFG-100), Tianji(0-TEG-110), Dahuan(0-PGI-140), Zhixing(0-CTPM2F20)

Parâmetros Padrão

  • softversion: Número da versão do software, não usado no momento, padrão 0;

  • bus: Posição do barramento onde o dispositivo está montado, não usado no momento, padrão 0;

Valor de Retorno

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

11.2. Obter Configuração da Garra

Protótipo

GetGripperConfig()

Descrição

Obtém a configuração da garra

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • [number,company,device,softversion]: number, número da garra; company, fabricante da garra, 1-Robotiq, 2-Huiling, 3-Tianji, 4-Dahuan, 5-Zhixing; device, número do dispositivo, Robotiq(0-2F-85 series), Huiling(0-NK series,1-Z-EFG-100), Tianji(0-TEG-110), Dahuan(0-PGI-140), Zhixing(0-CTPM2F20); softvesion, número da versão do software, não usado no momento, padrão 0.

11.3. Ativar Garra

Protótipo

ActGripper(index,action)

Descrição

Ativa a garra

Parâmetros Obrigatórios

  • index: Número da garra;

  • action: 0-reset, 1-ativar

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.4. Controlar Garra

Protótipo

MoveGripper(index,pos,vel,force,maxtime,block,type,rotNum,rotVel,rotTorque)

Descrição

Controla a garra

Parâmetros Obrigatórios

  • index: Número da garra;

  • pos: Porcentagem de posição, faixa [0~100];

  • vel: Porcentagem de velocidade, faixa [0~100];

  • force: Porcentagem de torque, faixa [0~100];

  • maxtime: Tempo máximo de espera, faixa [0~30000], unidade [ms];

  • block: 0-bloqueado, 1-não bloqueado;

  • type: Tipo de garra, 0-garra paralela; 1-garra rotativa;

  • rotNum: Número de rotações;

  • rotVel: Porcentagem de velocidade de rotação [0-100];

  • rotTorque: Porcentagem de torque de rotação [0-100].

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.5. Obter Estado de Movimento da Garra

Protótipo

GetGripperMotionDone()

Descrição

Obtém o estado de movimento da garra

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • [fault,status]: Estado de movimento da garra, fault:0-sem erro, 1-com erro; status:0-movimento não concluído, 1-movimento concluído

11.6. Obter Estado de Ativação da Garra

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

Protótipo

GetGripperActivateStatus()

Descrição

Obtém o estado de ativação da garra

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • fault: 0-sem erro, 1-com erro

  • gripper_active: bit0~bit15 correspondem aos números das garras 0~15, bit=0 não ativado, bit=1 ativado

11.7. Obter Posição da Garra

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

Protótipo

GetGripperCurPosition()

Descrição

Obtém a posição da garra

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • fault: 0-sem erro, 1-com erro

  • position: Porcentagem de posição, faixa 0~100%

11.8. Obter Velocidade da Garra

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

Protótipo

GetGripperCurSpeed()

Descrição

Obtém a velocidade da garra

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • fault: 0-sem erro, 1-com erro

  • speed: Porcentagem de velocidade, faixa 0~100%

11.9. Obter Corrente da Garra

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

Protótipo

GetGripperCurCurrent()

Descrição

Obtém a corrente da garra

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • fault: 0-sem erro, 1-com erro

  • current: Porcentagem de corrente, faixa 0~100%

11.10. Obter Tensão da Garra

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

Protótipo

GetGripperVoltage()

Descrição

Obtém a tensão da garra

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • fault: 0-sem erro, 1-com erro

  • voltage: Tensão, unidade 0.1V

11.11. Obter Temperatura da Garra

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

Protótipo

GetGripperTemp()

Descrição

Obtém a temperatura da garra

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • fault: 0-sem erro, 1-com erro

  • temp: Temperatura, unidade ℃

11.12. Calcular Ponto de Pré-Captura - Visão

Protótipo

ComputePrePick(desc_pos, zlength, zangle)

Descrição

Calcula o ponto de pré-captura - Visão

Parâmetros Obrigatórios

  • desc_pos: Pose cartesiana do ponto de captura;

  • zlength: Deslocamento no eixo Z;

  • zangle: Deslocamento de rotação em torno do eixo Z

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • pre_pos: Pose cartesiana do ponto de pré-captura

11.13. Calcular Ponto de Retirada - Visão

Protótipo

ComputePostPick(desc_pos, zlength, zangle)

Descrição

Calcula o ponto de retirada - Visão

Parâmetros Obrigatórios

  • desc_pos: Pose cartesiana do ponto de captura;

  • zlength: Deslocamento no eixo Z;

  • zangle: Deslocamento de rotação em torno do eixo Z

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • post_pos: Pose cartesiana do ponto de retirada

11.14. Exemplo de Código para Operações com a Garra 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')
 4company = 4
 5device = 0
 6softversion = 0
 7bus = 2
 8index = 2
 9act = 0
10max_time = 30000
11block = 0
12status = 0
13fault = 0
14active_status = 0
15current_pos = 0
16current = 0
17voltage = 0
18temp = 0
19speed = 0
20robot.SetGripperConfig(company, device, softversion, bus)
21time.sleep(1)
22error,[company, device, softversion, bus] = robot.GetGripperConfig()
23print(f"gripper config:{company},{device},{softversion},{bus}")
24robot.ActGripper(index, act)
25time.sleep(1)
26act = 1
27robot.ActGripper(index, act)
28time.sleep(1)
29error = robot.MoveGripper(index, 90, 50, 50, max_time, block, 0, 0, 0, 0)
30print(f"MoveGripper retval is:{error}")
31time.sleep(1)
32error = robot.MoveGripper(index, 30, 50, 0, max_time, block, 0, 0, 0, 0)
33print(f"MoveGripper retval is:{error}")
34error, [fault, status] = robot.GetGripperMotionDone()
35print(f"motion status:{fault},{status}")
36error, [fault, active_status] = robot.GetGripperActivateStatus()
37print(f"gripper active fault is:{fault},status is:{active_status}")
38error, [fault, current_pos] = robot.GetGripperCurPosition()
39print(f"fault is:{fault},current position is:{current_pos}")
40error, [fault, current] = robot.GetGripperCurCurrent()
41print(f"fault is:{fault},current current is:{current}")
42error, [fault, voltage] = robot.GetGripperVoltage()
43print(f"fault is:{fault},current voltage is:{voltage}")
44error, [fault, temp] = robot.GetGripperTemp()
45print(f"fault is:{fault},current temperature is:{temp}")
46error, [fault, speed] = robot.GetGripperCurSpeed()
47print(f"fault is:{fault},current speed is:{speed}")
48retval = 0
49prepick_pose = [0.0]*6
50postpick_pose = [0.0]*6
51p1Desc = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
52p2Desc = [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869]
53retval, prepick_pose = robot.ComputePrePick(p1Desc, 10, 0)
54print(f"ComputePrePick retval is:{retval}")
55print(f"xyz is:{prepick_pose[0]},{prepick_pose[1]},{prepick_pose[2]};rpy is:{prepick_pose[3]},{prepick_pose[4]},{prepick_pose[5]}")
56retval, postpick_pose = robot.ComputePostPick(p2Desc, -10, 0)
57print(f"ComputePostPick retval is:{retval}")
58print(f"xyz is:{postpick_pose[0]},{postpick_pose[1]},{postpick_pose[2]};rpy is:{postpick_pose[3]},{postpick_pose[4]},{postpick_pose[5]}")
59robot.CloseRPC()

11.15. Obter Número de Rotações da Garra Rotativa

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

Protótipo

GetGripperRotNum()

Descrição

Obtém o número de rotações da garra rotativa

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • fault: 0-sem erro, 1-com erro

  • num: Número de rotações

11.16. Obter Porcentagem de Velocidade de Rotação da Garra Rotativa

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

Protótipo

GetGripperRotSpeed()

Descrição

Obtém a porcentagem de velocidade de rotação da garra rotativa

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • fault: 0-sem erro, 1-com erro

  • speed: Porcentagem de velocidade de rotação

11.17. Obter Porcentagem de Torque de Rotação da Garra Rotativa

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

Protótipo

GetGripperRotTorque()

Descrição

Obtém a porcentagem de torque de rotação da garra rotativa

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • fault: 0-sem erro, 1-com erro

  • torque: Porcentagem de torque de rotação

11.18. Exemplo de Código para Obter Estado da Garra Rotativa

 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')
 4fault = 0
 5rotNum = 0.0
 6rotSpeed = 0
 7rotTorque = 0
 8error,fault, rotNum = robot.GetGripperRotNum()
 9error,fault, rotSpeed = robot.GetGripperRotSpeed()
10error,fault, rotTorque = robot.GetGripperRotTorque()
11print(f"gripper rot num:{rotNum},gripper rotSpeed:{rotSpeed},gripper rotTorque:{rotTorque}")
12robot.CloseRPC()

11.19. Iniciar/Parar Esteira Transportadora

Protótipo

ConveyorStartEnd(status)

Descrição

Inicia/para a esteira transportadora

Parâmetros Obrigatórios

  • status: Estado da esteira, 1-iniciar, 0-parar

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.20. Registrar Ponto de Detecção IO

Protótipo

ConveyorPointIORecord()

Descrição

Registra o ponto de detecção IO

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.21. Registrar Ponto A

Protótipo

ConveyorPointARecord()

Descrição

Registra o ponto A

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.22. Registrar Ponto de Referência

Protótipo

ConveyorRefPointRecord()

Descrição

Registra o ponto de referência

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.23. Registrar Ponto B

Protótipo

ConveyorPointBRecord()

Descrição

Registra o ponto B

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.24. Detecção IO de Peça na Esteira

Protótipo

ConveyorIODetect(max_t)

Descrição

Detecção IO de peça na esteira

Parâmetros Obrigatórios

  • max_t: Tempo máximo de detecção, unidade ms

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.25. Obter Posição Atual do Objeto

Protótipo

ConveyorGetTrackData(mode)

Descrição

Obtém a posição atual do objeto

Parâmetros Obrigatórios

  • mode: 1-captura com rastreamento 2-movimento com rastreamento 3-rastreamento TPD

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.26. Iniciar Rastreamento da Esteira

Protótipo

ConveyorTrackStart(status)

Descrição

Inicia o rastreamento da esteira

Parâmetros Obrigatórios

  • status: Estado, 1-iniciar, 0-parar

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.27. Parar Rastreamento da Esteira

Protótipo

ConveyorTrackEnd()

Descrição

Para o rastreamento da esteira

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.28. Configurar Parâmetros da Esteira

Protótipo

ConveyorSetParam(param, followType, startDis, endDis)

Descrição

Configura os parâmetros da esteira

Parâmetros Obrigatórios

  • param: = [encChannel,resolution,lead,wpAxis,vision,speedRadio]
    • encChannel: Canal do encoder 1-2

    • resolution: Resolução do encoder, número de pulsos por rotação do encoder

    • lead: Relação de transmissão mecânica, distância percorrida pela esteira por rotação do encoder

    • wpAxis: Número do sistema de coordenadas da peça (para movimento de rastreamento, escolha o número do sistema de coordenadas; para captura com rastreamento e rastreamento TPD, defina como 0)

    • vision: Se usa visão 0-não usa 1-usa,

    • speedRadio: Relação de velocidade (para a opção de captura com rastreamento da esteira, faixa de velocidade (1-100); para movimento de rastreamento e rastreamento TPD, defina como 1)

  • followType: Tipo de movimento de rastreamento, 0-movimento de rastreamento; 1-movimento de verificação

Parâmetros Padrão

  • startDis: Necessário para captura com verificação, distância inicial de rastreamento, -1: cálculo automático (a verificação começa automaticamente quando a peça chega abaixo do robô), unidade mm, valor padrão 0

  • endDis: Necessário para captura com verificação, distância final de rastreamento, unidade mm, valor padrão 100

Valor de Retorno

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

11.29. Compensação do Ponto de Captura da Esteira

Protótipo

ConveyorCatchPointComp(cmp)

Descrição

Compensação do ponto de captura da esteira

Parâmetros Obrigatórios

  • cmp: Compensação de posição [x,y,z]

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.30. Movimento Linear com Rastreamento da Esteira

Protótipo

ConveyorTrackMoveL(name,tool,wobj,vel=20,acc=100,ovl=100,blendR=-1.0)

Descrição

Movimento linear com rastreamento da esteira

Parâmetros Obrigatórios

  • name: cvrCatchPoint ou cvrRaisePoint

  • tool: Número da ferramenta

  • wobj: Número da peça

Parâmetros Padrão

  • vel: Velocidade padrão 20

  • acc: Aceleração padrão 100

  • ovl: Fator de escala de velocidade padrão 100

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

Valor de Retorno

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

11.31. Detecção de Entrada de Comunicação da Esteira

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

Protótipo

ConveyorComDetect(timeout)

Descrição

Detecção de entrada de comunicação da esteira

Parâmetros Obrigatórios

  • timeout: Tempo limite de espera ms

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.32. Acionamento da Detecção de Entrada de Comunicação da Esteira

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

Protótipo

ConveyorComDetectTrigger()

Descrição

Acionamento da detecção de entrada de comunicação da esteira

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.33. Exemplo de Código de Operação da Esteira do Robô

 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.ConveyorStartEnd(1)
 7print(f"ConveyorStartEnd retval is:{retval}")
 8retval = robot.ConveyorPointIORecord()
 9print(f"ConveyorPointIORecord retval is:{retval}")
10retval = robot.ConveyorPointARecord()
11print(f"ConveyorPointARecord retval is:{retval}")
12retval = robot.ConveyorRefPointRecord()
13print(f"ConveyorRefPointRecord retval is:{retval}")
14retval = robot.ConveyorPointBRecord()
15print(f"ConveyorPointBRecord retval is:{retval}")
16retval = robot.ConveyorStartEnd(0)
17print(f"ConveyorStartEnd retval is:{retval}")
18param = [1.0, 10000.0, 200.0, 0.0, 0.0, 20.0]
19retval = robot.ConveyorSetParam(param,0)
20print(f"ConveyorSetParam retval is:{retval}")
21cmp = [0.0, 0.0, 0.0]
22retval = robot.ConveyorCatchPointComp(cmp)
23print(f"ConveyorCatchPointComp retval is:{retval}")
24index = 1
25max_time = 30000
26block = 0
27retval = 0
28p1Desc = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
29p2Desc = [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869]
30retval = robot.MoveCart(p1Desc, 1, 0, 100.0)
31print(f"MoveCart retval is:{retval}")
32retval = robot.WaitMs(1)
33print(f"WaitMs retval is:{retval}")
34retval = robot.ConveyorIODetect(10000)
35print(f"ConveyorIODetect retval is:{retval}")
36retval = robot.ConveyorGetTrackData(1)
37print(f"ConveyorGetTrackData retval is:{retval}")
38retval = robot.ConveyorTrackStart(1)
39print(f"ConveyorTrackStart retval is:{retval}")
40retval = robot.ConveyorTrackMoveL("cvrCatchPoint", 1, 0, 100)
41print(f"TrackMoveL retval is:{retval}")
42retval = robot.MoveGripper(index, 51, 40, 30, max_time, block, 0, 0, 0, 0)
43print(f"MoveGripper retval is:{retval}")
44retval = robot.ConveyorTrackMoveL("cvrRaisePoint", 1, 0, 100)
45print(f"TrackMoveL retval is:{retval}")
46retval = robot.ConveyorTrackEnd()
47print(f"ConveyorTrackEnd retval is:{retval}")
48robot.MoveCart(p2Desc, 1, 0, 100.0, 100.0)
49retval = robot.MoveGripper(index, 100, 40, 10, max_time, block, 0, 0, 0, 0)
50print(f"MoveGripper retval is:{retval}")
51robot.CloseRPC()

11.34. Configurar Sensor de Extremidade

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

Protótipo

AxleSensorConfig(idCompany, idDevice, idSoftware, idBus)

Descrição

Configura o sensor de extremidade

Parâmetros Obrigatórios

  • idCompany: Fabricante, 18-JUNKONG; 25-HUIDE

  • idDevice: Tipo, 0-JUNKONG/RYR6T.V1.0

  • idSoftware: Versão do software, 0-J1.0/HuiDe1.0 (temporariamente não disponível)

  • idBus: Posição de montagem, 1-porta 1 da extremidade; 2-porta 2 da extremidade…8-porta 8 da extremidade (temporariamente não disponível)

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.35. Obter Configuração do Sensor de Extremidade

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

Protótipo

AxleSensorConfigGet()

Descrição

Obtém a configuração do sensor de extremidade

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • idCompany: Fabricante, 18-JUNKONG; 25-HUIDE

  • idDevice: Tipo, 0-JUNKONG/RYR6T.V1.0

11.36. Ativar Sensor de Extremidade

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

Protótipo

AxleSensorActivate(actFlag)

Descrição

Ativa o sensor de extremidade

Parâmetros Obrigatórios

actFlag: 0-reset; 1-ativar

Parâmetros Padrão

Nenhum

Valor de Retorno

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

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

11.37. Escrita no Registrador do Sensor de Extremidade

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

Protótipo

AxleSensorRegWrite(devAddr, regHAddr, regLAddr, regNum, data1, data2, isNoBlock)

Descrição

Escrita no registrador do sensor de extremidade

Parâmetros Obrigatórios

  • devAddr: Endereço do dispositivo 0-255

  • regHAddr: 8 bits altos do endereço do registrador

  • regLAddr: 8 bits baixos do endereço do registrador

  • regNum: Número de registradores 0-255

  • data1: Valor 1 a ser escrito no registrador

  • data2: Valor 2 a ser escrito no registrador

  • isNoBlock: Se é bloqueante 0-bloqueado; 1-não bloqueado

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.38. Exemplo de Código do Sensor de Extremidade

 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')
 6robot.AxleSensorConfig(18, 0, 0, 1)
 7error, company, type = robot.AxleSensorConfigGet()
 8print(f"company is:{company},type is:{type}")
 9rtn = robot.AxleSensorActivate(1)
10print(f"AxleSensorActivate rtn is:{rtn}")
11time.sleep(1)
12rtn = robot.AxleSensorRegWrite(1, 4, 6, 1, 0, 0, 0)
13print(f"AxleSensorRegWrite rtn is:{rtn}")
14robot.CloseRPC()

11.39. Obter Protocolo de Periféricos do Robô

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

Protótipo

GetExDevProtocol()

Descrição

Obtém o protocolo de periféricos do robô

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • protocol: Número do protocolo de periféricos do robô 4096-placa de controle do eixo de extensão; 4097-ModbusSlave; 4098-ModbusMaster

11.40. Definir Protocolo de Periféricos do Robô

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

Protótipo

SetExDevProtocol(protocol)

Descrição

Define o protocolo de periféricos do robô

Parâmetros Obrigatórios

  • protocol: Número do protocolo de periféricos do robô 4096-placa de controle do eixo de extensão; 4097-ModbusSlave; 4098-ModbusMaster

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.41. Exemplo de Código para Definir Protocolo de Periféricos 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')
4protocol = 4096
5rtn = robot.SetExDevProtocol(protocol)
6print(f"SetExDevProtocol rtn:{rtn}")
7rtn, protocol = robot.GetExDevProtocol()
8print(f"GetExDevProtocol rtn:{rtn},protocol is:{protocol}")
9robot.CloseRPC()

11.42. Obter Parâmetros de Comunicação da Extremidade

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

Protótipo

GetAxleCommunicationParam()

Descrição

Obtém os parâmetros de comunicação da extremidade

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • baudRate: Taxa de transmissão: suporta 1-9600, 2-14400, 3-19200, 4-38400, 5-56000, 6-67600, 7-115200, 8-128000

  • dataBit: Bits de dados: suporta (8,9), atualmente o mais comum é 8

  • stopBit: Bits de parada: 1-1, 2-0.5, 3-2, 4-1.5, atualmente o mais comum é 1

  • verify: Bits de paridade: 0-None, 1-Odd, 2-Even, atualmente o mais comum é 0

  • timeout: Tempo limite: 1~1000ms, este valor precisa ser definido com um parâmetro de tempo razoável em combinação com o periférico

  • timeoutTimes: Número de tentativas: 1~10, usado principalmente para reenvio em caso de tempo limite, reduzindo ocorrências anormais ocasionais e melhorando a experiência do usuário

  • period: Intervalo de tempo de comandos periódicos: 1~1000ms, usado principalmente para o intervalo de tempo entre cada envio de comandos periódicos

11.43. Definir Parâmetros de Comunicação da Extremidade

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

Protótipo

SetAxleCommunicationParam(baudRate, dataBit, stopBit, verify, timeout, timeoutTimes, period)

Descrição

Define os parâmetros de comunicação da extremidade

Parâmetros Obrigatórios

  • baudRate: Taxa de transmissão: suporta 1-9600, 2-14400, 3-19200, 4-38400, 5-56000, 6-67600, 7-115200, 8-128000

  • dataBit: Bits de dados: suporta (8,9), atualmente o mais comum é 8

  • stopBit: Bits de parada: 1-1, 2-0.5, 3-2, 4-1.5, atualmente o mais comum é 1

  • verify: Bits de paridade: 0-None, 1-Odd, 2-Even, atualmente o mais comum é 0

  • timeout: Tempo limite: 1~1000ms, este valor precisa ser definido com um parâmetro de tempo razoável em combinação com o periférico

  • timeoutTimes: Número de tentativas: 1~10, usado principalmente para reenvio em caso de tempo limite

  • period: Intervalo de tempo de comandos periódicos: 1~1000ms, usado principalmente para o intervalo de tempo entre cada envio de comandos periódicos

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.44. Definir Tipo de Transferência de Arquivo da Extremidade

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

Protótipo

SetAxleFileType(type)

Descrição

Define o tipo de transferência de arquivo da extremidade

Parâmetros Obrigatórios

  • type: 1-arquivo de atualização MCU, 2-arquivo LUA

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.45. Ativar Execução LUA na Extremidade

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

Protótipo

SetAxleLuaEnable(enable)

Descrição

Ativa a execução LUA na extremidade

Parâmetros Obrigatórios

  • enable: 0-desativar; 1-ativar

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.46. Recuperação de Erro de Arquivo LUA na Extremidade

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

Protótipo

SetRecoverAxleLuaErr(enable)

Descrição

Recuperação de erro de arquivo LUA na extremidade

Parâmetros Obrigatórios

  • status: 0-não recuperar; 1-recuperar

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.47. Obter Estado de Ativação da Execução LUA na Extremidade

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

Protótipo

GetAxleLuaEnableStatus()

Descrição

Obtém o estado de ativação da execução LUA na extremidade

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • enable: 0-desativar; 1-ativar

11.48. Definir Tipo de Dispositivo de Extremidade Ativado pelo LUA na Extremidade

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

Protótipo

SetAxleLuaEnableDeviceType(forceSensorEnable, gripperEnable, IOEnable)

Descrição

Define o tipo de dispositivo de extremidade ativado pelo LUA na extremidade

Parâmetros Obrigatórios

  • forceSensorEnable: Estado de ativação do sensor de força, 0-desativar; 1-ativar

  • gripperEnable: Estado de ativação da garra, 0-desativar; 1-ativar

  • IOEnable: Estado de ativação do dispositivo IO, 0-desativar; 1-ativar

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.49. Obter Tipo de Dispositivo de Extremidade Ativado pelo LUA na Extremidade

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

Protótipo

GetAxleLuaEnableDeviceType()

Descrição

Obtém o tipo de dispositivo de extremidade ativado pelo LUA na extremidade

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • forceSensorEnable: Estado de ativação do sensor de força, 0-desativar; 1-ativar

  • gripperEnable: Estado de ativação da garra, 0-desativar; 1-ativar

  • IOEnable: Estado de ativação do dispositivo IO, 0-desativar; 1-ativar

11.50. Obter Dispositivo de Extremidade Atualmente Configurado

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

Protótipo

GetAxleLuaEnableDevice()

Descrição

Obtém o dispositivo de extremidade atualmente configurado

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • forceSensorEnable[8]: Estado de ativação do sensor de força, 0-desativar; 1-ativar

  • gripperEnable[8]: Estado de ativação da garra, 0-desativar; 1-ativar

  • IOEnable[8]: Estado de ativação do dispositivo IO, 0-desativar; 1-ativar

11.51. Ativar Função de Controle de Movimento da Garra

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

Protótipo

SetAxleLuaGripperFunc(id, func)

Descrição

Ativa a função de controle de movimento da garra

Parâmetros Obrigatórios

  • id: Número do dispositivo da garra

  • func: 0-ativação da garra; 1-inicialização da garra; 2-definição de posição; 3-definição de velocidade; 4-definição de torque; 6-leitura do estado da garra; 7-leitura do estado de inicialização; 8-leitura do código de falha; 9-leitura da posição; 10-leitura da velocidade; 11-leitura do torque, 12-15 reservados

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.52. Obter Função de Controle de Movimento da Garra Ativada

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

Protótipo

GetAxleLuaGripperFunc(id)

Descrição

Obtém a função de controle de movimento da garra ativada

Parâmetros Obrigatórios

  • id: Número do dispositivo da garra

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • func: 0-ativação da garra; 1-inicialização da garra; 2-definição de posição; 3-definição de velocidade; 4-definição de torque; 6-leitura do estado da garra; 7-leitura do estado de inicialização; 8-leitura do código de falha; 9-leitura da posição; 10-leitura da velocidade; 11-leitura do torque, 12-15 reservados

11.53. Escrita de Arquivo no Escravo Ethercat do Robô

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

Protótipo

SlaveFileWrite(type,slaveID,fileName)

Descrição

Escrita de arquivo no escravo Ethercat do robô

Parâmetros Obrigatórios

  • type: Tipo de arquivo do escravo, 1-arquivo de atualização do escravo; 2-arquivo de configuração do escravo

  • slaveID: Número do escravo

  • fileName: Nome do arquivo a ser enviado

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.54. Enviar Arquivo de Protocolo Aberto LUA da Extremidade

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

Protótipo

AxleLuaUpload(filePath)

Descrição

Envia arquivo de protocolo aberto LUA da extremidade

Parâmetros Obrigatórios

  • filePath: Caminho do arquivo lua local …/AXLE_LUA_End_DaHuan.lua

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.55. Entrar no Modo Boot do Escravo Ethercat do Robô

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

Protótipo

SetSysServoBootMode(filePath)

Descrição

Entrar no modo boot do escravo Ethercat do robô

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.56. Exemplo de Código para Operações com Arquivos LUA da Extremidade 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')
 4robot.AxleLuaUpload("D://zUP/AXLE_LUA_End_DaHuan.lua")
 5param = [7, 8, 1, 0, 5, 3, 1]  # Parâmetros AxleComParam correspondentes
 6robot.SetAxleCommunicationParam(7, 8, 1, 0, 5, 3, 1)
 7error,getParam0,getParam1,getParam2,getParam3,getParam4,getParam5,getParam6 = robot.GetAxleCommunicationParam()
 8print(f"GetAxleCommunicationParam param is:{getParam0} {getParam1} {getParam2} {getParam3} {getParam4} {getParam5} {getParam6}")
 9robot.SetAxleLuaEnable(1)
10error,luaEnableStatus = robot.GetAxleLuaEnableStatus()
11robot.SetAxleLuaEnableDeviceType(0, 1, 0)
12error,forceEnable, gripperEnable, ioEnable = robot.GetAxleLuaEnableDeviceType()
13print(f"GetAxleLuaEnableDeviceType param is:{forceEnable} {gripperEnable} {ioEnable}")
14func = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
15robot.SetAxleLuaGripperFunc(1, func)
16error,getFunc = robot.GetAxleLuaGripperFunc(1)
17error,getforceEnable, getgripperEnable, getioEnable = robot.GetAxleLuaEnableDevice()
18print("\ngetforceEnable status:", end=" ")
19for i in range(8):
20    print(f"{getforceEnable[i]},", end="")
21print("\ngetgripperEnable status:", end=" ")
22for i in range(8):
23    print(f"{getgripperEnable[i]},", end="")
24print("\ngetioEnable status:", end=" ")
25for i in range(8):
26    print(f"{getioEnable[i]},", end="")
27print()
28robot.ActGripper(1, 0)
29time.sleep(2)
30robot.ActGripper(1, 1)
31time.sleep(2)
32robot.MoveGripper(1, 90, 10, 100, 50000, 0, 0, 0, 0, 0)
33while True:
34    error,pkg = robot.GetRobotRealTimeState()
35    print(f"gripper pos is:{pkg.gripper_position}")
36    time.sleep(0.1)
37robot.CloseRPC()

11.57. Obter Estado dos Botões do SmartTool

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

Protótipo

GetSmarttoolBtnState()

Descrição

Obtém o estado dos botões do SmartTool

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • state: Estado dos botões do SmartTool; (bit0:0-comunicação normal; 1-comunicação perdida; bit1-operação de desfazer; bit2-limpar programa; bit3-tecla A; bit4-tecla B; bit5-tecla C; bit6-tecla D; bit7-tecla E; bit8-tecla IO; bit9-manual/automático; bit10-iniciar)

11.58. Exemplo de Código do Botão SmartTool

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')
5while True:
6    error,state = robot.GetSmarttoolBtnState()
7    print(f"{state:016b}")
8    time.sleep(0.1)

11.59. Definir Detecção de Força da Carga Antes de Ativar a Arrastagem

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

Protótipo

SetTorqueDetectionSwitch(flag)

Descrição

Define a detecção de força da carga antes de ativar a arrastagem

Parâmetros Obrigatórios

  • flag: 0-desativar; 1-ativar

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.60. Função de Ligar/Desligar Periférico Laser

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

Protótipo

LaserTrackingLaserOnOff(OnOff, weldId)

Descrição

Função para ligar/desligar o periférico laser

Parâmetros Obrigatórios

  • OnOff: 0-desligar; 1-ligar

Parâmetros Padrão

  • weldId: ID da solda, padrão 0

Valor de Retorno

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

11.61. Função de Iniciar/Parar Rastreamento a Laser

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

Protótipo

LaserTrackingTrackOnOff(OnOff, coordId)

Descrição

Função para iniciar/parar o rastreamento a laser

Parâmetros Obrigatórios

  • OnOff: 0-parar; 1-iniciar

  • coordId: Número do sistema de coordenadas da ferramenta do periférico laser

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.62. Busca de Posição a Laser - Direção Fixa

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

Protótipo

LaserTrackingSearchStart_xyz(direction, vel, distance, timeout, posSensorNum)

Descrição

Busca de posição a laser - Direção fixa

Parâmetros Obrigatórios

  • direction: 0-x+ 1-x- 2-y+ 3-y- 4-z+ 5-z-

  • vel: Velocidade unidade %

  • distance: Distância máxima de busca unidade mm

  • timeout: Tempo limite de busca unidade ms

  • posSensorNum: Número do sistema de coordenadas da ferramenta calibrado para o laser

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.63. Busca de Posição a Laser - Direção Arbitrária

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

Protótipo

LaserTrackingSearchStart_point(directionPoint, vel, distance, timeout, posSensorNum)

Descrição

Busca de posição a laser - Direção arbitrária

Parâmetros Obrigatórios

  • directionPoint: Coordenadas xyz do ponto de entrada da busca, [x,y,z]

  • vel: Velocidade unidade %

  • distance: Distância máxima de busca unidade mm

  • timeout: Tempo limite de busca unidade ms

  • posSensorNum: Número do sistema de coordenadas da ferramenta calibrado para o laser

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.64. Configuração de IP do Laser

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

Protótipo

LaserTrackingSensorConfig(ip, port)

Descrição

Configuração de IP do laser

Parâmetros Obrigatórios

  • ip: Endereço IP do periférico laser

  • port: Número da porta do periférico laser

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.65. Configuração do Período de Amostragem do Periférico Laser

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

Protótipo

LaserTrackingSensorSamplePeriod(period)

Descrição

Configuração do período de amostragem do periférico laser

Parâmetros Obrigatórios

  • period: Período de amostragem do periférico laser unidade ms

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.66. Carregar Driver do Periférico Laser

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

Protótipo

LoadPosSensorDriver(type)

Descrição

Carrega o driver do periférico laser

Parâmetros Obrigatórios

  • type: Tipo de protocolo do driver do periférico laser 101-Ruiniu 102-Chuangxiang 103-Quanshi 104-Tongzhou 105-Aotai

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.67. Descarregar Driver do Periférico Laser

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

Protótipo

UnLoadPosSensorDriver()

Descrição

Descarrega o driver do periférico laser

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.68. Gravação da Trajetória da Solda a Laser

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

Protótipo

LaserSensorRecord1(status, delayTime)

Descrição

Gravação da trajetória da solda a laser

Parâmetros Obrigatórios

  • status: 0-parar gravação 1-rastreamento em tempo real 2-iniciar gravação

  • delayTime: Tempo de atraso unidade ms

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.69. Reprodução da Trajetória da Solda a Laser

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

Protótipo

LaserSensorReplay(delayTime, speed)

Descrição

Reprodução da trajetória da solda a laser

Parâmetros Obrigatórios

  • delayTime: Tempo de atraso unidade ms

  • speed: Velocidade unidade %

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.70. Reprodução do Rastreamento a Laser

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

Protótipo

MoveLTR()

Descrição

Reprodução do rastreamento a laser

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.71. Reprodução da Trajetória da Solda a Laser

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

Protótipo

LaserSensorRecordandReplay(delayMode, delayTime, delayDisExAxisNum, delayDis, sensitivePara, int trackMode, int triggerMode, double runTime, speed)

Descrição

Reprodução da trajetória da solda a laser

Parâmetros Obrigatórios

  • delayMode: Modo de atraso 0-tempo de atraso 1-distância de atraso

  • delayTime: Tempo de atraso unidade ms

  • delayDisExAxisNum: Número do eixo de extensão

  • delayDis: Distância de atraso unidade mm

  • sensitivePara: Coeficiente de sensibilidade de compensação

  • trackMode: Tipo de rastreamento pontual. 0-movimento assíncrono do eixo de extensão; 1-robô

  • triggerMode: Modo de acionamento do rastreamento pontual. 0-duração do rastreamento; 1-IO

  • runTime: Duração do rastreamento pontual do robô (s)

  • speed: Velocidade unidade %

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.72. Mover para o Início da Gravação da Solda

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

Protótipo

MoveToLaserRecordStart(moveType, ovl)

Descrição

Mover para o início da gravação da solda

Parâmetros Obrigatórios

  • moveType: 0-PTP 1-LIN

  • ovl: Velocidade unidade %

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.73. Mover para o Fim da Gravação da Solda

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

Protótipo

MoveToLaserRecordEnd(moveType, ovl)

Descrição

Mover para o fim da gravação da solda

Parâmetros Obrigatórios

  • moveType: 0-PTP 1-LIN

  • ovl: Velocidade unidade %

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.74. Mover para o Ponto de Busca do Sensor a Laser

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

Protótipo

MoveToLaserSeamPos(moveFlag, ovl, dataFlag, plateType, trackOffectType, offset)

Descrição

Mover para o ponto de busca do sensor a laser

Parâmetros Obrigatórios

  • moveFlag: Tipo de movimento: 0-PTP; 1-LIN

  • ovl: Fator de escala de velocidade, 0-100

  • dataFlag: Seleção de dados de cache da solda: 0-executar dados planejados; 1-executar dados gravados

  • plateType: Tipo de placa: 0-placa ondulada; 1-placa corrugada; 2-placa de cerca; 3-barril de óleo; 4-aço de casco ondulado

  • trackOffectType: Tipo de deslocamento do sensor a laser: 0-sem deslocamento; 1-deslocamento no sistema de coordenadas base; 2-deslocamento no sistema de coordenadas da ferramenta; 3-deslocamento com base nos dados brutos do sensor a laser

  • offset: Valor de deslocamento

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.75. Obter Informações de Coordenadas do Ponto de Busca do Sensor a Laser

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

Protótipo

GetLaserSeamPos(trackOffectType, offset)

Descrição

Obtém as informações de coordenadas do ponto de busca do sensor a laser

Parâmetros Obrigatórios

  • trackOffectType: Tipo de deslocamento do sensor a laser: 0-sem deslocamento; 1-deslocamento no sistema de coordenadas base; 2-deslocamento no sistema de coordenadas da ferramenta; 3-deslocamento com base nos dados brutos do sensor a laser

  • offset: Valor de deslocamento

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • jPos: Posição articular [°]

  • descPos: Posição cartesiana [mm]

  • tool: Sistema de coordenadas da ferramenta

  • user: Sistema de coordenadas da peça

  • exaxis: Posição do eixo de extensão [mm]

11.76. Exemplo de Código para Configuração e Depuração de Parâmetros do Periférico Laser

 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.LaserTrackingSensorConfig("192.168.58.20", 5020)
 5robot.LaserTrackingSensorSamplePeriod(20)
 6robot.LoadPosSensorDriver(101)
 7robot.LaserTrackingLaserOnOff(0, 0)
 8time.sleep(3)
 9robot.LaserTrackingLaserOnOff(1, 0)
10robot.CloseRPC()

11.77. Exemplo de Código para Digitalização e Reprodução de Trajetória a Laser

 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.OpenLuaUpload("D://zUP/CtrlDev_laser_ruiniu-0117.lua")
 5time.sleep(2)
 6robot.SetCtrlOpenLUAName(0, "CtrlDev_laser_ruiniu-0117.lua")
 7robot.UnloadCtrlOpenLUA(0)
 8robot.LoadCtrlOpenLUA(0)
 9time.sleep(8)
10i = 0
11while i<10:
12    startjointPos = [56.205, -117.951, 141.872, -118.149, -94.217, -122.176]
13    startdescPose = [-97.552, -282.855, 26.675, 174.182, -1.338, -91.707]
14    exaxisPos = [0.0] * 4
15    offdese = [0.0] * 6
16    robot.MoveL(desc_pos=startdescPose,tool= 1,user= 0,vel= 100,acc= 100,ovl= 100,blendR= -1,exaxis_pos= exaxisPos,search= 0,offset_flag= 0, offset_pos= offdese,overSpeedStrategy= 1,speedPercent= 1)
17    robot.LaserSensorRecord1(2, 10)
18    endjointPos = [68.809, -87.100, 121.120, -127.233, -95.038, -109.555]
19    enddescPose = [-103.555, -464.234, 13.076, 174.179, -1.344, -91.709]
20    robot.MoveL(desc_pos=enddescPose,tool= 1,user= 0,vel= 50,acc= 100,ovl= 100,blendR= -1,exaxis_pos= exaxisPos,search= 0,offset_flag= 0, offset_pos= offdese,overSpeedStrategy= 1,speedPercent= 1)
21    robot.LaserSensorRecord1(0, 10)
22    robot.MoveToLaserRecordStart(1, 30)
23    robot.LaserSensorReplay(10, 100)
24    robot.MoveLTR()
25    robot.LaserSensorRecord1(0, 10)
26    i = i+1
27robot.CloseRPC()

11.78. Exemplo de Código para Busca de Posição e Rastreamento em Tempo Real a Laser

 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.OpenLuaUpload("D://zUP/CtrlDev_laser_ruiniu-0117.lua")
 5time.sleep(2)
 6robot.SetCtrlOpenLUAName(0, "CtrlDev_laser_ruiniu-0117.lua")
 7robot.UnloadCtrlOpenLUA(0)
 8robot.LoadCtrlOpenLUA(0)
 9time.sleep(8)
10time.sleep(8)
11i = 0
12while i < 10:
13    startjointPos = [56.205, -117.951, 141.872, -118.149, -94.217, -122.176]
14    startdescPose = [-97.552, -282.855, 26.675, 174.182, -1.338, -91.707]
15    exaxisPos = [0.0] * 4
16    offdese = [0.0] * 6
17    directionPoint = [0.0] * 3
18    robot.MoveL(desc_pos=startdescPose,tool= 1,user= 0,vel= 100,acc= 100,ovl= 100,blendR= -1,exaxis_pos= exaxisPos,search= 0,offset_flag= 0, offset_pos= offdese,overSpeedStrategy= 1,speedPercent= 1)
19    robot.LaserTrackingSearchStart_xyz(3, 100, 300, 1000, 3)
20    robot.LaserTrackingSearchStop()
21    robot.MoveToLaserSeamPos(1, 30, 0, 0, 0, offdese)
22    robot.LaserTrackingTrackOnOff(1, 3)
23    endjointPos = [68.809, -87.100, 121.120, -127.233, -95.038, -109.555]
24    enddescPose = [-103.555, -464.234, 13.076, 174.179, -1.344, -91.709]
25    robot.MoveL(desc_pos=enddescPose,tool= 1,user= 0,vel= 20,acc= 100,ovl= 100,blendR= -1,exaxis_pos= exaxisPos,search= 0,offset_flag= 0, offset_pos= offdese,overSpeedStrategy= 1,speedPercent= 1)
26    robot.LaserTrackingTrackOnOff(0, 3)
27    i = i + 1
28    print(i)
29robot.CloseRPC()

11.79. Exemplo de Código para Rastreamento a Laser Síncrono com Eixo de Extensão e 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')
 4startexaxisPos = [0.0, 0.0, 0.0, 0.0]
 5seamexaxisPos = [-10.0, 0.0, 0.0, 0.0]
 6endexaxisPos = [-30.0, 0.0, 0.0, 0.0]
 7offdese = [0.0] * 6
 8seamjointPos = [0.0] * 6
 9seamdescPose = [0.0] * 6
10i=0
11while i < 10:
12    startjointPos = [58.337, -119.628, 146.037, -116.358, -92.224, -117.654]
13    startdescPose = [-53.375, -255.363, 0.919, 178.054, 1.077, -94.026]
14    robot.ExtAxisSyncMoveJ(joint_pos=startjointPos, tool=1,user= 0,vel= 100,acc= 100, ovl=100,exaxis_pos= startexaxisPos,blendT= -1,offset_flag= 0,offset_pos= offdese)
15    ret = robot.LaserTrackingSearchStart_xyz(3, 100, 300, 1000, 2)
16    robot.LaserTrackingSearchStop()
17    tool = 0
18    user = 0
19    rnte, seamjointPos, seamdescPose, tool, user, startexaxisPos = robot.GetLaserSeamPos(0, offdese)
20    print(f"{seamjointPos[0]},{seamjointPos[1]},{seamjointPos[2]},{seamjointPos[3]},{seamjointPos[4]},{seamjointPos[5]},{seamdescPose[0]},{seamdescPose[1]},{seamdescPose[2]},{seamdescPose[3]},{seamdescPose[4]},{seamdescPose[5]}")
21    if ret == 0:
22        robot.ExtAxisSyncMoveJ(joint_pos=seamjointPos, tool=1,user= 0,vel= 100,acc= 100, ovl=100,exaxis_pos= seamexaxisPos,blendT= -1,offset_flag= 0,offset_pos= offdese)
23        robot.LaserTrackingTrackOnOff(1, 2)
24        endjointPos = [70.580, -90.918, 126.593, -125.154, -92.162, -105.403]
25        enddescPose = [-53.375, -419.020, 0.920, 178.054, 1.076, -94.026]
26        robot.ExtAxisSyncMoveL(desc_pos=enddescPose, tool=1,user= 0,vel= 20,acc= 100, ovl=100,blendR= -1,exaxis_pos= endexaxisPos,offset_pos= offdese)
27        robot.LaserTrackingTrackOnOff(0, 2)
28    i = i+1
29    print(i)
30robot.CloseRPC()

11.80. Controlar Matriz de Ventosas

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

Protótipo

SetSuckerCtrl(slaveID, len, ctrlValue)

Descrição

Controla a matriz de ventosas

Parâmetros Obrigatórios

  • slaveID: Número do escravo

  • len: Comprimento

  • ctrlValue: Valor de controle 1-sucção com vácuo máximo 2-sucção com vácuo definido 3-parar sucção

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.81. Obter Estado da Matriz de Ventosas

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

Protótipo

GetSuckerState(slaveID)

Descrição

Obtém o estado da matriz de ventosas

Parâmetros Obrigatórios

  • slaveID: Número do escravo

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • state: Estado de sucção 0-objeto solto 1-objeto detectado e sucção bem-sucedida 2-objeto não detectado 3-objeto desprendido

  • pressValue: Vácuo atual unidade kPa

  • error: Código de erro atual da ventosa

11.82. Aguardar Estado da Ventosa

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

Protótipo

WaitSuckerState(slaveID, state, ms)

Descrição

Aguarda o estado da ventosa

Parâmetros Obrigatórios

  • slaveID: Número do escravo

  • state: Estado de sucção 0-objeto solto 1-objeto detectado e sucção bem-sucedida 2-objeto não detectado 3-objeto desprendido

  • ms: Tempo máximo de espera

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.83. Exemplo de Código para Instruções de Controle da Matriz de Ventosas

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')
 4robot.OpenLuaUpload("C://openlua/CtrlDev_sucker.lua")
 5time.sleep(2)
 6robot.UnloadCtrlOpenLUA(1)
 7robot.LoadCtrlOpenLUA(1)
 8time.sleep(1)
 9ctrl = bytearray(20)
10ctrl[0] = 1
11robot.SetSuckerCtrl(0, 1, ctrl)
12for i in range(100):
13    rtn, state, press_value, error = robot.GetSuckerState(1)
14    print(f"sucker1 state is {state}, pressValue is {press_value}, error num is {error}")
15    rtn, state, press_value, error = robot.GetSuckerState(12)
16    print(f"sucker12 state is {state}, pressValue is {press_value}, error num is {error}")
17    time.sleep(0.1)
18ret = robot.WaitSuckerState(1, 1, 100)
19print(f"WaitSuckerState result is {ret}")
20ctrl[0] = 3
21robot.SetSuckerCtrl(1, 1, ctrl)
22robot.SetSuckerCtrl(12, 1, ctrl)
23robot.CloseRPC()

11.84. Enviar Arquivo Lua de Protocolo Aberto

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

Protótipo

OpenLuaUpload(filePath)

Descrição

Envia o arquivo Lua de protocolo aberto

Parâmetros Obrigatórios

  • filePath: Caminho do arquivo lua de protocolo aberto local

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.85. Obter Parâmetros da Placa Escrava

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

Protótipo

GetFieldBusConfig()

Descrição

Obtém os parâmetros da placa escrava

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • type: 0-Ethercat, 1-CClink, 3-Ethercat, 4-EIP

  • version: Versão do protocolo

  • connState: 0-desconectado 1-conectado

11.86. Escrever DO no Escravo

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

Protótipo

FieldBusSlaveWriteDO(DOIndex, wirteNum, status)

Descrição

Escreve DO no escravo

Parâmetros Obrigatórios

  • DOIndex: Número do DO

  • wirteNum: Número a ser escrito

  • status: Valor a ser escrito, máximo de 8

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.87. Escrever AO no Escravo

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

Protótipo

FieldBusSlaveWriteAO(AOIndex, wirteNum, status)

Descrição

Escreve AO no escravo

Parâmetros Obrigatórios

  • AOIndex: Número do AO

  • wirteNum: Número a ser escrito

  • status: Valor a ser escrito, máximo de 8

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.88. Ler DI do Escravo

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

Protótipo

FieldBusSlaveReadDI(DOIndex, readeNum)

Descrição

Lê DI do escravo

Parâmetros Obrigatórios

  • DOIndex: Número do DI

  • readeNum: Número a ser lido

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • status[8]: Valor lido, máximo de 8

11.89. Ler AI do Escravo

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

Protótipo

FieldBusSlaveReadAI(AOIndex, readeNum)

Descrição

Lê AI do escravo

Parâmetros Obrigatórios

  • AOIndex: Número do AI

  • readeNum: Número a ser lido

Parâmetros Padrão

Nenhum

Valor de Retorno

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

  • status[8]: Valor lido, máximo de 8

11.90. Aguardar Entrada DI de Extensão

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

Protótipo

FieldBusSlaveWaitDI(DIIndex, status, waitMs)

Descrição

Aguarda a entrada DI de extensão

Parâmetros Obrigatórios

  • DIIndex: Número do DI

  • status: 0-nível baixo; 1-nível alto

  • waitMs: Tempo máximo de espera (ms)

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.91. Aguardar Entrada AI de Extensão

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

Protótipo

FieldBusSlaveWaitAI(AIIndex, waitType, value, waitMs)

Descrição

Aguarda a entrada AI de extensão

Parâmetros Obrigatórios

  • AIIndex: Número do AI

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

  • value: Valor do AI

  • waitMs: Tempo máximo de espera (ms)

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.92. Exemplo de Código para Interfaces de Instrução do Modo Escravo

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')
 4robot.OpenLuaUpload("D://zUP/CtrlDev_field.lua")
 5time.sleep(2)
 6robot.SetCtrlOpenLUAName(3,"CtrlDev_field.lua")
 7robot.UnloadCtrlOpenLUA(3)
 8robot.LoadCtrlOpenLUA(3)
 9time.sleep(8)
10rtn,type, version, conn_state = robot.GetFieldBusConfig()
11print(f"type is {type}, version is {version}, connState is {conn_state}")
12# Write digital outputs
13ctrl = [1, 0, 1]  # DO0=1, DO1=0, DO2=1
14robot.FieldBusSlaveWriteDO(0, 3, ctrl)
15# Write analog output
16ctrl_ao = [0x1000]  # AO2 = 0x1000
17robot.FieldBusSlaveWriteAO(2, 1, ctrl_ao)
18for i in range(100):
19    rtn,di = robot.FieldBusSlaveReadDI(0, 4)
20    print(f"DI0 is {di[0]}, DI1 is {di[1]}, DI2 is {di[2]}, DI3 is {di[3]}")
21    rtn, ai = robot.FieldBusSlaveReadAI(0, 3)
22    print(f"AI0 is {ai[0]}, AI1 is {ai[1]}, AI2 is {ai[2]}")
23    time.sleep(0.01)
24ret = robot.FieldBusSlaveWaitDI(0, 1, 100)
25print(f"FieldBusSlaveWaitDI result is {ret}")
26ret = robot.FieldBusSlaveWaitAI(0, 0, 400.00, 100)
27print(f"FieldBusSlaveWaitAI result is {ret}")
28robot.CloseRPC()

11.93. Interface SDK para Ativar/Desativar Função de Passagem Direta na Extremidade

Protótipo

SetAxleGenComEnable(mode)

Descrição

Ativa/desativa a função de passagem direta na extremidade

Parâmetros Obrigatórios

  • mode: enable, 0-desativar, 1-ativar

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.94. Interface SDK para Transmissão e Recepção de Dados Aperiódicos na Função de Passagem Direta na Extremidade

Protótipo

SndRcvAxleGenComCmdData( len_snd, sndBuff, len_rcv)

Descrição

Envia dados aperiódicos na extremidade e aguarda resposta

Parâmetros Obrigatórios

  • len_snd: Comprimento do envio;

  • sndBuff[]: Dados a serem enviados;

  • len_rcv: Comprimento da recepção selecionada;

  • rcvBuff[]: Dados de resposta;

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.95. Exemplo de Código para Comunicação de Dados Aperiódicos do Cabeçote de Moxabustão Beiyikang Baseado na Função de Passagem Direta na Extremidade

 1from time import sleep
 2from fairino import Robot
 3from ctypes import sizeof
 4# A connection is established with the robot controller. A successful connection returns a robot object
 5# Estabelece conexão com o controlador do robô, retorna um objeto robô se bem-sucedido
 6robot = Robot.RPC('192.168.58.2')
 7
 8import time
 9
10
11def testAxleGenCom(self):
12
13    led_on = [0xAB, 0xBA, 0x12, 0x01, 0x01, 0x79]
14    led_off = [0xAB, 0xBA, 0x12, 0x01, 0x00, 0x78]
15    version = [0xAB, 0xBA, 0x11, 0x00, 0x76]
16    state = [0xAB, 0xBA, 0x1B, 0x01, 0xAA, 0x2B]
17    cycleState = [0xAB, 0xBA, 0x12, 0x01, 0x00, 0x78]
18    cnt = 1
19
20    p1Joint = [88.708, -86.178, 140.989, -141.825, -89.162, -49.879]
21    p1Desc = [188.007, -377.850, 260.207, 178.715, 2.823, -131.466]
22    p2Joint = [112.131, -75.554, 126.989, -139.027, -88.044, -26.477]
23    p2Desc = [368.003, -377.848, 260.211, 178.715, 2.823, -131.465]
24
25    exaxisPos = [0, 0, 0, 0]
26    offdese = [0, 0, 0, 0, 0, 0]
27
28    # Ativa a função de passagem direta na extremidade
29    robot.SetAxleGenComEnable(1)
30    robot.SetAxleLuaEnable(1)
31
32    while cnt <= 10000:
33        # Lê o número da versão
34        ret,rcvdata = robot.SndRcvAxleGenComCmdData(len_snd=5, sndBuff=version, len_rcv=10)
35        print(ret)
36        print(rcvdata)
37        print(f"hard version : {rcvdata[4]},hard code:{rcvdata[5]}, soft version:{rcvdata[6]} {rcvdata[7]}, soft code:{rcvdata[8]}")
38        if ret != 0:
39            break
40        time.sleep(1)
41        # Lê o estado de presença do cabeçote de moxabustão
42        ret,rcvdata = robot.SndRcvAxleGenComCmdData(6, state, 6)
43        print(f"state : {rcvdata[4]} ")
44        time.sleep(1)
45        # Ativa o laser do cabeçote de moxabustão
46        ret,rcvdata = robot.SndRcvAxleGenComCmdData(6, led_on, 6)
47        print(f"led on rcv data is: {rcvdata[0]}, {rcvdata[1]}, {rcvdata[2]}, {rcvdata[3]}, {rcvdata[4]}, {rcvdata[5]}")
48        robot.MoveJ(joint_pos=p1Joint, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=exaxisPos, blendT=-1,
49                        offset_flag=0, offset_pos=offdese)
50        time.sleep(4)
51        # Desativa o laser do cabeçote de moxabustão
52        ret, rcvdata = robot.SndRcvAxleGenComCmdData(6, led_off, 6)
53        print(f"led off rcv data is: {rcvdata[0]}, {rcvdata[1]}, {rcvdata[2]}, {rcvdata[3]}, {rcvdata[4]}, {rcvdata[5]}")
54        robot.MoveJ(joint_pos=p2Joint, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=exaxisPos, blendT=-1,offset_flag=0, offset_pos=offdese)
55        time.sleep(1)
56        print(f"***********************complate No. {cnt} SDK test*****************************")
57        cnt = cnt + 1
58
59    robot.CloseRPC()
60    return 0
61
62testAxleGenCom(robot)

11.96. Download do Arquivo Lua de Protocolo Aberto

Protótipo

OpenLuaDownload(fileName, savePath)

Descrição

Download do arquivo Lua de protocolo aberto

Parâmetros Obrigatórios

  • fileName: Nome do arquivo de protocolo aberto CtrlDev_XXX.lua;

  • savePath: Caminho para salvar o arquivo de protocolo aberto;

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.97. Excluir Arquivo Lua de Protocolo Aberto Específico

Protótipo

OpenLuaDelete(fileName)

Descrição

Exclui um arquivo Lua de protocolo aberto específico

Parâmetros Obrigatórios

  • fileName: Nome do arquivo lua de protocolo aberto a ser excluído CtrlDev_XXX.lua

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.98. Excluir Todos os Arquivos Lua de Protocolo Aberto

Protótipo

AllOpenLuaDelete()

Descrição

Exclui todos os arquivos Lua de protocolo aberto

Parâmetros Obrigatórios

Nenhum

Parâmetros Padrão

Nenhum

Valor de Retorno

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

11.99. Exemplo de Código SDK para Operações com Arquivos Lua de Protocolo Aberto

 1from time import sleep
 2import time
 3from fairino import Robot
 4
 5# Estabelece conexão com o controlador do robô
 6robot = Robot.RPC('192.168.58.2')
 7
 8
 9def TestCtrlOpenLuaOperate(self):
10    # Envia arquivo Lua para o robô
11    rtn = robot.OpenLuaUpload("D://zUP/openlua/CtrlDev_WELDING_A.lua")
12    print(f"OpenLuaUpload rtn is {rtn}")
13
14    rtn = robot.OpenLuaUpload("D://zUP/openlua/CtrlDev_SWDPOLISH.lua")
15    print(f"OpenLuaUpload rtn is {rtn}")
16
17    # Download do arquivo Lua do robô
18    rtn = robot.OpenLuaDownload("CtrlDev_WELDING_A.lua", "D://zDOWN/")
19    print(f"OpenLuaDownload rtn is {rtn}")
20
21    rtn = robot.OpenLuaDownload("CtrlDev_SWDPOLISH.lua", "D://zDOWN/")
22    print(f"OpenLuaDownload rtn is {rtn}")
23
24    # Define o nome do Lua de protocolo aberto de controle
25    rtn = robot.SetCtrlOpenLUAName(0, "CtrlDev_WELDING_A.lua")
26    print(f"SetCtrlOpenLUAName rtn is {rtn}")
27
28    rtn = robot.SetCtrlOpenLUAName(1, "CtrlDev_SWDPOLISH.lua")
29    print(f"SetCtrlOpenLUAName rtn is {rtn}")
30
31    # Obtém o nome do Lua de protocolo aberto de controle
32    rtn, name = robot.GetCtrlOpenLUAName()
33    print(f"ctrl open lua names : {name[0]}, {name[1]}, {name[2]}, {name[3]}")
34
35    # Carrega o Lua de protocolo aberto de controle
36    rtn = robot.LoadCtrlOpenLUA(1)
37    print(f"LoadCtrlOpenLUA rtn is {rtn}")
38    time.sleep(2)
39
40    # Descarrega o Lua de protocolo aberto de controle
41    rtn = robot.UnloadCtrlOpenLUA(1)
42    print(f"UnloadCtrlOpenLUA rtn is {rtn}")
43
44    # Exclui o arquivo Lua especificado
45    rtn = robot.OpenLuaDelete("CtrlDev_WELDING_A.lua")
46    print(f"OpenLuaDelete rtn is {rtn}")
47
48    # Exclui todos os arquivos Lua
49    rtn = robot.AllOpenLuaDelete()
50    print(f"AllOpenLuaDelete rtn is {rtn}")
51
52    # Fecha a conexão
53    robot.CloseRPC()
54    time.sleep(1)
55
56
57# Chama a função de teste
58TestCtrlOpenLuaOperate(robot)