4. Movimento del Robot

4.1. Jog (Movimento a scatti)

 1/**
 2* @brief Jog - Movimento a scatti
 3* @param [in] refType 0-Jog dei giunti, 2-Jog nel sistema di coordinate base, 4-Jog nel sistema di coordinate dello strumento, 8-Jog nel sistema di coordinate del pezzo
 4* @param [in] nb 1-Giunto1 (o asse x), 2-Giunto2 (o asse y), 3-Giunto3 (o asse z), 4-Giunto4 (o rotazione attorno all'asse x), 5-Giunto5 (o rotazione attorno all'asse y), 6-Giunto6 (o rotazione attorno all'asse z)
 5* @param [in] dir 0-Direzione negativa, 1-Direzione positiva
 6* @param [in] vel Percentuale di velocità, [0~100]
 7* @param [in] acc Percentuale di accelerazione, [0~100]
 8* @param [in] max_dis Angolo massimo per singolo movimento a scatti, unità [°] o distanza, unità [mm]
 9* @return Codice di errore
10*/
11int StartJOG(int refType, int nb, int dir, double vel, double acc, double max_dis);

4.2. Arresto decelerato del movimento Jog

1/**
2* @brief  Arresto decelerato del movimento Jog
3* @param  [in]  stopType  1-Arresto Jog dei giunti, 3-Arresto Jog nel sistema di coordinate base, 5-Arresto Jog nel sistema di coordinate dello strumento, 9-Arresto Jog nel sistema di coordinate del pezzo
4* @return  Codice di errore
5*/
6int StopJOG(int stopType);

4.3. Arresto immediato del movimento Jog

1/**
2* @brief Arresto immediato del movimento Jog
3* @return  Codice di errore
4*/
5int ImmStopJOG();

4.4. Esempio di codice per il controllo Jog del robot

 1public static  int TestJOG(Robot robot)
 2{
 3    for (int i = 0; i < 6; i++)
 4    {
 5        robot.StartJOG(0, i + 1, 0, 20.0, 20.0, 30.0);
 6        robot.Sleep(1000);
 7        robot.ImmStopJOG();
 8        robot.Sleep(1000);
 9    }
10
11    for (int i = 0; i < 6; i++)
12    {
13        robot.StartJOG(2, i + 1, 0, 20.0, 20.0, 30.0);
14        robot.Sleep(1000);
15        robot.ImmStopJOG();
16        robot.Sleep(1000);
17    }
18
19    for (int i = 0; i < 6; i++)
20    {
21        robot.StartJOG(4, i + 1, 0, 20.0, 20.0, 30.0);
22        robot.Sleep(1000);
23        robot.StopJOG(5);
24        robot.Sleep(1000);
25    }
26
27    for (int i = 0; i < 6; i++)
28    {
29        robot.StartJOG(8, i + 1, 0, 20.0, 20.0, 30.0);
30        robot.Sleep(1000);
31        robot.StopJOG(9);
32        robot.Sleep(1000);
33    }
34    return 0;
35}

4.5. Movimento nello spazio dei giunti

 1/**
 2* @brief  Movimento nello spazio dei giunti
 3* @param  [in] joint_pos  Posizione giunto target, unità deg
 4* @param  [in] desc_pos  Posizione cartesiana target
 5* @param  [in] tool  Numero del sistema di coordinate dello strumento, intervallo [0~14]
 6* @param  [in] user  Numero del sistema di coordinate del pezzo, intervallo [0~14]
 7* @param  [in] vel  Percentuale di velocità, intervallo [0~100]
 8* @param  [in] acc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 9* @param  [in] ovl  Fattore di scala della velocità, intervallo [0~100]
10* @param  [in] epos  Posizione dell'asse esteso, unità mm
11* @param  [in] blendT [-1.0]-Movimento fino alla posizione (bloccante), [0~500.0]-Tempo di smoothing (non bloccante), unità ms
12* @param  [in] offset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
13* @param  [in] offset_pos  Quantità di offset della posa
14* @return  Codice di errore
15*/
16int MoveJ(JointPos joint_pos, DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, ExaxisPos epos, double blendT, int offset_flag, DescPose offset_pos);

4.6. Movimento nello spazio dei giunti (calcolo cinematico diretto automatico)

Nuovo nella versione Java: SDK-v1.0.8-3.8.5

 1/**
 2* @brief  Movimento nello spazio dei giunti (calcolo cinematico diretto automatico)
 3* @param  [in] joint_pos  Posizione giunto target, unità deg
 4* @param  [in] tool  Numero del sistema di coordinate dello strumento, intervallo [0~14]
 5* @param  [in] user  Numero del sistema di coordinate del pezzo, intervallo [0~14]
 6* @param  [in] vel  Percentuale di velocità, intervallo [0~100]
 7* @param  [in] acc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 8* @param  [in] ovl  Fattore di scala della velocità, intervallo [0~100]
 9* @param  [in] epos  Posizione dell'asse esteso, unità mm
10* @param  [in] blendT [-1.0]-Movimento fino alla posizione (bloccante), [0~500.0]-Tempo di smoothing (non bloccante), unità ms
11* @param  [in] offset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
12* @param  [in] offset_pos  Quantità di offset della posa
13* @return Codice di errore
14*/
15int MoveJ(JointPos joint_pos, int tool, int user, double vel, double acc, double ovl, ExaxisPos epos, double blendT, int offset_flag, DescPose offset_pos)

4.7. Movimento lineare nello spazio cartesiano

Cambiato nella versione Java: SDK-v1.0.5-3.8.2

 1/**
 2* @brief  Movimento Lineare nello Spazio Cartesiano (Funzione Sovraccarica 1 con blendMode)
 3* @param  joint_pos  Posizioni target dei giunti, unità: deg
 4* @param  desc_pos   Posa target cartesiana
 5* @param  tool  Indice del sistema di coordinate utensile, intervallo [1~15]
 6* @param  user  Indice del sistema di coordinate pezzo/utente, intervallo [1~15]
 7* @param  vel  Percentuale di velocità, intervallo [0~100]
 8* @param  acc  Percentuale di accelerazione, intervallo [0~100], attualmente non disponibile
 9* @param  ovl  Fattore di scala velocità [0~100] / Velocità fisica (mm/s)
10* @param  blendR  [-1.0]-Blocca fino al completamento del movimento (bloccante), [0~1000.0]-Raggio di transizione (non bloccante), unità: mm
11* @param  blendMode  Metodo di transizione; 0-Transizione tangente; 1-Transizione a spigolo
12* @param  epos  Posizione dell'asse esteso, unità: mm
13* @param  search  0-Nessuna ricerca filo, 1-Ricerca filo
14* @param  offset_flag  0-Nessuno scostamento, 1-Scostamento nel sistema di coordinate base/pezzo, 2-Scostamento nel sistema di coordinate utensile
15* @param  offset_pos  Valore di scostamento della posa
16* @param  oacc  Fattore di scala accelerazione [0-100] / Accelerazione fisica (mm/s²)
17* @param  velAccParamMode  Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) e accelerazione (mm/s²)
18* @param  overSpeedStrategy  Strategia di gestione sovravelocità; 1-Standard; 2-Ferma con errore in caso di sovravelocità; 3-Riduzione adattiva della velocità, default 0
19* @param  speedPercent  Percentuale di soglia di riduzione velocità consentita [0-100], default 10%
20* @return  Codice di errore
21*/
22public int MoveL(JointPos joint_pos, DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendR, int blendMode, ExaxisPos epos, int search, int offset_flag, DescPose offset_pos, double oacc,int velAccParamMode, int overSpeedStrategy, int speedPercent)

4.8. Movimento lineare nello spazio cartesiano (calcolo cinematico inverso automatico)

Nuovo nella versione Java: SDK-v1.0.8-3.8.5

 1/**
 2* @brief  Movimento lineare nello spazio cartesiano (calcolo cinematico inverso automatico)
 3* @param [in] desc_pos  Posizione cartesiana target
 4* @param [in] tool  Numero del sistema di coordinate dello strumento, intervallo [1~15]
 5* @param [in] user  Numero del sistema di coordinate del pezzo, intervallo [1~15]
 6* @param [in] vel  Percentuale di velocità, intervallo [0~100]
 7* @param [in] acc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 8* @param [in] ovl  Fattore di scala della velocità, intervallo [0~100]
 9* @param [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
10* @param [in] blendMode Modalità di transizione; 0-Transizione tangente; 1-Transizione a spigolo
11* @param [in] epos  Posizione dell'asse esteso, unità mm
12* @param [in] search  0-Nessuna ricerca del filo, 1-Ricerca del filo
13* @param [in] offset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
14* @param [in] offset_pos  Quantità di offset della posa
15* @param [in] config  Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
16* @param [in] overSpeedStrategy  Strategia di gestione della sovravelocità, 1-Standard; 2-Arresto con errore in caso di sovravelocità; 3-Decelerazione adattativa, predefinito 0
17* @param [in] speedPercent  Soglia percentuale consentita per la decelerazione [0-100], predefinito 10%
18* @return  Codice di errore
19*/
20int MoveL(DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendR, int blendMode, ExaxisPos epos, int search, int offset_flag, DescPose offset_pos, int config, int overSpeedStrategy, int speedPercent)

4.9. Movimento lineare nello spazio cartesiano (aggiunto parametro velAccParamMode per modalità parametri velocità/accelerazione)

