14. Robot di saldatura
14.1. Impostare i parametri della curva del processo di saldatura
1/**
2 * @brief Imposta i parametri della curva del processo di saldatura
3 * @param [in] id Numero del processo di saldatura (1-99)
4 * @param [in] startCurrent Corrente di accensione dell'arco (A)
5 * @param [in] startVoltage Tensione di accensione dell'arco (V)
6 * @param [in] startTime Tempo di accensione dell'arco (ms)
7 * @param [in] weldCurrent Corrente di saldatura (A)
8 * @param [in] weldVoltage Tensione di saldatura (V)
9 * @param [in] endCurrent Corrente di spegnimento dell'arco (A)
10 * @param [in] endVoltage Tensione di spegnimento dell'arco (V)
11 * @param [in] endTime Tempo di spegnimento dell'arco (ms)
12 * @return Codice di errore
13 */
14int WeldingSetProcessParam(int id, double startCurrent, double startVoltage, double startTime, double weldCurrent, double weldVoltage, double endCurrent, double endVoltage, double endTime);
14.2. Ottenere i parametri della curva del processo di saldatura
1/**
2 * @brief Ottieni i parametri della curva del processo di saldatura
3 * @param [in] id Numero del processo di saldatura (1-99)
4 * @param [out] startCurrent Corrente di accensione dell'arco (A)
5 * @param [out] startVoltage Tensione di accensione dell'arco (V)
6 * @param [out] startTime Tempo di accensione dell'arco (ms)
7 * @param [out] weldCurrent Corrente di saldatura (A)
8 * @param [out] weldVoltage Tensione di saldatura (V)
9 * @param [out] endCurrent Corrente di spegnimento dell'arco (A)
10 * @param [out] endVoltage Tensione di spegnimento dell'arco (V)
11 * @param [out] endTime Tempo di spegnimento dell'arco (ms)
12 * @return Codice di errore
13 */
14int WeldingGetProcessParam(int id, ref double startCurrent, ref double startVoltage, ref double startTime, ref double weldCurrent, ref double weldVoltage, ref double endCurrent, ref double endVoltage, ref double endTime);
14.3. Impostare la relazione tra corrente di saldatura e uscita analogica
Nuovo nella versione C#SDK-v1.0.4.
1/**
2 * @brief Imposta la relazione tra corrente di saldatura e uscita analogica
3 * @param [in] currentMin Valore corrente del punto sinistro della relazione lineare corrente-uscita analogica (A)
4 * @param [in] currentMax Valore corrente del punto destro della relazione lineare corrente-uscita analogica (A)
5 * @param [in] outputVoltageMin Valore di tensione di uscita analogica del punto sinistro della relazione lineare (V)
6 * @param [in] outputVoltageMax Valore di tensione di uscita analogica del punto destro della relazione lineare (V)
7 * @return Codice di errore
8 */
9int WeldingSetCurrentRelation(double currentMin, double currentMax, double outputVoltageMin, double outputVoltageMax);
14.4. Impostare la relazione tra tensione di saldatura e uscita analogica
Nuovo nella versione C#SDK-v1.0.4.
1/**
2 * @brief Imposta la relazione tra tensione di saldatura e uscita analogica
3 * @param [in] weldVoltageMin Valore di tensione di saldatura del punto sinistro della relazione lineare (V)
4 * @param [in] weldVoltageMax Valore di tensione di saldatura del punto destro della relazione lineare (V)
5 * @param [in] outputVoltageMin Valore di tensione di uscita analogica del punto sinistro della relazione lineare (V)
6 * @param [in] outputVoltageMax Valore di tensione di uscita analogica del punto destro della relazione lineare (V)
7 * @return Codice di errore
8 */
9int WeldingSetVoltageRelation(double weldVoltageMin, double weldVoltageMax, double outputVoltageMin, double outputVoltageMax);
14.5. Ottenere la relazione tra corrente di saldatura e uscita analogica
Nuovo nella versione C#SDK-v1.0.4.
1/**
2 * @brief Ottieni la relazione tra corrente di saldatura e uscita analogica
3 * @param [out] currentMin Valore corrente del punto sinistro della relazione lineare corrente-uscita analogica (A)
4 * @param [out] currentMax Valore corrente del punto destro della relazione lineare corrente-uscita analogica (A)
5 * @param [out] outputVoltageMin Valore di tensione di uscita analogica del punto sinistro della relazione lineare (V)
6 * @param [out] outputVoltageMax Valore di tensione di uscita analogica del punto destro della relazione lineare (V)
7 * @return Codice di errore
8 */
9int WeldingGetCurrentRelation(ref double currentMin, ref double currentMax, ref double outputVoltageMin, ref double outputVoltageMax);
14.6. Ottenere la relazione tra tensione di saldatura e uscita analogica
Nuovo nella versione C#SDK-v1.0.4.
1/**
2 * @brief Ottieni la relazione tra tensione di saldatura e uscita analogica
3 * @param [out] weldVoltageMin Valore di tensione di saldatura del punto sinistro della relazione lineare (V)
4 * @param [out] weldVoltageMax Valore di tensione di saldatura del punto destro della relazione lineare (V)
5 * @param [out] outputVoltageMin Valore di tensione di uscita analogica del punto sinistro della relazione lineare (V)
6 * @param [out] outputVoltageMax Valore di tensione di uscita analogica del punto destro della relazione lineare (V)
7 * @return Codice di errore
8 */
9int WeldingGetVoltageRelation(ref double weldVoltageMin, ref double weldVoltageMax, ref double outputVoltageMin, ref double outputVoltageMax);
14.7. Impostare la corrente di saldatura
Nuovo nella versione C#SDK-v1.0.4.
1/**
2 * @brief Imposta la corrente di saldatura
3 * @param [in] ioType Tipo IO di controllo 0-IO della centralina; 1-IO esteso
4 * @param [in] current Valore della corrente di saldatura (A)
5 * @param [in] AOIndex Porta di uscita analogica della centralina per il controllo della corrente di saldatura (0-1)
6 * @return Codice di errore
7 */
8int WeldingSetCurrent(int ioType, double current, int AOIndex);
14.8. Impostare la tensione di saldatura
Nuovo nella versione C#SDK-v1.0.4.
1/**
2 * @brief Imposta la tensione di saldatura
3 * @param [in] ioType Tipo IO di controllo 0-IO della centralina; 1-IO esteso
4 * @param [in] voltage Valore della tensione di saldatura (V)
5 * @param [in] AOIndex Porta di uscita analogica della centralina per il controllo della tensione di saldatura (0-1)
6 * @return Codice di errore
7 */
8int WeldingSetVoltage(int ioType, double voltage, int AOIndex);
14.9. Impostare i parametri di oscillazione
Nuovo nella versione C#SDK-V1.1.3: Web-3.8.2
1/**
2 * @brief Imposta i parametri di oscillazione
3 * @param [in] weaveNum Numero di configurazione dei parametri di saldatura oscillante
4 * @param [in] weaveType Tipo di oscillazione 0-Oscillazione a onda triangolare piana; 1-Oscillazione a onda triangolare L verticale; 2-Oscillazione circolare in senso orario; 3-Oscillazione circolare in senso antiorario; 4-Oscillazione a onda sinusoidale piana; 5-Oscillazione a onda sinusoidale L verticale; 6-Oscillazione a onda triangolare verticale; 7-Oscillazione a onda sinusoidale verticale
5 * @param [in] weaveFrequency Frequenza di oscillazione (Hz)
6 * @param [in] weaveIncStayTime Modalità di attesa 0-Il ciclo non include il tempo di attesa; 1-Il ciclo include il tempo di attesa
7 * @param [in] weaveRange Ampiezza di oscillazione (mm)
8 * @param [in] weaveLeftRange Lunghezza della corda sinistra per l'oscillazione triangolare verticale (mm)
9 * @param [in] weaveRightRange Lunghezza della corda destra per l'oscillazione triangolare verticale (mm)
10 * @param [in] additionalStayTime Tempo di permanenza nel punto del triangolo verticale (ms)
11 * @param [in] weaveLeftStayTime Tempo di permanenza a sinistra (ms)
12 * @param [in] weaveRightStayTime Tempo di permanenza a destra (ms)
13 * @param [in] weaveCircleRadio Rapporto di ritorno per l'oscillazione circolare (0-100%)
14 * @param [in] weaveStationary Attesa della posizione di oscillazione, 0-La posizione continua a muoversi durante il tempo di attesa; 1-La posizione rimane ferma durante il tempo di attesa
15 * @param [in] weaveYawAngle Angolo di direzione dell'oscillazione (rotazione attorno all'asse Z dell'oscillazione), unità °
16 * @return Codice di errore
17 */
18int 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=0);
14.10. Esempio di codice per impostare i parametri di saldatura
Nuovo nella versione C#SDK-V1.1.3: Web-3.8.2
1private void button7_Click(object sender, EventArgs e)
2{
3 robot.WeldingSetProcessParam(1, 177, 27, 1000, 178, 28, 176, 26, 1000);
4 robot.WeldingSetProcessParam(2, 188, 28, 555, 199, 29, 133, 23, 333);
5
6 double startCurrent = 0;
7 double startVoltage = 0;
8 double startTime = 0;
9 double weldCurrent = 0;
10 double weldVoltage = 0;
11 double endCurrent = 0;
12 double endVoltage = 0;
13 double endTime = 0;
14
15 robot.WeldingGetProcessParam(1, ref startCurrent, ref startVoltage, ref startTime, ref weldCurrent, ref weldVoltage, ref endCurrent, ref endVoltage, ref endTime);
16 Console.WriteLine("the Num 1 process param is " + startCurrent + " " + startVoltage + " " + startTime + " " + weldCurrent + " " + weldVoltage + " " + endCurrent + " " + endVoltage + " " + endTime);
17 robot.WeldingGetProcessParam(2, ref startCurrent, ref startVoltage, ref startTime, ref weldCurrent, ref weldVoltage, ref endCurrent, ref endVoltage, ref endTime);
18 Console.WriteLine("the Num 2 process param is " + startCurrent + " " + startVoltage + " " + startTime + " " + weldCurrent + " " + weldVoltage + " " + endCurrent + " " + endVoltage + " " + endTime);
19
20 int rtn = robot.WeldingSetCurrentRelation(0, 400, 0, 10, 0);
21 Console.WriteLine("WeldingSetCurrentRelation rtn is: " + rtn);
22
23 rtn = robot.WeldingSetVoltageRelation(0, 40, 0, 10, 1);
24 Console.WriteLine("WeldingSetVoltageRelation rtn is: " + rtn);
25
26 double current_min = 0;
27 double current_max = 0;
28 double vol_min = 0;
29 double vol_max = 0;
30 double output_vmin = 0;
31 double output_vmax = 0;
32 int curIndex = 0;
33 int volIndex = 0;
34 rtn = robot.WeldingGetCurrentRelation(ref current_min, ref current_max, ref output_vmin, ref output_vmax, ref curIndex);
35 Console.WriteLine("WeldingGetCurrentRelation rtn is: " + rtn);
36 Console.WriteLine("current min " + current_min + " current max " + current_max + " output vol min " + output_vmin + " output vol max " + output_vmax);
37
38 rtn = robot.WeldingGetVoltageRelation(ref vol_min, ref vol_max, ref output_vmin, ref output_vmax, ref volIndex);
39 Console.WriteLine("WeldingGetVoltageRelation rtn is: " + rtn);
40 Console.WriteLine("vol min " + vol_min + " vol max " + vol_max + " output vol min " + output_vmin + " output vol max " + output_vmax);
41
42 rtn = robot.WeldingSetCurrent(1, 100, 0, 0);
43 Console.WriteLine("WeldingSetCurrent rtn is: " + rtn);
44
45 System.Threading.Thread.Sleep(3000);
46
47 rtn = robot.WeldingSetVoltage(1, 10, 0, 0);
48 Console.WriteLine("WeldingSetVoltage rtn is: " + rtn);
49
50 rtn = robot.WeaveSetPara(0, 0, 2.000000, 0, 10.000000, 0.000000, 0.000000, 0, 0, 0, 0, 0, 60.000000);
51 Console.WriteLine("rtn is: " + rtn);
52
53 robot.WeaveOnlineSetPara(0, 0, 1, 0, 20, 0, 0, 0, 0);
54
55 rtn = robot.WeldingSetCheckArcInterruptionParam(1, 200);
56 Console.WriteLine("WeldingSetCheckArcInterruptionParam " + rtn);
57 rtn = robot.WeldingSetReWeldAfterBreakOffParam(1, 5.7, 98.2, 0);
58 Console.WriteLine("WeldingSetReWeldAfterBreakOffParam " + rtn);
59 int enable = 0;
60 double length = 0;
61 double velocity = 0;
62 int moveType = 0;
63 int checkEnable = 0;
64 int arcInterruptTimeLength = 0;
65 rtn = robot.WeldingGetCheckArcInterruptionParam(ref checkEnable, ref arcInterruptTimeLength);
66 Console.WriteLine("WeldingGetCheckArcInterruptionParam checkEnable " + checkEnable + " arcInterruptTimeLength " + arcInterruptTimeLength);
67 rtn = robot.WeldingGetReWeldAfterBreakOffParam(ref enable, ref length, ref velocity, ref moveType);
68 Console.WriteLine("WeldingGetReWeldAfterBreakOffParam enable = " + enable + ", length = " + length + ", velocity = " + velocity + ", moveType = " + moveType);
69
70 robot.SetWeldMachineCtrlModeExtDoNum(17);
71 for (int i = 0; i < 5; i++)
72 {
73 robot.SetWeldMachineCtrlMode(0);
74 Thread.Sleep(1000);
75 robot.SetWeldMachineCtrlMode(1);
76 Thread.Sleep(1000);
77 }
78}
14.11. Impostare i parametri di oscillazione in tempo reale
Nuovo nella versione C#SDK-v1.0.4.
1/**
2 * @brief Imposta i parametri di oscillazione in tempo reale
3 * @param [in] weaveNum Numero di configurazione dei parametri di saldatura oscillante
4 * @param [in] weaveType Tipo di oscillazione 0-Oscillazione a onda triangolare piana; 1-Oscillazione a onda triangolare L verticale; 2-Oscillazione circolare in senso orario; 3-Oscillazione circolare in senso antiorario; 4-Oscillazione a onda sinusoidale piana; 5-Oscillazione a onda sinusoidale L verticale; 6-Oscillazione a onda triangolare verticale; 7-Oscillazione a onda sinusoidale verticale
5 * @param [in] weaveFrequency Frequenza di oscillazione (Hz)
6 * @param [in] weaveIncStayTime Modalità di attesa 0-Il ciclo non include il tempo di attesa; 1-Il ciclo include il tempo di attesa
7 * @param [in] weaveRange Ampiezza di oscillazione (mm)
8 * @param [in] weaveLeftStayTime Tempo di permanenza a sinistra (ms)
9 * @param [in] weaveRightStayTime Tempo di permanenza a destra (ms)
10 * @param [in] weaveCircleRadio Rapporto di ritorno per l'oscillazione circolare (0-100%)
11 * @param [in] weaveStationary Attesa della posizione di oscillazione, 0-La posizione continua a muoversi durante il tempo di attesa; 1-La posizione rimane ferma durante il tempo di 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. Impostare i parametri di rilevamento dell’interruzione dell’arco di saldatura del robot
1/**
2 * @brief Imposta i parametri di rilevamento dell'interruzione accidentale dell'arco di saldatura del robot
3 * @param [in] checkEnable Abilita il rilevamento; 0-Disabilitato; 1-Abilitato
4 * @param [in] arcInterruptTimeLength Durata di conferma dell'interruzione dell'arco (ms)
5 * @return Codice di errore
6 */
7int WeldingSetCheckArcInterruptionParam(int checkEnable, int arcInterruptTimeLength)
14.13. Ottenere i parametri di rilevamento dell’interruzione dell’arco di saldatura del robot
1/**
2 * @brief Ottieni i parametri di rilevamento dell'interruzione accidentale dell'arco di saldatura del robot
3 * @param [out] checkEnable Abilita il rilevamento; 0-Disabilitato; 1-Abilitato
4 * @param [out] arcInterruptTimeLength Durata di conferma dell'interruzione dell'arco (ms)
5 * @return Codice di errore
6 */
7int WeldingGetCheckArcInterruptionParam(ref int checkEnable, ref int arcInterruptTimeLength)
14.14. Impostare i parametri di recupero dell’interruzione di saldatura del robot
1/**
2 * @brief Imposta i parametri di recupero dell'interruzione di saldatura del robot
3 * @param[in] enable Abilita il recupero dell'interruzione di saldatura
4 * @param[in] length Distanza di sovrapposizione della saldatura (mm)
5 * @param[in] velocity Velocità percentuale del robot per tornare al punto di riaccensione (0-100)
6 * @param[in] moveType Metodo di movimento del robot verso il punto di riaccensione; 0-LIN; 1-PTP
7 * @return Codice di errore
8 */
9int WeldingSetReWeldAfterBreakOffParam(int enable, double length, double velocity, int moveType)
14.15. Ottenere i parametri di recupero dell’interruzione di saldatura del robot
1/**
2 * @brief Ottieni i parametri di recupero dell'interruzione di saldatura del robot
3 * @param [out] enable Abilita il recupero dell'interruzione di saldatura
4 * @param [out] length Distanza di sovrapposizione della saldatura (mm)
5 * @param [out] velocity Velocità percentuale del robot per tornare al punto di riaccensione (0-100)
6 * @param [out] moveType Metodo di movimento del robot verso il punto di riaccensione; 0-LIN; 1-PTP
7 * @return Codice di errore
8 */
9int WeldingGetReWeldAfterBreakOffParam(ref int enable, ref double length, ref double velocity, ref int moveType)
14.16. Impostare la porta DO estesa per la modalità di controllo della saldatrice
1/**
2 * @brief Imposta la porta DO estesa per la modalità di controllo della saldatrice
3 * @param DONum Porta DO per la modalità di controllo della saldatrice (0-127)
4 * @return Codice di errore
5 */
6int SetWeldMachineCtrlModeExtDoNum(int DONum);
14.17. Imposta Modalità di Controllo della Saldatrice
1/**
2* @brief Imposta la modalità di controllo della saldatrice
3* @param [in] 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 [in] 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 = 1)
14.18. Inizio della saldatura
Nuovo nella versione C#SDK-v1.0.4.
1/**
2 * @brief Inizia la saldatura
3 * @param [in] ioType Tipo IO 0-IO del controllore; 1-IO esteso
4 * @param [in] arcNum Numero del file di configurazione della saldatrice
5 * @param [in] timeout Tempo di timeout per l'accensione dell'arco
6 * @return Codice di errore
7 */
8int ARCStart(int ioType, int arcNum, int timeout);
14.19. Fine della saldatura
Nuovo nella versione C#SDK-v1.0.4.
1/**
2 * @brief Termina la saldatura
3 * @param [in] ioType Tipo IO 0-IO del controllore; 1-IO esteso
4 * @param [in] arcNum Numero del file di configurazione della saldatrice
5 * @param [in] timeout Tempo di timeout per lo spegnimento dell'arco
6 * @return Codice di errore
7 */
8int ARCEnd(int ioType, int arcNum, int timeout);
14.20. Inizio dell’oscillazione
Nuovo nella versione C#SDK-v1.0.4.
1/**
2 * @brief Inizia l'oscillazione
3 * @param [in] weaveNum Numero di configurazione dei parametri di saldatura oscillante
4 * @return Codice di errore
5 */
6int WeaveStart(int weaveNum);
14.21. Fine dell’oscillazione
Nuovo nella versione C#SDK-v1.0.4.
1/**
2 * @brief Termina l'oscillazione
3 * @param [in] weaveNum Numero di configurazione dei parametri di saldatura oscillante
4 * @return Codice di errore
5 */
6int WeaveEnd(int weaveNum);
14.22. Alimentazione del filo in avanti
Nuovo nella versione C#SDK-v1.0.4.
1/**
2 * @brief Alimentazione del filo in avanti
3 * @param [in] ioType Tipo IO 0-IO del controllore; 1-IO esteso
4 * @param [in] wireFeed Controllo alimentazione filo 0-Ferma alimentazione filo; 1-Alimenta filo
5 * @return Codice di errore
6 */
7int SetForwardWireFeed(int ioType, int wireFeed);
14.23. Alimentazione del filo all’indietro
Nuovo nella versione C#SDK-v1.0.4.
1/**
2 * @brief Alimentazione del filo all'indietro
3 * @param [in] ioType Tipo IO 0-IO del controllore; 1-IO esteso
4 * @param [in] wireFeed Controllo alimentazione filo 0-Ferma alimentazione filo; 1-Alimenta filo
5 * @return Codice di errore
6 */
7int SetReverseWireFeed(int ioType, int wireFeed);
14.24. Alimentazione del gas
Nuovo nella versione C#SDK-v1.0.4.
1/**
2 * @brief Alimentazione del gas
3 * @param [in] ioType Tipo IO 0-IO del controllore; 1-IO esteso
4 * @param [in] airControl Controllo alimentazione gas 0-Ferma alimentazione gas; 1-Alimenta gas
5 * @return Codice di errore
6 */
7int SetAspirated(int ioType, int airControl);
14.25. Impostare il recupero della saldatura dopo l’interruzione del robot
1/**
2 * @brief Imposta il recupero della saldatura dopo l'interruzione del robot
3 * @return Codice di errore
4 */
5int WeldingStartReWeldAfterBreakOff()
14.26. Impostare l’uscita dalla saldatura dopo l’interruzione del robot
1/**
2 * @brief Imposta l'uscita dalla saldatura dopo l'interruzione del robot
3 * @return Codice di errore
4 */
5int WeldingAbortWeldAfterBreakOff()
14.27. Esempio di codice
1private void button7_Click(object sender, EventArgs e)
2{
3 robot.WeldingSetCurrent(1, 230, 0, 0);
4 robot.WeldingSetVoltage(1, 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);
19 robot.ARCEnd(1, 0, 10000);
20 robot.WeaveEnd(0);
21}
14.28. Inizio della saldatura a segmenti
Nuovo nella versione C#SDK-v1.0.4.
1/**
2 * @brief Inizia la saldatura a segmenti
3 * @param [in] startDesePos Posizione cartesiana del punto di inizio
4 * @param [in] endDesePos Posa cartesiana del punto di fine
5 * @param [in] startJPos Posa articolare del punto di inizio
6 * @param [in] endJPos Posa articolare del punto di fine
7 * @param [in] weldLength Lunghezza del segmento di saldatura (mm)
8 * @param [in] noWeldLength Lunghezza del segmento non saldato (mm)
9 * @param [in] weldIOType Tipo IO di saldatura (0-IO della centralina; 1-IO esteso)
10 * @param [in] arcNum Numero del file di configurazione della saldatrice
11 * @param [in] weldTimeout Tempo di timeout per accensione/spegnimento dell'arco
12 * @param [in] isWeave Se oscillare
13 * @param [in] weaveNum Numero di configurazione dei parametri di saldatura oscillante
14 * @param [in] tool Numero dello strumento
15 * @param [in] user Numero del pezzo
16 * @param [in] vel Percentuale di velocità, range [0~100]
17 * @param [in] acc Percentuale di accelerazione, range [0~100], attualmente non disponibile
18 * @param [in] ovl Fattore di scala della velocità, range [0~100]
19 * @param [in] blendR [-1.0]-Movimento fino a destinazione (bloccante), [0~1000.0]-Raggio di levigatura (non bloccante), unità mm
20 * @param [in] epos Posizione degli assi estesi, unità mm
21 * @param [in] search 0-Nessuna ricerca del filo, 1-Ricerca del filo
22 * @param [in] offset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/pezzo, 2-Offset nel sistema di coordinate utensile
23 * @param [in] offset_pos Quantità di offset della 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,bool isWeave, int weaveNum, int tool, int user, float vel, float acc, float ovl, float blendR, ExaxisPos epos, byte search, byte offset_flag, DescPose offset_pos);
14.29. Esempio di codice per la saldatura a segmenti del robot
Nuovo nella versione C#SDK-v1.0.4.
1private void btnWeldStart_Click(object sender, EventArgs e)
2{
3 robot.WeldingSetCurrent(1, 230, 0, 0);
4 robot.WeldingSetVoltage(1, 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 int rtn = robot.SegmentWeldStart( p1Desc, p2Desc, p1Joint, p2Joint, 20, 20, 0, 0, 5000, false, 0, 0, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese);
16 Console.WriteLine("SegmentWeldStart rtn is {0}", rtn);
17}
14.30. Inizio della simulazione di oscillazione
1/**
2 * @brief Inizia la simulazione di oscillazione
3 * @param [in] weaveNum Numero dei parametri di oscillazione
4 * @return Codice di errore
5 */
6int WeaveStartSim(int weaveNum);
14.31. Fine della simulazione di oscillazione
1/**
2 * @brief Termina la simulazione di oscillazione
3 * @param [in] weaveNum Numero dei parametri di oscillazione
4 * @return Codice di errore
5 */
6int WeaveEndSim(int weaveNum);
14.32. Inizio del rilevamento di traiettoria di allarme (senza movimento)
1/**
2 * @brief Inizia il rilevamento di traiettoria di allarme (senza movimento)
3 * @param [in] weaveNum Numero dei parametri di oscillazione
4 * @return Codice di errore
5 */
6int WeaveInspectStart(int weaveNum);
14.33. Fine del rilevamento di traiettoria di allarme (senza movimento)
1/**
2 * @brief Termina il rilevamento di traiettoria di allarme (senza movimento)
3 * @param [in] weaveNum Numero dei parametri di oscillazione
4 * @return Codice di errore
5 */
6int WeaveInspectEnd(int weaveNum);
14.34. Inizio della transizione graduale di oscillazione
Nuovo nella versione C#SDK-V1.1.3: Web-3.8.2
1/**
2 * @brief Inizia la transizione graduale di oscillazione
3 * @param [in] weaveChangeFlag 1-Cambia parametri di oscillazione; 2-Cambia parametri di oscillazione + velocità di saldatura
4 * @param [in] weaveNum Numero di oscillazione
5 * @param [in] velStart Velocità di inizio saldatura, (cm/min)
6 * @param [in] velEnd Velocità di fine saldatura, (cm/min)
7 * @return Codice di errore
8 */
9int WeaveChangeStart(int weaveChangeFlag, int weaveNum, double velStart, double velEnd);
14.35. Fine della transizione graduale di oscillazione
1/**
2 * @brief Termina la transizione graduale di oscillazione
3 * @return Codice di errore
4 */
5int WeaveChangeEnd()
14.36. Esempio di codice per la saldatura con transizione graduale di oscillazione del robot
Nuovo nella versione C#SDK-V1.1.3: Web-3.8.2
1private void btnweld_Click(object sender, EventArgs e)
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);
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);
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, exaxisPos, 0, 0, offdese);
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, exaxisPos, 0, 0, offdese);
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}
14.37. IO esteso - Configurare il segnale di rilevamento del gas della saldatrice
1/**
2 * @brief IO esteso - Configura il segnale di rilevamento del gas della saldatrice
3 * @param [in] DONum Numero DO esteso per il segnale di rilevamento del gas
4 * @return Codice di errore
5 */
6int SetAirControlExtDoNum(int DONum);
14.38. IO esteso - Configurare il segnale di accensione dell’arco della saldatrice
1/**
2 * @brief IO esteso - Configura il segnale di accensione dell'arco della saldatrice
3 * @param [in] DONum Numero DO esteso per il segnale di accensione dell'arco
4 * @return Codice di errore
5 */
6int SetArcStartExtDoNum(int DONum);
14.39. IO esteso - Configurare il segnale di alimentazione all’indietro del filo della saldatrice
1/**
2 * @brief IO esteso - Configura il segnale di alimentazione all'indietro del filo della saldatrice
3 * @param [in] DONum Numero DO esteso per il segnale di alimentazione all'indietro del filo
4 * @return Codice di errore
5 */
6int SetWireReverseFeedExtDoNum(int DONum);
14.40. IO esteso - Configurare il segnale di alimentazione in avanti del filo della saldatrice
1/**
2 * @brief IO esteso - Configura il segnale di alimentazione in avanti del filo della saldatrice
3 * @param [in] DONum Numero DO esteso per il segnale di alimentazione in avanti del filo
4 * @return Codice di errore
5 */
6int SetWireForwardFeedExtDoNum(int DONum);
14.41. IO esteso - Configurare il segnale di successo dell’accensione dell’arco della saldatrice
1/**
2 * @brief IO esteso - Configura il segnale di successo dell'accensione dell'arco della saldatrice
3 * @param [in] DINum Numero DI esteso per il segnale di successo dell'accensione dell'arco
4 * @return Codice di errore
5 */
6int SetArcDoneExtDiNum(int DINum);
14.42. IO esteso - Configurare il segnale di pronto della saldatrice
1/**
2 * @brief IO esteso - Configura il segnale di pronto della saldatrice
3 * @param [in] DINum Numero DI esteso per il segnale di pronto della saldatrice
4 * @return Codice di errore
5 */
6int SetWeldReadyExtDiNum(int DINum);
14.43. IO esteso - Configurare i segnali di recupero dell’interruzione di saldatura
1/**
2 * @brief IO esteso - Configura i segnali di recupero dell'interruzione di saldatura
3 * @param [in] reWeldDINum Numero DI esteso per il segnale di recupero della saldatura dopo interruzione
4 * @param [in] abortWeldDINum Numero DI esteso per il segnale di uscita dalla saldatura dopo interruzione
5 * @return Codice di errore
6 */
7int SetExtDIWeldBreakOffRecover(int reWeldDINum, int abortWeldDINum);
14.44. Esempio di codice per impostare i segnali di saldatura IO estesi
1private void button51_Click(object sender, EventArgs e)
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}
14.45. Controllo del tracciamento dell’arco
1/**
2 * @brief Controllo del tracciamento dell'arco
3 * @param [in] flag Interruttore, 0-Spegnere; 1-Accendere
4 * @param [in] dalayTime Tempo di ritardo, unità ms
5 * @param [in] isLeftRight Compensazione deviazione sinistra-destra
6 * @param [in] klr Coefficiente di regolazione sinistra-destra (sensibilità)
7 * @param [in] tStartLr Tempo di inizio compensazione sinistra-destra cyc
8 * @param [in] stepMaxLr Compensazione massima per volta 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 di regolazione alto-basso (sensibilità)
12 * @param [in] tStartUd Tempo di inizio compensazione alto-basso cyc
13 * @param [in] stepMaxUd Compensazione massima per volta alto-basso mm
14 * @param [in] sumMaxUd Compensazione totale massima alto-basso mm
15 * @param [in] axisSelect Selezione sistema coordinate alto-basso, 0-Oscillazione; 1-Utensile; 2-Base
16 * @param [in] referenceType Metodo impostazione corrente di riferimento alto-basso, 0-Retroazione; 1-Costante
17 * @param [in] referSampleStartUd Conteggio inizio campionamento corrente di riferimento alto-basso (retroazione), cyc
18 * @param [in] referSampleCountUd Conteggio ciclo campionamento corrente di riferimento alto-basso (retroazione), cyc
19 * @param [in] referenceCurrent Corrente di riferimento alto-basso mA
20 * @param [in] offsetType Tipo di tracciamento offset, 0-Nessun offset; 1-Campionamento; 2-Percentuale /version 3.7.9
21 * @param [in] offsetParameter Parametro offset; Campionamento (tempo di inizio campionamento offset, per default campiona un ciclo); Percentuale (percentuale offset (-100 ~ 100)) /version 3.7.9
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 per il tracciamento dell’arco
1/**
2 * @brief Selezione banda passante AI per il tracciamento dell'arco
3 * @param [in] channel Selezione banda passante AI per il tracciamento dell'arco, [0-3]
4 * @return Codice di errore
5 */
6int ArcWeldTraceExtAIChannelConfig(int channel);
14.47. Attivazione tracciamento arco + compensazione multi-strato multi-passata
1/**
2 * @brief Attiva tracciamento arco + compensazione multi-strato multi-passata
3 * @return Codice di errore
4 */
5int ArcWeldTraceReplayStart();
14.48. Disattivazione tracciamento arco + compensazione multi-strato multi-passata
1/**
2 * @brief Disattiva tracciamento arco + compensazione multi-strato multi-passata
3 * @return Codice di errore
4 */
5int ArcWeldTraceReplayEnd();
14.49. Trasformazione delle coordinate di offset - Saldatura multi-strato multi-passata
1/**
2 * @brief Trasformazione delle coordinate di offset - Saldatura multi-strato multi-passata
3 * @param [in] pointO Posa cartesiana del punto di riferimento
4 * @param [in] pointX Posa cartesiana del punto nella direzione dell'offset X rispetto al punto di riferimento
5 * @param [in] pointZ Posa cartesiana del punto nella direzione dell'offset Z rispetto al punto di riferimento
6 * @param [in] dx Quantità di offset in direzione X (mm)
7 * @param [in] dy Quantità di offset in direzione Y (mm)
8 * @param [in] db Quantità di offset attorno all'asse Y (°)
9 * @param [out] offset Quantità di offset calcolata
10 * @return Codice di errore
11 */
12int MultilayerOffsetTrsfToBase(DescTran pointO, DescTran pointX, DescTran pointZ, double dx, double dy, double db, ref DescPose offset);
14.50. Esempio di codice per il tracciamento dell’arco nella saldatura multi-strato multi-passata
1private void button52_Click(object sender, EventArgs e)
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();
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();
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();
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();
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 Thread.Sleep(10);
35 int error = robot.MoveJ( mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
36 Console.WriteLine("MoveJ return: {0}", error);
37
38 error = robot.MoveL( mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1, epos, 0, 0, offset, 0, 100);
39 Console.WriteLine("MoveL return: {0}", error);
40
41 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
42 Console.WriteLine("MoveJ return: {0}", error);
43
44 error = robot.MoveL(mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 0, 10, 100, 100, -1, epos, 0, 0, offset, 0, 100);
45 Console.WriteLine("MoveL return: {0}", error);
46
47 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
48 Console.WriteLine("MoveJ return: {0}", error);
49
50 error = robot.MoveL( mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1, epos, 0, 0, offset, 0, 100);
51 Console.WriteLine("MoveL return: {0}", error);
52
53 error = robot.ARCStart(1, 0, 3000);
54 Console.WriteLine("ARCStart return: {0}", error);
55
56 error = robot.WeaveStart(0);
57 Console.WriteLine("WeaveStart return: {0}", error);
58
59 error = robot.ArcWeldTraceControl(1, 0, 1, 0.06, 5, 5, 50, 1, 0.06, 5, 5, 55, 0, 0, 4, 1, 10);
60 Console.WriteLine("ArcWeldTraceControl return: {0}", error);
61
62 error = robot.MoveL( mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 0, 1, 100, 100, -1, epos, 0, 0, offset, 0, 100);
63 Console.WriteLine("MoveL return: {0}", error);
64
65 error = robot.ArcWeldTraceControl(0, 0, 1, 0.06, 5, 5, 50, 1, 0.06, 5, 5, 55, 0, 0, 4, 1, 10);
66 Console.WriteLine("ArcWeldTraceControl return: {0}", error);
67
68 error = robot.WeaveEnd(0);
69 Console.WriteLine("WeaveEnd return: {0}", error);
70
71 error = robot.ARCEnd(1, 0, 10000);
72 Console.WriteLine("ARCEnd return: {0}", error);
73
74 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
75 Console.WriteLine("MoveJ return: {0}", error);
76
77 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin1_desc.tran, mulitilineX1_desc, mulitilineZ1_desc, 10.0, 0.0, 0.0, ref offset);
78 Console.WriteLine("MultilayerOffsetTrsfToBase return: {0} offect is {1} {2} {3}", error, offset.tran.x, offset.tran.y, offset.tran.z);
79
80 error = robot.MoveL( mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1, epos, 0, 1, offset, 0, 100);
81 Console.WriteLine("MoveL return: {0}", error);
82
83 error = robot.ARCStart(1, 0, 3000);
84 Console.WriteLine("ARCStart return: {0}", error);
85
86 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin2_desc.tran, mulitilineX2_desc, mulitilineZ2_desc, 10, 0, 0, ref offset);
87 Console.WriteLine("MultilayerOffsetTrsfToBase return: {0} offect is {1} {2} {3}", error, offset.tran.x, offset.tran.y, offset.tran.z);
88
89 error = robot.ArcWeldTraceReplayStart();
90 Console.WriteLine("ArcWeldTraceReplayStart return: {0}", error);
91
92 error = robot.MoveL( mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 0, 2, 100, 100, -1, epos, 0, 1, offset, 0, 100);
93 Console.WriteLine("MoveL return: {0}", error);
94
95 error = robot.ArcWeldTraceReplayEnd();
96 Console.WriteLine("ArcWeldTraceReplayEnd return: {0}", error);
97
98 error = robot.ARCEnd(1, 0, 10000);
99 Console.WriteLine("ARCEnd return: {0}", error);
100
101 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
102 Console.WriteLine("MoveJ return: {0}", error);
103
104 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin1_desc.tran, mulitilineX1_desc, mulitilineZ1_desc, 0, 10, 0, ref offset);
105 Console.WriteLine("MultilayerOffsetTrsfToBase return: {0} offect is {1} {2} {3}", error, offset.tran.x, offset.tran.y, offset.tran.z);
106
107 error = robot.MoveL( mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1, epos, 0, 1, offset, 0, 100);
108 Console.WriteLine("MoveL return: {0}", error);
109
110 error = robot.ARCStart(1, 0, 3000);
111 Console.WriteLine("ARCStart return: {0}", error);
112
113 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin2_desc.tran, mulitilineX2_desc, mulitilineZ2_desc, 0, 10, 0, ref offset);
114 Console.WriteLine("MultilayerOffsetTrsfToBase return: {0} offect is {1} {2} {3}", error, offset.tran.x, offset.tran.y, offset.tran.z);
115
116 error = robot.ArcWeldTraceReplayStart();
117 Console.WriteLine("MoveJ return: {0}", error);
118
119 error = robot.MoveL(mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 1, 2, 100, 100, -1, epos, 1, 1, offset, 1, 100);
120 Console.WriteLine("MoveL return: {0}", error);
121
122 error = robot.ArcWeldTraceReplayEnd();
123 Console.WriteLine("ArcWeldTraceReplayEnd return: {0}", error);
124
125 error = robot.ARCEnd(1, 0, 3000);
126 Console.WriteLine("ARCEnd return: {0}", error);
127
128 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
129 Console.WriteLine("MoveJ return: {0}", error);
130}
14.51. Selezione canale AI per la retroazione della corrente della saldatrice nel tracciamento dell’arco
Nuovo nella versione C#SDK-V1.1.3: Web-3.8.2
1/**
2 * @brief Selezione canale AI per la retroazione della corrente della saldatrice nel tracciamento dell'arco
3 * @param [in] channel Canale; 0-AI esteso 0; 1-AI esteso 1; 2-AI esteso 2; 3-AI esteso 3; 4-AI centralina 0; 5-AI centralina 1
4 * @return Codice di errore
5 */
6int ArcWeldTraceAIChannelCurrent(int channel);
14.52. Selezione canale AI per la retroazione della tensione della saldatrice nel tracciamento dell’arco
Nuovo nella versione C#SDK-V1.1.3: Web-3.8.2
1/**
2 * @brief Selezione canale AI per la retroazione della tensione della saldatrice nel tracciamento dell'arco
3 * @param [in] channel Canale; 0-AI esteso 0; 1-AI esteso 1; 2-AI esteso 2; 3-AI esteso 3; 4-AI centralina 0; 5-AI centralina 1
4 * @return Codice di errore
5 */
6int ArcWeldTraceAIChannelVoltage(int channel);
14.53. Parametri di conversione per la retroazione della corrente della saldatrice nel tracciamento dell’arco
Nuovo nella versione C#SDK-V1.1.3: Web-3.8.2
1/**
2 * @brief Parametri di conversione per la retroazione della corrente della saldatrice nel tracciamento dell'arco
3 * @param [in] AILow Limite inferiore canale AI, valore predefinito 0V, range [0-10V]
4 * @param [in] AIHigh Limite superiore canale AI, valore predefinito 10V, range [0-10V]
5 * @param [in] currentLow Valore di corrente della saldatrice corrispondente al limite inferiore del canale AI, valore predefinito 0V, range [0-200V]
6 * @param [in] currentHigh Valore di corrente della saldatrice corrispondente al limite superiore del canale AI, valore predefinito 100V, range [0-200V]
7 * @return Codice di errore
8 */
9int ArcWeldTraceCurrentPara(float AILow, float AIHigh, float currentLow, float currentHigh);
14.54. Parametri di conversione per la retroazione della tensione della saldatrice nel tracciamento dell’arco
Nuovo nella versione C#SDK-V1.1.3: Web-3.8.2
1/**
2 * @brief Parametri di conversione per la retroazione della tensione della saldatrice nel tracciamento dell'arco
3 * @param [in] AILow Limite inferiore canale AI, valore predefinito 0V, range [0-10V]
4 * @param [in] AIHigh Limite superiore canale AI, valore predefinito 10V, range [0-10V]
5 * @param [in] voltageLow Valore di tensione della saldatrice corrispondente al limite inferiore del canale AI, valore predefinito 0V, range [0-200V]
6 * @param [in] voltageHigh Valore di tensione della saldatrice corrispondente al limite superiore del canale AI, valore predefinito 100V, range [0-200V]
7 * @return Codice di errore
8 */
9int ArcWeldTraceVoltagePara(float AILow, float AIHigh, float voltageLow, float voltageHigh);
14.55. Esempio di codice per il tracciamento dell’arco
Nuovo nella versione C#SDK-V1.1.3: Web-3.8.2
1private void btnweld_Click(object sender, EventArgs e)
2{
3 DescPose safetydescPose = new DescPose(-504.043, 275.181, 40.908, -28.002, -42.025, -14.044);
4 JointPos safetyjointPos = new JointPos(-39.078, -76.732, 87.227, -99.47, -94.301, 18.714);
5 DescPose startdescPose = new DescPose(-473.86, 257.879, -20.849, -37.317, -42.021, 2.543);
6 JointPos startjointPos = new JointPos(-43.487, -76.526, 95.568, -104.445, -89.356, 3.72);
7
8 DescPose enddescPose = new DescPose(-499.844, 141.225, 7.72, -34.856, -40.17, 13.13);
9 JointPos endjointPos = new JointPos(-31.305, -82.998, 99.401, -104.426, -89.35, 3.696);
10
11 ExaxisPos exaxisPos = new ExaxisPos(0, 0, 0, 0);
12 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
13 robot.MoveJ(safetyjointPos, safetydescPose, 1, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
14
15 robot.WeldingSetCurrentRelation(0, 495, 1, 10, 0);
16 robot.WeldingSetVoltageRelation(10, 45, 1, 10, 1);
17 robot.WeldingSetVoltage(0, 25, 1, 0);// ----Imposta tensione
18 robot.WeldingSetCurrent(0, 260, 0, 0);// ----Imposta corrente
19
20 int rtn = robot.ArcWeldTraceAIChannelCurrent(4);
21 Console.WriteLine("ArcWeldTraceAIChannelCurrent rtn is " + rtn);
22 rtn = robot.ArcWeldTraceAIChannelVoltage(5);
23 Console.WriteLine("ArcWeldTraceAIChannelVoltage rtn is " + rtn);
24 rtn = robot.ArcWeldTraceCurrentPara((float)0, (float)5, (float)0, (float)500);
25 Console.WriteLine("ArcWeldTraceCurrentPara rtn is " + rtn);
26 rtn = robot.ArcWeldTraceVoltagePara((float)1.018, (float)10, (float)0, (float)50);
27 Console.WriteLine("ArcWeldTraceVoltagePara rtn is " + rtn);
28
29 robot.MoveJ(startjointPos, startdescPose, 1, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
30 robot.ArcWeldTraceControl(1, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
31 robot.ARCStart(0, 0, 10000);
32 robot.WeaveStart(0);
33 // robot.MoveL(endjointPos, enddescPose, 1, 0, 100, 100, 2, -1, exaxisPos, 0, 0, offdese);
34 robot.ARCEnd(0, 0, 10000);
35 robot.WeaveEnd(0);
36 robot.ArcWeldTraceControl(0, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
37 robot.MoveJ(safetyjointPos, safetydescPose, 1, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
38}
14.56. Impostare le porte IO estese per la ricerca del filo
1/**
2 * @brief Imposta le porte IO estese per la ricerca del filo
3 * @param searchDoneDINum Porta DO per il successo della ricerca del filo (0-127)
4 * @param searchStartDONum Porta DO per il controllo avvio/arresto della ricerca del filo (0-127)
5 * @return Codice di errore
6 */
7int SetWireSearchExtDIONum(int searchDoneDINum, int searchStartDONum);
14.57. Inizio della ricerca del filo
1/**
2 * @brief Inizia la ricerca del filo
3 * @param [in] refPos 1-Punto di riferimento 0-Punto di contatto
4 * @param [in] searchVel Velocità di ricerca %
5 * @param [in] searchDis Distanza di ricerca mm
6 * @param [in] autoBackFlag Flag ritorno automatico, 0-Non automatico; -Automatico
7 * @param [in] autoBackVel Velocità di ritorno automatico %
8 * @param [in] autoBackDis Distanza di ritorno automatico mm
9 * @param [in] offectFlag 1-Ricerca con offset; 0-Ricerca al 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.58. Fine della ricerca del filo
1/**
2 * @brief Termina la ricerca del filo
3 * @param [in] refPos 1-Punto di riferimento 2-Punto di contatto
4 * @param [in] searchVel Velocità di ricerca %
5 * @param [in] searchDis Distanza di ricerca mm
6 * @param [in] autoBackFlag Flag ritorno automatico, 0-Non automatico; -Automatico
7 * @param [in] autoBackVel Velocità di ritorno automatico %
8 * @param [in] autoBackDis Distanza di ritorno automatico mm
9 * @param [in] offectFlag 1-Ricerca con offset; 2-Ricerca al 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.59. Calcolare l’offset della ricerca del filo
1/**
2 * @brief Calcola l'offset della ricerca del filo
3 * @param [in] seamType Tipo di giunzione
4 * @param [in] method Metodo di calcolo
5 * @param [in] varNameRef Punti di riferimento 1-6, "#" indica nessuna variabile punto
6 * @param [in] varNameRes Punti di contatto 1-6, "#" indica nessuna variabile punto
7 * @param [out] offectFlag 0-L'offset viene aggiunto direttamente ai punti di comando; 1-L'offset richiede una trasformazione delle coordinate dei punti di comando
8 * @param [out] offect Posa offset [x, y, z, a, b, c]
9 * @return Codice di errore
10 */
11int GetWireSearchOffset(int seamType, int method, string[] varNameRef, string[] varNameRes, ref int offsetFlag, ref DescPose offset);
14.60. Attendere il completamento della ricerca del filo
1/**
2 * @brief Attende il completamento della ricerca del filo
3 * @return Codice di errore
4 */
5int WireSearchWait(string name);
14.61. Scrivere il punto di contatto della ricerca del filo nel database
1/**
2 * @brief Scrive il punto di contatto della ricerca del filo nel database
3 * @param [in] varName Nome del punto di contatto "RES0" ~ "RES99"
4 * @param [in] pos Dati del punto di contatto [x, y, z, a, b, c]
5 * @return Codice di errore
6 */
7int SetPointToDatabase(string varName, DescPose pos);
14.62. Esempio di codice per la ricerca del filo del robot
1private void button53_Click(object sender, EventArgs e)
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 DescPose descStart = new DescPose(216.543, 445.175, 93.465, 179.683, 1.757, -112.641);
13 JointPos jointStart = new JointPos(-128.345, -86.660, 114.679, -119.625, -89.219, 74.303);
14
15 DescPose descEnd = new DescPose(111.143, 523.384, 87.659, 179.703, 1.835, -97.750);
16 JointPos jointEnd = new JointPos(-113.454, -81.060, 109.328, -119.954, -89.218, 74.302);
17
18 robot.MoveL(jointStart, descStart, 1, 1, 100, 100, 100, -1, exaxisPos, 0, 0, offdese);
19 robot.MoveL(jointEnd, descEnd, 1, 1, 100, 100, 100, -1, exaxisPos, 0, 0, offdese);
20
21 DescPose descREF0A = new DescPose(142.135, 367.604, 86.523, 179.728, 1.922, -111.089);
22 JointPos jointREF0A = new JointPos(-126.794, -100.834, 128.922, -119.864, -89.218, 74.302);
23
24 DescPose descREF0B = new DescPose(254.633, 463.125, 72.604, 179.845, 2.341, -114.704);
25 JointPos jointREF0B = new JointPos(-130.413, -81.093, 112.044, -123.163, -89.217, 74.303);
26
27 DescPose descREF1A = new DescPose(92.556, 485.259, 47.476, -179.932, 3.130, -97.512);
28 JointPos jointREF1A = new JointPos(-113.231, -83.815, 119.877, -129.092, -89.217, 74.303);
29
30 DescPose descREF1B = new DescPose(203.103, 583.836, 63.909, 179.991, 2.854, -103.372);
31 JointPos jointREF1B = new JointPos(-119.088, -69.676, 98.692, -121.761, -89.219, 74.303);
32
33 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
34 robot.MoveL(jointREF0A, descREF0A, 1, 1, 100, 100, 100, -1, exaxisPos, 0, 0, offdese); //Punto di partenza
35 robot.MoveL(jointREF0B, descREF0B, 1, 1, 100, 100, 100, -1, exaxisPos, 1, 0, offdese); //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, 1, 100, 100, 100, -1, exaxisPos, 0, 0, offdese); //Punto di partenza
41 robot.MoveL(jointREF1B, descREF1B, 1, 1, 100, 100, 100, -1, exaxisPos, 1, 0, offdese); //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, 1, 100, 100, 100, -1, exaxisPos, 0, 0, offdese); //Punto di partenza
47 robot.MoveL(jointREF0B, descREF0B, 1, 1, 100, 100, 100, -1, exaxisPos, 1, 0, offdese); //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, 1, 100, 100, 100, -1, exaxisPos, 0, 0, offdese); //Punto di partenza
53 robot.MoveL(jointREF1B, descREF1B, 1, 1, 100, 100, 100, -1, exaxisPos, 1, 0, offdese); //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 rtn0 = robot.GetWireSearchOffset(0, 0, varNameRef, varNameRes, ref offectFlag, ref offectPos);
62 robot.PointsOffsetEnable(0, offectPos);
63 robot.MoveL(jointStart, descStart, 1, 1, 100, 100, 100, -1, exaxisPos, 0, 0, offdese);
64 robot.MoveL(jointEnd, descEnd, 1, 1, 100, 100, 100, -1, exaxisPos, 1, 0, offdese);
65 robot.PointsOffsetDisable();
66}
14.63. Impostare l’inizio della transizione graduale della tensione di saldatura
Nuovo nella versione C#SDK-V1.1.3: Web-3.8.2
1/**
2 * @brief Imposta l'inizio della transizione graduale della tensione di saldatura
3 * @param [in] IOType Tipo di controllo; 0-IO della centralina; 1-Protocollo di comunicazione digitale (UDP); 2-Protocollo di comunicazione digitale (ModbusTCP)
4 * @param [in] voltageStart Tensione di saldatura iniziale (V)
5 * @param [in] voltageEnd Tensione di saldatura finale (V)
6 * @param [in] AOIndex Numero porta AO della centralina (0-1)
7 * @param [in] blend Se levigare 0-Non levigare; 1-Levigare
8 * @return Codice di errore
9 */
10int WeldingSetVoltageGradualChangeStart(int IOType, double voltageStart, double voltageEnd, int AOIndex, int blend);
14.64. Impostare la fine della transizione graduale della tensione di saldatura
Nuovo nella versione C#SDK-V1.1.3: Web-3.8.2
1/**
2 * @brief Imposta la fine della transizione graduale della tensione di saldatura
3 * @return Codice di errore
4 */
5int WeldingSetVoltageGradualChangeEnd();
14.65. Impostare l’inizio della transizione graduale della corrente di saldatura
Nuovo nella versione C#SDK-V1.1.3: Web-3.8.2
1/**
2 * @brief Imposta l'inizio della transizione graduale della corrente di saldatura
3 * @param [in] IOType Tipo di controllo; 0-IO della centralina; 1-Protocollo di comunicazione digitale (UDP); 2-Protocollo di comunicazione digitale (ModbusTCP)
4 * @param [in] currentStart Corrente di saldatura iniziale (A)
5 * @param [in] currentEnd Corrente di saldatura finale (A)
6 * @param [in] AOIndex Numero porta AO della centralina (0-1)
7 * @param [in] blend Se levigare 0-Non levigare; 1-Levigare
8 * @return Codice di errore
9 */
10int WeldingSetCurrentGradualChangeStart(int IOType, double currentStart, double currentEnd, int AOIndex, int blend);
14.66. Impostare la fine della transizione graduale della corrente di saldatura
Nuovo nella versione C#SDK-V1.1.3: Web-3.8.2
1/**
2 * @brief Imposta la fine della transizione graduale della corrente di saldatura
3 * @return Codice di errore
4 */
5int WeldingSetCurrentGradualChangeEnd();
14.67. Esempio di codice per la transizione graduale di corrente e tensione di saldatura del robot
Nuovo nella versione C#SDK-V1.1.3: Web-3.8.2
1private void btnweld_Click(object sender, EventArgs e)
2{
3 DescPose startdescPose = new DescPose(-319.303, -240.689, 116.379, -175.879, -0.337, 148.239);
4 JointPos startjointPos = new JointPos(20.474, -103.554, 126.774, -116.682, -87.746, -37.709);
5
6 DescPose enddescPose = new DescPose(-454.166, -327.159, 62.217, 177.199, -2.276, 154.955);
7 JointPos endjointPos = new JointPos(27.176, -74.423, 104.557, -119.315, -93.514, -37.698);
8
9 DescPose safedescPose = new DescPose(-375.533, -543.319, 19.798, 177.486, -2.489, 175.825);
10 JointPos safejointPos = new JointPos(48.074, -59.714, 89.955, -119.777, -93.508, -37.683);
11
12 ExaxisPos exaxisPos = new ExaxisPos(0, 0, 0, 0);
13 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
14
15 robot.WeldingSetCurrentRelation(0, 495, 1, 10, 0);
16 robot.WeldingSetVoltageRelation(10, 45, 1, 10, 1);
17
18 robot.WeldingSetVoltage(0, 25, 1, 0);//
19 robot.WeldingSetCurrent(0, 260, 0, 0);//
20
21 robot.MoveJ(safejointPos, safedescPose, 1, 0, 5, 100, 100, exaxisPos, -1, 0, offdese);
22
23 int rtn = robot.WeldingSetCurrentGradualChangeStart(0, 260, 220, 0, 0);
24 Console.WriteLine($"WeldingSetCurrentGradualChangeStart rtn is {rtn}");
25 rtn = robot.WeldingSetVoltageGradualChangeStart(0, 25, 22, 1, 0);
26 Console.WriteLine($"WeldingSetVoltageGradualChangeStart rtn is {rtn}");
27
28 rtn = robot.ArcWeldTraceControl(1, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
29 Console.WriteLine($"ArcWeldTraceControl rtn is {rtn}");
30
31 robot.MoveJ(startjointPos, startdescPose, 1, 0, 5, 100, 100, exaxisPos, -1, 0, offdese);
32
33 robot.ARCStart(0, 0, 10000);
34 robot.WeaveStart(0);
35 rtn = robot.WeaveChangeStart(2, 1, 24, 36);
36 Console.WriteLine($"WeaveChangeStart rtn is {rtn}");
37 //robot.MoveL(endjointPos, enddescPose, 1, 0, 100, 100, 2, -1, exaxisPos, 0, 0, offdese);
38 robot.ARCEnd(0, 0, 10000);
39 robot.WeaveChangeEnd();
40 robot.WeaveEnd(0);
41 robot.ArcWeldTraceControl(0, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
42 robot.WeldingSetCurrentGradualChangeEnd();
43 robot.WeldingSetVoltageGradualChangeEnd();
44}
14.68. Impostare i parametri di oscillazione personalizzati
Nuovo nella versione C#SDK-V1.1.8: Web-3.8.6
1/**
2 * @brief Imposta i parametri di oscillazione personalizzati
3 * @param [in] id Numero di oscillazione personalizzata: 0-2
4 * @param [in] pointNum Numero di punti di oscillazione 0-10
5 * @param [in] points Dati dei punti di estremità del movimento x,y,z
6 * @param [in] stayTimes Tempi di permanenza nell'oscillazione ms
7 * @param [in] frequency Frequenza di oscillazione Hz
8 * @param [in] incStayType Modalità di attesa: 0-Il ciclo non include il tempo di attesa; 1-Il ciclo include il tempo di attesa
9 * @param [in] stationary Attesa della posizione di oscillazione: 0-Continua a muoversi durante il tempo di attesa; 1-Posizione ferma durante il tempo di attesa
10 * @return Codice di errore
11 */
12public int CustomWeaveSetPara(int id, int pointNum, DescTran[] points, double[] stayTimes, double frequency, int incStayType, int stationary)
14.69. Ottenere i parametri di oscillazione personalizzati
Nuovo nella versione C#SDK-V1.1.8: Web-3.8.6
1/**
2 * @brief Ottiene i parametri di oscillazione personalizzati
3 * @param [in] id Numero di oscillazione personalizzata: 0-2
4 * @param [out] pointNum Numero di punti di oscillazione 0-10
5 * @param [out] points Dati dei punti di estremità del movimento x,y,z
6 * @param [out] stayTimes Tempi di permanenza nell'oscillazione ms
7 * @param [out] frequency Frequenza di oscillazione Hz
8 * @param [out] incStayType Modalità di attesa: 0-Il ciclo non include il tempo di attesa; 1-Il ciclo include il tempo di attesa
9 * @param [out] stationary Attesa della posizione di oscillazione: 0-Continua a muoversi durante il tempo di attesa; 1-Posizione ferma durante il tempo di attesa
10 * @return Codice di errore
11 */
12public int CustomWeaveGetPara(int id, ref int pointNum, ref DescTran[] points, ref double[] stayTimes, ref double frequency, ref int incStayType, ref int stationary)
14.70. Esempio di codice per i parametri di oscillazione personalizzati
Nuovo nella versione C#SDK-V1.1.8: Web-3.8.6
1public void TestCoordMain5()
2{
3 DescTran[] points = new DescTran[10];
4 for (int i = 0; i < 10; i++)
5 {
6 points[i] = new DescTran();
7 }
8 points[0].x = -3;
9 points[0].y = -3;
10 points[0].z = 0;
11 points[1].x = -6;
12 points[1].y = 0;
13 points[1].z = 0;
14 points[2].x = -3;
15 points[2].y = 3;
16 points[2].z = 0;
17 points[3].x = 0;
18 points[3].y = 0;
19 points[3].z = 0;
20 double[] stayTimes = new double[10] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
21 int rtn = robot.CustomWeaveSetPara(2, 4, points, stayTimes, 1.000, 0, 0);
22 Console.WriteLine($"CustomWeaveSetPara rtn is {rtn}");
23 System.Threading.Thread.Sleep(1000);
24 int pointNum = 0;
25 double frequency = 0;
26 int incStayType = 0;
27 int stationary = 0;
28 rtn = robot.CustomWeaveGetPara(2, ref pointNum, ref points, ref stayTimes, ref frequency, ref incStayType, ref stationary);
29 Console.WriteLine($"pointNum is {pointNum}");
30 for (int i = 0; i < pointNum; i++)
31 {
32 Console.WriteLine($"point {i}, point x y z {points[i].x:F6} {points[i].y:F6} {points[i].z:F6}");
33 }
34 Console.WriteLine($"fre is {frequency:F6}, stay is {incStayType} {stationary}");
35 robot.WeaveSetPara(0, 9, 1.000000, 1, 5.000000, 6.000000, 5.000000, 50, 100, 100, 0, 1, 0.000000, 0.000000);
36 DescPose desc_p1 = new DescPose(-288.650, 367.807, 288.404, 0.000, -0.001, 0.001);
37 DescPose desc_p2 = new DescPose(-431.714, 367.815, 288.415, 0.001, 0.001, 0.000);
38 DescPose desc_p3 = new DescPose(-348.666, 427.798, 288.404, -0.000, -0.000, 0.001);
39 JointPos j1 = new JointPos(140.656, -84.560, -91.707, -93.734, 90.000,50.655 );
40 JointPos j2 = new JointPos ( 149.873, -98.298, -77.599, -94.103, 90.000, 59.873 );
41 JointPos j3 = new JointPos (139.773, -96.173, -80.014, -93.814, 90.000, 49.772 );
42 ExaxisPos epos = new ExaxisPos(0,0,0,0);
43 DescPose offset_pos = new DescPose(0,0,0,0,0,0);
44 robot.MoveJ(j1, desc_p1, 3, 0, 100, 100, 100, epos, -1, 0, offset_pos);
45 robot.WeaveStart(0);
46 robot.Circle(j3, desc_p3, 3, 0, 100, 100, epos, j2, desc_p2, 3, 0, 100, 100, epos, 10, -1, offset_pos, 100, -1, 0);
47 robot.WeaveEnd(0);
48 robot.MoveJ(j1, desc_p1, 3, 0, 100, 100, 100, epos, -1, 0, offset_pos);
49 robot.WeaveStart(0);
50 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);
51 robot.WeaveEnd(0);
52 robot.MoveJ(j1, desc_p1, 3, 0, 100, 100, 100, epos, -1, 0, offset_pos);
53 robot.WeaveStart(0);
54 robot.MoveL(j2, desc_p2, 3, 0, 100, 100, 10, -1, epos, 0, 0, offset_pos, 0, 0, 10);
55 robot.WeaveEnd(0);
56}
14.71. Configurazione dei Parametri della Saldatrice Laser
1/**
2* @brief Scrive i parametri di configurazione per uno dei 10 gruppi di processo della saldatrice laser e configura la saldatrice
3* @param[in] io_type Tipo di comunicazione 0-IO 1-UDP
4* @param[in] num Numero del gruppo da impostare (1~10)
5* @param[in] scanSpeed Velocità di scansione
6* @param[in] scanWidth Larghezza di scansione
7* @param[in] peakPower Potenza di picco
8* @param[in] dutyCycle Ciclo di lavoro
9* @param[in] 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.72. Impostare Avvio/Arresto Saldatura Laser
1/**
2* @brief Imposta accensione/spegnimento della saldatrice laser
3* @param[in] io_type Tipo di comunicazione 0-IO 1-UDP
4* @param[in] status Parola di controllo 0-laser spento 1-laser acceso
5* @param[in] max_waittime Tempo massimo di attesa
6* @return Codice di errore
7*/
8public int SetLaserWeldingStartEnd(int io_type, int status, int max_waittime)
14.73. Abilitazione/Disabilitazione Saldatrice Laser
1/**
2* @brief Abilita/disabilita la saldatrice laser
3* @param[in] io_type Tipo di comunicazione 0-IO 1-UDP
4* @param[in] status 0-disabilita 1-abilita
5* @return Codice di errore
6*/
7public int SetLaserWeldingEnable(int io_type, int status)
14.74. Ripristino Guasto Saldatrice Laser
1/**
2* @brief Ripristina il guasto della saldatrice laser
3* @param[in] io_type Tipo di comunicazione 0-IO 1-UDP
4* @param[in] status Parola di controllo 0-invalido 1-ripristino guasto
5* @return Codice di errore
6*/
7public int ResetLaserWeldingErr(int io_type, int status)
14.75. Ottenere lo Stato di Funzionamento della Saldatrice Laser
1/**
2* @brief Ottiene lo stato di funzionamento della saldatrice laser
3* @param[in] io_type Tipo di comunicazione 0-IO 1-UDP
4* @param[out] status Parola di controllo 0-fermo 1-in funzione
5* @return Codice di errore
6*/
7public int GetLaserWeldingRunningState(int io_type, ref int status)
14.76. Ottenere lo Stato di Guasto della Saldatrice Laser
1/**
2* @brief Ottiene lo stato di guasto della saldatrice laser
3* @param[in] io_type Tipo di comunicazione 0-IO 1-UDP
4* @param[out] status 0-nessun guasto 1-guasto presente
5* @return Codice di errore
6*/
7public int GetLaserWeldingErrState(int io_type, ref int status)
14.77. Ottenere i Parametri Configurati della Saldatrice Laser
1/**
2* @brief Ottiene i parametri di configurazione per uno dei 10 gruppi di processo della saldatrice laser
3* @param[in] num Numero del gruppo da impostare (1~10)
4* @param[out] scanSpeed Velocità di scansione
5* @param[out] scanWidth Larghezza di scansione
6* @param[out] peakPower Potenza di picco
7* @param[out] dutyCycle Ciclo di lavoro
8* @param[out] freq Frequenza
9* @return Codice di errore
10*/
11public int GetLaserWeldingParamTarget(int num, ref int scanSpeed, ref int scanWidth, ref int peakPower, ref int dutyCycle, ref int freq)
14.78. Ottenere i Parametri di Configurazione Attualmente Attivi della Saldatrice Laser
1/**
2* @brief Ottiene i parametri di configurazione attualmente attivi della saldatrice laser
3* @param[in] io_type Tipo di comunicazione 0-IO 1-UDP
4* @param[out] scanSpeed Velocità di scansione
5* @param[out] scanWidth Larghezza di scansione
6* @param[out] peakPower Potenza di picco
7* @param[out] dutyCycle Ciclo di lavoro
8* @param[out] freq Frequenza
9* @return Codice di errore
10*/
11public int GetLaserWeldingParamActual(int io_type, ref int scanSpeed, ref int scanWidth, ref int peakPower, ref int dutyCycle, ref int freq)
14.79. Configurare la Porta DO di Abilitazione IO Esteso della Saldatrice Laser
1/**
2* @brief Imposta l'IO esteso della saldatrice laser, porta DO di abilitazione
3* @param[in] ctrlModeDONum Numero della porta DO estesa per l'abilitazione della saldatrice laser
4* @return Codice di errore
5*/
6public int SetLaserWeldingEnableExtDoNum(int ctrlModeDONum)
14.80. Configurare la Porta DO di Avvio IO Esteso della Saldatrice Laser
1/**
2* @brief Imposta l'IO esteso della saldatrice laser, porta DO di avvio
3* @param[in] ctrlModeDONum Numero della porta DO estesa per l'avvio (laser acceso/spento) della saldatrice laser
4* @return Codice di errore
5*/
6public int SetLaserWeldingStartExtDoNum(int ctrlModeDONum)
14.81. Configurare la Porta DO di Ripristino Guasto IO Esteso della Saldatrice Laser
1/**
2* @brief Imposta l'IO esteso della saldatrice laser, porta DO di ripristino guasto
3* @param[in] ctrlModeDONum Numero della porta DO estesa per il ripristino del guasto della saldatrice laser
4* @return Codice di errore
5*/
6public int SetLaserWeldingErrResetExtDoNum(int ctrlModeDONum)
14.82. Configurare il DI Esteso per lo Stato di Funzionamento (Stato Laser Accesso) della Saldatrice Laser
1/**
2* @brief Configura il DI esteso per lo stato di funzionamento (stato laser acceso) della saldatrice laser
3* @param[in] diNum Porta DI estesa per lo stato di funzionamento (stato laser acceso) della saldatrice laser
4* @return Codice di errore
5*/
6public int SetLaserWeldingRunningStateExtDiNum(int diNum)
14.83. Configurare la Porta DI di Stato Guasto IO Esteso della Saldatrice Laser
1/**
2* @brief Configura il DI esteso per lo stato di guasto della saldatrice laser
3* @param[in] diNum Porta DI estesa per lo stato di guasto della saldatrice laser
4* @return Codice di errore
5*/
6public int SetLaserWeldingErrStateExtDiNum(int diNum)
14.84. Esempio di Codice per Saldatura Laser
1private void btnLaserWeld_Click(object sender, EventArgs e)
2{
3
4 int rtn = -1;
5 // Carica driver UDP
6 rtn = robot.ExtDevLoadUDPDriver();
7 if (rtn != 0)
8 {
9 Console.WriteLine("Failed to load UDP driver, error code: " + rtn);
10 }
11 Thread.Sleep(1000);
12
13 // Imposta parametri saldatura laser: io_type=1, num=3, scanSpeed=2000, scanWidth=3, peakPower=1500, dutyCycle=100, freq=1000
14 rtn = robot.SetLaserWeldingParam(1, 3, 2000, 3, 1500, 100, 1000);
15 if (rtn != 0)
16 {
17 Console.WriteLine("SetLaserWeldingParam failed, error code: " + rtn);
18 }
19 else
20 {
21 Console.WriteLine("SetLaserWeldingParam success");
22 }
23
24 // Imposta il numero della porta DO di avvio
25 rtn = robot.SetLaserWeldingStartExtDoNum(1);
26 if (rtn != 0)
27 {
28 Console.WriteLine("SetLaserWeldingStartExtDoNum failed, error code: " + rtn);
29 }
30
31 // Imposta la modalità 0 (modalità insegnamento)
32 rtn = robot.Mode(0);
33 if (rtn != 0)
34 {
35 Console.WriteLine("Set mode 0 failed, error code: " + rtn);
36 }
37 Thread.Sleep(1000);
38
39
40 DescPose desc_pos1 = new DescPose(-303.721, -206.960, 297.105, 152.209, 19.857, 109.166);
41 DescPose desc_pos2 = new DescPose(-301.575, -254.888, 284.786, 155.919, 26.946, 111.629);
42 DescPose desc_safe = new DescPose(-344.386, -280.830, 435.073, 173.835, 15.333, 124.931);
43
44
45 ExaxisPos exaxis = new ExaxisPos(0.0, 0.0, 0.0, 0.0);
46 DescPose offset = new DescPose(0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
47
48 // Muovi al primo punto di saldatura
49 int error = robot.MoveL(desc_pos1, 0, 0, 100, 100, 100, -1, 0, exaxis, 0, 0, offset, -1, 0);
50 Console.WriteLine("MoveL to pos1 return: " + error);
51
52 // Avvia laser (laser acceso)
53 rtn = robot.SetLaserWeldingStartEnd(1, 1, 10000);
54 if (rtn != 0)
55 {
56 Console.WriteLine("SetLaserWeldingStartEnd (start) failed, error code: " + rtn);
57 }
58 else
59 {
60 Console.WriteLine("Laser started");
61 }
62
63 // Muovi al secondo punto di saldatura (durante la saldatura)
64 rtn = robot.MoveL(desc_pos2, 0, 0, 30, 100, 100, -1, 0, exaxis, 0, 0, offset, -1, 0);
65 Console.WriteLine("MoveL to pos2 return: " + rtn);
66
67 Thread.Sleep(500);
68 // Ferma laser (laser spento)
69 rtn = robot.SetLaserWeldingStartEnd(1, 0, 10000);
70 if (rtn != 0)
71 {
72 Console.WriteLine("SetLaserWeldingStartEnd (stop) failed, error code: " + rtn);
73 }
74 else
75 {
76 Console.WriteLine("Laser stopped");
77 }
78
79 // Muovi al punto di sicurezza
80 rtn = robot.MoveL(desc_safe, 0, 0, 100, 100, 100, -1, 0, exaxis, 0, 0, offset, -1, 0);
81 Console.WriteLine("MoveL to safe_pos return: " + rtn);
82
83 // Imposta la modalità 1 (modalità remota)
84 rtn = robot.Mode(1);
85 if (rtn != 0)
86 {
87 Console.WriteLine("Set mode 1 failed, error code: " + rtn);
88 }
89 Thread.Sleep(1000);
90
91 // Chiudi connessione
92 robot.CloseRPC();
93 Thread.Sleep(1000);
94
95 Console.WriteLine("Test completed");
96
97 return ;
98}