14. Spawanie robotem
14.1. Ustawianie parametrów krzywej procesu spawania
1/**
2* @brief Ustawianie parametrów krzywej procesu spawania
3* @param [in] id Numer procesu spawania (1-99)
4* @param [in] param Parametry procesu spawania
5* @return Kod błędu
6*/
7int WeldingSetProcessParam(int id, WeldingProcessParam param);
14.2. Pobieranie parametrów krzywej procesu spawania
1/**
2* @brief Pobieranie parametrów krzywej procesu spawania
3* @param [in] id Numer procesu spawania (1-99)
4* @param [out] param Parametry procesu spawania
5* @return Kod błędu
6*/
7int WeldingGetProcessParam(int id, WeldingProcessParam param);
14.3. Ustawianie zależności między prądem spawania a wyjściowym sygnałem analogowym
1/**
2* @brief Ustawianie zależności między prądem spawania a wyjściowym sygnałem analogowym
3* @param [in] relation Wartość zależności
4* @return Kod błędu
5*/
6int WeldingSetCurrentRelation(WeldCurrentAORelation relation);
14.4. Ustawianie zależności między napięciem spawania a wyjściowym sygnałem analogowym
1/**
2* @brief Ustawianie zależności między napięciem spawania a wyjściowym sygnałem analogowym
3* @param [in] relation Wartość zależności napięcie spawania - wyjście analogowe
4* @return Kod błędu
5*/
6int WeldingSetVoltageRelation(WeldVoltageAORelation relation);
14.5. Pobieranie zależności między prądem spawania a wyjściowym sygnałem analogowym
1/**
2* @brief Pobieranie zależności między prądem spawania a wyjściowym sygnałem analogowym
3* @param [out] relation Wartość zależności
4* @return Kod błędu
5*/
6int WeldingGetCurrentRelation(WeldCurrentAORelation relation);
14.6. Pobieranie zależności między napięciem spawania a wyjściowym sygnałem analogowym
1/**
2* @brief Pobieranie zależności między napięciem spawania a wyjściowym sygnałem analogowym
3* @param [out] relation Wartość zależności napięcie spawania - wyjście analogowe
4* @return Kod błędu
5*/
6int WeldingGetVoltageRelation(WeldVoltageAORelation relation);
14.7. Ustawianie prądu spawania
1/**
2* @brief Ustawianie prądu spawania
3* @param [in] ioType Typ IO sterowania 0-IO skrzynki kontrolnej; 1-rozszerzone IO
4* @param [in] current Wartość prądu spawania (A)
5* @param [in] AOIndex Port wyjścia analogowego prądu spawania skrzynki kontrolnej (0-1)
6* @param [in] blend Czy wygładzać 0-nie; 1-tak
7* @return Kod błędu
8*/
9int WeldingSetCurrent(int ioType, double current, int AOIndex, int blend);
14.8. Ustawianie napięcia spawania
1/**
2* @brief Ustawianie napięcia spawania
3* @param [in] ioType Typ IO sterowania 0-IO skrzynki kontrolnej; 1-rozszerzone IO
4* @param [in] voltage Wartość napięcia spawania (V)
5* @param [in] AOIndex Port wyjścia analogowego napięcia spawania skrzynki kontrolnej (0-1)
6* @param [in] blend Czy wygładzać 0-nie; 1-tak
7* @return Kod błędu
8*/
9int WeldingSetVoltage(int ioType, double voltage, int AOIndex, int blend);
14.9. Ustawianie parametrów ruchu wahadłowego
Zmienione w wersji Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Ustawianie parametrów ruchu wahadłowego
3* @param [in] weaveNum Numer konfiguracji parametrów spawania wahadłowego
4* @param [in] weaveType Typ wahadła 0-płaskie wahadło trójkątne; 1-pionowe wahadło trójkątne typu L; 2-kołowe wahadło zgodne z ruchem wskazówek zegara; 3-kołowe wahadło przeciwnie do ruchu wskazówek zegara; 4-płaskie wahadło sinusoidalne; 5-pionowe wahadło sinusoidalne typu L; 6-pionowe wahadło trójkątne; 7-pionowe wahadło sinusoidalne
5* @param [in] weaveFrequency Częstotliwość wahadła (Hz)
6* @param [in] weaveIncStayTime Tryb oczekiwania 0-cykl nie zawiera czasu oczekiwania; 1-cykl zawiera czas oczekiwania
7* @param [in] weaveRange Amplituda wahadła (mm)
8* @param [in] weaveLeftRange Długość lewej cięciwy w pionowym wahadle trójkątnym (mm)
9* @param [in] weaveRightRange Długość prawej cięciwy w pionowym wahadle trójkątnym (mm)
10* @param [in] additionalStayTime Czas postoju w punkcie wierzchołkowym pionowego wahadła trójkątnego (ms)
11* @param [in] weaveLeftStayTime Czas postoju po lewej stronie wahadła (ms)
12* @param [in] weaveRightStayTime Czas postoju po prawej stronie wahadła (ms)
13* @param [in] weaveCircleRadio Wahadło kołowe - współczynnik powrotu (0-100%)
14* @param [in] weaveStationary Oczekiwanie w pozycji wahadła, 0-ruch kontynuowany w czasie oczekiwania; 1-pozycja nieruchoma w czasie oczekiwania
15* @param [in] weaveYawAngle Azymut kierunku wahadła (obrót wokół osi Z wahadła), jednostka °
16* @param [in] weaveRotAngle Azymut kierunku wahadła (obrót wokół osi X wahadła), jednostka °
17* @return Kod błędu
18*/
19int WeaveSetPara(int weaveNum, int weaveType, double weaveFrequency, int weaveIncStayTime, double weaveRange, double weaveLeftRange, double weaveRightRange, int additionalStayTime, int weaveLeftStayTime, int weaveRightStayTime, int weaveCircleRadio, int weaveStationary, double weaveYawAngle,double weaveRotAngle)
14.10. Przykład kodu ustawiania parametrów spawania
1public static int TestSetWeldParam(Robot robot)
2{
3 WeldingProcessParam para1=new WeldingProcessParam(177, 27, 1000, 178, 28, 176, 26, 1000);
4 WeldingProcessParam para2=new WeldingProcessParam(188, 28, 555, 199, 29, 133, 23, 333);
5
6 robot.WeldingSetProcessParam(1, para1);
7 robot.WeldingSetProcessParam(2, para2);
8
9 double startCurrent = 0;
10 double startVoltage = 0;
11 int startTime = 0;
12 double weldCurrent = 0;
13 double weldVoltage = 0;
14 double endCurrent = 0;
15 double endVoltage = 0;
16 int endTime = 0;
17
18 WeldingProcessParam param=new WeldingProcessParam( startCurrent, startVoltage, startTime, weldCurrent, weldVoltage, endCurrent, endVoltage, endTime);
19 robot.WeldingGetProcessParam(1,param);
20 robot.WeldingGetProcessParam(2,param);
21
22 WeldCurrentAORelation rela1=new WeldCurrentAORelation(0,400,0,10,0);
23 int rtn = robot.WeldingSetCurrentRelation(rela1);
24
25 WeldVoltageAORelation rela2=new WeldVoltageAORelation(0, 40, 0, 10, 1);
26 rtn = robot.WeldingSetVoltageRelation(rela2);
27
28 double current_min = 0;
29 double current_max = 0;
30 double vol_min = 0;
31 double vol_max = 0;
32 double output_vmin = 0;
33 double output_vmax = 0;
34 int curIndex = 0;
35 int volIndex = 0;
36 WeldCurrentAORelation rela3=new WeldCurrentAORelation(current_min, current_max, output_vmin, output_vmax, curIndex);
37 rtn = robot.WeldingGetCurrentRelation(rela3);
38
39 WeldVoltageAORelation rela4=new WeldVoltageAORelation(0,0,0,0,0);
40 rtn = robot.WeldingGetVoltageRelation(rela4);
41
42 rtn = robot.WeldingSetCurrent(0, 100, 0, 0);
43
44 robot.Sleep(3000);
45
46 rtn = robot.WeldingSetVoltage(0, 10, 0, 0);
47
48 rtn = robot.WeaveSetPara(0, 0, 2.000000, 0, 10.000000, 0.000000, 0.000000, 0, 0, 0, 0, 0, 60.000000,0);
49
50 robot.WeaveOnlineSetPara(0, 0, 1, 0, 20, 0, 0, 0, 0);
51
52 rtn = robot.WeldingSetCheckArcInterruptionParam(1, 200);
53 rtn = robot.WeldingSetReWeldAfterBreakOffParam(1, 5.7, 98.2, 0);
54 int enable = 0;
55 double length = 0;
56 double velocity = 0;
57 int moveType = 0;
58 int checkEnable = 0;
59 int arcInterruptTimeLength = 0;
60 List<Integer> inter=new ArrayList<>();
61 List<Number> num=new ArrayList<>();
62
63 inter = robot.WeldingGetCheckArcInterruptionParam();
64 num = robot.WeldingGetReWeldAfterBreakOffParam();
65
66 robot.SetWeldMachineCtrlModeExtDoNum(17);
67 for (int i = 0; i < 5; i++)
68 {
69 robot.SetWeldMachineCtrlMode(0);
70 robot.Sleep(1000);
71 robot.SetWeldMachineCtrlMode(1);
72 robot.Sleep(1000);
73 }
74 return 0;
75}
14.11. Natychmiastowe ustawianie parametrów ruchu wahadłowego
1/**
2* @brief Natychmiastowe ustawianie parametrów ruchu wahadłowego
3* @param [in] weaveNum Numer konfiguracji parametrów spawania wahadłowego
4* @param [in]weaveType Typ wahadła 0-płaskie wahadło trójkątne; 1-pionowe wahadło trójkątne typu L; 2-kołowe wahadło zgodne z ruchem wskazówek zegara; 3-kołowe wahadło przeciwnie do ruchu wskazówek zegara; 4-płaskie wahadło sinusoidalne; 5-pionowe wahadło sinusoidalne typu L; 6-pionowe wahadło trójkątne; 7-pionowe wahadło sinusoidalne
5* @param [in]weaveFrequency Częstotliwość wahadła (Hz)
6* @param [in]weaveIncStayTime Tryb oczekiwania 0-cykl nie zawiera czasu oczekiwania; 1-cykl zawiera czas oczekiwania
7* @param [in]weaveRange Amplituda wahadła (mm)
8* @param [in]weaveLeftStayTime Czas postoju po lewej stronie wahadła (ms)
9* @param [in]weaveRightStayTime Czas postoju po prawej stronie wahadła (ms)
10* @param [in]weaveCircleRadio Wahadło kołowe - współczynnik powrotu (0-100%)
11* @param [in]weaveStationary Oczekiwanie w pozycji wahadła, 0-ruch kontynuowany w czasie oczekiwania; 1-pozycja 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. Ustawianie parametrów wykrywania nieoczekiwanego przerwania łuku spawalniczego robota
1/**
2* @brief Ustawianie parametrów wykrywania nieoczekiwanego przerwania łuku spawalniczego robota
3* @param [in] checkEnable Czy włączyć wykrywanie; 0-nie; 1-tak
4* @param [in] arcInterruptTimeLength Czas potwierdzenia przerwania łuku (ms)
5* @return Kod błędu
6*/
7int WeldingSetCheckArcInterruptionParam(int checkEnable, int arcInterruptTimeLength);
14.13. Pobieranie parametrów wykrywania nieoczekiwanego przerwania łuku spawalniczego robota
1/**
2* @brief Pobieranie parametrów wykrywania nieoczekiwanego przerwania łuku spawalniczego robota
3* @return List[0]:Kod błędu; List[1]:double Czy włączyć wykrywanie; 0-nie; 1-tak; List[2]:Czas potwierdzenia przerwania łuku (ms)
4*/
5List<Integer> WeldingGetCheckArcInterruptionParam();
14.14. Ustawianie parametrów wznawiania spawania po przerwaniu robota
1/**
2* @brief Ustawianie parametrów wznawiania spawania po przerwaniu robota
3* @param [in] enable Czy włączyć wznawianie spawania po przerwaniu
4* @param [in] length Długość zakładki spoiny (mm)
5* @param [in] velocity Procent prędkości powrotu robota do punktu ponownego zapłonu łuku (0-100)
6* @param [in] moveType Sposób ruchu robota do punktu ponownego zapłonu łuku; 0-LIN; 1-PTP
7* @return Kod błędu
8*/
9int WeldingSetReWeldAfterBreakOffParam(int enable, double length, double velocity, int moveType);
14.15. Pobieranie parametrów wznawiania spawania po przerwaniu robota
1/**
2* @brief Pobieranie parametrów wznawiania spawania po przerwaniu robota
3* @return List[0]:Kod błędu; List[1]:int Czy włączyć wznawianie spawania po przerwaniu; List[2]:double Długość zakładki spoiny (mm);
4* @return List[3]:double Procent prędkości powrotu robota do punktu ponownego zapłonu łuku (0-100);List[4]:int Sposób ruchu robota do punktu ponownego zapłonu łuku; 0-LIN; 1-PTP
5*/
6List<Number> WeldingGetReWeldAfterBreakOffParam();
14.16. Ustawianie rozszerzonego portu DO trybu sterowania spawarką
1/**
2* @brief Ustawianie rozszerzonego portu DO trybu sterowania spawarką
3* @param [in] DONum Port DO trybu sterowania spawarką (0-127)
4* @return Kod błędu
5*/
6int SetWeldMachineCtrlModeExtDoNum(int DONum);
14.17. Ustawianie trybu sterowania spawarką
1/**
2* @brief Ustawianie trybu sterowania spawarką
3* @param mode Tryb sterowania spawarką; 0-tryb jednowartościowy DC; 1-tryb jednowartościowy impulsowy; 2-tryb JOB; 3-tryb sterowania lokalnego; 4-tryb oddzielny; 5-tryb CC/CV; 6-TIG; 7-CMT
4* @param ioType Typ sterowania; 0-IO skrzynki kontrolnej; 1-protokół komunikacji cyfrowej (UDP); 2-protokół komunikacji cyfrowej (ModbusTCP)
5* @return Kod błędu* @return Kod błędu
6*/
7public int SetWeldMachineCtrlMode(int mode, int ioType)
14.18. Rozpoczęcie spawania
1/**
2* @brief Rozpoczęcie spawania
3* @param [in] ioType Typ IO 0-IO kontrolera; 1-rozszerzone IO
4* @param [in] arcNum Numer pliku konfiguracyjnego spawarki
5* @param [in] timeout Czas timeout zapłonu łuku
6* @return Kod błędu
7*/
8int ARCStart(int ioType, int arcNum, int timeout);
14.19. Zakończenie spawania
1/**
2* @brief Zakończenie spawania
3* @param [in] ioType Typ IO 0-IO kontrolera; 1-rozszerzone IO
4* @param [in] arcNum Numer pliku konfiguracyjnego spawarki
5* @param [in] timeout Czas timeout wygaszenia łuku
6* @return Kod błędu
7*/
8int ARCEnd(int ioType, int arcNum, int timeout);
14.20. Rozpoczęcie ruchu wahadłowego
1/**
2* @brief Rozpoczęcie ruchu wahadłowego
3* @param [in] weaveNum Numer konfiguracji parametrów spawania wahadłowego
4* @return Kod błędu
5*/
6int WeaveStart(int weaveNum);
14.21. Zakończenie ruchu wahadłowego
1/**
2* @brief Zakończenie ruchu wahadłowego
3* @param [in] weaveNum Numer konfiguracji parametrów spawania wahadłowego
4* @return Kod błędu
5*/
6int WeaveEnd(int weaveNum);
14.22. Podawanie drutu do przodu
1/**
2* @brief Podawanie drutu do przodu
3* @param [in] ioType Typ IO 0-IO kontrolera; 1-rozszerzone IO
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
1/**
2* @brief Podawanie drutu do tyłu
3* @param [in] ioType Typ IO 0-IO kontrolera; 1-rozszerzone IO
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 osłonowego
1/**
2* @brief Podawanie gazu osłonowego
3* @param [in] ioType Typ IO 0-IO kontrolera; 1-rozszerzone IO
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. Ustawianie wznowienia spawania po przerwaniu robota
1/**
2* @brief Ustawianie wznowienia spawania po przerwaniu robota
3* @return Kod błędu
4*/
5int WeldingStartReWeldAfterBreakOff();
14.26. Ustawianie wyjścia ze spawania po przerwaniu robota
1/**
2* @brief Ustawianie wyjścia ze spawania po przerwaniu robota
3* @return Kod błędu
4*/
5int WeldingAbortWeldAfterBreakOff();
14.27. Przykład kodu sterowania spawaniem robota
1public static int TestWelding(Robot robot)
2{
3 robot.WeldingSetCurrent(0, 230, 0, 0);
4 robot.WeldingSetVoltage(0, 24, 0, 1);
5
6 DescPose p1Desc=new DescPose(228.879, -503.594, 453.984, -175.580, 8.293, 171.267);
7 JointPos p1Joint=new JointPos(102.700, -85.333, 90.518, -102.365, -83.932, 22.134);
8
9 DescPose p2Desc=new DescPose(-333.302, -435.580, 449.866, -174.997, 2.017, 109.815);
10 JointPos p2Joint=new JointPos(41.862, -85.333, 90.526, -100.587, -90.014, 22.135);
11
12 ExaxisPos exaxisPos=new ExaxisPos(0, 0, 0, 0);
13 DescPose offdese=new DescPose(0, 0, 0, 0, 0, 0);
14
15 robot.MoveJ(p1Joint, p1Desc, 13, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
16 robot.ARCStart(1, 0, 10000);
17 robot.WeaveStart(0);
18 robot.MoveL(p2Joint, p2Desc, 13, 0, 20, 100, 100, -1, 0, exaxisPos, 0, 0, offdese,0,10);
19 robot.ARCEnd(1, 0, 10000);
20 robot.WeaveEnd(0);
21 return 0;
22}
14.28. Rozpoczęcie spawania segmentowego
1/**
2* @brief Rozpoczęcie spawania segmentowego
3* @param [in] startDesePos Pozycja kartezjańska punktu początkowego
4* @param [in] endDesePos Pozycja kartezjańska punktu końcowego
5* @param [in] startJPos Pozycja przegubów punktu początkowego
6* @param [in] endJPos Pozycja przegubów punktu końcowego
7* @param [in] weldLength Długość segmentu spawanego (mm)
8* @param [in] noWeldLength Długość segmentu niespawanego (mm)
9* @param [in] weldIOType Typ IO spawania (0-IO skrzynki kontrolnej; 1-rozszerzone IO)
10* @param [in] arcNum Numer pliku konfiguracyjnego spawarki
11* @param [in] weldTimeout Czas timeout zapłonu/wygaszenia łuku
12* @param [in] isWeave Czy ruch wahadłowy
13* @param [in] weaveNum Numer konfiguracji parametrów spawania wahadłowego
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 niedostępne
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ładzania (nieblokujący), jednostka mm
20* @param [in] epos Pozycja osi rozszerzenia, jednostka mm
21* @param [in] search 0-brak poszukiwania pozycji drutu, 1-poszukiwanie pozycji drutu
22* @param [in] offset_flag 0-brak przesunięcia, 1-przesunięcie w układzie bazowym/układzie przedmiotu, 2-przesunięcie w układzie narzędzia
23* @param [in] offset_pos Wartość przesunięcia pozy
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, boolean isWeave, int weaveNum, int tool, int user, double vel, double acc, double ovl, double blendR, ExaxisPos epos, int search, int offset_flag, DescPose offset_pos);
14.29. Przykład kodu spawania segmentowego robota
1public static int TestSegWeld(Robot robot)
2{
3 robot.WeldingSetCurrent(0, 230, 0, 0);
4 robot.WeldingSetVoltage(0, 24, 0, 1);
5
6 DescPose p1Desc=new DescPose(228.879, -503.594, 453.984, -175.580, 8.293, 171.267);
7 JointPos p1Joint=new JointPos(102.700, -85.333, 90.518, -102.365, -83.932, 22.134);
8
9 DescPose p2Desc=new DescPose(-333.302, -435.580, 449.866, -174.997, 2.017, 109.815);
10 JointPos p2Joint=new JointPos(41.862, -85.333, 90.526, -100.587, -90.014, 22.135);
11
12 ExaxisPos exaxisPos=new ExaxisPos(0, 0, 0, 0);
13 DescPose offdese=new DescPose(0, 0, 0, 0, 0, 0);
14
15 robot.GetForwardKin(p1Joint,p1Desc);
16 robot.GetForwardKin(p2Joint,p2Desc);
17
18 int rtn = robot.SegmentWeldStart(p1Desc, p2Desc, p1Joint, p2Joint, 20, 20, 0, 0, 5000, true,0, 1, 0, 30, 100, 100, -1, exaxisPos, 0, 0, offdese);
19 return 0;
20}
14.30. Rozpoczęcie symulacji ruchu wahadłowego
1/**
2* @brief Rozpoczęcie symulacji ruchu wahadłowego
3* @param [in] weaveNum Numer parametrów wahadła
4* @return Kod błędu
5*/
6int WeaveStartSim(int weaveNum);
14.31. Zakończenie symulacji ruchu wahadłowego
1/**
2* @brief Zakończenie symulacji ruchu wahadłowego
3* @param [in] weaveNum Numer parametrów wahadła
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 wahadła
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 wahadła
4* @return Kod błędu
5*/
6int WeaveInspectEnd(int weaveNum);
14.34. Rozpoczęcie zmiany parametrów wahadła
Zmienione w wersji Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Rozpoczęcie zmiany parametrów wahadła
3* @param [in] weaveChangeFlag 1-zmiana parametrów wahadła; 2-zmiana parametrów wahadła + prędkości spawania
4* @param [in] weaveNum Numer wahadła
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. Przykład kodu spawania ze zmianą parametrów wahadła robota
1public static int TestWeave(Robot robot)
2{
3 DescPose p1Desc=new DescPose(228.879, -503.594, 453.984, -175.580, 8.293, 171.267);
4 JointPos p1Joint=new JointPos(102.700, -85.333, 90.518, -102.365, -83.932, 22.134);
5
6 DescPose p2Desc=new DescPose(-333.302, -435.580, 449.866, -174.997, 2.017, 109.815);
7 JointPos p2Joint=new JointPos(41.862, -85.333, 90.526, -100.587, -90.014, 22.135);
8
9 ExaxisPos exaxisPos=new ExaxisPos(0, 0, 0, 0);
10 DescPose offdese=new DescPose(0, 0, 0, 0, 0, 0);
11
12 robot.MoveJ(p1Joint, p1Desc, 13, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
13 robot.WeaveStartSim(0);
14 robot.MoveL(p2Joint, p2Desc, 13, 0, 20, 100, 100, -1, 0, exaxisPos, 0, 0, offdese,0,10);
15 robot.WeaveEndSim(0);
16 robot.MoveJ(p1Joint, p1Desc, 13, 0, 20, 100, 100, exaxisPos, -1, 0, offdese);
17 robot.WeaveInspectStart(0);
18 robot.MoveL(p2Joint, p2Desc, 13, 0, 20, 100, 100, -1, 0, exaxisPos, 0, 0, offdese,0,10);
19 robot.WeaveInspectEnd(0);
20
21 robot.WeldingSetVoltage(1, 19, 0, 0);
22 robot.WeldingSetCurrent(1, 190, 0, 0);
23 robot.MoveL(p1Joint, p1Desc, 1, 1, 100, 100, 50, -1,0, exaxisPos, 0, 0, offdese,0,10);
24 robot.ARCStart(1, 0, 10000);
25 robot.ArcWeldTraceControl(1, 0, 1, 0.06, 5, 5, 60, 1, 0.06, 5, 5, 80, 0, 0, 4, 1, 10, 0, 0);
26 robot.WeaveStart(0);
27 robot.WeaveChangeStart(1, 0, 50, 30);
28 robot.MoveL(p2Joint, p2Desc, 1, 1, 100, 100, 1, -1, 0,exaxisPos, 0, 0, offdese,0,10);
29 robot.WeaveChangeEnd();
30 robot.WeaveEnd(0);
31 robot.ArcWeldTraceControl(0, 0, 1, 0.06, 5, 5, 60, 1, 0.06, 5, 5, 80, 0, 0, 4, 1, 10, 0, 0);
32 robot.ARCEnd(1, 0, 10000);
33 return 0;
34}
14.36. Zakończenie zmiany parametrów wahadła
Nowe w wersji Java: SDK-v1.0.2-3.7.9
1/**
2* @brief Zakończenie zmiany parametrów wahadła
3* @return Kod błędu
4*/
5int WeaveChangeEnd();
14.37. Rozszerzone IO - konfiguracja sygnału detekcji gazu spawarki
1/**
2* @brief Rozszerzone IO - konfiguracja sygnału detekcji gazu spawarki
3* @param [in] DONum Rozszerzony numer DO sygnału detekcji gazu
4* @return Kod błędu
5*/
6int SetAirControlExtDoNum(int DONum);
14.38. Rozszerzone IO - konfiguracja sygnału zapłonu łuku spawarki
1/**
2* @brief Rozszerzone IO - konfiguracja sygnału zapłonu łuku spawarki
3* @param [in] DONum Rozszerzony numer DO sygnału zapłonu łuku spawarki
4* @return Kod błędu
5*/
6int SetArcStartExtDoNum(int DONum);
14.39. Rozszerzone IO - konfiguracja sygnału podawania drutu do tyłu spawarki
1/**
2* @brief Rozszerzone IO - 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 IO - konfiguracja sygnału podawania drutu do przodu spawarki
1/**
2* @brief Rozszerzone IO - 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 IO - konfiguracja sygnału pomyślnego zapłonu łuku spawarki
1/**
2* @brief Rozszerzone IO - konfiguracja sygnału pomyślnego zapłonu łuku spawarki
3* @param [in] DINum Rozszerzony numer DI sygnału pomyślnego zapłonu łuku
4* @return Kod błędu
5*/
6int SetArcDoneExtDiNum(int DINum);
14.42. Rozszerzone IO - konfiguracja sygnału gotowości spawarki
1/**
2* @brief Rozszerzone IO - 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 IO - konfiguracja sygnału wznowienia po przerwaniu spawania
1/**
2* @brief Rozszerzone IO - konfiguracja sygnału wznowienia po przerwaniu spawania
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 konfiguracji rozszerzonych sygnałów IO spawania
1public static int TestExtDIConfig(Robot robot)
2{
3 robot.SetArcStartExtDoNum(10);
4 robot.SetAirControlExtDoNum(20);
5 robot.SetWireForwardFeedExtDoNum(30);
6 robot.SetWireReverseFeedExtDoNum(40);
7
8 robot.SetWeldReadyExtDiNum(50);
9 robot.SetArcDoneExtDiNum(60);
10 robot.SetExtDIWeldBreakOffRecover(70, 80);
11 robot.SetWireSearchExtDIONum(0, 1);
12
13 return 0;
14}
14.45. Sterowanie śledzeniem łuku
Zmienione w wersji Java: SDK-v1.0.2-3.7.9
1/**
2* @brief Sterowanie śledzeniem łuku
3* @param [in] flag Przełącznik, 0-wył.; 1-wł.
4* @param [in] delaytime 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-wahadłowy; 1-narzędzia; 2-podstawy
16* @param [in] referenceType Sposób ustawienia prądu odniesienia góra-dół, 0-sprzężenie zwrotne; 1-stała
17* @param [in] referSampleStartUd Początek 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
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))
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 przenoszenia AI śledzenia łuku
1/**
2* @brief Wybór pasma przenoszenia AI śledzenia łuku
3* @param channel Wybór pasma przenoszenia AI śledzenia łuku, [0-3]
4* @return Kod błędu
5*/
6public int ArcWeldTraceExtAIChannelConfig(int channel)
14.47. Włączenie kompensacji śledzenia łuku + wielowarstwowej, wielościeżkowej
1/**
2* @brief Włączenie kompensacji śledzenia łuku + wielowarstwowej, wielościeżkowej
3* @return Kod błędu
4*/
5public int ArcWeldTraceReplayStart()
14.48. Wyłączenie kompensacji śledzenia łuku + wielowarstwowej, wielościeżkowej
1/**
2* @brief Wyłączenie kompensacji śledzenia łuku + wielowarstwowej, wielościeżkowej
3* @return Kod błędu
4*/
5public int ArcWeldTraceReplayEnd()
14.49. Zmiana współrzędnych przesunięcia - spawanie wielowarstwowe, wielościeżkowe
1/**
2* @brief Zmiana współrzędnych przesunięcia - spawanie wielowarstwowe, wielościeżkowe
3* @param pointO Pozycja kartezjańska punktu odniesienia
4* @param pointX Pozycja kartezjańska punktu wskazującego kierunek przesunięcia X punktu odniesienia
5* @param pointZ Pozycja kartezjańska punktu wskazującego kierunek przesunięcia Z punktu odniesienia
6* @param dx Wielkość przesunięcia w kierunku X (mm)
7* @param dz Wielkość przesunięcia w kierunku Z (mm)
8* @param dry Wielkość przesunięcia wokół osi Y (°)
9* @param offset Wynikowe przesunięcie
10* @return Kod błędu
11*/
12public int MultilayerOffsetTrsfToBase(DescTran pointO, DescTran pointX, DescTran pointZ, double dx, double dz, double dry, DescPose offset)
14.50. Przykład kodu śledzenia łuku dla spawania wielowarstwowego, wielościeżkowego
1public static int TestArcWeldTrace(Robot robot)
2{
3 JointPos mulitilineorigin1_joint=new JointPos(-24.090, -63.501, 84.288, -111.940, -93.426, 57.669);
4 DescPose mulitilineorigin1_desc=new DescPose(-677.559, 190.951, -1.205, 1.144, -41.482, -82.577);
5
6 DescTran mulitilineX1_desc=new DescTran(0,0,0);
7 mulitilineX1_desc.x = -677.556;
8 mulitilineX1_desc.y = 211.949;
9 mulitilineX1_desc.z = -1.206;
10
11 DescTran mulitilineZ1_desc=new DescTran(0,0,0);
12 mulitilineZ1_desc.x = -677.564;
13 mulitilineZ1_desc.y = 190.956;
14 mulitilineZ1_desc.z = 19.817;
15
16 JointPos mulitilinesafe_joint=new JointPos(-25.734, -63.778, 81.502, -108.975, -93.392, 56.021);
17 DescPose mulitilinesafe_desc=new DescPose(-677.561, 211.950, 19.812, 1.144, -41.482, -82.577);
18 JointPos mulitilineorigin2_joint=new JointPos(-29.743, -75.623, 101.241, -116.354, -94.928, 55.735);
19 DescPose mulitilineorigin2_desc=new DescPose(-563.961, 215.359, -0.681, 2.845, -40.476, -87.443);
20
21 DescTran mulitilineX2_desc=new DescTran(0,0,0);
22 mulitilineX2_desc.x = -563.965;
23 mulitilineX2_desc.y = 220.355;
24 mulitilineX2_desc.z = -0.680;
25
26 DescTran mulitilineZ2_desc=new DescTran(0,0,0);
27 mulitilineZ2_desc.x = -563.968;
28 mulitilineZ2_desc.y = 215.362;
29 mulitilineZ2_desc.z = 4.331;
30
31 ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
32 DescPose offset=new DescPose(0, 0, 0, 0, 0, 0);
33
34 robot.Sleep(10);
35 int error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
36
37 error = robot.MoveL(mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1, 0,epos, 0, 0, offset, 0, 100);
38
39 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
40
41 error = robot.MoveL(mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 0, 10, 100, 100, -1, 0,epos, 0, 0, offset, 0, 100);
42
43 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
44
45 error = robot.MoveL(mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1,0, epos, 0, 0, offset, 0, 100);
46
47 error = robot.ARCStart(1, 0, 3000);
48
49 error = robot.WeaveStart(0);
50
51 error = robot.ArcWeldTraceControl(1, 0, 1, 0.06, 5, 5, 50, 1, 0.06, 5, 5, 55, 0, 0, 4, 1, 10,0,0);
52
53 error = robot.MoveL(mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 0, 1, 100, 100, -1, 0,epos, 0, 0,offset, 0, 100);
54
55 error = robot.ArcWeldTraceControl(0, 0, 1, 0.06, 5, 5, 50, 1, 0.06, 5, 5, 55, 0, 0, 4, 1, 10,0,0);
56
57 error = robot.WeaveEnd(0);
58
59 error = robot.ARCEnd(1, 0, 10000);
60
61 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
62
63 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin1_desc.tran, mulitilineX1_desc, mulitilineZ1_desc, 10.0, 0.0, 0.0, offset);
64
65 error = robot.MoveL(mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1, 0,epos, 0, 1, offset, 0, 100);
66
67 error = robot.ARCStart(1, 0, 3000);
68
69 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin2_desc.tran, mulitilineX2_desc, mulitilineZ2_desc, 10, 0, 0, offset);
70
71 error = robot.ArcWeldTraceReplayStart();
72
73 error = robot.MoveL(mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 0, 2, 100, 100, -1, 0,epos, 0, 1, offset, 0, 100);
74
75 error = robot.ArcWeldTraceReplayEnd();
76
77 error = robot.ARCEnd(1, 0, 10000);
78
79 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
80
81 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin1_desc.tran, mulitilineX1_desc, mulitilineZ1_desc, 0, 10, 0, offset);
82
83 error = robot.MoveL(mulitilineorigin1_joint, mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1,0, epos, 0, 1, offset, 0, 100);
84
85 error = robot.ARCStart(1, 0, 3000);
86
87 error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin2_desc.tran, mulitilineX2_desc, mulitilineZ2_desc, 0, 10, 0, offset);
88
89 error = robot.ArcWeldTraceReplayStart();
90
91 error = robot.MoveL(mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 0, 2, 100, 100, -1,0, epos, 0, 1, offset, 0, 100);
92
93 error = robot.ArcWeldTraceReplayEnd();
94
95 error = robot.ARCEnd(1, 0, 3000);
96
97 error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
98
99 robot.CloseRPC();
100 return 0;
101}
14.51. Wybór kanału AI sprzężenia zwrotnego prądu spawarki dla śledzenia łuku
Nowe w wersji Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Wybór kanału AI sprzężenia zwrotnego prądu spawarki dla śledzenia łuku
3* @param [in] channel Kanał; 0-rozszerzony AI0; 1-rozszerzony AI1; 2-rozszerzony AI2; 3-rozszerzony AI3; 4-AI0 skrzynki kontrolnej; 5-AI1 skrzynki kontrolnej
4* @return Kod błędu
5*/
6int ArcWeldTraceAIChannelCurrent(int channel)
14.52. Wybór kanału AI sprzężenia zwrotnego napięcia spawarki dla śledzenia łuku
Nowe w wersji Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Wybór kanału AI sprzężenia zwrotnego napięcia spawarki dla śledzenia łuku
3* @param [in] channel Kanał; 0-rozszerzony AI0; 1-rozszerzony AI1; 2-rozszerzony AI2; 3-rozszerzony AI3; 4-AI0 skrzynki kontrolnej; 5-AI1 skrzynki kontrolnej
4* @return Kod błędu
5*/
6int ArcWeldTraceAIChannelVoltage(int channel)
14.53. Parametry konwersji sprzężenia zwrotnego prądu spawarki dla śledzenia łuku
Nowe w wersji Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Parametry konwersji sprzężenia zwrotnego prądu spawarki dla śledzenia łuku
3* @param [in] AILow Dolna granica kanału AI, domyślnie 0V, zakres [0-10V]
4* @param [in] AIHigh Górna granica kanału AI, domyślnie 10V, zakres [0-10V]
5* @param [in] currentLow Wartość prądu spawarki odpowiadająca dolnej granicy kanału AI, domyślnie 0V, zakres [0-200V]
6* @param [in] currentHigh Wartość prądu spawarki odpowiadająca górnej granicy kanału AI, domyślnie 100V, zakres [0-200V]
7* @return Kod błędu
8*/
9int ArcWeldTraceCurrentPara(double AILow, double AIHigh, double currentLow, double currentHigh)
14.54. Parametry konwersji sprzężenia zwrotnego napięcia spawarki dla śledzenia łuku
Nowe w wersji Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Parametry konwersji sprzężenia zwrotnego napięcia spawarki dla śledzenia łuku
3* @param [in] AILow Dolna granica kanału AI, domyślnie 0V, zakres [0-10V]
4* @param [in] AIHigh Górna granica kanału AI, domyślnie 10V, zakres [0-10V]
5* @param [in] voltageLow Wartość napięcia spawarki odpowiadająca dolnej granicy kanału AI, domyślnie 0V, zakres [0-200V]
6* @param [in] voltageHigh Wartość napięcia spawarki odpowiadająca górnej granicy kanału AI, domyślnie 100V, zakres [0-200V]
7* @return Kod błędu
8*/
9int ArcWeldTraceVoltagePara(double AILow, double AIHigh, double voltageLow, double voltageHigh)
14.55. Przykład kodu śledzenia łuku
1public static void WeldTraceControlWithCtrlBoxAI(Robot robot)
2{
3 DescPose startdescPose = new DescPose(-473.86, 257.879, -20.849, -37.317, -42.021, 2.543);
4 JointPos startjointPos = new JointPos(-43.487, -76.526, 95.568, -104.445, -89.356, 3.72);
5
6 DescPose safedescPose = new DescPose(-504.043, 275.181, 40.908, -28.002, -42.025, -14.044);
7 JointPos safejointPos = new JointPos(-39.078, -76.732, 87.227, -99.47, -94.301, 18.714);
8
9 DescPose enddescPose = new DescPose(-499.844, 141.225, 7.72, -34.856, -40.17, 13.13);
10 JointPos endjointPos = new JointPos(-31.305, -82.998, 99.401, -104.426, -89.35, 3.696);
11
12 ExaxisPos exaxisPos = new ExaxisPos(0, 0, 0, 0);
13 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
14 //起始运动到安全点
15 robot.MoveJ(safejointPos, safedescPose, 1, 0, 5, 20, 100, exaxisPos, -1, 0, offdese);
16
17 WeldCurrentAORelation current = new WeldCurrentAORelation(0, 495, 1, 10, 0);
18 WeldVoltageAORelation voltage = new WeldVoltageAORelation(10, 45, 1, 10, 1);
19 robot.WeldingSetCurrentRelation(current);//电流与输出模拟量的关系
20 robot.WeldingSetVoltageRelation(voltage);//电压与输出模拟量的关系
21 robot.WeldingSetVoltage(0, 25, 1, 0);//设置电压
22 robot.WeldingSetCurrent(0, 260, 0, 0);//设置电流
23
24 int rtn = robot.ArcWeldTraceAIChannelCurrent(4);
25 System.out.println("ArcWeldTraceAIChannelCurrent rtn is " + rtn);
26
27 rtn = robot.ArcWeldTraceAIChannelVoltage(5);
28 System.out.println("ArcWeldTraceAIChannelVoltage rtn is " + rtn);
29
30 rtn = robot.ArcWeldTraceCurrentPara(0.0, 5, 0, 500);
31 System.out.println("ArcWeldTraceCurrentPara rtn is " + rtn);
32
33 rtn = robot.ArcWeldTraceVoltagePara(1.018, 10, 0, 50);
34 System.out.println("ArcWeldTraceVoltagePara rtn is " + rtn);
35
36 robot.MoveJ(startjointPos, startdescPose, 1, 0, 20, 20, 100, exaxisPos, -1, 0, offdese);
37 robot.ArcWeldTraceControl(1, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
38 robot.ARCStart(0, 0, 10000);
39 robot.WeaveStart(0);
40 robot.MoveL(endjointPos, enddescPose, 1, 0, 100, 100, 2, -1, 0, exaxisPos, 0, 0, offdese, 0, 10);
41 robot.ARCEnd(0, 0, 10000);
42 robot.WeaveEnd(0);
43 robot.ArcWeldTraceControl(0, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
44
45 robot.MoveJ(safejointPos, safedescPose, 1, 0, 20, 20, 100, exaxisPos, -1, 0, offdese);
46}
14.56. Ustawianie rozszerzonego portu IO dla poszukiwania pozycji drutu
1/**
2* @brief Ustawianie rozszerzonego portu IO dla poszukiwania pozycji drutu
3* @param [in] searchDoneDINum Port DO pomyślnego poszukiwania pozycji drutu (0-127)
4* @param [in] searchStartDONum Port DO sterowania uruchamianiem/zatrzymywaniem poszukiwania pozycji drutu (0-127)
5* @return Kod błędu
6*/
7int SetWireSearchExtDIONum(int searchDoneDINum, int searchStartDONum);
14.57. Przykładowy program
1private static void TestUDPWireSearch(Robot robot)
2{
3 UDPComParam param = new UDPComParam("192.168.58.88", 2021, 2, 100, 3, 100, 1, 100, 10,0);
4 robot.ExtDevSetUDPComParam(param);//udp扩展轴通讯
5
6 robot.SetWireSearchExtDIONum(0, 0);
7
8 int rtn0, rtn1, rtn2 = 0;
9 ExaxisPos exaxisPos = new ExaxisPos(0.0, 0.0, 0.0, 0.0);
10 DescPose offdese = new DescPose(0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
11
12 DescPose descStart = new DescPose(-158.767, -510.596, 271.709, -179.427, -0.745, -137.349);
13 JointPos jointStart = new JointPos(61.667, -79.848, 108.639, -119.682, -89.700, -70.985);
14
15 DescPose descEnd = new DescPose(0.332, -516.427, 270.688, 178.165, 0.017, -119.989);
16 JointPos jointEnd = new JointPos(79.021, -81.839, 110.752, -118.298, -91.729, -70.981);
17
18 robot.MoveL(jointStart, descStart, 1, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese, 0, 100);
19 robot.MoveL(jointEnd, descEnd, 1, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese, 0, 100);
20
21 DescPose descREF0A = new DescPose(-66.106, -560.746, 270.381, 176.479, -0.126, -126.745);
22 JointPos jointREF0A = new JointPos(73.531, -75.588, 102.941, -116.250, -93.347, -69.689);
23
24 DescPose descREF0B = new DescPose(-66.109, -528.440, 270.407, 176.479, -0.129, -126.744);
25 JointPos jointREF0B = new JointPos(72.534, -79.625, 108.046, -117.379, -93.366, -70.687);
26
27 DescPose descREF1A = new DescPose(72.975, -473.242, 270.399, 176.479, -0.129, -126.744);
28 JointPos jointREF1A = new JointPos(87.169, -86.509, 115.710, -117.341, -92.993, -56.034);
29
30 DescPose descREF1B = new DescPose(31.355, -473.238, 270.405, 176.480, -0.130, -126.745);
31 JointPos jointREF1B = new JointPos(82.117, -87.146, 116.470, -117.737, -93.145, -61.090);
32
33 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
34 robot.MoveL(jointREF0A, descREF0A, 1, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese, 0, 100); //起点
35 robot.MoveL(jointREF0B, descREF0B, 1, 0, 10, 100, 100, -1, exaxisPos, 1, 0, offdese, 0, 100); //方向点
36 rtn1 = robot.WireSearchWait("REF0");
37 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
38
39 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
40 robot.MoveL(jointREF1A, descREF1A, 1, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese, 0, 100); //起点
41 robot.MoveL(jointREF1B, descREF1B, 1, 0, 10, 100, 100, -1, exaxisPos, 1, 0, offdese, 0, 100); //方向点
42 rtn1 = robot.WireSearchWait("REF1");
43 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
44
45 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
46 robot.MoveL(jointREF0A, descREF0A, 1, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese, 0, 100); //起点
47 robot.MoveL(jointREF0B, descREF0B, 1, 0, 10, 100, 100, -1, exaxisPos, 1, 0, offdese, 0, 100); //方向点
48 rtn1 = robot.WireSearchWait("RES0");
49 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
50
51 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
52 robot.MoveL(jointREF1A, descREF1A, 1, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese, 0, 100); //起点
53 robot.MoveL(jointREF1B, descREF1B, 1, 0, 10, 100, 100, -1, exaxisPos, 1, 0, offdese, 0, 100); //方向点
54 rtn1 = robot.WireSearchWait("RES1");
55 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
56
57 String[] varNameRef = {"REF0", "REF1", "#", "#", "#", "#"};
58 String[] varNameRes = {"RES0", "RES1", "#", "#", "#", "#"};
59 int offectFlag = 0;
60 //DescPose offectPos = new DescPose(0, 0, 0, 0, 0, 0);
61 DescOffset offset = new DescOffset();
62 rtn0 = robot.GetWireSearchOffset(0, 0, varNameRef, varNameRes, offset);
63 robot.PointsOffsetEnable(0, offset.offset);
64 robot.MoveL(jointStart, descStart, 1, 0, 100, 100, 100, -1, exaxisPos, 0, 0, offdese, 0, 100);
65 robot.MoveL(jointEnd, descEnd, 1, 0, 100, 100, 100, -1, exaxisPos, 1, 0, offdese, 0, 100);
66 robot.PointsOffsetDisable();
67}
14.58. Rozpoczęcie poszukiwania pozycji drutu
1/**
2* @brief Rozpoczęcie poszukiwania pozycji drutu
3* @param [in] refPos 1-punkt odniesienia 0-punkt kontaktu
4* @param [in] searchVel Prędkość poszukiwania %
5* @param [in] searchDis Odległość poszukiwania mm
6* @param [in] autoBackFlag Flaga 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-poszukiwanie z przesunięciem; 0-poszukiwanie punktu nauczania
10* @return Kod błędu
11*/
12int WireSearchStart(int refPos, double searchVel, int searchDis, int autoBackFlag, double autoBackVel, int autoBackDis, int offectFlag);
14.59. Zakończenie poszukiwania pozycji drutu
1/**
2* @brief Zakończenie poszukiwania pozycji drutu
3* @param [in] refPos 1-punkt odniesienia 2-punkt kontaktu
4* @param [in] searchVel Prędkość poszukiwania %
5* @param [in] searchDis Odległość poszukiwania mm
6* @param [in] autoBackFlag Flaga 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-poszukiwanie z przesunięciem; 2-poszukiwanie punktu nauczania
10* @return Kod błędu
11*/
12int WireSearchEnd(int refPos, double searchVel, int searchDis, int autoBackFlag, double autoBackVel, int autoBackDis, int offectFlag);
14.60. Obliczanie przesunięcia poszukiwania pozycji drutu
1/**
2* @brief Obliczanie przesunięcia poszukiwania pozycji drutu
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] offset Przesunięcie pozy [x, y, z, a, b, c] i sposób przesunięcia
8* @return Kod błędu
9*/
10int GetWireSearchOffset(int seamType, int method, String[] varNameRef, String[] varNameRes, DescOffset offset);
14.61. Oczekiwanie na zakończenie poszukiwania pozycji drutu
1/**
2* @brief Oczekiwanie na zakończenie poszukiwania pozycji drutu
3* @return Kod błędu
4*/
5int WireSearchWait(String name);
14.62. Zapis punktu kontaktu poszukiwania pozycji drutu do bazy danych
1/**
2* @brief Zapis punktu kontaktu poszukiwania pozycji drutu 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.63. Przykład kodu poszukiwania pozycji drutu robota
1public static int TestWireSearch(Robot robot)
2{
3 DescPose toolCoord=new DescPose(0, 0, 200, 0, 0, 0);
4 robot.SetToolCoord(1, toolCoord, 0, 0, 1, 0);
5 DescPose wobjCoord=new DescPose(0, 0, 0, 0, 0, 0);
6 robot.SetWObjCoord(1, wobjCoord, 0);
7
8 int rtn0, rtn1, rtn2 = 0;
9 ExaxisPos exaxisPos = new ExaxisPos( 0, 0, 0, 0 );
10 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
11
12
13 DescPose descStart = new DescPose(216.543, 445.175, 93.465, 179.683, 1.757, -112.641);
14 JointPos jointStart = new JointPos(-128.345, -86.660, 114.679, -119.625, -89.219, 74.303);
15
16 DescPose descEnd =new DescPose(111.143, 523.384, 87.659, 179.703, 1.835, -97.750);
17 JointPos jointEnd =new JointPos(-113.454, -81.060, 109.328, -119.954, -89.218, 74.302 );
18
19 robot.MoveL(jointStart, descStart, 1, 1, 100, 100, 100, -1,0, exaxisPos, 0, 0, offdese,0,100);
20 robot.MoveL(jointEnd, descEnd, 1, 1, 100, 100, 100, -1, 0,exaxisPos, 0, 0, offdese,0,100);
21
22 DescPose descREF0A = new DescPose(142.135, 367.604, 86.523, 179.728, 1.922, -111.089);
23 JointPos jointREF0A =new JointPos(-126.794, -100.834, 128.922, -119.864, -89.218, 74.302);
24
25 DescPose descREF0B = new DescPose(254.633, 463.125, 72.604, 179.845, 2.341, -114.704);
26 JointPos jointREF0B = new JointPos(-130.413, -81.093, 112.044, -123.163, -89.217, 74.303);
27
28 DescPose descREF1A =new DescPose(92.556, 485.259, 47.476, -179.932, 3.130, -97.512);
29 JointPos jointREF1A =new JointPos(-113.231, -83.815, 119.877, -129.092, -89.217, 74.303);
30
31 DescPose descREF1B =new DescPose(203.103, 583.836, 63.909, 179.991, 2.854, -103.372);
32 JointPos jointREF1B = new JointPos(-119.088, -69.676, 98.692, -121.761, -89.219, 74.303);
33
34 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
35 robot.MoveL(jointREF0A, descREF0A, 1, 1, 100, 100, 100, -1,0, exaxisPos, 0, 0, offdese,0,10); //起点
36 robot.MoveL(jointREF0B, descREF0B, 1, 1, 100, 100, 100, -1,0, exaxisPos, 1, 0, offdese,0,10); //方向点
37 rtn1 = robot.WireSearchWait("REF0");
38 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
39
40 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
41 robot.MoveL(jointREF1A, descREF1A, 1, 1, 100, 100, 100, -1, 0,exaxisPos, 0, 0, offdese,0,10); //起点
42 robot.MoveL(jointREF1B, descREF1B, 1, 1, 100, 100, 100, -1,0, exaxisPos, 1, 0, offdese,0,10); //方向点
43 rtn1 = robot.WireSearchWait("REF1");
44 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
45
46 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
47 robot.MoveL(jointREF0A, descREF0A, 1, 1, 100, 100, 100, -1,0, exaxisPos, 0, 0, offdese,0,10); //起点
48 robot.MoveL(jointREF0B, descREF0B, 1, 1, 100, 100, 100, -1,0, exaxisPos, 1, 0, offdese,0,10); //方向点
49 rtn1 = robot.WireSearchWait("RES0");
50 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
51
52 rtn0 = robot.WireSearchStart(0, 10, 100, 0, 10, 100, 0);
53 robot.MoveL(jointREF1A, descREF1A, 1, 1, 100, 100, 100, -1, 0,exaxisPos, 0, 0, offdese,0,10); //起点
54 robot.MoveL(jointREF1B, descREF1B, 1, 1, 100, 100, 100, -1, 0,exaxisPos, 1, 0, offdese,0,10); //方向点
55 rtn1 = robot.WireSearchWait("RES1");
56 rtn2 = robot.WireSearchEnd(0, 10, 100, 0, 10, 100, 0);
57
58 String[] varNameRef =new String[]{"REF0", "REF1", "#", "#", "#", "#"};
59 String[] varNameRes = new String[]{ "RES0", "RES1", "#", "#", "#", "#" };
60 int offectFlag = 0;
61
62 DescPose pos = new DescPose(0,0,0,0,0,0);
63 DescOffset offectPos=new DescOffset();
64 offectPos.offset=pos;
65 offectPos.offsetFlag=0;
66
67 rtn0 = robot.GetWireSearchOffset(0, 0, varNameRef, varNameRes, offectPos);
68 robot.PointsOffsetEnable(0, pos);
69 robot.MoveL(jointStart, descStart, 1, 1, 100, 100, 100, -1,0, exaxisPos, 0, 0, offdese,0,10);
70 robot.MoveL(jointEnd, descEnd, 1, 1, 100, 100, 100, -1, 0,exaxisPos, 1, 0, offdese,0,10);
71 robot.PointsOffsetDisable();
72
73 robot.CloseRPC();
74 return 0;
75}
14.64. Ustawianie rozpoczęcia zmiany napięcia spawania
Nowe w wersji Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Ustawianie rozpoczęcia zmiany napięcia spawania
3* @param [in] IOType Typ sterowania; 0-IO skrzynki kontrolnej; 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 kontrolnej (0-1)
7* @param [in] blend Czy wygładzać 0-nie; 1-tak
8* @return Kod błędu
9*/
10int WeldingSetVoltageGradualChangeStart(int IOType, double voltageStart, double voltageEnd, int AOIndex, int blend)
14.65. Ustawianie zakończenia zmiany napięcia spawania
Nowe w wersji Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Ustawianie zakończenia zmiany napięcia spawania
3* @return Kod błędu
4*/
5int WeldingSetVoltageGradualChangeEnd()
14.66. Ustawianie rozpoczęcia zmiany prądu spawania
Nowe w wersji Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Ustawianie rozpoczęcia zmiany prądu spawania
3* @param [in] IOType Typ sterowania; 0-IO skrzynki kontrolnej; 1-protokół komunikacji cyfrowej (UDP); 2-protokół komunikacji cyfrowej (ModbusTCP)
4* @param [in] currentStart Początkowy prąd spawania (A)
5* @param [in] currentEnd Końcowy prąd spawania (A)
6* @param [in] AOIndex Numer portu AO skrzynki kontrolnej (0-1)
7* @param [in] blend Czy wygładzać 0-nie; 1-tak
8* @return Kod błędu
9*/
10int WeldingSetCurrentGradualChangeStart(int IOType, double currentStart, double currentEnd, int AOIndex, int blend)
14.67. Ustawianie zakończenia zmiany prądu spawania
Nowe w wersji Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Ustawianie zakończenia zmiany prądu spawania
3* @return Kod błędu
4*/
5int WeldingSetCurrentGradualChangeEnd()
14.68. Przykład kodu zmiany prądu i napięcia spawania robota
1public static void WeldparamChange(Robot robot)
2{
3 DescPose startdescPose = new DescPose(-484.707, 276.996, -14.013, -37.657, -40.508, -1.548);
4 JointPos startjointPos = new JointPos(-45.421, -75.673, 93.627, -104.302, -87.938, 6.005);
5
6 DescPose enddescPose = new DescPose(-508.767, 137.109, -13.966, -37.639, -40.508, -1.559);
7 JointPos endjointPos = new JointPos(-32.768, -80.947, 100.254, -106.201, -87.201, 18.648);
8
9 DescPose safedescPose = new DescPose(-484.709, 294.436, 13.621, -37.660, -40.508, -1.545);
10 JointPos safejointPos = new JointPos(-46.604, -75.410, 89.109, -100.003, -88.012, 4.823);
11
12 ExaxisPos exaxisPos = new ExaxisPos(0, 0, 0, 0);
13 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
14
15 WeldCurrentAORelation cur = new WeldCurrentAORelation(0, 495, 1, 10, 0);
16 WeldVoltageAORelation vol = new WeldVoltageAORelation(10, 45, 1, 10, 1);
17 robot.WeldingSetCurrentRelation(cur);
18 robot.WeldingSetVoltageRelation(vol);
19
20 robot.WeldingSetVoltage(0, 25, 1, 0);// ----设置电压
21 robot.WeldingSetCurrent(0, 260, 0, 0);// ----设置电流
22
23 robot.MoveJ(safejointPos, safedescPose, 1, 0, 5, 100, 100, exaxisPos, -1, 0, offdese);
24
25 robot.WeldingSetCurrentGradualChangeStart(0, 260, 220, 0, 0);
26 robot.WeldingSetVoltageGradualChangeStart(0, 25, 22, 1, 0);
27 int rtn = robot.ArcWeldTraceControl(1, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
28
29 robot.MoveJ(startjointPos, startdescPose, 1, 0, 5, 100, 100, exaxisPos, -1, 0, offdese);
30 System.out.println("ArcWeldTraceControl rtn is " + rtn);
31
32 robot.ARCStart(0, 0, 10000);
33 robot.WeaveStart(0);
34 robot.WeaveChangeStart(2, 1, 24, 36);
35 robot.MoveL(endjointPos, enddescPose, 1, 0, 100, 100, 2, -1, 0, exaxisPos, 0, 0, offdese, 0, 10);
36 robot.ARCEnd(0, 0, 10000);
37 robot.WeaveChangeEnd();
38 robot.WeaveEnd(0);
39 robot.ArcWeldTraceControl(0, 0, 1, 0.08, 5, 5, 300, 1, 0.06, 4, 4, 300, 1, 0, 4, 1, 10, 0, 0);
40 robot.WeldingSetCurrentGradualChangeEnd();
41 robot.WeldingSetVoltageGradualChangeEnd();
42}
14.69. Ustawianie niestandardowych parametrów ruchu wahadłowego
Nowe w wersji Java: SDK-v1.0.9-3.8.6
1/**
2 * @brief Ustawianie niestandardowych parametrów ruchu wahadłowego
3 * @param [in] id Niestandardowy numer wahadła: 0-2
4 * @param [in] pointNum Liczba punktów wahadła 0-10
5 * @param [in] point Dane punktów końcowych ruchu x,y,z
6 * @param [in] stayTime Czas postoju wahadła ms
7 * @param [in] frequency Częstotliwość wahadła 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 wahadła: 0-kontynuacja ruchu w czasie oczekiwania; 1-pozycja nieruchoma w czasie oczekiwania
10 * @return Kod błędu
11 */
12public int CustomWeaveSetPara(int id, int pointNum, DescTran[] point, double[] stayTime, double frequency, int incStayType, int stationary)
14.70. Pobieranie niestandardowych parametrów ruchu wahadłowego
Nowe w wersji Java: SDK-v1.0.9-3.8.6
1/**
2 * @brief Pobieranie niestandardowych parametrów ruchu wahadłowego
3 * @param [in] id Niestandardowy numer wahadła: 0-2
4 * @param [out] pointNum Liczba punktów wahadła 0-10
5 * @param [out] point Dane punktów końcowych ruchu x,y,z
6 * @param [out] stayTime Czas postoju wahadła ms
7 * @param [out] frequency Częstotliwość wahadła 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 wahadła: 0-kontynuacja ruchu w czasie oczekiwania; 1-pozycja nieruchoma w czasie oczekiwania
10 * @return Kod błędu
11 */
12public int CustomWeaveGetPara(int id, int[] pointNum, DescTran[] point, double[] stayTime, double[] frequency, int[] incStayType, int[] stationary)
14.71. Przykład kodu niestandardowych parametrów ruchu wahadłowego
1public static void TestCustomWeaveSetPara(Robot robot)
2{
3 DescTran[] point = new DescTran[10];
4 point[0]=new DescTran();
5 point[0].x = -3;
6 point[0].y = -3;
7 point[0].z = 0;
8
9 point[1]=new DescTran();
10 point[1].x = -6;
11 point[1].y = 0;
12 point[1].z = 0;
13
14 point[2]=new DescTran();
15 point[2].x = -3;
16 point[2].y = 3;
17 point[2].z = 0;
18
19 point[3]=new DescTran();
20 point[3].x = 0;
21 point[3].y = 0;
22 point[3].z = 0;
23 point[4]=new DescTran(0,0,0);
24 point[5]=new DescTran(0,0,0);
25 point[6]=new DescTran(0,0,0);
26 point[7]=new DescTran(0,0,0);
27 point[8]=new DescTran(0,0,0);
28 point[9]=new DescTran(0,0,0);
29
30 double[] stayTime =new double[] { 0,0,0,0,0,0,0,0,0,0 };
31 int rtn = robot.CustomWeaveSetPara(2, 4, point, stayTime, 1.000, 0, 0);
32 System.out.println("CustomWeaveSetPara rtn is :"+ rtn);
33 robot.Sleep(1000);
34
35 int[] pointNum = new int[1];
36 double[] frequency=new double[1];
37 int[] incStayType=new int[1];
38 int[] stationary=new int[1];
39 robot.CustomWeaveGetPara(2, pointNum, point, stayTime, frequency, incStayType, stationary);
40 System.out.println("pointNum is :"+ pointNum[0]);
41 for (int i = 0; i < pointNum[0]; i++)
42 {
43 System.out.println("point:"+i+", "+ point[i].x+", "+ point[i].y+", "+ point[i].z);
44 }
45 System.out.println("fre is :"+ frequency[0]+", stay is:"+ incStayType[0]+", "+ stationary[0]);
46
47 robot.WeaveSetPara(0, 9, 1.000000, 1, 5.000000,
48 6.000000, 5.000000, 50, 100, 100,
49 0, 1, 0.000000, 0.000000);
50
51 DescPose desc_p1 =new DescPose(-288.650, 367.807, 288.404, 0.000, -0.001, 0.001 );
52 DescPose desc_p2 = new DescPose( -431.714, 367.815, 288.415, 0.001, 0.001, 0.000 );
53 DescPose desc_p3 = new DescPose( -348.666, 427.798, 288.404, -0.000, -0.000, 0.001 );
54 JointPos j1 = new JointPos( 140.656, -84.560, -91.707, -93.734, 90.000, 50.655 );
55 JointPos j2 = new JointPos( 149.873, -98.298, -77.599, -94.103, 90.000, 59.873 );
56 JointPos j3 = new JointPos( 139.773, -96.173, -80.014, -93.814, 90.000, 49.772 );
57
58 ExaxisPos epos = new ExaxisPos();
59 DescPose offset_pos = new DescPose();
60
61 robot.MoveJ(j1, desc_p1, 3, 0, 100, 100,100, epos, -1, 0, offset_pos);
62 robot.WeaveStart(0);
63 robot.Circle(j3, desc_p3, 3, 0, 100, 100, epos, j2, desc_p2, 3, 0, 100, 100, epos, 10, -1, offset_pos,0,-1,0);
64 robot.WeaveEnd(0);
65 robot.MoveJ(j1, desc_p1, 3, 0, 100, 100, 100, epos, -1, 0, offset_pos);
66 robot.WeaveStart(0);
67 robot.MoveC(j3, desc_p3, 3, 0, 100, 100, epos, 0, offset_pos, j2, desc_p2, 3, 0, 100, 100, epos, 0, offset_pos, 10, -1,0);
68 robot.WeaveEnd(0);
69 robot.MoveJ(j1, desc_p1, 3, 0, 100, 100, 100, epos, -1, 0, offset_pos);
70 robot.WeaveStart(0);
71 robot.MoveL(j2, desc_p2, 3, 0, 100, 100, 10, -1,epos, 0, 0, offset_pos, 0,0, 100);
72 robot.WeaveEnd(0);
73
74 robot.CloseRPC();
75}
14.72. Konfiguracja parametrów spawarki laserowej
1/**
2* @brief Konfiguracja parametrów spawarki laserowej
3* @param io_type Typ komunikacji 0-IO 1-UDP
4* @param num Numer grupy do ustawienia (1~10)
5* @param scanSpeed Prędkość skanowania
6* @param scanWidth Szerokość skanowania
7* @param peakPower Moc szczytowa
8* @param dutyCycle Współczynnik wypełnienia
9* @param 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.73. Ustawianie rozpoczęcia/zatrzymania spawania laserowego
1/**
2* @brief Ustawianie rozpoczęcia/zatrzymania spawania laserowego
3* @param io_type Typ komunikacji 0-IO 1-UDP
4* @param status Słowo sterujące 0-wyłącz wiązkę 1-włącz wiązkę
5* @param max_waittime Maksymalny czas oczekiwania, jednostka milisekundy, domyślnie 10000
6* @return Kod błędu
7*/
8public int SetLaserWeldingStartEnd(int io_type, int status, int max_waittime)
14.74. Włączanie/wyłączanie spawarki laserowej
1/**
2* @brief Włączanie/wyłączanie spawarki laserowej
3* @param io_type Typ komunikacji 0-IO 1-UDP
4* @param status 0-wyłącz 1-włącz
5* @return Kod błędu
6*/
7public int SetLaserWeldingEnable(int io_type, int status)
14.75. Resetowanie błędów spawarki laserowej
1/**
2* @brief Resetowanie błędów spawarki laserowej
3* @param io_type Typ komunikacji 0-IO 1-UDP
4* @param status Słowo sterujące 0-nieważne 1-resetowanie błędu
5* @return Kod błędu
6*/
7public int ResetLaserWeldingErr(int io_type, int status)
14.76. Pobieranie stanu pracy spawarki laserowej
1/**
2* @brief Pobieranie stanu pracy spawarki laserowej
3* @param io_type Typ komunikacji 0-IO 1-UDP
4* @param status Słowo sterujące 0-zatrzymana 1-pracuje
5* @return Kod błędu
6*/
7public int GetLaserWeldingRunningState(int io_type, int[] status)
14.77. Pobieranie stanu awarii spawarki laserowej
1/**
2* @brief Pobieranie stanu awarii spawarki laserowej
3* @param io_type Typ komunikacji 0-IO 1-UDP
4* @param status 0-brak awarii 1-występuje awaria
5* @return Kod błędu
6*/
7public int GetLaserWeldingErrState(int io_type, int[] status)
14.78. Pobieranie parametrów konfiguracyjnych spawarki laserowej
1/**
2* @brief Pobieranie parametrów konfiguracyjnych jednej z 10 grup procesowych spawarki laserowej
3* @param num Numer grupy do ustawienia (1~10)
4* @param params Tablica parametrów wyjściowych: [scanSpeed, scanWidth, peakPower, dutyCycle, freq]
5* @return Kod błędu
6*/
7public int GetLaserWeldingParamTarget(int num, int[] params)
14.79. Pobieranie aktualnie obowiązujących parametrów konfiguracyjnych spawarki laserowej
1/**
2* @brief Pobieranie aktualnie obowiązujących parametrów konfiguracyjnych spawarki laserowej
3* @param io_type Typ komunikacji 0-IO 1-UDP
4* @param params Tablica parametrów wyjściowych: [scanSpeed, scanWidth, peakPower, dutyCycle, freq]
5* @return Kod błędu
6*/
7public int GetLaserWeldingParamActual(int io_type, int[] params)
14.80. Konfiguracja rozszerzonego portu DO włączania spawarki laserowej
1/**
2* @brief Ustawianie rozszerzonego IO dla spawarki laserowej, portu DO włączania
3* @param ctrlModeDONum Rozszerzony numer portu DO włączania spawarki laserowej
4* @return Kod błędu
5*/
6public int SetLaserWeldingEnableExtDoNum(int ctrlModeDONum)
14.81. Konfiguracja rozszerzonego portu DO uruchamiania spawarki laserowej
1/**
2* @brief Ustawianie rozszerzonego IO dla spawarki laserowej, portu DO uruchamiania
3* @param ctrlModeDONum Rozszerzony numer portu DO uruchamiania (włączania/wyłączania wiązki) spawarki laserowej
4* @return Kod błędu
5*/
6public int SetLaserWeldingStartExtDoNum(int ctrlModeDONum)
14.82. Konfiguracja rozszerzonego portu DO resetowania błędów spawarki laserowej
1/**
2* @brief Ustawianie rozszerzonego IO dla spawarki laserowej, portu DO resetowania błędów
3* @param ctrlModeDONum Rozszerzony numer portu DO resetowania błędów spawarki laserowej
4* @return Kod błędu
5*/
6public int SetLaserWeldingErrResetExtDoNum(int ctrlModeDONum)
14.83. Konfiguracja rozszerzonego portu DI stanu pracy (stanu wiązki) spawarki laserowej
1/**
2* @brief Konfiguracja rozszerzonego portu DI stanu pracy (stanu wiązki) spawarki laserowej
3* @param diNum Rozszerzony port DI stanu pracy (stanu wiązki) spawarki laserowej
4* @return Kod błędu, 0 oznacza sukces, wartość niezerowa oznacza błąd
5*/
6public int SetLaserWeldingRunningStateExtDiNum(int diNum);
14.84. Konfiguracja rozszerzonego portu DI stanu awarii spawarki laserowej
1/**
2* @brief Konfiguracja rozszerzonego portu DI stanu awarii spawarki laserowej
3* @param diNum Rozszerzony port DI stanu awarii spawarki laserowej
4* @return Kod błędu, 0 oznacza sukces, wartość niezerowa oznacza błąd
5*/
6public int SetLaserWeldingErrStateExtDiNum(int diNum);
14.85. Przykład kodu spawania laserowego
1public static int testLsaerWeld(Robot robot) {
2 int rtn = -1;
3 rtn = robot.ExtDevLoadUDPDriver();
4 if (rtn != 0) {
5 System.out.println("Failed to load UDP driver, error code: " + rtn);
6 }
7 robot.Sleep(1000);
8 rtn = robot.SetLaserWeldingParam(1, 3, 2000, 3, 1500, 100, 1000);
9 if (rtn != 0) {
10 System.out.println("SetLaserWeldingParam failed, error code: " + rtn);
11 } else {
12 System.out.println("SetLaserWeldingParam success");
13 }
14 rtn = robot.SetLaserWeldingStartExtDoNum(1);
15 if (rtn != 0) {
16 System.out.println("SetLaserWeldingStartExtDoNum failed, error code: " + rtn);
17 }
18 rtn = robot.Mode(0);
19 if (rtn != 0) {
20 System.out.println("Set mode 0 failed, error code: " + rtn);
21 }
22 robot.Sleep(1000);
23 DescPose desc_pos1 = new DescPose(-303.721, -206.960, 297.105, 152.209, 19.857, 109.166);
24 DescPose desc_pos2 = new DescPose(-301.575, -254.888, 284.786, 155.919, 26.946, 111.629);
25 DescPose desc_safe = new DescPose(-344.386, -280.830, 435.073, 173.835, 15.333, 124.931);
26
27 JointPos jointPos1 = new JointPos(9.827, -99.740, 120.088, -78.900, -77.241, -17.904);
28 JointPos jointPos2 = new JointPos(15.251, -96.456, 120.138, -84.664, -68.542, -17.843);
29 JointPos jointSafe = new JointPos(19.142, -98.078, 101.493, -83.078, -77.070, -17.794);
30
31 ExaxisPos exaxis = new ExaxisPos(0.0, 0.0, 0.0, 0.0);
32 DescPose offset = new DescPose(0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
33 int error = robot.MoveL(desc_pos1, 0, 0, 100, 100, 100, -1, 0, exaxis, 0, 0, offset, -1, 0,0,0);
34 System.out.println("MoveL to pos1 return: " + error);
35 rtn = robot.SetLaserWeldingStartEnd(1, 1, 10000);
36 if (rtn != 0) {
37 System.out.println("SetLaserWeldingStartEnd (start) failed, error code: " + rtn);
38 } else {
39 System.out.println("Laser started");
40 }
41 rtn = robot.MoveL(desc_pos2, 0, 0, 30, 100, 100, -1, 0, exaxis, 0, 0, offset, -1, 0,0, 0);
42 System.out.println("MoveL to pos2 return: " + rtn);
43 rtn = robot.SetLaserWeldingStartEnd(1, 0, 10000);
44 if (rtn != 0) {
45 System.out.println("SetLaserWeldingStartEnd (stop) failed, error code: " + rtn);
46 } else {
47 System.out.println("Laser stopped");
48 }
49 robot.Sleep(500);
50 rtn = robot.MoveL(desc_safe, 0, 0, 100, 100, 100, -1, 0, exaxis, 0, 0, offset, -1, 0,0,0);
51 System.out.println("MoveL to safe_pos return: " + rtn);
52 rtn = robot.Mode(1);
53 if (rtn != 0) {
54 System.out.println("Set mode 1 failed, error code: " + rtn);
55 }
56 robot.Sleep(1000);
57 robot.CloseRPC();
58 robot.Sleep(1000);
59
60 System.out.println("Test completed");
61
62 return 0;
63}