11. Periferiche del Robot

11.1. Configurazione Pinza

Prototipo

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

Descrizione

Configura la pinza

Parametri Obbligatori

  • company:Produttore pinza,1-Robotiq,2-Huilin,3-Tianji,4-Dahuan,5-Zhixing;

  • device:Numero dispositivo,Robotiq(0-2F-85 serie),Huilin(0-NK serie,1-Z-EFG-100),Tianji(0-TEG-110),Dahuan(0-PGI-140),Zhixing(0-CTPM2F20)

Parametri Predefiniti

  • softversion:Numero versione software,non utilizzato al momento,predefinito 0;

  • bus:Posizione bus terminale montaggio dispositivo,non utilizzato al momento,predefinito 0;

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.2. Ottenimento Configurazione Pinza

Prototipo

GetGripperConfig()

Descrizione

Ottiene la configurazione della pinza

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • [number,company,device,softversion]: number,Numero pinza;company,Produttore pinza,1-Robotiq,2-Huilin,3-Tianji,4-Dahuan,5-Zhixing ;device,Numero dispositivo,Robotiq(0-2F-85 serie),Huilin(0-NK serie,1-Z-EFG-100),Tianji(0-TEG-110),Dahuan(0-PGI-140),Zhixing(0-CTPM2F20);softvesion,Numero versione software,non utilizzato al momento,predefinito 0。

11.3. Attivazione Pinza

Prototipo

ActGripper(index,action)

Descrizione

Attiva la pinza

Parametri Obbligatori

  • index:Numero pinza;

  • action:0-Ripristino,1-Attivazione

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.4. Controllo Pinza

Prototipo

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

Descrizione

Controlla la pinza

Parametri Obbligatori

  • index:Numero pinza;

  • pos:Posizione percentuale,intervallo [0~100];

  • vel:Velocità percentuale,intervallo [0~100];

  • force:Coppia percentuale,intervallo [0~100];

  • maxtime:Tempo massimo attesa,intervallo [0~30000],unità [ms];

  • block:0-Bloccante,1-Non bloccante;

  • type:Tipo pinza,0-Pinza parallela; 1-Pinza rotante;

  • rotNum:rotNum Numero rotazioni;

  • rotVel:Velocità rotazione percentuale [0-100];

  • rotTorque:Coppia rotazione percentuale [0-100]。

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.5. Ottenimento Stato Movimento Pinza

Prototipo

GetGripperMotionDone()

Descrizione

Ottiene lo stato di movimento della pinza

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • [fault,status]:Stato movimento pinza,fault:0-Nessun errore,1-Con errore;status:0-Movimento non completato,1-Movimento completato

11.6. Ottenimento Stato Attivazione Pinza

Nuovo nella versione python: SDK-v2.1.2

Prototipo

GetGripperActivateStatus()

Descrizione

Ottiene lo stato di attivazione della pinza

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • fault:0-Nessun errore,1-Con errore

  • gripper_active:bit0~bit15 corrisponde a numero pinza 0~15,bit=0 non attivato,bit=1 attivato

11.7. Ottenimento Posizione Pinza

Nuovo nella versione python: SDK-v2.1.2

Prototipo

GetGripperCurPosition()

Descrizione

Ottiene la posizione della pinza

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • fault:0-Nessun errore,1-Con errore

  • position:Posizione percentuale,intervallo 0~100%

11.8. Ottenimento Velocità Pinza

Nuovo nella versione python: SDK-v2.1.2

Prototipo

GetGripperCurSpeed()

Descrizione

Ottiene la velocità della pinza

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • fault:0-Nessun errore,1-Con errore

  • speed:Velocità percentuale,intervallo 0~100%

11.9. Ottenimento Corrente Pinza

Nuovo nella versione python: SDK-v2.1.2

Prototipo

GetGripperCurCurrent()

Descrizione

Ottiene la corrente della pinza

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • fault:0-Nessun errore,1-Con errore

  • current:Corrente percentuale,intervallo 0~100%

11.10. Ottenimento Tensione Pinza

Nuovo nella versione python: SDK-v2.1.2

Prototipo

GetGripperVoltage()

Descrizione

Ottiene la tensione della pinza

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • fault:0-Nessun errore,1-Con errore

  • voltage:Tensione, unità 0.1V

11.11. Ottenimento Temperatura Pinza

Nuovo nella versione python: SDK-v2.1.2

Prototipo

GetGripperTemp()

Descrizione

Ottiene la temperatura della pinza

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento1 errcode

  • fault:0-Nessun errore,1-Con errore

  • temp:Temperatura,unità ℃

11.12. Calcolo Punto Pre-Presa - Visione

Prototipo

ComputePrePick(desc_pos, zlength, zangle)

Descrizione

Calcola il punto di pre-presa - visione

Parametri Obbligatori

  • desc_pos:Posa cartesiana punto di presa pinza;

  • zlength:Offset asse z;

  • zangle:Offset rotazione attorno asse z

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • pre_pos:Posa cartesiana punto di pre-presa

11.13. Calcolo Punto Ritiro - Visione

Prototipo

ComputePostPick(desc_pos, zlength, zangle)

Descrizione

Calcola il punto di ritiro - visione

Parametri Obbligatori

  • desc_pos:Posa cartesiana punto di presa;

  • zlength:Offset asse z;

  • zangle:Offset rotazione attorno asse z

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • post_pos:Posa cartesiana punto di ritiro

11.14. Esempio di Codice Operazioni Pinza Robot

 1from fairino import Robot
 2# Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo
 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. Ottenimento Numero Rotazioni Pinza Rotante

