5. Wejścia/Wyjścia (IO) robota

5.1. Ustawianie wyjścia cyfrowego szafy sterowniczej

1/**
2* @brief  Ustawia wyjście cyfrowe szafy sterowniczej
3* @param  [in] id  Numer IO, zakres [0~15]
4* @param  [in] status 0-wył., 1-wł.
5* @param  [in] smooth 0-niewygładzone, 1-wygładzone
6* @param  [in] block  0-blokujące, 1-nieblokujące
7* @return  Kod błędu
8*/
9int SetDO(int id, int status, int smooth, int block);

5.2. Ustawianie wyjścia cyfrowego narzędzia

1/**
2* @brief  Ustawia wyjście cyfrowe narzędzia
3* @param  [in] id  Numer IO, zakres [0~1]
4* @param  [in] status 0-wył., 1-wł.
5* @param  [in] smooth 0-niewygładzone, 1-wygładzone
6* @param  [in] block  0-blokujące, 1-nieblokujące
7* @return  Kod błędu
8*/
9int SetToolDO(int id, int status, int smooth, int block);

5.3. Ustawianie wyjścia analogowego szafy sterowniczej

1/**
2* @brief  Ustawia wyjście analogowe szafy sterowniczej
3* @param  [in] id  Numer IO, zakres [0~1]
4* @param  [in] value Procent wartości prądu lub napięcia, zakres [0~100] odpowiada wartości prądu [0~20mA] lub napięcia [0~10V]
5* @param  [in] block  0-blokujące, 1-nieblokujące
6* @return  Kod błędu
7*/
8int SetAO(int id, double value, int block);

5.4. Ustawianie wyjścia analogowego narzędzia

1/**
2* @brief  Ustawia wyjście analogowe narzędzia
3* @param  [in] id  Numer IO, zakres [0]
4* @param  [in] value Procent wartości prądu lub napięcia, zakres [0~100] odpowiada wartości prądu [0~20mA] lub napięcia [0~10V]
5* @param  [in] block  0-blokujące, 1-nieblokujące
6* @return  Kod błędu
7*/
8int SetToolAO(int id, double value, int block);

5.5. Przykład kodu ustawiania wyjść cyfrowych i analogowych

 1public static int TestAODO(Robot robot)
 2{
 3
 4    int status = 1;
 5    int smooth = 0;
 6    int block = 0;
 7
 8    for (int i = 0; i < 16; i++)
 9    {
10        robot.SetDO(i, status, smooth, block);
11        robot.Sleep(300);
12    }
13
14    status = 0;
15
16    for (int i = 0; i < 16; i++)
17    {
18        robot.SetDO(i, status, smooth, block);
19        robot.Sleep(300);
20    }
21
22    status = 1;
23
24    for (int i = 0; i < 2; i++)
25    {
26        robot.SetToolDO(i, status, smooth, block);
27        robot.Sleep(1000);
28    }
29
30    status = 0;
31
32    for (int i = 0; i < 2; i++)
33    {
34        robot.SetToolDO(i, status, smooth, block);
35        robot.Sleep(1000);
36    }
37
38    for (int i = 0; i < 100; i++)
39    {
40        robot.SetAO(0, i, block);
41        robot.Sleep(30);
42    }
43
44    for (int i = 0; i < 100; i++)
45    {
46        robot.SetToolAO(0, i, block);
47        robot.Sleep(30);
48    }
49
50    robot.CloseRPC();
51    return 0;
52}

5.6. Pobieranie wejścia cyfrowego szafy sterowniczej

1/**
2* @brief  Pobiera wejście cyfrowe szafy sterowniczej
3* @param  [in] id  Numer IO, zakres [0~15]
4* @param  [in] block  0-blokujące, 1-nieblokujące
5* @param  [out] level  0-niski poziom, 1-wysoki poziom
6* @return  Kod błędu
7*/
8int GetDI(int id, int block, int[] level);

5.7. Pobieranie wejścia cyfrowego narzędzia

1/**
2* @brief  Pobiera wejście cyfrowe narzędzia
3* @param  [in] id  Numer IO, zakres [0~1]
4* @param  [in] block  0-blokujące, 1-nieblokujące
5* @param  [out] level 0-niski poziom, 1-wysoki poziom
6* @return  Kod błędu
7*/
8int GetToolDI(int id, int block, int[] level);

5.8. Pobieranie wejścia analogowego szafy sterowniczej

1/**
2* @brief  Pobiera wejście analogowe szafy sterowniczej
3* @param  [in] id  Numer IO, zakres [0~1]
4* @param  [in] block  0-blokujące, 1-nieblokujące
5* @param  [out] persent Procent wartości prądu lub napięcia wejściowego, zakres [0~100] odpowiada wartości prądu [0~20mA] lub napięcia [0~10V]
6* @return  Kod błędu
7*/
8int GetAI(int id, int block, double[] persent)

5.9. Pobieranie wejścia analogowego narzędzia

1/**
2* @brief  Pobiera wejście analogowe narzędzia
3* @param  [in] id  Numer IO, zakres [0]
4* @param  [in] block  0-blokujące, 1-nieblokujące
5* @param  [out] persent Procent wartości prądu lub napięcia wejściowego, zakres [0~100] odpowiada wartości prądu [0~20mA] lub napięcia [0~10V]
6* @return  Kod błędu
7*/
8int GetToolAI(int id, int block, double[] persent)

