3. Podstawy robota
3.1. Instancja robota
1/**
2* @brief Konstruktor klasy interfejsu robota
3*/
4Robot();
3.2. Nawiązanie komunikacji z kontrolerem
1/**
2* @brief Nawiązuje komunikację z kontrolerem robota
3* @param [in] ip Adres IP kontrolera, domyślnie fabrycznie 192.168.58.2
4* @return Kod błędu
5*/
6int RPC(string ip);
3.3. Zerwanie komunikacji z robotem
1/**
2* @brief Zrywa komunikację z kontrolerem robota
3* @return Kod błędu
4*/
5int CloseRPC();
3.4. Sprawdzenie numeru wersji SDK
1/**
2* @brief Sprawdza numer wersji SDK
3* @param [out] version Numer wersji SDK
4* @return Kod błędu
5*/
6int GetSDKVersion(ref string version);
3.5. Pobranie adresu IP kontrolera
1/**
2* @brief Pobiera adres IP kontrolera
3* @param [out] ip Adres IP kontrolera
4* @return Kod błędu
5*/
6int GetControllerIP(ref string ip);
3.6. Sterowanie wejściem lub wyjściem robota z trybu przeciągania nauczania
1/**
2* @brief Steruje wejściem lub wyjściem robota z trybu przeciągania nauczania
3* @param [in] state 0-wyjście z trybu przeciągania nauczania, 1-wejście w tryb przeciągania nauczania
4* @return Kod błędu
5*/
6int DragTeachSwitch(byte state);
3.7. Sprawdzenie, czy robot jest w trybie przeciągania
1/**
2* @brief Sprawdza, czy robot jest w trybie przeciągania nauczania
3* @param [out] state 0-nie w trybie przeciągania nauczania, 1-w trybie przeciągania nauczania
4* @return Kod błędu
5*/
6int IsInDragTeach(ref byte state);
3.8. Sterowanie załączeniem lub odłączeniem robota
1/**
2* @brief Steruje załączeniem lub odłączeniem robota. Po włączeniu zasilania robot domyślnie automatycznie się załącza.
3* @param [in] state 0-odłączenie, 1-załączenie
4* @return Kod błędu
5*/
6int RobotEnable(byte state);
3.9. Sterowanie przełączaniem trybu ręczny/automatyczny robota
1/**
2* @brief Steruje przełączaniem trybu ręczny/automatyczny robota
3* @param [in] mode 0-tryb automatyczny, 1-tryb ręczny
4* @return Kod błędu
5*/
6int Mode(int mode);
3.10. Zamknięcie systemu operacyjnego robota
1/**
2* @brief Zamyka system operacyjny robota
3* @return Kod błędu
4*/
5int ShutDownRobotOS();
3.11. Przykład kodu
1private void button6_Click(object sender, EventArgse)
2{
3 int rtn = robot.ShutDownRobotOS();
4 Console.WriteLine($"ShutDownRobotOS rtn is {rtn}");
5}
3.12. Ustawienie parametrów ponownego łączenia komunikacji z robotem
1/**
2* @brief Ustawia parametry ponownego łączenia komunikacji z robotem
3* @param [in] enable Czy włączyć true-włączone, false-niewłączone
4* @param [in] times Liczba prób ponownego połączenia
5* @param [in] period Odstęp czasu między próbami ponownego połączenia (milisekundy)
6*/
7void SetReconnectParam(bool enable, int times, int period);
3.13. Przykład kodu
1private void btnStandard_Click(object sender, EventArgs e)
2{
3 Robot robot = new Robot();
4 robot.SetReconnectParam(true, 100, 20000);//Parametry ponownego łączenia po przerwaniu
5 robot.RPC("192.168.58.2");
6
7 string ip = "";
8 string version = "";
9 byte state = 0;
10
11 robot.GetSDKVersion(ref version);
12 Console.WriteLine($"SDK version : {version}");
13 robot.GetControllerIP(ref ip);
14 Console.WriteLine($"controller ip : {ip}");
15
16 robot.Mode(1);
17 Thread.Sleep(1000);
18 robot.DragTeachSwitch(1);
19 int rtn = robot.IsInDragTeach(ref state);
20 Console.WriteLine($"drag state : {state}");
21 Thread.Sleep(3000);
22 robot.DragTeachSwitch(0);
23 Thread.Sleep(1000);
24 robot.IsInDragTeach(ref state);
25 Console.WriteLine($"drag state : {state}");
26 Thread.Sleep(3000);
27 robot.RobotEnable(0);
28 Thread.Sleep(3000);
29 robot.RobotEnable(1);
30
31 robot.Mode(0);
32 Thread.Sleep(1000);
33 robot.Mode(1);
34}
3.14. Inicjalizacja parametrów logowania
1/**
2* @brief Inicjalizuje parametry logowania
3* @param [in] logType: Tryb wyjścia, DIRECT-wyjście bezpośrednie; BUFFER-wyjście buforowane; ASYNC-wyjście asynchroniczne
4* @param [in] logLevel: Poziom filtrowania logów, ERROR-błąd; WARNING-ostrzeżenie; INFO-informacja; DEBUG-debugowanie
5* @param [in] filePath: Ścieżka zapisu pliku, np. "D://Log/"
6* @param [in] saveFileNum: Liczba zapisywanych plików, jednoczesne przekroczenie liczby plików i dni przechowywania spowoduje usunięcie plików
7* @param [in] saveDays: Liczba dni przechowywania plików, jednoczesne przekroczenie liczby plików i dni przechowywania spowoduje usunięcie plików
8* @return Kod błędu
9*/
10int LoggerInit(FrLogType logType = FrLogType.DIRECT, FrLogLevel logLevel = FrLogLevel.INFO, string filePath = "", int saveFileNum = 10, int saveDays = 10);
3.15. Ustawienie poziomu filtrowania logów
1/**
2* @brief Ustawia poziom filtrowania logów
3* @param [in] logLevel: Poziom filtrowania logów, ERROR-błąd; WARNING-ostrzeżenie; INFO-informacja; DEBUG-debugowanie
4* @return Kod błędu
5*/
6int SetLoggerLevel(FrLogLevel logLevel);
3.16. Pobranie wersji oprogramowania robota
1/**
2* @brief Pobiera informacje o wersji oprogramowania robota
3* @param [out] robotModel Model robota
4* @param [out] webVersion Wersja web
5* @param [out] controllerVersion Wersja kontrolera
6* @return Kod błędu
7*/
8int GetSoftwareVersion(ref string robotModel, ref string webVersion, ref string controllerVersion);
3.17. Pobranie wersji sprzętowej robota
1/**
2* @brief Pobiera informacje o wersji sprzętowej robota
3* @param [out] ctrlBoxBoardVersion Wersja sprzętowa płyty nośnej skrzynki sterowniczej
4* @param [out] driver1Version Wersja sprzętowa napędu 1
5* @param [out] driver2Version Wersja sprzętowa napędu 2
6* @param [out] driver3Version Wersja sprzętowa napędu 3
7* @param [out] driver4Version Wersja sprzętowa napędu 4
8* @param [out] driver5Version Wersja sprzętowa napędu 5
9* @param [out] driver6Version Wersja sprzętowa napędu 6
10* @param [out] endBoardVersion Wersja sprzętowa płyty końcowej
11* @return Kod błędu
12*/
13int GetHardwareVersion(ref string ctrlBoxBoardVersion, ref string driver1Version, ref string driver2Version, ref string driver3Version,ref string driver4Version, ref string driver5Version, ref string driver6Version, ref string endBoardVersion);
3.18. Pobranie wersji oprogramowania sprzętowego robota
1/**
2* @brief Pobiera informacje o wersji oprogramowania sprzętowego robota
3* @param [out] ctrlBoxBoardVersion Wersja oprogramowania sprzętowego płyty nośnej skrzynki sterowniczej
4* @param [out] driver1Version Wersja oprogramowania sprzętowego napędu 1
5* @param [out] driver2Version Wersja oprogramowania sprzętowego napędu 2
6* @param [out] driver3Version Wersja oprogramowania sprzętowego napędu 3
7* @param [out] driver4Version Wersja oprogramowania sprzętowego napędu 4
8* @param [out] driver5Version Wersja oprogramowania sprzętowego napędu 5
9* @param [out] driver6Version Wersja oprogramowania sprzętowego napędu 6
10* @param [out] endBoardVersion Wersja oprogramowania sprzętowego płyty końcowej
11* @return Kod błędu
12*/
13int GetFirmwareVersion(ref string ctrlBoxBoardVersion, ref string driver1Version, ref string driver2Version, ref string driver3Version,ref string driver4Version, ref string driver5Version, ref string driver6Version, ref string endBoardVersion);
3.19. Przykład kodu
1private void btnGetVersions_Click(object sender, EventArgs e)
2{
3 string[] ver = new string[20];
4 int rtn = 0;
5 rtn = robot.GetSoftwareVersion(ref ver[0], ref ver[1], ref ver[2]);
6 rtn = robot.GetHardwareVersion(ref ver[3], ref ver[4], ref ver[5], ref ver[6], ref ver[7], ref ver[8], ref ver[9], ref ver[10]);
7 rtn = robot.GetFirmwareVersion(ref ver[11], ref ver[12], ref ver[13], ref ver[14], ref ver[15], ref ver[16], ref ver[17], ref ver[18]);
8 Console.WriteLine($"robotmodel is: {ver[0]}");
9 Console.WriteLine($"webVersion is: {ver[1]}");
10 Console.WriteLine($"controllerVersion is: {ver[2]}");
11 Console.WriteLine($"Hard ctrlBox Version is: {ver[3]}");
12 Console.WriteLine($"Hard driver1 Version is: {ver[4]}");
13 Console.WriteLine($"Hard driver2 Version is: {ver[5]}");
14 Console.WriteLine($"Hard driver3 Version is: {ver[6]}");
15 Console.WriteLine($"Hard driver4 Version is: {ver[7]}");
16 Console.WriteLine($"Hard driver5 Version is: {ver[8]}");
17 Console.WriteLine($"Hard driver6 Version is: {ver[9]}");
18 Console.WriteLine($"Hard end Version is: {ver[10]}");
19 Console.WriteLine($"Firm ctrlBox Version is: {ver[11]}");
20 Console.WriteLine($"Firm driver1 Version is: {ver[12]}");
21 Console.WriteLine($"Firm driver2 Version is: {ver[13]}");
22 Console.WriteLine($"Firm driver3 Version is: {ver[14]}");
23 Console.WriteLine($"Firm driver4 Version is: {ver[15]}");
24 Console.WriteLine($"Firm driver5 Version is: {ver[16]}");
25 Console.WriteLine($"Firm driver6 Version is: {ver[17]}");
26 Console.WriteLine($"Firm end Version is: {ver[18]}");
27}