13. Assi di Espansione

13.1. Impostazione Parametri Asse di Espansione 485

Nuovo nella versione python: SDK-v2.0.3

Prototipo

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

Descrizione

Imposta i parametri dell’asse di espansione 485

Parametri Obbligatori

  • servoId:ID driver servomotore, intervallo [1-15], corrisponde all’ID slave;

  • servoCompany:Produttore driver servomotore, 1-Dynatech;

  • servoModel:Modello driver servomotore, 1-FD100-750C;

  • servoSoftVersion:Versione software driver servomotore, 1-V1.0;

  • servoResolution:Risoluzione encoder;

  • axisMechTransRatio:Rapporto di trasmissione meccanico;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.2. Ottenimento Parametri Configurazione Asse di Espansione 485

Nuovo nella versione python: SDK-v2.0.3

Prototipo

AuxServoGetParam(servoId)

Descrizione

Ottiene i parametri di configurazione dell’asse di espansione 485

Parametri Obbligatori

  • servoId:ID driver servomotore, intervallo [1-15], corrisponde all’ID slave;

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode;

  • servoCompany:Produttore driver servomotore, 1-Dynatech;

  • servoModel:Modello driver servomotore, 1-FD100-750C;

  • servoSoftVersion:Versione software driver servomotore, 1-V1.0;

  • servoResolution:Risoluzione encoder;

  • axisMechTransRatio:Rapporto di trasmissione meccanico;

13.3. Impostazione Abilitazione/Disabilitazione Asse di Espansione 485

Nuovo nella versione python: SDK-v2.0.3

Prototipo

AuxServoEnable(servoId,status)

Descrizione

Imposta l’abilitazione/disabilitazione dell’asse di espansione 485

Parametri Obbligatori

  • servoId:ID driver servomotore, intervallo [1-15], corrisponde all’ID slave;

  • status:Stato abilitazione, 0-Disabilitato, 1-Abilitato;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.4. Impostazione Modalità Controllo Asse di Espansione 485

Nuovo nella versione python: SDK-v2.0.3

Prototipo

AuxServoSetControlMode(servoId,mode)

Descrizione

Imposta la modalità di controllo dell’asse di espansione 485

Parametri Obbligatori

  • servoId:ID driver servomotore, intervallo [1-15], corrisponde all’ID slave;

  • mode:Modalità controllo, 0-Modalità posizione, 1-Modalità velocità;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.5. Impostazione Posizione Obiettivo Asse di Espansione 485 (Modalità Posizione)

Nuovo nella versione python: SDK-v2.0.3

Prototipo

AuxServoSetTargetPos(servoId,pos,speed)

Descrizione

Imposta la posizione obiettivo dell’asse di espansione 485 (modalità posizione)

Parametri Obbligatori

  • servoId:ID driver servomotore, intervallo [1-15], corrisponde all’ID slave;

  • pos:Posizione obiettivo, mm o °;

  • speed:Velocità obiettivo, mm/s o °/s;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.6. Impostazione Coppia Obiettivo Asse di Espansione 485 (Modalità Coppia) - Non ancora disponibile

Nuovo nella versione python: SDK-v2.0.3

Prototipo

AuxServoSetTargetTorque(servoId,torque)

Descrizione

Imposta la coppia obiettivo dell’asse di espansione 485 (modalità coppia)

Parametri Obbligatori

  • servoId:ID driver servomotore, intervallo [1-15], corrisponde all’ID slave;

  • torque:Coppia obiettivo, Nm;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.7. Impostazione Home Asse di Espansione 485

Nuovo nella versione python: SDK-v2.0.3

Prototipo

AuxServoHoming(servoId,mode,searchVel,latchVel)

Descrizione

Imposta l’home dell’asse di espansione 485

Parametri Obbligatori

  • servoId:ID driver servomotore, intervallo [1-15], corrisponde all’ID slave;

  • mode:Modalità home, 1-Home posizione corrente; 2-Home limite negativo; 3-Home limite positivo;

  • searchVel: Velocità ricerca home, mm/s o °/s;

  • latchVel:Velocità aggancio, mm/s o °/s;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.8. Cancellazione Errori Asse di Espansione 485

Nuovo nella versione python: SDK-v2.0.3

Prototipo

AuxServoClearError(servoId)

Descrizione

Cancella gli errori dell’asse di espansione 485

Parametri Obbligatori

  • servoId:ID driver servomotore, intervallo [1-15], corrisponde all’ID slave;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.9. Ottenimento Stato Servo Asse di Espansione 485

Nuovo nella versione python: SDK-v2.0.3

Prototipo

AuxServoGetStatus(servoId)

Descrizione

Ottiene lo stato del servo dell’asse di espansione 485

Parametri Obbligatori

  • servoId:ID driver servomotore, intervallo [1-15], corrisponde all’ID slave;

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode;

  • servoErrCode:Codice errore driver servomotore

  • servoState:Stato driver servomotore bit0:0-Non abilitato; 1-Abilitato; bit1:0-Non in movimento; 1-In movimento; bit2 0-Limite positivo non attivato; 1-Limite positivo attivato; bit3 0-Limite negativo non attivato; 1-Limite negativo attivato; bit4 0-Posizionamento non completato; 1-Posizionamento completato; bit5:0-Home non effettuato; 1-Home completato;

  • servoPos:Posizione corrente servo mm o °;

  • servoSpeed:Velocità corrente servo mm/s o °/s;

  • servoTorque:Coppia corrente servo Nm;

13.10. Impostazione Velocità Obiettivo Asse di Espansione 485 (Modalità Velocità)

Nuovo nella versione python: SDK-v2.0.3

Prototipo

AuxServoSetTargetSpeed(servoId,speed)

Descrizione

Imposta la velocità obiettivo dell’asse di espansione 485 (modalità velocità)

Parametri Obbligatori

  • servoId:ID driver servomotore, intervallo [1-15], corrisponde all’ID slave;

  • speed:Velocità obiettivo, mm/s o °/s;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.11. Impostazione Numero Asse Dati Asse di Espansione 485 nel Feedback Stato

Nuovo nella versione python: SDK-v2.0.3

Prototipo

AuxServosetStatusID(servoId)

Descrizione

Imposta il numero asse dei dati asse di espansione 485 nel feedback stato

Parametri Obbligatori

  • servoId:ID driver servomotore, intervallo [1-15], corrisponde all’ID slave;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.12. Impostazione Accelerazione/Decelerazione Movimento Asse di Espansione 485