Nuovo nella versione Java: SDK-v1.0.8-3.8.5

 1/**
 2* @brief  Movimento lineare nello spazio cartesiano (aggiunto parametro velAccParamMode per modalità parametri velocità/accelerazione)
 3* @param  [in] joint_pos  Posizione giunto target, unità deg
 4* @param  [in] desc_pos  Posizione cartesiana target
 5* @param  [in] tool  Numero del sistema di coordinate dello strumento, intervallo [1~15]
 6* @param  [in] user  Numero del sistema di coordinate del pezzo, intervallo [1~15]
 7* @param  [in] vel  Percentuale di velocità, intervallo [0~100]
 8* @param  [in] acc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 9* @param  [in] ovl  Fattore di scala della velocità, intervallo [0~100]
10* @param  [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
11* @param  [in] epos  Posizione dell'asse esteso, unità mm
12* @param  [in] search  0-Nessuna ricerca del filo, 1-Ricerca del filo
13* @param  [in] offset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
14* @param  [in] offset_pos  Quantità di offset della posa
15* @param  [in] velAccParamMode  Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) accelerazione (mm/s2)
16* @param  [in] overSpeedStrategy  Strategia di gestione della sovravelocità, 1-Standard; 2-Arresto con errore in caso di sovravelocità; 3-Decelerazione adattativa, predefinito 0
17* @param  [in] speedPercent  Soglia percentuale consentita per la decelerazione [0-100], predefinito 10%
18* @return  Codice di errore
19*/
20public int MoveL(JointPos joint_pos, DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendR, ExaxisPos epos, int search, int offset_flag, DescPose offset_pos, int velAccParamMode, int overSpeedStrategy, int speedPercent)

4.10. Movimento lineare nello spazio cartesiano (funzione sovraccaricata 1, aggiunto blendMode)

Nuovo nella versione Java: SDK-v1.0.8-3.8.5

 1/**
 2* @brief  Movimento lineare nello spazio cartesiano (funzione sovraccaricata 1, aggiunto blendMode)
 3* @param  [in] joint_pos  Posizione giunto target, unità deg
 4* @param  [in] desc_pos  Posizione cartesiana target
 5* @param  [in] tool  Numero del sistema di coordinate dello strumento, intervallo [1~15]
 6* @param  [in] user  Numero del sistema di coordinate del pezzo, intervallo [1~15]
 7* @param  [in] vel  Percentuale di velocità, intervallo [0~100]
 8* @param  [in] acc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 9* @param  [in] ovl  Fattore di scala della velocità, intervallo [0~100]
10* @param  [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
11* @param  [in] blendMode Modalità di transizione; 0-Transizione tangente; 1-Transizione a spigolo
12* @param  [in] epos  Posizione dell'asse esteso, unità mm
13* @param  [in] search  0-Nessuna ricerca del filo, 1-Ricerca del filo
14* @param  [in] offset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
15* @param  [in] offset_pos  Quantità di offset della posa
16* @param  [in] velAccParamMode  Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) accelerazione (mm/s2)
17* @param  [in] overSpeedStrategy  Strategia di gestione della sovravelocità, 1-Standard; 2-Arresto con errore in caso di sovravelocità; 3-Decelerazione adattativa, predefinito 0
18* @param  [in] speedPercent  Soglia percentuale consentita per la decelerazione [0-100], predefinito 10%
19* @return  Codice di errore
20*/
21public int MoveL(JointPos joint_pos, DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendR, int blendMode, ExaxisPos epos, int search, int offset_flag, DescPose offset_pos, int velAccParamMode, int overSpeedStrategy, int speedPercent)

4.11. Movimento lineare nello spazio cartesiano (funzione sovraccaricata 2, non richiede posizione giunto in input)

Nuovo nella versione Java: SDK-v1.0.8-3.8.5

 1/**
 2* @brief  Movimento lineare nello spazio cartesiano (funzione sovraccaricata 2, non richiede posizione giunto in input)
 3* @param  [in] desc_pos  Posizione cartesiana target
 4* @param  [in] tool  Numero del sistema di coordinate dello strumento, intervallo [1~15]
 5* @param  [in] user  Numero del sistema di coordinate del pezzo, intervallo [1~15]
 6* @param  [in] vel  Percentuale di velocità, intervallo [0~100]
 7* @param  [in] acc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 8* @param  [in] ovl  Fattore di scala della velocità, intervallo [0~100]
 9* @param  [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
10* @param  [in] blendMode Modalità di transizione; 0-Transizione tangente; 1-Transizione a spigolo
11* @param  [in] epos  Posizione dell'asse esteso, unità mm
12* @param  [in] search  0-Nessuna ricerca del filo, 1-Ricerca del filo
13* @param  [in] offset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
14* @param  [in] offset_pos  Quantità di offset della posa
15* @param  [in] config  Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
16* @param  [in] velAccParamMode  Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) accelerazione (mm/s2)
17* @param  [in] overSpeedStrategy  Strategia di gestione della sovravelocità, 1-Standard; 2-Arresto con errore in caso di sovravelocità; 3-Decelerazione adattativa, predefinito 0
18* @param  [in] speedPercent  Soglia percentuale consentita per la decelerazione [0-100], predefinito 10%
19* @return  Codice di errore
20*/
21public int MoveL(DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendR, int blendMode, ExaxisPos epos, int search, int offset_flag, DescPose offset_pos, int config, int velAccParamMode, int overSpeedStrategy, int speedPercent)

4.12. Movimento circolare nello spazio cartesiano

 1/**
 2* @brief  Movimento ad Arco Circolare nello Spazio Cartesiano
 3* @param  joint_pos_p  Posizioni dei giunti del punto di percorso, unità: deg
 4* @param  desc_pos_p   Posa cartesiana del punto di percorso
 5* @param  ptool  Indice del sistema di coordinate utensile, intervallo [1~15]
 6* @param  puser  Indice del sistema di coordinate pezzo/utente, intervallo [1~15]
 7* @param  pvel  Percentuale di velocità, intervallo [0~100]
 8* @param  pacc  Percentuale di accelerazione, intervallo [0~100], attualmente non disponibile
 9* @param  epos_p  Posizione dell'asse esteso, unità: mm
10* @param  poffset_flag  0-Nessuno scostamento, 1-Scostamento nel sistema di coordinate base/pezzo, 2-Scostamento nel sistema di coordinate utensile
11* @param  offset_pos_p  Valore di scostamento della posa
12* @param  joint_pos_t  Posizioni dei giunti del punto target, unità: deg
13* @param  desc_pos_t   Posa cartesiana del punto target
14* @param  ttool  Indice del sistema di coordinate utensile, intervallo [1~15]
15* @param  tuser  Indice del sistema di coordinate pezzo/utente, intervallo [1~15]
16* @param  tvel  Percentuale di velocità, intervallo [0~100]
17* @param  tacc  Percentuale di accelerazione, intervallo [0~100], attualmente non disponibile
18* @param  epos_t  Posizione dell'asse esteso, unità: mm
19* @param  toffset_flag  0-Nessuno scostamento, 1-Scostamento nel sistema di coordinate base/pezzo, 2-Scostamento nel sistema di coordinate utensile
20* @param  offset_pos_t  Valore di scostamento della posa
21* @param  ovl  Fattore di scala velocità [0~100] / Velocità fisica (mm/s)
22* @param  blendR [-1.0]-Blocca fino al completamento del movimento (bloccante), [0~1000.0]-Raggio di transizione (non bloccante), unità: mm
23* @param  oacc Fattore di scala accelerazione [0-100] / Accelerazione fisica (mm/s²)
24* @param  velAccParamMode Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) e accelerazione (mm/s²)
25* @return  Codice di errore
26*/
27public int MoveC(JointPos joint_pos_p, DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, int poffset_flag, DescPose offset_pos_p, JointPos joint_pos_t, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, int toffset_flag, DescPose offset_pos_t, double ovl, double blendR, double oacc, int velAccParamMode)

4.13. Movimento circolare nello spazio cartesiano (calcolo cinematico inverso automatico)

Nuovo nella versione Java: SDK-v1.0.8-3.8.5

 1/**
 2* @brief  Movimento circolare nello spazio cartesiano (calcolo cinematico inverso automatico)
 3* @param [in] desc_pos_p  Posa cartesiana del punto di percorso
 4* @param [in] ptool  Numero del sistema di coordinate dello strumento, intervallo [1~15]
 5* @param [in] puser  Numero del sistema di coordinate del pezzo, intervallo [1~15]
 6* @param [in] pvel  Percentuale di velocità, intervallo [0~100]
 7* @param [in] pacc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 8* @param [in] epos_p  Posizione dell'asse esteso, unità mm
 9* @param [in] poffset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
10* @param [in] offset_pos_p  Quantità di offset della posa
11* @param [in] desc_pos_t  Posa cartesiana del punto target
12* @param [in] ttool  Numero del sistema di coordinate dello strumento, intervallo [1~15]
13* @param [in] tuser  Numero del sistema di coordinate del pezzo, intervallo [1~15]
14* @param [in] tvel  Percentuale di velocità, intervallo [0~100]
15* @param [in] tacc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
16* @param [in] epos_t  Posizione dell'asse esteso, unità mm
17* @param [in] toffset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
18* @param [in] offset_pos_t  Quantità di offset della posa
19* @param [in] ovl  Fattore di scala della velocità, intervallo [0~100]
20* @param [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
21* @param [in] config  Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
22* @return  Codice di errore
23*/
24int MoveC(DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, int poffset_flag, DescPose offset_pos_p, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, int toffset_flag, DescPose offset_pos_t, double ovl, double blendR, int config)

4.14. Movimento circolare nello spazio cartesiano (aggiunto parametro velAccParamMode per modalità parametri velocità/accelerazione)