5.10. Pobieranie stanu przycisku rejestracji punktu na końcówce robota

1/**
2* @brief  Pobiera stan przycisku rejestracji punktu na końcówce robota
3* @param  [out] state Stan przycisku, 0-wciśnięty, 1-zwolniony
4* @return  Kod błędu
5*/
6int GetAxlePointRecordBtnState(int[] state)

5.11. Pobieranie stanu wyjścia DO na końcówce robota

1/**
2* @brief  Pobiera stan wyjścia DO na końcówce robota
3* @param  [out] do_state Stan wyjścia DO, do0~do1 odpowiadają bit1~bit2, zaczynając od bit0
4* @return  Kod błędu
5*/
6int GetToolDO(int[] do_state)

5.12. Pobieranie stanu wyjścia DO sterownika robota

1/**
2* @brief  Pobiera stan wyjścia DO sterownika robota
3* @param  [out] do_state_h Stan wyjścia DO, co0~co7 odpowiadają bit0~bit7
4* @param  [out] do_state_l Stan wyjścia DO, do0~do7 odpowiadają bit0~bit7
5* @return  Kod błędu
6*/
7int GetDO(int[] do_state_h, int[] do_state_l)

5.13. Przykład kodu pobierania stanów DI i DO robota

 1public static int TestGetDIAI(Robot robot)
 2{
 3    int status = 1;
 4    int smooth = 0;
 5    int block = 0;
 6    int[] di =new int[]{0}, tool_di =new int[] {0};
 7    double[] ai =new double[] {0}, tool_ai = new double[]{0};
 8    double value = 0.0;
 9
10
11    robot.GetDI(0, block, di);
12    System.out.println("di0:"+di[0]);
13
14    robot.GetToolDI(1, block, tool_di);
15    System.out.println("tool_di1:"+ tool_di[0]);
16
17    robot.GetAI(0, block, ai);
18    System.out.println("ai0:"+ ai[0]);
19
20    robot.GetToolAI(0, block, tool_ai);
21    System.out.println("tool_ai0:"+ tool_ai[0]);
22
23    int[] _button_state=new int[]{0};
24    robot.GetAxlePointRecordBtnState(_button_state);
25    System.out.println("_button_state is: "+ _button_state[0]);
26
27    int[] tool_do_state=new int[]{0};
28    robot.GetToolDO(tool_do_state);
29    System.out.println("tool DO state is: "+ tool_do_state[0]);
30
31    int[] do_state_h=new int[]{0};
32    int[] do_state_l=new int[]{0};
33    robot.GetDO(do_state_h, do_state_l);
34    System.out.println("DO state high is: "+do_state_h[0]+", DO state low is: "+ do_state_l[0]);
35
36    return 0;
37}

5.14. Oczekiwanie na wejście cyfrowe szafy sterowniczej

1/**
2* @brief Oczekiwanie na wejście cyfrowe szafy sterowniczej
3* @param  [in] id  Numer IO, zakres [0~15]
4* @param  [in] status 0-wył., 1-wł.
5* @param  [in] max_time  Maksymalny czas oczekiwania, jednostka ms
6* @param  [in] opt  Strategia po przekroczeniu czasu, 0-zatrzymaj program i wyświetl błąd przekroczenia czasu, 1-ignoruj błąd przekroczenia czasu i kontynuuj wykonywanie programu, 2-czekaj w nieskończoność
7* @return  Kod błędu
8*/
9int WaitDI(int id, int status, int max_time, int opt);

5.15. Oczekiwanie na wiele wejść cyfrowych szafy sterowniczej

 1/**
 2* @brief Oczekiwanie na wiele wejść cyfrowych szafy sterowniczej
 3* @param  [in] mode 0-logiczne I dla wielu wejść, 1-logiczne LUB dla wielu wejść
 4* @param  [in] id  Numer IO, bit0~bit7 odpowiadają DI0~DI7, bit8~bit15 odpowiadają CI0~CI7
 5* @param  [in] status 0-wył., 1-wł.
 6* @param  [in] max_time  Maksymalny czas oczekiwania, jednostka ms
 7* @param  [in] opt  Strategia po przekroczeniu czasu, 0-zatrzymaj program i wyświetl błąd przekroczenia czasu, 1-ignoruj błąd przekroczenia czasu i kontynuuj wykonywanie programu, 2-czekaj w nieskończoność
 8* @return  Kod błędu
 9*/
10int WaitMultiDI(int mode, int id, int status, int max_time, int opt);

5.16. Oczekiwanie na wejście cyfrowe narzędzia

1/**
2* @brief Oczekiwanie na wejście cyfrowe narzędzia
3* @param  [in] id  Numer IO, zakres [0~1]
4* @param  [in] status 0-wył., 1-wł.
5* @param  [in] max_time  Maksymalny czas oczekiwania, jednostka ms
6* @param  [in] opt  Strategia po przekroczeniu czasu, 0-zatrzymaj program i wyświetl błąd przekroczenia czasu, 1-ignoruj błąd przekroczenia czasu i kontynuuj wykonywanie programu, 2-czekaj w nieskończoność
7* @return  Kod błędu
8*/
9int WaitToolDI(int id, int status, int max_time, int opt);