Nuovo nella versione python: SDK-v2.0.5

Prototipo

AuxServoSetAcc(acc, dec)

Descrizione

Imposta l’accelerazione/decelerazione del movimento dell’asse di espansione 485

Parametri Obbligatori

  • acc:Accelerazione movimento asse di espansione 485

  • dec:Decelerazione movimento asse di espansione 485

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.13. Impostazione Accelerazione/Decelerazione Arresto Emergenza Asse di Espansione 485

Nuovo nella versione python: SDK-v2.0.5

Prototipo

AuxServoSetEmergencyStopAcc(acc, dec)

Descrizione

Imposta l’accelerazione/decelerazione di arresto emergenza dell’asse di espansione 485

Parametri Obbligatori

  • acc:Accelerazione arresto emergenza asse di espansione 485

  • dec:Decelerazione arresto emergenza asse di espansione 485

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.14. Ottenimento Accelerazione/Decelerazione Movimento Asse di Espansione 485

Nuovo nella versione python: SDK-v2.0.5

Prototipo

AuxServoGetAcc()

Descrizione

Ottiene l’accelerazione/decelerazione del movimento dell’asse di espansione 485

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • acc:Accelerazione movimento asse di espansione 485

  • dec:Decelerazione movimento asse di espansione 485

13.15. Ottenimento Accelerazione/Decelerazione Arresto Emergenza Asse di Espansione 485

Nuovo nella versione python: SDK-v2.0.5

Prototipo

AuxServoGetEmergencyStopAcc()

Descrizione

Ottiene l’accelerazione/decelerazione di arresto emergenza dell’asse di espansione 485

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • acc:Accelerazione arresto emergenza asse di espansione 485

  • dec:Decelerazione arresto emergenza asse di espansione 485

13.16. Esempio di Codice Controllo Asse di Espansione

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

13.17. Configurazione Parametri Comunicazione UDP Asse di Espansione

Nuovo nella versione python: SDK-v2.1.2

Prototipo

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

Descrizione

Configurazione parametri comunicazione UDP asse di espansione

Parametri Obbligatori

  • ip:Indirizzo IP PLC;

  • port:Numero porta;

  • period:Periodo comunicazione (ms, non ancora disponibile);

  • lossPkgTime:Tempo rilevamento perdita pacchetti (ms);

  • lossPkgNum:Numero perdite pacchetti;

  • disconnectTime:Durata conferma disconnessione comunicazione;

  • reconnectEnable:Abilitazione riconnessione automatica in caso di disconnessione 0-Disabilitato 1-Abilitato;

  • reconnectPeriod:Intervallo periodo riconnessione (ms);

  • reconnectNum:Numero tentativi riconnessione

  • selfConnect:Stabilire connessione automaticamente dopo riavvio alimentazione; 0-Non stabilire connessione; 1-Stabilire connessione

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.18. Ottenimento Parametri Comunicazione UDP Asse di Espansione

Nuovo nella versione python: SDK-v2.0.4

Prototipo

ExtDevGetUDPComParam()

Descrizione

Ottiene i parametri di comunicazione UDP dell’asse di espansione

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode;

  • ip:Indirizzo IP PLC;

  • port:Numero porta;

  • period:Periodo comunicazione (ms, non ancora disponibile);

  • lossPkgTime:Tempo rilevamento perdita pacchetti (ms);

  • lossPkgNum:Numero perdite pacchetti;

  • disconnectTime:Durata conferma disconnessione comunicazione;

  • reconnectEnable:Abilitazione riconnessione automatica in caso di disconnessione 0-Disabilitato 1-Abilitato;

  • reconnectPeriod:Intervallo periodo riconnessione (ms);

  • reconnectNum:Numero tentativi riconnessione

  • reconnectNum: Numero di tentativi di riconnessione

  • selfConnect: Riconnessione automatica dopo riavvio del box di controllo; 0-nessuna riconnessione; 1-riconnessione

13.19. Caricamento Comunicazione UDP

Nuovo nella versione python: SDK-v2.0.4

Prototipo

ExtDevLoadUDPDriver()

Descrizione

Carica la comunicazione UDP

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.20. Scaricamento Comunicazione UDP

Nuovo nella versione python: SDK-v2.0.4

Prototipo

ExtDevUnloadUDPDriver()

Descrizione

Scarica la comunicazione UDP

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.21. Ripristino Connessione Dopo Disconnessione Anomala Comunicazione UDP Asse di Espansione

Nuovo nella versione python: SDK-v2.0.4

Prototipo

ExtDevUDPClientComReset()

Descrizione

Ripristina connessione dopo disconnessione anomala comunicazione UDP asse di espansione

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.22. Chiusura Comunicazione Dopo Disconnessione Anomala Comunicazione UDP Asse di Espansione

Nuovo nella versione python: SDK-v2.0.4

Prototipo

ExtDevUDPClientComClose()

Descrizione

Chiude la comunicazione dopo disconnessione anomala comunicazione UDP asse di espansione

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.23. Configurazione Parametri Asse di Espansione UDP

Nuovo nella versione python: SDK-v2.0.4

Prototipo

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

Descrizione

Configurazione parametri asse di espansione UDP

Parametri Obbligatori

  • axisId:Numero asse [1-4];

  • axisType:Tipo asse di espansione 0-Translazionale; 1-Rotazionale;

  • axisDirection:Direzione asse di espansione 0-Positivo; 1-Negativo;

  • axisMax:Posizione massima asse di espansione mm;

  • axisMin:Posizione minima asse di espansione mm;

  • axisVel:Velocità mm/s;

  • axisAcc:Accelerazione mm/s2;

  • axisLead:Passo vite mm;

  • encResolution:Risoluzione encoder;

  • axisOffect:Offset asse di espansione punto inizio saldatura;

  • axisCompany:Produttore driver 1-Hecheng; 2-Inovance; 3-Panasonic;

  • axisModel:Modello driver 1-Hecheng-SV-XD3EA040L-E, 2-Hecheng-SV-X2EA150A-A, 1-Inovance-SV620PT5R4I, 1-Panasonic-MADLN15SG, 2-Panasonic-MSDLN25SG, 3-Panasonic-MCDLN35SG;

  • axisEncType:Tipo encoder 0-Incrementale; 1-Assoluto;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.24. Acquisizione Parametri Asse Esteso UDP

