Uploaded by zmkrzychu

KUKA KRL

advertisement
Metody programowania robotów
Roboty KUKA
Język programowania KRL
Klasy robotów przemysłowych KUKA
2
Możliwości montażu robotów KUKA
Różnice w układach smarowania
3
Jednostki liniowe i pozycjonery KUKA
4
Podstawowe elementy systemu robota
Manipulator
Szafa sterownicza (KR-C2, KR-C4)
Ręczny panel operatorski
5
Połączenie z urządzeniami towarzyszącymi
Sieci lokalne:
• ProfiBus
• EtherCAT
• ProfiNET
• DeviceNet
• CAN
Wejścia i wyjścia cyfrowe:
• pojedyncze
• zgrupowane
6
Elementy bezpieczeństwa
1. Cela ze ściankami z plexi lub
kraty
2. Wyłączniki na ramieniu
3. Wyłącznik kontrolny drzwi
4. Grzybek STOP przy celi
5. Grzybek STOP na panelu
6. Oprogramowanie
• Inne – np. kurtyny świetlne,
maty
• Przyciski potwierdzenia
bezpieczeństwa
7
Tryby pracy robota
• T1 (Test 1) – ograniczona szybkość, wyłączone zabezpieczenia,
możliwy przesuw ręczny
• T2 (Test 2) – pełna szybkość, wyłączone zabezpieczenia
• AUT (Automatyka) – pełna szybkość, brak konieczności stałej
obsługi panelu, włączone zabezpieczenia
• EXT (Automatyka zewnętrzna) – sterowanie z zewnętrznego
układu nadzorczego (np. PLC)
8
Sterowanie ręczne
• Praca w dowolnym z układów współrzędnych
9
Sterowanie ręczne osiowe
10
Sterowanie ręczne kartezjańskie
• Sterowanie za pomocą przycisków na panelu sterującym
11
Sterowanie ręczne kartezjańskie
• Sterowanie joystickiem 6-osiowym
12
Układy współrzędnych
Ruch końcówki robota może się odbywać w
następujących układach współrzędnych:
• układ współrzędnych zewnętrznych WORLD
• układ związany z podstawą robota ROBROOT
• układy związane z wykonywanym zadaniem
BASEn
• układ związany z narzędziem „zerowym” – z
kołnierzem FLANGE
• układ związany z narzędziem TOOL
13
Kalibracja (1)
14
Kalibracja (2)
15
Układ współrzędnych ROBROOT
16
Układ współrzędnych WORLD
17
Układy współrzędnych związane z zadaniem
18
Układ współrzędnych kołnierza
19
Układ współrzędnych narzędzia
• TCP – punkt zerowy narzędzia (tool center point)
• X+ - kierunek „uderzenia” narzędzia
20
Pomiar narzędzia - przebieg
21
Pomiar TCP
•Metoda 4-punktowa
każdy punkt przy innej
orientacji narzędzia
• Metoda referencyjna – wartości względem znanego narzędzia
22
Pomiar orientacji narzędzia
• Określenie kierunku osi X – „uderzenia” narzędzia:
– ustawić narzędzie osią uderzenia pionowo w dół (metoda ABC WORLD)
– ustawić narzędzie w TCP, następnie wskazać X- oraz Y+
23
Pomiar zewnętrznego TCP
24
Pomiar układów bazowych
• Cel – zdefiniować układ kartezjański związany z zadaniem
• Metoda 3-punktowa
Metoda pośrednia
25
Grupy użytkowników
• Administrator:
– konfiguracja układu sterowania robota (np. dodatkowe osie)
– konfiguracja systemu (np. konfiguracja sieci lokalnej)
– tworzenie własnych komend technologicznych
• Ekspert:
– zaawansowane programowanie w języku KRL
– tworzenie złożonych programów roboczych
– numeryczne programowanie ruchów
• Użytkownik:
– zadania uruchamiania systemu (kalibracja, pomiary)
– tworzenie prostych programów roboczych
– uruchamianie programów
26
Wykonanie programu
27
Edycja i wykonywanie programu
Do wprowadzania komend w trybie użytkownika służą formularze ułatwiają wprowadzanie komend i uzupełniają je o dodatki
Użytkownik zaawansowany może wprowadzać komendy wpisując je
bezpośrednim tekstem
Program może być wykonywany w następujących trybach:
• krok po kroku (zatrzymanie po każdej instrukcji)
• ciągły w przód (normalna praca robota)
• w tył (dla trybu „krok po kroku”)
28
Programowanie ruchu
29
Przesuw inicjalizacyjny
• Przesuw SAK (Satzkoinzidenz), ang. BCO
• Po co? Aby uzyskać zgodność aktualnego położenia ze
współrzędnymi aktualnego punktu w programie robota.
• Kiedy? Po wczytaniu nowego lub resecie istniejącego programu.
• Jak? Doprowadzenie TCP do znanego punktu lub na ścieżkę
• Parametry? Zmniejszona szybkość (jak w trybie testowym), aby
można było zatrzymać robota w przypadku możliwej kolizji
30
Ruch PTP
31
Ruch PTP
• Ruch po najszybszym torze
• Oś prowadząca – oś, która
potrzebuje najwięcej czasu na ruch
• Wszystkie osie startują i zatrzymują
się razem
• Dokładnego przebiegu nie da się
przewidzieć
• Za każdym razem przebieg jest taki
sam
32
PTP - parametry
• Nazwa punktu docelowego. Domyślnie jest to bieżące położenie
robota
• VEL - prędkość ustawiana jako ułamek (%) maksymalnej prędkości
ruchów programowanych
• ACC - przyspieszenie ruchów
• CONT - ścieżka ciągła (lub nie, jeśli pole puste)
• Odległość przybliżenia
• TOOL - wybrane narzędzie
• BASE - wybrany bazowy układ współrzędnych (lub narzędzie
stacjonarne)
• Rozpoznawanie kolizji - monitorowanie momentów w napędach
33
Ruch po torze liniowym (LIN)
34
Ruch LIN
35
Ruch LIN
36
LIN - parametry
• Nazwa punktu docelowego. Domyślnie jest to bieżące położenie
robota
• VEL - prędkość ruchu po torze wyrażona w m/s
• ACC - przyspieszenie ruchów
• CONT - ścieżka ciągła - punkt końcowy nie jest osiągany
precyzyjnie (lub jest, jeśli pole puste)
• Wielkość przybliżenia - w mm
• TOOL - wybrane narzędzie
• BASE - wybrany bazowy układ współrzędnych (lub narzędzie
stacjonarne)
• Prowadzenie orientacji:
– stała (jak w punkcie początkowym)
– zmienna (zmienia się liniowo od początku do końca)
• Rozpoznawanie kolizji
37
Ruch po torze kołowym (CIRC)
38
Ruch CIRC
39
Ruch CIRC – prowadzenie orientacji
40
CIRC - parametry
• Nazwa punktu docelowego. Domyślnie jest to bieżące położenie
robota
• Nazwa punktu pośredniego.
• VEL - prędkość ruchu w m/s, ACC - przyspieszenie ruchów
• CONT - ścieżka ciągła - punkt końcowy nie jest osiągany
precyzyjnie (lub jest, jeśli pole puste)
• Wielkość przybliżenia - w mm
• TOOL - wybrane narzędzie, BASE - wybrany układ bazowy
• Prowadzenie orientacji:
– stała (jak w punkcie początkowym)
– zmienna (zmienia się liniowo od początku do końca)
• Rozpoznawanie kolizji
41
Przybliżanie ruchów
42
Przybliżanie ruchów
43
Przybliżanie ruchów
44
Przybliżanie ruchów
45
Przybliżanie ruchów
Bez przybliżania czas trwania ruchu jest znacznie większy - hamowania
46
Przedbieg programu
• Na ekranie podczas wykonywania programu widoczny jest licznik
przebiegu – zaznaczenie aktualnie wykonywanego polecenia
• Przedbieg programu – wykonywanie kilku (standardowo 3)
poleceń w przód, aby umożliwić planowanie toru przybliżeń
• W przedbiegu wykonywane są funkcje arytmetyczne i sterujące
np. wyjściami cyfrowymi
• Niektóre instrukcje zatrzymują przedbieg, wtedy nie jest możliwe
wykonanie przybliżenia
• Jest możliwa zmiana wielkości przedbiegu przez zmianę wartości
zmiennej $ADVANCE (liczba linii przedbiegu)
• $ADVANCE = 0
- brak przedbiegu, ścieżki bez przybliżeń
• $ADVANCE = 3
- wartość domyślna (w fabrykach WV – 1)
• $ADVANCE = 5
- wartość maksymalna
47
Funkcje oczekiwania
• WAIT – oczekiwanie przez określony czas (przedbieg jest
zatrzymywany)
48
Funkcje oczekiwania
• WAIT FOR – zatrzymanie w oczekiwaniu na:
–
–
–
–
zmianę sygnału wejściowego (IN)
zmianę sygnału wyjściowego (OUT)
zmianę wewnętrznej flagi (FLAG, CYCFLAG)
zmianę stanu timera (TIMER)
• Można sygnały powiązać logicznie (AND, OR, EXOR, NOT)
• Jeżeli użyto CONT, funkcja nie zatrzymuje przedbiegu
UWAGA – zmiana sygnału nie jest rozpoznawana po jego
sprawdzeniu
49
Wejście i wyjście
• OUT – wyprowadzenie wartości TRUE lub FALSE na wyjście o
określonym numerze (lub określonej nazwie)
• CONT – bez zatrzymania przedbiegu, ustawienie wyjścia podczas
przedbiegu
50
Wejście i wyjście
• PULSE – wyprowadzenie impulsu o określonym czasie trwania na
wyjście
• W formularz wstawia się czas trwania impulsu
• CONT – bez zatrzymania przedbiegu, ustawienie sygnału podczas
przedbiegu
51
Wejście i wyjście synchronizowane z torem
•
•
•
•
•
•
•
•
SYN OUT, SYN PULSE – wyjście zależne od ścieżki
(1) – numer wyjścia
(2) – nazwa wyjścia (jeśli przypisana)
(3) – stan, do którego przełączamy wyjście
(4) – punkt, względem którego następuje przełączenie:
START – względem punktu początkowego (czas)
END – względem punktu końcowego (czas)
PATH – względem punktu początkowego (odległość)
52
Programowanie z poziomu eksperta
• Zmienić użytkownika na „Expert”
Program (tzw. moduł) – 2 pliki:
• SRC – tekstowe źródło kodu programu
• DAT – powiązany plik ze współrzędnymi punktów i innymi
potrzebnymi danymi
53
Zmienne i deklaracje
• Składnia
DECL Typ_danych Nazwa_Zmiennej
Przykład:
DECL INT Liczba_sztuk
• Typy proste:
INT, REAL, BOOL, CHAR
Można opuścić słowo DECL
54
Zmienne i deklaracje
• Tablice:
Indeksy zaczynają się od 1
DECL Typ_danych Nazwa_tablicy[Liczba_elementów]
• Przykłady tablic
DECL REAL Pomiar[3]
DECL REAL Wysokosc[2,6]
55
Deklaracja zmiennych - struktury
• Struktura – zestaw zmiennych różnego typu
STRUC Typ_chwytak REAL Szer, INT L_szczek, BOOL Szybki
DECL Typ_chwytak Chwytak1
...
Chwytak1={Szer 25.3, L_szczek 2, Szybki FALSE}
Chwytak1.Szybki = TRUE
• Wstępnie zdefiniowane struktury:
STRUC AXIS
REAL A1,A2,A3,A4,A5,A6
STRUC E6AXIS
REAL A1,A2,A3,A4,A5,A6,E1,E2,E3,E4,E5,E6
STRUC FRAME
REAL X,Y,Z,A,B,C
STRUC POS
REAL X,Y,Z,A,B,C, INT S,T
STRUC E6POS
REAL X,Y,Z,A,B,C,E1,E2,E3,E4,E5,E6 INT S,T
56
Odczyt stanów robota – zmienne systemowe
•
•
•
•
•
•
$TIMER[1..64] - timery
$FLAG[1..1024] – markery (flagi)
$CYCFLAG[1..256] – flagi stale analizowane (cykliczne)
$I[1..20] – licznik etapów obróbki
$IN[1..4096] – wejścia cyfrowe
$OUT[1.4096] – wyjścia cyfrowe
57
Operatory i funkcje standardowe
Operatory:
• Arytmetyczne: + - * /
• Porównania: == <> > < >= <=
• Logiczne: NOT AND OR EXOR
• Bitowe: B_NOT B_AND B_OR B_EXOR
• „:” – połączenie z układem współrzędnych
Funkcje:
• ABS(X) SQRT(X) SIN(X) COS(X) TAN(X) ACOS(X) ATAN2(Y,X)
58
Operator łączenia
Operator geometryczny ‘:’ (dwukropek)
W tabeli typy wyników zależnie od typów argumentów:
Lewy operand
Operator
(układ odniesienia)
Prawy operand
(układ docelowy)
Wynik
POS
:
POS
POS
POS
:
FRAME
FRAME
FRAME
:
POS
POS
FRAME
:
FRAME
FRAME
59
Ważne zmienne systemowe
$TIMER_STOP[Nr_timera](FALSE – stop, TRUE – start)
$AXIS_ACT
Typ: E6AXIS
Aktualna pozycja robota
$AXIS_INT
Typ: E6AXIS
Położenie w chwili zgłoszenia przerwania
$MODE_OP
Typ: ENUM: #T1, #T2, #AUT, #EX, #INVALID
$NEAR_POSRET BOOL – robot w sferze wokół punktu $POS_RET
$NEARPATHTOL Promień sfery wokół $POS_RET
$ON_PATH
BOOL – na ścieżce programowej
$OV_PRO
INT - procent prędkości programowej
$POS_ACT
E6POS – aktualne położenie kartezjańskie
$POS_INT
E6POS – położenie kartezjańskie w chwili przerwania
$POS_RET
Położenie kartezjańskie powrotu na ścieżkę
$SOFTN_END[n], $SOFTP_END[n] Software-owe ograniczniki osi robota (n=1..12)
$T2_OV_REDUCE BOOL – Czy włączone ograniczenie prędkości w trybie T2
$VEL_ACT
REAL – aktualna prędkość końcówki [m/s]
60
Ważne zmienne systemowe
$WORLD – światowy układ współrzędnych (tylko do odczytu)
$ROBROOT – układ współrzędnych robota (tylko do odczytu)
$TOOL – bieżące narzędzie
TOOL_DATA[n] – tabela zdefiniowanych narzędzi
$BASE – bieżący bazowy układ współrzędnych
BASE_DATA[n] – tabela zdefiniowanych układów bazowych
$LOAD – bieżące dane odnośnie obciążenia
LOAD_DATA[n] – tabela definicji obciążeń
S, T – zmienne „status” i „turn” – informacja o konfiguracji robota, jeżeli dane
położenie może być osiągnięte przy różnych konfiguracjach
S, T są obliczane tylko przy ruchach PTP, zatem pierwszy ruch musi być PTP
61
Status, turn
T:
Wart
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
0
A6 >= 0°
A5 >= 0°
A4 >= 0°
A3 >= 0°
A2 >= 0°
A1 >= 0°
1
A6 < 0°
A5 < 0 °
A4 < 0°
A3 < 0°
A2 < 0°
A1 < 0°
S:
Wartość
Bit 2
Bit 1
Bit 0
0
0° <= A5 < 180°
A5 < -180°
A3 < a
a – zależy od typu
robota
Grundbereich
1
-180° <= A5 < 0°
A5 >= 180°
A3 >= a
Überkopfbereich
62
PTP – postać alternatywna
PTP Punkt_koncowy <Dane_dodatkowe>
Przykłady:
PTP {Z 500, X 125.8}
PTP { A1 10, A2 -10, A3 0, A4 -40.5, A5 34, A6 120} C_PTP
PTP_REL Wartości_względne
Przykłady:
PTP_REL {A3 -40}
PTP_REL { X 200, Z -20, B 30} C_PTP
63
LIN, CIRC
LIN {Z 400, Y -200}
LIN_REL{Z -30, X 100}
CIRC {Punkt_pośredni}, {Punkt_końcowy}, Kąt
CIRC_REL {Punkt_pośredni}, {Punkt_końcowy}, Kąt
;???
64
Instrukcja warunkowa
IF Warunek THEN
Polecenia
ELSE
Polecenia
ENDIF
lub
IF Warunek THEN
Polecenia
ENDIF
65
Instrukcja wyboru
SWITCH Kryterium_selekcji
CASE 1
Polecenia
CASE 2
Polecenia
DEFAULT
Polecenia
ENDSWITCH
66
Pętla z licznikiem
FOR Licznik = Start TO End STEP Zmiana
Polecenia
ENDFOR
67
Pętla „wyrzucająca”
WHILE Warunek
Polecenia
ENDWHILE
68
Pętla „niewyrzucająca”
REPEAT
Polecenia
UNTIL Warunek
69
Instrukcja skoku
GOTO Etykieta
…
Etykieta:
…
Pętla nieskończona
LOOP
Polecenia
ENDLOOP
70
Podprogramy
• Podprogramy: procedury i funkcje
DEF Nazwa_podprogramu()
Polecenia
END
DEFFCT Typ_wartości Nazwa_funkcji()
Polecenia
RETURN (Wartość)
ENDFCT
71
Podprogramy
72
Różne instrukcje
HALT – zatrzymanie programu, aż do naciśnięcia przycisku „Start”
EXIT – wyjście z najbardziej zagnieżdżonej pętli
RETURN – wyjście z podprogramu do programu wywołującego
RETURN (Wartość) – wyjście z funkcji ze zwrotem wartości
Komentarze:
Tekst od średnika do końca linii jest ignorowany
Można wstawić formularz „Komentarz”
Można wstawić formularz „Stempel” – dodatkowo znacznik czasowy
73
Programowanie przerwań
GLOBAL INTERRUPT DECL Priorytet WHEN Zdarzenie DO
Podprogram
Priorytet – 1..39 lub 81..128, 1 – najwyższy (numer przerwania)
Zdarzenie – co wyzwala przerwanie: zmiana wartości zmiennej
logicznej, sygnał, wynik porównania
Podprogram – nazwa wywoływanego podprogramu
INTERRUPT ON nr - włączenie przerwania
INTERRUPT OFF nr - wyłączenie przerwania
INTERRUPT DISABLE nr - zablokowanie włączonego przerwania
INTERRUPT ENABLE nr - odblokowanie zablokowanego przerwania
74
Programowanie przerwań
BRAKE – zatrzymanie ruchu robota w obsłudze przerwania
BRAKE F – szybkie zatrzymanie ruchu robota
RESUME – wyjście z przerwań i podprogramów aż do poziomu
zadeklarowania bieżącego przerwania
75
Akcje włączane na ścieżce
TRIGGER WHEN DISTANCE = Punkt_włączenia DELAY = Czas DO
Polecenie <PRIO = Priorytet>
Punkt_włączenia = 0 – włączenie na początku ścieżki
Punkt_włączenia = 1 – włączenie na końcu ścieżki
Czas – czas opóźnienia w ms
Polecenie – przypisanie wartości zmiennej, wywołanie
podprogramu, instrukcja OUT lub PULSE (zmiana wartości wyjścia)
Priorytet – 1..39 lub 81..128, 1 – najwyższy
Przydatne zmienne systemowe:
$DIST_NEXT – odległość do następnego punktu (<= 0)
$DISTANCE – całkowita długość wykonywanej instrukcji ruchu
76
Akcje włączane na ścieżce
TRIGGER WHEN PATH = Odległość DELAY = Czas DO Polecenie
<PRIO = Priorytet>
Tylko podczas trwania ruchów LIN i CIRC
Odległość – przesunięcie działania w przestrzeni (może być ujemne)
Czas – czas opóźnienia w ms
Polecenie – przypisanie wartości zmiennej, wywołanie
podprogramu, instrukcja OUT lub PULSE (zmiana wartości wyjścia)
Priorytet – 1..39 lub 81..128, 1 – najwyższy
Przydatne zmienne systemowe:
$DIST_NEXT – odległość do następnego punktu (<= 0)
$DISTANCE – całkowita długość wykonywanej instrukcji ruchu
77
Download