5.17. Oczekiwanie na wejście analogowe szafy sterowniczej

 1/**
 2* @brief Oczekiwanie na wejście analogowe szafy sterowniczej
 3* @param  [in] id  Numer IO, zakres [0~1]
 4* @param  [in] sign 0-większe niż, 1-mniejsze niż
 5* @param  [in] value Procent wartości prądu lub napięcia wejściowego, zakres [0~100] odpowiada wartości prądu [0~20mA] lub napięcia [0~10V]
 6* @param  [in] max_time  Maksymalny czas oczekiwania, jednostka ms
 7* @param  [in] opt  Strategia po przekroczeniu czasu, 0-zatrzymaj program i wyświetl błąd przekroczenia czasu, 1-ignoruj błąd przekroczenia czasu i kontynuuj wykonywanie programu, 2-czekaj w nieskończoność
 8* @return  Kod błędu
 9*/
10int WaitAI(int id, int sign, double value, int max_time, int opt);

5.18. Oczekiwanie na wejście analogowe narzędzia

 1/**
 2* @brief Oczekiwanie na wejście analogowe narzędzia
 3* @param  [in] id  Numer IO, zakres [0]
 4* @param  [in] sign 0-większe niż, 1-mniejsze niż
 5* @param  [in] value Procent wartości prądu lub napięcia wejściowego, zakres [0~100] odpowiada wartości prądu [0~20mA] lub napięcia [0~10V]
 6* @param  [in] max_time  Maksymalny czas oczekiwania, jednostka ms
 7* @param  [in] opt  Strategia po przekroczeniu czasu, 0-zatrzymaj program i wyświetl błąd przekroczenia czasu, 1-ignoruj błąd przekroczenia czasu i kontynuuj wykonywanie programu, 2-czekaj w nieskończoność
 8* @return  Kod błędu
 9*/
10int WaitToolAI(int id, int sign, double value, int max_time, int opt);

5.19. Przykład kodu oczekiwania na sygnały wejściowe cyfrowe i analogowe szafy sterowniczej

 1public static int TestWaitDIAI(Robot robot)
 2{
 3    int rtn=-1;
 4
 5    int status = 1;
 6    int smooth = 0;
 7    int block = 0;
 8    int di = 0, tool_di = 0;
 9    double ai = 0.0, tool_ai = 0.0;
10    double value = 0.0;
11
12    rtn = robot.WaitDI(0, 1, 1000, 1);
13    System.out.println("WaitDI over; rtn is: "+ rtn);
14
15    robot.WaitMultiDI(1, 3, 3, 1000, 1);
16    System.out.println("WaitDI over; rtn is: "+ rtn);
17
18    robot.WaitToolDI(1, 1, 1000, 1);
19    System.out.println("WaitDI over; rtn is: " + rtn);
20
21    robot.WaitAI(0, 0, 50, 1000, 1);
22    System.out.println("WaitDI over; rtn is: " + rtn);
23
24    robot.WaitToolAI(0, 0, 50, 1000, 1);
25    System.out.println("WaitDI over; rtn is: " + rtn);
26    return 0;
27}

5.20. Ustawianie resetowania wyjścia DO szafy sterowniczej po zatrzymaniu/wstrzymaniu

1/**
2* @brief Ustawia resetowanie wyjścia DO szafy sterowniczej po zatrzymaniu/wstrzymaniu
3* @param resetFlag  0-nie resetuj; 1-resetuj
4* @param reloadFlag Czy przeładować po wznowieniu po wstrzymaniu, 0-nie ładuj; 1-ładuj
5* @return Kod błędu
6*/
7public int SetOutputResetCtlBoxDO(int resetFlag, int reloadFlag)

5.21. Ustawianie resetowania wyjścia AO szafy sterowniczej po zatrzymaniu/wstrzymaniu

1/**
2* @brief Ustawia resetowanie wyjścia AO szafy sterowniczej po zatrzymaniu/wstrzymaniu
3* @param resetFlag  0-nie resetuj; 1-resetuj
4* @param reloadFlag Czy przeładować po wznowieniu po wstrzymaniu, 0-nie ładuj; 1-ładuj
5* @return Kod błędu
6*/
7public int SetOutputResetCtlBoxAO(int resetFlag, int reloadFlag)

5.22. Ustawianie resetowania wyjścia DO narzędzia końcowego po zatrzymaniu/wstrzymaniu

1/**
2* @brief Ustawia resetowanie wyjścia DO narzędzia końcowego po zatrzymaniu/wstrzymaniu
3* @param resetFlag  0-nie resetuj; 1-resetuj
4* @param reloadFlag Czy przeładować po wznowieniu po wstrzymaniu, 0-nie ładuj; 1-ładuj
5* @return Kod błędu
6*/
7public int SetOutputResetAxleDO(int resetFlag, int reloadFlag)

5.23. Ustawianie resetowania wyjścia AO narzędzia końcowego po zatrzymaniu/wstrzymaniu

1/**
2* @brief Ustawia resetowanie wyjścia AO narzędzia końcowego po zatrzymaniu/wstrzymaniu
3* @param resetFlag  0-nie resetuj; 1-resetuj
4* @param reloadFlag Czy przeładować po wznowieniu po wstrzymaniu, 0-nie ładuj; 1-ładuj
5* @return Kod błędu
6*/
7public int SetOutputResetAxleAO(int resetFlag, int reloadFlag)