Prototipo

ExtAxisGetParamConfig(self, axisID)

Descrizione

Acquisizione parametri asse esteso UDP

Parametri Obbligatori

  • axisID:Numero asse esteso [1-4]

  • axisType:Tipo asse esteso 0-lineare; 1-rotante

  • axisDirection:Direzione asse esteso 0-positiva; 1-negativa

  • axisMax:Posizione massima asse esteso mm

  • axisMin:Posizione minima asse esteso mm

  • axisVel:Velocità mm/s

  • axisAcc:Accelerazione mm/s²

  • axisLead:Passo mm

  • encResolution:Risoluzione encoder

  • axisOffect:Offset asse esteso del punto di inizio saldatura

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

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

  • axisEncType:Tipo encoder 0-incrementale; 1-assoluto

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice di errore Successo-0 Fallimento- errcode

13.25. Impostazione Posizione Robot Relativa all’Asse di Espansione

Nuovo nella versione python: SDK-v2.0.4

Prototipo

SetRobotPosToAxis(installType)

Descrizione

Imposta la posizione del robot relativa all’asse di espansione

Parametri Obbligatori

  • installType:0-Robot installato sull’asse esterno, 1-Robot installato all’esterno dell’asse esterno;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.26. Impostazione Configurazione Parametri DH Sistema Asse di Espansione

Nuovo nella versione python: SDK-v2.0.4

Prototipo

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

Descrizione

Imposta la configurazione dei parametri DH del sistema asse di espansione

Parametri Obbligatori

  • axisConfig:Configurazione asse esterno, 0-Guidovia lineare a singolo grado di libertà, 1-Posizionatore a due gradi di libertà a L, 2-Tre gradi di libertà, 3-Quattro gradi di libertà, 4-Posizionatore a singolo grado di libertà;

  • axisDHd1:Parametro DH asse esterno d1 mm;

  • axisDHd2:Parametro DH asse esterno d2 mm;

  • axisDHd3:Parametro DH asse esterno d3 mm;

  • axisDHd4:Parametro DH asse esterno d4 mm;

  • axisDHa1:Parametro DH asse esterno a1 mm;

  • axisDHa2:Parametro DH asse esterno a2 mm;

  • axisDHa3:Parametro DH asse esterno a3 mm;

  • axisDHa4:Parametro DH asse esterno a4 mm;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.27. Abilitazione Asse di Espansione UDP

Nuovo nella versione python: SDK-v2.0.4

Prototipo

ExtAxisServoOn(axisID, status)

Descrizione

Abilitazione asse di espansione UDP

Parametri Obbligatori

  • axisID:Numero asse [1-4];

  • status:0-Disabilitato; 1-Abilitato;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.28. Home Asse di Espansione UDP

Nuovo nella versione python: SDK-v2.0.4

Prototipo

ExtAxisSetHoming(axisID, mode, searchVel, latchVel)

Descrizione

Home asse di espansione UDP

Parametri Obbligatori

  • axisID:Numero asse [1-4];

  • mode:Modalità home 0 home posizione corrente, 1 home limite negativo, 2-home limite positivo;

  • searchVel:Velocità ricerca home (mm/s);

  • latchVel:Velocità aggancio home (mm/s);

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.29. Inizio Jog Asse di Espansione UDP

Nuovo nella versione python: SDK-v2.0.4

Prototipo

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

Descrizione

Inizio jog asse di espansione UDP

Parametri Obbligatori

  • axisID:Numero asse [1-4];

  • direction:Direzione rotazione 0-Negativo; 1-Positivo;

  • vel:Velocità (mm/s);

  • acc:Accelerazione (mm/s);

  • maxDistance:Distanza massima jog;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.30. Stop Jog Asse di Espansione UDP

Nuovo nella versione python: SDK-v2.0.4

Prototipo

ExtAxisStopJog(axisID)

Descrizione

Stop jog asse di espansione UDP

Parametri Obbligatori

  • axisID:Numero asse [1-4];

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.31. Esempio di Codice Configurazione e Jog Asse di Espansione UDP

 1from fairino import Robot
 2from fairino.Robot import RobotState
 3import time
 4
 5def main():
 6    # Aggiungere i dati di stato in tempo reale da ottenere (se necessario)
 7    # rtn = AddRobotRealtimeState([RobotState.ExaxisCoordID])
 8    # if rtn != 0:
 9    #     print(f"✗ Aggiunta campo fallita, codice errore: {rtn}")