Nuovo nella versione Java: SDK-v1.0.8-3.8.5

 1/**
 2* @brief  Movimento circolare nello spazio cartesiano (aggiunto parametro velAccParamMode per modalità parametri velocità/accelerazione)
 3* @param  [in] joint_pos_p  Posizione giunto del punto di percorso, unità deg
 4* @param  [in] desc_pos_p  Posa cartesiana del punto di percorso
 5* @param  [in] ptool  Numero del sistema di coordinate dello strumento, intervallo [1~15]
 6* @param  [in] puser  Numero del sistema di coordinate del pezzo, intervallo [1~15]
 7* @param  [in] pvel  Percentuale di velocità, intervallo [0~100]
 8* @param  [in] pacc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 9* @param  [in] epos_p  Posizione dell'asse esteso, unità mm
10* @param  [in] poffset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
11* @param  [in] offset_pos_p  Quantità di offset della posa
12* @param  [in] joint_pos_t  Posizione giunto del punto target, unità deg
13* @param  [in] desc_pos_t  Posa cartesiana del punto target
14* @param  [in] ttool  Numero del sistema di coordinate dello strumento, intervallo [1~15]
15* @param  [in] tuser  Numero del sistema di coordinate del pezzo, intervallo [1~15]
16* @param  [in] tvel  Percentuale di velocità, intervallo [0~100]
17* @param  [in] tacc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
18* @param  [in] epos_t  Posizione dell'asse esteso, unità mm
19* @param  [in] toffset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
20* @param  [in] offset_pos_t  Quantità di offset della posa
21* @param  [in] ovl  Fattore di scala della velocità, intervallo [0~100]
22* @param  [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
23* @param  [in] velAccParamMode  Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) accelerazione (mm/s2)
24* @return  Codice di errore
25*/
26public int MoveC(JointPos joint_pos_p, DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, int poffset_flag, DescPose offset_pos_p, JointPos joint_pos_t, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, int toffset_flag, DescPose offset_pos_t, double ovl, double blendR, int velAccParamMode)

4.15. Movimento circolare nello spazio cartesiano (funzione sovraccaricata 1, non richiede posizione giunto in input)

Nuovo nella versione Java: SDK-v1.0.8-3.8.5

 1/**
 2* @brief  Movimento circolare nello spazio cartesiano (funzione sovraccaricata 1, non richiede posizione giunto in input)
 3* @param  [in] desc_pos_p  Posa cartesiana del punto di percorso
 4* @param  [in] ptool  Numero del sistema di coordinate dello strumento, intervallo [1~15]
 5* @param  [in] puser  Numero del sistema di coordinate del pezzo, intervallo [1~15]
 6* @param  [in] pvel  Percentuale di velocità, intervallo [0~100]
 7* @param  [in] pacc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 8* @param  [in] epos_p  Posizione dell'asse esteso, unità mm
 9* @param  [in] poffset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
10* @param  [in] offset_pos_p  Quantità di offset della posa
11* @param  [in] desc_pos_t  Posa cartesiana del punto target
12* @param  [in] ttool  Numero del sistema di coordinate dello strumento, intervallo [1~15]
13* @param  [in] tuser  Numero del sistema di coordinate del pezzo, intervallo [1~15]
14* @param  [in] tvel  Percentuale di velocità, intervallo [0~100]
15* @param  [in] tacc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
16* @param  [in] epos_t  Posizione dell'asse esteso, unità mm
17* @param  [in] toffset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
18* @param  [in] offset_pos_t  Quantità di offset della posa
19* @param  [in] ovl  Fattore di scala della velocità, intervallo [0~100]
20* @param  [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
21* @param  [in] config  Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
22* @param  [in] velAccParamMode  Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) accelerazione (mm/s2)
23* @return  Codice di errore
24*/
25public int MoveC(DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, int poffset_flag, DescPose offset_pos_p, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, int toffset_flag, DescPose offset_pos_t, double ovl, double blendR, int config, int velAccParamMode)

4.16. Movimento circolare completo nello spazio cartesiano

Cambiato nella versione Java: SDK-v1.0.6-3.8.3

 1/**
 2* @brief  Movimento Circolare Completo nello Spazio Cartesiano
 3* @param  joint_pos_p  Posizioni dei giunti del punto di percorso 1, unità: deg
 4* @param  desc_pos_p   Posa cartesiana del punto di percorso 1
 5* @param  ptool  Indice del sistema di coordinate utensile, intervallo [1~15]
 6* @param  puser  Indice del sistema di coordinate pezzo/utente, intervallo [1~15]
 7* @param  pvel  Percentuale di velocità, intervallo [0~100]
 8* @param  pacc  Percentuale di accelerazione, intervallo [0~100], attualmente non disponibile
 9* @param  epos_p  Posizione dell'asse esteso, unità: mm
10* @param  joint_pos_t  Posizioni dei giunti del punto di percorso 2, unità: deg
11* @param  desc_pos_t   Posa cartesiana del punto di percorso 2
12* @param  ttool  Indice del sistema di coordinate utensile, intervallo [1~15]
13* @param  tuser  Indice del sistema di coordinate pezzo/utente, intervallo [1~15]
14* @param  tvel  Percentuale di velocità, intervallo [0~100]
15* @param  tacc  Percentuale di accelerazione, intervallo [0~100], attualmente non disponibile
16* @param  epos_t  Posizione dell'asse esteso, unità: mm
17* @param  ovl  Fattore di scala velocità [0~100] / Velocità fisica (mm/s)
18* @param  offset_flag  0-Nessuno scostamento, 1-Scostamento nel sistema di coordinate base/pezzo, 2-Scostamento nel sistema di coordinate utensile
19* @param  offset_pos  Valore di scostamento della posa
20* @param  oacc Fattore di scala accelerazione [0-100] / Accelerazione fisica (mm/s²)
21* @param  blendR -1: Bloccante; 0~1000: Raggio di transizione
22* @param  velAccParamMode Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) e accelerazione (mm/s²)
23* @return  Codice di errore
24*/
25public int Circle(JointPos joint_pos_p, DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, JointPos joint_pos_t, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, double ovl, int offset_flag, DescPose offset_pos, double oacc, double blendR, int velAccParamMode)

4.17. Movimento circolare completo nello spazio cartesiano (calcolo cinematico inverso automatico)

Nuovo nella versione Java: SDK-v1.0.8-3.8.5

 1/**
 2 * @brief  Movimento circolare completo nello spazio cartesiano (calcolo cinematico inverso automatico)
 3 * @param  [in] desc_pos_p  Posa cartesiana del punto di percorso 1
 4 * @param  [in] ptool  Numero del sistema di coordinate dello strumento, intervallo [0~14]
 5 * @param  [in] puser  Numero del sistema di coordinate del pezzo, intervallo [0~14]
 6 * @param  [in] pvel  Percentuale di velocità, intervallo [0~100]
 7 * @param  [in] pacc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 8 * @param  [in] epos_p  Posizione dell'asse esteso, unità mm
 9 * @param  [in] desc_pos_t  Posa cartesiana del punto di percorso 2
10 * @param  [in] ttool  Numero del sistema di coordinate dello strumento, intervallo [0~14]
11 * @param  [in] tuser  Numero del sistema di coordinate del pezzo, intervallo [0~14]
12 * @param  [in] tvel  Percentuale di velocità, intervallo [0~100]
13 * @param  [in] tacc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
14 * @param  [in] epos_t  Posizione dell'asse esteso, unità mm
15 * @param  [in] ovl  Fattore di scala della velocità, intervallo [0~100]
16 * @param  [in] offset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
17 * @param  [in] offset_pos  Quantità di offset della posa
18 * @param  [in] oacc  Percentuale di accelerazione
19 * @param  [in] blendR -1: Bloccante; 0~1000: Raggio di smoothing
20 * @param  [in] config  Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
21 * @return  Codice di errore
22 */
23int Circle(DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, double ovl, int offset_flag, DescPose offset_pos, double oacc, double blendR,int config)

4.18. Movimento circolare completo nello spazio cartesiano (aggiunto parametro velAccParamMode per modalità parametri velocità/accelerazione)

Nuovo nella versione Java: SDK-v1.0.8-3.8.5

 1/**
 2* @brief  Movimento circolare completo nello spazio cartesiano (aggiunto parametro velAccParamMode per modalità parametri velocità/accelerazione)
 3* @param  [in] joint_pos_p  Posizione giunto del punto di percorso 1, unità deg
 4* @param  [in] desc_pos_p  Posa cartesiana del punto di percorso 1
 5* @param  [in] ptool  Numero del sistema di coordinate dello strumento, intervallo [1~15]
 6* @param  [in] puser  Numero del sistema di coordinate del pezzo, intervallo [1~15]
 7* @param  [in] pvel  Percentuale di velocità, intervallo [0~100]
 8* @param  [in] pacc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 9* @param  [in] epos_p  Posizione dell'asse esteso, unità mm
10* @param  [in] joint_pos_t  Posizione giunto del punto di percorso 2, unità deg
11* @param  [in] desc_pos_t  Posa cartesiana del punto di percorso 2
12* @param  [in] ttool  Numero del sistema di coordinate dello strumento, intervallo [1~15]
13* @param  [in] tuser  Numero del sistema di coordinate del pezzo, intervallo [1~15]
14* @param  [in] tvel  Percentuale di velocità, intervallo [0~100]
15* @param  [in] tacc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
16* @param  [in] epos_t  Posizione dell'asse esteso, unità mm
17* @param  [in] ovl  Fattore di scala della velocità, intervallo [0~100]
18* @param  [in] offset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
19* @param  [in] offset_pos  Quantità di offset della posa
20* @param  [in] oacc  Percentuale di accelerazione
21* @param  [in] blendR -1: Bloccante; 0~1000: Raggio di smoothing
22* @param  [in] velAccParamMode  Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) accelerazione (mm/s2)
23* @return  Codice di errore
24*/
25public int Circle(JointPos joint_pos_p, DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, JointPos joint_pos_t, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, double ovl, int offset_flag, DescPose offset_pos, double oacc, double blendR, int velAccParamMode)

4.19. Movimento circolare completo nello spazio cartesiano (funzione sovraccaricata 1, non richiede posizione giunto in input)

