14. Saldatura Robot
14.1. Impostazione parametri curva processo di saldatura
1/**
2* @brief Imposta i parametri della curva del processo di saldatura
3* @param [in] id Numero processo di saldatura (1-99)
4* @param [in] param Parametri del processo di saldatura
5* @return Codice di errore
6*/
7int WeldingSetProcessParam(int id, WeldingProcessParam param);
14.2. Ottenimento parametri curva processo di saldatura
1/**
2* @brief Ottiene i parametri della curva del processo di saldatura
3* @param [in] id Numero processo di saldatura (1-99)
4* @param [out] param Parametri del processo di saldatura
5* @return Codice di errore
6*/
7int WeldingGetProcessParam(int id, WeldingProcessParam param);
14.3. Impostazione relazione corrente saldatura - uscita analogica
1/**
2* @brief Imposta la relazione corrente saldatura - uscita analogica
3* @param [in] relation Valore della relazione
4* @return Codice di errore
5*/
6int WeldingSetCurrentRelation(WeldCurrentAORelation relation);
14.4. Impostazione relazione tensione saldatura - uscita analogica
1/**
2* @brief Imposta la relazione tensione saldatura - uscita analogica
3* @param [in] relation Valore della relazione tensione-uscita analogica
4* @return Codice di errore
5*/
6int WeldingSetVoltageRelation(WeldVoltageAORelation relation);
14.5. Ottenimento relazione corrente saldatura - uscita analogica
1/**
2* @brief Ottiene la relazione corrente saldatura - uscita analogica
3* @param [out] relation Valore della relazione
4* @return Codice di errore
5*/
6int WeldingGetCurrentRelation(WeldCurrentAORelation relation);
14.6. Ottenimento relazione tensione saldatura - uscita analogica
1/**
2* @brief Ottiene la relazione tensione saldatura - uscita analogica
3* @param [out] relation Valore della relazione tensione-uscita analogica
4* @return Codice di errore
5*/
6int WeldingGetVoltageRelation(WeldVoltageAORelation relation);
14.7. Impostazione corrente saldatura
1/**
2* @brief Imposta la corrente di saldatura
3* @param [in] ioType Tipo IO controllo 0-IO quadro controllo; 1-IO esteso
4* @param [in] current Valore corrente saldatura (A)
5* @param [in] AOIndex Porta uscita analogica quadro controllo corrente (0-1)
6* @param [in] blend Smoothing 0-Nessuno; 1-Sì
7* @return Codice di errore
8*/
9int WeldingSetCurrent(int ioType, double current, int AOIndex, int blend);
14.8. Impostazione tensione saldatura
1/**
2* @brief Imposta la tensione di saldatura
3* @param [in] ioType Tipo IO controllo 0-IO quadro controllo; 1-IO esteso
4* @param [in] voltage Valore tensione saldatura (A)
5* @param [in] AOIndex Porta uscita analogica quadro controllo tensione (0-1)
6* @param [in] blend Smoothing 0-Nessuno; 1-Sì
7* @return Codice di errore
8*/
9int WeldingSetVoltage(int ioType, double voltage, int AOIndex, int blend);
14.9. Impostazione parametri oscillazione
Cambiato nella versione Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Imposta i parametri di oscillazione
3* @param [in] weaveNum Numero configurazione parametri oscillazione
4* @param [in] weaveType Tipo oscillazione 0-Onda triangolare piano; 1-Onda triangolare L verticale; 2-Onda circolare oraria; 3-Onda circolare antioraria; 4-Onda sinusoidale piano; 5-Onda sinusoidale L verticale; 6-Onda triangolare verticale; 7-Onda sinusoidale verticale
5* @param [in] weaveFrequency Frequenza oscillazione (Hz)
6* @param [in] weaveIncStayTime Modalità attesa 0-Ciclo non include tempo attesa; 1-Ciclo include tempo attesa
7* @param [in] weaveRange Ampiezza oscillazione (mm)
8* @param [in] weaveLeftRange Lunghezza corda sinistra oscillazione triangolare verticale (mm)
9* @param [in] weaveRightRange Lunghezza corda destra oscillazione triangolare verticale (mm)
10* @param [in] additionalStayTime Tempo permanenza punto triangolo verticale oscillazione triangolare (ms)
11* @param [in] weaveLeftStayTime Tempo permanenza sinistra (ms)
12* @param [in] weaveRightStayTime Tempo permanenza destra (ms)
13* @param [in] weaveCircleRadio Rapporto callback oscillazione circolare (0-100%)
14* @param [in] weaveStationary Attesa posizione oscillazione, 0-Posizione continua durante attesa; 1-Posizione stazionaria durante attesa
15* @param [in] weaveYawAngle Angolo azimut direzione oscillazione (rotazione asse Z oscillazione), unità °
16* @param [in] weaveRotAngle Angolo rotazione direzione oscillazione (rotazione asse X oscillazione), unità °
17* @return Codice di errore
18*/
19int WeaveSetPara(int weaveNum, int weaveType, double weaveFrequency, int weaveIncStayTime, double weaveRange, double weaveLeftRange, double weaveRightRange, int additionalStayTime, int weaveLeftStayTime, int weaveRightStayTime, int weaveCircleRadio, int weaveStationary, double weaveYawAngle,double weaveRotAngle)
14.10. Esempio codice impostazione parametri saldatura
1public static int TestSetWeldParam(Robot robot)
2{
3 WeldingProcessParam para1=new WeldingProcessParam(177, 27, 1000, 178, 28, 176, 26, 1000);
4 WeldingProcessParam para2=new WeldingProcessParam(188, 28, 555, 199, 29, 133, 23, 333);
5
6 robot.WeldingSetProcessParam(1, para1);
7 robot.WeldingSetProcessParam(2, para2);
8
9 double startCurrent = 0;
10 double startVoltage = 0;
11 int startTime = 0;
12 double weldCurrent = 0;
13 double weldVoltage = 0;
14 double endCurrent = 0;
15 double endVoltage = 0;
16 int endTime = 0;
17
18 WeldingProcessParam param=new WeldingProcessParam( startCurrent, startVoltage, startTime, weldCurrent, weldVoltage, endCurrent, endVoltage, endTime);
19 robot.WeldingGetProcessParam(1,param);
20 robot.WeldingGetProcessParam(2,param);
21
22 WeldCurrentAORelation rela1=new WeldCurrentAORelation(0,400,0,10,0);
23 int rtn = robot.WeldingSetCurrentRelation(rela1);
24
25 WeldVoltageAORelation rela2=new WeldVoltageAORelation(0, 40, 0, 10, 1);
26 rtn = robot.WeldingSetVoltageRelation(rela2);
27
28 double current_min = 0;
29 double current_max = 0;
30 double vol_min = 0;
31 double vol_max = 0;
32 double output_vmin = 0;
33 double output_vmax = 0;
34 int curIndex = 0;
35 int volIndex = 0;
36 WeldCurrentAORelation rela3=new WeldCurrentAORelation(current_min, current_max, output_vmin, output_vmax, curIndex);
37 rtn = robot.WeldingGetCurrentRelation(rela3);
38
39 WeldVoltageAORelation rela4=new WeldVoltageAORelation(0,0,0,0,0);
40 rtn = robot.WeldingGetVoltageRelation(rela4);
41
42 rtn = robot.WeldingSetCurrent(0, 100, 0, 0);
43
44 robot.Sleep(3000);
45
46 rtn = robot.WeldingSetVoltage(0, 10, 0, 0);
47
48 rtn = robot.WeaveSetPara(0, 0, 2.000000, 0, 10.000000, 0.000000, 0.000000, 0, 0, 0, 0, 0, 60.000000,0);
49
50 robot.WeaveOnlineSetPara(0, 0, 1, 0, 20, 0, 0, 0, 0);
51
52 rtn = robot.WeldingSetCheckArcInterruptionParam(1, 200);
53 rtn = robot.WeldingSetReWeldAfterBreakOffParam(1, 5.7, 98.2, 0);
54 int enable = 0;
55 double length = 0;
56 double velocity = 0;
57 int moveType = 0;
58 int checkEnable = 0;
59 int arcInterruptTimeLength = 0;
60 List<Integer> inter=new ArrayList<>();
61 List<Number> num=new ArrayList<>();
62
63 inter = robot.WeldingGetCheckArcInterruptionParam();
64 num = robot.WeldingGetReWeldAfterBreakOffParam();
65
66 robot.SetWeldMachineCtrlModeExtDoNum(17);
67 for (int i = 0; i < 5; i++)
68 {
69 robot.SetWeldMachineCtrlMode(0);
70 robot.Sleep(1000);
71 robot.SetWeldMachineCtrlMode(1);
72 robot.Sleep(1000);
73 }
74 return 0;
75}
14.11. Impostazione istantanea parametri oscillazione
1/**
2* @brief Impostazione istantanea parametri oscillazione
3* @param [in] weaveNum Numero configurazione parametri oscillazione
4* @param [in]weaveType Tipo oscillazione 0-Onda triangolare piano; 1-Onda triangolare L verticale; 2-Onda circolare oraria; 3-Onda circolare antioraria; 4-Onda sinusoidale piano; 5-Onda sinusoidale L verticale; 6-Onda triangolare verticale; 7-Onda sinusoidale verticale
5* @param [in]weaveFrequency Frequenza oscillazione (Hz)
6* @param [in]weaveIncStayTime Modalità attesa 0-Ciclo non include tempo attesa; 1-Ciclo include tempo attesa
7* @param [in]weaveRange Ampiezza oscillazione (mm)
8* @param [in]weaveLeftStayTime Tempo permanenza sinistra (ms)
9* @param [in]weaveRightStayTime Tempo permanenza destra (ms)
10* @param [in]weaveCircleRadio Rapporto callback oscillazione circolare (0-100%)
11* @param [in]weaveStationary Attesa posizione oscillazione, 0-Posizione continua durante attesa; 1-Posizione stazionaria durante attesa
12* @return Codice di errore
13*/
14int WeaveOnlineSetPara(int weaveNum, int weaveType, double weaveFrequency, int weaveIncStayTime, double weaveRange, int weaveLeftStayTime, int weaveRightStayTime, int weaveCircleRadio, int weaveStationary);
14.12. Impostazione parametri rilevamento interruzione arco saldatura
1/**
2* @brief Imposta i parametri di rilevamento interruzione arco saldatura
3* @param [in] checkEnable Abilita rilevamento; 0-Disabilita; 1-Abilita
4* @param [in] arcInterruptTimeLength Durata conferma interruzione arco (ms)
5* @return Codice di errore
6*/
7int WeldingSetCheckArcInterruptionParam(int checkEnable, int arcInterruptTimeLength);
14.13. Ottenimento parametri rilevamento interruzione arco saldatura
1/**
2* @brief Ottiene i parametri di rilevamento interruzione arco saldatura
3* @return List[0]:Codice errore; List[1]:double Abilita rilevamento; 0-Disabilita; 1-Abilita; List[2]:Durata conferma interruzione arco (ms)
4*/
5List<Integer> WeldingGetCheckArcInterruptionParam();
14.14. Impostazione parametri recupero interruzione saldatura
1/**
2* @brief Imposta i parametri di recupero interruzione saldatura
3* @param [in] enable Abilita recupero interruzione saldatura
4* @param [in] length Distanza sovrapposizione cordone (mm)
5* @param [in] velocity Percentuale velocità robot ritorno punto riaccensione (0-100)
6* @param [in] moveType Modalità movimento robot punto riaccensione; 0-LIN; 1-PTP
7* @return Codice di errore
8*/
9int WeldingSetReWeldAfterBreakOffParam(int enable, double length, double velocity, int moveType);
14.15. Ottenimento parametri recupero interruzione saldatura
1/**
2* @brief Ottiene i parametri di recupero interruzione saldatura
3* @return List[0]:Codice errore; List[1]:int Abilita recupero interruzione saldatura; List[2]:double Distanza sovrapposizione cordone (mm);
4* @return List[3]:double Percentuale velocità robot ritorno punto riaccensione (0-100);List[4]:int Modalità movimento robot punto riaccensione; 0-LIN; 1-PTP
5*/
6List<Number> WeldingGetReWeldAfterBreakOffParam();
14.16. Impostazione porta DO estesa modalità controllo saldatrice
1/**
2* @brief Imposta la porta DO estesa modalità controllo saldatrice
3* @param [in] DONum Porta DO modalità controllo saldatrice (0-127)
4* @return Codice di errore
5*/
6int SetWeldMachineCtrlModeExtDoNum(int DONum);
14.17. Impostazione modalità controllo saldatrice
1/**
2* @brief Imposta modalità di controllo della saldatrice
3* @param mode Modalità di controllo della saldatrice; 0-Modo unico DC; 1-Modo unico a impulsi; 2-Modalità JOB; 3-Modalità controllo locale; 4-Modalità separata; 5-Modalità CC/CV; 6-TIG; 7-CMT
4* @param ioType Tipo di controllo; 0-IO del box di controllo; 1-Protocollo di comunicazione digitale (UDP); 2-Protocollo di comunicazione digitale (ModbusTCP)
5* @return Codice di errore
6*/
7public int SetWeldMachineCtrlMode(int mode, int ioType)
14.18. Inizio saldatura
1/**
2* @brief Inizio saldatura
3* @param [in] ioType Tipo io 0-IO controllore; 1-IO esteso
4* @param [in] arcNum Numero file configurazione saldatrice
5* @param [in] timeout Timeout accensione arco
6* @return Codice di errore
7*/
8int ARCStart(int ioType, int arcNum, int timeout);
14.19. Fine saldatura
1/**
2* @brief Fine saldatura
3* @param [in] ioType Tipo io 0-IO controllore; 1-IO esteso
4* @param [in] arcNum Numero file configurazione saldatrice
5* @param [in] timeout Timeout spegnimento arco
6* @return Codice di errore
7*/
8int ARCEnd(int ioType, int arcNum, int timeout);
14.20. Inizio oscillazione
1/**
2* @brief Inizio oscillazione
3* @param [in] weaveNum Numero configurazione parametri oscillazione
4* @return Codice di errore
5*/
6int WeaveStart(int weaveNum);
14.21. Fine oscillazione
1/**
2* @brief Fine oscillazione
3* @param [in] weaveNum Numero configurazione parametri oscillazione
4* @return Codice di errore
5*/
6int WeaveEnd(int weaveNum);
14.22. Alimentazione filo in avanti
1/**
2* @brief Alimentazione filo in avanti
3* @param [in] ioType Tipo io 0-IO controllore; 1-IO esteso
4* @param [in] wireFeed Controllo alimentazione filo 0-Arresta alimentazione; 1-Alimenta
5* @return Codice di errore
6*/
7int SetForwardWireFeed(int ioType, int wireFeed);
14.23. Alimentazione filo inversa
1/**
2* @brief Alimentazione filo inversa
3* @param [in] ioType Tipo io 0-IO controllore; 1-IO esteso
4* @param [in] wireFeed Controllo alimentazione filo 0-Arresta alimentazione; 1-Alimenta
5* @return Codice di errore
6*/
7int SetReverseWireFeed(int ioType, int wireFeed);
14.24. Alimentazione gas
1/**
2* @brief Alimentazione gas
3* @param [in] ioType Tipo io 0-IO controllore; 1-IO esteso
4* @param [in] airControl Controllo alimentazione gas 0-Arresta gas; 1-Alimenta gas
5* @return Codice di errore
6*/
7int SetAspirated(int ioType, int airControl);
14.25. Impostazione riavvio saldatura dopo interruzione
1/**
2* @brief Imposta il riavvio della saldatura dopo interruzione
3* @return Codice di errore
4*/
5int WeldingStartReWeldAfterBreakOff();
14.26. Impostazione uscita saldatura dopo interruzione
1/**
2* @brief Imposta l'uscita dalla saldatura dopo interruzione
3* @return Codice di errore
4*/
5int WeldingAbortWeldAfterBreakOff();
14.27. Esempio codice controllo saldatura robot
1public static int TestWelding(Robot robot)
2{
3 robot.WeldingSetCurrent(0, 230, 0, 0);
4 robot.WeldingSetVoltage(0, 24, 0, 1);
5
6 DescPose p1Desc=new DescPose(228.879, -503.594, 453.984, -175.580, 8.293, 171.267);
7 JointPos p1Joint=new JointPos(102.700, -85.333, 90.518, -102.365, -83.932, 22.134);
8
9 DescPose p2Desc=new DescPose(-333.302, -435.580, 449.866, -174.997, 2.017, 109.815);
10 JointPos p2Joint=new JointPos(41.862, -85.333, 90.526, -100.587, -90.014, 22.135);
11
12 ExaxisPos exaxisPos=new ExaxisPos(0, 0, 0, 0);
13 DescPose offdese=new DescPose(0, 0, 0, 0, 0, 0);
14
15 robot.MoveJ(p1Joint, p1Desc, 13, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
16 robot.ARCStart(1, 0, 10000);
17 robot.WeaveStart(0);
18 robot.MoveL(p2Joint, p2Desc, 13, 0, 20, 100, 100, -1, 0, exaxisPos, 0, 0, offdese,0,10);
19 robot.ARCEnd(1, 0, 10000);
20 robot.WeaveEnd(0);
21 return 0;
22}
14.28. Inizio saldatura segmentata
1/**
2* @brief Inizio saldatura segmentata
3* @param [in] startDesePos Posizione cartesiana punto iniziale
4* @param [in] endDesePos Posa cartesiana punto finale
5* @param [in] startJPos Posa giunti punto iniziale
6* @param [in] endJPos Posa giunti punto finale
7* @param [in] weldLength Lunghezza segmento saldatura (mm)
8* @param [in] noWeldLength Lunghezza segmento non saldatura (mm)
9* @param [in] weldIOType Tipo IO saldatura (0-IO quadro controllo; 1-IO esteso)
10* @param [in] arcNum Numero file configurazione saldatrice
11* @param [in] weldTimeout Timeout accensione/spegnimento arco
12* @param [in] isWeave Se oscillazione
13* @param [in] weaveNum Numero configurazione parametri oscillazione
14* @param [in] tool Numero utensile
15* @param [in] user Numero pezzo
16* @param [in] vel Percentuale velocità, intervallo [0~100]
17* @param [in] acc Percentuale accelerazione, intervallo [0~100], attualmente non disponibile
18* @param [in] ovl Fattore di scala velocità, intervallo [0~100]
19* @param [in] blendR [-1.0]-Movimento fino a posizione (bloccante), [0~1000.0]-Raggio smoothing (non bloccante), unità mm
20* @param [in] epos Posizione assi estesi, unità mm
21* @param [in] search 0-Nessuna ricerca filo, 1-Ricerca filo
22* @param [in] offset_flag 0-Nessun offset, 1-Offset sistema base/pezzo, 2-Offset sistema utensile
23* @param [in] offset_pos Quantità offset posa
24* @return Codice di errore
25*/
26int SegmentWeldStart(DescPose startDesePos, DescPose endDesePos, JointPos startJPos, JointPos endJPos, double weldLength, double noWeldLength, int weldIOType,int arcNum, int weldTimeout, boolean isWeave, int weaveNum, int tool, int user, double vel, double acc, double ovl, double blendR, ExaxisPos epos, int search, int offset_flag, DescPose offset_pos);
14.29. Esempio codice saldatura segmentata robot
1public static int TestSegWeld(Robot robot)
2{
3 robot.WeldingSetCurrent(0, 230, 0, 0);
4 robot.WeldingSetVoltage(0, 24, 0, 1);
5
6 DescPose p1Desc=new DescPose(228.879, -503.594, 453.984, -175.580, 8.293, 171.267);
7 JointPos p1Joint=new JointPos(102.700, -85.333, 90.518, -102.365, -83.932, 22.134);
8
9 DescPose p2Desc=new DescPose(-333.302, -435.580, 449.866, -174.997, 2.017, 109.815);
10 JointPos p2Joint=new JointPos(41.862, -85.333, 90.526, -100.587, -90.014, 22.135);
11
12 ExaxisPos exaxisPos=new ExaxisPos(0, 0, 0, 0);
13 DescPose offdese=new DescPose(0, 0, 0, 0, 0, 0);
14
15 robot.GetForwardKin(p1Joint,p1Desc);
16 robot.GetForwardKin(p2Joint,p2Desc);
17
18 int rtn = robot.SegmentWeldStart(p1Desc, p2Desc, p1Joint, p2Joint, 20, 20, 0, 0, 5000, true,0, 1, 0, 30, 100, 100, -1, exaxisPos, 0, 0, offdese);
19 return 0;
20}
14.30. Inizio oscillazione simulazione
1/**
2* @brief Inizio oscillazione simulazione
3* @param [in] weaveNum Numero parametri oscillazione
4* @return Codice di errore
5*/
6int WeaveStartSim(int weaveNum);
14.31. Fine oscillazione simulazione
1/**
2* @brief Fine oscillazione simulazione
3* @param [in] weaveNum Numero parametri oscillazione
4* @return Codice di errore
5*/
6int WeaveEndSim(int weaveNum);
14.32. Inizio rilevamento preallarme traiettoria (senza movimento)
1/**
2* @brief Inizio rilevamento preallarme traiettoria (senza movimento)
3* @param [in] weaveNum Numero parametri oscillazione
4* @return Codice di errore
5*/
6int WeaveInspectStart(int weaveNum);
14.33. Fine rilevamento preallarme traiettoria (senza movimento)
1/**
2* @brief Fine rilevamento preallarme traiettoria (senza movimento)
3* @param [in] weaveNum Numero parametri oscillazione
4* @return Codice di errore
5*/
6int WeaveInspectEnd(int weaveNum);
14.34. Inizio variazione graduale oscillazione
Cambiato nella versione Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Inizio variazione graduale oscillazione
3* @param [in] weaveChangeFlag 1-Varia parametri oscillazione; 2-Varia parametri oscillazione + velocità saldatura
4* @param [in] weaveNum Numero oscillazione
5* @param [in] velStart Velocità inizio saldatura, (cm/min)
6* @param [in] velEnd Velocità fine saldatura, (cm/min)
7* @return Codice di errore
8*/
9int WeaveChangeStart(int weaveChangeFlag, int weaveNum, double velStart, double velEnd)
14.35. Esempio codice saldatura con variazione graduale oscillazione robot
1public static int TestWeave(Robot robot)
2{
3 DescPose p1Desc=new DescPose(228.879, -503.594, 453.984, -175.580, 8.293, 171.267);
4 JointPos p1Joint=new JointPos(102.700, -85.333, 90.518, -102.365, -83.932, 22.134);
5
6 DescPose p2Desc=new DescPose(-333.302, -435.580, 449.866, -174.997, 2.017, 109.815);
7 JointPos p2Joint=new JointPos(41.862, -85.333, 90.526, -100.587, -90.014, 22.135);
8
9 ExaxisPos exaxisPos=new ExaxisPos(0, 0, 0, 0);
10 DescPose offdese=new DescPose(0, 0, 0, 0, 0, 0);
11
12 robot.MoveJ(p1Joint, p1Desc, 13, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
13 robot.WeaveStartSim(0);
14 robot.MoveL(p2Joint, p2Desc, 13, 0, 20, 100, 100, -1, 0, exaxisPos, 0, 0, offdese,0,10);
15 robot.WeaveEndSim(0);
16 robot.MoveJ(p1Joint, p1Desc, 13, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
17 robot.WeaveInspectStart(0);
18 robot.MoveL(p2Joint, p2Desc, 13, 0, 20, 100, 100, -1, 0, exaxisPos, 0, 0, offdese,0,10);
19 robot.WeaveInspectEnd(0);
20
21 robot.WeldingSetVoltage(1, 19, 0, 0);
22 robot.WeldingSetCurrent(1, 190, 0, 0);
23 robot.MoveL(p1Joint, p1Desc, 1, 1, 100, 100, 50, -1,0, exaxisPos, 0, 0, offdese,0,10);
24 robot.ARCStart(1, 0, 10000);
25 robot.ArcWeldTraceControl(1, 0, 1, 0.06, 5, 5, 60, 1, 0.06, 5, 5, 80, 0, 0, 4, 1, 10, 0, 0);
26 robot.WeaveStart(0);
27 robot.WeaveChangeStart(1, 0, 50, 30);
28 robot.MoveL(p2Joint, p2Desc, 1, 1, 100, 100, 1, -1, 0,exaxisPos, 0, 0, offdese,0,10);
29 robot.WeaveChangeEnd();
30 robot.WeaveEnd(0);
31 robot.ArcWeldTraceControl(0, 0, 1, 0.06, 5, 5, 60, 1, 0.06, 5, 5, 80, 0, 0, 4, 1, 10, 0, 0);
32 robot.ARCEnd(1, 0, 10000);
33 return 0;
34}
14.36. Fine variazione graduale oscillazione
Nuovo nella versione Java: SDK-v1.0.2-3.7.9
1/**
2* @brief Fine variazione graduale oscillazione
3* @return Codice di errore
4*/
5int WeaveChangeEnd();
14.37. IO estesi - Configurazione segnale rilevamento gas saldatrice
1/**
2* @brief IO estesi - Configurazione segnale rilevamento gas saldatrice
3* @param [in] DONum Numero DO esteso segnale rilevamento gas
4* @return Codice di errore
5*/
6int SetAirControlExtDoNum(int DONum);
14.38. IO estesi - Configurazione segnale accensione arco saldatrice
1/**
2* @brief IO estesi - Configurazione segnale accensione arco saldatrice
3* @param [in] DONum Numero DO esteso segnale accensione arco
4* @return Codice di errore
5*/
6int SetArcStartExtDoNum(int DONum);
14.39. IO estesi - Configurazione segnale alimentazione filo inversa saldatrice
1/**
2* @brief IO estesi - Configurazione segnale alimentazione filo inversa saldatrice
3* @param [in] DONum Numero DO esteso segnale alimentazione filo inversa
4* @return Codice di errore
5*/
6int SetWireReverseFeedExtDoNum(int DONum);
14.40. IO estesi - Configurazione segnale alimentazione filo in avanti saldatrice
1/**
2* @brief IO estesi - Configurazione segnale alimentazione filo in avanti saldatrice
3* @param [in] DONum Numero DO esteso segnale alimentazione filo in avanti
4* @return Codice di errore
5*/
6int SetWireForwardFeedExtDoNum(int DONum);
14.41. IO estesi - Configurazione segnale successo accensione arco saldatrice
1/**
2* @brief IO estesi - Configurazione segnale successo accensione arco saldatrice
3* @param [in] DINum Numero DI esteso segnale successo accensione arco
4* @return Codice di errore
5*/
6int SetArcDoneExtDiNum(int DINum);
14.42. IO estesi - Configurazione segnale pronto saldatrice
1/**
2* @brief IO estesi - Configurazione segnale pronto saldatrice
3* @param [in] DINum Numero DI esteso segnale pronto saldatrice
4* @return Codice di errore
5*/
6int SetWeldReadyExtDiNum(int DINum);
14.43. IO estesi - Configurazione segnali recupero interruzione saldatura
1/**
2* @brief IO estesi - Configurazione segnali recupero interruzione saldatura
3* @param [in] reWeldDINum Numero DI esteso segnale riavvio saldatura dopo interruzione
4* @param [in] abortWeldDINum Numero DI esteso segnale uscita saldatura dopo interruzione
5* @return Codice di errore
6*/
7int SetExtDIWeldBreakOffRecover(int reWeldDINum, int abortWeldDINum);
14.44. Esempio codice impostazione segnali IO estesi saldatura
1public static int TestExtDIConfig(Robot robot)
2{
3 robot.SetArcStartExtDoNum(10);
4 robot.SetAirControlExtDoNum(20);
5 robot.SetWireForwardFeedExtDoNum(30);
6 robot.SetWireReverseFeedExtDoNum(40);
7
8 robot.SetWeldReadyExtDiNum(50);
9 robot.SetArcDoneExtDiNum(60);
10 robot.SetExtDIWeldBreakOffRecover(70, 80);
11 robot.SetWireSearchExtDIONum(0, 1);
12
13 return 0;
14}
14.45. Controllo tracciamento arco
Cambiato nella versione Java: SDK-v1.0.2-3.7.9
1/**
2* @brief Controllo tracciamento arco
3* @param [in] flag Interruttore, 0-Spegnimento; 1-Accensione
4* @param [in] delaytime Tempo ritardo, unità ms
5* @param [in] isLeftRight Compensazione deviazione sinistra-destra
6* @param [in] klr Coefficiente regolazione sinistra-destra (sensibilità)
7* @param [in] tStartLr Tempo inizio compensazione sinistra-destra cyc
8* @param [in] stepMaxLr Compensazione massima per ciclo sinistra-destra mm
9* @param [in] sumMaxLr Compensazione totale massima sinistra-destra mm
10* @param [in] isUpLow Compensazione deviazione alto-basso
11* @param [in] kud Coefficiente regolazione alto-basso (sensibilità)
12* @param [in] tStartUd Tempo inizio compensazione alto-basso cyc
13* @param [in] stepMaxUd Compensazione massima per ciclo alto-basso mm
14* @param [in] sumMaxUd Compensazione totale massima alto-basso
15* @param [in] axisSelect Selezione sistema coordinate alto-basso, 0-Oscillazione; 1-Utensile; 2-Base
16* @param [in] referenceType Modalità impostazione corrente riferimento alto-basso, 0-Retroazione; 1-Costante
17* @param [in] referSampleStartUd Conteggio inizio campionamento corrente riferimento alto-basso (retroazione), cyc
18* @param [in] referSampleCountUd Conteggio cicli campionamento corrente riferimento alto-basso (retroazione), cyc
19* @param [in] referenceCurrent Corrente riferimento alto-basso mA
20* @param [in] offsetType Tipo tracciamento offset, 0-Nessun offset; 1-Campionamento; 2-Percentuale
21* @param [in] offsetParameter Parametro offset; Campionamento (tempo inizio campionamento offset, default un ciclo); Percentuale (percentuale offset (-100 ~ 100))
22* @return Codice di errore
23*/
24int ArcWeldTraceControl(int flag, double delaytime, int isLeftRight, double klr, double tStartLr, double stepMaxLr, double sumMaxLr, int isUpLow, double kud, double tStartUd, double stepMaxUd, double sumMaxUd, int axisSelect, int referenceType, double referSampleStartUd, double referSampleCountUd, double referenceCurrent,int offsetType, int offsetParameter);
14.46. Selezione banda passante AI tracciamento arco
1/**
2* @brief Selezione banda passante AI tracciamento arco
3* @param channel Selezione banda passante AI tracciamento arco,[0-3]
4* @return Codice di errore
5*/
6public int ArcWeldTraceExtAIChannelConfig(int channel)
14.47. Attivazione tracciamento arco + compensazione multistrato multi-passata
1/**
2* @brief Attivazione tracciamento arco + compensazione multistrato multi-passata
3* @return Codice di errore
4*/
5public int ArcWeldTraceReplayStart()
14.48. Disattivazione tracciamento arco + compensazione multistrato multi-passata
1/**
2* @brief Disattivazione tracciamento arco + compensazione multistrato multi-passata
3* @return Codice di errore
4*/
5public int ArcWeldTraceReplayEnd()
14.49. Trasformazione coordinate offset - Saldatura multistrato multi-passata
1/**
2* @brief Trasformazione coordinate offset - Saldatura multistrato multi-passata
3* @param pointO Posa cartesiana punto riferimento
4* @param pointX Posa cartesiana punto direzione offset X
5* @param pointZ Posa cartesiana punto direzione offset Z
6* @param dx Offset direzione x (mm)
7* @param dz Offset direzione z (mm)
8* @param dry Offset rotazione asse y (°)
9* @param offset Risultato calcolo offset
10* @return Codice di errore
11*/
12public int MultilayerOffsetTrsfToBase(DescTran pointO, DescTran pointX, DescTran pointZ, double dx, double dz, double dry, DescPose offset)
14.50. Esempio codice tracciamento arco saldatura multistrato multi-passata
1public static int TestArcWeldTrace(Robot robot)
2{
3 JointPos mulitilineorigin1_joint=new JointPos(-24.090, -63.501, 84.288, -111.940, -93.426, 57.669);
4 DescPose mulitilineorigin1_desc=new DescPose(-677.559, 190.951, -1.205, 1.144, -41.482, -82.577);
5
6 DescTran mulitilineX1_desc=new DescTran(0,0,0);
7 mulitilineX1_desc.x = -677.556;
8 mulitilineX1_desc.y = 211.949;
9 mulitilineX1_desc.z = -1.206;
10
11 DescTran mulitilineZ1_desc=new DescTran(0,0,0);
12 mulitilineZ1_desc.x = -677.564;
13 mulitilineZ1_desc.y = 190.956;
14 mulitilineZ1_desc.z = 19.817;
15
16 JointPos mulitilinesafe_joint=new JointPos(-25.734, -63.778, 81.502, -108.975, -93.392, 56.021);
17 DescPose mulitilinesafe_desc=new DescPose(-677.561, 211.950, 19.812, 1.144, -41.482, -82.577);
18 JointPos mulitilineorigin2_joint=new JointPos(-29.743, -75.623, 101.241, -116.354, -94.928, 55.735);
19 DescPose mulitilineorigin2_desc=new DescPose(-563.961, 215.359, -0.681, 2.845, -40.476, -87.443);
20
21 DescTran mulitilineX2_desc=new DescTran(0,0,0);
22 mulitilineX2_desc.x = -563.965;
23 mulitilineX2_desc.y = 220.355;
24 mulitilineX2_desc.z = -0.680;
25
26 DescTran mulitilineZ2_desc=new DescTran(0,0,0);
27 mulitilineZ2_desc.x = -563.968;
28 mulitilineZ2_desc.y = 215.362;
29 mulitilineZ2_desc.z = 4.331;
30
31 ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
32 DescPose offset=new DescPose(0, 0, 0, 0, 0, 0);
33
34 robot.Sleep(10);
35 int error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
36
37 error = robot.MoveL(mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1, 0,epos, 0, 0, offset, 0, 100);
38
39 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
40
41 error = robot.MoveL(mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 0, 10, 100, 100, -1, 0,epos, 0, 0, offset, 0, 100);
42
43 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
44
45 error = robot.MoveL(mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1,0, epos, 0, 0, offset, 0, 100);
46
47 error = robot.ARCStart(1, 0, 3000);
48
49 error = robot.WeaveStart(0);
50
51 error = robot.ArcWeldTraceControl(1, 0, 1, 0.06, 5, 5, 50, 1, 0.06, 5, 5, 55, 0, 0, 4, 1, 10,0,0);
52
53 error = robot.MoveL(mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 0, 1, 100, 100, -1, 0,epos, 0, 0,offset, 0, 100);
54
55 error = robot.ArcWeldTraceControl(0, 0, 1, 0.06, 5, 5, 50, 1, 0.06, 5, 5, 55, 0, 0, 4, 1, 10,0,0);
56
57 error = robot.WeaveEnd(0);
58
59 error = robot.ARCEnd(1, 0, 10000);
60
61 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
62
63 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin1_desc.tran, mulitilineX1_desc, mulitilineZ1_desc, 10.0, 0.0, 0.0, offset);
64
65 error = robot.MoveL(mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1, 0,epos, 0, 1, offset, 0, 100);
66
67 error = robot.ARCStart(1, 0, 3000);
68
69 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin2_desc.tran, mulitilineX2_desc, mulitilineZ2_desc, 10, 0, 0, offset);
70
71 error = robot.ArcWeldTraceReplayStart();
72
73 error = robot.MoveL(mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 0, 2, 100, 100, -1, 0,epos, 0, 1, offset, 0, 100);
74
75 error = robot.ArcWeldTraceReplayEnd();
76
77 error = robot.ARCEnd(1, 0, 10000);
78
79 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
80
81 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin1_desc.tran, mulitilineX1_desc, mulitilineZ1_desc, 0, 10, 0, offset);
82
83 error = robot.MoveL(mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1,0, epos, 0, 1, offset, 0, 100);
84
85 error = robot.ARCStart(1, 0, 3000);
86
87 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin2_desc.tran, mulitilineX2_desc, mulitilineZ2_desc, 0, 10, 0, offset);
88
89 error = robot.ArcWeldTraceReplayStart();
90
91 error = robot.MoveL(mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 0, 2, 100, 100, -1,0, epos, 0, 1, offset, 0, 100);
92
93 error = robot.ArcWeldTraceReplayEnd();
94
95 error = robot.ARCEnd(1, 0, 3000);
96
97 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
98
99 robot.CloseRPC();
100 return 0;
101}
14.51. Selezione canale AI retroazione corrente saldatrice tracciamento arco
Nuovo nella versione Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Selezione canale AI retroazione corrente saldatrice tracciamento arco
3* @param [in] channel Canale; 0-AI esteso0; 1-AI esteso1; 2-AI esteso2; 3-AI esteso3; 4-AI quadro controllo0; 5-AI quadro controllo1
4* @return Codice di errore
5*/
6int ArcWeldTraceAIChannelCurrent(int channel)
14.52. Selezione canale AI retroazione tensione saldatrice tracciamento arco
Nuovo nella versione Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Selezione canale AI retroazione tensione saldatrice tracciamento arco
3* @param [in] channel Canale; 0-AI esteso0; 1-AI esteso1; 2-AI esteso2; 3-AI esteso3; 4-AI quadro controllo0; 5-AI quadro controllo1
4* @return Codice di errore
5*/
6int ArcWeldTraceAIChannelVoltage(int channel)
14.53. Parametri conversione retroazione corrente saldatrice tracciamento arco
Nuovo nella versione Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Parametri conversione retroazione corrente saldatrice tracciamento arco
3* @param [in] AILow Limite inferiore canale AI, valore default 0V, intervallo [0-10V]
4* @param [in] AIHigh Limite superiore canale AI, valore default 10V, intervallo [0-10V]
5* @param [in] currentLow Valore corrente saldatrice corrispondente limite inferiore AI, valore default 0V, intervallo [0-200V]
6* @param [in] currentHigh Valore corrente saldatrice corrispondente limite superiore AI, valore default 100V, intervallo [0-200V]
7* @return Codice di errore
8*/
9int ArcWeldTraceCurrentPara(double AILow, double AIHigh, double currentLow, double currentHigh)
14.54. Parametri conversione retroazione tensione saldatrice tracciamento arco
Nuovo nella versione Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Parametri conversione retroazione tensione saldatrice tracciamento arco
3* @param [in] AILow Limite inferiore canale AI, valore default 0V, intervallo [0-10V]
4* @param [in] AIHigh Limite superiore canale AI, valore default 10V, intervallo [0-10V]
5* @param [in] voltageLow Valore tensione saldatrice corrispondente limite inferiore AI, valore default 0V, intervallo [0-200V]
6* @param [in] voltageHigh Valore tensione saldatrice corrispondente limite superiore AI, valore default 100V, intervallo [0-200V]
7* @return Codice di errore
8*/
9int ArcWeldTraceVoltagePara(double AILow, double AIHigh, double voltageLow, double voltageHigh)
14.55. Esempio codice tracciamento arco
1public static void WeldTraceControlWithCtrlBoxAI(Robot robot)
2{
3 DescPose startdescPose = new DescPose(-473.86, 257.879, -20.849, -37.317, -42.021, 2.543);
4 JointPos startjointPos = new JointPos(-43.487, -76.526, 95.568, -104.445, -89.356, 3.72);
5
6 DescPose safedescPose = new DescPose(-504.043, 275.181, 40.908, -28.002, -42.025, -14.044);
7 JointPos safejointPos = new JointPos(-39.078, -76.732, 87.227, -99.47, -94.301, 18.714);
8
9 DescPose enddescPose = new DescPose(-499.844, 141.225, 7.72, -34.856, -40.17, 13.13);
10 JointPos endjointPos = new JointPos(-31.305, -82.998, 99.401, -104.426, -89.35, 3.696);
11
12 ExaxisPos exaxisPos = new ExaxisPos(0, 0, 0, 0);
13 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
14 //Movimento iniziale a punto sicuro
15 robot.MoveJ(safejointPos, safedescPose, 1, 0, 5, 20, 100, exaxisPos, -1, 0, offdese);
16
17 WeldCurrentAORelation current = new WeldCurrentAORelation(0, 495, 1, 10, 0);
18 WeldVoltageAORelation voltage = new WeldVoltageAORelation(10, 45, 1, 10, 1);
19 robot.WeldingSetCurrentRelation(current);//Relazione corrente-uscita analogica
20 robot.WeldingSetVoltageRelation(voltage);//Relazione tensione-uscita analogica
21 robot.WeldingSetVoltage(0, 25, 1, 0);//Imposta tensione
22 robot.WeldingSetCurrent(0, 260, 0, 0);//Imposta corrente
23
24 int rtn = robot.ArcWeldTraceAIChannelCurrent(4);
25 System.out.println("ArcWeldTraceAIChannelCurrent rtn is " + rtn);
26
27 rtn = robot.ArcWeldTraceAIChannelVoltage(5);
28 System.out.println("ArcWeldTraceAIChannelVoltage rtn is " + rtn);
29
30 rtn = robot.ArcWeldTraceCurrentPara(0.0, 5, 0, 500);
31 System.out.println("ArcWeldTraceCurrentPara rtn is " + rtn);
32
33 rtn = robot.ArcWeldTraceVoltagePara(1.018, 10, 0, 50);
34 System.out.println("ArcWeldTraceVoltagePara rtn is " + rtn);
35
36 robot.MoveJ(startjointPos, startdescPose, 1, 0, 20, 20, 100, exaxisPos, -1, 0, offdese);
37 robot.ArcWeldTraceControl(1, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
38 robot.ARCStart(0, 0, 10000);
39 robot.WeaveStart(0);
40 robot.MoveL(endjointPos, enddescPose, 1, 0, 100, 100, 2, -1, 0, exaxisPos, 0, 0, offdese, 0, 10);
41 robot.ARCEnd(0, 0, 10000);
42 robot.WeaveEnd(0);
43 robot.ArcWeldTraceControl(0, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
44
45 robot.MoveJ(safejointPos, safedescPose, 1, 0, 20, 20, 100, exaxisPos, -1, 0, offdese);
46}
14.56. Impostazione porte IO estesi ricerca filo
1/**
2* @brief Impostazione porte IO estesi ricerca filo
3* @param [in] searchDoneDINum Porta DO successo ricerca filo (0-127)
4* @param [in] searchStartDONum Porta DO controllo avvio/arresto ricerca filo (0-127)
5* @return Codice di errore
6*/
7int SetWireSearchExtDIONum(int searchDoneDINum, int searchStartDONum);
14.57. Programma di esempio
1private static void TestUDPWireSearch(Robot robot)
2{
3 UDPComParam param = new UDPComParam("192.168.58.88", 2021, 2, 100, 3, 100, 1, 100, 10,0);
4 robot.ExtDevSetUDPComParam(param);//Comunicazione UDP assi estesi
5
6 robot.SetWireSearchExtDIONum(0, 0);
7
8 int rtn0, rtn1, rtn2 = 0;
9 ExaxisPos exaxisPos = new ExaxisPos(0.0, 0.0, 0.0, 0.0);
10 DescPose offdese = new DescPose(0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
11
12 DescPose descStart = new DescPose(-158.767, -510.596, 271.709, -179.427, -0.745, -137.349);
13 JointPos jointStart = new JointPos(61.667, -79.848, 108.639, -119.682, -89.700, -70.985);
14
15 DescPose descEnd = new DescPose(0.332, -516.427, 270.688, 178.165, 0.017, -119.989);
16 JointPos jointEnd = new JointPos(79.021, -81.839, 110.752, -118.298, -91.729, -70.981);
17
18 robot.MoveL(jointStart, descStart, 1, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese, 0, 100);
19 robot.MoveL(jointEnd, descEnd, 1, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese, 0, 100);
20
21 DescPose descREF0A = new DescPose(-66.106, -560.746, 270.381, 176.479, -0.126, -126.745);
22 JointPos jointREF0A = new JointPos(73.531, -75.588, 102.941, -116.250, -93.347, -69.689);
23
24 DescPose descREF0B = new DescPose(-66.109, -528.440, 270.407, 176.479, -0.129, -126.744);
25 JointPos jointREF0B = new JointPos(72.534, -79.625, 108.046, -117.379, -93.366, -70.687);
26
27 DescPose descREF1A = new DescPose(72.975, -473.242, 270.399, 176.479, -0.129, -126.744);
28 JointPos jointREF1A = new JointPos(87.169, -86.509, 115.710, -117.341, -92.993, -56.034);
29
30 DescPose descREF1B = new DescPose(31.355, -473.238, 270.405, 176.480, -0.130, -126.745);
31 JointPos jointREF1B = new JointPos(82.117, -87.146, 116.470, -117.737, -93.145, -61.090);
32
33 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
34 robot.MoveL(jointREF0A, descREF0A, 1, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese, 0, 100); //Punto iniziale
35 robot.MoveL(jointREF0B, descREF0B, 1, 0, 10, 100, 100, -1, exaxisPos, 1, 0, offdese, 0, 100); //Punto direzione
36 rtn1 = robot.WireSearchWait("REF0");
37 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
38
39 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
40 robot.MoveL(jointREF1A, descREF1A, 1, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese, 0, 100); //Punto iniziale
41 robot.MoveL(jointREF1B, descREF1B, 1, 0, 10, 100, 100, -1, exaxisPos, 1, 0, offdese, 0, 100); //Punto direzione
42 rtn1 = robot.WireSearchWait("REF1");
43 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
44
45 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
46 robot.MoveL(jointREF0A, descREF0A, 1, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese, 0, 100); //Punto iniziale
47 robot.MoveL(jointREF0B, descREF0B, 1, 0, 10, 100, 100, -1, exaxisPos, 1, 0, offdese, 0, 100); //Punto direzione
48 rtn1 = robot.WireSearchWait("RES0");
49 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
50
51 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
52 robot.MoveL(jointREF1A, descREF1A, 1, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese, 0, 100); //Punto iniziale
53 robot.MoveL(jointREF1B, descREF1B, 1, 0, 10, 100, 100, -1, exaxisPos, 1, 0, offdese, 0, 100); //Punto direzione
54 rtn1 = robot.WireSearchWait("RES1");
55 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
56
57 String[] varNameRef = {"REF0", "REF1", "#", "#", "#", "#"};
58 String[] varNameRes = {"RES0", "RES1", "#", "#", "#", "#"};
59 int offectFlag = 0;
60 //DescPose offectPos = new DescPose(0, 0, 0, 0, 0, 0);
61 DescOffset offset = new DescOffset();
62 rtn0 = robot.GetWireSearchOffset(0, 0, varNameRef, varNameRes, offset);
63 robot.PointsOffsetEnable(0, offset.offset);
64 robot.MoveL(jointStart, descStart, 1, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese, 0, 100);
65 robot.MoveL(jointEnd, descEnd, 1, 0, 100, 100, 100, -1, exaxisPos, 1, 0, offdese, 0, 100);
66 robot.PointsOffsetDisable();
67}
14.58. Inizio ricerca filo
1/**
2* @brief Inizio ricerca filo
3* @param [in] refPos 1-Punto riferimento 0-Punto contatto
4* @param [in] searchVel Velocità ricerca %
5* @param [in] searchDis Distanza ricerca mm
6* @param [in] autoBackFlag Flag ritorno automatico, 0-Nessuno; -Automatico
7* @param [in] autoBackVel Velocità ritorno automatico %
8* @param [in] autoBackDis Distanza ritorno automatico mm
9* @param [in] offectFlag 1-Ricerca con offset; 0-Ricerca punto insegnato
10* @return Codice di errore
11*/
12int WireSearchStart(int refPos, double searchVel, int searchDis, int autoBackFlag, double autoBackVel, int autoBackDis, int offectFlag);
14.59. Fine ricerca filo
1/**
2* @brief Fine ricerca filo
3* @param [in] refPos 1-Punto riferimento 2-Punto contatto
4* @param [in] searchVel Velocità ricerca %
5* @param [in] searchDis Distanza ricerca mm
6* @param [in] autoBackFlag Flag ritorno automatico, 0-Nessuno; -Automatico
7* @param [in] autoBackVel Velocità ritorno automatico %
8* @param [in] autoBackDis Distanza ritorno automatico mm
9* @param [in] offectFlag 1-Ricerca con offset; 2-Ricerca punto insegnato
10* @return Codice di errore
11*/
12int WireSearchEnd(int refPos, double searchVel, int searchDis, int autoBackFlag, double autoBackVel, int autoBackDis, int offectFlag);
14.60. Calcolo offset ricerca filo
1/**
2* @brief Calcolo offset ricerca filo
3* @param [in] seamType Tipo cordone
4* @param [in] method Metodo calcolo
5* @param [in] varNameRef Punti riferimento 1-6, "#" indica variabile senza punto
6* @param [in] varNameRes Punti contatto 1-6, "#" indica variabile senza punto
7* @param [out] offset Posa offset [x, y, z, a, b, c] e modalità offset
8* @return Codice di errore
9*/
10int GetWireSearchOffset(int seamType, int method, String[] varNameRef, String[] varNameRes, DescOffset offset);
14.61. Attesa completamento ricerca filo
1/**
2* @brief Attesa completamento ricerca filo
3* @return Codice di errore
4*/
5int WireSearchWait(String name);
14.62. Scrittura punto contatto ricerca filo database
1/**
2* @brief Scrittura punto contatto ricerca filo database
3* @param [in] varName Nome punto contatto "RES0" ~ "RES99"
4* @param [in] pos Dati punto contatto [x, y, x, a, b, c]
5* @return Codice di errore
6*/
7int SetPointToDatabase(String varName, DescPose pos);
14.63. Esempio codice ricerca filo robot
1public static int TestWireSearch(Robot robot)
2{
3 DescPose toolCoord=new DescPose(0, 0, 200, 0, 0, 0);
4 robot.SetToolCoord(1, toolCoord, 0, 0, 1, 0);
5 DescPose wobjCoord=new DescPose(0, 0, 0, 0, 0, 0);
6 robot.SetWObjCoord(1, wobjCoord, 0);
7
8 int rtn0, rtn1, rtn2 = 0;
9 ExaxisPos exaxisPos = new ExaxisPos( 0, 0, 0, 0 );
10 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
11
12
13 DescPose descStart = new DescPose(216.543, 445.175, 93.465, 179.683, 1.757, -112.641);
14 JointPos jointStart = new JointPos(-128.345, -86.660, 114.679, -119.625, -89.219, 74.303);
15
16 DescPose descEnd =new DescPose(111.143, 523.384, 87.659, 179.703, 1.835, -97.750);
17 JointPos jointEnd =new JointPos(-113.454, -81.060, 109.328, -119.954, -89.218, 74.302 );
18
19 robot.MoveL(jointStart, descStart, 1, 1, 100, 100, 100, -1,0, exaxisPos, 0, 0, offdese,0,100);
20 robot.MoveL(jointEnd, descEnd, 1, 1, 100, 100, 100, -1, 0,exaxisPos, 0, 0, offdese,0,100);
21
22 DescPose descREF0A = new DescPose(142.135, 367.604, 86.523, 179.728, 1.922, -111.089);
23 JointPos jointREF0A =new JointPos(-126.794, -100.834, 128.922, -119.864, -89.218, 74.302);
24
25 DescPose descREF0B = new DescPose(254.633, 463.125, 72.604, 179.845, 2.341, -114.704);
26 JointPos jointREF0B = new JointPos(-130.413, -81.093, 112.044, -123.163, -89.217, 74.303);
27
28 DescPose descREF1A =new DescPose(92.556, 485.259, 47.476, -179.932, 3.130, -97.512);
29 JointPos jointREF1A =new JointPos(-113.231, -83.815, 119.877, -129.092, -89.217, 74.303);
30
31 DescPose descREF1B =new DescPose(203.103, 583.836, 63.909, 179.991, 2.854, -103.372);
32 JointPos jointREF1B = new JointPos(-119.088, -69.676, 98.692, -121.761, -89.219, 74.303);
33
34 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
35 robot.MoveL(jointREF0A, descREF0A, 1, 1, 100, 100, 100, -1,0, exaxisPos, 0, 0, offdese,0,10); //Punto iniziale
36 robot.MoveL(jointREF0B, descREF0B, 1, 1, 100, 100, 100, -1,0, exaxisPos, 1, 0, offdese,0,10); //Punto direzione
37 rtn1 = robot.WireSearchWait("REF0");
38 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
39
40 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
41 robot.MoveL(jointREF1A, descREF1A, 1, 1, 100, 100, 100, -1, 0,exaxisPos, 0, 0, offdese,0,10); //Punto iniziale
42 robot.MoveL(jointREF1B, descREF1B, 1, 1, 100, 100, 100, -1,0, exaxisPos, 1, 0, offdese,0,10); //Punto direzione
43 rtn1 = robot.WireSearchWait("REF1");
44 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
45
46 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
47 robot.MoveL(jointREF0A, descREF0A, 1, 1, 100, 100, 100, -1,0, exaxisPos, 0, 0, offdese,0,10); //Punto iniziale
48 robot.MoveL(jointREF0B, descREF0B, 1, 1, 100, 100, 100, -1,0, exaxisPos, 1, 0, offdese,0,10); //Punto direzione
49 rtn1 = robot.WireSearchWait("RES0");
50 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
51
52 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
53 robot.MoveL(jointREF1A, descREF1A, 1, 1, 100, 100, 100, -1, 0,exaxisPos, 0, 0, offdese,0,10); //Punto iniziale
54 robot.MoveL(jointREF1B, descREF1B, 1, 1, 100, 100, 100, -1, 0,exaxisPos, 1, 0, offdese,0,10); //Punto direzione
55 rtn1 = robot.WireSearchWait("RES1");
56 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
57
58 String[] varNameRef =new String[]{"REF0", "REF1", "#", "#", "#", "#"};
59 String[] varNameRes = new String[]{ "RES0", "RES1", "#", "#", "#", "#" };
60 int offectFlag = 0;
61
62 DescPose pos = new DescPose(0,0,0,0,0,0);
63 DescOffset offectPos=new DescOffset();
64 offectPos.offset=pos;
65 offectPos.offsetFlag=0;
66
67 rtn0 = robot.GetWireSearchOffset(0, 0, varNameRef, varNameRes, offectPos);
68 robot.PointsOffsetEnable(0, pos);
69 robot.MoveL(jointStart, descStart, 1, 1, 100, 100, 100, -1,0, exaxisPos, 0, 0, offdese,0,10);
70 robot.MoveL(jointEnd, descEnd, 1, 1, 100, 100, 100, -1, 0,exaxisPos, 1, 0, offdese,0,10);
71 robot.PointsOffsetDisable();
72
73 robot.CloseRPC();
74 return 0;
75}
14.64. Inizio variazione graduale tensione saldatura
Nuovo nella versione Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Inizio variazione graduale tensione saldatura
3* @param [in] IOType Tipo controllo; 0-IO quadro controllo; 1-Protocollo comunicazione digitale (UDP);2-Protocollo comunicazione digitale (ModbusTCP)
4* @param [in] voltageStart Tensione saldatura iniziale (V)
5* @param [in] voltageEnd Tensione saldatura finale (V)
6* @param [in] AOIndex Numero porta AO quadro controllo (0-1)
7* @param [in] blend Smoothing 0-Nessuno; 1-Sì
8* @return Codice di errore
9*/
10int WeldingSetVoltageGradualChangeStart(int IOType, double voltageStart, double voltageEnd, int AOIndex, int blend)
14.65. Fine variazione graduale tensione saldatura
Nuovo nella versione Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Fine variazione graduale tensione saldatura
3* @return Codice di errore
4*/
5int WeldingSetVoltageGradualChangeEnd()
14.66. Inizio variazione graduale corrente saldatura
Nuovo nella versione Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Inizio variazione graduale corrente saldatura
3* @param [in] IOType Tipo controllo; 0-IO quadro controllo; 1-Protocollo comunicazione digitale (UDP);2-Protocollo comunicazione digitale (ModbusTCP)
4* @param [in] currentStart Corrente saldatura iniziale (A)
5* @param [in] currentEnd Corrente saldatura finale (A)
6* @param [in] AOIndex Numero porta AO quadro controllo (0-1)
7* @param [in] blend Smoothing 0-Nessuno; 1-Sì
8* @return Codice di errore
9*/
10int WeldingSetCurrentGradualChangeStart(int IOType, double currentStart, double currentEnd, int AOIndex, int blend)
14.67. Fine variazione graduale corrente saldatura
Nuovo nella versione Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Fine variazione graduale corrente saldatura
3* @return Codice di errore
4*/
5int WeldingSetCurrentGradualChangeEnd()
14.68. Esempio codice variazione graduale corrente/tensione saldatura robot
1public static void WeldparamChange(Robot robot)
2{
3 DescPose startdescPose = new DescPose(-484.707, 276.996, -14.013, -37.657, -40.508, -1.548);
4 JointPos startjointPos = new JointPos(-45.421, -75.673, 93.627, -104.302, -87.938, 6.005);
5
6 DescPose enddescPose = new DescPose(-508.767, 137.109, -13.966, -37.639, -40.508, -1.559);
7 JointPos endjointPos = new JointPos(-32.768, -80.947, 100.254, -106.201, -87.201, 18.648);
8
9 DescPose safedescPose = new DescPose(-484.709, 294.436, 13.621, -37.660, -40.508, -1.545);
10 JointPos safejointPos = new JointPos(-46.604, -75.410, 89.109, -100.003, -88.012, 4.823);
11
12 ExaxisPos exaxisPos = new ExaxisPos(0, 0, 0, 0);
13 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
14
15 WeldCurrentAORelation cur = new WeldCurrentAORelation(0, 495, 1, 10, 0);
16 WeldVoltageAORelation vol = new WeldVoltageAORelation(10, 45, 1, 10, 1);
17 robot.WeldingSetCurrentRelation(cur);
18 robot.WeldingSetVoltageRelation(vol);
19
20 robot.WeldingSetVoltage(0, 25, 1, 0);// ----Imposta tensione
21 robot.WeldingSetCurrent(0, 260, 0, 0);// ----Imposta corrente
22
23 robot.MoveJ(safejointPos, safedescPose, 1, 0, 5, 100, 100, exaxisPos, -1, 0, offdese);
24
25 robot.WeldingSetCurrentGradualChangeStart(0, 260, 220, 0, 0);
26 robot.WeldingSetVoltageGradualChangeStart(0, 25, 22, 1, 0);
27 int rtn = robot.ArcWeldTraceControl(1, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
28
29 robot.MoveJ(startjointPos, startdescPose, 1, 0, 5, 100, 100, exaxisPos, -1, 0, offdese);
30 System.out.println("ArcWeldTraceControl rtn is " + rtn);
31
32 robot.ARCStart(0, 0, 10000);
33 robot.WeaveStart(0);
34 robot.WeaveChangeStart(2, 1, 24, 36);
35 robot.MoveL(endjointPos, enddescPose, 1, 0, 100, 100, 2, -1, 0, exaxisPos, 0, 0, offdese, 0, 10);
36 robot.ARCEnd(0, 0, 10000);
37 robot.WeaveChangeEnd();
38 robot.WeaveEnd(0);
39 robot.ArcWeldTraceControl(0, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
40 robot.WeldingSetCurrentGradualChangeEnd();
41 robot.WeldingSetVoltageGradualChangeEnd();
42}
14.69. Impostazione parametri oscillazione personalizzati
Nuovo nella versione Java: SDK-v1.0.9-3.8.6
1/**
2 * @brief Imposta i parametri di oscillazione personalizzati
3 * @param [in] id Numero oscillazione personalizzata: 0-2
4 * @param [in] pointNum Numero punti oscillazione 0-10
5 * @param [in] point Dati punti estremi movimento x,y,z
6 * @param [in] stayTime Tempo permanenza oscillazione ms
7 * @param [in] frequency Frequenza oscillazione Hz
8 * @param [in] incStayType Modalità attesa: 0-Ciclo non include tempo attesa; 1-Ciclo include tempo attesa
9 * @param [in] stationary Attesa posizione oscillazione: 0-Movimento continuo durante attesa; 1-Posizione stazionaria durante attesa
10 * @return Codice di errore
11 */
12public int CustomWeaveSetPara(int id, int pointNum, DescTran[] point, double[] stayTime, double frequency, int incStayType, int stationary)
14.70. Ottenimento parametri oscillazione personalizzati
Nuovo nella versione Java: SDK-v1.0.9-3.8.6
1/**
2 * @brief Ottiene i parametri di oscillazione personalizzati
3 * @param [in] id Numero oscillazione personalizzata: 0-2
4 * @param [out] pointNum Numero punti oscillazione 0-10
5 * @param [out] point Dati punti estremi movimento x,y,z
6 * @param [out] stayTime Tempo permanenza oscillazione ms
7 * @param [out] frequency Frequenza oscillazione Hz
8 * @param [out] incStayType Modalità attesa: 0-Ciclo non include tempo attesa; 1-Ciclo include tempo attesa
9 * @param [out] stationary Attesa posizione oscillazione: 0-Movimento continuo durante attesa; 1-Posizione stazionaria durante attesa
10 * @return Codice di errore
11 */
12public int CustomWeaveGetPara(int id, int[] pointNum, DescTran[] point, double[] stayTime, double[] frequency, int[] incStayType, int[] stationary)
14.71. Esempio codice parametri oscillazione personalizzati
1public static void TestCustomWeaveSetPara(Robot robot)
2{
3 DescTran[] point = new DescTran[10];
4 point[0]=new DescTran();
5 point[0].x = -3;
6 point[0].y = -3;
7 point[0].z = 0;
8
9 point[1]=new DescTran();
10 point[1].x = -6;
11 point[1].y = 0;
12 point[1].z = 0;
13
14 point[2]=new DescTran();
15 point[2].x = -3;
16 point[2].y = 3;
17 point[2].z = 0;
18
19 point[3]=new DescTran();
20 point[3].x = 0;
21 point[3].y = 0;
22 point[3].z = 0;
23 point[4]=new DescTran(0,0,0);
24 point[5]=new DescTran(0,0,0);
25 point[6]=new DescTran(0,0,0);
26 point[7]=new DescTran(0,0,0);
27 point[8]=new DescTran(0,0,0);
28 point[9]=new DescTran(0,0,0);
29
30 double[] stayTime =new double[] { 0,0,0,0,0,0,0,0,0,0 };
31 int rtn = robot.CustomWeaveSetPara(2, 4, point, stayTime, 1.000, 0, 0);
32 System.out.println("CustomWeaveSetPara rtn is :"+ rtn);
33 robot.Sleep(1000);
34
35 int[] pointNum = new int[1];
36 double[] frequency=new double[1];
37 int[] incStayType=new int[1];
38 int[] stationary=new int[1];
39 robot.CustomWeaveGetPara(2, pointNum, point, stayTime, frequency, incStayType, stationary);
40 System.out.println("pointNum is :"+ pointNum[0]);
41 for (int i = 0; i < pointNum[0]; i++)
42 {
43 System.out.println("point:"+i+", "+ point[i].x+", "+ point[i].y+", "+ point[i].z);
44 }
45 System.out.println("fre is :"+ frequency[0]+", stay is:"+ incStayType[0]+", "+ stationary[0]);
46
47 robot.WeaveSetPara(0, 9, 1.000000, 1, 5.000000,
48 6.000000, 5.000000, 50, 100, 100,
49 0, 1, 0.000000, 0.000000);
50
51 DescPose desc_p1 =new DescPose(-288.650, 367.807, 288.404, 0.000, -0.001, 0.001 );
52 DescPose desc_p2 = new DescPose( -431.714, 367.815, 288.415, 0.001, 0.001, 0.000 );
53 DescPose desc_p3 = new DescPose( -348.666, 427.798, 288.404, -0.000, -0.000, 0.001 );
54 JointPos j1 = new JointPos( 140.656, -84.560, -91.707, -93.734, 90.000, 50.655 );
55 JointPos j2 = new JointPos( 149.873, -98.298, -77.599, -94.103, 90.000, 59.873 );
56 JointPos j3 = new JointPos( 139.773, -96.173, -80.014, -93.814, 90.000, 49.772 );
57
58 ExaxisPos epos = new ExaxisPos();
59 DescPose offset_pos = new DescPose();
60
61 robot.MoveJ(j1, desc_p1, 3, 0, 100, 100,100, epos, -1, 0, offset_pos);
62 robot.WeaveStart(0);
63 robot.Circle(j3, desc_p3, 3, 0, 100, 100, epos, j2, desc_p2, 3, 0, 100, 100, epos, 10, -1, offset_pos,0,-1,0);
64 robot.WeaveEnd(0);
65 robot.MoveJ(j1, desc_p1, 3, 0, 100, 100, 100, epos, -1, 0, offset_pos);
66 robot.WeaveStart(0);
67 robot.MoveC(j3, desc_p3, 3, 0, 100, 100, epos, 0, offset_pos, j2, desc_p2, 3, 0, 100, 100, epos, 0, offset_pos, 10, -1,0);
68 robot.WeaveEnd(0);
69 robot.MoveJ(j1, desc_p1, 3, 0, 100, 100, 100, epos, -1, 0, offset_pos);
70 robot.WeaveStart(0);
71 robot.MoveL(j2, desc_p2, 3, 0, 100, 100, 10, -1,epos, 0, 0, offset_pos, 0,0, 100);
72 robot.WeaveEnd(0);
73
74 robot.CloseRPC();
75}
14.72. Configurazione Parametri Saldatrice Laser
1/**
2* @brief Configurazione parametri saldatrice laser
3* @param io_type Tipo di comunicazione 0-IO 1-UDP
4* @param num Numero gruppo da impostare (1~10)
5* @param scanSpeed Velocità di scansione
6* @param scanWidth Larghezza di scansione
7* @param peakPower Potenza di picco
8* @param dutyCycle Ciclo di lavoro
9* @param freq Frequenza
10* @return Codice di errore
11*/
12public int SetLaserWeldingParam(int io_type, int num, int scanSpeed, int scanWidth, int peakPower, int dutyCycle, int freq);
14.73. Avvio/Arresto Saldatura Laser
1/**
2* @brief Avvio/arresto saldatura laser
3* @param io_type Tipo di comunicazione 0-IO 1-UDP
4* @param status Parola di controllo 0-laser spento 1-laser acceso
5* @param max_waittime Tempo massimo di attesa in millisecondi, predefinito 10000
6* @return Codice di errore
7*/
8public int SetLaserWeldingStartEnd(int io_type, int status, int max_waittime)
14.74. Abilitazione/Disabilitazione Saldatrice Laser
1/**
2* @brief Abilitazione/disabilitazione saldatrice laser
3* @param io_type Tipo di comunicazione 0-IO 1-UDP
4* @param status 0-disabilita 1-abilita
5* @return Codice di errore
6*/
7public int SetLaserWeldingEnable(int io_type, int status)
14.75. Reset Guasto Saldatrice Laser
1/**
2* @brief Reset guasto saldatrice laser
3* @param io_type Tipo di comunicazione 0-IO 1-UDP
4* @param status Parola di controllo 0-invalido 1-reset guasto
5* @return Codice di errore
6*/
7public int ResetLaserWeldingErr(int io_type, int status)
14.76. Ottenere Stato Operativo Saldatrice Laser
1/**
2* @brief Ottenere stato operativo saldatrice laser
3* @param io_type Tipo di comunicazione 0-IO 1-UDP
4* @param status Parola di controllo 0-fermo 1-in funzione
5* @return Codice di errore
6*/
7public int GetLaserWeldingRunningState(int io_type, int[] status)
14.77. Ottenere Stato Guasto Saldatrice Laser
1/**
2* @brief Ottenere stato guasto saldatrice laser
3* @param io_type Tipo di comunicazione 0-IO 1-UDP
4* @param status 0-nessun guasto 1-guasto presente
5* @return Codice di errore
6*/
7public int GetLaserWeldingErrState(int io_type, int[] status)
14.78. Ottenere Parametri di Configurazione Saldatrice Laser
1/**
2* @brief Ottenere parametri di configurazione di uno dei 10 gruppi processo della saldatrice laser
3* @param num Numero gruppo da impostare (1~10)
4* @param params Array parametri in uscita: [scanSpeed, scanWidth, peakPower, dutyCycle, freq]
5* @return Codice di errore
6*/
7public int GetLaserWeldingParamTarget(int num, int[] params)
14.79. Ottenere Parametri di Configurazione Attivi della Saldatrice Laser
1/**
2* @brief Ottenere parametri di configurazione attivi della saldatrice laser
3* @param io_type Tipo di comunicazione 0-IO 1-UDP
4* @param params Array parametri in uscita: [scanSpeed, scanWidth, peakPower, dutyCycle, freq]
5* @return Codice di errore
6*/
7public int GetLaserWeldingParamActual(int io_type, int[] params)
14.80. Configurare Porta DO Abilitazione IO Espanso per Saldatrice Laser
1/**
2* @brief Configurare porta DO abilitazione IO espanso per saldatrice laser
3* @param ctrlModeDONum Numero porta DO espanso per abilitazione saldatrice laser
4* @return Codice di errore
5*/
6public int SetLaserWeldingEnableExtDoNum(int ctrlModeDONum)
14.81. Configurare Porta DO Avvio IO Espanso per Saldatrice Laser
1/**
2* @brief Configurare porta DO avvio IO espanso per saldatrice laser
3* @param ctrlModeDONum Numero porta DO espanso per avvio/arresto saldatrice laser
4* @return Codice di errore
5*/
6public int SetLaserWeldingStartExtDoNum(int ctrlModeDONum)
14.82. Configurare Porta DO Reset Guasto IO Espanso per Saldatrice Laser
1/**
2* @brief Configurare porta DO reset guasto IO espanso per saldatrice laser
3* @param ctrlModeDONum Numero porta DO espanso per reset guasto saldatrice laser
4* @return Codice di errore
5*/
6public int SetLaserWeldingErrResetExtDoNum(int ctrlModeDONum)
14.83. Configurare Porta DI Stato Operativo (Laser Accesso) IO Espanso per Saldatrice Laser
1/**
2* @brief Configurare porta DI stato operativo (laser acceso) IO espanso per saldatrice laser
3* @param diNum Numero porta DI espanso per stato operativo (laser acceso) saldatrice laser
4* @return Codice di errore, 0 indica successo, diverso da zero indica fallimento
5*/
6public int SetLaserWeldingRunningStateExtDiNum(int diNum);
14.84. Configurare Porta DI Stato Guasto IO Espanso per Saldatrice Laser
1/**
2* @brief Configurare porta DI stato guasto IO espanso per saldatrice laser
3* @param diNum Numero porta DI espanso per stato guasto saldatrice laser
4* @return Codice di errore, 0 indica successo, diverso da zero indica fallimento
5*/
6public int SetLaserWeldingErrStateExtDiNum(int diNum);
14.85. Esempio di Codice Saldatura Laser
1public static int testLsaerWeld(Robot robot) {
2 int rtn = -1;
3 rtn = robot.ExtDevLoadUDPDriver();
4 if (rtn != 0) {
5 System.out.println("Impossibile caricare il driver UDP, codice errore: " + rtn);
6 }
7 robot.Sleep(1000);
8 rtn = robot.SetLaserWeldingParam(1, 3, 2000, 3, 1500, 100, 1000);
9 if (rtn != 0) {
10 System.out.println("SetLaserWeldingParam fallito, codice errore: " + rtn);
11 } else {
12 System.out.println("SetLaserWeldingParam riuscito");
13 }
14 rtn = robot.SetLaserWeldingStartExtDoNum(1);
15 if (rtn != 0) {
16 System.out.println("SetLaserWeldingStartExtDoNum fallito, codice errore: " + rtn);
17 }
18 rtn = robot.Mode(0);
19 if (rtn != 0) {
20 System.out.println("Impostazione modalità 0 fallita, codice errore: " + rtn);
21 }
22 robot.Sleep(1000);
23 DescPose desc_pos1 = new DescPose(-303.721, -206.960, 297.105, 152.209, 19.857, 109.166);
24 DescPose desc_pos2 = new DescPose(-301.575, -254.888, 284.786, 155.919, 26.946, 111.629);
25 DescPose desc_safe = new DescPose(-344.386, -280.830, 435.073, 173.835, 15.333, 124.931);
26
27 JointPos jointPos1 = new JointPos(9.827, -99.740, 120.088, -78.900, -77.241, -17.904);
28 JointPos jointPos2 = new JointPos(15.251, -96.456, 120.138, -84.664, -68.542, -17.843);
29 JointPos jointSafe = new JointPos(19.142, -98.078, 101.493, -83.078, -77.070, -17.794);
30
31 ExaxisPos exaxis = new ExaxisPos(0.0, 0.0, 0.0, 0.0);
32 DescPose offset = new DescPose(0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
33 int error = robot.MoveL(desc_pos1, 0, 0, 100, 100, 100, -1, 0, exaxis, 0, 0, offset, -1, 0,0,0);
34 System.out.println("MoveL a pos1 ritorno: " + error);
35 rtn = robot.SetLaserWeldingStartEnd(1, 1, 10000);
36 if (rtn != 0) {
37 System.out.println("SetLaserWeldingStartEnd (avvio) fallito, codice errore: " + rtn);
38 } else {
39 System.out.println("Laser avviato");
40 }
41 rtn = robot.MoveL(desc_pos2, 0, 0, 30, 100, 100, -1, 0, exaxis, 0, 0, offset, -1, 0,0, 0);
42 System.out.println("MoveL a pos2 ritorno: " + rtn);
43 rtn = robot.SetLaserWeldingStartEnd(1, 0, 10000);
44 if (rtn != 0) {
45 System.out.println("SetLaserWeldingStartEnd (arresto) fallito, codice errore: " + rtn);
46 } else {
47 System.out.println("Laser arrestato");
48 }
49 robot.Sleep(500);
50 rtn = robot.MoveL(desc_safe, 0, 0, 100, 100, 100, -1, 0, exaxis, 0, 0, offset, -1, 0,0,0);
51 System.out.println("MoveL a pos_sicura ritorno: " + rtn);
52 rtn = robot.Mode(1);
53 if (rtn != 0) {
54 System.out.println("Impostazione modalità 1 fallita, codice errore: " + rtn);
55 }
56 robot.Sleep(1000);
57 robot.CloseRPC();
58 robot.Sleep(1000);
59
60 System.out.println("Test completato");
61
62 return 0;
63}