5.24. Ustawianie resetowania wyjścia rozszerzonego DO po zatrzymaniu/wstrzymaniu

1/**
2* @brief Ustawia resetowanie wyjścia rozszerzonego DO po zatrzymaniu/wstrzymaniu
3* @param resetFlag  0-nie resetuj; 1-resetuj
4* @param reloadFlag Czy przeładować po wznowieniu po wstrzymaniu, 0-nie ładuj; 1-ładuj
5* @return Kod błędu
6*/
7public int SetOutputResetExtDO(int resetFlag, int reloadFlag)

5.25. Ustawianie resetowania wyjścia rozszerzonego AO po zatrzymaniu/wstrzymaniu

1/**
2* @brief Ustawia resetowanie wyjścia rozszerzonego AO po zatrzymaniu/wstrzymaniu
3* @param resetFlag  0-nie resetuj; 1-resetuj
4* @param reloadFlag Czy przeładować po wznowieniu po wstrzymaniu, 0-nie ładuj; 1-ładuj
5* @return Kod błędu
6*/
7public int SetOutputResetExtAO(int resetFlag, int reloadFlag)

5.26. Ustawianie resetowania wyjścia SmartTool po zatrzymaniu/wstrzymaniu

1/**
2* @brief Ustawia resetowanie wyjścia SmartTool po zatrzymaniu/wstrzymaniu
3* @param resetFlag  0-nie resetuj; 1-resetuj
4* @param reloadFlag Czy przeładować po wznowieniu po wstrzymaniu, 0-nie ładuj; 1-ładuj
5* @return Kod błędu
6*/
7public int SetOutputResetSmartToolDO(int resetFlag, int reloadFlag)

5.27. Przykład kodu resetowania wyjść po zatrzymaniu/wstrzymaniu programu LUA

 1public static void TestDOReset(Robot robot)
 2{
 3    for (int i = 0; i < 16; i++)
 4    {
 5        robot.SetDO(i, 1, 0, 0);
 6        robot.Sleep(200);
 7    }
 8    int resetFlag = 1;
 9    int resumeReloadFlag = 1;
10    int rtn = robot.SetOutputResetCtlBoxDO(resetFlag, resumeReloadFlag);
11    robot.SetOutputResetCtlBoxAO(resetFlag, resumeReloadFlag);
12    robot.SetOutputResetAxleDO(resetFlag, resumeReloadFlag);
13    robot.SetOutputResetAxleAO(resetFlag, resumeReloadFlag);
14    robot.SetOutputResetExtDO(resetFlag, resumeReloadFlag);
15    robot.SetOutputResetExtAO(resetFlag, resumeReloadFlag);
16    robot.SetOutputResetSmartToolDO(resetFlag, resumeReloadFlag);
17    robot.ProgramLoad("test.lua");
18    robot.ProgramRun();
19    robot.Sleep(2000);
20    robot.PauseMotion();
21    robot.Sleep(2000);
22    robot.ResumeMotion();
23    robot.Sleep(2000);
24    robot.CloseRPC();
25}

5.28. Ustawianie funkcji konfigurowalnych portów CI szafy sterowniczej

 1/**
 2* @brief Ustawia funkcje konfigurowalnych portów CI szafy sterowniczej
 3* @param config Kody funkcji CI0-CI7;
 4* 0-brak;1-sukces rozpoczęcia łuku;2-gotowość spawarki;3-wykrywanie przenośnika;4-wstrzymanie;5-wznowienie;6-uruchomienie;7-zatrzymanie;
 58-wstrzymanie/wznowienie;9-uruchomienie/zatrzymanie;10-przeciąganie nożne;11-przejazd do punktu początkowego zadania;12-przełączanie ręczny/automatyczny;
 613-sukces lokalizacji drutu spawalniczego;14-przerwanie ruchu;15-uruchomienie programu głównego;16-uruchomienie przewijania do tyłu;17-potwierdzenie uruchomienia;
 718-sygnał detekcji fotoelektrycznej X;19-sygnał detekcji fotoelektrycznej Y;20-sygnał zewnętrznego awaryjnego zatrzymania 1;21-sygnał zewnętrznego awaryjnego zatrzymania 2;
 822-tryb redukcji poziomu 1;23-tryb redukcji poziomu 2;24-tryb redukcji poziomu 3 (zatrzymanie);25-wznowienie spawania;26-zakończenie spawania;
 927-włączenie wspomaganego przeciągania;28-wyłączenie wspomaganego przeciągania;29-włączenie/wyłączenie wspomaganego przeciągania;30-wyczyszczenie wszystkich błędów;
1031-przełączanie ręczny/automatyczny (poziom wysoki/niski);32-włączenie;33-wyłączenie;34-włączenie/wyłączenie (zbocze narastające/opadające);35-rozpoczęcie/zakończenie śledzenia punktowego
11* @return Kod błędu
12*/
13public int SetDIConfig(int[] config)