Nuovo nella versione python: SDK-v2.0.7

Prototipo

GetGripperRotNum()

Descrizione

Ottiene il numero di rotazioni della pinza rotante

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • fault:0-Nessun errore,1-Con errore

  • num:Numero rotazioni

11.16. Ottenimento Velocità Percentuale Rotazione Pinza Rotante

Nuovo nella versione python: SDK-v2.0.7

Prototipo

GetGripperRotSpeed()

Descrizione

Ottiene la velocità percentuale di rotazione della pinza rotante

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • fault:0-Nessun errore,1-Con errore

  • speed:Velocità rotazione percentuale

11.17. Ottenimento Coppia Percentuale Rotazione Pinza Rotante

Nuovo nella versione python: SDK-v2.0.7

Prototipo

GetGripperRotTorque()

Descrizione

Ottiene la coppia percentuale di rotazione della pinza rotante

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • fault:0-Nessun errore,1-Con errore

  • torque:Coppia rotazione percentuale

11.18. Esempio di Codice Ottenimento Stato Pinza Rotante

 1from fairino import Robot
 2# Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo
 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. Avvio, Arresto Nastro Trasportatore

Prototipo

ConveyorStartEnd(status)

Descrizione

Avvia o arresta il nastro trasportatore

Parametri Obbligatori

  • status: Stato nastro trasportatore,1-Avvio,0-Arresto

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.20. Registrazione Punto Rilevamento IO

Prototipo

ConveyorPointIORecord()

Descrizione

Registra punto rilevamento IO

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.21. Registrazione Punto A

Prototipo

ConveyorPointARecord()

Descrizione

Registra punto A

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.22. Registrazione Punto di Riferimento

Prototipo

ConveyorRefPointRecord()

Descrizione

Registra punto di riferimento

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.23. Registrazione Punto B

Prototipo

ConveyorPointBRecord()

Descrizione

Registra punto B

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento1 errcode

11.24. Rilevamento IO Pezzo Nastro Trasportatore

Prototipo

ConveyorIODetect(max_t)

Descrizione

Rilevamento IO pezzo nastro trasportatore

Parametri Obbligatori

  • max_t: Tempo massimo rilevamento,unità ms

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.25. Ottenimento Posizione Corrente Oggetto

Prototipo

ConveyorGetTrackData(mode)

Descrizione

Ottiene la posizione corrente dell’oggetto

Parametri Obbligatori

  • mode: 1-Inseguimento presa 2-Inseguimento movimento 3-Inseguimento TPD

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.26. Inizio Inseguimento Nastro Trasportatore

Prototipo

ConveyorTrackStart(status)

Descrizione

Inizia l’inseguimento del nastro trasportatore

Parametri Obbligatori

  • status: Stato,1-Avvio,0-Arresto

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.27. Fine Inseguimento Nastro Trasportatore

Prototipo

ConveyorTrackEnd()

Descrizione

Termina l’inseguimento del nastro trasportatore

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.28. Configurazione Parametri Nastro Trasportatore

Prototipo

ConveyorSetParam(param, followType, startDis, endDis)

Descrizione

Configura i parametri del nastro trasportatore

Parametri Obbligatori

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

    • resolution: Risoluzione encoder Numero impulsi per rotazione encoder

    • lead: Rapporto trasmissione meccanico Distanza movimento nastro per rotazione encoder

    • wpAxis: Numero sistema coordinate pezzo Seleziona numero sistema coordinate pezzo per funzionalità inseguimento movimento,impostare a 0 per inseguimento presa, inseguimento TPD

    • vision: Con visione? 0-Senza 1-Con,

    • speedRadio: Rapporto velocità Intervallo velocità per inseguimento presa nastro (1-100) Impostare a 1 per inseguimento movimento, inseguimento TPD

  • followType:Tipo movimento inseguimento,0-Inseguimento movimento;1-Movimento inseguimento controllo

Parametri Predefiniti

  • startDis:Da impostare per inseguimento presa controllo, Distanza inizio inseguimento, -1:Calcolo automatico (inseguimento automatico dopo arrivo pezzo sotto robot),unità mm, valore predefinito 0

  • endDis:Da impostare per inseguimento presa controllo,Distanza fine inseguimento, unità mm, valore predefinito 100

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.29. Compensazione Punto Presa Nastro Trasportatore

Prototipo

ConveyorCatchPointComp(cmp)

Descrizione

Compensazione punto presa nastro trasportatore

Parametri Obbligatori

  • cmp: Posizione compensazione [x,y,z]

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.30. Movimento Lineare

Prototipo

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

Descrizione

Movimento lineare

Parametri Obbligatori

  • name:cvrCatchPoint o cvrRaisePoint

  • tool: Numero utensile

  • wobj: Numero pezzo

Parametri Predefiniti

  • vel: Velocità predefinito 20

  • acc: Accelerazione predefinito 100

  • ovl: Fattore scala velocità predefinito 100

  • blendR: [-1.0]-Movimento a posizione (bloccante),[0~1000]-Raggio smoothing (non bloccante),unità [mm] predefinito -1.0

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.31. Rilevamento Input Comunicazione Nastro Trasportatore

Nuovo nella versione python: SDK-v2.1.1

Prototipo

ConveyorComDetect(timeout)

Descrizione

Rilevamento input comunicazione nastro trasportatore

Parametri Obbligatori

  • timeout:Tempo attesa timeout ms

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.32. Attivazione Rilevamento Input Comunicazione Nastro Trasportatore

Nuovo nella versione python: SDK-v2.1.1

Prototipo