10    #     return None
11    # print("✓ Campo aggiunto con successo")
12
13    # Stabilire connessione con il controller del robot
14    robot = Robot.RPC('192.168.58.2')
15    time.sleep(0.5)  # Attendere connessione e ricezione dati
16
17    # Configurare parametri di comunicazione UDP
18    rtn = robot.ExtDevSetUDPComParam("192.168.58.88", 2021, 2, 100, 3, 200, 1, 100, 5, 1)
19    print(f"ExtDevSetUDPComParam rtn is {rtn}")
20
21    # Ottenere parametri di comunicazione UDP
22    error, param = robot.ExtDevGetUDPComParam()
23    print("ExtDevGetUDPComParam return ", error)
24    print("Parametri di comunicazione asse esteso UDP: ", param)
25
26    # Caricare driver UDP
27    robot.ExtDevLoadUDPDriver()
28
29    # Impostare tempo di completamento comando asse esteso
30    rtn = robot.SetExAxisCmdDoneTime(5000.0)
31    print(f"SetExAxisCmdDoneTime rtn is {rtn}")
32
33    # Abilitazione servo asse esteso
34    rtn = robot.ExtAxisServoOn(1, 1)
35    print(f"ExtAxisServoOn axis id 1 rtn is {rtn}")
36    rtn = robot.ExtAxisServoOn(2, 1)
37    print(f"ExtAxisServoOn axis id 2 rtn is {rtn}")
38    time.sleep(2)
39
40    # Homing asse esteso
41    robot.ExtAxisSetHoming(1, 0, 10, 2)
42    time.sleep(2)
43    rtn = robot.ExtAxisSetHoming(2, 0, 10, 2)
44    print(f"ExtAxisSetHoming rtn is {rtn}")
45
46    time.sleep(4)
47
48    # Impostare posizione relativa del robot rispetto all'asse esteso
49    rtn = robot.SetRobotPosToAxis(1)
50    print(f"SetRobotPosToAxis rtn is {rtn}")
51
52    # Impostare configurazione parametri DH asse esteso
53    rtn = robot.SetAxisDHParaConfig(10, 20, 0, 0, 0, 0, 0, 0, 0)
54    print(f"SetAxisDHParaConfig rtn is {rtn}")
55
56    # Configurare parametri asse esteso 1
57    rtn = robot.ExtAxisParamConfig(1, 1, 1, 1000, -1000, 1000, 1000, 1.905, 262144, 200, 1, 0, 0)
58    print(f"ExtAxisParamConfig axis 1 rtn is {rtn}")
59
60    # Ottenere configurazione parametri asse esteso 1
61    rtn, axisType, axisDirection, axisMax, axisMin, axisVel, axisAcc, axisLead, encResolution, axisOffect, axisCompany, axisModel, axisEncType = robot.ExtAxisGetParamConfig(1)
62    print(f"axis id 1 ExtAxisGetParamConfig : axisType {axisType}, axisDirection {axisDirection}, axisMax {axisMax}, axisMin {axisMin}, axisVel {axisVel}, axisAcc {axisAcc}, axisLead {axisLead}, encResolution {encResolution}, axisOffect {axisOffect}, axisCompany {axisCompany}, axisModel {axisModel}, axisEncType {axisEncType}")
63
64    # Configurare parametri asse esteso 2
65    rtn = robot.ExtAxisParamConfig(2, 1, 1, 1000, -1000, 1000, 1000, 4.444, 262144, 200, 1, 0, 0)
66    print(f"ExtAxisParamConfig axis 2 rtn is {rtn}")
67
68    # Ottenere configurazione parametri asse esteso 2
69    rtn, axisType, axisDirection, axisMax, axisMin, axisVel, axisAcc, axisLead, encResolution, axisOffect, axisCompany, axisModel, axisEncType = robot.ExtAxisGetParamConfig(2)
70    print(f"axis id 2 ExtAxisGetParamConfig : axisType {axisType}, axisDirection {axisDirection}, axisMax {axisMax}, axisMin {axisMin}, axisVel {axisVel}, axisAcc {axisAcc}, axisLead {axisLead}, encResolution {encResolution}, axisOffect {axisOffect}, axisCompany {axisCompany}, axisModel {axisModel}, axisEncType {axisEncType}")
71
72    time.sleep(3)
73
74    # Test jog asse esteso 1
75    robot.ExtAxisStartJog(1, 0, 10, 10, 30)
76    time.sleep(1)
77    robot.ExtAxisStopJog(1)
78    time.sleep(3)
79    robot.ExtAxisServoOn(1, 0)
80
81    time.sleep(3)
82
83    # Test jog asse esteso 2
84    robot.ExtAxisStartJog(2, 0, 10, 10, 30)
85    time.sleep(1)
86    robot.ExtAxisStopJog(2)
87    time.sleep(3)
88    robot.ExtAxisServoOn(2, 0)
89
90    # Scaricare driver UDP
91    robot.ExtDevUnloadUDPDriver()
92
93    # Chiudere connessione
94    robot.CloseRPC()
95
96
97# Chiamata funzione di test
98main()

13.32. Impostazione Punto di Riferimento Sistema Coordinate Asse di Espansione - Metodo a Quattro Punti

Nuovo nella versione python: SDK-v2.0.4

Prototipo

ExtAxisSetRefPoint(pointNum)

Descrizione

Imposta il punto di riferimento del sistema coordinate asse di espansione - metodo a quattro punti

Parametri Obbligatori

  • pointNum:Numero punto [1-4];

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.33. Calcolo Sistema Coordinate Asse di Espansione - Metodo a Quattro Punti

Nuovo nella versione python: SDK-v2.0.4

Prototipo

ExtAxisComputeECoordSys()

Descrizione

Calcola il sistema coordinate asse di espansione - metodo a quattro punti

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode;

  • coord:Valori sistema coordinate asse di espansione [x,y,z,rx,ry,rz];

13.34. Impostazione Punto di Riferimento Sistema Coordinate Posizionatore - Metodo a Quattro Punti

Nuovo nella versione python: SDK-v2.0.4

Prototipo

PositionorSetRefPoint(pointNum)

Descrizione

Imposta il punto di riferimento del sistema coordinate posizionatore - metodo a quattro punti

Parametri Obbligatori

  • pointNum:Numero punto [1-4];

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.35. Calcolo Sistema Coordinate Posizionatore - Metodo a Quattro Punti

Nuovo nella versione python: SDK-v2.0.4

Prototipo

PositionorComputeECoordSys()

Descrizione

Calcola il sistema coordinate posizionatore - metodo a quattro punti

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode;

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

13.36. Impostazione Posa Punto di Riferimento Calibrazione nel Sistema Coordinate Estremità Posizionatore

Nuovo nella versione python: SDK-v2.0.4

Prototipo

SetRefPointInExAxisEnd(pos)

Descrizione

Imposta la posa del punto di riferimento calibrazione nel sistema coordinate estremità posizionatore

Parametri Obbligatori

  • pos:Valori posa [x,y,z,rx,ry,rz];

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.37. Applicazione Sistema Coordinate Asse di Espansione

Nuovo nella versione python: SDK-v2.0.4

Prototipo

ExtAxisActiveECoordSys(applyAxisId,axisCoordNum,coord,calibFlag)

Descrizione

Applica sistema coordinate asse di espansione

Parametri Obbligatori

  • applyAxisId:Numero asse di espansione bit0-bit3 corrisponde a numero asse di espansione 1-4, ad esempio applica asse di espansione 1 e 3, allora è 0b 0000 0101, cioè 5;

  • axisCoordNum:Numero sistema coordinate asse di espansione;

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

  • calibFlag:Flag calibrazione 0-No, 1-Sì;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.38. Ottenimento Sistema Coordinate Asse di Espansione

Nuovo nella versione python: SDK-v2.1.2

Prototipo

ExtAxisGetCoord()

Descrizione

Ottiene il sistema coordinate dell’asse di espansione

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • coord:Sistema coordinate asse di espansione

13.39. Esempio di Codice Calibrazione Sistema Coordinate Asse di Espansione

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

13.40. Movimento Asse di Espansione UDP

Nuovo nella versione python: SDK-v2.1.4

Prototipo

ExtAxisMove(pos,ovl,blend=-1)

Descrizione

Movimento asse di espansione UDP