5.29. Pobieranie funkcji konfigurowalnych portów CI szafy sterowniczej

 1/**
 2* @brief Pobiera funkcje konfigurowalnych portów CI szafy sterowniczej
 3* @param config Kody funkcji CI0-CI7;
 4* 0-brak;1-sukces rozpoczęcia łuku;2-gotowość spawarki;3-wykrywanie przenośnika;4-wstrzymanie;5-wznowienie;6-uruchomienie;7-zatrzymanie;
 58-wstrzymanie/wznowienie;9-uruchomienie/zatrzymanie;10-przeciąganie nożne;11-przejazd do punktu początkowego zadania;12-przełączanie ręczny/automatyczny;
 613-sukces lokalizacji drutu spawalniczego;14-przerwanie ruchu;15-uruchomienie programu głównego;16-uruchomienie przewijania do tyłu;17-potwierdzenie uruchomienia;
 718-sygnał detekcji fotoelektrycznej X;19-sygnał detekcji fotoelektrycznej Y;20-sygnał zewnętrznego awaryjnego zatrzymania 1;21-sygnał zewnętrznego awaryjnego zatrzymania 2;
 822-tryb redukcji poziomu 1;23-tryb redukcji poziomu 2;24-tryb redukcji poziomu 3 (zatrzymanie);25-wznowienie spawania;26-zakończenie spawania;
 927-włączenie wspomaganego przeciągania;28-wyłączenie wspomaganego przeciągania;29-włączenie/wyłączenie wspomaganego przeciągania;30-wyczyszczenie wszystkich błędów;
1031-przełączanie ręczny/automatyczny (poziom wysoki/niski);32-włączenie;33-wyłączenie;34-włączenie/wyłączenie (zbocze narastające/opadające);35-rozpoczęcie/zakończenie śledzenia punktowego
11* @return Kod błędu
12*/
13public int GetDIConfig(int[] config)

5.30. Ustawianie funkcji konfigurowalnych portów CO szafy sterowniczej

 1/**
 2* @brief Ustawia funkcje konfigurowalnych portów CO szafy sterowniczej
 3* @param config Kody funkcji CO0-CO7;
 4* 0-brak;1-błąd robota;2-robot w ruchu;3-uruchamianie/zatrzymywanie natryskiwania;4-czyszczenie pistoletu natryskowego;5-sygnał podawania gazu;6-sygnał rozpoczęcia łuku;7-podawanie drutu impulsowe;
 58-podawanie drutu wsteczne;9-port wejściowy JOB 1;10-port wejściowy JOB 2;11-port wejściowy JOB 3;12-sterowanie uruchamianiem/zatrzymywaniem przenośnika;13-robot wstrzymany;14-osiągnięcie punktu początkowego zadania;
 615-osiągnięcie obszaru interferencji;16-sterowanie uruchamianiem/zatrzymywaniem lokalizacji drutu spawalniczego;17-robot zakończył uruchomienie;18-uruchomienie/zatrzymanie programu;19-tryb automatyczny/ręczny;20-sygnał wyjściowy awaryjnego zatrzymania 1-bezpieczeństwo;
 721-sygnał wyjściowy awaryjnego zatrzymania 2-bezpieczeństwo;22-uruchomienie/zatrzymanie programu skryptowego LUA;23-wyjście stanu bezpieczeństwa-bezpieczeństwo;24-wyjście stanu zatrzymania ochronnego-bezpieczeństwo;
 825-robot w ruchu-bezpieczeństwo;26-tryb redukcji robota-bezpieczeństwo;27-tryb nieredukcji robota-bezpieczeństwo;28-robot niezatrzymany;29-błąd robota-błąd punktu instrukcji;
 930-błąd robota-błąd sterownika;31-błąd robota-błąd przekroczenia miękkiego ograniczenia;32-błąd robota-błąd kolizji;33-błąd robota-błąd liczby aktywnych stacji podrzędnych;
1034-błąd robota-błąd stacji podrzędnej;35-błąd robota-błąd IO;36-błąd robota-błąd chwytaka;37-błąd robota-błąd pliku;38-błąd robota-błąd osobliwej pozy i orientacji;
1139-błąd robota-błąd komunikacji ze sterownikiem;40-błąd robota-błąd parametru;41-błąd robota-błąd przekroczenia miękkiego ograniczenia osi zewnętrznej;42-ostrzeżenie robota-ostrzeżenie;
1243-ostrzeżenie robota-ostrzeżenie drzwi bezpieczeństwa;44-ostrzeżenie robota-ostrzeżenie ruchu;45-ostrzeżenie robota-ostrzeżenie obszaru interferencji;46-ostrzeżenie robota-ostrzeżenie ściany bezpieczeństwa;
1347-stan włączenia;48-podnoszenie automatyczne po przerwaniu połączenia;49-ostrzeżenie interferencji prostopadłościan 1;50-ostrzeżenie interferencji prostopadłościan 2;51-ostrzeżenie interferencji prostopadłościan 3;52-ostrzeżenie interferencji prostopadłościan 4;
14* @return Kod błędu
15*/
16public int SetDOConfig(int[] config)