ConveyorComDetectTrigger()

Descrizione

Attiva rilevamento input comunicazione nastro trasportatore

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.33. Esempio di Codice Operazioni Nastro Trasportatore Robot

 1from fairino import Robot
 2import time
 3import threading
 4# Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo
 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. Configurazione Sensore Termine

Nuovo nella versione python: SDK-v2.0.5

Prototipo

AxleSensorConfig(idCompany, idDevice, idSoftware, idBus)

Descrizione

Configurazione sensore termine

Parametri Obbligatori

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

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

  • idSoftware: Versione software,0-J1.0/HuiDe1.0 (non ancora disponibile)

  • idBus: Posizione montaggio,1-Porta termine n.1;2-Porta termine n.2…8-Porta termine n.8 (non ancora disponibile)

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.35. Ottenimento Configurazione Sensore Termine

Nuovo nella versione python: SDK-v2.0.5

Prototipo

AxleSensorConfigGet()

Descrizione

Ottiene la configurazione del sensore termine

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

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

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

11.36. Attivazione Sensore Termine

Nuovo nella versione python: SDK-v2.0.5

Prototipo

AxleSensorActivate(actFlag)

Descrizione

Attiva sensore termine

Parametri Obbligatori

actFlag: 0-Ripristino;1-Attivazione

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • coord: Valori sistema coordinate [x,y,z,rx,ry,rz]

11.37. Scrittura Registro Sensore Termine

Nuovo nella versione python: SDK-v2.0.5

Prototipo

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

Descrizione

Scrittura registro sensore termine

Parametri Obbligatori

  • devAddr:Numero indirizzo dispositivo 0-255

  • regHAddr:Indirizzo registro alto 8 bit

  • regLAddr:Indirizzo registro basso 8 bit

  • regNum:Numero registri 0-255

  • data1:Valore registro scritto 1

  • data2:Valore registro scritto 2

  • isNoBlock:Bloccante? 0-Bloccante; 1-Non bloccante

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.38. Esempio di Codice Sensore Termine

 1from fairino import Robot
 2import time
 3import threading
 4# Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo
 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. Ottenimento Protocollo Periferiche Robot

Nuovo nella versione python: SDK-v2.0.3

Prototipo

GetExDevProtocol()

Descrizione

Ottiene il protocollo delle periferiche robot

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode;

  • protocol: Numero protocollo periferiche robot 4096-Scheda controllo asse espansione;4097-ModbusSlave;4098-ModbusMaster

11.40. Impostazione Protocollo Periferiche Robot

Nuovo nella versione python: SDK-v2.0.3

Prototipo

SetExDevProtocol(protocol)

Descrizione

Imposta il protocollo delle periferiche robot

Parametri Obbligatori

  • protocol:Numero protocollo periferiche robot 4096-Scheda controllo asse espansione;4097-ModbusSlave;4098-ModbusMaster

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.41. Esempio di Codice Impostazione Protocollo Periferiche Robot

1from fairino import Robot
2# Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo
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. Ottenimento Parametri Comunicazione Termine

Nuovo nella versione python: SDK-v2.0.5

Prototipo

GetAxleCommunicationParam()

Descrizione

Ottiene i parametri di comunicazione del termine

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • baudRate:Baud rate: supporta 1-9600,2-14400,3-19200,4-38400,5-56000,6-67600,7-115200,8-128000

  • dataBit:Bit dati: supporta (8,9),attualmente comunemente 8

  • stopBit:Bit stop:1-1,2-0.5,3-2,4-1.5,attualmente comunemente 1

  • verify:Bit verifica:0-Nessuno,1-Dispari,2-Pari, attualmente comunemente 0

  • timeout:Tempo timeout:1~1000ms,questo valore deve essere impostato in combinazione con le periferiche per un parametro temporale ragionevole

  • timeoutTimes:Numero timeout:1~10,principalmente per ritrasmissione in caso di timeout,riduce eccezioni occasionali e migliora l’esperienza utente

  • period:Intervallo temporale comandi periodici:1~1000ms,utilizzato principalmente per l’intervallo tra ogni invio di comandi periodici

11.43. Impostazione Parametri Comunicazione Termine

Nuovo nella versione python: SDK-v2.0.5

Prototipo

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

Descrizione

Imposta i parametri di comunicazione del termine

Parametri Obbligatori

  • baudRate:Baud rate: supporta 1-9600,2-14400,3-19200,4-38400,5-56000,6-67600,7-115200,8-128000

  • dataBit:Bit dati: supporta (8,9),attualmente comunemente 8

  • stopBit:Bit stop:1-1,2-0.5,3-2,4-1.5,attualmente comunemente 1

  • verify:Bit verifica:0-Nessuno,1-Dispari,2-Pari, attualmente comunemente 0

  • timeout:Tempo timeout:1~1000ms,questo valore deve essere impostato in combinazione con le periferiche per un parametro temporale ragionevole

  • timeoutTimes:Numero timeout:1~10,principalmente per ritrasmissione in caso di timeout,riduce eccezioni occasionali e migliora l’esperienza utente

  • period:Intervallo temporale comandi periodici:1~1000ms,utilizzato principalmente per l’intervallo tra ogni invio di comandi periodici

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.44. Impostazione Tipo Trasferimento File Termine

Nuovo nella versione python: SDK-v2.0.5

Prototipo

SetAxleFileType(type)

Descrizione

Imposta il tipo di trasferimento file del termine

Parametri Obbligatori

  • type:1-File aggiornamento MCU,2-File LUA

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.45. Impostazione Abilitazione Esecuzione LUA Termine