Parametri Obbligatori

  • pos=[exaxis[0],exaxis[1],exaxis[2],exaxis[3]]:Posizione obiettivo posizione asse 1~posizione asse 4;

  • ovl:Percentuale velocità

Parametri Predefiniti

  • blend:Parametro smoothing (mm o ms), -1, attesa completamento movimento, default -1

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.41. Esempio di Codice Movimento Asse di Espansione UDP

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')
5axisPos = [20,0,0,0]
6robot.ExtAxisMove(axisPos, 50, -1)
7robot.CloseRPC()
8return 0

13.42. Movimento Sincrono Asse di Espansione UDP con Movimento Giunti Robot

Nuovo nella versione python: SDK-v2.0.4

Prototipo

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

Descrizione

Movimento sincrono asse di espansione UDP con movimento giunti robot

Parametri Obbligatori

  • joint_pos: Posizione giunti obiettivo, unità [°];

  • desc_pos:Posa cartesiana obiettivo, unità [mm][°]

  • tool:Numero tool, [0~14]

  • user:Numero pezzo, [0~14]

  • exaxis_pos:Posizione asse esterno 1 ~ Posizione asse esterno 4

Parametri Predefiniti

  • desc_pos:Posa cartesiana obiettivo, unità [mm][°] default valori iniziali [0.0,0.0,0.0,0.0,0.0,0.0], default chiama valore ritorno cinematica diretta;

  • vel: Percentuale velocità, [0~100] default 20.0;

  • acc:Percentuale accelerazione, [0~100] non ancora disponibile, default 0.0 ;

  • ovl:Fattore scala velocità, [0~100] default 100.0 ;

  • blendT:[-1.0]-Movimento a posizione (bloccante), [0~500.0]-Tempo smoothing (non bloccante), unità [ms] default -1.0;

  • offset_flag:[0]-Nessun offset, [1]-Offset nel sistema pezzo/base, [2]-Offset nel sistema tool default 0;

  • offset_pos:Offset posa, unità [mm][°] default [0.0,0.0,0.0,0.0,0.0,0.0] ;

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode;

13.43. Esempio di Codice Movimento Sincrono Asse di Espansione UDP con Movimento Giunti 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')
 4# Imposta parametri comunicazione UDP e li carica
 5robot.ExtDevSetUDPComParam("192.168.58.88", 2021, 2, 100, 3, 100, 1, 100, 10)
 6robot.ExtDevLoadUDPDriver()
 7# Imposta parametri asse di espansione
 8robot.SetAxisDHParaConfig(4, 200, 200, 0, 0, 0, 0, 0, 0)
 9robot.SetRobotPosToAxis(1)
10robot.ExtAxisParamConfig(1, 0, 1, 100, -100, 10, 10, 12, 131072, 0, 1, 0, 0)
11# Abilitazione asse di espansione, home
12robot.ExtAxisServoOn(1, 0)
13robot.ExtAxisSetHoming(1, 0, 20, 3)
14# Calibrazione sistema coordinate asse di espansione
15pos = []  # Inserisci qui le coordinate punto calibrazione
16robot.SetRefPointInExAxisEnd(pos)
17robot.PositionorSetRefPoint(1)  # Questa operazione deve essere ripetuta 4 volte (con 4 punti)
18error,coord = robot.PositionorComputeECoordSys()
19robot.ExtAxisActiveECoordSys(1, 1, coord, 1)
20# Punto di partenza e arrivo movimento sincrono
21startdescPose = []  # Inserisci coordinate specifiche
22startjointPos = []  # Inserisci coordinate specifiche
23startexaxisPos = []  # Inserisci coordinate specifiche
24enddescPose = []  # Inserisci coordinate specifiche
25endjointPos = []  # Inserisci coordinate specifiche
26endexaxisPos = []  # Inserisci coordinate specifiche
27# Movimento al punto di partenza
28robot.ExtAxisMove(startexaxisPos, 20, -1)
29offdese = [0, 0, 0, 0, 0, 0]
30robot.MoveJ(joint_pos=startjointPos,tool= 1,user= 1,vel= 100,acc= 100,ovl= 100,exaxis_pos= startexaxisPos,blendT= 0,offset_flag= 0,offset_pos= offdese)
31robot.ExtAxisSyncMoveJ(endjointPos, enddescPose, 1, 1, endexaxisPos, 100, 100, 100, -1, 0, offdese)
32robot.CloseRPC()

13.44. Movimento Sincrono Asse di Espansione UDP con Movimento Lineare Robot

Nuovo nella versione python: SDK-v2.1.5

Prototipo

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

Descrizione

Movimento sincrono asse di espansione UDP con movimento lineare robot

Parametri Obbligatori

  • desc_pos:Posa cartesiana obiettivo, unità [mm][°];

  • tool:Numero tool, [0~14];

  • user:Numero pezzo, [0~14];

  • exaxis_pos:Posizione asse esterno 1 ~ Posizione asse esterno 4;

Parametri Predefiniti

  • joint_pos:Posizione giunti obiettivo, unità [°] default valori iniziali [0.0,0.0,0.0,0.0,0.0,0.0], default chiama valore ritorno cinematica inversa;

  • vel: Percentuale velocità, [0~100] default 20.0;

  • acc:Percentuale accelerazione, [0~100] non ancora disponibile, default 0.0;

  • ovl:Fattore scala velocità, [0~100] default 100.0;

  • blendR:[-1.0]-Movimento a posizione (bloccante), [0~500.0]-Tempo smoothing (non bloccante), unità [ms] default -1.0;

  • search:[0]-Nessuna ricerca filo saldatura, [1]-Ricerca filo saldatura;

  • offset_flag:[0]-Nessun offset, [1]-Offset nel sistema pezzo/base, [2]-Offset nel sistema tool default 0;

  • offset_pos:Offset posa, unità [mm][°] default [0.0,0.0,0.0,0.0,0.0,0.0] ;

  • config:Configurazione spazio giunti soluzione inversa, [-1]-Calcolo con riferimento alla posizione giunti corrente, [0~7]-Calcolo in base a specifica configurazione spazio giunti, default -1

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode;