5.31. Pobieranie funkcji konfigurowalnych portów CO szafy sterowniczej

 1/**
 2* @brief Pobiera funkcje konfigurowalnych portów CO szafy sterowniczej
 3* @param config Kody funkcji CO0-CO7;
 4* 0-brak;1-błąd robota;2-robot w ruchu;3-uruchamianie/zatrzymywanie natryskiwania;4-czyszczenie pistoletu natryskowego;5-sygnał podawania gazu;6-sygnał rozpoczęcia łuku;7-podawanie drutu impulsowe;
 58-podawanie drutu wsteczne;9-port wejściowy JOB 1;10-port wejściowy JOB 2;11-port wejściowy JOB 3;12-sterowanie uruchamianiem/zatrzymywaniem przenośnika;13-robot wstrzymany;14-osiągnięcie punktu początkowego zadania;
 615-osiągnięcie obszaru interferencji;16-sterowanie uruchamianiem/zatrzymywaniem lokalizacji drutu spawalniczego;17-robot zakończył uruchomienie;18-uruchomienie/zatrzymanie programu;19-tryb automatyczny/ręczny;20-sygnał wyjściowy awaryjnego zatrzymania 1-bezpieczeństwo;
 721-sygnał wyjściowy awaryjnego zatrzymania 2-bezpieczeństwo;22-uruchomienie/zatrzymanie programu skryptowego LUA;23-wyjście stanu bezpieczeństwa-bezpieczeństwo;24-wyjście stanu zatrzymania ochronnego-bezpieczeństwo;
 825-robot w ruchu-bezpieczeństwo;26-tryb redukcji robota-bezpieczeństwo;27-tryb nieredukcji robota-bezpieczeństwo;28-robot niezatrzymany;29-błąd robota-błąd punktu instrukcji;
 930-błąd robota-błąd sterownika;31-błąd robota-błąd przekroczenia miękkiego ograniczenia;32-błąd robota-błąd kolizji;33-błąd robota-błąd liczby aktywnych stacji podrzędnych;
1034-błąd robota-błąd stacji podrzędnej;35-błąd robota-błąd IO;36-błąd robota-błąd chwytaka;37-błąd robota-błąd pliku;38-błąd robota-błąd osobliwej pozy i orientacji;
1139-błąd robota-błąd komunikacji ze sterownikiem;40-błąd robota-błąd parametru;41-błąd robota-błąd przekroczenia miękkiego ograniczenia osi zewnętrznej;42-ostrzeżenie robota-ostrzeżenie;
1243-ostrzeżenie robota-ostrzeżenie drzwi bezpieczeństwa;44-ostrzeżenie robota-ostrzeżenie ruchu;45-ostrzeżenie robota-ostrzeżenie obszaru interferencji;46-ostrzeżenie robota-ostrzeżenie ściany bezpieczeństwa;
1347-stan włączenia;48-podnoszenie automatyczne po przerwaniu połączenia;49-ostrzeżenie interferencji prostopadłościan 1;50-ostrzeżenie interferencji prostopadłościan 2;51-ostrzeżenie interferencji prostopadłościan 3;52-ostrzeżenie interferencji prostopadłościan 4;
14* @return Kod błędu
15*/
16public int GetDOConfig(int[] config)

5.32. Ustawianie funkcji konfigurowalnych portów End-CI końcówki

 1/**
 2* @brief Ustawia funkcje konfigurowalnych portów End-CI końcówki
 3* @param config Kody funkcji End CI0-CI1;
 4* 0-brak;1-przełącznik narzędzia do przeciągania;2-sygnał rejestracji punktu;3-przełączanie ręczny/automatyczny (sygnał impulsowy);4-uruchamianie/zatrzymywanie rejestracji TPD;5-wstrzymanie ruchu;
 56-wznowienie ruchu;7-uruchomienie;8-zatrzymanie;9-wstrzymanie/wznowienie;10-uruchomienie/zatrzymanie;11-włączenie wspomaganego przeciągania przez czujnik siły;12-wyłączenie wspomaganego przeciągania przez czujnik siły;
 613-włączenie/wyłączenie wspomaganego przeciągania przez czujnik siły;14-sygnał detekcji laserowej X;15-sygnał detekcji laserowej Y;16-ruch PTP do punktu początkowego zadania;17-przerwanie ruchu, zatrzymanie bieżącego ruchu zgodnie z sygnałem;
 718-uruchomienie programu głównego;19-uruchomienie przewijania do tyłu;20-potwierdzenie uruchomienia;21-wznowienie spawania;22-zakończenie spawania;23-wyczyszczenie błędu;24-przełączanie ręczny/automatyczny (poziom wysoki/niski)
 825-włączenie;26-wyłączenie;27-włączenie/wyłączenie;28-sygnał uruchamiania/zatrzymywania śledzenia serwo laserowego;
 9* @return Kod błędu
10*/
11public int SetToolDIConfig(int[] config)

5.33. Pobieranie funkcji konfigurowalnych portów End-CI końcówki

 1/**
 2* @brief Pobiera funkcje konfigurowalnych portów End-CI końcówki
 3* @param config Kody funkcji End CI0-CI1;
 4* 0-brak;1-przełącznik narzędzia do przeciągania;2-sygnał rejestracji punktu;3-przełączanie ręczny/automatyczny (sygnał impulsowy);4-uruchamianie/zatrzymywanie rejestracji TPD;5-wstrzymanie ruchu;
 56-wznowienie ruchu;7-uruchomienie;8-zatrzymanie;9-wstrzymanie/wznowienie;10-uruchomienie/zatrzymanie;11-włączenie wspomaganego przeciągania przez czujnik siły;12-wyłączenie wspomaganego przeciągania przez czujnik siły;
 613-włączenie/wyłączenie wspomaganego przeciągania przez czujnik siły;14-sygnał detekcji laserowej X;15-sygnał detekcji laserowej Y;16-ruch PTP do punktu początkowego zadania;17-przerwanie ruchu, zatrzymanie bieżącego ruchu zgodnie z sygnałem;
 718-uruchomienie programu głównego;19-uruchomienie przewijania do tyłu;20-potwierdzenie uruchomienia;21-wznowienie spawania;22-zakończenie spawania;23-wyczyszczenie błędu;24-przełączanie ręczny/automatyczny (poziom wysoki/niski)
 825-włączenie;26-wyłączenie;27-włączenie/wyłączenie;28-sygnał uruchamiania/zatrzymywania śledzenia serwo laserowego;
 9* @return Kod błędu
10*/
11public int GetToolDIConfig(int[] config)