Nuovo nella versione python: SDK-v2.0.5

Prototipo

SetAxleLuaEnable(enable)

Descrizione

Imposta l’abilitazione dell’esecuzione LUA del termine

Parametri Obbligatori

  • enable:0-Non abilitato;1-Abilitato

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.46. Recupero Errore Anomalo File LUA Termine

Nuovo nella versione python: SDK-v2.0.5

Prototipo

SetRecoverAxleLuaErr(enable)

Descrizione

Recupero errore anomalo file LUA termine

Parametri Obbligatori

  • status:0-Non recuperare;1-Recupera

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.47. Ottenimento Stato Abilitazione Esecuzione LUA Termine

Nuovo nella versione python: SDK-v2.0.5

Prototipo

GetAxleLuaEnableStatus()

Descrizione

Ottiene lo stato di abilitazione dell’esecuzione LUA del termine

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • enable:0-Non abilitato;1-Abilitato

11.48. Impostazione Tipo Dispositivo Termine Abilitato LUA Termine

Nuovo nella versione python: SDK-v2.0.5

Prototipo

SetAxleLuaEnableDeviceType(forceSensorEnable, gripperEnable, IOEnable)

Descrizione

Imposta il tipo di dispositivo termine abilitato LUA del termine

Parametri Obbligatori

  • forceSensorEnable:Stato abilitazione sensore forza,0-Non abilitato;1-Abilitato

  • gripperEnable:Stato abilitazione pinza,0-Non abilitato;1-Abilitato

  • IOEnable:Stato abilitazione dispositivo IO,0-Non abilitato;1-Abilitato

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.49. Ottenimento Tipo Dispositivo Termine Abilitato LUA Termine

Nuovo nella versione python: SDK-v2.0.5

Prototipo

GetAxleLuaEnableDeviceType()

Descrizione

Ottiene il tipo di dispositivo termine abilitato LUA del termine

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • forceSensorEnable:Stato abilitazione sensore forza,0-Non abilitato;1-Abilitato

  • gripperEnable:Stato abilitazione pinza,0-Non abilitato;1-Abilitato

  • IOEnable:Stato abilitazione dispositivo IO,0-Non abilitato;1-Abilitato

11.50. Ottenimento Dispositivi Termine Configurati Correntemente

Nuovo nella versione python: SDK-v2.0.5

Prototipo

GetAxleLuaEnableDevice()

Descrizione

Ottiene i dispositivi termine configurati correntemente

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • forceSensorEnable[8]:Stato abilitazione sensore forza,0-Non abilitato;1-Abilitato

  • gripperEnable[8]:Stato abilitazione pinza,0-Non abilitato;1-Abilitato

  • IOEnable[8]:Stato abilitazione dispositivo IO,0-Non abilitato;1-Abilitato

11.51. Impostazione Abilitazione Funzione Controllo Azione Pinza

Nuovo nella versione python: SDK-v2.0.5

Prototipo

SetAxleLuaGripperFunc(id, func)

Descrizione

Imposta l’abilitazione della funzione di controllo azione pinza

Parametri Obbligatori

  • id:Numero dispositivo pinza

  • func:0-Abilitazione pinza;1-Inizializzazione pinza;2-Impostazione posizione;3-Impostazione velocità;4-Impostazione coppia;6-Lettura stato pinza;7-Lettura stato inizializzazione;8-Lettura codice errore;9-Lettura posizione;10-Lettura velocità;11-Lettura coppia,12-15 Riservato

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.52. Ottenimento Abilitazione Funzione Controllo Azione Pinza

Nuovo nella versione python: SDK-v2.0.5

Prototipo

GetAxleLuaGripperFunc(id)

Descrizione

Ottiene l’abilitazione della funzione di controllo azione pinza

Parametri Obbligatori

  • id:Numero dispositivo pinza

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • func:0-Abilitazione pinza;1-Inizializzazione pinza;2-Impostazione posizione;3-Impostazione velocità;4-Impostazione coppia;6-Lettura stato pinza;7-Lettura stato inizializzazione;8-Lettura codice errore;9-Lettura posizione;10-Lettura velocità;11-Lettura coppia,12-15 Riservato

11.53. Scrittura File Slave Ethercat Robot

Nuovo nella versione python: SDK-v2.0.5

Prototipo

SlaveFileWrite(type,slaveID,fileName)

Descrizione

Scrittura file slave Ethercat robot

Parametri Obbligatori

  • type:Tipo file slave,1-Aggiornamento file slave;2-Aggiornamento file configurazione slave

  • slaveID:Numero slave

  • fileName:Nome file da caricare

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.54. Upload File LUA Protocollo Aperto Termine

Nuovo nella versione python: SDK-v2.0.5

Prototipo

AxleLuaUpload(filePath)

Descrizione

Upload file LUA protocollo aperto termine

Parametri Obbligatori

  • filePath:Percorso file Lua locale …/AXLE_LUA_End_DaHuan.lua

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.55. Impostazione Modalità Boot Slave Ethercat Robot

Nuovo nella versione python: SDK-v2.0.5

Prototipo

SetSysServoBootMode(filePath)

Descrizione

Imposta la modalità boot slave Ethercat robot

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.56. Esempio di Codice Operazioni File LUA Termine Robot

 1from fairino import Robot
 2# Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo
 3robot = Robot.RPC('192.168.58.2')
 4robot.AxleLuaUpload("D://zUP/AXLE_LUA_End_DaHuan.lua")
 5param = [7, 8, 1, 0, 5, 3, 1]  # Corrisponde ai parametri AxleComParam
 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. Ottenimento Stato Pulsante SmartTool