13.45. Esempio di Codice Movimento Sincrono Asse di Espansione UDP con Movimento Lineare 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')
 4# Imposta parametri comunicazione UDP e li carica
 5robot.ExtDevSetUDPComParam("192.168.58.88", 2021, 2, 100, 3, 100, 1, 100, 10)
 6robot.ExtDevLoadUDPDriver()
 7# Imposta parametri asse di espansione
 8robot.SetAxisDHParaConfig(4, 200, 200, 0, 0, 0, 0, 0, 0)
 9robot.SetRobotPosToAxis(1)
10robot.ExtAxisParamConfig(1, 0, 1, 100, -100, 10, 10, 12, 131072, 0, 1, 0, 0)
11# Abilitazione asse di espansione, home
12robot.ExtAxisServoOn(1, 0)
13robot.ExtAxisSetHoming(1, 0, 20, 3)
14# Calibrazione sistema coordinate asse di espansione
15pos = []  # Inserisci coordinate punto calibrazione
16robot.SetRefPointInExAxisEnd(pos)
17robot.PositionorSetRefPoint(1)  # Deve essere chiamato 4 volte per la calibrazione
18error,coord = robot.PositionorComputeECoordSys()
19robot.ExtAxisActiveECoordSys(1, 1, coord, 1)
20# Punto di partenza e arrivo movimento sincrono
21startdescPose = []  # Inserisci coordinate
22startjointPos = []  # Inserisci coordinate
23startexaxisPos = []  # Inserisci coordinate
24enddescPose = []  # Inserisci coordinate
25endjointPos = []  # Inserisci coordinate
26endexaxisPos = []  # Inserisci coordinate
27# Movimento al punto di partenza
28robot.ExtAxisMove(startexaxisPos, 20, -1)
29offdese = [0, 0, 0, 0, 0, 0]
30robot.MoveJ(joint_pos=startjointPos, tool= 1,user= 1,vel= 100,acc= 100,ovl= 100,exaxis_pos= startexaxisPos,blendT= 0)
31# Esegue movimento lineare sincrono
32robot.ExtAxisSyncMoveL(endjointPos, enddescPose, 1, 1, endexaxisPos, 100, 100, 100, 0, 0, offdese)
33robot.CloseRPC()

13.46. Movimento Sincrono Asse di Espansione UDP con Movimento Arco Robot

Nuovo nella versione python: SDK-v2.1.5

Prototipo

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

Descrizione

Movimento sincrono asse di espansione UDP con movimento arco robot

Parametri Obbligatori

  • desc_pos_p:Posa cartesiana punto percorso, unità [mm][°];

  • tool_p:Numero tool punto percorso, [0~14];

  • user_p:Numero pezzo punto percorso, [0~14];

  • exaxis_pos_p:Posizione asse esterno 1 ~ Posizione asse esterno 4 punto percorso default [0.0,0.0,0.0,0.0];

  • desc_pos_t:Posa cartesiana punto obiettivo, unità [mm][°];

  • tool_t:Numero tool, [0~14];

  • user_t:Numero pezzo, [0~14];

  • exaxis_pos_t:Posizione asse esterno 1 ~ Posizione asse esterno 4 punto obiettivo default [0.0,0.0,0.0,0.0];

Parametri Predefiniti

  • joint_pos_p:Posizione giunti obiettivo, unità [°] default valori iniziali [0.0,0.0,0.0,0.0,0.0,0.0], default chiama valore ritorno cinematica inversa;

  • joint_pos_t:Posizione giunti obiettivo, unità [°] default valori iniziali [0.0,0.0,0.0,0.0,0.0,0.0], default chiama valore ritorno cinematica inversa;

  • vel_p: Percentuale velocità punto percorso, [0~100] default 20.0;

  • acc_p: Percentuale accelerazione punto percorso, [0~100] non ancora disponibile, default 0.0 ;

  • offset_flag_p: Offset punto percorso [0]-Nessun offset, [1]-Offset nel sistema pezzo/base, [2]-Offset nel sistema tool default 0;

  • offset_pos_p: Offset posa punto percorso, unità [mm][°] default [0.0,0.0,0.0,0.0,0.0,0.0];

  • vel_t: Percentuale velocità punto obiettivo, [0~100] default 20.0;

  • acc_t: Percentuale accelerazione punto obiettivo, [0~100] non ancora disponibile default 0.0;

  • offset_flag_t: Offset punto obiettivo [0]-Nessun offset, [1]-Offset nel sistema pezzo/base, [2]-Offset nel sistema tool default 0;

  • offset_pos_t: Offset posa punto obiettivo, unità [mm][°] default [0.0,0.0,0.0,0.0,0.0,0.0];

  • ovl: Fattore scala velocità, [0~100] default 100.0;

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

  • config:Configurazione spazio giunti soluzione inversa, [-1]-Calcolo con riferimento alla posizione giunti corrente, [0~7]-Calcolo in base a specifica configurazione spazio giunti, default -1

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode;

13.47. Esempio di Codice Movimento Sincrono Asse di Espansione UDP con Movimento Arco 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')
 4# Imposta parametri comunicazione UDP e li carica
 5robot.ExtDevSetUDPComParam("192.168.58.88", 2021, 2, 100, 3, 100, 1, 100, 10)
 6robot.ExtDevLoadUDPDriver()
 7# Imposta parametri asse di espansione
 8robot.SetAxisDHParaConfig(4, 200, 200, 0, 0, 0, 0, 0, 0)
 9robot.SetRobotPosToAxis(1)
10robot.ExtAxisParamConfig(1, 0, 1, 100, -100, 10, 10, 12, 131072, 0, 1, 0, 0)
11# Abilitazione asse di espansione, home
12robot.ExtAxisServoOn(1, 0)
13robot.ExtAxisSetHoming(1, 0, 20, 3)
14# Calibrazione sistema coordinate asse di espansione
15pos = []  # Inserisci coordinate punto calibrazione
16robot.SetRefPointInExAxisEnd(pos)
17robot.PositionorSetRefPoint(1)  # Chiamato 4 volte per completare la calibrazione
18coord = []
19error,coord = robot.PositionorComputeECoordSys()
20robot.ExtAxisActiveECoordSys(1, 1, coord, 1)
21# Punto di partenza, intermedio e arrivo arco sincrono
22startdescPose = []# Inserisci coordinate
23startjointPos = []# Inserisci coordinate
24startexaxisPos =[]  # Inserisci coordinate asse di espansione
25middescPose = []# Inserisci punto intermedio
26midjointPos = []
27midexaxisPos =[]
28enddescPose = []
29endjointPos = []
30endexaxisPos =[]
31# Movimento al punto di partenza
32robot.ExtAxisMove(startexaxisPos, 20, -1)
33offdese = [0, 0, 0, 0, 0, 0]
34robot.MoveJ(joint_pos=startjointPos,tool= 1,user= 1,vel= 100,acc= 100,ovl= 100,exaxis_pos= startexaxisPos,blendT= 0,offset_flag= 0,offset_pos= offdese)
35# Inizia movimento arco sincrono
36robot.ExtAxisSyncMoveC(midjointPos,middescPose,1,1,midexaxisPos,
37                       endjointPos,enddescPose,1,1,endexaxisPos,
38                       100,100,0,offdese,
39                       100,100,0,offdese,
40                       100,0)
41robot.CloseRPC()