5.34. Ustawianie stanu aktywnego konfigurowalnych CI szafy sterowniczej

1/**
2* @brief Ustawia stan aktywny konfigurowalnych CI szafy sterowniczej
3* @param config Stan aktywny portów CI0-CI7; 0-aktywny wysoki poziom; 1-aktywny niski poziom
4* @return Kod błędu
5*/
6public int SetDIConfigLevel(int[] config)

5.35. Pobieranie stanu aktywnego konfigurowalnych CI szafy sterowniczej

1/**
2* @brief Pobiera stan aktywny konfigurowalnych CI szafy sterowniczej
3* @param config Stan aktywny portów CI0-CI7; 0-aktywny wysoki poziom; 1-aktywny niski poziom
4* @return Kod błędu
5*/
6public int GetDIConfigLevel(int[] config)

5.36. Ustawianie stanu aktywnego konfigurowalnych CO szafy sterowniczej

1/**
2* @brief Ustawia stan aktywny konfigurowalnych CO szafy sterowniczej
3* @param config Stan aktywny portów CO0-CO7; 0-aktywny wysoki poziom; 1-aktywny niski poziom
4* @return Kod błędu
5*/
6public int SetDOConfigLevel(int[] config)

5.37. Pobieranie stanu aktywnego konfigurowalnych CO szafy sterowniczej

1/**
2* @brief Pobiera stan aktywny konfigurowalnych CO szafy sterowniczej
3* @param config Stan aktywny portów CO0-CO7; 0-aktywny wysoki poziom; 1-aktywny niski poziom
4* @return Kod błędu
5*/
6public int GetDOConfigLevel(int[] config)

5.38. Ustawianie stanu aktywnego konfigurowalnych CI końcówki

1/**
2* @brief Ustawia stan aktywny konfigurowalnych CI końcówki
3* @param config Stan aktywny portów CI0-CI1; 0-aktywny wysoki poziom; 1-aktywny niski poziom
4* @return Kod błędu
5*/
6public int SetToolDIConfigLevel(int[] config)

5.39. Pobieranie stanu aktywnego konfigurowalnych CI końcówki

1/**
2* @brief Pobiera stan aktywny konfigurowalnych CI końcówki
3* @param config Stan aktywny portów CI0-CI1; 0-aktywny wysoki poziom; 1-aktywny niski poziom
4* @return Kod błędu
5*/
6public int GetToolDIConfigLevel(int[] config)

5.40. Ustawianie stanu aktywnego standardowych DI szafy sterowniczej

1/**
2* @brief Ustawia stan aktywny standardowych DI szafy sterowniczej
3* @param config Stan aktywny portów DI0-DI7; 0-aktywny wysoki poziom; 1-aktywny niski poziom
4* @return Kod błędu
5*/
6public int SetStandardDILevel(int[] config)

5.41. Pobieranie stanu aktywnego standardowych DI szafy sterowniczej

1/**
2* @brief Pobiera stan aktywny standardowych DI szafy sterowniczej
3* @param config Stan aktywny portów DI0-DI7; 0-aktywny wysoki poziom; 1-aktywny niski poziom
4* @return Kod błędu
5*/
6public int GetStandardDILevel(int[] config)

5.42. Ustawianie stanu aktywnego standardowych DO szafy sterowniczej

1/**
2* @brief Ustawia stan aktywny standardowych DO szafy sterowniczej
3* @param config Stan aktywny portów DO0-DO7; 0-aktywny wysoki poziom; 1-aktywny niski poziom
4* @return Kod błędu
5*/
6public int SetStandardDOLevel(int[] config)

5.43. Pobieranie stanu aktywnego standardowych DO szafy sterowniczej

1/**
2* @brief Pobiera stan aktywny standardowych DO szafy sterowniczej
3* @param config Stan aktywny portów DO0-DO7; 0-aktywny wysoki poziom; 1-aktywny niski poziom
4* @return Kod błędu
5*/
6public int GetStandardDOLevel(int[] config)