Nuovo nella versione python: SDK-v2.1.2

Prototipo

GetSmarttoolBtnState()

Descrizione

Ottiene lo stato del pulsante SmartTool

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • state:Stato pulsante manopola SmartTool;(bit0:0-Comunicazione normale;1-Comunicazione interrotta;bit1-Annulla operazione;bit2-Svuota programma;bit3-Tasto A;bit4-Tasto B;bit5-Tasto C;bit6-Tasto D;bit7-Tasto E;bit8-Tasto IO;bit9-Manuale/Automatico;bit10-Inizia)

11.58. Esempio di Codice Pulsante SmartTool

1from fairino import Robot
2import time
3# Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo
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. Impostazione Rilevamento Forza Carico Prima Abilitazione Trascinamento

Nuovo nella versione python: SDK-v2.1.6

Prototipo

SetTorqueDetectionSwitch(flag)

Descrizione

Imposta il rilevamento della forza del carico prima dell’abilitazione del trascinamento

Parametri Obbligatori

  • flag:0-Disattiva;1-Attiva

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.60. Funzione Accensione/Spegnimento Periferica Laser

Nuovo nella versione python: SDK-v2.1.6

Prototipo

LaserTrackingLaserOnOff(OnOff, weldId)

Descrizione

Funzione accensione/spegnimento periferica laser

Parametri Obbligatori

  • OnOff:0-Spegni;1-Accendi

Parametri Predefiniti

  • weldId:ID saldatura predefinito 0

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.61. Funzione Inizio/Fine Inseguimento Laser

Nuovo nella versione python: SDK-v2.1.6

Prototipo

LaserTrackingTrackOnOff(OnOff, coordId)

Descrizione

Funzione inizio/fine inseguimento laser

Parametri Obbligatori

  • OnOff:0-Spegni;1-Accendi

  • coordId:Numero sistema coordinate utensile periferica laser

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.62. Ricerca Posizione Laser - Direzione Fissa

Nuovo nella versione python: SDK-v2.1.6

Prototipo

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

Descrizione

Ricerca posizione laser - direzione fissa

Parametri Obbligatori

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

  • vel:Velocità unità%

  • distance:Distanza massima ricerca unità mm

  • timeout:Tempo timeout ricerca unità ms

  • posSensorNum:Numero sistema coordinate utensile calibrato laser

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.63. Ricerca Posizione Laser - Direzione Arbitraria

Nuovo nella versione python: SDK-v2.1.6

Prototipo

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

Descrizione

Ricerca posizione laser - direzione arbitraria

Parametri Obbligatori

  • directionPoint:Coordinate xyz punto input ricerca,[x,y,z]

  • vel:Velocità unità%

  • distance:Distanza massima ricerca unità mm

  • timeout:Tempo timeout ricerca unità ms

  • posSensorNum:Numero sistema coordinate utensile calibrato laser

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.64. Configurazione IP Laser

Nuovo nella versione python: SDK-v2.1.6

Prototipo

LaserTrackingSensorConfig(ip, port)

Descrizione

Configurazione IP laser

Parametri Obbligatori

  • ip:Indirizzo IP periferica laser

  • port:Numero porta periferica laser

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.65. Configurazione Periodo Campionamento Periferica Laser

Nuovo nella versione python: SDK-v2.1.6

Prototipo

LaserTrackingSensorSamplePeriod(period)

Descrizione

Configurazione periodo campionamento periferica laser

Parametri Obbligatori

  • period:Periodo campionamento periferica laser unità ms

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.66. Caricamento Driver Periferica Laser

Nuovo nella versione python: SDK-v2.1.6

Prototipo

LoadPosSensorDriver(type)

Descrizione

Caricamento driver periferica laser

Parametri Obbligatori

  • type:Tipo protocollo driver periferica laser 101-Ruiniu 102-Chuangxiang 103-Quanshi 104-Tongzhou 105-Aotai

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.67. Scaricamento Driver Periferica Laser

Nuovo nella versione python: SDK-v2.1.6

Prototipo

UnLoadPosSensorDriver()

Descrizione

Scaricamento driver periferica laser

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.68. Registrazione Traiettoria Saldatura Laser

Nuovo nella versione python: SDK-v2.1.6

Prototipo

LaserSensorRecord1(status, delayTime)

Descrizione

Registrazione traiettoria saldatura laser

Parametri Obbligatori

  • status:0-Arresta registrazione 1-Inseguimento in tempo reale 2-Inizia registrazione

  • delayTime:Tempo ritardo unità ms

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.69. Riproduzione Traiettoria Saldatura Laser

Nuovo nella versione python: SDK-v2.1.6

Prototipo

LaserSensorReplay(delayTime, speed)

Descrizione

Riproduzione traiettoria saldatura laser

Parametri Obbligatori

  • delayTime:Tempo ritardo unità ms

  • speed:Velocità unità%

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.70. Riproduzione Inseguimento Laser

Nuovo nella versione python: SDK-v2.1.6

Prototipo

MoveLTR()

Descrizione

Riproduzione inseguimento laser

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.71. Riproduzione Traiettoria Saldatura Laser

Nuovo nella versione python: SDK-v2.1.6

Prototipo

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

Descrizione

Riproduzione Traiettoria Cordone di Saldatura Laser

