13. Oś rozszerzona
13.1. Ustawienie parametrów osi rozszerzonej 485
Nowe w wersji C#SDK-v1.0.6.
1/**
2* @brief Ustawia parametry osi rozszerzonej 485
3* @param [in] servoId ID serwonapędu, zakres [1-15], odpowiada ID stacji podrzędnej
4* @param [in] servoCompany Producent serwonapędu, 1-Dynatect
5* @param [in] servoModel Model serwonapędu, 1-FD100-750C
6* @param [in] servoSoftVersion Wersja oprogramowania serwonapędu, 1-V1.0
7* @param [in] servoResolution Rozdzielczość enkodera
8* @param [in] axisMechTransRatio Przełożenie mechaniczne
9* @return Kod błędu
10*/
11int AuxServoSetParam(int servoId, int servoCompany, int servoModel, int servoSoftVersion, int servoResolution, double axisMechTransRatio);
13.2. Pobranie parametrów konfiguracyjnych osi rozszerzonej 485
Nowe w wersji C#SDK-v1.0.6.
1/**
2* @brief Pobiera parametry konfiguracyjne osi rozszerzonej 485
3* @param [in] servoId ID serwonapędu, zakres [1-15], odpowiada ID stacji podrzędnej
4* @param [out] servoCompany Producent serwonapędu, 1-Dynatect
5* @param [out] servoModel Model serwonapędu, 1-FD100-750C
6* @param [out] servoSoftVersion Wersja oprogramowania serwonapędu, 1-V1.0
7* @param [out] servoResolution Rozdzielczość enkodera
8* @param [out] axisMechTransRatio Przełożenie mechaniczne
9* @return Kod błędu
10*/
11int AuxServoGetParam(int servoId, ref int servoCompany, ref int servoModel, ref int servoSoftVersion, ref int servoResolution, ref double axisMechTransRatio);
13.3. Ustawienie załączenia/odłączenia osi rozszerzonej 485
Nowe w wersji C#SDK-v1.0.6.
1/**
2* @brief Ustawia załączenie/odłączenie osi rozszerzonej 485
3* @param [in] servoId ID serwonapędu, zakres [1-15], odpowiada ID stacji podrzędnej
4* @param [in] status Stan załączenia, 0-odłączenie, 1-załączenie
5* @return Kod błędu
6*/
7int AuxServoEnable(int servoId, int status);
13.4. Ustawienie trybu sterowania osi rozszerzonej 485
Nowe w wersji C#SDK-v1.0.6.
1/**
2* @brief Ustawia tryb sterowania osi rozszerzonej 485
3* @param [in] servoId ID serwonapędu, zakres [1-15], odpowiada ID stacji podrzędnej
4* @param [in] mode Tryb sterowania, 0-tryb pozycyjny, 1-tryb prędkości
5* @return Kod błędu
6*/
7int AuxServoSetControlMode(int servoId, int mode);
13.5. Ustawienie pozycji docelowej osi rozszerzonej 485 (tryb pozycyjny)
Nowe w wersji C#SDK-v1.0.6.
1/**
2* @brief Ustawia pozycję docelową osi rozszerzonej 485 (tryb pozycyjny)
3* @param [in] servoId ID serwonapędu, zakres [1-15], odpowiada ID stacji podrzędnej
4* @param [in] pos Pozycja docelowa, mm lub °
5* @param [in] speed Prędkość docelowa, mm/s lub °/s
6* @return Kod błędu
7*/
8int AuxServoSetTargetPos(int servoId, double pos, double speed);
13.6. Ustawienie prędkości docelowej osi rozszerzonej 485 (tryb prędkości)
Nowe w wersji C#SDK-v1.0.6.
1/**
2* @brief Ustawia prędkość docelową osi rozszerzonej 485 (tryb prędkości)
3* @param [in] servoId ID serwonapędu, zakres [1-15], odpowiada ID stacji podrzędnej
4* @param [in] speed Prędkość docelowa, mm/s lub °/s
5* @return Kod błędu
6*/
7int AuxServoSetTargetSpeed(int servoId, double speed);
13.7. Ustawienie momentu docelowego osi rozszerzonej 485 (tryb momentowy) – tymczasowo nieudostępnione
Nowe w wersji C#SDK-v1.0.6.
1/**
2* @brief Ustawia moment docelowy osi rozszerzonej 485 (tryb momentowy) -- tymczasowo nieudostępnione
3* @param [in] servoId ID serwonapędu, zakres [1-15], odpowiada ID stacji podrzędnej
4* @param [in] torque Moment docelowy, Nm
5* @return Kod błędu
6*/
7int AuxServoSetTargetTorque(int servoId, double torque);
13.8. Ustawienie powrotu do zera osi rozszerzonej 485
Nowe w wersji C#SDK-v1.0.6.
1/**
2* @brief Ustawia powrót do zera osi rozszerzonej 485
3* @param [in] servoId ID serwonapędu, zakres [1-15], odpowiada ID stacji podrzędnej
4* @param [in] mode Tryb powrotu do zera, 1-powrót do zera z bieżącej pozycji; 2-powrót do zera z ogranicznikiem ujemnym; 3-powrót do zera z ogranicznikiem dodatnim
5* @param [in] searchVel Prędkość poszukiwania zera, mm/s lub °/s
6* @param [in] latchVel Prędkość pozycjonowania w zerze, mm/s lub °/s
7* @return Kod błędu
8*/
9int AuxServoHoming(int servoId, int mode, double searchVel, double latchVel);
13.9. Wyczyść informację o błędzie osi rozszerzonej 485
Nowe w wersji C#SDK-v1.0.6.
1/**
2* @brief Czyści informację o błędzie osi rozszerzonej 485
3* @param [in] servoId ID serwonapędu, zakres [1-15], odpowiada ID stacji podrzędnej
4* @return Kod błędu
5*/
6int AuxServoClearError(int servoId);
13.10. Pobranie stanu serwonapędu osi rozszerzonej 485
Nowe w wersji C#SDK-v1.0.6.
1/**
2* @brief Pobiera stan serwonapędu osi rozszerzonej 485
3* @param [in] servoId ID serwonapędu, zakres [1-15], odpowiada ID stacji podrzędnej
4* @param [out] servoErrCode Kod usterki serwonapędu
5* @param [out] servoState Stan serwonapędu bit0:0-niezałączony; 1-załączony; bit1:0-nie w ruchu; 1-w ruchu; bit2 0-ogranicznik dodatni nie wyzwolony; 1-ogranicznik dodatni wyzwolony; bit3 0-ogranicznik ujemny nie wyzwolony; 1-ogranicznik ujemny wyzwolony; bit4 0-pozycjonowanie niezakończone; 1-pozycjonowanie zakończone; bit5:0-nie wyzerowano; 1-wyzerowano
6* @param [out] servoPos Bieżąca pozycja serwa mm lub °
7* @param [out] servoSpeed Bieżąca prędkość serwa mm/s lub °/s
8* @param [out] servoTorque Bieżący moment serwa Nm
9* @return Kod błędu
10*/
11int AuxServoGetStatus(int servoId, ref int servoErrCode, ref int servoState, ref double servoPos, ref double servoSpeed, ref double servoTorque);
13.11. Ustawienie numeru osi danych osi rozszerzonej 485 w informacji zwrotnej o stanie
Nowe w wersji C#SDK-v1.0.6.
1/**
2* @brief Ustawia numer osi danych osi rozszerzonej 485 w informacji zwrotnej o stanie
3* @param [in] servoId ID serwonapędu, zakres [1-15], odpowiada ID stacji podrzędnej
4* @return Kod błędu
5*/
6int AuxServosetStatusID(int servoId);
13.12. Ustawienie przyspieszenia i opóźnienia ruchu osi rozszerzonej 485
1/**
2* @brief Ustawia przyspieszenie i opóźnienie ruchu osi rozszerzonej 485
3* @param [in] acc Przyspieszenie ruchu osi rozszerzonej 485
4* @param [in] dec Opóźnienie ruchu osi rozszerzonej 485
5* @return Kod błędu
6*/
7int AuxServoSetAcc(double acc, double dec);
13.13. Ustawienie przyspieszenia i opóźnienia awaryjnego zatrzymania osi rozszerzonej 485
1/**
2* @brief Ustawia przyspieszenie i opóźnienie awaryjnego zatrzymania osi rozszerzonej 485
3* @param [in] acc Przyspieszenie awaryjnego zatrzymania osi rozszerzonej 485
4* @param [in] dec Opóźnienie awaryjnego zatrzymania osi rozszerzonej 485
5* @return Kod błędu
6*/
7int AuxServoSetEmergencyStopAcc(double acc, double dec);
13.14. Pobranie przyspieszenia i opóźnienia ruchu osi rozszerzonej 485
1/**
2* @brief Pobiera przyspieszenie i opóźnienie ruchu osi rozszerzonej 485
3* @param [out] acc Przyspieszenie ruchu osi rozszerzonej 485
4* @param [out] dec Opóźnienie ruchu osi rozszerzonej 485
5* @return Kod błędu
6*/
7int AuxServoGetAcc(ref double acc, ref double dec);
13.15. Pobranie przyspieszenia i opóźnienia awaryjnego zatrzymania osi rozszerzonej 485
1/**
2* @brief Pobiera przyspieszenie i opóźnienie awaryjnego zatrzymania osi rozszerzonej 485
3* @param [out] acc Przyspieszenie awaryjnego zatrzymania osi rozszerzonej 485
4* @param [out] dec Opóźnienie awaryjnego zatrzymania osi rozszerzonej 485
5* @return Kod błędu
6*/
7int AuxServoGetEmergencyStopAcc(ref double acc, ref double dec);
13.16. Przykład kodu sterowania osią rozszerzoną
Nowe w wersji C#SDK-V1.1.3: Web-3.8.2
1private void button64_Click(object sender, EventArgs e)
2{
3 int retval = robot.AuxServoSetParam(1, 1, 1, 1, 131072, 15.45);
4 Console.WriteLine($"AuxServoSetParam is: {retval}");
5
6 int servoCompany = 0;
7 int servoModel = 0;
8 int servoSoftVersion = 0;
9 int servoResolution = 0;
10 double axisMechTransRatio = 0;
11 retval = robot.AuxServoGetParam(1, ref servoCompany, ref servoModel, ref servoSoftVersion, ref servoResolution, ref axisMechTransRatio);
12 Console.WriteLine($"servoCompany {servoCompany}\n" +
13 $"servoModel {servoModel}\n" +
14 $"servoSoftVersion {servoSoftVersion}\n" +
15 $"servoResolution {servoResolution}\n" +
16 $"axisMechTransRatio {axisMechTransRatio}\n");
17
18 retval = robot.AuxServoSetParam(1, 10, 11, 12, 13, 14);
19 Console.WriteLine($"AuxServoSetParam is: {retval}");
20
21 retval = robot.AuxServoGetParam(1, ref servoCompany, ref servoModel, ref servoSoftVersion, ref servoResolution, ref axisMechTransRatio);
22 Console.WriteLine($"servoCompany {servoCompany}\n" +
23 $"servoModel {servoModel}\n" +
24 $"servoSoftVersion {servoSoftVersion}\n" +
25 $"servoResolution {servoResolution}\n" +
26 $"axisMechTransRatio {axisMechTransRatio}\n");
27
28 retval = robot.AuxServoSetParam(1, 1, 1, 1, 131072, 36);
29 Console.WriteLine($"AuxServoSetParam is: {retval}");
30 Thread.Sleep(3000);
31
32 robot.AuxServoSetAcc(3000, 3000);
33 robot.AuxServoSetEmergencyStopAcc(5000, 5000);
34 Thread.Sleep(1000);
35 double emagacc = 0, acc = 0;
36 double emagdec = 0, dec = 0;
37 robot.AuxServoGetEmergencyStopAcc(ref emagacc, ref emagdec);
38 Console.WriteLine($"emergency acc is {emagacc} dec is {emagdec}");
39 robot.AuxServoGetAcc(ref acc, ref dec);
40 Console.WriteLine($"acc is {acc} dec is {dec}");
41
42 robot.AuxServoSetControlMode(1, 0);
43 Thread.Sleep(2000);
44
45 retval = robot.AuxServoEnable(1, 0);
46 Console.WriteLine($"AuxServoEnable disenable {retval}");
47 Thread.Sleep(1000);
48 int servoerrcode = 0;
49 int servoErrCode = 0;
50 int servoState = 0;
51 double servoPos = 0;
52 double servoSpeed = 0;
53 double servoTorque = 0;
54 retval = robot.AuxServoGetStatus(1, ref servoErrCode, ref servoState, ref servoPos, ref servoSpeed, ref servoTorque);
55 Console.WriteLine($"AuxServoGetStatus servoState {servoState}");
56 Thread.Sleep(1000);
57
58 retval = robot.AuxServoEnable(1, 1);
59 Console.WriteLine($"AuxServoEnable enable {retval}");
60 Thread.Sleep(1000);
61 retval = robot.AuxServoGetStatus(1, ref servoErrCode, ref servoState, ref servoPos, ref servoSpeed, ref servoTorque);
62 Console.WriteLine($"AuxServoGetStatus servoState {servoState}");
63 Thread.Sleep(1000);
64
65 retval = robot.AuxServoHoming(1, 1, 5, 1);
66 Console.WriteLine($"AuxServoHoming {retval}");
67 Thread.Sleep(3000);
68
69 retval = robot.AuxServoSetTargetPos(1, 200, 30);
70 Console.WriteLine($"AuxServoSetTargetPos {retval}");
71 Thread.Sleep(1000);
72 retval = robot.AuxServoGetStatus(1, ref servoErrCode, ref servoState, ref servoPos, ref servoSpeed, ref servoTorque);
73 Console.WriteLine($"AuxServoGetStatus servoSpeed {servoSpeed}");
74 Thread.Sleep(8000);
75
76 robot.AuxServoSetControlMode(1, 1);
77 Thread.Sleep(2000);
78
79 robot.AuxServoEnable(1, 0);
80 Thread.Sleep(1000);
81 robot.AuxServoEnable(1, 1);
82 Thread.Sleep(1000);
83 robot.AuxServoSetTargetSpeed(1, 100, 80);
84
85 Thread.Sleep(5000);
86 robot.AuxServoSetTargetSpeed(1, 0, 80);
87}
13.17. Konfiguracja parametrów komunikacji UDP osi rozszerzonej
Nowe w wersji C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Konfiguracja parametrów komunikacji UDP osi rozszerzonej
3* @param [in] ip Adres IP PLC
4* @param [in] port Numer portu
5* @param [in] period Okres komunikacji (ms, domyślnie 2, nie modyfikować tego parametru)
6* @param [in] lossPkgTime Czas wykrywania utraty pakietów (ms)
7* @param [in] lossPkgNum Liczba utraconych pakietów
8* @param [in] disconnectTime Czas potwierdzenia przerwania komunikacji
9* @param [in] reconnectEnable Włączenie automatycznego ponownego łączenia po przerwaniu komunikacji 0-niewłączone 1-włączone
10* @param [in] reconnectPeriod Odstęp między próbami ponownego połączenia (ms)
11* @param [in] reconnectNum Liczba prób ponownego połączenia
12* @param [in] selfConnect Czy automatycznie nawiązywać połączenie po ponownym uruchomieniu z wyłączeniem zasilania; 0-nienawiązuj połączenia; 1-nawiąż połączenie
13* @return Kod błędu
14*/
15int ExtDevSetUDPComParam(std::string ip, int port, int period, int lossPkgTime, int lossPkgNum, int disconnectTime, int reconnectEnable, int reconnectPeriod, int reconnectNum, int selfConnect);
13.18. Pobranie parametrów komunikacji UDP osi rozszerzonej
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Pobiera parametry komunikacji UDP osi rozszerzonej
3* @param [out] ip Adres IP PLC
4* @param [out] port Numer portu
5* @param [out] period Okres komunikacji (ms, domyślnie 2, nie modyfikować tego parametru)
6* @param [out] lossPkgTime Czas wykrywania utraty pakietów (ms)
7* @param [out] lossPkgNum Liczba utraconych pakietów
8* @param [out] disconnectTime Czas potwierdzenia przerwania komunikacji
9* @param [out] reconnectEnable Włączenie automatycznego ponownego łączenia po przerwaniu komunikacji 0-niewłączone 1-włączone
10* @param [out] reconnectPeriod Odstęp między próbami ponownego połączenia (ms)
11* @param [out] reconnectNum Liczba prób ponownego połączenia
12* @param [out] selfConnect Czy automatycznie ponownie łączyć po ponownym uruchomieniu skrzynki sterowniczej; 0-nie łącz; 1-łącz
13* @return Kod błędu
14*/
15public int ExtDevGetUDPComParam(ref string ip, ref int port, ref int period, ref int lossPkgTime, ref int lossPkgNum, ref int disconnectTime, ref int reconnectEnable, ref int reconnectPeriod, ref int reconnectNum, ref int selfConnect)
13.19. Ładowanie komunikacji UDP
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Ładuje komunikację UDP
3* @return Kod błędu
4*/
5int ExtDevLoadUDPDriver();
13.20. Rozładowanie komunikacji UDP
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Rozładowuje komunikację UDP
3* @return Kod błędu
4*/
5int ExtDevUnloadUDPDriver();
13.21. Przywrócenie połączenia po przerwaniu komunikacji UDP osi rozszerzonej
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Przywraca połączenie po przerwaniu komunikacji UDP osi rozszerzonej
3* @return Kod błędu
4*/
5int ExtDevUDPClientComReset();
13.22. Zamknięcie komunikacji po przerwaniu komunikacji UDP osi rozszerzonej
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Zamyka komunikację po przerwaniu komunikacji UDP osi rozszerzonej
3* @return Kod błędu
4*/
5int ExtDevUDPClientComClose();
13.23. Konfiguracja parametrów UDP osi rozszerzonej
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Konfiguracja parametrów UDP osi rozszerzonej
3* @param [in] axisID Numer osi
4* @param [in] axisType Typ osi rozszerzonej 0-przesuw; 1-obrót
5* @param [in] axisDirection Kierunek osi rozszerzonej 0-dodatni; 1-ujemny
6* @param [in] axisMax Maksymalna pozycja osi rozszerzonej mm
7* @param [in] axisMin Minimalna pozycja osi rozszerzonej mm
8* @param [in] axisVel Prędkość mm/s
9* @param [in] axisAcc Przyspieszenie mm/s²
10* @param [in] axisLead Skok mm
11* @param [in] encResolution Rozdzielczość enkodera
12* @param [in] axisOffect Przesunięcie osi rozszerzonej punktu początkowego spoiny
13* @param [in] axisCompany Producent napędu 1-Hochuan; 2-Inovance; 3-Panasonic
14* @param [in] axisModel Model napędu 1-Hochuan-SV-XD3EA040L-E, 2-Hochuan-SV-X2EA150A-A, 1-Inovance-SV620PT5R4I, 1-Panasonic-MADLN15SG, 2-Panasonic-MSDLN25SG, 3-Panasonic-MCDLN35SG
15* @param [in] axisEncType Typ enkodera 0-inkrementalny; 1-absolutny
16* @return Kod błędu
17*/
18int ExtAxisParamConfig(int axisID, int axisType, int axisDirection, double axisMax, double axisMin, double axisVel, double axisAcc, double axisLead, long encResolution, double axisOffect, int axisCompany, int axisModel, int axisEncType);
13.24. Pobranie parametrów UDP osi rozszerzonej
1/**
2* @brief Pobranie parametrów UDP osi rozszerzonej
3* @param [in] axisID Numer osi rozszerzonej [1-4]
4* @param [out] axisType Typ osi rozszerzonej 0-przesuw; 1-obrót
5* @param [out] axisDirection Kierunek osi rozszerzonej 0-dodatni; 1-ujemny
6* @param [out] axisMax Maksymalna pozycja osi rozszerzonej mm
7* @param [out] axisMin Minimalna pozycja osi rozszerzonej mm
8* @param [out] axisVel Prędkość mm/s
9* @param [out] axisAcc Przyspieszenie mm/s²
10* @param [out] axisLead Skok mm
11* @param [out] encResolution Rozdzielczość enkodera
12* @param [out] axisOffect Przesunięcie osi rozszerzonej punktu początkowego spoiny
13* @param [out] axisCompany Producent napędu 1-Hochuan; 2-Inovance; 3-Panasonic
14* @param [out] axisModel Model napędu 1-Hochuan-SV-XD3EA040L-E, 2-Hochuan-SV-X2EA150A-A, 1-Inovance-SV620PT5R4I, 1-Panasonic-MADLN15SG, 2-Panasonic-MSDLN25SG, 3-Panasonic-MCDLN35SG
15* @param [out] axisEncType Typ enkodera 0-inkrementalny; 1-absolutny
16* @return Kod błędu
17*/
18public int ExtAxisGetParamConfig(int axisID, ref int axisType, ref int axisDirection, ref double axisMax, ref double axisMin, ref double axisVel, ref double axisAcc, ref double axisLead, ref int encResolution, ref double axisOffect, ref int axisCompany, ref int axisModel, ref int axisEncType)
13.25. Ustawienie pozycji instalacji osi rozszerzonej
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Ustawia pozycję instalacji osi rozszerzonej
3* @param [in] installType 0-robot zainstalowany na zewnętrznej osi, 1-robot zainstalowany poza zewnętrzną osią
4* @return Kod błędu
5*/
6int SetRobotPosToAxis(int installType);
13.26. Konfiguracja parametrów DH systemu osi rozszerzonej
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Konfiguracja parametrów DH systemu osi rozszerzonej
3* @param [in] axisConfig Konfiguracja zewnętrznej osi, 0-prosta szyna przesuwna o jednym stopniu swobody, 1-pozycjoner L o dwóch stopniach swobody, 2-trzech stopniach, 3-czterech stopniach, 4-pozycjoner o jednym stopniu swobody
4* @param [in] axisDHd1 Parametr DH zewnętrznej osi d1 mm
5* @param [in] axisDHd2 Parametr DH zewnętrznej osi d2 mm
6* @param [in] axisDHd3 Parametr DH zewnętrznej osi d3 mm
7* @param [in] axisDHd4 Parametr DH zewnętrznej osi d4 mm
8* @param [in] axisDHa1 Parametr DH zewnętrznej osi a1 mm
9* @param [in] axisDHa2 Parametr DH zewnętrznej osi a2 mm
10* @param [in] axisDHa3 Parametr DH zewnętrznej osi a3 mm
11* @param [in] axisDHa4 Parametr DH zewnętrznej osi a4 mm
12* @return Kod błędu
13*/
14int SetAxisDHParaConfig(int axisConfig, double axisDHd1, double axisDHd2, double axisDHd3, double axisDHd4, double axisDHa1, double axisDHa2, double axisDHa3, double axisDHa4);
13.27. Załączenie UDP osi rozszerzonej
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Załączenie UDP osi rozszerzonej
3* @param [in] axisID Numer osi [1-4]
4* @param [in] status 0-odłączenie; 1-załączenie
5* @return Kod błędu
6*/
7int ExtAxisServoOn(int axisID, int status);
13.28. Powrót do zera UDP osi rozszerzonej
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Powrót do zera UDP osi rozszerzonej
3* @param [in] axisID Numer osi [1-4]
4* @param [in] mode Sposób powrotu do zera 0-powrót do zera z bieżącej pozycji, 1-powrót do zera z ogranicznikiem ujemnym, 2-powrót do zera z ogranicznikiem dodatnim
5* @param [in] searchVel Prędkość poszukiwania zera (mm/s)
6* @param [in] latchVel Prędkość pozycjonowania w zerze (mm/s)
7* @return Kod błędu
8*/
9int ExtAxisSetHoming(int axisID, int mode, double searchVel, double latchVel);
13.29. Rozpoczęcie punktowania UDP osi rozszerzonej
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Rozpoczęcie punktowania UDP osi rozszerzonej
3* @param [in] axisID Numer osi [1-4]
4* @param [in] direction Kierunek obrotu 0-wsteczny; 1-do przodu
5* @param [in] vel Prędkość (mm/s)
6* @param [in] acc Przyspieszenie (mm/s²)
7* @param [in] maxDistance Maksymalna odległość punktowania
8* @return Kod błędu
9*/
10int ExtAxisStartJog(int axisID, int direction, double vel, double acc, double maxDistance);
13.30. Zatrzymanie punktowania UDP osi rozszerzonej
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Zatrzymanie punktowania UDP osi rozszerzonej
3* @param [in] axisID Numer osi [1-4]
4* @return Kod błędu
5*/
6int ExtAxisStopJog(int axisID);
13.31. Przykład kodu konfiguracji i punktowania UDP osi rozszerzonej
1private void button65_Click(object sender, EventArgs e)
2{
3 int rtn = robot.ExtDevSetUDPComParam("192.168.58.88", 2021, 2, 100, 3, 200, 1, 100, 5, 1);
4 Console.WriteLine("ExtDevSetUDPComParam rtn is " + rtn);
5 string ip = ""; int port = 0; int period = 0; int lossPkgTime = 0; int lossPkgNum = 0; int disconnectTime = 0; int reconnectEnable = 0; int reconnectPeriod = 0; int reconnectNum = 0; int selfConnect = 0;
6 rtn = robot.ExtDevGetUDPComParam(ref ip, ref port, ref period, ref lossPkgTime, ref lossPkgNum, ref disconnectTime, ref reconnectEnable, ref reconnectPeriod, ref reconnectNum, ref selfConnect);
7 string param = "\nip " + ip + "\nport " + port.ToString() + "\nperiod " + period.ToString() + "\nlossPkgTime " + lossPkgTime.ToString() + "\nlossPkgNum " + lossPkgNum.ToString() + "\ndisConntime " + disconnectTime.ToString() + "\nreconnecable " + reconnectEnable.ToString() + "\nreconnperiod " + reconnectPeriod.ToString() + "\nreconnnun " + reconnectNum.ToString() + "\nselfConnect " + selfConnect.ToString();
8 Console.WriteLine("ExtDevGetUDPComParam rtn is " + rtn + param);
9
10 robot.ExtDevLoadUDPDriver();
11
12 rtn = robot.ExtAxisServoOn(1, 1);
13 Console.WriteLine("ExtAxisServoOn axis id 1 rtn is " + rtn);
14 rtn = robot.ExtAxisServoOn(2, 1);
15 Console.WriteLine("ExtAxisServoOn axis id 2 rtn is " + rtn);
16 Thread.Sleep(2000);
17
18 rtn = robot.ExtAxisSetHoming(1, 0, 10, 2);
19 Console.WriteLine("ExtAxisSetHoming 1 rtnn is " + rtn);
20 Thread.Sleep(2000);
21 rtn = robot.ExtAxisSetHoming(2, 0, 10, 2);
22 Console.WriteLine("ExtAxisSetHoming 2 rtnn is " + rtn);
23
24 Thread.Sleep(4000);
25
26 rtn = robot.SetRobotPosToAxis(1);
27 Console.WriteLine("SetRobotPosToAxis rtn is " + rtn);
28 rtn = robot.SetAxisDHParaConfig(10, 20, 0, 0, 0, 0, 0, 0, 0);
29 Console.WriteLine("SetAxisDHParaConfig rtn is " + rtn);
30
31
32 int axisType = -1;
33 int axisDirection = -1;
34 double axisMax = -1;
35 double axisMin = -1;
36 double axisVel = -1;
37 double axisAcc = -1;
38 double axisLead = -1;
39 int encResolution = -1;
40 double axisOffect = -1;
41 int axisCompany = -1;
42 int axisModel = -1;
43 int axisEncType = -1;
44
45 rtn = robot.ExtAxisParamConfig(1, 1, 1, 1000, -1000, 1000, 1000, 1.905f, 262144, 200, 1, 0, 0);
46 Console.WriteLine("ExtAxisParamConfig axis 1 rtn is " + rtn);
47 rtn = robot.ExtAxisGetParamConfig(1, ref axisType, ref axisDirection, ref axisMax, ref axisMin, ref axisVel, ref axisAcc, ref axisLead, ref encResolution, ref axisOffect, ref axisCompany, ref axisModel, ref axisEncType);
48 Console.WriteLine($"axis id 1 ExtAxisGetParamConfig : axisType {axisType}, axisDirection {axisDirection}, axisMax {axisMax}, axisMin {axisMin}, axisVel {axisVel}, axisAcc {axisAcc}, axisLead {axisLead}, encResolution {encResolution}, axisOffect {axisOffect}, axisCompany {axisCompany}, axisModel {axisModel}, axisEncType {axisEncType}\n");
49
50
51 rtn = robot.ExtAxisParamConfig(2, 1, 1, 1000, -1000, 1000, 1000, 4.444f, 262144, 200, 1, 0, 0);
52 Console.WriteLine("ExtAxisParamConfig axis 2 rtn is " + rtn);
53 rtn = robot.ExtAxisGetParamConfig(2, ref axisType, ref axisDirection, ref axisMax, ref axisMin, ref axisVel, ref axisAcc, ref axisLead, ref encResolution, ref axisOffect, ref axisCompany, ref axisModel, ref axisEncType);
54 Console.WriteLine($"axis id 2 ExtAxisGetParamConfig : axisType {axisType}, axisDirection {axisDirection}, axisMax {axisMax}, axisMin {axisMin}, axisVel {axisVel}, axisAcc {axisAcc}, axisLead {axisLead}, encResolution {encResolution}, axisOffect {axisOffect}, axisCompany {axisCompany}, axisModel {axisModel}, axisEncType {axisEncType}\n");
55
56
57 Thread.Sleep(3000);
58 robot.ExtAxisStartJog(1, 0, 10, 10, 30);
59 Thread.Sleep(1000);
60 robot.ExtAxisStopJog(1);
61 Thread.Sleep(3000);
62 robot.ExtAxisServoOn(1, 0);
63
64 Thread.Sleep(3000);
65 robot.ExtAxisStartJog(2, 0, 10, 10, 30);
66 Thread.Sleep(1000);
67 robot.ExtAxisStopJog(2);
68 Thread.Sleep(3000);
69 robot.ExtAxisServoOn(2, 0);
70 Thread.Sleep(3000);
71 robot.ExtDevUnloadUDPDriver();
72}
13.32. Ustawienie punktu odniesienia układu współrzędnych osi rozszerzonej - metoda czteropunktowa
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Ustawia punkt odniesienia układu współrzędnych osi rozszerzonej - metoda czteropunktowa
3* @param [in] pointNum Numer punktu [1-4]
4* @return Kod błędu
5*/
6int ExtAxisSetRefPoint(int pointNum);
13.33. Obliczenie układu współrzędnych osi rozszerzonej - metoda czteropunktowa
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Oblicza układ współrzędnych osi rozszerzonej - metoda czteropunktowa
3* @param [out] coord Wartości układu współrzędnych
4* @return Kod błędu
5*/
6int ExtAxisComputeECoordSys(DescPose& coord);
13.34. Zastosowanie układu współrzędnych osi rozszerzonej
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Zastosowanie układu współrzędnych osi rozszerzonej
3* @param [in] applyAxisId Numer osi rozszerzonej bit0-bit3 odpowiada numerom osi rozszerzonej 1-4, np. zastosowanie osi rozszerzonej 1 i 3 to 0b 0000 0101, czyli 5
4* @param [in] axisCoordNum Numer układu współrzędnych osi rozszerzonej
5* @param [in] coord Wartości układu współrzędnych
6* @param [in] calibFlag Znacznik kalibracji 0-nie, 1-tak
7* @return Kod błędu
8*/
9int ExtAxisActiveECoordSys(int applyAxisId, int axisCoordNum, DescPose coord, int calibFlag);
13.35. Ustawienie pozycji punktu odniesienia kalibracji w układzie współrzędnych końcówki pozycjonera
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Ustawia pozycję punktu odniesienia kalibracji w układzie współrzędnych końcówki pozycjonera
3* @param [in] pos Wartości pozycji i orientacji
4* @return Kod błędu
5*/
6int SetRefPointInExAxisEnd(DescPose pos);
13.36. Ustawienie punktu odniesienia układu współrzędnych pozycjonera
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Ustawienie punktu odniesienia układu współrzędnych pozycjonera
3* @param [in] pointNum Numer punktu [1-4]
4* @return Kod błędu
5*/
6int PositionorSetRefPoint(int pointNum);
13.37. Obliczenie układu współrzędnych pozycjonera - metoda czteropunktowa
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Obliczenie układu współrzędnych pozycjonera - metoda czteropunktowa
3* @param [out] coord Wartości układu współrzędnych
4* @return Kod błędu
5*/
6int PositionorComputeECoordSys(DescPose& coord);
13.38. Pobranie układu współrzędnych osi rozszerzonej
Nowe w wersji C#SDK-V1.1.3: Web-3.8.2
1/**
2* @brief Pobiera układ współrzędnych osi rozszerzonej
3* @param [out] coord Układ współrzędnych osi rozszerzonej
4* @return Kod błędu
5*/
6int ExtAxisGetCoord(ref DescPose coord);
13.39. Przykład kodu kalibracji układu współrzędnych osi rozszerzonej
Nowe w wersji C#SDK-V1.1.3: Web-3.8.2
1private void button66_Click(object sender, EventArgs e)
2{
3 int rtn = robot.ExtDevSetUDPComParam("192.168.58.88", 2021, 2, 100, 3, 200, 1, 100, 5,1);
4 Console.WriteLine("ExtDevSetUDPComParam rtn is " + rtn);
5 string ip = ""; int port = 0; int period = 0; int lossPkgTime = 0; int lossPkgNum = 0; int disconnectTime = 0; int reconnectEnable = 0; int reconnectPeriod = 0; int reconnectNum = 0;
6 rtn = robot.ExtDevGetUDPComParam(ref ip, ref port, ref period, ref lossPkgTime, ref lossPkgNum, ref disconnectTime, ref reconnectEnable, ref reconnectPeriod, ref reconnectNum);
7 string param = "\nip " + ip + "\nport " + port.ToString() + "\nperiod " + period.ToString() + "\nlossPkgTime " + lossPkgTime.ToString() + "\nlossPkgNum " + lossPkgNum.ToString() + "\ndisConntime " + disconnectTime.ToString() + "\nreconnecable " + reconnectEnable.ToString() + "\nreconnperiod " + reconnectPeriod.ToString() + "\nreconnnun " + reconnectNum.ToString();
8 Console.WriteLine("ExtDevGetUDPComParam rtn is " + rtn + param);
9
10 robot.ExtDevLoadUDPDriver();
11
12 rtn = robot.ExtAxisServoOn(1, 1);
13 Console.WriteLine("ExtAxisServoOn axis id 1 rtn is " + rtn);
14 rtn = robot.ExtAxisServoOn(2, 1);
15 Console.WriteLine("ExtAxisServoOn axis id 2 rtn is " + rtn);
16 Thread.Sleep(2000);
17
18 robot.ExtAxisSetHoming(1, 0, 10, 2);
19 Thread.Sleep(2000);
20 rtn = robot.ExtAxisSetHoming(2, 0, 10, 2);
21 Console.WriteLine("ExtAxisSetHoming rtnn is " + rtn);
22
23 Thread.Sleep(4000);
24
25 rtn = robot.SetRobotPosToAxis(1);
26 Console.WriteLine("SetRobotPosToAxis rtn is " + rtn);
27 rtn = robot.SetAxisDHParaConfig(1, 128.5f, 206.4f, 0, 0, 0, 0, 0, 0);
28 Console.WriteLine("SetAxisDHParaConfig rtn is " + rtn);
29 rtn = robot.ExtAxisParamConfig(1, 1, 1, 1000, -1000, 1000, 1000, 1.905f, 262144, 200, 1, 0, 0);
30 Console.WriteLine("ExtAxisParamConfig axis 1 rtn is " + rtn);
31 rtn = robot.ExtAxisParamConfig(2, 1, 1, 1000, -1000, 1000, 1000, 4.444f, 262144, 200, 1, 0, 0);
32 Console.WriteLine("ExtAxisParamConfig axis 1 rtn is " + rtn);
33
34 DescPose toolCoord = new DescPose(0, 0, 210, 0, 0, 0);
35 robot.SetToolCoord(1, toolCoord, 0, 0, 1, 0);
36
37 JointPos jSafe = new JointPos(115.193f, -96.149f, 92.489f, -87.068f, -89.15f, -83.488f);
38 JointPos j1 = new JointPos(117.559f, -92.624f, 100.329f, -96.909f, -94.057f, -83.488f);
39 JointPos j2 = new JointPos(112.239f, -90.096f, 99.282f, -95.909f, -89.824f, -83.488f);
40 JointPos j3 = new JointPos(110.839f, -83.473f, 93.166f, -89.22f, -90.499f, -83.487f);
41 JointPos j4 = new JointPos(107.935f, -83.572f, 95.424f, -92.873f, -87.933f, -83.488f);
42
43 DescPose descSafe = new DescPose();
44 DescPose desc1 = new DescPose();
45 DescPose desc2 = new DescPose();
46 DescPose desc3 = new DescPose();
47 DescPose desc4 = new DescPose();
48 ExaxisPos exaxisPos = new ExaxisPos(0, 0, 0, 0);
49 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
50
51 robot.GetForwardKin( jSafe, ref descSafe);
52 robot.MoveJ( jSafe, descSafe, 1, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
53 Thread.Sleep(2000);
54
55 robot.GetForwardKin( j1, ref desc1);
56 robot.MoveJ( j1, desc1, 1, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
57 Thread.Sleep(2000);
58
59 DescPose actualTCPPos = new DescPose();
60 robot.GetActualTCPPose(0, ref actualTCPPos);
61 robot.SetRefPointInExAxisEnd(actualTCPPos);
62 rtn = robot.PositionorSetRefPoint(1);
63 Console.WriteLine("PositionorSetRefPoint 1 rtn is " + rtn);
64 Thread.Sleep(2000);
65
66 robot.MoveJ( jSafe, descSafe, 1, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
67 robot.ExtAxisStartJog(1, 0, 50, 50, 10);
68 Thread.Sleep(1000);
69 robot.ExtAxisStartJog(2, 0, 50, 50, 10);
70 Thread.Sleep(1000);
71 robot.GetForwardKin( j2, ref desc2);
72 rtn = robot.MoveJ( j2, desc2, 1, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
73 rtn = robot.PositionorSetRefPoint(2);
74 Console.WriteLine("PositionorSetRefPoint 2 rtn is " + rtn);
75 Thread.Sleep(2000);
76
77 robot.MoveJ( jSafe, descSafe, 1, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
78 robot.ExtAxisStartJog(1, 0, 50, 50, 10);
79 Thread.Sleep(1000);
80 robot.ExtAxisStartJog(2, 0, 50, 50, 10);
81 Thread.Sleep(1000);
82 robot.GetForwardKin( j3, ref desc3);
83 robot.MoveJ( j3, desc3, 1, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
84 rtn = robot.PositionorSetRefPoint(3);
85 Console.WriteLine("PositionorSetRefPoint 3 rtn is " + rtn);
86 Thread.Sleep(2000);
87
88 robot.MoveJ( jSafe, descSafe, 1, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
89 robot.ExtAxisStartJog(1, 0, 50, 50, 10);
90 Thread.Sleep(1000);
91 robot.ExtAxisStartJog(2, 0, 50, 50, 10);
92 Thread.Sleep(1000);
93 robot.GetForwardKin(j4, ref desc4);
94 robot.MoveJ(j4, desc4, 1, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
95 rtn = robot.PositionorSetRefPoint(4);
96 Console.WriteLine("PositionorSetRefPoint 4 rtn is " + rtn);
97 Thread.Sleep(2000);
98
99 DescPose axisCoord = new DescPose();
100 robot.PositionorComputeECoordSys(ref axisCoord);
101 robot.MoveJ(jSafe, descSafe, 1, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
102 Console.WriteLine("PositionorComputeECoordSys rtn is {0} {1} {2} {3} {4} {5}", axisCoord.tran.x, axisCoord.tran.y, axisCoord.tran.z, axisCoord.rpy.rx, axisCoord.rpy.ry, axisCoord.rpy.rz);
103 rtn = robot.ExtAxisActiveECoordSys(3, 1, axisCoord, 1);
104 Console.WriteLine("ExtAxisActiveECoordSys rtn is " + rtn);
105}
13.40. Ruch UDP osi rozszerzonej
Nowe w wersji C#SDK-V1.1.5: Web-3.8.4
1/**
2* @brief Ruch UDP osi rozszerzonej
3* @param [in] pos Pozycja docelowa
4* @param [in] ovl Procent prędkości
5* @param [in] blend Parametr wygładzenia (mm lub ms)
6* @return Kod błędu
7*/
8int ExtAxisMove(ExaxisPos pos, double ovl, double blend=-1);
13.41. Przykład kodu ruchu UDP osi rozszerzonej
1private void button66_Click(object sender, EventArgs e)
2{
3 ExaxisPos axisPos;
4 axisPos.ePos[0] = 20;
5 axisPos.ePos[1] = 0;
6 axisPos.ePos[2] = 0;
7 axisPos.ePos[3] = 0;
8 robot.ExtAxisMove(axisPos, 50);
9}
13.42. Ruch synchroniczny UDP osi rozszerzonej z ruchem stawowym robota
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Ruch synchroniczny UDP osi rozszerzonej z ruchem stawowym robota
3* @param [in] joint_pos Docelowa pozycja stawów, jednostka deg
4* @param [in] desc_pos Docelowa pozycja i orientacja kartezjańska
5* @param [in] tool Numer układu współrzędnych narzędzia, zakres [0~14]
6* @param [in] user Numer układu współrzędnych przedmiotu, zakres [0~14]
7* @param [in] vel Procent prędkości, zakres [0~100]
8* @param [in] acc Procent przyspieszenia, zakres [0~100], tymczasowo nieudostępnione
9* @param [in] ovl Współczynnik skalowania prędkości, zakres [0~100]
10* @param [in] epos Pozycja osi rozszerzonej, jednostka mm
11* @param [in] blendT [-1.0]-ruch do pozycji (blokujący), [0~500.0]-czas wygładzenia (nieblokujący), jednostka ms
12* @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
13* @param [in] offset_pos Wartość przesunięcia pozycji i orientacji
14* @return Kod błędu
15*/
16int ExtAxisSyncMoveJ(JointPos joint_pos, DescPose desc_pos, int tool, int user, float vel, float acc, float ovl, ExaxisPos epos, float blendT, byte offset_flag, DescPose offset_pos);
13.43. Przykład kodu
1private void btnSyncMoveJ_Click(object sender, EventArgs e)
2{
3 Robot robot = new Robot();
4 robot.RPC("192.168.58.2");
5
6 //1. Kalibracja i zastosowanie układu współrzędnych narzędzia robota. Możesz użyć metody czteropunktowej lub sześciopunktowej do kalibracji i zastosowania układu współrzędnych narzędzia. Interfejsy związane z kalibracją układu współrzędnych narzędzia są następujące:
7 // int SetToolPoint(int point_num); // Ustawienie punktu odniesienia narzędzia - metoda sześciopunktowa
8 // int ComputeTool(ref DescPose tcp_pose); // Obliczenie układu współrzędnych narzędzia
9 // int SetTcp4RefPoint(int point_num); // Ustawienie punktu odniesienia narzędzia - metoda czteropunktowa
10 // int ComputeTcp4(ref DescPose tcp_pose); // Obliczenie układu współrzędnych narzędzia - metoda czteropunktowa
11 // int SetToolCoord(int id, DescPose coord, int type, int install); // Ustawienie i zastosowanie układu współrzędnych narzędzia
12 // int SetToolList(int id, DescPose coord, int type, int install); // Ustawienie listy układów współrzędnych narzędzia
13
14 //2. Ustawienie parametrów komunikacji UDP i załadowanie komunikacji UDP
15 robot.ExtDevSetUDPComParam("192.168.58.88", 2021, 2, 100, 3, 100, 1, 100, 10);
16 robot.ExtDevLoadUDPDriver();
17
18 //3. Ustawienie parametrów osi rozszerzonej, w tym typu osi rozszerzonej, parametrów napędu osi rozszerzonej, parametrów DH osi rozszerzonej
19 robot.SetAxisDHParaConfig(4, 200, 200, 0, 0, 0, 0, 0, 0); // Pozycjoner jednoosiowy i parametry DH
20 robot.SetRobotPosToAxis(1); // Pozycja instalacji osi rozszerzonej
21 robot.ExtAxisParamConfig(1, 0, 1, 100, -100, 10, 10, 12, 131072, 0, 1, 0, 0); // Parametry napędu, w tym przykładzie dla pozycjonera jednoosiowego, wystarczy ustawić parametry jednego napędu. Jeśli wybierzesz typ osi rozszerzonej zawierający wiele osi, musisz ustawić parametry napędu dla każdej osi.
22
23 //4. Załączenie wybranej osi, powrót do zera
24 robot.ExtAxisServoOn(1, 0);
25 robot.ExtAxisSetHoming(1, 0, 20, 3);
26
27 //5. Kalibracja układu współrzędnych osi rozszerzonej i zastosowanie (uwaga: interfejsy kalibracji dla pozycjonera i szyny przesuwnej są różne, poniżej przedstawiono interfejsy dla pozycjonera)
28 DescPose pos = new DescPose(/* Wprowadź współrzędne swojego punktu kalibracji */);
29 robot.SetRefPointInExAxisEnd(pos);
30 robot.PositionorSetRefPoint(1); /* Musisz skalibrować oś rozszerzoną za pomocą czterech punktów w różnych pozycjach, więc musisz wywołać ten interfejs 4 razy, aby zakończyć kalibrację */
31 DescPose coord = new DescPose( );
32 robot.PositionorComputeECoordSys(ref coord); // Obliczenie wyniku kalibracji osi rozszerzonej
33 robot.ExtAxisActiveECoordSys(1, 1, coord, 1); // Zastosowanie wyniku kalibracji do układu współrzędnych osi rozszerzonej
34
35 //6. Kalibracja układu współrzędnych przedmiotu na osi rozszerzonej, będziesz potrzebować następujących interfejsów
36 //int SetWObjCoordPoint(int point_num);
37 //int ComputeWObjCoord(int method, ref DescPose wobj_pose);
38 //int SetWObjCoord(int id, DescPose coord);
39 //int SetWObjList(int id, DescPose coord);
40
41 //7. Zapisz punkt początkowy ruchu synchronicznego stawów
42 DescPose startdescPose = new DescPose(/*Wprowadź swoje współrzędne*/);
43 JointPos startjointPos = new JointPos(/*Wprowadź swoje współrzędne*/);
44 ExaxisPos startexaxisPos = new ExaxisPos(/* Wprowadź współrzędne punktu początkowego osi rozszerzonej */);
45
46 //8. Zapisz współrzędne punktu końcowego ruchu synchronicznego stawów
47 DescPose enddescPose = new DescPose(/*Wprowadź swoje współrzędne*/);
48 JointPos endjointPos = new JointPos(/*Wprowadź swoje współrzędne*/);
49 ExaxisPos endexaxisPos = new ExaxisPos(/* Wprowadź współrzędne punktu końcowego osi rozszerzonej */);
50
51 //9. Napisz program ruchu synchronicznego
52 // Ruch do punktu początkowego, zakładając, że zastosowany układ współrzędnych narzędzia i przedmiotu to 1
53 robot.ExtAxisMove(startexaxisPos, 20);
54 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
55 robot.MoveJ(startjointPos, startdescPose, 1, 1, 100, 100, 100, startexaxisPos, 0, 0, offdese);
56
57 // Rozpocznij ruch synchroniczny
58 robot.ExtAxisSyncMoveJ(endjointPos, enddescPose, 1, 1, 100, 100, 100, endexaxisPos, -1, 0, offdese);
59}
13.44. Ruch synchroniczny UDP osi rozszerzonej z ruchem liniowym robota
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Ruch synchroniczny UDP osi rozszerzonej z ruchem liniowym robota
3* @param [in] joint_pos Docelowa pozycja stawów, jednostka deg
4* @param [in] desc_pos Docelowa pozycja i orientacja kartezjańska
5* @param [in] tool Numer układu współrzędnych narzędzia, zakres [0~14]
6* @param [in] user Numer układu współrzędnych przedmiotu, zakres [0~14]
7* @param [in] vel Procent prędkości, zakres [0~100]
8* @param [in] acc Procent przyspieszenia, zakres [0~100], tymczasowo nieudostępnione
9* @param [in] ovl Współczynnik skalowania prędkości, zakres [0~100]
10* @param [in] blendR [-1.0]-ruch do pozycji (blokujący), [0~1000.0]-promień wygładzenia (nieblokujący), jednostka mm
11* @param [in] epos Pozycja osi rozszerzonej, jednostka mm
12* @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
13* @param [in] offset_pos Wartość przesunięcia pozycji i orientacji
14* @return Kod błędu
15*/
16int ExtAxisSyncMoveL(JointPos joint_pos, DescPose desc_pos, int tool, int user, float vel, float acc, float ovl, float blendR, ExaxisPos epos, int offset_flag, DescPose offset_pos);
13.45. Przykład kodu
1private void btnSyncMoveL_Click(object sender, EventArgs e)
2{
3 Robot robot = new Robot();
4 robot.RPC("192.168.58.2");
5
6//1. Kalibracja i zastosowanie układu współrzędnych narzędzia robota. Możesz użyć metody czteropunktowej lub sześciopunktowej do kalibracji i zastosowania układu współrzędnych narzędzia. Interfejsy związane z kalibracją układu współrzędnych narzędzia są następujące:
7 // int SetToolPoint(int point_num); // Ustawienie punktu odniesienia narzędzia - metoda sześciopunktowa
8 // int ComputeTool(ref DescPose tcp_pose); // Obliczenie układu współrzędnych narzędzia
9 // int SetTcp4RefPoint(int point_num); // Ustawienie punktu odniesienia narzędzia - metoda czteropunktowa
10 // int ComputeTcp4(ref DescPose tcp_pose); // Obliczenie układu współrzędnych narzędzia - metoda czteropunktowa
11 // int SetToolCoord(int id, DescPose coord, int type, int install); // Ustawienie i zastosowanie układu współrzędnych narzędzia
12 // int SetToolList(int id, DescPose coord, int type, int install); // Ustawienie listy układów współrzędnych narzędzia
13
14 //2. Ustawienie parametrów komunikacji UDP i załadowanie komunikacji UDP
15 robot.ExtDevSetUDPComParam("192.168.58.88", 2021, 2, 100, 3, 100, 1, 100, 10);
16 robot.ExtDevLoadUDPDriver();
17
18 //3. Ustawienie parametrów osi rozszerzonej, w tym typu osi rozszerzonej, parametrów napędu osi rozszerzonej, parametrów DH osi rozszerzonej
19 robot.SetAxisDHParaConfig(4, 200, 200, 0, 0, 0, 0, 0, 0); // Pozycjoner jednoosiowy i parametry DH
20 robot.SetRobotPosToAxis(1); // Pozycja instalacji osi rozszerzonej
21 robot.ExtAxisParamConfig(1, 0, 1, 100, -100, 10, 10, 12, 131072, 0, 1, 0, 0); // Parametry napędu, w tym przykładzie dla pozycjonera jednoosiowego, wystarczy ustawić parametry jednego napędu. Jeśli wybierzesz typ osi rozszerzonej zawierający wiele osi, musisz ustawić parametry napędu dla każdej osi.
22
23 //4. Załączenie wybranej osi, powrót do zera
24 robot.ExtAxisServoOn(1, 0);
25 robot.ExtAxisSetHoming(1, 0, 20, 3);
26
27 //5. Kalibracja układu współrzędnych osi rozszerzonej i zastosowanie
28 DescPose pos = new DescPose(/* Wprowadź współrzędne swojego punktu kalibracji */);
29 robot.SetRefPointInExAxisEnd(pos);
30 robot.PositionorSetRefPoint(1); /* Musisz skalibrować oś rozszerzoną za pomocą czterech punktów w różnych pozycjach, więc musisz wywołać ten interfejs 4 razy, aby zakończyć kalibrację */
31 DescPose coord = new DescPose();
32 robot.PositionorComputeECoordSys(ref coord); // Obliczenie wyniku kalibracji osi rozszerzonej
33 robot.ExtAxisActiveECoordSys(1, 1, coord, 1); // Zastosowanie wyniku kalibracji do układu współrzędnych osi rozszerzonej
34
35 //6. Kalibracja układu współrzędnych przedmiotu na osi rozszerzonej, będziesz potrzebować następujących interfejsów
36 //int SetWObjCoordPoint(int point_num);
37 //int ComputeWObjCoord(int method, ref DescPose wobj_pose);
38 //int SetWObjCoord(int id, DescPose coord);
39 //int SetWObjList(int id, DescPose coord);
40
41 //7. Zapisz punkt początkowy ruchu synchronicznego liniowego
42 DescPose startdescPose = new DescPose(/*Wprowadź swoje współrzędne*/);
43 JointPos startjointPos = new JointPos(/*Wprowadź swoje współrzędne*/);
44 ExaxisPos startexaxisPos = new ExaxisPos(/* Wprowadź współrzędne punktu początkowego osi rozszerzonej */);
45
46 //8. Zapisz współrzędne punktu końcowego ruchu synchronicznego liniowego
47 DescPose enddescPose = new DescPose(/*Wprowadź swoje współrzędne*/);
48 JointPos endjointPos = new JointPos(/*Wprowadź swoje współrzędne*/);
49 ExaxisPos endexaxisPos = new ExaxisPos(/* Wprowadź współrzędne punktu końcowego osi rozszerzonej */);
50
51 //9. Napisz program ruchu synchronicznego
52 // Ruch do punktu początkowego, zakładając, że zastosowany układ współrzędnych narzędzia i przedmiotu to 1
53 robot.ExtAxisMove(startexaxisPos, 20);
54 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
55 robot.MoveJ(startjointPos, startdescPose, 1, 1, 100, 100, 100, startexaxisPos, 0, 0, offdese);
56
57 // Rozpocznij ruch synchroniczny
58 robot.ExtAxisSyncMoveL(endjointPos, enddescPose, 1, 1, 100, 100, 100, 0, endexaxisPos, 0, offdese);
59}
13.46. Ruch synchroniczny UDP osi rozszerzonej z ruchem łukowym robota
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Ruch synchroniczny UDP osi rozszerzonej z ruchem łukowym robota
3* @param [in] joint_pos_p Pozycja stawów punktu pośredniego, jednostka deg
4* @param [in] desc_pos_p Pozycja i orientacja kartezjańska punktu pośredniego
5* @param [in] ptool Numer układu współrzędnych narzędzia, zakres [0~14]
6* @param [in] puser Numer układu współrzędnych przedmiotu, zakres [0~14]
7* @param [in] pvel Procent prędkości, zakres [0~100]
8* @param [in] pacc Procent przyspieszenia, zakres [0~100], tymczasowo nieudostępnione
9* @param [in] epos_p Pozycja osi rozszerzonej punktu pośredniego, jednostka mm
10* @param [in] poffset_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
11* @param [in] offset_pos_p Wartość przesunięcia pozycji i orientacji
12* @param [in] joint_pos_t Pozycja stawów punktu docelowego, jednostka deg
13* @param [in] desc_pos_t Pozycja i orientacja kartezjańska punktu docelowego
14* @param [in] ttool Numer układu współrzędnych narzędzia, zakres [0~14]
15* @param [in] tuser Numer układu współrzędnych przedmiotu, zakres [0~14]
16* @param [in] tvel Procent prędkości, zakres [0~100]
17* @param [in] tacc Procent przyspieszenia, zakres [0~100], tymczasowo nieudostępnione
18* @param [in] epos_t Pozycja osi rozszerzonej punktu docelowego, jednostka mm
19* @param [in] toffset_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
20* @param [in] offset_pos_t Wartość przesunięcia pozycji i orientacji
21* @param [in] ovl Współczynnik skalowania prędkości, zakres [0~100]
22* @param [in] blendR [-1.0]-ruch do pozycji (blokujący), [0~1000.0]-promień wygładzenia (nieblokujący), jednostka mm
23* @return Kod błędu
24*/
25int ExtAxisSyncMoveC(JointPos joint_pos_p, DescPose desc_pos_p, int ptool, int puser, float pvel, float pacc, ExaxisPos epos_p, int poffset_flag, DescPose offset_pos_p, JointPos joint_pos_t, DescPose desc_pos_t, int ttool, int tuser, float tvel, float tacc, ExaxisPos epos_t, int toffset_flag, DescPose offset_pos_t, float ovl, float blendR);
13.47. Przykład kodu
1private void btnSyncMoveC_Click(object sender, EventArgs e)
2{
3 Robot robot = new Robot();
4 robot.RPC("192.168.58.2");
5
6//1. Kalibracja i zastosowanie układu współrzędnych narzędzia robota. Możesz użyć metody czteropunktowej lub sześciopunktowej do kalibracji i zastosowania układu współrzędnych narzędzia. Interfejsy związane z kalibracją układu współrzędnych narzędzia są następujące:
7 // int SetToolPoint(int point_num); // Ustawienie punktu odniesienia narzędzia - metoda sześciopunktowa
8 // int ComputeTool(ref DescPose tcp_pose); // Obliczenie układu współrzędnych narzędzia
9 // int SetTcp4RefPoint(int point_num); // Ustawienie punktu odniesienia narzędzia - metoda czteropunktowa
10 // int ComputeTcp4(ref DescPose tcp_pose); // Obliczenie układu współrzędnych narzędzia - metoda czteropunktowa
11 // int SetToolCoord(int id, DescPose coord, int type, int install); // Ustawienie i zastosowanie układu współrzędnych narzędzia
12 // int SetToolList(int id, DescPose coord, int type, int install); // Ustawienie listy układów współrzędnych narzędzia
13
14 //2. Ustawienie parametrów komunikacji UDP i załadowanie komunikacji UDP
15 robot.ExtDevSetUDPComParam("192.168.58.88", 2021, 2, 100, 3, 100, 1, 100, 10);
16 robot.ExtDevLoadUDPDriver();
17
18 //3. Ustawienie parametrów osi rozszerzonej, w tym typu osi rozszerzonej, parametrów napędu osi rozszerzonej, parametrów DH osi rozszerzonej
19 robot.SetAxisDHParaConfig(4, 200, 200, 0, 0, 0, 0, 0, 0); // Pozycjoner jednoosiowy i parametry DH
20 robot.SetRobotPosToAxis(1); // Pozycja instalacji osi rozszerzonej
21 robot.ExtAxisParamConfig(1, 0, 1, 100, -100, 10, 10, 12, 131072, 0, 1, 0, 0); // Parametry napędu, w tym przykładzie dla pozycjonera jednoosiowego, wystarczy ustawić parametry jednego napędu. Jeśli wybierzesz typ osi rozszerzonej zawierający wiele osi, musisz ustawić parametry napędu dla każdej osi.
22
23 //4. Załączenie wybranej osi, powrót do zera
24 robot.ExtAxisServoOn(1, 0);
25 robot.ExtAxisSetHoming(1, 0, 20, 3);
26
27 //5. Kalibracja układu współrzędnych osi rozszerzonej i zastosowanie
28 DescPose pos = new DescPose(/* Wprowadź współrzędne swojego punktu kalibracji */);
29 robot.SetRefPointInExAxisEnd(pos);
30 robot.PositionorSetRefPoint(1); /* Musisz skalibrować oś rozszerzoną za pomocą czterech punktów w różnych pozycjach, więc musisz wywołać ten interfejs 4 razy, aby zakończyć kalibrację */
31 DescPose coord = new DescPose();
32 robot.PositionorComputeECoordSys(ref coord); // Obliczenie wyniku kalibracji osi rozszerzonej
33 robot.ExtAxisActiveECoordSys(1, 1, coord, 1); // Zastosowanie wyniku kalibracji do układu współrzędnych osi rozszerzonej
34
35 //6. Kalibracja układu współrzędnych przedmiotu na osi rozszerzonej, będziesz potrzebować następujących interfejsów
36 //int SetWObjCoordPoint(int point_num);
37 //int ComputeWObjCoord(int method, ref DescPose wobj_pose);
38 //int SetWObjCoord(int id, DescPose coord);
39 //int SetWObjList(int id, DescPose coord);
40
41 //7. Zapisz punkt początkowy ruchu synchronicznego łukowego
42 DescPose startdescPose = new DescPose(/*Wprowadź swoje współrzędne*/);
43 JointPos startjointPos = new JointPos(/*Wprowadź swoje współrzędne*/);
44 ExaxisPos startexaxisPos = new ExaxisPos(/* Wprowadź współrzędne punktu początkowego osi rozszerzonej */);
45
46 //8. Zapisz współrzędne punktu końcowego ruchu synchronicznego łukowego
47 DescPose enddescPose = new DescPose(/*Wprowadź swoje współrzędne*/);
48 JointPos endjointPos = new JointPos(/*Wprowadź swoje współrzędne*/);
49 ExaxisPos endexaxisPos = new ExaxisPos(/* Wprowadź współrzędne punktu końcowego osi rozszerzonej */);
50
51 //8. Zapisz współrzędne punktu pośredniego ruchu synchronicznego łukowego
52 DescPose middescPose = new DescPose(/*Wprowadź swoje współrzędne*/);
53 JointPos midjointPos = new JointPos(/*Wprowadź swoje współrzędne*/);
54 ExaxisPos midexaxisPos = new ExaxisPos(/* Wprowadź współrzędne osi rozszerzonej w punkcie pośrednim łuku robota */);
55
56 //9. Napisz program ruchu synchronicznego
57 // Ruch do punktu początkowego, zakładając, że zastosowany układ współrzędnych narzędzia i przedmiotu to 1
58 robot.ExtAxisMove(startexaxisPos, 20);
59 DescPose offdese = new DescPose(0, 0, 0, 0, 0, 0);
60 robot.MoveJ(startjointPos, startdescPose, 1, 1, 100, 100, 100, startexaxisPos, 0, 0, offdese);
61
62 // Rozpocznij ruch synchroniczny
63 robot.ExtAxisSyncMoveC(midjointPos, middescPose, 1, 1, 100, 100, midexaxisPos, 0, offdese, endjointPos, enddescPose, 1, 1, 100, 100, endexaxisPos, 0, offdese, 100, 0);
64}
13.48. Ustawienie rozszerzonego DO
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Ustawia rozszerzone DO
3* @param [in] DONum Numer DO
4* @param [in] bOpen Przełącznik true-wł.; false-wył.
5* @param [in] smooth Czy wygładzać
6* @param [in] block Czy blokować
7* @return Kod błędu
8*/
9int SetAuxDO(int DONum, bool bOpen, bool smooth, bool block);
13.49. Ustawienie rozszerzonego AO
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Ustawia rozszerzone AO
3* @param [in] AONum Numer AO
4* @param [in] value Wartość analogowa [0-4095]
5* @param [in] block Czy blokować
6* @return Kod błędu
7*/
8int SetAuxAO(int AONum, double value, bool block);
13.50. Ustawienie czasu filtrowania wejścia rozszerzonego DI
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Ustawia czas filtrowania wejścia rozszerzonego DI
3* @param [in] filterTime Czas filtrowania (ms)
4* @return Kod błędu
5*/
6int SetAuxDIFilterTime(int filterTime);
13.51. Ustawienie czasu filtrowania wejścia rozszerzonego AI
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Ustawia czas filtrowania wejścia rozszerzonego AI
3* @param [in] filterTime Czas filtrowania (ms)
4* @return Kod błędu
5*/
6int SetAuxAIFilterTime(int filterTime);
13.52. Oczekiwanie na wejście rozszerzone DI
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Oczekuje na wejście rozszerzone DI
3* @param [in] DINum Numer DI
4* @param [in] bOpen Przełącznik 0-wył.; 1-wł.
5* @param [in] time Maksymalny czas oczekiwania (ms)
6* @param [in] errorAlarm Czy kontynuować ruch
7* @return Kod błędu
8*/
9int WaitAuxDI(int DINum, bool bOpen, int time, bool errorAlarm);
13.53. Oczekiwanie na wejście rozszerzone AI
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Oczekuje na wejście rozszerzone AI
3* @param [in] AINum Numer AI
4* @param [in] sign 0-większe niż; 1-mniejsze niż
5* @param [in] value Wartość AI
6* @param [in] time Maksymalny czas oczekiwania (ms)
7* @param [in] errorAlarm Czy kontynuować ruch
8* @return Kod błędu
9*/
10int WaitAuxAI(int AINum, int sign, int value, int time, bool errorAlarm);
13.54. Pobranie wartości rozszerzonego DI
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Pobiera wartość rozszerzonego DI
3* @param [in] DINum Numer DI
4* @param [in] isNoBlock Czy blokować
5* @param [out] isOpen 0-wył.; 1-wł.
6* @return Kod błędu
7*/
8int GetAuxDI(int DINum, bool isNoBlock, bool& isOpen);
13.55. Pobranie wartości rozszerzonego AI
Nowe w wersji C#SDK-v1.0.7.
1/**
2* @brief Pobiera wartość rozszerzonego AI
3* @param [in] AINum Numer AI
4* @param [in] isNoBlock Czy blokować
5* @param [in] value Wartość wejściowa
6* @return Kod błędu
7*/
8int GetAuxAI(int AINum, bool isNoBlock, int& value);
13.56. Przykład kodu rozszerzonego I/O
1private void btnAODO_Click(object sender, EventArgs e)
2{
3 int rtn;
4 for (int i = 0; i < 128; i++)
5 {
6 robot.SetAuxDO(i, true, false, true);
7 Thread.Sleep(100);
8 }
9 for (int i = 0; i < 128; i++)
10 {
11 robot.SetAuxDO(i, false, false, true);
12 Thread.Sleep(100);
13 }
14
15 for (int i = 0; i < 409; i++)
16 {
17 robot.SetAuxAO(0, i * 10, true);
18 robot.SetAuxAO(1, 4095 - i * 10, true);
19 robot.SetAuxAO(2, i * 10, true);
20 robot.SetAuxAO(3, 4095 - i * 10, true);
21 Thread.Sleep(10);
22 }
23
24 robot.SetAuxDIFilterTime(10);
25 robot.SetAuxAIFilterTime(0, 10);
26
27 for (int i = 0; i < 20; i++)
28 {
29 bool curValue = false;
30 rtn = robot.GetAuxDI(i, false, ref curValue);
31 Console.WriteLine("DI" + i + " " + curValue);
32 }
33 int curValueAI = -1;
34 for (int i = 0; i < 4; i++)
35 {
36 rtn = robot.GetAuxAI(i, true, ref curValueAI);
37 }
38
39 robot.WaitAuxDI(1, false, 1000, false);
40 robot.WaitAuxAI(1, 1, 132, 1000, false);
41}
13.57. Załączenie urządzenia ruchomego
Nowe w wersji C#SDK-v1.0.9.
1/**
2* @brief Załączenie urządzenia ruchomego
3* @param enable false-odłączenie; true-załączenie
4* @return Kod błędu
5*/
6int TractorEnable(bool enable);
13.58. Zatrzymanie ruchu urządzenia ruchomego
Nowe w wersji C#SDK-v1.0.9.
1/**
2* @brief Zatrzymanie ruchu urządzenia ruchomego
3* @return Kod błędu
4*/
5int TractorStop();
13.59. Powrót do zera urządzenia ruchomego
Nowe w wersji C#SDK-v1.0.9.
1/**
2* @brief Powrót do zera urządzenia ruchomego
3* @return Kod błędu
4*/
5int TractorHoming();
13.60. Ruch liniowy urządzenia ruchomego
Nowe w wersji C#SDK-v1.0.9.
1/**
2* @brief Ruch liniowy urządzenia ruchomego
3* @param distance Odległość ruchu liniowego (mm)
4* @param vel Procent prędkości ruchu liniowego (0-100)
5* @return Kod błędu
6*/
7int TractorMoveL(double distance, double vel);
13.61. Ruch łukowy urządzenia ruchomego
Nowe w wersji C#SDK-v1.0.9.
1/**
2* @brief Ruch łukowy urządzenia ruchomego
3* @param radio Promień ruchu łukowego (mm)
4* @param angle Kąt ruchu łukowego (°)
5* @param vel Procent prędkości ruchu liniowego (0-100)
6* @return Kod błędu
7*/
8int TractorMoveC(double radio, double angle, double vel);
13.62. Przykład kodu
1private void button6_Click(object sender, EventArgs e)
2{
3 int rtn;
4 robot.ExtDevSetUDPComParam("192.168.58.2", 2021, 2, 50, 5, 50, 1, 50, 10,1);
5 robot.ExtDevLoadUDPDriver();
6 rtn = robot.ExtAxisServoOn(1, 1);
7 rtn = robot.ExtAxisServoOn(2, 1);
8 Thread.Sleep(2000);
9 robot.ExtAxisSetHoming(1, 0, 10, 2);
10 Thread.Sleep(2000);
11 rtn = robot.ExtAxisSetHoming(2, 0, 10, 2);
12 Thread.Sleep(4000);
13 robot.ExtAxisParamConfig(1, 0, 0, 50000, -50000, 1000, 1000, 6.280f, 16384, 200, 0, 0, 0);
14 robot.ExtAxisParamConfig(2, 0, 0, 50000, -50000, 1000, 1000, 6.280f, 16384, 200, 0, 0, 0);
15 robot.SetAxisDHParaConfig(5, 0, 0, 0, 0, 0, 0, 0, 0);
16 robot.TractorEnable(false);
17 Thread.Sleep(2000);
18 robot.TractorEnable(true);
19 Thread.Sleep(2000);
20 robot.TractorHoming();
21 Thread.Sleep(2000);
22 robot.TractorMoveL(100, 2);
23 Thread.Sleep(5000);
24 robot.TractorStop();
25 robot.TractorMoveL(-100, 20);
26 Thread.Sleep(5000);
27 robot.TractorMoveC(300, 90, 20);
28 Thread.Sleep(10000);
29 robot.TractorMoveC(300, -90, 20);
30 Thread.Sleep(1000);
31 robot.TractorStop();
32}
13.63. Ustawienie strategii ruchu synchronicznego osi rozszerzonej z robotem
Nowe w wersji C#SDK-V1.1.7: Web-3.8.5
1/**
2* @brief Ustawia strategię ruchu synchronicznego osi rozszerzonej z robotem
3* @param strategy Strategia; 0-z robotem jako głównym; 1-oś rozszerzona i robot synchronicznie
4* @return Kod błędu
5*/
6int SetExAxisRobotPlan(int strategy)
13.64. Przykład kodu ustawienia strategii ruchu synchronicznego osi rozszerzonej z robotem
Nowe w wersji C#SDK-V1.1.7: Web-3.8.5
1private void button94_Click(object sender, EventArgs e)
2{
3 JointPos joint_pos1 = new JointPos(-22.016, -49.217, 124.714, -161.100, -85.108, -0.333);
4 JointPos joint_pos2 = new JointPos(-21.083, -46.613, 110.079, -147.796, -80.757, -0.330);
5 JointPos joint_pos3 = new JointPos(-25.572, -60.090, 135.397, -163.889, -82.489, -0.345);
6 DescPose desc_pos1 = new DescPose(2.637, -0.001, 30.673, 178.786, -4.134, 68.326);
7 DescPose desc_pos2 = new DescPose(213.812, -1.440, 47.311, 177.410, 0.166, 68.946);
8 DescPose desc_pos3 = new DescPose(444.342, -12.723, 82.470, -177.701, -1.325, 65.151);
9 ExaxisPos epos1 = new ExaxisPos(0.001, 0.000, 0.000, 0.000);
10 ExaxisPos epos2 = new ExaxisPos(299.977, 0.000, 0.000, 0.000);
11 ExaxisPos epos3 = new ExaxisPos(399.969, 0.000, 0.000, 0.000);
12 DescPose offset_pos = new DescPose(0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
13 int rtn = robot.SetExAxisRobotPlan(0);
14 Console.WriteLine($"SetExAxisRobotPlan rtn is {rtn}");
15 Thread.Sleep(1000);
16 rtn = robot.ExtAxisSyncMoveL(joint_pos1, desc_pos1, 1, 0, 100, 100, 100, -1, epos1, 0, offset_pos);
17 Console.WriteLine($"ExtAxisSyncMoveL 1 rtn is {rtn}");
18
19 rtn = robot.ExtAxisSyncMoveL(joint_pos2, desc_pos2, 1, 0, 100, 100, 100, -1, epos2, 0, offset_pos);
20 Console.WriteLine($"ExtAxisSyncMoveL 2 rtn is {rtn}");
21 rtn = robot.ExtAxisSyncMoveL(joint_pos3, desc_pos3, 1, 0, 100, 100, 100, -1, epos3, 0, offset_pos);
22 Console.WriteLine($"ExtAxisSyncMoveL 3 rtn is {rtn}");
23 Thread.Sleep(8000);
24}
13.65. Ustawienie czasu zakończenia pozycjonowania UDP osi rozszerzonej
1/**
2* @brief Ustawienie czasu zakończenia pozycjonowania UDP osi rozszerzonej
3* @param [in] time Czas zakończenia pozycjonowania [ms]
4* @return Kod błędu
5*/
6public int SetExAxisCmdDoneTime(double time)