13.48. Impostazione DO di Espansione

Nuovo nella versione python: SDK-v2.0.4

Prototipo

SetAuxDO(DONum,bOpen,smooth,block)

Descrizione

Imposta DO di espansione

Parametri Obbligatori

  • DONum: Numero DO;

  • bOpen:Interruttore True-Aperto,False-Chiuso;

  • smooth:Smoothing True -Sì, False -No;

  • block:Bloccante True -Sì, False -No;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.49. Impostazione AO di Espansione

Nuovo nella versione python: SDK-v2.0.4

Prototipo

SetAuxAO(AONum,value,block)

Descrizione

Imposta AO di espansione

Parametri Obbligatori

  • AONum: Numero AO;

  • value:Valore analogico [0-4095];

  • block:Bloccante True -Sì, False -No;

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.50. Impostazione Tempo Filtro Ingresso DI di Espansione

Nuovo nella versione python: SDK-v2.0.4

Prototipo

SetAuxDIFilterTime(filterTime)

Descrizione

Imposta il tempo di filtro dell’ingresso DI di espansione

Parametri Obbligatori

  • filterTime: Tempo di filtro (ms);

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.51. Impostazione Tempo Filtro Ingresso AI di Espansione

Nuovo nella versione python: SDK-v2.0.4

Prototipo

SetAuxAIFilterTime(AINum,filterTime)

Descrizione

Imposta il tempo di filtro dell’ingresso AI di espansione

Parametri Obbligatori

  • AINum: Numero AI;

  • filterTime: Tempo di filtro (ms);

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.52. Attesa Ingresso DI di Espansione

Nuovo nella versione python: SDK-v2.0.4

Prototipo

WaitAuxDI(DINum,bOpen,time,errorAlarm)

Descrizione

Attesa ingresso DI di espansione

Parametri Obbligatori

  • DINum: Numero DI;

  • bOpen:Interruttore True-Aperto,False-Chiuso;

  • time:Tempo massimo attesa (ms);

  • errorAlarm:Continuare movimento True-Sì,False-No

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.53. Attesa Ingresso AI di Espansione

Nuovo nella versione python: SDK-v2.0.4

Prototipo

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

Descrizione

Attesa ingresso AI di espansione

Parametri Obbligatori

  • AINum: Numero AI;

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

  • value:Valore AI;

  • time:Tempo massimo attesa (ms);

  • errorAlarm:Continuare movimento True-Sì,False-No

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.54. Ottenimento Valore DI di Espansione

Nuovo nella versione python: SDK-v2.0.4

Prototipo

GetAuxDI(DINum,isNoBlock)

Descrizione

Ottiene il valore DI di espansione

Parametri Obbligatori

  • DINum: Numero DI;

  • isNoBlock:Bloccante True-Bloccante false-Non bloccante;

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode;

  • isOpen: 0-Chiuso; 1-Aperto;

13.55. Ottenimento Valore AI di Espansione

Nuovo nella versione python: SDK-v2.0.4

Prototipo

GetAuxAI(AINum,isNoBlock)

Descrizione

Ottiene il valore AI di espansione

Parametri Obbligatori

  • AINum: Numero AI;

  • isNoBlock:Bloccante True-Bloccante False-Non bloccante

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode;

  • value:Valore ingresso;

13.56. Esempio di Codice I/O di Espansione

 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')
 6for i in range(128):
 7    robot.SetAuxDO(i, True, False, True)
 8    time.sleep(0.1)
 9for i in range(128):
10    robot.SetAuxDO(i, False, False, True)
11    time.sleep(0.1)
12for i in range(409):
13    value1 = i * 10
14    value2 = 4095 - i * 10
15    robot.SetAuxAO(0, value1, True)
16    robot.SetAuxAO(1, value2, True)
17    robot.SetAuxAO(2, value1, True)
18    robot.SetAuxAO(3, value2, True)
19    time.sleep(0.01)
20robot.SetAuxDIFilterTime(10)
21robot.SetAuxAIFilterTime(0, 10)
22for i in range(20):
23    curValue = False
24    error, curValue = robot.GetAuxDI(i, False)  # Nota: se la libreria richiede passaggio per riferimento, qui va modificato
25    print(f"DI{i}   {curValue}")
26curValue = -1
27for i in range(4):
28    error, curValue = robot.GetAuxAI(i, True)  # Nota anche qui problema passaggio per riferimento
29    print(f"AI{i}   {curValue}")
30robot.WaitAuxDI(1, False, 1000, False)
31robot.WaitAuxAI(1, 1, 132, 1000, False)
32robot.CloseRPC()

13.57. Abilitazione Dispositivo Mobile

Nuovo nella versione python: SDK-v2.0.5

Prototipo

TractorEnable(enable)

Descrizione

Abilitazione dispositivo mobile

Parametri Obbligatori

  • enable:Stato abilitazione, 0-Disabilitato, 1-Abilitato

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.58. Home Dispositivo Mobile

Nuovo nella versione python: SDK-v2.0.5

Prototipo

TractorHoming()

Descrizione

Home dispositivo mobile

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.59. Movimento Lineare Dispositivo Mobile

Nuovo nella versione python: SDK-v2.0.5

Prototipo

TractorMoveL(distance, vel)

Descrizione

Movimento lineare dispositivo mobile

Parametri Obbligatori

  • distance:Distanza movimento lineare (mm)

  • vel:Percentuale velocità movimento lineare (0-100)

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.60. Movimento Arco Dispositivo Mobile

Nuovo nella versione python: SDK-v2.0.5

Prototipo

TractorMoveC(radio, angle, vel)

Descrizione

Movimento arco dispositivo mobile