Nuovo nella versione Java: SDK-v1.0.8-3.8.5

 1/**
 2* @brief  Movimento circolare completo nello spazio cartesiano (funzione sovraccaricata 1, non richiede posizione giunto in input)
 3* @param  [in] desc_pos_p  Posa cartesiana del punto di percorso 1
 4* @param  [in] ptool  Numero del sistema di coordinate dello strumento, intervallo [0~14]
 5* @param  [in] puser  Numero del sistema di coordinate del pezzo, intervallo [0~14]
 6* @param  [in] pvel  Percentuale di velocità, intervallo [0~100]
 7* @param  [in] pacc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 8* @param  [in] epos_p  Posizione dell'asse esteso, unità mm
 9* @param  [in] desc_pos_t  Posa cartesiana del punto di percorso 2
10* @param  [in] ttool  Numero del sistema di coordinate dello strumento, intervallo [0~14]
11* @param  [in] tuser  Numero del sistema di coordinate del pezzo, intervallo [0~14]
12* @param  [in] tvel  Percentuale di velocità, intervallo [0~100]
13* @param  [in] tacc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
14* @param  [in] epos_t  Posizione dell'asse esteso, unità mm
15* @param  [in] ovl  Fattore di scala della velocità, intervallo [0~100]
16* @param  [in] offset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
17* @param  [in] offset_pos  Quantità di offset della posa
18* @param  [in] oacc  Percentuale di accelerazione
19* @param  [in] blendR -1: Bloccante; 0~1000: Raggio di smoothing
20* @param  [in] config  Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
21* @param  [in] velAccParamMode  Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) accelerazione (mm/s2)
22* @return  Codice di errore
23*/
24public int Circle(DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, double ovl, int offset_flag, DescPose offset_pos, double oacc, double blendR, int config, int velAccParamMode)

4.20. Movimento punto a punto nello spazio cartesiano

 1/**
 2* @brief Movimento punto a punto nello spazio cartesiano
 3* @param [in] desc_pos  Posa cartesiana target o incremento di posa
 4* @param [in] tool  Numero del sistema di coordinate dello strumento, intervallo [0~14]
 5* @param [in] user  Numero del sistema di coordinate del pezzo, intervallo [0~14]
 6* @param [in] vel  Percentuale di velocità, intervallo [0~100]
 7* @param [in] acc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 8* @param [in] ovl  Fattore di scala della velocità, intervallo [0~100]
 9* @param [in] blendT [-1.0]-Movimento fino alla posizione (bloccante), [0~500.0]-Tempo di smoothing (non bloccante), unità ms
10* @param [in] config  Configurazione dello spazio dei giunti, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Calcolo di riferimento a una specifica configurazione dello spazio dei giunti, predefinito -1
11* @return Codice di errore
12*/
13int MoveCart(DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendT, int config);

