1. Panel sterowniczy KUKA rys. (1) 2. Ogólnie Panel sterowniczy KCP (The KUKA Control Panel) stanowi interfejs pomiędzy człowiekiem i maszyną dla łatwej i przyjemnej, szczególnie dla początkujących, obsługi manipulatora KUKA-KR15. Wszystkie przyciski potrzebne do programowania oraz obsługi systemu, z wyjątkiem głównego przycisku zasilania, znajdują się bezpośrednio na panelu. Panel zaprojektowany i wykonany jest w przejrzysty sposób. Na szczególną uwagę zasługuje fakt, że uchwyty służące do trzymania panelu są zaprojektowane w taki sposób że KCP jest łatwy w obsłudze zarówno dla praworęcznych jak i leworęcznych. System sterowania jest w dużym stopniu podobny do Windows 95. 3. Programowanie w trybie użytkownika Po włączeniu zasilania zauważymy że wyświetlacz KCP podzielony jest na kilka bloków z różnymi funkcjami potrzebnymi w czasie programowania. Wszystkim funkcją znajdującym się na ekranie są przyporządkowane przyciski znajdujące się wokół ekranu, ale już na panelu. W górnej jego części znajduje się menu systemu rys. (2). rys. (2) Aby skorzystać z którejś opcji należy użyć przycisków znajdujących się tuż nad ekranem. 1
Po prawej i lewej stronie ekranu znajdują się bloki stanu informujące nas w jakim aktualnie stanie znajduje się programowanie lub wykonywanie programu rys. (3). rys. (3) Na dole ekranu znajdują się przyciski wyboru oraz modyfikacji tj. nowy plik (new), wybór (selekt), edycja (Edit), zapis (save), kasowanie (delete) rys. (4). rys. (4) Po włączeniu zasilania ukaże nam się lista dostępnych programów. Po wyborze któregoś z nich na ekranie ukaże się jego zawartość. Jeżeli znajdujemy się w funkcji edytowania programu to na ekranie znajdziemy cienką pionową czerwona linie (Edit kursor) rys. (5), która jest usytuowana na początku wiersza, który jest aktualnie edytowany. Jeżeli znajdujemy w funkcji wykonywania programu to naszym oczom ukarze się żółta strzałka (block pointer) rys. (5) wskazująca na linie, która jest aktualnie wykonywana. Oba te znaki są usytuowane pomiędzy numerem linii a wierszem tekstowym. rys. (5) Niektóre funkcji programowe wymagają dokonania wyboru sposobu programowania i wprowadzenia wartości niektórych wielkości. Dokonujemy tego poprzez wybranie ich z rozwijalnej listy z paska Inline from. W ten sposób mamy zagwarantowane, ze instrukcje będą miały zawsze poprawny format rys. (6). 2 rys. (6)
Często w czasie programowania a nawet już w czasie wykonywania programu na wyświetlaczu w oknie wiadomości (massage window) rys. (7) ukazują się nam różne wiadomości wysłane przez system. Obowiązkiem każdego jest zapoznanie się z tymi informacjami. Niektóre wiadomości muszą być potwierdzone przez nas, że zostały odczytane bo w przeciwnym wypadku nie będzie możliwa dalsza praca ponieważ system nam tego nie umożliwi. Potwierdzenie przeczytania wiadomości dokonujemy poprzez naciśnięci przycisku Ack. Naciśnięcie przycisku Act All spowoduje akceptacje wszystkich wiadomości wysłanych przez system do tej pory. 4. Pasek stanu (status bar) rys. (8) rys. (7) rys. (8) Pasek stanu znajduje się nad paskiem wyboru i modyfikacji i daje nam szereg informacji na temat aktualnych funkcji. W pasku tym znajduje się 12 okienek. W pierwszym z nich znajdziemy informacje w jakim stanie aktualnie pracuje klawiatura numeryczna. Jeżeli NUM jest wytłuszczone oznacza to, że naciśnięcie któregoś z klawiszy spowoduje wprowadzenie na ekran cyfry, która jest przypisana temu klawiszowi. Natomiast wyblakłe NUM oznacza, że klawiatura numeryczna pracuje w trybie funkcji, które zostały przypisane poszczególnym klawiszom. W kolejnym okienku znajduje się informacja na temat stanu klawiatury tekstowej. Jeżeli INS jest wytłuszczone oznacza to, że aktywny jest tryb wprowadzania tekstu. Natomiast wyblakłe INS oznacza, że właśnie są zapisywane zmiany i oczywiście nie jest możliwe wprowadzania żadnych poprawek. Kolejne dwa okienka zmieniają kolor w zależności od stanu procesu. 3
Gdy w pierwszym z nich pojawi się S na zielonym tle oznacza to, że program jest właśnie poddawany tłumaczeniu na język maszynowy, gdy S pojawi się na czerwonym tle oznacza to, że proces ten jest zatrzymany. W następnym znajdziemy albo I na zielonym tle, które oznacza, że napędy zostały włączone, albo O na czerwonym tle, które oznacza, że napędy zostały wyłączone. W piątym okienku od lewej wyświetlane jest R, które w zależności od informacji może być wyświetlane na 5 sposobów: - na zielonym tle co oznacza, że program został wybrany i aktualnie jest wykonywany, - na czerwonym tle co oznacza, że wybrany i realizowany program został przerwany, - na żółtym tle co oznacza, że block pointer jest w pierwszej linii wybranego programu, - na czrnym tle co oznacza, że block pointer jest w ostatniej linii wybranego programu, Jeżeli to okienko jest szare i nie ma w nim R oznacza to, że żaden program nie został wybrany. W kolejnym okienku wyświetlana jest nazwa wybranego programu, a w jeszcze następnym numer linii która jest aktualnie wykonywana. Ósme okienko informuje nas o trybie pracy manipulatora: - T1 - Test 1, - T2 - Test 2, - EXT - oznacza, Ze komputer lub sterownik PLC przejmuje kontrole nad manipulatorem, - AUT - oznacza tryb obsługi automatycznej. Kolejne okienko wskazuje nazwę programu, który jest właśnie edytowany. Dziesiąte okienko informuje nas o prędkość, jaką maja rozwijać napędy, wyrażona w procentach. Jeżeli manipulator pracuje w trybie automatycznym znajdziemy tam dodatkowo oznaczenie POV, jeżeli w trybie ręcznym HOV. W przedostatnim okienku znajdziemy nazwę manipulatora, którego obsługujemy. W ostatnim okienku znajduje się zegarek. 5. Elementy służące do obsługi KCP Przyciski te są rozmieszczone wokół panelu w drugiej kolejności od wyświetlacza. Najważniejszy przycisk (emergency stop) rys. (9) znajduje się w prawym górnym rogu panelu. Jest to duży czerwony przycisk, który po naciśnięciu powoduje rozłączenie obwodu głównego i zatrzymanie pracy manipulatora (wyłączenie napędów) bezwzględnie od stanu pracy. Aby go ponownie włączyć należy go przekręcić w prawo do chwili zatrzaśnięcia, a następnie należy potwierdzić komunikat wysłany przez system poprzez naciśnięcie przycisku Ack. rys. (9) 4
Po lewej stronie od niego znajdują się dwa przyciski służące do włączania napędów I oraz do wyłączania napędów 0 rys. (10). rys. (10) Na końcu po lewej stronie znajduje się pokrętło wyboru trybu pracy (mode selection) rys. (11). Jak już wcześniej zostało wspomniane trybów pracy jest cztery. rys. (11) - test 1- w trybie tym manipulator porusza się tylko pod warunkiem, że został naciśnięty i przytrzymany jeden z trzech białych przycisków znajdujących na odwrocie panelu. Manipulator będzie się poruszał tak długo aż przycisk ten nie zostanie zwolniony. Przemieszczenia są realizowane ze zredukowana prędkością, - test 2- jest to taki sam tryb jak poprzedni z tą różnicą, że manipulator porusza się z zaprogramowaną prędkością, - automatic- wybrany program jest wykonywany automatycznie z zaprogramowaną prędkością. Przebieg programu możemy obserwować na ekranie, 5
- external- jest to taki sam tryb jak poprzedni z tą różnicą, że nad wykonaniem programu czuwa komputer lub sterownik PLC. Po lewej stronie panelu sterowniczego usytuowane w pionie znajduje się pięć przycisków z następującymi funkcjami: -ESC (escape)- wycofanie się z wybranej funkcji bez zapisywania zmian rys. (12), rys. (12) -wybór okna (select window)- za pomocą tego przycisku możemy przesuwać okna ekranu w kierunku zgodnym z zegarem rys. (13), rys. (13) -STOP- służy do zatrzymania programu który został uruchomiony w trybie automatycznym rys. (14), rys. (15) 6
-aby uruchomić ponownie zatrzymany program należy nacisnąć przycisk uruchamiający go znajdujący się tuż poniżej STOP rys. (15), rys. (15) - ostatnim przyciskiem z tej grupy jest przycisk umożliwiający wykonanie programu od tyłu, krok po kroku rys. (16). Na ekranie po lewej stronie wśród okienek stanu pojawi się idący ludzik rys. (17), informujący nas o krokowym wykonywaniu programu. Funkcja ta jest dostępna tylko w trybie pracy Test 1 i Test 2. rys. (16) rys. (17) W prawym dolnym rogu znajdują się strzałki służące do poruszania się po menu rys. (18). rys. (18) 7
Tuż nad nimi znajduje się przycisk enter rys. (19). rys. (19) Po prawej stronie, ale już na bocznej części panelu znajduje się mysz przestrzenna rys. (20) o sześciu stopniach swobody za pomocą, której nie tylko możemy sterować kierunkiem przemieszczenia członów manipulatora, ale także poprzez naciśnięcie z odpowiednią siłą nadać im odpowiednią prędkość adekwatną do przyłożonej siły. rys. (20) 6. Tworzenie programu Tworzenie programu zaczynamy od nadania mu nazwy oraz krótkiego opisu po, którym łatwo będzie on rozpoznawalny. Aby to zrobić należy wybrać przycisk New. Po wciśnięciu go naszym oczom ukaże się następujące okno rys. (21). rys. (21) W polu nazwa (name) wpisujemy nazwę. Następnie naciskając strzałkę w prawo przechodzimy do sąsiedniego pola (comment), w którym wpisujemy krótki komentarz do tego programu. Gdy stwierdzimy, że nazwa i opis są prawidłowe zatwierdzamy je poprzez naciśnięcie przycisku Enter. Należy pamiętać, że zatwierdzenie nazwy i opisu nie powoduje wybranie naszego nowego programu do edycji. W pamięci sterownika nadal znajduje się poprzednio wybrany i wykonywany program. O czym jesteśmy informowani przez szóste okienko na pasku stanu. Znajduję się tam nazwa programu, który jest aktualnie załadowany do sterownika. 8
Aby wybrać nasz program należy wybrać Select i za pomocą strzałek wybrać nasz program i oczywiście zatwierdzić. Wtedy na ekranie pojawi się nasz program, w którym pierwsze dwie linie i ostatnia będą już wypełnione rys. (22). Rys. (22) Pierwsza z nich oznacza inicjalizacje programu. Druga i ostatnia linia zawiera polecenie powrotu wszystkich napędów do pozycji bazowej. Zauważmy, że znajdujemy się w linii nr 1,a żeby zacząć programować musimy znaleźć się w linii nr 2. W tym celu należy przemieścić się za pomocą strzałek do linii nr 2 i wybrać LineSelect. W kolejnym kroku należy ustawić pokrętło trybu pracy w pozycje Test1 oraz włączyć napędy. Włączenie napędów spowoduje pokazanie się okna w prawej części ekranu, do którego są przyporządkowane przyciski do sterowania poszczególnymi napędami. Przyciski te są usytuowane tuż po prawej stronie na panelu. W tym momencie, przez naciśnięcie dowolnego przycisku (+) lub (-), jesteśmy wstanie przemieszczać manipulator w dowolnym przez nas wybranym kierunku. Ale żeby to uczynić należy przytrzymać wciśnięty jeden z białych klawiszy znajdujących się pod panelem. Na manipulatorze na każdej osi umieszczone zostały strzałki z oznaczeniem (+) i (-), które informują nas który przycisk na panelu należy nacisnąć żeby przemieścić manipulator w wybranym kierunku. Gdy doprowadzimy końcówkę manipulatora do żądanego punktu i uznamy, że wypracowana pozycja i orientacja jest zadawalająca należy zatwierdzić to poprzez wybranie Motion. Naciśnięcie tego przycisku spowoduje pojawienie się okna Inline from rys. (23), w którym znajdują się domyślne ustawienia i które zatwierdzamy Enterem. rys. (23) Po zatwierdzeniu program nasz wzbogaci się o kolejną linie, a w pamięci sterownika zostaną zapisane współrzędne konfiguracyjne poszczególnych napędów natomiast my możemy zacząć programować kolejny punkt. Gdy uznamy, że postępując w ten sposób, zaprogramowaliśmy wystarczającą ilość punktów, które zagwarantują nam prawidłowe wykonanie naszego zadania, wracamy do początku programu. W tym celu wybieramy z menu górnego Program, a następnie Program RESET. W kolejnym kroku przełączamy pokrętło trybu pracy w pozycje Automatic i trzymając wciśnięty zielony przycisk znajdujący się pod panelem lub przycisk Start powracamy do pozycji bazowej. Kolejne naciśnięcie jednego z tych przycisków spowoduje już automatyczne odtworzenie naszego programu. Przy automatycznym wykonywaniu programu nie jest konieczne trzymanie któregokolwiek z tych przycisków wciśniętego. Zalecane natomiast jest by przy pierwszym wykonywaniu programu być gotowym w krótkim czasie nacisnąć przycisk Emergency Stop gdyby się okazało, że z niewiadomych przyczyn manipulator nie wykonuje zaplanowanego przez nas zadania tylko próbuje się wydostać przez ścianę na zewnątrz. Aby umożliwić sobie naciśnięcie tego przycisku to przy pierwszym wykonywaniu programu zalecane jest także zredukowanie prędkości do 30%, a najlepiej do 10%. Dobrze jest dla własnego dobra znajdować się poza przestrzenią roboczą manipulatora. W załączonym przykładowym programie manipulator miał za zadanie zrzucić pudełka z dwóch stojaków 9
&ACCESS RVO &COMMENT 3BOXL03B DEFDAT H207E85 ;FOLD EXTERNAL DECLARATIONS;%{PE}%V2.2.2,%MKUKATPBASIS,%CEXT,%VCOMMON,%P ;FOLD BAS EXT;%{PE}%V2.2.2,%MKUKATPBASIS,%CEXT,%VEXT,%P EXT BAS (BAS_COMMAND :IN,REAL :IN ) DECL INT SUCCESS ;FOLD A10 EXT;%{E}%V2.2.2,%MKUKATPARC,%CEXT,%VEXT,%P EXT A10 (A_CMD_T :IN,A_STRT_T :IN,A_WELD_T :IN,A_END_T :IN,INT :IN ) ;FOLD A20 EXT;%{E}%V2.2.2,%MKUKATPA20,%CEXT,%VEXT,%P EXT A20 (INT :IN,WELD_ST :IN,WELD_FI :IN,INT :IN ) ;FOLD GRIPPER EXT;%{E}%V2.2.2,%MKUKATPGRIPPER,%CEXT,%VEXT,%P EXT H50 (INT :IN,INT :IN,INT :IN,GRP_TYP :IN ) ;FOLD SPOT EXT;%{E}%V2.2.2,%MKUKATPSPOT,%CEXT,%VEXT,%P EXT USERSPOT (S_COMMAND :IN,SPOT_TYPE :IN ) ;FOLD TOUCHSENSE EXT;%{E}%V2.2.2,%MKUKATPTS,%CEXT,%VEXT,%P EXT H70 (INT :IN,SRCH_TYP_2 :OUT,E6POS :IN,SRCH_TYP_3 :IN,SRCH_TYP_2 :IN,SRCH_TYP_2 :IN,SRCH_TYP_2 :IN,SRCH_TYP_2 :IN,SRCH_TYP_2 :IN,INT :IN ) ;FOLD USER EXT;%{}%V2.2.2,%MKUKATPUSER,%CEXT,%VEXT,%P ;Make here your modifications DECL BASIS_SUGG_T LAST_BASIS={POINT1[] "P12 ",POINT2[] "P12 ",CP_PARAMS[] "CPDAT0 ",PTP_PARAMS[] "PDAT12 ",CONT[] " ",CP_VEL[] "2 ",PTP_VEL[] "100 "} DECL E6POS XP1={X 1032.86,Y 121.613,Z 1480.0,A 0.0,B 90.0,C -6.71529,S 2,T 3,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP1={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE} DECL PDAT PPDAT1={VEL 100.0,ACC 100.0,APO_DIST 100.0} DECL E6POS XP2={X 760.819,Y 89.5749,Z 1664.14,A 6.71385,B 72.6384,C -0.000901,S 6,T 51,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP2={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE} DECL PDAT PPDAT2={VEL 100.0,ACC 100.0,APO_DIST 100.0} DECL E6POS XP3={X 840.849,Y 98.9971,Z 1143.36,A -173.286,B 66.5699,C 179.999,S 2,T 11,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP3={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE} DECL PDAT PPDAT3={VEL 100.0,ACC 100.0,APO_DIST 100.0} DECL E6POS XP4={X 860.656,Y 101.329,Z 1119.03,A -173.286,B 64.0655,C 179.999,S 2,T 11,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP4={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE} DECL PDAT PPDAT4={VEL 100.0,ACC 100.0,APO_DIST 100.0} 10
DECL E6POS XP5={X 912.307,Y 107.41,Z 1134.15,A -173.311,B 81.897,C 179.974,S 6,T 51,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP5={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE} DECL PDAT PPDAT5={VEL 100.0,ACC 100.0,APO_DIST 100.0} DECL E6POS XP6={X 960.874,Y 113.122,Z 1141.72,A 6.78036,B 81.7984,C 0.0646162,S 6,T 51,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP6={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE} DECL PDAT PPDAT6={VEL 100.0,ACC 100.0,APO_DIST 100.0} DECL E6POS XP7={X 905.281,Y 106.577,Z 1263.41,A 6.74393,B 71.4523,C 0.02732,S 6,T 51,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP7={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE} DECL PDAT PPDAT7={VEL 100.0,ACC 100.0,APO_DIST 100.0} DECL E6POS XP8={X 823.295,Y 96.9246,Z 966.74,A -173.391,B 84.7597,C 179.894,S 6,T 51,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP8={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE} DECL PDAT PPDAT8={VEL 100.0,ACC 100.0,APO_DIST 100.0} DECL E6POS XP9={X 855.414,Y 100.702,Z 898.281,A -173.334,B 77.574,C 179.952,S 6,T 51,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP9={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE} DECL PDAT PPDAT9={VEL 100.0,ACC 100.0,APO_DIST 100.0} DECL E6POS XP10={X 975.452,Y 114.838,Z 983.259,A -173.402,B 85.0013,C 179.883,S 6,T 51,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP10={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE} DECL PDAT PPDAT10={VEL 100.0,ACC 100.0,APO_DIST 100.0} DECL E6POS XP11={X 918.455,Y 348.134,Z 859.165,A -159.285,B 74.279,C 179.958,S 6,T 51,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP11={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE} DECL PDAT PPDAT11={VEL 100.0,ACC 100.0,APO_DIST 100.0} DECL E6POS XP12={X 965.14,Y 182.386,Z 859.168,A -169.343,B 74.2793,C 179.957,S 6,T 51,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP12={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE} DECL PDAT PPDAT12={VEL 100.0,ACC 100.0,APO_DIST 100.0} ENDDAT 11