14. Spawanie robotem
14.1. Ustawienie parametrów krzywej procesu spawania
1/**
2* @brief Ustawia parametry krzywej procesu spawania
3* @param [in] id Numer procesu spawania (1-99)
4* @param [in] startCurrent Prąd zajarzenia łuku (A)
5* @param [in] startVoltage Napięcie zajarzenia łuku (V)
6* @param [in] startTime Czas zajarzenia łuku (ms)
7* @param [in] weldCurrent Prąd spawania (A)
8* @param [in] weldVoltage Napięcie spawania (V)
9* @param [in] endCurrent Prąd wygaszenia łuku (A)
10* @param [in] endVoltage Napięcie wygaszenia łuku (V)
11* @param [in] endTime Czas wygaszenia łuku (ms)
12* @return Kod błędu
13*/
14int WeldingSetProcessParam(int id, double startCurrent, double startVoltage, double startTime, double weldCurrent, double weldVoltage, double endCurrent, double endVoltage, double endTime);
14.2. Pobranie parametrów krzywej procesu spawania
1/**
2* @brief Pobiera parametry krzywej procesu spawania
3* @param [in] id Numer procesu spawania (1-99)
4* @param [out] startCurrent Prąd zajarzenia łuku (A)
5* @param [out] startVoltage Napięcie zajarzenia łuku (V)
6* @param [out] startTime Czas zajarzenia łuku (ms)
7* @param [out] weldCurrent Prąd spawania (A)
8* @param [out] weldVoltage Napięcie spawania (V)
9* @param [out] endCurrent Prąd wygaszenia łuku (A)
10* @param [out] endVoltage Napięcie wygaszenia łuku (V)
11* @param [out] endTime Czas wygaszenia łuku (ms)
12* @return Kod błędu
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. Ustawienie zależności między prądem spawania a wyjściem analogowym
Nowe w wersji C#SDK-v1.0.4.
1/**
2* @brief Ustawia zależność między prądem spawania a wyjściem analogowym
3* @param [in] currentMin Wartość prądu w lewym punkcie zależności liniowej prąd spawania - wyjście analogowe (A)
4* @param [in] currentMax Wartość prądu w prawym punkcie zależności liniowej prąd spawania - wyjście analogowe (A)
5* @param [in] outputVoltageMin Wartość napięcia wyjściowego analogowego w lewym punkcie zależności liniowej prąd spawania - wyjście analogowe (V)
6* @param [in] outputVoltageMax Wartość napięcia wyjściowego analogowego w prawym punkcie zależności liniowej prąd spawania - wyjście analogowe (V)
7* @return Kod błędu
8*/
9int WeldingSetCurrentRelation(double currentMin, double currentMax, double outputVoltageMin, double outputVoltageMax);
14.4. Ustawienie zależności między napięciem spawania a wyjściem analogowym
Nowe w wersji C#SDK-v1.0.4.
1/**
2* @brief Ustawia zależność między napięciem spawania a wyjściem analogowym
3* @param [in] weldVoltageMin Wartość napięcia spawania w lewym punkcie zależności liniowej napięcie spawania - wyjście analogowe (A)
4* @param [in] weldVoltageMax Wartość napięcia spawania w prawym punkcie zależności liniowej napięcie spawania - wyjście analogowe (A)
5* @param [in] outputVoltageMin Wartość napięcia wyjściowego analogowego w lewym punkcie zależności liniowej napięcie spawania - wyjście analogowe (V)
6* @param [in] outputVoltageMax Wartość napięcia wyjściowego analogowego w prawym punkcie zależności liniowej napięcie spawania - wyjście analogowe (V)
7* @return Kod błędu
8*/
9int WeldingSetVoltageRelation(double weldVoltageMin, double weldVoltageMax, double outputVoltageMin, double outputVoltageMax);
14.5. Pobranie zależności między prądem spawania a wyjściem analogowym
Nowe w wersji C#SDK-v1.0.4.
1/**
2* @brief Pobiera zależność między prądem spawania a wyjściem analogowym
3* @param [out] currentMin Wartość prądu w lewym punkcie zależności liniowej prąd spawania - wyjście analogowe (A)
4* @param [out] currentMax Wartość prądu w prawym punkcie zależności liniowej prąd spawania - wyjście analogowe (A)
5* @param [out] outputVoltageMin Wartość napięcia wyjściowego analogowego w lewym punkcie zależności liniowej prąd spawania - wyjście analogowe (V)
6* @param [out] outputVoltageMax Wartość napięcia wyjściowego analogowego w prawym punkcie zależności liniowej prąd spawania - wyjście analogowe (V)
7* @return Kod błędu
8*/
9int WeldingGetCurrentRelation(ref double currentMin, ref double currentMax, ref double outputVoltageMin, ref double outputVoltageMax);
14.6. Pobranie zależności między napięciem spawania a wyjściem analogowym
Nowe w wersji C#SDK-v1.0.4.
1/**
2* @brief Pobiera zależność między napięciem spawania a wyjściem analogowym
3* @param [out] weldVoltageMin Wartość napięcia spawania w lewym punkcie zależności liniowej napięcie spawania - wyjście analogowe (A)
4* @param [out] weldVoltageMax Wartość napięcia spawania w prawym punkcie zależności liniowej napięcie spawania - wyjście analogowe (A)
5* @param [out] outputVoltageMin Wartość napięcia wyjściowego analogowego w lewym punkcie zależności liniowej napięcie spawania - wyjście analogowe (V)
6* @param [out] outputVoltageMax Wartość napięcia wyjściowego analogowego w prawym punkcie zależności liniowej napięcie spawania - wyjście analogowe (V)
7* @return Kod błędu
8*/
9int WeldingGetVoltageRelation(ref double weldVoltageMin, ref double weldVoltageMax, ref double outputVoltageMin, ref double outputVoltageMax);
14.7. Ustawienie prądu spawania
Nowe w wersji C#SDK-v1.0.4.
1/**
2* @brief Ustawia prąd spawania
3* @param [in] ioType Typ I/O sterowania 0-I/O skrzynki sterowniczej; 1-rozszerzone I/O
4* @param [in] current Wartość prądu spawania (A)
5* @param [in] AOIndex Port wyjścia analogowego sterowania prądem spawania skrzynki sterowniczej (0-1)
6* @return Kod błędu
7*/
8int WeldingSetCurrent(int ioType, double current, int AOIndex);
14.8. Ustawienie napięcia spawania
Nowe w wersji C#SDK-v1.0.4.
1/**
2* @brief Ustawia napięcie spawania
3* @param [in] ioType Typ I/O sterowania 0-I/O skrzynki sterowniczej; 1-rozszerzone I/O
4* @param [in] voltage Wartość napięcia spawania (A)
5* @param [in] AOIndex Port wyjścia analogowego sterowania napięciem spawania skrzynki sterowniczej (0-1)
6* @return Kod błędu
7*/
8int WeldingSetVoltage(int ioType, double voltage, int AOIndex);
14.9. Ustawienie parametrów oscylacji
Nowe w wersji C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Ustawia parametry oscylacji
3* @param [in] weaveNum Numer konfiguracji parametrów spawania z oscylacją
4* @param [in] weaveType Typ oscylacji 0-płaszczyznowa oscylacja trójkątna; 1-pionowa oscylacja L-trójkątna; 2-okrężna zgodnie z ruchem wskazówek zegara; 3-okrężna przeciwnie do ruchu wskazówek zegara; 4-płaszczyznowa oscylacja sinusoidalna; 5-pionowa oscylacja L-sinusoidalna; 6-pionowa oscylacja trójkątna; 7-pionowa oscylacja sinusoidalna
5* @param [in] weaveFrequency Częstotliwość oscylacji (Hz)
6* @param [in] weaveIncStayTime Tryb oczekiwania 0-cykl nie zawiera czasu oczekiwania; 1-cykl zawiera czas oczekiwania
7* @param [in] weaveRange Amplituda oscylacji (mm)
8* @param [in] weaveLeftRange Długość lewego ramienia w pionowej oscylacji trójkątnej (mm)
9* @param [in] weaveRightRange Długość prawego ramienia w pionowej oscylacji trójkątnej (mm)
10* @param [in] additionalStayTime Czas zatrzymania w punkcie wierzchołkowym pionowej oscylacji trójkątnej (mm)
11* @param [in] weaveLeftStayTime Czas zatrzymania po lewej stronie oscylacji (ms)
12* @param [in] weaveRightStayTime Czas zatrzymania po prawej stronie oscylacji (ms)
13* @param [in] weaveCircleRadio Współczynnik cofania dla oscylacji okrężnej (0-100%)
14* @param [in] weaveStationary Oczekiwanie w pozycji oscylacji, 0-pozycja kontynuuje ruch w czasie oczekiwania; 1-pozycja jest nieruchoma w czasie oczekiwania
15* @param [in] weaveYawAngle Azymut kierunku oscylacji (obrót wokół osi Z oscylacji), jednostka °
16* @return Kod błędu
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. Przykład kodu ustawiania parametrów spawania
Nowe w wersji 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
79}
14.11. Natychmiastowe ustawienie parametrów oscylacji
Nowe w wersji C#SDK-v1.0.4.
1/**
2* @brief Natychmiastowe ustawienie parametrów oscylacji
3* @param [in] weaveNum Numer konfiguracji parametrów spawania z oscylacją
4* @param [in] weaveType Typ oscylacji 0-płaszczyznowa oscylacja trójkątna; 1-pionowa oscylacja L-trójkątna; 2-okrężna zgodnie z ruchem wskazówek zegara; 3-okrężna przeciwnie do ruchu wskazówek zegara; 4-płaszczyznowa oscylacja sinusoidalna; 5-pionowa oscylacja L-sinusoidalna; 6-pionowa oscylacja trójkątna; 7-pionowa oscylacja sinusoidalna
5* @param [in] weaveFrequency Częstotliwość oscylacji (Hz)
6* @param [in] weaveIncStayTime Tryb oczekiwania 0-cykl nie zawiera czasu oczekiwania; 1-cykl zawiera czas oczekiwania
7* @param [in] weaveRange Amplituda oscylacji (mm)
8* @param [in] weaveLeftStayTime Czas zatrzymania po lewej stronie oscylacji (ms)
9* @param [in] weaveRightStayTime Czas zatrzymania po prawej stronie oscylacji (ms)
10* @param [in] weaveCircleRadio Współczynnik cofania dla oscylacji okrężnej (0-100%)
11* @param [in] weaveStationary Oczekiwanie w pozycji oscylacji, 0-pozycja kontynuuje ruch w czasie oczekiwania; 1-pozycja jest nieruchoma w czasie oczekiwania
12* @return Kod błędu
13*/
14int WeaveOnlineSetPara(int weaveNum, int weaveType, double weaveFrequency, int weaveIncStayTime, double weaveRange, int weaveLeftStayTime, int weaveRightStayTime, int weaveCircleRadio, int weaveStationary);
14.12. Ustawienie parametrów wykrywania nieoczekiwanego przerwania łuku spawalniczego robota
1/**
2* @brief Ustawia parametry wykrywania nieoczekiwanego przerwania łuku spawalniczego robota
3* @param [in] checkEnable Czy włączyć wykrywanie; 0-nie włączaj; 1-włącz
4* @param [in] arcInterruptTimeLength Czas potwierdzenia przerwania łuku (ms)
5* @return Kod błędu
6*/
7int WeldingSetCheckArcInterruptionParam(int checkEnable, int arcInterruptTimeLength)
14.13. Pobranie parametrów wykrywania nieoczekiwanego przerwania łuku spawalniczego robota
1/**
2* @brief Pobiera parametry wykrywania nieoczekiwanego przerwania łuku spawalniczego robota
3* @param [out] checkEnable Czy włączyć wykrywanie; 0-nie włączaj; 1-włącz
4* @param [out] arcInterruptTimeLength Czas potwierdzenia przerwania łuku (ms)
5* @return Kod błędu
6*/
7int WeldingGetCheckArcInterruptionParam(ref int checkEnable, ref int arcInterruptTimeLength)
14.14. Ustawienie parametrów wznowienia spawania po przerwaniu spawania robota
1/**
2* @brief Ustawia parametry wznowienia spawania po przerwaniu spawania robota
3* @param[in] enable Czy włączyć wznowienie spawania po przerwaniu
4* @param[in] length Odległość nakładania się spoiny (mm)
5* @param[in] velocity Procent prędkości powrotu robota do punktu ponownego zajarzenia łuku (0-100)
6* @param[in] moveType Sposób ruchu robota do punktu ponownego zajarzenia łuku; 0-LIN; 1-PTP
7* @return Kod błędu
8*/
9int WeldingSetReWeldAfterBreakOffParam(int enable, double length, double velocity, int moveType)
14.15. Pobranie parametrów wznowienia spawania po przerwaniu spawania robota
1/**
2* @brief Pobiera parametry wznowienia spawania po przerwaniu spawania robota
3* @param [out] enable Czy włączyć wznowienie spawania po przerwaniu
4* @param [out] length Odległość nakładania się spoiny (mm)
5* @param [out] velocity Procent prędkości powrotu robota do punktu ponownego zajarzenia łuku (0-100)
6* @param [out] moveType Sposób ruchu robota do punktu ponownego zajarzenia łuku; 0-LIN; 1-PTP
7* @return Kod błędu
8*/
9int WeldingGetReWeldAfterBreakOffParam(ref int enable, ref double length, ref double velocity, ref int moveType)
14.16. Ustawienie rozszerzonego portu DO trybu sterowania spawarką
1/**
2* @brief Ustawia rozszerzony port DO trybu sterowania spawarką
3* @param DONum Port DO trybu sterowania spawarką (0-127)
4* @return Kod błędu
5*/
6int SetWeldMachineCtrlModeExtDoNum(int DONum);
14.17. Ustawienie trybu sterowania spawarką
1/**
2* @brief Ustawia tryb sterowania spawarką
3* @param [in] mode Tryb sterowania spawarką; 0-tryb jednorodny DC; 1-tryb jednorodny pulsacyjny; 2-tryb JOB; 3-tryb sterowania lokalnego; 4-tryb oddzielny; 5-tryb CC/CV; 6-TIG; 7-CMT
4* @param [in] ioType Typ sterowania; 0-I/O skrzynki sterowniczej; 1-protokół komunikacji cyfrowej (UDP); 2-protokół komunikacji cyfrowej (ModbusTCP)
5* @return Kod błędu
6*/
7public int SetWeldMachineCtrlMode(int mode,int ioType = 1)
14.18. Rozpoczęcie spawania
Nowe w wersji C#SDK-v1.0.4.
1/**
2* @brief Rozpoczęcie spawania
3* @param [in] ioType Typ I/O 0-I/O kontrolera; 1-rozszerzone I/O
4* @param [in] arcNum Numer pliku konfiguracyjnego spawarki
5* @param [in] timeout Czas przekroczenia limitu zajarzenia łuku
6* @return Kod błędu
7*/
8int ARCStart(int ioType, int arcNum, int timeout);
14.19. Zakończenie spawania
Nowe w wersji C#SDK-v1.0.4.
1/**
2* @brief Zakończenie spawania
3* @param [in] ioType Typ I/O 0-I/O kontrolera; 1-rozszerzone I/O
4* @param [in] arcNum Numer pliku konfiguracyjnego spawarki
5* @param [in] timeout Czas przekroczenia limitu wygaszenia łuku
6* @return Kod błędu
7*/
8int ARCEnd(int ioType, int arcNum, int timeout);
14.20. Rozpoczęcie oscylacji
Nowe w wersji C#SDK-v1.0.4.
1/**
2* @brief Rozpoczęcie oscylacji
3* @param [in] weaveNum Numer konfiguracji parametrów spawania z oscylacją
4* @return Kod błędu
5*/
6int WeaveStart(int weaveNum);
14.21. Zakończenie oscylacji
Nowe w wersji C#SDK-v1.0.4.
1/**
2* @brief Zakończenie oscylacji
3* @param [in] weaveNum Numer konfiguracji parametrów spawania z oscylacją
4* @return Kod błędu
5*/
6int WeaveEnd(int weaveNum);
14.22. Podawanie drutu do przodu
Nowe w wersji C#SDK-v1.0.4.
1/**
2* @brief Podawanie drutu do przodu
3* @param [in] ioType Typ I/O 0-I/O kontrolera; 1-rozszerzone I/O
4* @param [in] wireFeed Sterowanie podawaniem drutu 0-zatrzymaj podawanie; 1-podawaj
5* @return Kod błędu
6*/
7int SetForwardWireFeed(int ioType, int wireFeed);
14.23. Podawanie drutu do tyłu
Nowe w wersji C#SDK-v1.0.4.
1/**
2* @brief Podawanie drutu do tyłu
3* @param [in] ioType Typ I/O 0-I/O kontrolera; 1-rozszerzone I/O
4* @param [in] wireFeed Sterowanie podawaniem drutu 0-zatrzymaj podawanie; 1-podawaj
5* @return Kod błędu
6*/
7int SetReverseWireFeed(int ioType, int wireFeed);
14.24. Podawanie gazu
Nowe w wersji C#SDK-v1.0.4.
1/**
2* @brief Podawanie gazu
3* @param [in] ioType Typ I/O 0-I/O kontrolera; 1-rozszerzone I/O
4* @param [in] airControl Sterowanie podawaniem gazu 0-zatrzymaj podawanie; 1-podawaj
5* @return Kod błędu
6*/
7int SetAspirated(int ioType, int airControl);
14.25. Ustawienie wznowienia spawania po przerwaniu spawania robota
1/**
2* @brief Ustawienie wznowienia spawania po przerwaniu spawania robota
3* @return Kod błędu
4*/
5int WeldingStartReWeldAfterBreakOff()
14.26. Ustawienie wyjścia ze spawania po przerwaniu spawania robota
1/**
2* @brief Ustawienie wyjścia ze spawania po przerwaniu spawania robota
3* @return Kod błędu
4*/
5int WeldingAbortWeldAfterBreakOff()
14.27. Przykład kodu
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. Rozpoczęcie spawania odcinkowego
Nowe w wersji C#SDK-v1.0.4.
1/**
2* @brief Rozpoczęcie spawania odcinkowego
3* @param [in] startDesePos Pozycja kartezjańska punktu początkowego
4* @param [in] endDesePos Pozycja i orientacja kartezjańska punktu końcowego
5* @param [in] startJPos Pozycja stawów punktu początkowego
6* @param [in] endJPos Pozycja stawów punktu końcowego
7* @param [in] weldLength Długość odcinka spawanego (mm)
8* @param [in] noWeldLength Długość odcinka niespawanego (mm)
9* @param [in] weldIOType Typ I/O spawania (0-I/O skrzynki sterowniczej; 1-rozszerzone I/O)
10* @param [in] arcNum Numer pliku konfiguracyjnego spawarki
11* @param [in] weldTimeout Czas przekroczenia limitu zajarzenia/wygaszenia łuku
12* @param [in] isWeave Czy stosować oscylację
13* @param [in] weaveNum Numer konfiguracji parametrów spawania z oscylacją
14* @param [in] tool Numer narzędzia
15* @param [in] user Numer przedmiotu
16* @param [in] vel Procent prędkości, zakres [0~100]
17* @param [in] acc Procent przyspieszenia, zakres [0~100], tymczasowo nieudostępnione
18* @param [in] ovl Współczynnik skalowania prędkości, zakres [0~100]
19* @param [in] blendR [-1.0]-ruch do pozycji (blokujący), [0~1000.0]-promień wygładzenia (nieblokujący), jednostka mm
20* @param [in] epos Pozycja osi rozszerzonej, jednostka mm
21* @param [in] search 0-brak pozycjonowania drutem spawalniczym, 1-pozycjonowanie drutem spawalniczym
22* @param [in] offset_flag 0-brak przesunięcia, 1-przesunięcie w podstawowym układzie współrzędnych / układzie współrzędnych przedmiotu, 2-przesunięcie w układzie współrzędnych narzędzia
23* @param [in] offset_pos Wartość przesunięcia pozycji i orientacji
24* @return Kod błędu
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. Przykład kodu spawania odcinkowego robota
Nowe w wersji 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. Rozpoczęcie symulacji oscylacji
1/**
2* @brief Rozpoczęcie symulacji oscylacji
3* @param [in] weaveNum Numer parametrów oscylacji
4* @return Kod błędu
5*/
6int WeaveStartSim(int weaveNum);
14.31. Zakończenie symulacji oscylacji
1/**
2* @brief Zakończenie symulacji oscylacji
3* @param [in] weaveNum Numer parametrów oscylacji
4* @return Kod błędu
5*/
6int WeaveEndSim(int weaveNum);
14.32. Rozpoczęcie ostrzegania o wykrywaniu trajektorii (bez ruchu)
1/**
2* @brief Rozpoczęcie ostrzegania o wykrywaniu trajektorii (bez ruchu)
3* @param [in] weaveNum Numer parametrów oscylacji
4* @return Kod błędu
5*/
6int WeaveInspectStart(int weaveNum);
14.33. Zakończenie ostrzegania o wykrywaniu trajektorii (bez ruchu)
1/**
2* @brief Zakończenie ostrzegania o wykrywaniu trajektorii (bez ruchu)
3* @param [in] weaveNum Numer parametrów oscylacji
4* @return Kod błędu
5*/
6int WeaveInspectEnd(int weaveNum);
14.34. Rozpoczęcie stopniowej zmiany oscylacji
Nowe w wersji C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Rozpoczęcie stopniowej zmiany oscylacji
3* @param [in] weaveChangeFlag 1-zmiana parametrów oscylacji; 2-zmiana parametrów oscylacji + prędkość spawania
4* @param [in] weaveNum Numer oscylacji
5* @param [in] velStart Prędkość początkowa spawania (cm/min)
6* @param [in] velEnd Prędkość końcowa spawania (cm/min)
7* @return Kod błędu
8*/
9int WeaveChangeStart(int weaveChangeFlag, int weaveNum, double velStart, double velEnd);
14.35. Zakończenie stopniowej zmiany oscylacji
1/**
2* @brief Zakończenie stopniowej zmiany oscylacji
3* @return Kod błędu
4*/
5int WeaveChangeEnd()
14.36. Przykład kodu spawania ze stopniową zmianą oscylacji robota
Nowe w wersji 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. Rozszerzone I/O - konfiguracja sygnału wykrywania gazu spawarki
1/**
2* @brief Rozszerzone I/O - konfiguracja sygnału wykrywania gazu spawarki
3* @param [in] DONum Rozszerzony numer DO sygnału wykrywania gazu
4* @return Kod błędu
5*/
6int SetAirControlExtDoNum(int DONum);
14.38. Rozszerzone I/O - konfiguracja sygnału zajarzenia łuku spawarki
1/**
2* @brief Rozszerzone I/O - konfiguracja sygnału zajarzenia łuku spawarki
3* @param [in] DONum Rozszerzony numer DO sygnału zajarzenia łuku spawarki
4* @return Kod błędu
5*/
6int SetArcStartExtDoNum(int DONum);
14.39. Rozszerzone I/O - konfiguracja sygnału podawania drutu do tyłu spawarki
1/**
2* @brief Rozszerzone I/O - konfiguracja sygnału podawania drutu do tyłu spawarki
3* @param [in] DONum Rozszerzony numer DO sygnału podawania drutu do tyłu
4* @return Kod błędu
5*/
6int SetWireReverseFeedExtDoNum(int DONum);
14.40. Rozszerzone I/O - konfiguracja sygnału podawania drutu do przodu spawarki
1/**
2* @brief Rozszerzone I/O - konfiguracja sygnału podawania drutu do przodu spawarki
3* @param [in] DONum Rozszerzony numer DO sygnału podawania drutu do przodu
4* @return Kod błędu
5*/
6int SetWireForwardFeedExtDoNum(int DONum);
14.41. Rozszerzone I/O - konfiguracja sygnału pomyślnego zajarzenia łuku spawarki
1/**
2* @brief Rozszerzone I/O - konfiguracja sygnału pomyślnego zajarzenia łuku spawarki
3* @param [in] DINum Rozszerzony numer DI sygnału pomyślnego zajarzenia łuku
4* @return Kod błędu
5*/
6int SetArcDoneExtDiNum(int DINum);
14.42. Rozszerzone I/O - konfiguracja sygnału gotowości spawarki
1/**
2* @brief Rozszerzone I/O - konfiguracja sygnału gotowości spawarki
3* @param [in] DINum Rozszerzony numer DI sygnału gotowości spawarki
4* @return Kod błędu
5*/
6int SetWeldReadyExtDiNum(int DINum);
14.43. Rozszerzone I/O - konfiguracja sygnału wznowienia spawania po przerwaniu
1/**
2* @brief Rozszerzone I/O - konfiguracja sygnału wznowienia spawania po przerwaniu
3* @param [in] reWeldDINum Rozszerzony numer DI sygnału wznowienia spawania po przerwaniu
4* @param [in] abortWeldDINum Rozszerzony numer DI sygnału wyjścia ze spawania po przerwaniu
5* @return Kod błędu
6*/
7int SetExtDIWeldBreakOffRecover(int reWeldDINum, int abortWeldDINum);
14.44. Przykład kodu ustawiania rozszerzonych sygnałów I/O spawania
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. Sterowanie śledzeniem łuku
1/**
2* @brief Sterowanie śledzeniem łuku
3* @param [in] flag Przełącznik, 0-wył.; 1-wł.
4* @param [in] dalayTime Czas opóźnienia, jednostka ms
5* @param [in] isLeftRight Kompensacja odchylenia lewo-prawo
6* @param [in] klr Współczynnik regulacji lewo-prawo (czułość)
7* @param [in] tStartLr Czas rozpoczęcia kompensacji lewo-prawo cyc
8* @param [in] stepMaxLr Maksymalna wielkość kompensacji na raz lewo-prawo mm
9* @param [in] sumMaxLr Maksymalna całkowita wielkość kompensacji lewo-prawo mm
10* @param [in] isUpLow Kompensacja odchylenia góra-dół
11* @param [in] kud Współczynnik regulacji góra-dół (czułość)
12* @param [in] tStartUd Czas rozpoczęcia kompensacji góra-dół cyc
13* @param [in] stepMaxUd Maksymalna wielkość kompensacji na raz góra-dół mm
14* @param [in] sumMaxUd Maksymalna całkowita wielkość kompensacji góra-dół
15* @param [in] axisSelect Wybór układu współrzędnych góra-dół, 0-oscylacja; 1-narzędzie; 2-podstawa
16* @param [in] referenceType Sposób ustawiania prądu odniesienia góra-dół, 0-sprzężenie zwrotne; 1-stała
17* @param [in] referSampleStartUd Rozpoczęcie próbkowania prądu odniesienia góra-dół (sprzężenie zwrotne), cyc
18* @param [in] referSampleCountUd Liczba cykli próbkowania prądu odniesienia góra-dół (sprzężenie zwrotne), cyc
19* @param [in] referenceCurrent Prąd odniesienia góra-dół mA
20* @param [in] offsetType Typ śledzenia z przesunięciem, 0-bez przesunięcia; 1-próbkowanie; 2-procent /version 3.7.9
21* @param [in] offsetParameter Parametr przesunięcia; próbkowanie (czas rozpoczęcia próbkowania przesunięcia, domyślnie jeden cykl); procent (procent przesunięcia (-100 ~ 100)) /version 3.7.9
22* @return Kod błędu
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. Wybór pasma AI śledzenia łuku
1/**
2* @brief Wybór pasma AI śledzenia łuku
3* @param [in] channel Wybór pasma AI śledzenia łuku, [0-3]
4* @return Kod błędu
5*/
6int ArcWeldTraceExtAIChannelConfig(int channel);
14.47. Rozpoczęcie kompensacji śledzenia łuku + wielowarstwowe i wielościeżkowe
1/**
2* @brief Rozpoczęcie kompensacji śledzenia łuku + wielowarstwowe i wielościeżkowe
3* @return Kod błędu
4*/
5int ArcWeldTraceReplayStart();
14.48. Zakończenie kompensacji śledzenia łuku + wielowarstwowe i wielościeżkowe
1 /**
2 * @brief Zakończenie kompensacji śledzenia łuku + wielowarstwowe i wielościeżkowe
3 * @return Kod błędu
4 */
5int ArcWeldTraceReplayEnd();
14.49. Zmiana współrzędnych przesunięcia - spawanie wielowarstwowe i wielościeżkowe
1 /**
2 * @brief Zmiana współrzędnych przesunięcia - spawanie wielowarstwowe i wielościeżkowe
3 * @param [in] pointO Pozycja i orientacja kartezjańska punktu odniesienia
4 * @param [in] pointX Pozycja i orientacja kartezjańska punktu w kierunku przesunięcia X punktu odniesienia
5 * @param [in] pointZ Pozycja i orientacja kartezjańska punktu w kierunku przesunięcia Z punktu odniesienia
6 * @param [in] dx Wielkość przesunięcia w kierunku X (mm)
7 * @param [in] dy Wielkość przesunięcia w kierunku Z (mm)
8 * @param [in] db Wielkość przesunięcia wokół osi Y (°)
9 * @param [out] offset Wynikowe przesunięcie
10 * @return Kod błędu
11 */
12int MultilayerOffsetTrsfToBase(DescTran pointO, DescTran pointX, DescTran pointZ, double dx, double dy, double db, ref DescPose offset);
14.50. Przykład kodu śledzenia łuku dla spawania wielowarstwowego i wielościeżkowego
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. Wybór kanału AI sprzężenia zwrotnego prądu spawarki śledzenia łuku
Nowe w wersji C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Wybór kanału AI sprzężenia zwrotnego prądu spawarki śledzenia łuku
3* @param [in] channel Kanał; 0-rozszerzone AI0; 1-rozszerzone AI1; 2-rozszerzone AI2; 3-rozszerzone AI3; 4-AI0 skrzynki sterowniczej; 5-AI1 skrzynki sterowniczej
4* @return Kod błędu
5*/
6int ArcWeldTraceAIChannelCurrent(int channel);
14.52. Wybór kanału AI sprzężenia zwrotnego napięcia spawarki śledzenia łuku
Nowe w wersji C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Wybór kanału AI sprzężenia zwrotnego napięcia spawarki śledzenia łuku
3* @param [in] channel Kanał; 0-rozszerzone AI0; 1-rozszerzone AI1; 2-rozszerzone AI2; 3-rozszerzone AI3; 4-AI0 skrzynki sterowniczej; 5-AI1 skrzynki sterowniczej
4* @return Kod błędu
5*/
6int ArcWeldTraceAIChannelVoltage(int channel);
14.53. Parametry konwersji sprzężenia zwrotnego prądu spawarki śledzenia łuku
Nowe w wersji C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Parametry konwersji sprzężenia zwrotnego prądu spawarki śledzenia łuku
3* @param [in] AILow Dolna granica kanału AI, wartość domyślna 0V, zakres [0-10V]
4* @param [in] AIHigh Górna granica kanału AI, wartość domyślna 10V, zakres [0-10V]
5* @param [in] currentLow Wartość prądu spawarki odpowiadająca dolnej granicy kanału AI, wartość domyślna 0V, zakres [0-200V]
6* @param [in] currentHigh Wartość prądu spawarki odpowiadająca górnej granicy kanału AI, wartość domyślna 100V, zakres [0-200V]
7* @return Kod błędu
8*/
9int ArcWeldTraceCurrentPara(float AILow, float AIHigh, float currentLow, float currentHigh);
14.54. Parametry konwersji sprzężenia zwrotnego napięcia spawarki śledzenia łuku
Nowe w wersji C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Parametry konwersji sprzężenia zwrotnego napięcia spawarki śledzenia łuku
3* @param [in] AILow Dolna granica kanału AI, wartość domyślna 0V, zakres [0-10V]
4* @param [in] AIHigh Górna granica kanału AI, wartość domyślna 10V, zakres [0-10V]
5* @param [in] voltageLow Wartość napięcia spawarki odpowiadająca dolnej granicy kanału AI, wartość domyślna 0V, zakres [0-200V]
6* @param [in] voltageHigh Wartość napięcia spawarki odpowiadająca górnej granicy kanału AI, wartość domyślna 100V, zakres [0-200V]
7* @return Kod błędu
8*/
9int ArcWeldTraceVoltagePara(float AILow, float AIHigh, float voltageLow, float voltageHigh);
14.55. Przykład kodu śledzenia łuku
Nowe w wersji 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
9
10 DescPose enddescPose = new DescPose(-499.844, 141.225, 7.72, -34.856, -40.17, 13.13);
11 JointPos endjointPos = new JointPos(-31.305, -82.998, 99.401, -104.426, -89.35, 3.696);
12
13 ExaxisPos exaxisPos = new ExaxisPos(0, 0, 0, 0);
14 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
15 robot.MoveJ(safetyjointPos, safetydescPose, 1, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
16
17 robot.WeldingSetCurrentRelation(0, 495, 1, 10, 0);
18 robot.WeldingSetVoltageRelation(10, 45, 1, 10, 1);
19 robot.WeldingSetVoltage(0, 25, 1, 0);// ----ustawienie napięcia
20 robot.WeldingSetCurrent(0, 260, 0, 0);// ----ustawienie prądu
21
22 int rtn = robot.ArcWeldTraceAIChannelCurrent(4);
23 Console.WriteLine("ArcWeldTraceAIChannelCurrent rtn is " + rtn);
24 rtn = robot.ArcWeldTraceAIChannelVoltage(5);
25 Console.WriteLine("ArcWeldTraceAIChannelVoltage rtn is " + rtn);
26 rtn = robot.ArcWeldTraceCurrentPara((float)0, (float)5, (float)0, (float)500);
27 Console.WriteLine("ArcWeldTraceCurrentPara rtn is " + rtn);
28 rtn = robot.ArcWeldTraceVoltagePara((float)1.018, (float)10, (float)0, (float)50);
29 Console.WriteLine("ArcWeldTraceVoltagePara rtn is " + rtn);
30
31 robot.MoveJ(startjointPos, startdescPose, 1, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
32 robot.ArcWeldTraceControl(1, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
33 robot.ARCStart(0, 0, 10000);
34 robot.WeaveStart(0);
35 // robot.MoveL(endjointPos, enddescPose, 1, 0, 100, 100, 2, -1, exaxisPos, 0, 0, offdese);
36 robot.ARCEnd(0, 0, 10000);
37 robot.WeaveEnd(0);
38 robot.ArcWeldTraceControl(0, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
39 robot.MoveJ(safetyjointPos, safetydescPose, 1, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
40}
14.56. Ustawienie rozszerzonych portów I/O pozycjonowania drutu spawalniczego
1/**
2* @brief Ustawia rozszerzone porty I/O pozycjonowania drutu spawalniczego
3* @param searchDoneDINum Port DO pomyślnego pozycjonowania drutu spawalniczego (0-127)
4* @param searchStartDONum Port DO sterowania uruchamianiem/zatrzymywaniem pozycjonowania drutu spawalniczego (0-127)
5* @return Kod błędu
6*/
7int SetWireSearchExtDIONum(int searchDoneDINum, int searchStartDONum);
14.57. Rozpoczęcie pozycjonowania drutu spawalniczego
1/**
2* @brief Rozpoczęcie pozycjonowania drutu spawalniczego
3* @param [in] refPos 1-punkt odniesienia 0-punkt kontaktu
4* @param [in] searchVel Prędkość pozycjonowania %
5* @param [in] searchDis Odległość pozycjonowania mm
6* @param [in] autoBackFlag Znacznik automatycznego powrotu, 0-nie automatyczny; 1-automatyczny
7* @param [in] autoBackVel Prędkość automatycznego powrotu %
8* @param [in] autoBackDis Odległość automatycznego powrotu mm
9* @param [in] offectFlag 1-pozycjonowanie z przesunięciem; 0-pozycjonowanie punktem nauczania
10* @return Kod błędu
11*/
12int WireSearchStart(int refPos, double searchVel, int searchDis, int autoBackFlag, double autoBackVel, int autoBackDis, int offectFlag);
14.58. Zakończenie pozycjonowania drutu spawalniczego
1/**
2* @brief Zakończenie pozycjonowania drutu spawalniczego
3* @param [in] refPos 1-punkt odniesienia 2-punkt kontaktu
4* @param [in] searchVel Prędkość pozycjonowania %
5* @param [in] searchDis Odległość pozycjonowania mm
6* @param [in] autoBackFlag Znacznik automatycznego powrotu, 0-nie automatyczny; 1-automatyczny
7* @param [in] autoBackVel Prędkość automatycznego powrotu %
8* @param [in] autoBackDis Odległość automatycznego powrotu mm
9* @param [in] offectFlag 1-pozycjonowanie z przesunięciem; 2-pozycjonowanie punktem nauczania
10* @return Kod błędu
11*/
12int WireSearchEnd(int refPos, double searchVel, int searchDis, int autoBackFlag, double autoBackVel, int autoBackDis, int offectFlag);
14.59. Obliczenie przesunięcia pozycjonowania drutu spawalniczego
1/**
2* @brief Obliczenie przesunięcia pozycjonowania drutu spawalniczego
3* @param [in] seamType Typ spoiny
4* @param [in] method Metoda obliczeniowa
5* @param [in] varNameRef Punkty odniesienia 1-6, "#" oznacza brak zmiennej punktowej
6* @param [in] varNameRes Punkty kontaktu 1-6, "#" oznacza brak zmiennej punktowej
7* @param [out] offectFlag 0-przesunięcie jest bezpośrednio dodawane do punktu instrukcji; 1-przesunięcie wymaga transformacji współrzędnych punktu instrukcji
8* @param [out] offect Przesunięcie pozycji i orientacji [x, y, z, a, b, c]
9* @return Kod błędu
10*/
11int GetWireSearchOffset(int seamType, int method, string[] varNameRef, string[] varNameRes, ref int offsetFlag, ref DescPose offset);
14.60. Oczekiwanie na zakończenie pozycjonowania drutu spawalniczego
1/**
2* @brief Oczekiwanie na zakończenie pozycjonowania drutu spawalniczego
3* @return Kod błędu
4*/
5int WireSearchWait(string name);
14.61. Zapis punktu kontaktu pozycjonowania drutu spawalniczego do bazy danych
1/**
2* @brief Zapis punktu kontaktu pozycjonowania drutu spawalniczego do bazy danych
3* @param [in] varName Nazwa punktu kontaktu "RES0" ~ "RES99"
4* @param [in] pos Dane punktu kontaktu [x, y, x, a, b, c]
5* @return Kod błędu
6*/
7int SetPointToDatabase(string varName, DescPose pos);
14.62. Przykład kodu pozycjonowania drutu spawalniczego robota
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); //punkt początkowy
35 robot.MoveL(jointREF0B, descREF0B, 1, 1, 100, 100, 100, -1, exaxisPos, 1, 0, offdese); //punkt kierunkowy
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); //punkt początkowy
41 robot.MoveL(jointREF1B, descREF1B, 1, 1, 100, 100, 100, -1, exaxisPos, 1, 0, offdese); //punkt kierunkowy
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); //punkt początkowy
47 robot.MoveL(jointREF0B, descREF0B, 1, 1, 100, 100, 100, -1, exaxisPos, 1, 0, offdese); //punkt kierunkowy
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); //punkt początkowy
53 robot.MoveL(jointREF1B, descREF1B, 1, 1, 100, 100, 100, -1, exaxisPos, 1, 0, offdese); //punkt kierunkowy
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. Ustawienie rozpoczęcia stopniowej zmiany napięcia spawania
Nowe w wersji C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Ustawienie rozpoczęcia stopniowej zmiany napięcia spawania
3* @param [in] IOType Typ sterowania; 0-I/O skrzynki sterowniczej; 1-protokół komunikacji cyfrowej (UDP); 2-protokół komunikacji cyfrowej (ModbusTCP)
4* @param [in] voltageStart Początkowe napięcie spawania (V)
5* @param [in] voltageEnd Końcowe napięcie spawania (V)
6* @param [in] AOIndex Numer portu AO skrzynki sterowniczej (0-1)
7* @param [in] blend Czy wygładzać 0-niewygładzone; 1-wygładzone
8* @return Kod błędu
9*/
10int WeldingSetVoltageGradualChangeStart(int IOType, double voltageStart, double voltageEnd, int AOIndex, int blend);
14.64. Ustawienie zakończenia stopniowej zmiany napięcia spawania
Nowe w wersji C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Ustawienie zakończenia stopniowej zmiany napięcia spawania
3* @return Kod błędu
4*/
5int WeldingSetVoltageGradualChangeEnd();
14.65. Ustawienie rozpoczęcia stopniowej zmiany prądu spawania
Nowe w wersji C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Ustawienie rozpoczęcia stopniowej zmiany prądu spawania
3* @param [in] IOType Typ sterowania; 0-I/O skrzynki sterowniczej; 1-protokół komunikacji cyfrowej (UDP); 2-protokół komunikacji cyfrowej (ModbusTCP)
4* @param [in] voltageStart Początkowy prąd spawania (A)
5* @param [in] voltageEnd Końcowy prąd spawania (A)
6* @param [in] AOIndex Numer portu AO skrzynki sterowniczej (0-1)
7* @param [in] blend Czy wygładzać 0-niewygładzone; 1-wygładzone
8* @return Kod błędu
9*/
10int WeldingSetCurrentGradualChangeStart(int IOType, double currentStart, double currentEnd, int AOIndex, int blend);
14.66. Ustawienie zakończenia stopniowej zmiany prądu spawania
Nowe w wersji C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Ustawienie zakończenia stopniowej zmiany prądu spawania
3* @return Kod błędu
4*/
5int WeldingSetCurrentGradualChangeEnd();
14.67. Przykład kodu stopniowej zmiany prądu i napięcia spawania robota
Nowe w wersji 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. Ustawienie niestandardowych parametrów oscylacji
Nowe w wersji C#SDK-V1.1.8: Web-3.8.6
1/**
2 * @brief Ustawienie niestandardowych parametrów oscylacji
3 * @param [in] id Niestandardowy numer oscylacji: 0-2
4 * @param [in] pointNum Liczba punktów oscylacji 0-10
5 * @param [in] point Dane punktów ruchu x,y,z
6 * @param [in] stayTime Czas zatrzymania oscylacji ms
7 * @param [in] frequency Częstotliwość oscylacji Hz
8 * @param [in] incStayType Tryb oczekiwania: 0-cykl nie zawiera czasu oczekiwania; 1-cykl zawiera czas oczekiwania
9 * @param [in] stationary Oczekiwanie w pozycji oscylacji: 0-kontynuuj ruch w czasie oczekiwania; 1-pozycja nieruchoma w czasie oczekiwania
10 * @return Kod błędu
11 */
12public int CustomWeaveSetPara(int id, int pointNum, DescTran[] points, double[] stayTimes, double frequency, int incStayType, int stationary)
14.69. Pobranie niestandardowych parametrów oscylacji
Nowe w wersji C#SDK-V1.1.8: Web-3.8.6
1/**
2 * @brief Pobranie niestandardowych parametrów oscylacji
3 * @param [in] id Niestandardowy numer oscylacji: 0-2
4 * @param [out] pointNum Liczba punktów oscylacji 0-10
5 * @param [out] point Dane punktów ruchu x,y,z
6 * @param [out] stayTime Czas zatrzymania oscylacji ms
7 * @param [out] frequency Częstotliwość oscylacji Hz
8 * @param [out] incStayType Tryb oczekiwania: 0-cykl nie zawiera czasu oczekiwania; 1-cykl zawiera czas oczekiwania
9 * @param [out] stationary Oczekiwanie w pozycji oscylacji: 0-kontynuuj ruch w czasie oczekiwania; 1-pozycja nieruchoma w czasie oczekiwania
10 * @return Kod błędu
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. Przykład kodu niestandardowych parametrów oscylacji
Nowe w wersji 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. Konfiguracja parametrów spawarki laserowej
1/**
2* @brief Zapisanie parametrów konfiguracyjnych jednego z 10 grup procesowych spawarki laserowej i skonfigurowanie ich dla spawarki
3* @param[in] io_type Typ komunikacji 0-IO 1-UDP
4* @param[in] num Numer grupy do ustawienia (1~10)
5* @param[in] scanSpeed Prędkość skanowania
6* @param[in] scanWidth Szerokość skanowania
7* @param[in] peakPower Moc szczytowa
8* @param[in] dutyCycle Współczynnik wypełnienia
9* @param[in] freq Częstotliwość
10* @return Kod błędu
11*/
12public int SetLaserWeldingParam(int io_type, int num, int scanSpeed, int scanWidth, int peakPower, int dutyCycle, int freq)
14.72. Ustawienie rozpoczęcia/zakończenia spawania laserowego
1/**
2* @brief Ustawienie włączenia/wyłączenia spawarki laserowej
3* @param[in] io_type Typ komunikacji 0-IO 1-UDP
4* @param[in] status Słowo sterujące 0-wyłącz emisję 1-włącz emisję
5* @param[in] max_waittime Maksymalny czas oczekiwania
6* @return Kod błędu
7*/
8public int SetLaserWeldingStartEnd(int io_type, int status, int max_waittime)
14.73. Włączenie/wyłączenie spawarki laserowej
1/**
2* @brief Włączenie/wyłączenie spawarki laserowej
3* @param[in] io_type Typ komunikacji 0-IO 1-UDP
4* @param[in] status 0-wyłącz 1-włącz
5* @return Kod błędu
6*/
7public int SetLaserWeldingEnable(int io_type, int status)
14.74. Resetowanie awarii spawarki laserowej
1/**
2* @brief Resetowanie awarii spawarki laserowej
3* @param[in] io_type Typ komunikacji 0-IO 1-UDP
4* @param[in] status Słowo sterujące 0-nieważne 1-reset awarii
5* @return Kod błędu
6*/
7public int ResetLaserWeldingErr(int io_type, int status)
14.75. Pobranie stanu pracy spawarki laserowej
1/**
2* @brief Pobranie stanu pracy spawarki laserowej
3* @param[in] io_type Typ komunikacji 0-IO 1-UDP
4* @param[out] status Słowo sterujące 0-zatrzymana 1-pracuje
5* @return Kod błędu
6*/
7public int GetLaserWeldingRunningState(int io_type, ref int status)
14.76. Pobranie stanu awarii spawarki laserowej
1/**
2* @brief Pobranie stanu awarii spawarki laserowej
3* @param[in] io_type Typ komunikacji 0-IO 1-UDP
4* @param[out] status 0-brak awarii 1-występuje awaria
5* @return Kod błędu
6*/
7public int GetLaserWeldingErrState(int io_type, ref int status)
14.77. Pobranie parametrów konfiguracyjnych spawarki laserowej
1/**
2* @brief Pobranie parametrów konfiguracyjnych jednej z 10 grup procesowych spawarki laserowej
3* @param[in] num Numer grupy do ustawienia (1~10)
4* @param[out] scanSpeed Prędkość skanowania
5* @param[out] scanWidth Szerokość skanowania
6* @param[out] peakPower Moc szczytowa
7* @param[out] dutyCycle Współczynnik wypełnienia
8* @param[out] freq Częstotliwość
9* @return Kod błędu
10*/
11public int GetLaserWeldingParamTarget(int num, ref int scanSpeed, ref int scanWidth, ref int peakPower, ref int dutyCycle, ref int freq)
14.78. Pobranie aktualnie obowiązujących parametrów konfiguracyjnych spawarki laserowej
1/**
2* @brief Pobranie aktualnie obowiązujących parametrów konfiguracyjnych spawarki laserowej
3* @param[in] io_type Typ komunikacji 0-IO 1-UDP
4* @param[out] scanSpeed Prędkość skanowania
5* @param[out] scanWidth Szerokość skanowania
6* @param[out] peakPower Moc szczytowa
7* @param[out] dutyCycle Współczynnik wypełnienia
8* @param[out] freq Częstotliwość
9* @return Kod błędu
10*/
11public int GetLaserWeldingParamActual(int io_type, ref int scanSpeed, ref int scanWidth, ref int peakPower, ref int dutyCycle, ref int freq)
14.79. Konfiguracja rozszerzonego portu DO włączania spawarki laserowej
1/**
2* @brief Ustawienie rozszerzonego I/O dla spawarki laserowej - portu DO włączania
3* @param[in] ctrlModeDONum Numer rozszerzonego portu DO włączania spawarki laserowej
4* @return Kod błędu
5*/
6public int SetLaserWeldingEnableExtDoNum(int ctrlModeDONum)
14.80. Konfiguracja rozszerzonego portu DO uruchamiania spawarki laserowej
1/**
2* @brief Ustawienie rozszerzonego I/O dla spawarki laserowej - portu DO uruchamiania
3* @param[in] ctrlModeDONum Numer rozszerzonego portu DO uruchamiania spawarki laserowej (włączanie/wyłączanie emisji)
4* @return Kod błędu
5*/
6public int SetLaserWeldingStartExtDoNum(int ctrlModeDONum)
14.81. Konfiguracja rozszerzonego portu DO resetowania awarii spawarki laserowej
1/**
2* @brief Ustawienie rozszerzonego I/O dla spawarki laserowej - portu DO resetowania awarii
3* @param[in] ctrlModeDONum Numer rozszerzonego portu DO resetowania awarii spawarki laserowej
4* @return Kod błędu
5*/
6public int SetLaserWeldingErrResetExtDoNum(int ctrlModeDONum)
14.82. Konfiguracja rozszerzonego DI stanu pracy spawarki laserowej (stan emisji)
1/**
2* @brief Konfiguracja rozszerzonego DI stanu pracy spawarki laserowej (stan emisji)
3* @param[in] diNum Numer rozszerzonego portu DI stanu pracy spawarki laserowej (stan emisji)
4* @return Kod błędu
5*/
6public int SetLaserWeldingRunningStateExtDiNum(int diNum)
14.83. Konfiguracja rozszerzonego portu DI stanu awarii spawarki laserowej
1/**
2* @brief Konfiguracja rozszerzonego DI stanu awarii spawarki laserowej
3* @param[in] diNum Numer rozszerzonego portu DI stanu awarii spawarki laserowej
4* @return Kod błędu
5*/
6public int SetLaserWeldingErrStateExtDiNum(int diNum)
14.84. Przykład kodu spawania laserowego
1private void btnLaserWeld_Click(object sender, EventArgs e)
2{
3
4 int rtn = -1;
5 // Załadowanie sterownika 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 // Ustawienie parametrów spawania laserowego: 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 // Ustawienie numeru portu DO uruchamiania
25 rtn = robot.SetLaserWeldingStartExtDoNum(1);
26 if (rtn != 0)
27 {
28 Console.WriteLine("SetLaserWeldingStartExtDoNum failed, error code: " + rtn);
29 }
30
31 // Ustawienie trybu 0 (tryb nauczania)
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 // Przejście do pierwszego punktu spawania
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 // Włączenie lasera (emisja)
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 // Przejście do drugiego punktu spawania (podczas spawania)
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 // Wyłączenie lasera (zakończenie emisji)
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 // Przejście do punktu bezpiecznego
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 // Ustawienie trybu 1 (tryb zdalny)
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 // Zamknięcie połączenia
92 robot.CloseRPC();
93 Thread.Sleep(1000);
94
95 Console.WriteLine("Test completed");
96
97 return ;
98}