4.21. Esempio di codice per le istruzioni di movimento di base del robot

 1public static int TestMove(Robot robot)
 2{
 3    int rtn=-1;
 4    JointPos j1=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
 5    JointPos j2=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
 6    JointPos j3=new JointPos(-29.777, -84.536, 109.275, -114.075, -86.655, 74.257);
 7    JointPos j4=new JointPos(-31.154, -95.317, 94.276, -88.079, -89.740, 74.256);
 8    DescPose desc_pos1=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
 9    DescPose desc_pos2=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
10    DescPose desc_pos3=new DescPose(-487.434, 154.362, 308.576, 176.600, 0.268, -14.061);
11    DescPose desc_pos4=new DescPose(-443.165, 147.881, 480.951, 179.511, -0.775, -15.409);
12    DescPose offset_pos=new DescPose(0, 0, 0, 0, 0, 0);
13    ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
14    int tool = 0;
15    int user = 0;
16    double vel = 100.0;
17    double acc = 100.0;
18    double ovl = 100.0;
19    double oacc = 100.0;
20    double blendT = 0.0;
21    double blendR = 0.0;
22    int flag = 0;
23    int search = 0;
24    int blendMode = 0;
25    int velAccMode = 0;
26    robot.SetSpeed(20);
27    rtn = robot.MoveJ(j1, desc_pos1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
28    System.out.printf("movej errcode:%d\n", rtn);
29    rtn = robot.MoveL(j2, desc_pos2, tool, user, vel, acc, ovl, blendR, blendMode, epos, search, flag, offset_pos, oacc, velAccMode,0,10);
30    System.out.printf("movel errcode:%d\n", rtn);
31    rtn = robot.MoveC(j3, desc_pos3, tool, user, vel, acc, epos, flag, offset_pos, j4, desc_pos4, tool, user, vel, acc, epos, flag, offset_pos, ovl, blendR, oacc, velAccMode);
32    System.out.printf("movec errcode:%d\n", rtn);
33    rtn = robot.MoveJ(j2, desc_pos2, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
34    System.out.printf("movej errcode:%d\n", rtn);
35    rtn = robot.Circle(j3, desc_pos3, tool, user, vel, acc, epos, j1, desc_pos1, tool, user, vel, acc, epos, ovl, flag, offset_pos, oacc, -1, velAccMode);
36    System.out.printf("circle errcode:%d\n", rtn);
37    rtn = robot.MoveCart(desc_pos4, tool, user, vel, acc, ovl, blendT, -1);
38    System.out.printf("MoveCart errcode:%d\n", rtn);
39    rtn = robot.MoveJ(j1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
40    System.out.printf("movej errcode:%d\n", rtn);
41    rtn = robot.MoveL(desc_pos2, tool, user, vel, acc, ovl, blendR, blendMode, epos, search, flag, offset_pos, -1, velAccMode,0,10);
42    System.out.printf("movel errcode:%d\n", rtn);
43    rtn = robot.MoveC(desc_pos3, tool, user, vel, acc, epos, flag, offset_pos, desc_pos4, tool, user, vel, acc, epos, flag, offset_pos, ovl, blendR, -1, velAccMode);
44    System.out.printf("movec errcode:%d\n", rtn);
45    rtn = robot.MoveJ(j2, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
46    System.out.printf("movej errcode:%d\n", rtn);
47    rtn = robot.Circle(desc_pos3, tool, user, vel, acc, epos, desc_pos1, tool, user, vel, acc, epos, ovl, flag, offset_pos, oacc, blendR, -1, velAccMode);
48    System.out.printf("circle errcode:%d\n", rtn);
49    return 0;
50}

4.22. Movimento a spirale nello spazio cartesiano

 1/**
 2* @brief Movimento a spirale nello spazio cartesiano
 3* @param [in] joint_pos  Posizione giunto target, unità deg
 4* @param [in] desc_pos  Posa cartesiana target
 5* @param [in] tool  Numero del sistema di coordinate dello strumento, intervallo [0~14]
 6* @param [in] user  Numero del sistema di coordinate del pezzo, intervallo [0~14]
 7* @param [in] vel  Percentuale di velocità, intervallo [0~100]
 8* @param [in] acc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 9* @param [in] epos  Posizione dell'asse esteso, unità mm
10* @param [in] ovl  Fattore di scala della velocità, intervallo [0~100]
11* @param [in] offset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
12* @param [in] offset_pos  Quantità di offset della posa
13* @param [in] spiral_param  Parametri della spirale
14* @return Codice di errore
15*/
16int NewSpiral(JointPos joint_pos, DescPose desc_pos, int tool, int user, double vel, double acc, ExaxisPos epos, double ovl, int offset_flag, DescPose offset_pos, SpiralParam spiral_param);

4.23. Movimento a spirale nello spazio cartesiano (calcolo cinematico inverso automatico)

Nuovo nella versione Java: SDK-v1.0.8-3.8.5

 1/**
 2* @brief Movimento a spirale nello spazio cartesiano (calcolo cinematico inverso automatico)
 3* @param [in] desc_pos  Posa cartesiana target
 4* @param [in] tool  Numero del sistema di coordinate dello strumento, intervallo [0~14]
 5* @param [in] user  Numero del sistema di coordinate del pezzo, intervallo [0~14]
 6* @param [in] vel  Percentuale di velocità, intervallo [0~100]
 7* @param [in] acc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 8* @param [in] epos  Posizione dell'asse esteso, unità mm
 9* @param [in] ovl  Fattore di scala della velocità, intervallo [0~100]
10* @param [in] offset_flag  0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
11* @param [in] offset_pos  Quantità di offset della posa
12* @param [in] spiral_param  Parametri della spirale
13* @param [in] config  Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
14* @return Codice di errore
15*/
16int NewSpiral(DescPose desc_pos, int tool, int user, double vel, double acc, ExaxisPos epos, double ovl, int offset_flag, DescPose offset_pos, SpiralParam spiral_param,int config)

4.24. Esempio di codice per il movimento a spirale

 1public static int TestSpiral(Robot robot)
 2{
 3    int rtn=-1;
 4    JointPos j=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
 5    DescPose desc_pos=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
 6    DescPose offset_pos1=new DescPose(50, 0, 0, -30, 0, 0);
 7    DescPose offset_pos2=new DescPose(50, 0, 0, -5, 0, 0);
 8    ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
 9    SpiralParam sp=new SpiralParam(1,5.0,50.0,10.0,10.0,0);
10
11    int tool = 0;
12    int user = 0;
13    double vel = 100.0;
14    double acc = 100.0;
15    double ovl = 100.0;
16    double blendT = 0.0;
17    int flag = 2;
18
19    rtn = robot.MoveJ(j, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos1);
20    System.out.println("movej errcode:"+ rtn);
21
22    rtn = robot.NewSpiral(desc_pos, tool, user, vel, acc, epos, ovl, flag, offset_pos2, sp,-1);
23    System.out.println("newspiral errcode:"+ rtn);
24
25    return 0;
26}

4.25. Inizio movimento servo

1/**
2* @brief Inizio movimento servo, da utilizzare con le istruzioni ServoJ e ServoCart
3* @return Codice di errore
4*/
5int ServoMoveStart();

4.26. Fine movimento servo

1/**
2* @brief Fine movimento servo, da utilizzare con le istruzioni ServoJ e ServoCart
3* @return Codice di errore
4*/
5int ServoMoveEnd();

4.27. Movimento in modalità servo nello spazio dei giunti

Cambiato nella versione Java: SDK-v1.0.6-3.8.3

 1/**
 2* @brief  Movimento in modalità servo nello spazio dei giunti
 3* @param  [in] joint_pos  Posizione giunto target, unità deg
 4* @param  [in] axisPos  Posizione dell'asse esterno, unità mm
 5* @param  [in] acc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile, predefinito 0
 6* @param  [in] vel  Percentuale di velocità, intervallo [0~100], non ancora disponibile, predefinito 0
 7* @param  [in] cmdT  Periodo di invio comandi, unità s, intervallo consigliato [0.001~0.0016]
 8* @param  [in] filterT  Tempo di filtraggio, unità s, non ancora disponibile, predefinito 0
 9* @param  [in] gain  Amplificatore proporzionale della posizione target, non ancora disponibile, predefinito 0
10* @param  [in] id  ID dell'istruzione servoJ, predefinito 0
11* @return  Codice di errore
12*/
13int ServoJ(JointPos joint_pos, ExaxisPos axisPos, double acc, double vel, double cmdT, double filterT, double gain, int id);

4.28. Esempio di programma per il movimento in modalità servo nello spazio dei giunti

 1public static void TestServoJ()
 2{
 3    Robot robot = new Robot();
 4    robot.SetReconnectParam(true,20,500);//Imposta numero di tentativi di riconnessione, intervallo
 5    robot.LoggerInit(FrLogType.DIRECT, FrLogLevel.INFO, "D://log", 10, 10);
 6    int rtn = robot.RPC("192.168.58.2");
 7    if(rtn == 0)
 8    {
 9        System.out.println("connessione rpc successo");
10    }
11    else
12    {
13        System.out.println("connessione rpc fallita");
14        return ;
15    }
16    JointPos j5 = new JointPos();
17    ExaxisPos ePos=new ExaxisPos();
18    int ret = robot.GetActualJointPosDegree(j5);
19    if (ret == 0)
20    {
21        int count = 200;
22        while (count > 0)
23        {
24            robot.ServoJ(j5, ePos,100, 100, 0.008, 0, 0);
25            j5.J1 += 0.2;//Incrementa la posizione del giunto 1
26            count -= 1;
27            robot.WaitMs((int)(8));
28        }
29    }
30}

4.29. Inizio controllo coppia giunti

1/**
2* @brief  Inizio controllo coppia giunti
3* @return  Codice di errore
4*/
5int ServoJTStart()

4.30. Controllo coppia giunti

 1/**
 2* @brief Controllo coppia giunti
 3* @param  torque Coppia giunti j1~j6, unità Nm
 4* @param  interval Periodo del comando, unità s, intervallo [0.001~0.008]
 5* @param  checkFlag Strategia di rilevamento 0-Nessuna limitazione; 1-Limita potenza; 2-Limita velocità; 3-Limita sia potenza che velocità
 6* @param  jPowerLimit Limite massimo di potenza del giunto (W)
 7* @param  jVelLimit Velocità massima del giunto (°/s)
 8* @return  Codice di errore
 9*/
10public int ServoJT(double[] torque, double interval, int checkFlag, double[] jPowerLimit, double[] jVelLimit)

4.31. Fine controllo coppia giunti

1/**
2* @brief  Fine controllo coppia giunti
3* @return  Codice di errore
4*/
5int ServoJTEnd()

4.32. Esempio di programma per il movimento in modalità servo nello spazio dei giunti

 1public static int TestServoJT(Robot robot)
 2{
 3
 4    robot.DragTeachSwitch(1);
 5    List<Number> joint_toq=new ArrayList<>();
 6    joint_toq=robot.GetJointTorques(1);
 7
 8    int count = 100;
 9    robot.ServoJTStart(); //   #inizio servoJT
10    int error = 0;
11    while (count > 0)
12    {
13        error = robot.ServoJT(torques, 0.001);
14        count = count - 1;
15        robot.Sleep(1);
16    }
17    error = robot.ServoJTEnd();
18    robot.DragTeachSwitch(0);
19
20    robot.CloseRPC();
21    return 0;
22}

4.33. Esempio di codice per il controllo coppia giunti con protezione sovravelocità

 1public static void ServoJTWithSafety(Robot robot)
 2{
 3    robot.ResetAllError();
 4    robot.Sleep(500);
 5    List<Number> torques;
 6    torques=robot.GetJointTorques(1);
 7    robot.ServoJTStart(); //   #inizio servoJT
 8    ROBOT_STATE_PKG pkg=new ROBOT_STATE_PKG();
 9    robot.DragTeachSwitch(1);
10    int checkFlag = 3;//-1,3
11    //double[] jPowerLimit = {1.0,1.0,1.0,1.0,1.0,1.0};//5001
12    double[] jPowerLimit = { 10.0, 10.0, 10.0, 10.0, 10.0, 10.0 };
13    double[] jVelLimit = { 50, 50, 50, 50, 50, 50};//180.1,-1
14    int count = 800000;
15    int error = 0;
16    double[] tor=new double[]{(double)torques.get(1),(double)torques.get(2),(double)torques.get(3),(double)torques.get(4),(double)torques.get(5),(double)torques.get(6)};
17    while (count > 0)
18    {
19        tor[2] = tor[2]+0.01;//  #incrementa di 0.01NM l'asse 1 ogni volta, movimento per 100 volte
20        error = robot.ServoJT(tor, 0.01, checkFlag, jPowerLimit, jVelLimit);  //# movimento in modalità servo nello spazio dei giunti
21        System.out.printf("ServoJT rtn è %d\n", error);
22        count = count - 1;
23        robot.Sleep(1);
24        pkg=robot.GetRobotRealTimeState();
25        System.out.printf("codice principale %d, sottocodice %d\n", pkg.main_code, pkg.sub_code);
26    }
27    robot.DragTeachSwitch(0);
28    error = robot.ServoJTEnd();  //#fine movimento servo
29}

4.34. Movimento in Modalità Servo Spazio Cartesiano

 1/**
 2* @brief Movimento in modalità servo spazio cartesiano
 3* @param mode 0-Movimento assoluto (sistema coordinate base), 1-Movimento incrementale (sistema coordinate base), 2-Movimento incrementale (sistema coordinate utensile)
 4* @param desc_pose Posa cartesiana target o incremento di posa
 5* @param exaxis Posizione asse esteso
 6* @param pos_gain Coefficiente proporzionalità incremento posa, effettivo solo nel movimento incrementale, intervallo [0~1]
 7* @param acc Percentuale accelerazione, intervallo [0~100], temporaneamente non disponibile, predefinito 0
 8* @param vel Percentuale velocità, intervallo [0~100], temporaneamente non disponibile, predefinito 0
 9* @param cmdT Periodo trasmissione comando, unità s, intervallo consigliato [0.001~0.016]
10* @param filterT Tempo filtro, unità s, temporaneamente non disponibile, predefinito 0
11* @param gain Amplificatore proporzionale posizione target, temporaneamente non disponibile, predefinito 0
12* @return Codice errore
13*/
14public int ServoCart(int mode, DescPose desc_pose, ExaxisPos exaxis, double[] pos_gain, double acc, double vel, double cmdT, double filterT, double gain)

4.35. Esempio Codice Movimento in Modalità Servo Spazio Cartesiano

 1public static void TestServoCart1(Robot robot)
 2{
 3    DescPose desc_pos_dt = new DescPose(83.00800, 50.525000 , 29.246 , 179.629 , -7.138 , -166.975 );
 4    ExaxisPos exaxis = new ExaxisPos( 100.0, 0.0, 0.0, 0.0 );
 5    double[] pos_gain = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
 6    int mode = 0;
 7    double vel = 0.0;
 8    double acc = 0.0;
 9    double cmdT = 0.001;
10    double filterT = 0.0;
11    double gain = 0.0;
12    int flag = 0;
13    int count = 5000;
14    robot.SetSpeed(20);
15    while (count>0)
16    {
17        int rtn = robot.ServoCart(mode, desc_pos_dt, exaxis, pos_gain, acc, vel, cmdT, filterT, gain);
18        System.out.printf("ServoCart rtn is %d\n", rtn);
19        count -= 1;
20        desc_pos_dt.tran.x += 0.01;
21        exaxis.axis1 += 0.01;
22    }
23    robot.CloseRPC();
24}

4.36. Inizio movimento spline

1/**
2* @brief  Inizio movimento spline
3* @return  Codice di errore
4*/
5int SplineStart();

4.37. Movimento PTP (Punto a Punto) nello spazio dei giunti

 1/**
 2* @brief  Movimento spline nello spazio dei giunti
 3* @param  [in] joint_pos  Posizione giunto target, unità deg
 4* @param  [in] desc_pos  Posa cartesiana target
 5* @param  [in] tool  Numero del sistema di coordinate dello strumento, intervallo [0~14]
 6* @param  [in] user  Numero del sistema di coordinate del pezzo, intervallo [0~14]
 7* @param  [in] vel  Percentuale di velocità, intervallo [0~100]
 8* @param  [in] acc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 9* @param  [in] ovl  Fattore di scala della velocità, intervallo [0~100]
10* @return  Codice di errore
11*/
12int SplinePTP(JointPos joint_pos, DescPose desc_pos, int tool, int user, double vel, double acc, double ovl);

4.38. Movimento spline nello spazio dei giunti (calcolo cinematico diretto automatico)

Nuovo nella versione Java: SDK-v1.0.8-3.8.5

 1/**
 2* @brief  Movimento spline nello spazio dei giunti (calcolo cinematico diretto automatico)
 3* @param  [in] joint_pos  Posizione giunto target, unità deg
 4* @param  [in] tool  Numero del sistema di coordinate dello strumento, intervallo [0~14]
 5* @param  [in] user  Numero del sistema di coordinate del pezzo, intervallo [0~14]
 6* @param  [in] vel  Percentuale di velocità, intervallo [0~100]
 7* @param  [in] acc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 8* @param  [in] ovl  Fattore di scala della velocità, intervallo [0~100]
 9* @return  Codice di errore
10*/
11int SplinePTP(JointPos joint_pos, int tool, int user, double vel, double acc, double ovl)

4.39. Fine movimento spline

1/**
2* @brief  Fine movimento spline
3* @return  Codice di errore
4*/
5int SplineEnd();

4.40. Esempio di codice per il movimento spline

 1public static int TestSpline(Robot robot)
 2{
 3    JointPos j1=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
 4    JointPos j2=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
 5    JointPos j3=new JointPos(-61.954, -84.409, 108.153, -116.316, -91.283, 74.260);
 6    JointPos j4=new JointPos(-89.575, -80.276, 102.713, -116.302, -91.284, 74.267);
 7    DescPose offset_pos=new DescPose(0, 0, 0, 0, 0, 0);
 8    ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
 9
10    int tool = 0;
11    int user = 0;
12    double vel = 100.0;
13    double acc = 100.0;
14    double ovl = 100.0;
15    double blendT = -1.0;
16    int flag = 0;
17
18    int err1 = robot.MoveJ(j1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
19    System.out.println("movej errcode:"+ err1);
20    robot.SplineStart();
21    robot.SplinePTP(j1, tool, user, vel, acc, ovl);
22    robot.SplinePTP(j2, tool, user, vel, acc, ovl);
23    robot.SplinePTP(j3, tool, user, vel, acc, ovl);
24    robot.SplinePTP(j4, tool, user, vel, acc, ovl);
25    robot.SplineEnd();
26    return 0;
27}

4.41. Inizio nuovo movimento spline

1/**
2* @brief Inizio nuovo movimento spline
3* @param [in] type   0-Transizione circolare, 1-I punti dati sono punti di percorso
4* @param [in] averageTime  Tempo medio di transizione globale (ms) (10 ~ ), predefinito 2000
5* @return Codice di errore
6*/
7int NewSplineStart(int type, int averageTime);

4.42. Punto di comando spline

 1/**
 2* @brief Aggiunge un punto di comando per il movimento spline
 3* @param [in] joint_pos  Posizione giunto target, unità deg
 4* @param [in] desc_pos  Posa cartesiana target
 5* @param [in] tool  Numero del sistema di coordinate dello strumento, intervallo [0~14]
 6* @param [in] user  Numero del sistema di coordinate del pezzo, intervallo [0~14]
 7* @param [in] vel  Percentuale di velocità, intervallo [0~100]
 8* @param [in] acc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 9* @param [in] ovl  Fattore di scala della velocità, intervallo [0~100]
10* @param [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
11* @param [in] lastFlag Indica se è l'ultimo punto, 0-No, 1-Sì
12* @return Codice di errore
13*/
14int NewSplinePoint(JointPos joint_pos, DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendR, int lastFlag);

4.43. Punto di comando spline (calcolo cinematico inverso automatico)

Nuovo nella versione Java: SDK-v1.0.8-3.8.5

 1/**
 2* @brief Punto di comando spline (calcolo cinematico inverso automatico)
 3* @param  [in] desc_pos  Posa cartesiana target
 4* @param  [in] tool  Numero del sistema di coordinate dello strumento, intervallo [0~14]
 5* @param  [in] user  Numero del sistema di coordinate del pezzo, intervallo [0~14]
 6* @param  [in] vel  Percentuale di velocità, intervallo [0~100]
 7* @param  [in] acc  Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
 8* @param  [in] ovl  Fattore di scala della velocità, intervallo [0~100]
 9* @param  [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
10* @param  [in] lastFlag Indica se è l'ultimo punto, 0-No, 1-Sì
11* @param  [in] config  Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
12* @return  Codice di errore
13*/
14int NewSplinePoint(DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendR, int lastFlag,int config)

4.44. Fine nuovo movimento spline

1/**
2* @brief Fine nuovo movimento spline
3* @return Codice di errore
4*/
5int NewSplineEnd();

4.45. Esempio di codice per il nuovo movimento spline

 1public static int TestNewSpline(Robot robot)
 2{
 3    JointPos j1=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
 4    DescPose desc_pos1=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
 5    DescPose desc_pos2=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
 6    DescPose desc_pos3=new DescPose(-327.622, 402.230, 320.402, -178.067, 2.127, -46.207);
 7    DescPose desc_pos4=new DescPose(-104.066, 544.321, 327.023, -177.715, 3.371, -73.818);
 8    DescPose desc_pos5=new DescPose(-33.421, 732.572, 275.103, -177.907, 2.709, -79.482);
 9    DescPose offset_pos=new DescPose(0, 0, 0, 0, 0, 0);
10    ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
11
12
13    int tool = 0;
14    int user = 0;
15    double vel = 100.0;
16    double acc = 100.0;
17    double ovl = 100.0;
18    double blendT = -1.0;
19    int flag = 0;
20
21
22    int err1 = robot.MoveJ(j1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
23    System.out.println("movej errcode:"+ err1);
24    robot.NewSplineStart(1, 2000);
25    robot.NewSplinePoint(desc_pos1, tool, user, vel, acc, ovl, -1, 0,-1);
26    robot.NewSplinePoint(desc_pos2, tool, user, vel, acc, ovl, -1, 0,-1);
27    robot.NewSplinePoint(desc_pos3, tool, user, vel, acc, ovl, -1, 0,-1);
28    robot.NewSplinePoint(desc_pos4, tool, user, vel, acc, ovl, -1, 0,-1);
29    robot.NewSplinePoint(desc_pos5, tool, user, vel, acc, ovl, -1, 0,-1);
30    robot.NewSplineEnd();
31    return 0;
32}

4.46. Interruzione movimento

1/**
2* @brief Interruzione movimento
3* @return  Codice di errore
4*/
5int StopMotion();

4.47. Pausa movimento

1/**
2* @brief Pausa movimento
3* @return Codice di errore
4*/
5int PauseMotion();

4.48. Ripresa movimento

1/**
2* @brief Ripresa movimento
3* @return Codice di errore
4*/
5int ResumeMotion();

4.49. Esempio di codice per pausa, ripresa, interruzione movimento

 1public static int TestPause(Robot robot)
 2{
 3    JointPos j1=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
 4    JointPos j5=new JointPos(-95.228, -54.621, 73.691, -112.245, -91.280, 74.268);
 5    DescPose desc_pos1=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
 6    DescPose desc_pos5=new DescPose(-33.421, 732.572, 275.103, -177.907, 2.709, -79.482);
 7    DescPose offset_pos=new DescPose(0, 0, 0, 0, 0, 0);
 8    ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
 9
10    int tool = 0;
11    int user = 0;
12    double vel = 100.0;
13    double acc = 100.0;
14    double ovl = 100.0;
15    double blendT = -1.0;
16    int flag = 0;
17
18    robot.SetSpeed(20);
19    int rtn=-1;
20    rtn = robot.MoveJ(j1, desc_pos1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
21    rtn = robot.MoveJ(j5, desc_pos5, tool, user, vel, acc, ovl, epos, 1, flag, offset_pos);
22    robot.Sleep(1000);
23    robot.PauseMotion();
24
25    robot.Sleep(1000);
26    robot.ResumeMotion();
27
28    robot.Sleep(1000);
29    robot.StopMotion();
30
31    robot.Sleep(1000);
32
33    return 0;
34}

4.50. Inizio offset globale dei punti

1/**
2* @brief  Inizio offset globale dei punti
3* @param  [in]  flag  0-Offset nel sistema di coordinate base o del pezzo, 2-Offset nel sistema di coordinate dello strumento
4* @param  [in]  offset_pos  Quantità di offset della posa
5* @return  Codice di errore
6*/
7int PointsOffsetEnable(int flag, DescPose offset_pos);

4.51. Fine offset globale dei punti

1/**
2* @brief  Fine offset globale dei punti
3* @return  Codice di errore
4*/
5int PointsOffsetDisable();

4.52. Esempio di codice per l’offset dei punti

 1public static int TestOffset(Robot robot)
 2{
 3    JointPos j1=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
 4    JointPos j2=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
 5
 6    DescPose desc_pos1=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
 7    DescPose desc_pos2=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
 8
 9    DescPose offset_pos=new DescPose(0, 0, 0, 0, 0, 0);
10    DescPose offset_pos1=new DescPose(0, 0, 50, 0, 0, 0);
11    ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
12
13    int tool = 0;
14    int user = 0;
15    double vel = 100.0;
16    double acc = 100.0;
17    double ovl = 100.0;
18    double blendT = -1.0;
19    int flag = 0;
20
21    robot.SetSpeed(20);
22
23    robot.MoveJ(j1, desc_pos1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
24    robot.MoveJ(j2, desc_pos2, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
25    robot.Sleep(1000);
26    robot.PointsOffsetEnable(0, offset_pos1);
27    robot.MoveJ(j1, desc_pos1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
28    robot.MoveJ(j2, desc_pos2, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
29    robot.PointsOffsetDisable();
30
31    return 0;
32}

4.53. Inizio acquisizione in volo tramite AO del cabinet di controllo

1/**
2* @brief Inizio acquisizione in volo tramite AO del cabinet di controllo
3* @param [in] AONum Numero AO del cabinet di controllo
4* @param [in] maxTCPSpeed Valore massimo velocità TCP [1-5000mm/s], predefinito 1000
5* @param [in] maxAOPercent Percentuale AO corrispondente al valore massimo velocità TCP, predefinito 100%
6* @param [in] zeroZoneCmp Valore di compensazione zona morta percentuale AO, intero, predefinito 20%, intervallo [0-100]
7* @return Codice di errore
8*/
9int MoveAOStart(int AONum, int maxTCPSpeed, int maxAOPercent, int zeroZoneCmp);

4.54. Arresto acquisizione in volo tramite AO del cabinet di controllo

1/**
2* @brief Arresto acquisizione in volo tramite AO del cabinet di controllo
3* @return Codice di errore
4*/
5int MoveAOStop();

4.55. Inizio acquisizione in volo tramite AO dell’utensile

1/**
2* @brief Inizio acquisizione in volo tramite AO dell'utensile
3* @param [in] AONum Numero AO dell'utensile
4* @param [in] maxTCPSpeed Valore massimo velocità TCP [1-5000mm/s], predefinito 1000
5* @param [in] maxAOPercent Percentuale AO corrispondente al valore massimo velocità TCP, predefinito 100%
6* @param [in] zeroZoneCmp Valore di compensazione zona morta percentuale AO, intero, predefinito 20%, intervallo [0-100]
7* @return Codice di errore
8*/
9int MoveToolAOStart(int AONum, int maxTCPSpeed, int maxAOPercent, int zeroZoneCmp);

4.56. Arresto acquisizione in volo tramite AO dell’utensile

1/**
2* @brief Arresto acquisizione in volo tramite AO dell'utensile
3* @return Codice di errore
4*/
5int MoveToolAOStop();

4.57. Esempio di codice per l’acquisizione in volo tramite AO

 1public static int TestMoveAO(Robot robot)
 2{
 3    JointPos j1=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
 4    JointPos j2=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
 5
 6    DescPose desc_pos1=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
 7    DescPose desc_pos2=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
 8
 9    DescPose offset_pos=new DescPose(0, 0, 0, 0, 0, 0);
10    DescPose offset_pos1=new DescPose(0, 0, 50, 0, 0, 0);
11    ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
12
13    int tool = 0;
14    int user = 0;
15    double vel = 20.0;
16    double acc = 20.0;
17    double ovl = 100.0;
18    double blendT = -1.0;
19    int flag = 0;
20
21    robot.SetSpeed(20);
22
23    robot.MoveAOStart(0, 100, 100, 20);
24    robot.MoveJ(j1, desc_pos1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
25    robot.MoveJ(j2, desc_pos2, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
26    robot.MoveAOStop();
27
28    robot.Sleep(1000);
29
30    robot.MoveToolAOStart(0, 100, 100, 20);
31    robot.MoveJ(j1, desc_pos1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
32    robot.MoveJ(j2, desc_pos2, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
33    robot.MoveToolAOStop();
34
35    return 0;
36}

4.58. Inizio filtraggio FIR per movimento Ptp

Cambiato nella versione Java: SDK-v1.0.5-3.8.2

1/**
2* @brief Inizio filtraggio FIR per movimento Ptp
3* @param [in] maxAcc Valore massimo di accelerazione (deg/s2)
4* @param [in] maxJek Valore massimo uniforme di strappo del giunto (deg/s3)
5* @return Codice di errore
6*/
7int PtpFIRPlanningStart(double maxAcc,double maxJek);

4.59. Fine filtraggio FIR per movimento Ptp

1/**
2* @brief Fine filtraggio FIR per movimento Ptp
3* @return Codice di errore
4*/
5int PtpFIRPlanningEnd();

4.60. Inizio filtraggio FIR per movimento LIN, ARC

1/**
2* @brief Inizio filtraggio FIR per movimento LIN, ARC
3* @param [in] maxAccLin Valore massimo di accelerazione lineare (mm/s2)
4* @param [in] maxAccDeg Valore massimo di accelerazione angolare (deg/s2)
5* @param [in] maxJerkLin Valore massimo di strappo lineare (mm/s3)
6* @param [in] maxJerkDeg Valore massimo di strappo angolare (deg/s3)
7* @return Codice di errore
8*/
9int LinArcFIRPlanningStart(double maxAccLin, double maxAccDeg, double maxJerkLin, double maxJerkDeg);

4.61. Fine filtraggio FIR per movimento LIN, ARC

1/**
2* @brief Fine filtraggio FIR per movimento LIN, ARC
3* @return Codice di errore
4*/
5int LinArcFIRPlanningEnd();

4.62. Esempio di codice per il filtraggio FIR

 1public static int TestFIR(Robot robot)
 2{
 3    JointPos startjointPos=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
 4    JointPos midjointPos=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
 5    JointPos endjointPos=new JointPos(-29.777, -84.536, 109.275, -114.075, -86.655, 74.257);
 6
 7    DescPose startdescPose=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
 8    DescPose middescPose=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
 9    DescPose enddescPose=new DescPose(-487.434, 154.362, 308.576, 176.600, 0.268, -14.061);
10
11    ExaxisPos exaxisPos=new ExaxisPos(0, 0, 0, 0);
12    DescPose offdese=new DescPose(0, 0, 0, 0, 0, 0);
13
14    int rtn = robot.PtpFIRPlanningStart(1000, 1000);
15    robot.MoveJ(startjointPos, startdescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
16    robot.MoveJ(endjointPos, enddescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
17    robot.PtpFIRPlanningEnd();
18
19    robot.LinArcFIRPlanningStart(1000, 1000, 1000, 1000);
20    robot.MoveL(startjointPos, startdescPose, 0, 0, 100, 100, 100, -1, 0,exaxisPos, 0, 0, offdese, 1, 1);
21    robot.MoveC(midjointPos, middescPose, 0, 0, 100, 100, exaxisPos, 0, offdese, endjointPos, enddescPose, 0, 0, 100, 100, exaxisPos, 0, offdese, 100, -1);
22    robot.LinArcFIRPlanningEnd();
23    return 0;
24}

4.63. Attivazione smoothing accelerazione

Nuovo nella versione Java: SDK-v1.0.4-3.8.1

1/**
2 * @brief Attivazione smoothing accelerazione
3 * @param [in] saveFlag Indica se salvare dopo lo spegnimento
4 * @return  Codice di errore
5 */
6public int AccSmoothStart(boolean saveFlag)

4.64. Disattivazione smoothing accelerazione

Nuovo nella versione Java: SDK-v1.0.4-3.8.1

1/**
2 * @brief Disattivazione smoothing accelerazione
3 * @param [in] saveFlag Indica se salvare dopo lo spegnimento
4 * @return  Codice di errore
5 */
6public int AccSmoothEnd(boolean saveFlag)

4.65. Esempio di codice per lo smoothing dell’accelerazione

 1public static int TestAccSmooth(Robot robot)
 2{
 3    JointPos startjointPos=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
 4    JointPos endjointPos=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
 5
 6    DescPose startdescPose=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
 7    DescPose enddescPose=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
 8
 9    ExaxisPos exaxisPos=new ExaxisPos(0, 0, 0, 0);
10    DescPose offdese=new DescPose(0,0,0,0,0,0);
11    int rtn = robot.AccSmoothStart(false);
12    robot.MoveJ(startjointPos, startdescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
13    robot.MoveJ(endjointPos, enddescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
14    rtn = robot.AccSmoothEnd(false);
15
16    robot.CloseRPC();
17    return 0;
18}

4.66. Attivazione velocità orientamento specificata

1/**
2 * @brief Attivazione velocità orientamento specificata
3 * @param [in] ratio Percentuale velocità orientamento [0-300]
4 * @return  Codice di errore
5 */
6int AngularSpeedStart(int ratio)

4.67. Disattivazione velocità orientamento specificata

1/**
2 * @brief Disattivazione velocità orientamento specificata
3 * @return  Codice di errore
4 */
5int AngularSpeedEnd();

4.68. Esempio di codice per la velocità orientamento specificata del robot

 1public static int TestAngularSpeed(Robot robot)
 2{
 3    JointPos startjointPos=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
 4    JointPos endjointPos=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
 5
 6    DescPose startdescPose=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
 7    DescPose enddescPose=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
 8
 9    ExaxisPos exaxisPos=new ExaxisPos(0, 0, 0, 0);
10    DescPose offdese=new DescPose(0, 0, 0, 0, 0, 0);
11    int rtn = robot.AngularSpeedStart(50);
12    robot.MoveJ(startjointPos, startdescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
13    robot.MoveJ(endjointPos, enddescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
14    rtn = robot.AngularSpeedEnd();
15
16    return 0;
17}

4.69. Inizio protezione configurazioni singolari

1/**
2* @brief  Inizio protezione configurazioni singolari
3* @param  [in]  protectMode Modalità protezione singolare, 0: Modalità giunto; 1-Modalità cartesiana
4* @param  [in]  minShoulderPos Intervallo di regolazione singolarità spalla (mm), predefinito 100
5* @param  [in]  minElbowPos Intervallo di regolazione singolarità gomito (mm), predefinito 50
6* @param  [in]  minWristPos Intervallo di regolazione singolarità polso (°), predefinito 10
7* @return  Codice di errore
8*/
9int SingularAvoidStart(int protectMode, double minShoulderPos, double minElbowPos, double minWristPos);

4.70. Fine protezione configurazioni singolari

1/**
2* @brief  Fine protezione configurazioni singolari
3* @return  Codice di errore
4*/
5int SingularAvoidEnd();

4.71. Esempio di codice per la protezione configurazioni singolari del robot

 1public static int TestAngularSpeed(Robot robot)
 2{
 3    JointPos startjointPos=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
 4    JointPos endjointPos=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
 5
 6    DescPose startdescPose=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
 7    DescPose enddescPose=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
 8
 9    ExaxisPos exaxisPos=new ExaxisPos(0, 0, 0, 0);
10    DescPose offdese=new DescPose(0, 0, 0, 0, 0, 0);
11    int rtn = robot.AngularSpeedStart(50);
12    robot.MoveJ(startjointPos, startdescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
13    robot.MoveJ(endjointPos, enddescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
14    rtn = robot.AngularSpeedEnd();
15
16    return 0;
17}

4.72. Svuota coda istruzioni movimento

1/**
2* @brief Svuota coda istruzioni movimento
3* @return Codice di errore
4*/
5public int MotionQueueClear()

4.73. Movimento verso punto di inizio linea di intersezione

 1/**
 2* @brief Movimento verso punto di inizio linea di intersezione
 3* @param [in] mainPoint Pose cartesiane dei 6 punti insegnati del tubo principale
 4* @param [in] mainExaxisPos Posizioni assi estesi dei 6 punti insegnati del tubo principale
 5* @param [in] piecePoint Pose cartesiane dei 6 punti insegnati del tubo ausiliario
 6* @param [in] pieceExaxisPos Posizioni assi estesi dei 6 punti insegnati del tubo di giunzione
 7* @param [in] extAxisFlag Indica se attivare l'asse esteso; 0-Disattivato; 1-Attivato
 8* @param [in] exaxisPos Posizione asse esteso del punto di partenza
 9* @param [in] tool Numero del sistema di coordinate dello strumento
10* @param [in] wobj Numero del sistema di coordinate del pezzo
11* @param [in] vel Percentuale di velocità
12* @param [in] acc Percentuale di accelerazione
13* @param [in] ovl Fattore di scala della velocità
14* @param [in] oacc Fattore di scala dell'accelerazione
15* @param [in] moveType Tipo di movimento; 0-PTP; 1-LIN
16* @param [in] moveDirection Direzione del movimento; 0-Senso orario; 1-Senso antiorario
17* @param [in] offset Offset
18* @return Codice di errore
19*/
20public int MoveToIntersectLineStart(DescPose[] mainPoint, ExaxisPos[] mainExaxisPos, DescPose[] piecePoint, ExaxisPos[] pieceExaxisPos, int extAxisFlag, ExaxisPos exaxisPos, int tool, int wobj, double vel, double acc, double ovl, double oacc, int moveType, int moveDirection, DescPose offset);

4.74. Movimento linea di intersezione

 1/**
 2* @brief Movimento linea di intersezione
 3* @param [in] mainPoint Pose cartesiane dei 6 punti insegnati del tubo principale
 4* @param [in] mainExaxisPos Posizioni assi estesi dei 6 punti insegnati del tubo principale
 5* @param [in] piecePoint Pose cartesiane dei 6 punti insegnati del tubo ausiliario
 6* @param [in] pieceExaxisPos Posizioni assi estesi dei 6 punti insegnati del tubo di giunzione
 7* @param [in] extAxisFlag Indica se attivare l'asse esteso; 0-Disattivato; 1-Attivato
 8* @param [in] exaxisPos Posizioni assi estesi del punto di partenza
 9* @param [in] tool Numero del sistema di coordinate dello strumento
10* @param [in] wobj Numero del sistema di coordinate del pezzo
11* @param [in] vel Percentuale di velocità
12* @param [in] acc Percentuale di accelerazione
13* @param [in] ovl Fattore di scala della velocità
14* @param [in] oacc Fattore di scala dell'accelerazione
15* @param [in] moveDirection Direzione del movimento; 0-Senso orario; 1-Senso antiorario
16* @param [in] offset Offset
17* @return Codice di errore
18*/
19public int MoveIntersectLine(DescPose[] mainPoint, ExaxisPos[] mainExaxisPos, DescPose[] piecePoint, ExaxisPos[] pieceExaxisPos, int extAxisFlag, ExaxisPos[] exaxisPos, int tool, int wobj, double vel, double acc, double ovl, double oacc, int moveDirection, DescPose offset);

4.75. Esempio di codice per il movimento linea di intersezione del robot

 1public static void TestIntersectLineMove(Robot robot)
 2{
 3    DescPose[] mainPoint = new DescPose[6];
 4    DescPose[] piecePoint = new DescPose[6];
 5    ExaxisPos[] mainExaxisPos = new ExaxisPos[6];
 6    ExaxisPos[] pieceExaxisPos = new ExaxisPos[6];
 7    int extAxisFlag = 1;
 8    ExaxisPos[] exaxisPos = new ExaxisPos[4];
 9    DescPose offset =new DescPose(0.0, 2.0 ,30.0, -2.0, 0.0, 0.0 );
10    mainPoint[0] = new DescPose(490.004, -383.194, 402.735, -9.332, -1.528, 69.594);
11    mainPoint[1] = new DescPose(444.950, -407.117, 389.011, -5.546, -2.196, 65.279);
12    mainPoint[2] = new DescPose(445.168, -463.605, 355.759, -1.544, -10.886, 57.104);
13    mainPoint[3] = new DescPose(507.529, -485.385, 343.013, -0.786, -4.834, 61.799);
14    mainPoint[4] = new DescPose(554.390, -442.647, 367.701, -4.761, -10.181, 64.925);
15    mainPoint[5] = new DescPose(532.552, -394.003, 396.467, -13.732, -13.592, 67.411);
16    mainExaxisPos[0] = new ExaxisPos(-29.996, 0.000, 0.000, 0.000 );
17    mainExaxisPos[1] = new ExaxisPos(-29.996, 0.000, 0.000, 0.000 );
18    mainExaxisPos[2] = new ExaxisPos(-29.996, 0.000, 0.000, 0.000 );
19    mainExaxisPos[3] = new ExaxisPos(-29.996, 0.000, 0.000, 0.000 );
20    mainExaxisPos[4] = new ExaxisPos(-29.996, 0.000, 0.000, 0.000 );
21    mainExaxisPos[5] = new ExaxisPos(-29.996, 0.000, 0.000, 0.000 );
22    piecePoint[0] = new DescPose( 505.571, -192.408, 316.759, 38.098, 37.051, 139.447);
23    piecePoint[1] =new DescPose(533.837, -201.558, 332.340, 34.644, 42.339, 137.748);
24    piecePoint[2] =new DescPose(530.386, -225.085, 373.808, 35.431, 45.111, 137.560);
25    piecePoint[3] =new DescPose(485.646, -229.195, 383.778, 33.870, 45.173, 137.064);
26    piecePoint[4] =new DescPose(460.551, -212.161, 354.256, 28.856, 45.602, 135.930);
27    piecePoint[5] =new DescPose(474.217, -197.124, 324.611, 42.469, 41.133, 148.167);
28    pieceExaxisPos[0] = new ExaxisPos( -29.996, -0.000, 0.000, 0.000);
29    pieceExaxisPos[1] = new ExaxisPos( -29.996, -0.000, 0.000, 0.000);
30    pieceExaxisPos[2] = new ExaxisPos( -29.996, -0.000, 0.000, 0.000);
31    pieceExaxisPos[3] = new ExaxisPos( -29.996, -0.000, 0.000, 0.000);
32    pieceExaxisPos[4] = new ExaxisPos( -29.996, -0.000, 0.000, 0.000);
33    pieceExaxisPos[5] = new ExaxisPos( -29.996, -0.000, 0.000, 0.000);
34    exaxisPos[0] = new ExaxisPos(-29.996, -0.000, 0.000, 0.000);
35    exaxisPos[1] = new ExaxisPos(-44.994, 90.000, 0.000, 0.000);
36    exaxisPos[2] = new ExaxisPos(-59.992, 0.002, 0.000, 0.000);
37    exaxisPos[3] = new ExaxisPos(-44.994, -89.997, 0.000, 0.000);
38    int tool = 2;
39    int wobj = 0;
40    double vel = 100.0;
41    double acc = 100.0;
42    double ovl = 12.0;
43    double oacc = 12.0;
44    int moveType = 1;
45    int moveDirection = 1;
46    int  rtn = robot.MoveToIntersectLineStart(mainPoint, mainExaxisPos, piecePoint, pieceExaxisPos, extAxisFlag, exaxisPos[0], tool, wobj, vel, acc, ovl, oacc, moveType, moveDirection, offset);
47    System.out.printf("MoveToIntersectLineStart rtn è %d\n", rtn);
48    rtn = robot.MoveIntersectLine(mainPoint, mainExaxisPos, piecePoint, pieceExaxisPos, extAxisFlag, exaxisPos, tool, wobj, vel, acc, 5.0, 5.0, moveDirection, offset);
49    System.out.printf("MoveIntersectLine rtn è %d\n", rtn);
50    robot.CloseRPC();
51    return ;
52}

4.76. Movimento Aereo Stazionario

1/**
2* @brief Movimento Aereo Stazionario
3* @return Codice di errore
4*/
5public int MoveStationary()

4.77. Esempio di Codice Movimento Aereo Stazionario

 1public static void test_RecordandReplay(Robot robot)
 2{
 3    int rtn = robot.LaserSensorRecordandReplay(0, 10, 1, 0, 0.1, 1, 1, 10, 100);
 4    System.out.printf("LaserSensorRecordandReplay rtn is %d\n", rtn);
 5    rtn = robot.MoveStationary();
 6    System.out.printf("MoveStationary rtn is %d\n", rtn);
 7    rtn = robot.LaserSensorRecord1(0, 10);
 8    System.out.printf("LaserSensorRecordandReplay rtn is %d\n", rtn);
 9    robot.CloseRPC();
10    robot.Sleep(9999999);
11}