Parametri Richiesti

  • delayMode: Modalità 0-Tempo Ritardo 1-Distanza Ritardo

  • delayTime: Tempo di ritardo in millisecondi (ms)

  • delayDisExAxisNum: Numero Asse Esteso

  • delayDis: Distanza di ritardo in millimetri (mm)

  • sensitivePara: Coefficiente di Sensibilità della Compensazione

  • trackMode: Tipo Tracciamento a Punto Fisso. 0-Movimento Asincrono Asse Esteso; 1-Robot

  • triggerMode: Metodo di Attivazione Tracciamento a Punto Fisso. 0-Durata Tracciamento; 1-IO

  • runTime: Durata Tracciamento a Punto Fisso del Robot in secondi (s)

  • speed: Velocità in percentuale (%)

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice Errore. Successo - 0, Fallimento - errcode

11.72. Movimento al Punto Inizio Registrazione Saldatura

Nuovo nella versione python: SDK-v2.1.6

Prototipo

MoveToLaserRecordStart(moveType, ovl)

Descrizione

Movimento al punto inizio registrazione saldatura

Parametri Obbligatori

  • moveType:0-PTP 1-LIN

  • ovl:Velocità unità%

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.73. Movimento al Punto Fine Registrazione Saldatura

Nuovo nella versione python: SDK-v2.1.6

Prototipo

MoveToLaserRecordEnd(moveType, ovl)

Descrizione

Movimento al punto fine registrazione saldatura

Parametri Obbligatori

  • moveType:0-PTP 1-LIN

  • ovl:Velocità unità%

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.74. Movimento al Punto Ricerca Sensore Laser

Nuovo nella versione python: SDK-v2.1.6

Prototipo

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

Descrizione

Movimento al punto ricerca sensore laser

Parametri Obbligatori

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

  • ovl:Fattore scala velocità,0-100

  • dataFlag:Selezione dati cache saldatura:0-Esegue dati pianificati;1-Esegue dati registrati

  • plateType:Tipo pannello:0-Pannello ondulato;1-Pannello trapezoidale;2-Pannello recinzione;3-Bidone olio;4-Pannello corazzato ondulato

  • trackOffectType:Tipo offset sensore laser:0-Nessun offset;1-Offset sistema base;2-Offset sistema utensile;3-Offset dati originali sensore laser

  • offset:Valore offset

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

11.75. Ottenimento Informazioni Coordinate Punto Ricerca Sensore Laser

Nuovo nella versione python: SDK-v2.1.6

Prototipo

GetLaserSeamPos(trackOffectType, offset)

Descrizione

Ottiene le informazioni coordinate del punto ricerca sensore laser

Parametri Obbligatori

  • trackOffectType:Tipo offset sensore laser:0-Nessun offset;1-Offset sistema base;2-Offset sistema utensile;3-Offset dati originali sensore laser

  • offset:Valore offset

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • jPos:Posizione giunti[°]

  • descPos:Posizione cartesiana[mm]

  • tool:Sistema coordinate utensile

  • user:Sistema coordinate pezzo

  • exaxis:Posizione asse espansione[mm]

11.76. Esempio di Codice Configurazione Parametri e Debug Sensore Periferica Laser

 1from fairino import Robot
 2# Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo
 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. Esempio di Codice Scansione Traiettoria Laser e Riproduzione Traiettoria

 1from fairino import Robot
 2# Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo
 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. Esempio di Codice Ricerca Posizione Laser e Inseguimento in Tempo Reale

 1from fairino import Robot
 2# Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo
 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. Esempio di Codice Inseguimento Laser Sincrono con Asse Espansione e Robot

 1from fairino import Robot
 2# Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo
 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. Controllo Ventosa a Matrice

Nuovo nella versione python: SDK-v2.1.5

Prototipo

SetSuckerCtrl(slaveID, len, ctrlValue)

Descrizione

Controllo ventosa a matrice

Parametri Obbligatori

  • slaveID: Numero stazione slave

  • len: Lunghezza

  • ctrlValue: Valore di controllo 1-Aspirazione a vuoto massimo 2-Aspirazione a vuoto impostato 3-Arresto aspirazione

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice di errore Successo-0 Fallimento-errcode

11.81. Ottenere Stato Ventosa a Matrice

Nuovo nella versione python: SDK-v2.1.5

Prototipo

GetSuckerState(slaveID)

Descrizione

Ottiene lo stato della ventosa a matrice

Parametri Obbligatori

  • slaveID: Numero stazione slave

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice di errore Successo-0 Fallimento-errcode

  • state: Stato aspirazione 0-Oggetto rilasciato 1-Aspirazione pezzo riuscita 2-Nessun oggetto aspirato 3-Oggetto distaccato

  • pressValue: Pressione di vuoto corrente unità kPa

  • error: Codice errore corrente della ventosa

11.82. Attendere Stato Ventosa

Nuovo nella versione python: SDK-v2.1.5

Prototipo

WaitSuckerState(slaveID, state, ms)

Descrizione

Attende lo stato della ventosa

Parametri Obbligatori

  • slaveID: Numero stazione slave

  • state: Stato aspirazione 0-Oggetto rilasciato 1-Aspirazione pezzo riuscita 2-Nessun oggetto aspirato 3-Oggetto distaccato

  • ms: Tempo massimo di attesa

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice di errore Successo-0 Fallimento-errcode

11.83. Esempio di Codice per Comando di Controllo Ventosa a Matrice

