Uploaded by Damian Kuchniak

Programowanie robotów

advertisement
Poznań 2018
POLITECHNIKA POZNAŃSKA
Wydział Budowy Maszyn i Zarządzania
Instytut Technologii Mechanicznej
Zakład Projektowania Technologii
ul. Piotrowo 3, 61-138 Poznań
tel. +48 +61 6652-162
fax: +48 +61 6652-200
e-mail: olaf.ciszak@put.poznan.pl
Pok. 638
Konsultacje
• Studia stacjonarne: środa, godz. 8:00 – 9:30
• Studia niestacjonarne: 12.03 i 18.03.2017 r. 15:30 – 17:00
Pok. 638

Zdanowicz R., Podstawy Robotyki, WPŚ, 2001

Zdanowicz R., Podstawy
Przemysłowych, WPŚ, 2001

Kost G., Świder J., Programowanie robotów on-line, WPŚ 2008

Robotyki-Laboratorium
Żurek J., Stan i tendencje rozwojowe
technologicznych. WPTPN, Poznań 1997.
robotyzacji

Żurek J., Robotyzacja
zagadnienia, WPP 1997

Podręczniki programowania robotów przemysłowych:


FANUC

PANASONIC

ABB

IRP-6
Internet
procesów
z
technologicznych
robotów
procesów
–
wybrane
Kinematyka robotów
Transformacja prosta i odwrotna
Programowanie
robotów przemysłowych
WPROWADZENIE
W celu opracowania schematu ruchu robota jest konieczne przyjęcie
pewnej metody, która umożliwi opis położenia ramienia w punkcie i w
czasie. Definiując robota używa się dwóch podstawowych elementów:


pary kinematycznej,
ramienia.
Para kinematyczna ma jeden stopień swobody (para V klasy) i może
wykonywać ruch liniowy w osi X, Y lub Z lub obrotowy w osi A, B,
C (w przegubie), pomiędzy sąsiadującymi położeniami.
Ramię stanowi sztywna konstrukcja, która łączy pary kinematyczne
(przeguby).
Przeguby oznacza się przez Jn , gdzie n = 1 reprezentuje podstawę
robota, a ramienia przez Ln, gdzie n=1 przedstawia ramię
najbliżej podstawy. Symbolu ln używać się do oznaczenia
długości ramienia.
REPREZENTACJA POZYCJI ROBOTA
Ruch robota o strukturze przegubowej (rys. 1) jest trudniejszy do
analizy niż robota o strukturze w układzie kartezjańskim (rys. 2) i
dlatego podane dalej przykłady będą częściej dotyczyć tej
konfiguracji i jej rozszerzeń.
Rys. 1. Robot o strukturze przegubowej
14:18
Rys. 2. Robot o strukturze kartezjańskiej
8/120
Rys. 3. Dwuwymiarowy robot o dwóch stopniach swobody
Układ biegunowy 2D
Pw  f 1 , 2 
(1)
Układ kartezjański 2D
Inny sposób to zdefiniowanie pozycji ramienia w przestrzeni
kartezjańskiej, w układzie współrzędnych zewnętrznym w stosunku
do robota. Początek układu jest zlokalizowany w podstawie robota.
Położenie końca ramienia może być wtedy zdefiniowane poprzez
funkcję:
Pw  f ( x, z)
(2)
Układ kartezjański 3D
Oczywiste jest, że ta koncepcja opisu może być z łatwością
rozszerzona do trzeciego wymiaru i wtedy funkcja (2) przyjmie
postać:
Pw  f ( x, y, z)
(3)
Przedstawienie pozycji ramienia w układzie kartezjańskim
jest celowe wtedy, gdy robot musi współpracować z innymi
maszynami. Maszyny te mogą nie mieć interpretacji ruchu
robota w układzie przegubowym (biegunowym) i wtedy ta
„neutralna" reprezentacja - w układzie kartezjańskim, jest
najwygodniejsza w użyciu. Aby używać obu tych systemów
opisu, należy dokonać transformacji z jednego układu do
drugiego.
Przechodzenie
z
układu
biegunowego
do
kartezjańskiego nazywane jest transformacją prostą, a z
układu kartezjańskiego do biegunowego transformacją
odwrotną.
TRANSFORMACJA PROSTA RAMIENIA O DWÓCH
STOPNIACH SWOBODY
Na podstawie rys. 3 można ustalić pozycję końca efektora w
przestrzeni definiując wektory dla ramienia l1 i dla ramienia l2:
r1  l1  cos 1 , l1  sin 1 
(4)
r2  l 2  cos(1  2 ), l 2  sin(1  2 )
(5)
Dodając wektory (4) i (5) otrzymuje się współrzędne x, z końca
efektora w przestrzeni:
x  l1  cos 1  l 2  cos(1  2 )
(6)
z  l1  sin 1  l 2  sin(1  2 )
(7)
TRANSFORMACJA ODWROTNA RAMIENIA O DWÓCH
STOPNIACH SWOBODY
W wielu przypadkach jest znacznie ważniejsze, aby znając kąty
obrotu w dwóch przegubach znaleźć położenie końca ramienia w
przestrzeni. Typowa sytuacja występuje wtedy, gdy operator musi
policzyć te kąty, aby przesunąć efektor do punktu w przestrzeni
zdefiniowanego przez jego współrzędne. Dla robota o dwóch
ramionach są
możliwe dwa
sposoby osiągnięcia
współrzędnych (x, z) - pokazane na rys. 4.
punktu
o
Rys. 4. Dwa możliwe położenia ramion robota dla osiągnięcia pozycji
efektora w punkcie o współrzędnych x, z
W językach programowania robotów występują komendy ABOVE
(powyżej) i BELOW (poniżej), które określają czy w przegubie
między ramionami ma nastąpić obrót o kąt 2 w kierunku
dodatnim, czy ujemnym. W pokazanym na rys. 4 przykładzie
przyjmiemy kąt 2 jako dodatni.
Używając tożsamości trygonometrycznych:
cos (A  B)  cos A  cos B  sin A  sin B
(8)
sin (A  B)  sin A  cos B  sin B  cos A
(9)
wzory (6) i (7) można przedstawić:
x  l1  cos 1  l 2  cos 1  cos 2  l 2  sin 1  sin 2
(10)
z  l1  sin 1  l 2  sin 1  cos 2  l 2  cos 1  sin 2
(11)
Podnosząc do kwadratu obie strony równań 10 i 11 oraz
dodając je, otrzymuje się:
x 2  z 2  l12  l 22
cos  2 
2  l1  l 2
(12)
Definiując kąty  i  tak jak pokazano na rys. 5
Rys. 5. Oznaczenie kątów  i 
można napisać:
l 2  sin  2
tg 
l 2  cos  2  11
z
tg 
x
(13)
(14)
Używając tożsamości trygonometrycznej:
tgA  tgB
tg(A  B) 
1  tgA  tgB
(15)
otrzymuje się ostatecznie:
z  (l1  l 2  cos  2 )  x  l 2  sin  2
tg1 
x  (l1  l 2  cos  2 )  z  l 2  sin  2
(16)
Znając długości ramion l1 i l2, można obliczyć potrzebne kąty
(wzory 12 i 16), które pozwolą umieścić efektor w zadanym
punkcie, w przestrzeni o współrzędnych x, z.
ROBOT O TRZECH STOPNIACH SWOBODY W
PRZESTRZENI O DWÓCH WYMIARACH
Dodając trzeci stopień swobody otrzymuje się robota {BR1,
BR2, BR3} - jak to pokazano na rys. 6. Ten trzeci stopień
swobody będzie reprezentował przegub „nadgarstkowy".
Rys. 6. Robot o trzech stopniach swobody w przestrzeni dwuwymiarowej
Współrzędne w przestrzeni dla końca ramienia (wg rys. 6) będą
opisane układem równań:
x  l1  cos 1  l 2  cos(1  2 )  l3  cos(1  2  3 )
(17)
z  l1  sin 1  l 2  sin(1  2 )  l3  sin(1  2  3 )
(18)
  (1  2  3 )