5.44. Przykład kodu konfiguracji IO robota

 1public static int TestIOConfig(Robot robot) {
 2    int[] setDIConfig = new int[]{1, 2, 3, 4, 5, 6, 7, 8};
 3    int[] getDIConfig = new int[8];
 4    int rtn = robot.SetDIConfig(setDIConfig);
 5    System.out.println("SetDIConfig rtn is " + rtn);
 6    rtn = robot.GetDIConfig(getDIConfig);
 7    System.out.println("GetDIConfig rtn is " + rtn + ", value is " +
 8        getDIConfig[0] + " " + getDIConfig[1] + " " + getDIConfig[2] + " " + getDIConfig[3] + " " +
 9        getDIConfig[4] + " " + getDIConfig[5] + " " + getDIConfig[6] + " " + getDIConfig[7]);
10
11    int[] setDOConfig = new int[]{9, 10, 11, 12, 13, 14, 15, 16};
12    int[] getDOConfig = new int[8];
13    rtn = robot.SetDOConfig(setDOConfig);
14    System.out.println("SetDOConfig rtn is " + rtn);
15    rtn = robot.GetDOConfig(getDOConfig);
16    System.out.println("GetDOConfig rtn is " + rtn + ", value is " +
17        getDOConfig[0] + " " + getDOConfig[1] + " " + getDOConfig[2] + " " + getDOConfig[3] + " " +
18        getDOConfig[4] + " " + getDOConfig[5] + " " + getDOConfig[6] + " " + getDOConfig[7]);
19
20    int[] setToolDIConfig = new int[]{17, 18};
21    int[] getToolDIConfig = new int[2];
22    rtn = robot.SetToolDIConfig(setToolDIConfig);
23    System.out.println("SetToolDIConfig rtn is " + rtn);
24    rtn = robot.GetToolDIConfig(getToolDIConfig);
25    System.out.println("GetToolDIConfig rtn is " + rtn + ", value is " + getToolDIConfig[0] + " " + getToolDIConfig[1]);
26
27    int[] setDIConfigLevel = new int[]{1, 1, 1, 1, 0, 0, 0, 0};
28    int[] getDIConfigLevel = new int[8];
29    rtn = robot.SetDIConfigLevel(setDIConfigLevel);
30    System.out.println("SetDIConfigLevel rtn is " + rtn);
31    rtn = robot.GetDIConfigLevel(getDIConfigLevel);
32    System.out.println("GetDIConfigLevel rtn is " + rtn + ", value is " +
33        getDIConfigLevel[0] + " " + getDIConfigLevel[1] + " " + getDIConfigLevel[2] + " " + getDIConfigLevel[3] + " " +
34        getDIConfigLevel[4] + " " + getDIConfigLevel[5] + " " + getDIConfigLevel[6] + " " + getDIConfigLevel[7]);
35
36    int[] setDOConfigLevel = new int[]{0, 0, 0, 0, 1, 1, 1, 1};
37    int[] getDOConfigLevel = new int[8];
38    rtn = robot.SetDOConfigLevel(setDOConfigLevel);
39    System.out.println("SetDOConfigLevel rtn is " + rtn);
40    rtn = robot.GetDOConfigLevel(getDOConfigLevel);
41    System.out.println("GetDOConfigLevel rtn is " + rtn + ", value is " +
42        getDOConfigLevel[0] + " " + getDOConfigLevel[1] + " " + getDOConfigLevel[2] + " " + getDOConfigLevel[3] + " " +
43        getDOConfigLevel[4] + " " + getDOConfigLevel[5] + " " + getDOConfigLevel[6] + " " + getDOConfigLevel[7]);
44
45    int[] setToolDIConfigLevel = new int[]{1, 0};
46    int[] getToolDIConfigLevel = new int[2];
47    rtn = robot.SetToolDIConfigLevel(setToolDIConfigLevel);
48    System.out.println("SetToolDIConfigLevel rtn is " + rtn);
49    rtn = robot.GetToolDIConfigLevel(getToolDIConfigLevel);
50    System.out.println("GetToolDIConfigLevel rtn is " + rtn + ", value is " + getToolDIConfigLevel[0] + " " + getToolDIConfigLevel[1]);
51
52    int[] setStandardDILevel = new int[]{1, 1, 1, 1, 0, 0, 0, 0};
53    int[] getStandardDILevel = new int[8];
54    rtn = robot.SetStandardDILevel(setStandardDILevel);
55    System.out.println("SetStandardDILevel rtn is " + rtn);
56    rtn = robot.GetStandardDILevel(getStandardDILevel);
57    System.out.println("GetStandardDILevel rtn is " + rtn + ", value is " +
58        getStandardDILevel[0] + " " + getStandardDILevel[1] + " " + getStandardDILevel[2] + " " + getStandardDILevel[3] + " " +
59        getStandardDILevel[4] + " " + getStandardDILevel[5] + " " + getStandardDILevel[6] + " " + getStandardDILevel[7]);
60
61    int[] setStandardDOLevel = new int[]{0, 0, 0, 0, 1, 1, 1, 1};
62    int[] getStandardDOLevel = new int[8];
63    rtn = robot.SetStandardDOLevel(setStandardDOLevel);
64    System.out.println("SetStandardDOLevel rtn is " + rtn);
65    rtn = robot.GetStandardDOLevel(getStandardDOLevel);
66    System.out.println("GetStandardDOLevel rtn is " + rtn + ", value is " +
67        getStandardDOLevel[0] + " " + getStandardDOLevel[1] + " " + getStandardDOLevel[2] + " " + getStandardDOLevel[3] + " " +
68        getStandardDOLevel[4] + " " + getStandardDOLevel[5] + " " + getStandardDOLevel[6] + " " + getStandardDOLevel[7]);
69
70    robot.Sleep(2000);
71    return 0;
72}