Nuovo nella versione python: SDK-v2.1.5

 1from fairino import Robot
 2# Stabilire la connessione con il controller del robot, in caso di successo restituisce un oggetto robot
 3robot = Robot.RPC('192.168.58.2')
 4robot.OpenLuaUpload("C://Progetto/PerifericheSDK/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. Caricare File Lua di Protocollo Aperto

Nuovo nella versione python: SDK-v2.1.5

Prototipo

OpenLuaUpload(filePath)

Descrizione

Carica file Lua di protocollo aperto

Parametri Obbligatori

  • filePath: Percorso locale del file Lua di protocollo aperto

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice di errore Successo-0 Fallimento-errcode

11.85. Ottenere Parametri Scheda Stazione Slave

Nuovo nella versione python: SDK-v2.1.5

Prototipo

GetFieldBusConfig()

Descrizione

Ottiene i parametri della scheda stazione slave

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice di errore Successo-0 Fallimento-errcode

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

  • version: Versione protocollo

  • connState: 0-Non connesso 1-Connesso

11.86. Scrivere DO Stazione Slave

Nuovo nella versione python: SDK-v2.1.5

Prototipo

FieldBusSlaveWriteDO(DOIndex, writeNum, status)

Descrizione

Scrive DO stazione slave

Parametri Obbligatori

  • DOIndex: Numero DO

  • writeNum: Numero di valori da scrivere

  • status: Valori da scrivere, massimo 8

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice di errore Successo-0 Fallimento-errcode

11.87. Scrivere AO Stazione Slave

Nuovo nella versione python: SDK-v2.1.5

Prototipo

FieldBusSlaveWriteAO(AOIndex, writeNum, status)

Descrizione

Scrive AO stazione slave

Parametri Obbligatori

  • AOIndex: Numero AO

  • writeNum: Numero di valori da scrivere

  • status: Valori da scrivere, massimo 8

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice di errore Successo-0 Fallimento-errcode

11.88. Leggere DI Stazione Slave

Nuovo nella versione python: SDK-v2.1.5

Prototipo

FieldBusSlaveReadDI(DIIndex, readNum)

Descrizione

Legge DI stazione slave

Parametri Obbligatori

  • DIIndex: Numero DI

  • readNum: Numero di valori da leggere

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice di errore Successo-0 Fallimento-errcode

  • status[8]: Valori letti, massimo 8

11.89. Leggere AI Stazione Slave

Nuovo nella versione python: SDK-v2.1.5

Prototipo

FieldBusSlaveReadAI(AIIndex, readNum)

Descrizione

Legge AI stazione slave

Parametri Obbligatori

  • AIIndex: Numero AI

  • readNum: Numero di valori da leggere

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice di errore Successo-0 Fallimento-errcode

  • status[8]: Valori letti, massimo 8

11.90. Attendere Ingresso DI Esteso

Nuovo nella versione python: SDK-v2.1.5

Prototipo

FieldBusSlaveWaitDI(DIIndex, status, waitMs)

Descrizione

Attende ingresso DI esteso

Parametri Obbligatori

  • DIIndex: Numero DI

  • status: 0-Livello basso; 1-Livello alto

  • waitMs: Tempo massimo di attesa (ms)

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice di errore Successo-0 Fallimento-errcode

11.91. Attendere Ingresso AI Esteso

Nuovo nella versione python: SDK-v2.1.5

Prototipo

FieldBusSlaveWaitAI(AIIndex, waitType, value, waitMs)

Descrizione

Attende ingresso AI esteso

Parametri Obbligatori

  • AIIndex: Numero AI

  • waitType: 0-Maggiore di; 1-Minore di

  • value: Valore AI

  • waitMs: Tempo massimo di attesa (ms)

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice di errore Successo-0 Fallimento-errcode

11.92. Esempio di Codice per Comandi Interfaccia Modalità Stazione Slave

Nuovo nella versione python: SDK-v2.1.5

 1from fairino import Robot
 2# Stabilire la connessione con il controller del robot, in caso di successo restituisce un oggetto robot
 3robot = Robot.RPC('192.168.58.2')
 4robot.OpenLuaUpload("D://zUP/Periferiche/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. Abilita/Disabilita Funzione di Trasmissione Trasparente dell’End-Effector SDK Interface

Prototipo

SetAxleGenComEnable(mode)

Descrizione

Abilita la funzione di trasmissione trasparente generale dell’end-effector

Parametri Obbligatori

  • mode: Abilitazione, 0-disabilita, 1-abilita

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice di errore Successo-0 Fallimento-errcode

11.94. Trasmissione e Ricezione Dati Non Periodici della Funzione di Trasmissione Trasparente dell’End-Effector SDK Interface

Prototipo

SndRcvAxleGenComCmdData(len_snd, sndBuff, len_rcv)

Descrizione

L’end-effector invia dati non periodici e attende risposta

Parametri Obbligatori

  • len_snd: Lunghezza dei dati da inviare;

  • sndBuff[]: Dati da inviare;

  • len_rcv: Lunghezza dei dati da ricevere;

  • rcvBuff[]: Dati di risposta;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice di errore Successo-0 Fallimento-errcode

11.95. Esempio di Codice per Comunicazione Dati Non Periodici del DIO Health Care Moxibustion Head basato sulla Funzione di Trasmissione Trasparente dell’End-Effector

 1from time import sleep
 2from fairino import Robot
 3from ctypes import sizeof
 4# Stabilire la connessione con il controller del robot, in caso di successo restituisce un oggetto robot
 5robot = Robot.RPC('192.168.58.2')
 6
 7import time
 8
 9
10def testAxleGenCom(self):
11
12    led_on = [0xAB, 0xBA, 0x12, 0x01, 0x01, 0x79]
13    led_off = [0xAB, 0xBA, 0x12, 0x01, 0x00, 0x78]
14    version = [0xAB, 0xBA, 0x11, 0x00, 0x76]
15    state = [0xAB, 0xBA, 0x1B, 0x01, 0xAA, 0x2B]
16    cycleState = [0xAB, 0xBA, 0x12, 0x01, 0x00, 0x78]
17    cnt = 1
18
19    p1Joint = [88.708, -86.178, 140.989, -141.825, -89.162, -49.879]
20    p1Desc = [188.007, -377.850, 260.207, 178.715, 2.823, -131.466]
21    p2Joint = [112.131, -75.554, 126.989, -139.027, -88.044, -26.477]
22    p2Desc = [368.003, -377.848, 260.211, 178.715, 2.823, -131.465]
23
24    exaxisPos = [0, 0, 0, 0]
25    offdese = [0, 0, 0, 0, 0, 0]
26
27    #Abilita la funzione di trasmissione trasparente dell'end-effector
28    robot.SetAxleGenComEnable(1)
29    robot.SetAxleLuaEnable(1)
30
31    while cnt <= 10000:
32        #Legge il numero di versione
33        ret,rcvdata = robot.SndRcvAxleGenComCmdData(len_snd=5, sndBuff=version, len_rcv=10)
34        print(ret)
35        print(rcvdata)
36        print(f"hard version : {rcvdata[4]},hard code:{rcvdata[5]}, soft version:{rcvdata[6]} {rcvdata[7]}, soft code:{rcvdata[8]}")
37        if ret != 0:
38            break
39        time.sleep(1)
40        # Legge lo stato di presenza della testa di moxibustione
41        ret,rcvdata = robot.SndRcvAxleGenComCmdData(6, state, 6)
42        print(f"state : {rcvdata[4]} ")
43        time.sleep(1)
44        # Accende il laser della testa di moxibustione
45        ret,rcvdata = robot.SndRcvAxleGenComCmdData(6, led_on, 6)
46        print(f"led on rcv data is: {rcvdata[0]}, {rcvdata[1]}, {rcvdata[2]}, {rcvdata[3]}, {rcvdata[4]}, {rcvdata[5]}")
47        robot.MoveJ(joint_pos=p1Joint, tool=0, user=0, vel=100, acc=100, ovl=100, exaxis_pos=exaxisPos, blendT=-1,
48                        offset_flag=0, offset_pos=offdese)
49        time.sleep(4)
50        # Spegne il laser della testa di moxibustione
51        ret, rcvdata = robot.SndRcvAxleGenComCmdData(6, led_off, 6)
52        print(f"led off rcv data is: {rcvdata[0]}, {rcvdata[1]}, {rcvdata[2]}, {rcvdata[3]}, {rcvdata[4]}, {rcvdata[5]}")
53        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)
54        time.sleep(1)
55        print(f"***********************complate No. {cnt} SDK test*****************************")
56        cnt = cnt + 1
57
58    robot.CloseRPC()
59    return 0
60
61testAxleGenCom(robot)

11.96. Scarica File Lua di Protocollo Aperto

Prototipo

OpenLuaDownload(fileName, savePath)

Descrizione

Scarica file Lua di protocollo aperto

Parametri Obbligatori

  • fileName: Nome del file di protocollo aperto CtrlDev_XXX.lua;

  • savePath: Percorso di salvataggio del file di protocollo aperto;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice di errore Successo-0 Fallimento-errcode

11.97. Elimina File Lua di Protocollo Aperto Specificato

Prototipo

OpenLuaDelete(fileName)

Descrizione

Elimina file Lua di protocollo aperto specificato

Parametri Obbligatori

  • fileName: Nome del file Lua di protocollo aperto da eliminare CtrlDev_XXX.lua

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice di errore Successo-0 Fallimento-errcode

11.98. Elimina Tutti i File Lua di Protocollo Aperto

Prototipo

AllOpenLuaDelete()

Descrizione

Elimina tutti i file Lua di protocollo aperto

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice di errore Successo-0 Fallimento-errcode

11.99. Esempio di Codice SDK per Operazioni su File Lua di Protocollo Aperto

 1from time import sleep
 2import time
 3from fairino import Robot
 4
 5# Stabilire la connessione con il controller del robot
 6robot = Robot.RPC('192.168.58.2')
 7
 8
 9def TestCtrlOpenLuaOperate(self):
10    # Carica file Lua sul robot
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    # Scarica file Lua dal robot
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    # Imposta nome Lua di protocollo aperto di controllo
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    # Ottiene nome Lua di protocollo aperto di controllo
32    rtn, name = robot.GetCtrlOpenLUAName()
33    print(f"ctrl open lua names : {name[0]}, {name[1]}, {name[2]}, {name[3]}")
34
35    # Carica Lua di protocollo aperto di controllo
36    rtn = robot.LoadCtrlOpenLUA(1)
37    print(f"LoadCtrlOpenLUA rtn is {rtn}")
38    time.sleep(2)
39
40    # Scarica Lua di protocollo aperto di controllo
41    rtn = robot.UnloadCtrlOpenLUA(1)
42    print(f"UnloadCtrlOpenLUA rtn is {rtn}")
43
44    # Elimina file Lua specificato
45    rtn = robot.OpenLuaDelete("CtrlDev_WELDING_A.lua")
46    print(f"OpenLuaDelete rtn is {rtn}")
47
48    # Elimina tutti i file Lua
49    rtn = robot.AllOpenLuaDelete()
50    print(f"AllOpenLuaDelete rtn is {rtn}")
51
52    # Chiudi connessione
53    robot.CloseRPC()
54    time.sleep(1)
55
56
57# Chiama la funzione di test
58TestCtrlOpenLuaOperate(robot)