(19)
Wykorzystując wyniki, które otrzymano dla robota o dwóch
przegubach, można wyznaczyć transformację odwrotną dla
robota o trzech stopniach swobody. Definiując pozycję końca
ramienia, używając oznaczeń x, z, . Kąt  oznacza orientację
kąta „nadgarstka".
możemy obliczyć kąty 1 + 2 + 3 wprowadzając:
x 3  x  l3  cos 
(20)
z 3  z  l3  sin 
(21)
Mając ustaloną pozycję trzeciego przegubu, problem ustalenia
kątów sprowadza się do przypadku robota z dwoma stopniami
swobody, który analizowany był wcześniej.
ROBOT Z CZTEREMA STOPNIAMI SWOBODY W
PRZESTRZENI O TRZECH WYMIARACH
Rysunek
7
pokazuje
konfigurację
robota
o
strukturze
{CR, AR1 YR, AR2} w przestrzeni o trzech wymiarach.
Robot ma 4 stopnie swobody: przegub J1 pozwala na obrót wokół
osi
Z,
przegub
kinematyczna
J3
J2
pozwala
jest
na
obrót
połączeniem
wokół
liniowym
osi
X,
zdolnym
para
do
przemieszczania się wzdłuż osi Y, przegub J4 pozwala na rotację
wokół osi X (równoległej do osi przegubu J2).
Rys. 7. Robot o czterech stopniach swobody i strukturze {CR, AR1, YR, AR2}
w płaszczyźnie trójwymiarowej
Zdefiniujemy (zgodnie z rys. 7) kąt  jako kąt obrotu przegubu J1,
kąt  obrotu przegubu J2 nazywa się kątem wznoszenia, długość
liniowego połączenia J3 nazwa się rozciągnięciem l, kąt  obrotu
przegubu J4 tworzący płaszczyznę Y-Z nazwa się kątem skoku.
Pozycja P końca ramienia zdefiniowana w przestrzeni ma postać:
x  (l  cos   l 4  cos )  cos 
(22)
y  (l  cos   l 4  cos )  sin 
(23)
z  l1  l  sin   l 4  sin 
(24)
Mając określone położenie punktu P(x, y, z) i kąt skoku  , można
znaleźć każdą pozycję przegubów w przestrzeni. Dla punktu P4
(x4, y4, z4), który jest pozycją przegubu J4, otrzyma się:
x 4  x  l 4  cos   cos 
(25)
y 4  y  l 4  cos   sin 
(26)
z 4  z  l 4  sin 
(27)
Wartości l,  oraz  można obliczyć z zależności:
l  x 24  y 24  (z 4  l1 ) 2
(28)
z 4  l1
sin  
1
(29)
y4
cos  
l
(30)
Układ sterowania robota powinien wykonywać
obliczenia
możliwie
szybko,
gdyż
jest
to
konieczne dla uzyskania odpowiedniej płynności
działania robota - obliczenia powinny, więc być
relatywnie nieskomplikowane. Należy zauważyć,
że w powyższym rozumowaniu rozdzielono
problem orientacji w przestrzeni od problemu
pozycjonowania ramienia, co bardzo upraszcza
osiągnięcie właściwego rozwiązania.
Programowanie RP
Wstęp
Sterowanie robotem przemysłowym polega na formułowaniu rozkazów
wejściowych (instrukcji), sterujących jego poszczególnymi napędami za
pośrednictwem jego układu sterowania (US, ang. Control Unit).
Przetwarzanie tych rozkazów US zapewnia elementom łańcucha
kinematycznego robota przemieszczanie się w przestrzeni roboczej z
określoną dokładnością, wg. zadanej trajektorii. Czynnościami
przetwarzania informacji zajmują się układy sterowania robota. System
programowania jest integralną częścią układu sterowania robota
przemysłowego (jest jego podsystemem wewnętrznym).
Kluczowym elementem procesu programowania i kontroli działania
robota w warunkach warsztatowych, we wszystkich sposobach i
poziomach programowania i oddziaływania na niego jest operator
systemu robotowego tzw. technolog programista
Proces postrzegania i generowania odpowiednich decyzji operatora robota
Poziom
operatorski
PROGRAMISTA
Obserwacja sceny robota
OPIS ZADANIA ROBOTA
- Wybór sposobu realizacji zadania RP
- kontrola realizacji zadania przez RP
DEFINIOWANIE ZADAŃ RP
-podstawowych: poz. referencyjne trajektorii ruchu (pkt. pozycjonowania)
-pomocniczych: sygnały wejść i wyjść
Poziom
algorytmiczny
PANEL PROGRAMOWANIA
- instrukcje programowania RP
TRANSFORMACJA ZADANIA W US RP
- współrzędne naturalne (wew.) ruchu robota
- powiązania logiczne w algorytmie programu RP
Poziom
Otoczenia RP
(sceny RP)
TRANSFORMACJA ZADANIA
(instrukcje wew. sterujące ruchem robota)
- współrz. sensorów wewnętrznych,
- zakres ruchów napędów robota
SCENA RP
POSTRZEGANIE
DANE Z SENSORÓW
ZEWNĘTRZNYCH
OBSERWUJĄCYCH SCENĘ
(czujniki zew, system wizyjny)
Poziom sceny
Osadzony jest w otoczeniu RP. Tutaj generowane są sygnały sensorów
wewnętrznych i zewnętrznych oraz realizowana jest interakcja pomiędzy
elementami systemu robotowego a otoczeniem.
Poziom algorytmiczny
Informacje pochodzące z poziomu sceny są przetwarzane przez ściśle
określone algorytmy obróbki danych wejściowych, a wyniki, w postaci
odpowiednich informacji o stanie systemu są przesyłane jako informacja
do operatora i do poziomu sceny, jako dane do realizacji czynności RP
Poziom działania operatorskiego
Jest poziomem najwyższym, gdzie są realizowane m. in:
- opis zadania RP, tj, formułowanie algorytmu programu RP,
- nadzór i kontrola jego realizacji
Programowanie RP
Opracowanie
nowego programu
Rejestracja
programu
Edycja programu
Zapamiętanie
(Teach in) instrukcji
pozycjonowanie
Edycja (korekta)
instrukcji
pozycjonowania
KONIEC
Wybór programu
PANELE PROGRAMOWANIA
IRP (US USR-6)
Układy Sterowania i Panele Programowania
ABB
(IRC5+ FlexPendant)
KUKA
(KR-C4 + smartPAD)
Układy Sterowania i Panele Programowania
Fanuc
(R30iA+ iPendant)
Panasonic
(G2 + TeachPendant)
Programowanie RP – układy współrzędnych
Układ współrzędnych określa pozycję oraz orientację robota.
Układ współrzędnych zdefiniowany jest względem robota lub względem
przestrzeni roboczej.
Układy współrzędnych:
• Globalny
• Podstawowy (regionalny)
• Interfejsu mechanicznego (lokalny).
Najczęściej przemieszczenie TCP narzędzia odbywa się w układach:
• tzw. wewnętrznym (Joint CS),
• Kartezjańskim (World CS),
• Cylindrycznym (Cylindrical CS),
• Narzędzia (Tool CS),
• Użytkownika (USER CS).
Programowanie RP – układy współrzędnych
Programowanie RP – układy współrzędnych
Programowanie RP – układy współrzędnych
IRP
Xn
Z
Zn
Y
Yn
X
IRP
Dioda paląca się przy przycisku
wyboru układu współrzędnych
Wybór osi
robota
UKŁAD KARTEZJAŃSKI
OSIE 1÷3
UKŁAD KARTEZJAŃSKI
OSIE 4÷6
UKŁAD WEWNĘTRZNY
UKŁAD WEWNĘTRZNY
UKŁAD CYLINDRYCZNY
UKŁAD CYLINDRYCZNY
OSIE 1÷3
OSIE 4÷6
OSIE 1÷3
OSIE 4÷6
Przyporządkowanie położeniom
przycisków wielkości fizycznych
A1
A2
A3
A4
A5
A6
=
=
=
=
=
=
X
Y
Z
N-nutacja
niewykorzystane
P-precesja
A1 =  (obrót wokół osi do podstawy)
A2 =  (zgięcie ramienia dolnego)
A3 =  (zgięcie ramienia górnego)
A4 = t (zgięcie przegubu)
A5 = v (obrót kołnierza)
A6 = tor (opcja)
A1 = ruch po promieniu
A2 =  (obrót wokół osi do podstawy)
A3 = Z
A4 = N-nutacja
A5 = niewykorzystane
A6 = P-precesja
FANUC
Układ współrzędnych połączeniowych (Joint Coordinate System)
FANUC
Układ współrzędnych świata (World Coordinate System)
Układ współrzędnych narzędzia (Tool Coordinate System)
FANUC
Układ współrzędnych interfejsu mechanicznego (Mechanical Interface Coordinate System)
Układ współrzędnych narzędzia (Tool Coordinate System)
FANUC
Układ współrzędnych użytkownika
User Coordinate System
FANUC
Wybór układu współrzędnych
PANASONIC
PANASONIC
PANASONIC
PANASONIC
PANASONIC
Programowanie RP - podstawowe instrukcje
Instrukcje pozycjonowania – bez interpolacji typu PTP
Trajektoria nieliniowa (inaczej ruch pojedynczych osi), osie robota poruszają się z
określoną prędkością ruchu (lub określonym czasie), rozpoczynają i kończą ruch (dotyczy
Fanuc i Panasonic) w tym samym momencie. Tor zazwyczaj nie jest linią prostą.
Położenie narzędzia podczas ruchu nie jest kontrolowane.
2
Start Point
End Point
1
3
IRp
FANUC
PANASONIC
ABB
POZ QLIN
Prędkość (%) lub czas (T)
ZGRUB (DOKŁ)
BEZW (WZGL)
JP [1] 100% FINE/CNTk
JP [1] 500 mm/sec FINE/CNTk
JP [1] 250 cm/sec FINE/CNTk
JP [1] 20 m/sec FINE/CNTk
JP [1] 100 inch/sec FINE/CNTk
JP [1] 260 deg/sec FINE/CNTk
(Joint Position)
MOVEP P1 10 m/min
MOVEP P1 50 %
MoveJ, p1, v100, z100, tool1
FANUC
FANUC
FANUC
Poziom płynności ruchu
Smooth Level
PANASONIC
TOOL = 1:DINSE
MOVEP P1 15.00m/min
MOVEP P2 12.00m/min
MOVEP P3 18.00m/min
MOVEP P4 25%
MOVEL P5 40%
…
PANASONIC
Poziom płynności ruchu
Smooth Level
ABB
Programowanie RP - podstawowe instrukcje
Instrukcje pozycjonowania –interpolacja LINIOWA
Trajektoria liniowa (inaczej ruch liniowy), osie robota poruszają się tak aby
zapewnić kontrolę przejścia punktu TCP narzędzia po linii prostej od punktu
startowego do punktu końcowego z określona prędkością.
2
Start Point
End Point
1
3
IRp
FANUC
PANASONIC
ABB
POZ LIN
Prędkość (%)
ZGRUB (DOKŁ)
BEZW (WZGL)
LP [1] 500 mm/sec FINE/CNTk
LP [1] 250 cm/sec FINE/CNTk
LP [1] 20 m/sec FINE/CNTk
LP [1] 100 inch/sec FINE/CNTk
LP [1] 260 deg/sec FINE/CNTk
(Linear Position)
MOVEL P1 10 m/min
MOVEL P1 50 %
MoveL, p1, v100, z100, tool1
FANUC
Ruch Liniowy
Ruch obrotowy
PANASONIC
TOOL = 1:DINSE
MOVEL P1 10.00m/min
MOVEL P2 15.00m/min
MOVEL P3 10.00m/min
MOVEC P4 25.00m/min
MOVEL P5 15.00m/min
…
Programowanie RP - podstawowe instrukcje
Instrukcje pozycjonowania – interpolacja KOŁOWA
Trajektoria z interpolacją kołową, polega na takim przeprowadzeniu osi robota aby
zapewnić przejście punktu TCP narzędzia po linii łuku (wycinku koła) od punktu startu do
końcowego poprzez punkt pośredni (podporowy) z określoną prędkością z kontrolą
położenia narzędzia.
2
Start Point
1
End Point
3
IRp
FANUC
PANASONIC
ABB
POZ KOLO
Prędkość (V=100%)
KAT (=90 DEG)
ZGRUB (DOKŁ)
BEZW (WZGL)
POLOZENIE POCZATKOWE (przy WZGL)
POLOZENIE POSREDNIE
POLOZENIE KONCOWE
JP/LP/CP [1] 100%
FINE/CNTk
CP [2]
P [3] 600 mm/sec
FINE/CNTk
(Circular Position)
MOVEC P1 10 m/min
MOVEC P2 50 %
MOVEC P3 60 %
MoveC, p2, p3, v100,
z100, tool1
FANUC
PANASONIC
Trajektoria kołowa będzie określona przez ustawienie co najmniej trzech
kolejnych punktów interpolacji okrężnej (MOVEC) dla określonego posuwu C.
PANASONIC
UWAGA !
Niekompletne nauczenie interpolacji okrężnej
Trzy kolejne punkty uczenia muszą zostać ustalone i zapamiętane jako
interpolacja okrężna, by została właściwie utworzona. Jeżeli ustawiane punkty
posuwu okrężnego nie są zapisane jako co najmniej trzy kolejne punkty, to
zostaną one automatycznie zmienione na trzy linearne punkty.
PANASONIC
Begin of Program
TOOL = 1:DINSE
MOVEP P1 15.00m/min
MOVEC P2 15.00m/min
MOVEC P3 15.00m/min
MOVEC P4 15.00m/min
MOVEL P5 15.00m/min
…
ABB
Programowanie RP - podstawowe instrukcje
Narzędzie - TOOL
Układ narzędzia (Tool Coordinate System) – kartezjański układ współrzędnych
określony względem kartezjańskiego układu interfejsu mechanicznego kiści RP w
którym definiuje się parametry geometryczne narzędzia zamocowanego w
interfejsie mechanicznym manipulatora robota przemysłowego.
Najczęściej punkt (0,0,0) reprezentuje punkt roboczy narzędzia (centralny) TCP
a oś Z reprezentuje oś narzędzia.
Współrzędne x, y, z określają położenie TCP względem układu współrzędnych
interfejsu mechanicznego, natomiast współrzędne w, p, r określają położenie osi
układu narzędzia względem układu interfejsu mechanicznego
IRP-6
Instrukcja:
0:10 NARZEDZIE = 1
MAN → NARZEDZIE → NR → PARAM
ORIENT (kąty Eulera NUT i PREC)
WSPOLRZ (X=…, Y=…, Z=…) – punktu TCP (A)
FANUC
Instrukcja:
UTOOL_NUM = 1
PANASONIC
Instrukcja:
TOOL […]
PANASONIC
Programowanie RP - podstawowe instrukcje
Prędkość – SPEED
Prędkość maksymalna – MAXIMUM SPEED
Uwaga
Zaprogramowana prędkość przemieszczania punktu roboczego narzędzia
(TCP) nie może przekraczać wartości maksymalnej jaka może osiągnąć robot.
Jeżeli prędkość przewyższy zaprogramowaną maksymalną wartość prędkości
nastąpi wygenerowanie błędu (alarmu)
IRP-6
Każda instrukcja pozycjonowania wymaga określenia prędkości z jaką ma
się odbywać ruch. Prędkość dla instrukcji pozycjonowania deklaruje się
jako procent prędkości podstawowej. Prędkość podstawowa i maksymalna
może
być
zmieniana
w
dowolnym
miejscu
programu
instrukcją,
PRĘDKOŚĆ. Podczas wykonywania instrukcji pozycjonowania sprawdzane
jest, czy prędkość ruchu nie jest większa od aktualnie zadeklarowanej
prędkości maksymalnej.
Prędkość podstawową i maksymalną podaje się w milimetrach na sekundę
(mm/s), a zakres zmienności jest od 1 do 9999 mm/s. Prędkość
podstawowa musi być przy tym nie większa niż maksymalna.
IRP-6
PRĘDK - (PRĘDKOŚĆ) zmiana prędkości maksymalnej i podstawowej
Przykład:
0:20 PRĘDKOŚĆ = 500 MM/S, PRĘDKOŚĆ MAX = 1000 MM/S
FANUC
FANUC
Instrukcja ta określa wartość procentową współczynnika przyspieszenia lub wyhamowania
(czyli czasu trwania przyspieszenia lub wyhamowania). Czas wykonania ruchu z punktu
początkowego do końcowego zależy od wartości współczynnika przyspieszenia sterowania
prędkością. Wartość przyspieszenia sterowania prędkością może wynosić od 0 do 150%.
Przyspieszenie sterowania prędkością jest programowane w pozycji docelowej.
Przykład:
J P[1] 50% FINE ACC80
PANASONIC
PANASONIC
Inne wybrane instrukcje
Instrukcja
IRp
FANUC
PANASONIC
CZEKAJ 55 s
WAIT 55 sec
DELAY 55.00s
CZEKAJ NA WE [2]=1/0
WAIT RI [2] = ON/OFF
WAIT VAL I2#(001) = ON/OFF
T= 20
SKOK DO 1000
JMP LBL [1]
JUMP LABL0001
Skok
warunkowy
SKOK DO 200, GDY
WE [3]=1/0
IF {war_1} and/or {war_2} …,
JMP LBL [2]
IF LR001 = 10 THEN JUMP
LABL0001 ELSE NOP
Początek pętli
POWTORZ 11 RAZY
R[1]=0
LBL [1]
…
R[1]=R[1]+1
IF R[1] <4 JMP LBL [1]
…
SET LR001=0 lub CLEAR LR001
:LABL0001
….
INC LR001
IF LR001< 10 THEN JUMP LABL 0001
Czekaj
Czekaj
(warunkowy)
Skok
bezwarunkowy
Koniec pętli
KONIEC POWTARZANIA
Wywołanie
programu
WYKONAJ PODPROGRAM 12
CALL 12
CALL 12.prg
Obsługa
WYJŚCIA
USTAW WY [1]=1/0
DO [2] = ON/OFF
OUT O1#(001) = ON/OFF
CZEKAJ NA WE [2]=1/0
DI [2] = ON/OFF
WAIT_IP I2#(001) = ON/OFF
T= 20
(sterowanie WYJŚCIEM)
Obsługa
WEJŚCIA
(czekanie na sygnał
WEJŚCIA)
Inne wybrane instrukcje
Instrukcja
Czekaj
Czekaj
(warunkowy)
Skok
bezwarunkowy
Skok
warunkowy
Początek pętli
Koniec pętli
Wywołanie
programu
ABB
ABB
WaitTime 0.5;
WaitUntil di4 = 1;
WaitDI/WaitDO czekaj aż cyfrowe wejście/wyjście
jest ustawione
GOTO next;
...
next:
IF di1 = 1 THEN ...
(Clear reg1;) reg1 := 0;
next:
...
reg1 := reg1 + 1;
IF reg1<=5 GOTO next;
Load \Dynamic, diskhome
\File:="PART_A.MOD";
Obsługa
WYJŚCIA
SetDO do15, 1;
Obsługa
WEJŚCIA
IF di1 = 0 THEN …
FOR i FROM 1 TO 10 DO
routine1;
ENDFOR
Repeats the routine1 procedure 10
times.
KUKA
PANASONIC - Instrukcje Spawalnicze
Ruch liniowy z oscylacją - zygzakowaty
PANASONIC - Instrukcje Spawalnicze
Ruch kołowy z oscylacją - zygzakowaty
PANASONIC - Instrukcje Spawalnicze
Ruch kołowy z oscylacją - zygzakowaty
Poznań 2018
POLITECHNIKA POZNAŃSKA
Wydział Budowy Maszyn i Zarządzania
Instytut Technologii Mechanicznej
Zakład Projektowania Technologii
ul. Piotrowo 3, 61-138 Poznań
tel. +48 +61 6652-162
fax: +48 +61 6652-200
e-mail: olaf.ciszak@put.poznan.pl
Pok. 638, 224
Konsultacje:

Studia stacjonarne: środa, godz. 8:00 – 9:30

Pytania zagadnienia egzaminacyjne
(3 pytania)
◦ Termin I - termin do ustalenia?
◦ Termin II - termin do ustalenia?
Pok. 638

Kaczmarek W., Panasiuk J., Środowiska programowania robotów,
PWN, Warszawa 2017

Kost G., Świder J., Programowanie robotów on-line, WPŚ 2008

Zdanowicz R., Podstawy Robotyki, WPŚ, 2001

Zdanowicz R., Podstawy
Przemysłowych, WPŚ, 2001

Żurek J., Stan i tendencje rozwojowe
technologicznych. WPTPN, Poznań 1997.



Żurek J., Robotyzacja
zagadnienia, WPP 1997
Robotyki-Laboratorium
procesów
robotyzacji
technologicznych
Podręczniki programowania robotów przemysłowych:

FANUC

PANASONIC

IRP-6
Internet
z
robotów
procesów
–
wybrane
Podstawowe zadania układów sterowania
Komunikacja z operatorem
•możliwość sterowania ręcznego napędami
przez operatora
•możliwość wprowadzania programu działania
robota
•możliwość zapamiętania programu
komunikacja z
otoczeniem
reagowanie
na działania
operatora
Podstawowe
zadania
układu
sterowania
Sterowanie zespołami napędowymi
•sterowanie zespołami ruchu pozycjonowanymi w
całym zakresie przemieszczeń
•sterowanie zespołami pozycjonowanymi
zderzakowo
•sterowanie chwytakami
•sterowanie głowicami narzędziowymi
sterowanie
napędami
Komunikacja z układami
sensorycznymi
sterowania
urządzeniami
zewnętrz.
Sterowanie urządzeń zewnętrznych
•włączanie i wyłączanie urządzeń zewnętrznych
dwustanowych (sterowanie binarne)
•sterowanie wejść i wyjść technologicznych
Zadanie podstawowe:

pozycjonowanie (położenie i orientacja)
Zadania pomocnicze:





oczekiwanie na spełnienie warunku
ustalanie kolejności dalszego działania
obliczanie parametrów, nastaw, współrzędnych
sterowanie wejściami i wyjściami
transmisja danych
Przyszłość: ABB - The dual-arm concept robot
http://www.abb.com
Przyszłość: Motoman SDA10D
Zdj. Motoman.com
Zdj. Motoman.com
Przyszłość: Mobile Humanoid „Rollin’ Justin
http://www.dlr.de
Roboty w AUDI
Robot „Ray” samodzielnie się porusza i jest elastyczny w
zastosowaniu. Składa się ze stelaża o długości sześciu metrów i
szerokości trzech metrów, który za pomocą czujników ocenia
pozycję i wymiary samochodu, po czym dostosowuje się do nich.
Następnie robot ostrożnie łapie koła i podnosi samochód na
wysokość do dziesięciu centymetrów. Specjalne oprogramowanie
sterujące przydziela autu miejsce, na które Ray go odstawia. W
ten sposób można szybko transportować samochody o długości
do 5,3 m i tymczasowo je magazynować, co przyczynia się do
oszczędności miejsca. Gdy na poziomie sortowniczym znajdzie
się wystarczająca liczba pojazdów przeznaczonych do wysyłki do
tego samego miejsca, robot przygotuje je do załadunku.
W fabryce Audi w Ingolstadt rozpoczął pracę robot
wykonujący swe zadania „ramię w ramię” z ludźmi.
Usunięto bariery bezpieczeństwa, a maszyna idealnie
wpasowała się w cykle pracy ludzkiej.
SYSTEM PART4you spełnia wysokie wymogi bezpieczeństwa
określone dla współpracujących robotów, ten inteligentny system
otrzymał wymagany certyfikat towarzystwa ubezpieczeń od
odpowiedzialności pracodawców.
http://www.audiusa.com
LBR iiwa
LBR iiwa
LBR iiwa
Racer 999
www.comau.com
Hannover Messe 2015
www.care-o-bot-4.de
Języki programowania robotów przemysłowych
Sposoby programowania robotów przemysłowych można podzielić ze względu na
sposób wyrażania programu działań robota na:
• tekstowe, a w tym graficzne - off-line
• nietekstowe - on-line
• hybrydowe (zawierające w sobie obie powyższe formy).
Języki Programowania robotów przemysłowych
Język programowania robotów:
•
•
•
•
•
•
•
•
•
•
•
•
ABB – RAPID
KUKA – KRL
Fanuc – Karel
Comau – PDL2
Mitsubishi – MELFA-BASIC
Kawasaki – AS
Motoman – INFORM II
Stäubli – VAL3
Universal Robots – URScript
Toshiba – SCOL
Festo – FTL
Bosch - BAPS
Środowiska do programowania
robotów przemysłowych w trybie offline/online
Umożliwiają programowanie robotów oraz przeprowadzanie symulacji ich pracy w trybie offline
(bez użycia robota), z wykorzystaniem standardowego komputera PC
-
-
-
-
Wirtualne projektowanie i programowanie stanowisk, linii i całych fabryk oraz przygotowanie oferty dla odbiorcy
końcowego, włączając w to m.in.: organizację stanowiska produkcyjnego, wizualizację 3D, dobór robotów oraz
przedstawienie ich zasięgów pracy – zajętości przestrzeni roboczej (analizy przestrzennej poszczególnych
komponentów robota), utworzenie filmów symulacji oraz zapisanie widoków stanowisk
Optymalizacja rozmieszczenia gniazd roboczych na liniach produkcyjnych fabryk
Rozbudowane biblioteki zawierające m.in. wybrane typy robotów, pozycjonery, tory jezdne, mechanizmy,
przenośniki i czujniki istnieje możliwość łatwego tworzenia rozbudowanych aplikacji
Platformy programowe pozwalają również na import modeli z systemów komputerowego wspomagania
projektowania CAD w wybranych formatach, a nawet w niektórych przypadkach są z nimi w dużym stopniu
zintegrowane (np.: Melfa-Works firmy Mitsubishi jest instalowane jako moduł programu SolidWorks).
Wprowadzanie do systemu nowych komponentów bez przerywania produkcji
Prze- i programowanie dużej liczby kontrolerów robotów przemysłowych (opracowanie aplikacji sterujących
robotami i określenie cyklów pracy), przeprowadzanie pełnych symulacji 3D z uwzględnieniem cyklów pracy
rzeczywistych sterowników, optymalizację programów robotów w celu zwiększenia produktywności
Symulacji i monitorowania wejść/wyjść oraz współpracy robotów w poszczególnych gniazdach
Współpracę komputera z rzeczywistym robotem (w pełnym lub częściowym zakresie) w trybie online
Wybrani producenci robotów przemysłowych oraz ich środowiska do programowania
robotów
w trybie offline
ABB
RobotStudio
Fanuc
Robotics RoboGuide
Kawasaki Robotics
K-Roset
Kuka Roboter
Kuka Sim Pro
Mitsubishi Robotics
Melfa-Works
Epson
Epson RC + 7.0
Comau
RoboSim PRO
Denso Robotics
WINCAPS III
Staubli Robotics
Staubli Robotics Suite
Motoman Robotics-Yaskawa
MotoSim EG-VRC
Reis Robotics
ProSim
Panasonic-Matsushita
Welding Systems DTPS 3D, G2 PC
Tools 3D
Uniwersalne środowiska do programowania robotów w trybie offline
RobCAD
Delmia IGRIP
Robot 3D
Proces Simulate
www.plm.automation.siemens.com
-
Wysoka cena
Możliwość pracy w chmurze – integracja wielu środowisk
Dynamiczne zarządzanie danych projektowych
Redukcja błędów na etapie projektowym i praktycznej realizacji
KUKA.Sim Pro firmy KUKA
Oprogramowanie
KUKA.WorkVisual
Oprogramowanie systemowe KUKA
Oprogramoiwanie aplikacyjne:
KUKA.ArcTech
KUKA.CNC
KUKA.ConveyorTech
KUKA.FlexPal Editor / KUKA.FlexPal RT
KUKA.GlueTech
KUKA.LaserTech
KUKA.SeamTech
KUKA.ServoGun
KUKA.TouchSense
KUKA.VisionTech
http://www.kuka-robotics.com/poland/pl/products/software/
FANUC M-16iB/10L R-30iA
Dane pozycji
Dane pozycji zawierają pozycje oraz położenie robota.
Podczas zapamiętywania instrukcji ruchu robota dane pozycji są w tym samym momencie
zapisywane do programu.
Dane pozycji są sklasyfikowane w dwa typy. Jeden typ składa się ze współrzędnych
połączeniowych w systemie współrzędnych połączeniowych.
Drugi typ składa się z współrzędnych kartezjańskich reprezentujących pozycje narzędzia oraz
orientację w przestrzeni roboczej.
Standardowo używanymi danymi są współrzędne kartezjańskie.
Współrzędne kartezjańskie
Dane pozycji zawierające współrzędne kartezjańskie określone są w czterech grupach.
Pozycja środkowego punktu narzędzia TCP (punkt początkowy układu współrzędnych związanego
z narzędziem) w układzie współrzędnych kartezjańskich, nachylenie osi wzdłuż ruchu narzędzia
(układ współrzędnych narzędzia), konfiguracja oraz wykorzystywany układu współrzędnych
kartezjańskich.
Układ współrzędnych kartezjańskich może być określony jako układ współrzędnych rzeczywistych.
Sposób wyboru układu współrzędnych jest opisany dalej.
Pozycja oraz położenie
• Pozycja (x, y, z) reprezentuje położenie w trzech wymiarach punktu środkowego narzędzia
(punkt początkowy układu współrzędnych związanych z narzędziem) w układzie współrzędnych
kartezjańskich.
• Położenie (w, p, r) reprezentuje kąt wychylenia wzdłuż osi X, Y i Z w układzie współrzędnych
kartezjańskich.
Zmienne pozycji oraz rejestr pozycji
W instrukcjach ruchu, dane pozycji reprezentowane są za pomocą
zmiennych pozycji (P[i]) lub rejestru pozycji (PR[i]). Zazwyczaj używane są
zmienne pozycji.
Rejestry
Rejestr jest zmienną służącą do przechowywania liczby całkowitej lub ułamka.
Dostępnych jest 200 rejestrów.
Do wyświetlania i ustawiania wartości rejestrów służy ekran rejestrów.
NIEBEZPIECZEŃSTWO
Rejestry są używane w programie. Nigdy nie należy zmieniać wartości rejestru bez
wcześniejszego sprawdzenia w jaki sposób dany rejestr jest używany przez system. W
przeciwnym przypadku może to mieć negatywny wpływ na program.
Dane pozycji
Wyświetlanie ekranu rejestrów
Krok
1.
Wcisnąć przycisk MENUS w celu wyświetlenia menu ekranu.
2.
Nacisnąć "NEXT", następnie wybrać "DATA„ - Alternatywą jest też naciśnięcie przez użytkownika
klawisza DATA zamiast wykonania kroków 1 i 2 opisanych powyżej.
3.
Nacisnąć F1, TYPE.
4.
Wybrać Registers. Pojawi się ekran rejestrów.
Rejestry
R[1]=120
R[2]=DI[5]
R[3]=AI[2]
DO=R[3]
IF / SELECT – instrukcje warunkowe, pozwalające wykonać działanie w zależności od
wartości, jaką w danej chwili przyjmuje rejestr podstawowy, lub w zależności od stanu
wejścia lub wyjścia; użytkownik ma do wyboru dwa typy instrukcji warunkowych:
IF ZMIENNA OPERATOR WARTOŚĆ DZIAŁANIE
IF R[4]<5, CALL MAGAZYN
IF DI[2]=ON, JMP LABL[4]
Przykład programowania
Rejestry są używane w programach, gdy wykorzystywane są:
• Instrukcja rejestrowa
• Pośrednie określanie argumentów
Program A powtarzany jest 11 razy, następnie wykonywany jest program B
i dalej wykonywanie programu jest zakończone.
Rejestry
SELECT R[n] = WARTOŚĆ 1, DZIAŁANIE 1
= WARTOŚĆ 2, DZIAŁANIE 2, …,
ELSE, DZIAŁANIE m
SELECT R[2] = 1, JMP LBL [2]
= 2, JMP LBL [3]
ELSE CALL END
Operatory podstawowe
NOT, OR, AND
IF RO[1]=ON AND DI[105]=OFF, CALL POBRANIE
Rejestry pozycji
Rejestr programu to zmienna przechowująca dane o pozycji. Udostępnione jest 100 rejestrów pozycji.
Do wyświetlania i ustawiania wartości rejestrów służy ekran rejestrów pozycji.
Ustawianie rejestrów pozycji
Krok
1. Wcisnąć przycisk MENUS w celu wyświetlenia menu ekranu.
2. Nacisnąć 0 NEXT, następnie wybrać 3 DATA - Alternatywą jest też naciśnięcie przez
użytkownika klawisza DATA zamiast wykonania kroków 1 i 2 opisanych powyżej.
3. Nacisnąć F1 [TYPE], aby wyświetlić menu zmiany ekranu.
4. Wybrać Position Reg. Pojawi się ekran rejestrów pozycji.
Rejestry pozycji
Aby wpisać komentarz, należy użyć następującej procedury:
1. Przesunąć kursor do wybranego pola numeru rejestru pozycji, następnie nacisnąć przycisk
ENTER.
2. Wybrać metodę wprowadzania znaków.
3. Nacisnąć wybrany przycisk funkcyjny, a następnie wpisać komentarz.
4. Po zakończeniu wprowadzania danych wcisnąć ENTER.
Aby zmienić wartość rejestru pozycji
1. Przesunąć kursor do pola numeru rejestru pozycji.
2. Następnie nacisnąć przycisk F3 RECORD, jednocześnie trzymając naciśnięty przycisk SHIFT.
• R oznacza, że rejestr pozycji
przechowuje już zapamiętaną
wartość.
• Gwiazdka (*) oznacza, że nie
przechowuje.
Rejestry pozycji
Aby usunąć dane dotyczące pozycji przechowywane w rejestrze pozycji:
1. nacisnąć F5 CLEAR, jednocześnie trzymając naciśnięty przycisk SHIFT.
2. Wybrać YES. Dane dotyczące pozycji z wybranego rejestru pozycji zostaną wyczyszczone
Rejestry pozycji
Aby zobaczyć aktualne dane dotyczące pozycji, należy nacisnąć F4 POSITION.
Pojawi się ekran szczegółowych danych dotyczących pozycji.
Aby zmienić wartość, należy przesunąć kursor do wybranego pola, następnie wpisać nową wartość.
Rejestry pozycji
Aby zmienić konfigurację, należy nacisnąć F3 CONFIG. Przesunąć kursor do wybranego pola,
następnie zmienić łączne dane dotyczące pozycji przy pomocy przycisków do góry i do dołu.
Rejestry pozycji
Aby zmienić postać przechowywania danych dotyczących pozycji, należy nacisnąć F5 REPRE i
wybrać postać przechowywania.
Rejestry pozycji
Aby wyświetlić dodatkowe osie (podgrupa), należy nacisnąć F2 PAGE.
Rejestry pozycji
Po zakończeniu ustawień, należy nacisnąć F4 DONE.
Instrukcje wykorzystujące rejestry pozycji
• L PR[3] 100 cm/min FINE
Ruch liniowy do pozycji zapisanej w rejestrze pozycji numer 3
• J P[4] 50% CNT20 OFFSET, PR[5]
Dojazd do pozycji numer 4 z przesunięciem o wartość współrzędnych zapisanych w rejestrze współrzędnych numer 5
• P[3] = P[2] + PR [1]
Wyliczenie pozycji P3 jako sumy odpowiednich współrzędnych pozycji P2 i zdefiniowanych w rejestrze pozycji PR1; aby
zrealizować ruch do pozycji P3 należy wywołać instrukcję, np. JP[3] 50% FINE
• PR[2,3] = PR[1,3] + 100
Wyliczenie wartości trzeciej współrzędnej („z” w układzie kartezjańskim) rejestru PR2, jako współrzędnej „z” rejestru
PR1, powiększonej o wartość 100 mm
Opcje dodatkowe w instrukcjach ruchu
• ACC
Umożliwia określanie przyśpieszenia z jakim ma być wykonana instrukcja ruchu; parametr zmienia się w zakresie 1-150%,
gdzie 150% oznacza przyśpieszenie maksymalne; w celu zmniejszenia przeciążeń układu przy starcie i hamowaniu
należy ustalić wartość mniejszą
Przykład:
J P[1] 50% FINE ACC80
Opcje dodatkowe w instrukcjach ruchu
• OFFSET CONDITION
• OFFSET, PR[…]
Realizuje dojazd do pozycji z przesunięciem zdefiniowanym w rejestrze pozycji
o wybranym numerze
Opcje dodatkowe w instrukcjach ruchu
• TOOL_OFFSET CONDITION PR[…]
• TOOL_OFFSET, PR[…]
Uwzględnia wymiary zamocowanego w adapterze narzędzia przy dojeździe do pozycji,
w których realizowana jest obsługa urządzeń technologicznych
Opcje dodatkowe w instrukcjach ruchu
• SKIP CONDITION [I/O]=[wartość]
• J P[1] 50 FINE Skip,LBL[3]
Jeżeli warunek pominięcia nie jest spełniony , instrukcja pominięcia powoduje przeskok
do etykiety odgałęzienia.
Jeżeli warunek pominięcia jest spełniony podczas przemieszczania robota do punktu docelowego, robot kontynuuje ruch a
wykonanie programu przechodzi do następnej instrukcji znajdującej się w następnej linii
Opcje dodatkowe w instrukcjach ruchu
• TIME BEFORE / TIME AFTER
Wykonuje zadane działanie (włącza, wyłącza narzędzie przez ustalenie odpowiedniego stanu na wyjściu) na określony
czas przed lub po osiągnięciu pozycji
Przykład:
1: J P [1] 100% FINE
:TB 1.0sec CALL OPEN HAND
1: J P [1] 100% FINE
:TA 1.0sec CALL OPEN HAND
Opcje dodatkowe w instrukcjach ruchu
Synchronizacja wykonania podprogramu (Instrukcja TIME BEFORE)
Synchronizacja wykonania podprogramu (Instrukcja TIME AFTER)
Opcje dodatkowe w instrukcjach ruchu
• DISTANCE BEFORE
Funkcja odległości od celu. Funkcja odległości od punktu celu wykonuje część instrukcji, kiedy punkt TCP wejdzie w sferę,
której środkiem jest punkt docelowy. Wartość odległości decyduje o promieniu tej sfery. Wartość odległości zapamiętywana
jest w milimetrach (0-999 ,9 mm). Jest to tzw. sfera uruchomienia.
Przykład:
1: L P [1] 2000mm/sec FINE
2: L P [2] 2000mm/sec FINE DB 100.0mm DO[1]=ON
Przykład programowania
FANUC - Przykład programowania
Na rysunku poniżej została przedstawiona trajektoria ruchu głowicy dozującej klej.
Trajektoria punktu TCP (PR) narzędzia stanowi krzywa łamana składająca się z punktów
podporowych P1, P23.
Przy realizacji programu należy przyjąć następujące założenia:
1) Pominąć przemieszczenie w osi Z
2) Przyjęto konwencję zapisu: Pn oznacza pozycję n o znanych współrzędnych,
3) Klejenie odbywa się w sposób ciągły na krawędziach pomiędzy punktami P2 i P5, P7 i P11 oraz
na okręgu wyznaczonym przez punkty P12-P15-P12
4) Wyjście robotowe RO[2] odpowiada za obsługę głowicy dozującej klej
5) W instrukcjach ruchu nalęzy wykorzystać dodatkowe funkcje: DISTANCE BEFORE, TIME
BEFORE oraz TIME AFTER
FANUC - Przykład programowania
FANUC - Przykład programowania
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
J P[1] 100% CNT100
L P[2] 10mm/sec FINE TB 0.20 sec, RO[2:glowica]=ON
C P[3]
:P[4] 10mm/sec CNT10
L P[5] 10mm/sec FINE TA 0.10 sec RO[2:glowica]=OFF
L P[6] 10mm/sec CNT50
L P[7] 10mm/sec FINE DB 0.10mm RO[2:glowica]=ON
L P[8] 10mm/sec CNT10
C P[9]
:P[10] 10mm/sec CNT10
L P[11] 10mm/sec FINE TA 0.10 sec RO[2:glowica]=OFF
J P[12] 75% FINE TB 0.10sec RO[2:glowica]=ON
C P[13]
:P[14] 200mm/sec CNT1
C P[15]
:P[12] 200mm/sec FINE, RO[2:glowica]=OFF
J P[1] 100% CNT100
[END]
Panasonic
Panasonic
Panasonic
Panasonic
Panasonic
Panasonic
Przykład programowania
Przykład programowania
Przykład programowania
Przykład programowania
Przykład programowania
Przykład programowania
Przykład programowania
Download