Parametri Obbligatori

  • radio:Raggio movimento arco (mm)

  • angle:Angolo movimento arco (°)

  • vel:Percentuale velocità movimento arco (0-100)

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.61. Stop Movimento Dispositivo Mobile

Nuovo nella versione python: SDK-v2.0.5

Prototipo

ProgramStop()

Descrizione

Stop movimento dispositivo mobile

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.62. Esempio di Codice Dispositivo Mobile

 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.ExtDevSetUDPComParam("192.168.58.2", 2021, 2, 50, 5, 50, 1, 50, 10, 1)
 5robot.ExtDevLoadUDPDriver()
 6rtn = robot.ExtAxisServoOn(1, 1)
 7rtn = robot.ExtAxisServoOn(2, 1)
 8time.sleep(2)
 9robot.ExtAxisSetHoming(1, 0, 10, 2)
10time.sleep(2)
11rtn = robot.ExtAxisSetHoming(2, 0, 10, 2)
12time.sleep(4)
13robot.ExtAxisParamConfig(1, 0, 0, 50000, -50000, 1000, 1000, 6.280, 16384, 200, 0, 0, 0)
14robot.ExtAxisParamConfig(2, 0, 0, 50000, -50000, 1000, 1000, 6.280, 16384, 200, 0, 0, 0)
15robot.SetAxisDHParaConfig(5, 0, 0, 0, 0, 0, 0, 0, 0)
16robot.TractorEnable(False)
17time.sleep(2)
18robot.TractorEnable(True)
19time.sleep(2)
20robot.TractorHoming()
21time.sleep(2)
22robot.TractorMoveL(100, 2)
23time.sleep(5)
24robot.TractorStop()
25robot.TractorMoveL(-100, 20)
26time.sleep(5)
27robot.TractorMoveC(300, 90, 20)
28time.sleep(10)
29robot.TractorMoveC(300, -90, 20)
30time.sleep(1)
31robot.CloseRPC()

13.63. Registrazione Punto Sensore Laser

Nuovo nella versione python: SDK-v2.1.4

Prototipo

LaserRecordPoint(coordID)

Descrizione

Registrazione punto sensore laser

Parametri Obbligatori

  • coordID:Sistema coordinate sensore laser

Parametri Predefiniti

Nessuno

Valore di Ritorno

  • Codice errore Successo-0 Fallimento- errcode

  • joint:Posizione giunti punto rilevato sensore laser

  • desc:Posizione cartesiana punto rilevato sensore laser

  • exaxis:Posizione asse di espansione punto rilevato sensore laser

13.64. Esempio di Codice Registrazione Punto Sensore Laser

Nuovo nella versione python: SDK-v2.1.4

 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')
 4direction_point = [0, 0, 0]
 5rtn = robot.LaserTrackingSearchStart(2, direction_point, 10, 100, 10000, 2)
 6print(f"LaserTrackingSearchStart rtn is {rtn}")
 7robot.LaserTrackingSearchStop()
 8coord_id = 2
 9rtn, joint, desc, exaxis = robot.LaserRecordPoint(coord_id)
10print(f"rtn is {rtn}")
11print(f"desc_pos:{desc[0]},{desc[1]},{desc[2]},"
12      f"{desc[3]},{desc[4]},{desc[5]}")
13print(f"joint_pos:{joint[0]},{joint[1]},{joint[2]},{joint[3]},{joint[4]},{joint[5]}")
14print(f"exaxis pos is {exaxis[0]} {exaxis[1]} {exaxis[2]} {exaxis[3]}")
15off = [0] * 6
16robot.MoveJ(joint,tool=1,user=0,vel=100,acc=100,ovl=50,exaxis_pos=exaxis,blendT=-1,offset_flag=0,offset_pos=off)
17robot.CloseRPC()

13.65. Impostazione Strategia Movimento Sincrono Asse di Espansione con Robot

Nuovo nella versione python: SDK-v2.1.5

Prototipo

SetExAxisRobotPlan(strategy)

Descrizione

Imposta la strategia di movimento sincrono asse di espansione con robot

Parametri Obbligatori

  • strategy:Strategia;0-Con robot come principale;1-Asse di espansione e robot sincroni

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice errore Successo-0 Fallimento- errcode

13.66. Esempio di Codice Impostazione Strategia Movimento Sincrono Asse di Espansione con Robot

Nuovo nella versione python: SDK-v2.1.5

 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')
 4joint_pos1 = [-22.016, -49.217, 124.714, -161.100, -85.108, -0.333]
 5joint_pos2 = [-21.083, -46.613, 110.079, -147.796, -80.757, -0.330]
 6joint_pos3 = [-25.572, -60.090, 135.397, -163.889, -82.489, -0.345]
 7desc_pos1 = [2.637, -0.001, 30.673, 178.786, -4.134, 68.326]
 8desc_pos2 = [213.812, -1.440, 47.311, 177.410, 0.166, 68.946]
 9desc_pos3 = [444.342, -12.723, 82.470, -177.701, -1.325, 65.151]
10epos1 = [0.001, 0.000, 0.000, 0.000]
11epos2 = [299.977, 0.000, 0.000, 0.000]
12epos3 = [399.969, 0.000, 0.000, 0.000]
13offset_pos = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
14rtn = robot.SetExAxisRobotPlan(0)
15print(f"SetExAxisRobotPlan rtn is {rtn}")
16time.sleep(1)
17rtn = robot.ExtAxisSyncMoveL(desc_pos=desc_pos1,tool=1,user=0,vel=100,acc=100,ovl=100,blendR=-1,exaxis_pos=epos1,offset_flag=0,offset_pos=offset_pos)
18print(f"ExtAxisSyncMoveL 1 rtn is {rtn}")
19rtn = robot.ExtAxisSyncMoveL(desc_pos=desc_pos2,tool=1,user=0,vel=100,acc=100,ovl=100,blendR=-1,exaxis_pos=epos2,offset_flag=0,offset_pos=offset_pos)
20print(f"ExtAxisSyncMoveL 2 rtn is {rtn}")
21rtn = robot.ExtAxisSyncMoveL(desc_pos=desc_pos3,tool=1,user=0,vel=100,acc=100,ovl=100,blendR=-1,exaxis_pos=epos3,offset_flag=0,offset_pos=offset_pos)
22print(f"ExtAxisSyncMoveL 3 rtn is {rtn}")
23time.sleep(8)
24robot.CloseRPC()