Program wspomagający obsługę zrobotyzowanych stanowisk paletyzacji
Dawid Czemierowski, Krzysztof Kukiełka print
W artykule przedstawiono program wspomagający konfigurację i programowanie zrobotyzowanych stanowisk paletyzacji, opracowany w Instytucie Automatyki i Robotyki Politechniki Warszawskiej.
Aplikacja powstała z wykorzystaniem pakietu ABB RobotStudio oraz zintegrowanego z Microsoft Visual Studio pakietu ABB Robot Application Builder. Głównym założeniem przy tworzeniu programu była duża uniwersalność w zakresie możliwości jego wykorzystania w zrobotyzowanych stanowiskach o różnym stopniu złożoności. Zadanie zostało zrealizowane w zakresie wielkości paletyzowanych przedmiotów, budowy i rozmieszczenia przestrzennego elementów stanowiska oraz wykorzystania robota do obsługi magazynu przekładek i palet.
Zrobotyzowana paletyzacja
Paletyzacja gotowych produktów jest powszechnie automatyzowanym procesem w większości fabryk na świecie [1]. Wykonywana praca jest powtarzalna i często wymaga dźwigania dużych mas, co stwarza idealne warunki do automatyzacji. Proces ten z wielu względów jest również bardzo podatny na robotyzację, dlatego zastosowanie systemów zrobotyzowanych jest tu szczególnie uzasadnione.
Idea zrobotyzowanych systemów paletyzacji jest dość prosta. Robot wyposażony w głowicę manipulacyjną pobiera z jednej lub kilku linii produkty i ustawia je na paletach według dowolnie zaprogramowanej sekwencji. W zależności od konfiguracji stanowiska robot może również pobierać palety oraz obsługiwać magazyn przekładek. Konfiguracja całego stanowiska może być właściwie dowolna − od podstawowej, gdzie robot przenosi tylko produkt z linii na paletę, aż do systemu całkowicie automatycznego, gdzie produktem końcowym są zabezpieczone folią palety.
Ponieważ większość aplikacji paletyzujących wykorzystuje zbliżone schematy oraz stawia podobne wymagania sprzętowe i programistyczne, większość firm produkujących roboty lub zajmując się ich wdrażaniem ma w swojej ofercie roboty przeznaczone wyłącznie do paletyzacji (rys. 1). Mają one mniejszą niż pozostałe roboty liczbę osi – przeważnie cztery. Zapewnia to orientację efektora (przedmiotu) zawsze prostopadle do podstawy robota.
Obecnie programowanie robotów przeznaczonych do paletyzacji może odbywać się na dwa sposoby. Pierwszy z nich to tradycyjne programowanie robota ze wskazywaniem wszystkich punktów na trajektorii. Wiąże się to z koniecznością znajomości języka programowania danego robota oraz z poniesieniem czasu na wykonanie tego zadania. Drugi sposób to wykorzystanie oprogramowania wspierającego proces paletyzacji, przeznaczonego dla robotów przemysłowych danego producenta. W artykule pokazane zostanie oprogramowanie dedykowane dla robotów przemysłowych firmy ABB, wspierające proces paletyzacji.
Stworzony program cechuje możliwie duży stopień uniwersalności, która w tym przypadku oznacza m.in.: łatwą zmianę rozmiaru układanych opakowań, liczbę miejsc, w których znajdują się palety, możliwość wyboru przekładki między warstwami, sposobu układania opakowań na palecie. Narzędzie ma zapewnić zwiększenie elastyczności i szybkości programowania zrobotyzowanego stanowiska. Proponowane rozwiązanie można potraktować jako próbę wypełnienia luki między specjalizowanymi, dodatkowo płatnymi pakietami oprogramowania wspierającego paletyzację a tradycyjnym programowaniem robota z wykorzystaniem dedykowanego języka programowania.
Oprogramowanie wspierające paletyzację
Główni producenci robotów przemysłowych mają w swojej ofercie oprogramowanie wspierające projektowanie i programowanie stanowisk do paletyzacji. I tak wymienić można następujące oprogramowania:
- ABB PickMaster 5 (dla robotów firmy ABB)
- KUKA PalletTech (dla robotów firmy Kuka)
- FANUC PalletPRO (dla robotów firmy Fanuc)
- RFA PatEdit (dla robotów firmy Kawasaki).
Spośród dostępnych aplikacji zdecydowanie najbardziej zaawansowane i kompleksowe rozwiązania dostarczają firmy ABB i Fanuc. Poniżej omówiona zostanie funkcjonalność takich aplikacji na przykładzie ABB PickMaster 5. Analiza gotowych rozwiązań była punktem wyjściowym do projektu własnego oprogramowania.
Oprogramowanie PickMaster 5 służy do programowania robotów ABB współpracujących z kontrolerem robota IRC5 [4]. W jego skład wchodzą dwa moduły:
- oprogramowanie kontrolera robota – związane z opcją systemową oprogramowania instalowanego w kontrolerze robota, odpowiada za obsługę całego procesu paletyzacji przygotowanego w oprogramowaniu PickMaster 5. Zapewnia komunikację przez program w języku RAPID, interfejs I/O oraz interfejs FlexPendant
- program PickMaster 5, który umożliwia projektowanie i konfigurację stanowiska do paletyzacji na komputerze PC. Na podstawie danych wprowadzonych przez użytkownika program generuje kod w języku RAPID, który może zostać przesłany do kontrolera robota z zainstalowaną opcją systemową Prepared for PickMaster 5.
|
|
Przygotowanie programu sterującego pracą stanowiska paletyzującego wykonywane jest w dwóch etapach. Pierwszy (Line designer) odpowiada za fizyczne zamodelowanie stacji i jej elementów składowych. Na tym etapie wybierany jest konkretny kontroler robota oraz definiowane są obszary robocze i ich właściwości. Do wyboru są 4 typy obszarów roboczych: paleta, podajnik produktów, magazyn przekładek, odbiornik. Dla każdego z elementów można zdefiniować sygnały sterujące odpowiadające za komunikację robota ze sterownikiem PLC obsługującym stanowisko oraz połączyć go ze zdefiniowanym w kontrolerze układem współrzędnych (work object). W tym etapie definiowane są również właściwości narzędzia (chwytaka), w który wyposażony jest robot. Na rys. 2 pokazano przykładowo zdefiniowane stanowisko.
Drugi etap to zdefiniowanie konkretnego projektu programu (Project designer). Dla każdej wcześniej zdefiniowanej linii można stworzyć nieskończenie wiele projektów. Droga do gotowego do przesłania na kontroler kodu składa się z kilku kroków, przez które prowadzi program. Jest to bardzo wygodne podejście, które usprawnia pracę i skraca czas potrzebny na opanowanie oprogramowania oraz minimalizuje błędy mogące powstać podczas tworzenia programu. Etapy przygotowania programu to:
- Zdefiniowanie występujących kształtów
- Przypisanie występującym obiektom kształtów i właściwości (utworzonym kształtom przypisuje się właściwości w zależności od pełnionej funkcji: pudełko, paleta czy przekładka)
- Wygenerowanie wzorów układanych na palecie
- Określenie pozycji, z których produkty będą pobierane oraz odkładane
- Określenie przepływu produktu (wskazanie, jak produkty mają być przenoszone między poszczególnymi układami współrzędnych: miejscami poboru i odłożenia).
Oprogramowanie PickMaster 5 umożliwia również przetestowanie przygotowanego kodu w wirtualnym stanowisku utworzonym w programie RobotStudio. Przyśpiesza to uzyskanie końcowego programu sterującego pracą zrobotyzowanego stanowiska paletyzacji.
Pozostałe z wymienionych programów mają zbliżoną funkcjonalność do omówionego wyżej.
Założenia dotyczące programu
Głównym celem utworzonego programu było osiągnięcie zbliżonej funkcjonalności do istniejących programów wspomagających programowanie aplikacji paletyzujących i jednocześnie wyeliminowanie dodatkowych kosztów związanych z zakupem tego oprogramowania. Główne założenia tworzonego programu:
- dotyczące zastosowania programu:
- paletyzuje się wyłącznie prostopadłościenne elementy tych samych wymiarów, które podawane są z jednego zasobnika
- program oprócz przenoszenia produktów na paletę ma umożliwić obsługę magazynu przekładek oraz podawanie kolejnych palet
- użytkownik powinien mieć możliwość zdecydowania, na ile miejsc odkładane są produkty
- robot wyposażony jest w chwytak podciśnieniowy, umożliwiający chwycenie tylko jednego przedmiotu na raz
- dotyczące sposobu obsługi i dodatkowych funkcji:
- do działania programu nie jest wymagany komputer PC, algorytm ma być wykonywany na kontrolerze robota z wykorzystaniem ręcznego panelu oparatora FlexPendant z ekranem dotykowym do komunikacji z użytkownikiem przez graficzny interfejs
- program wykorzystuje wcześniej zdefiniowane dane (układy współrzędnych obiektów, sygnały sterujące) i umożliwia ich edycję w celu przystosowania do konkretnego stanowiska
- użytkownik wybiera, z kilku dostępnych, wzór układany na palecie, nie przewiduje się optymalizacji ułożenia pudeł.
Zakładana funkcjonalność powinna wystarczyć do obsługi większości prostych stanowiska do paletyzacji i przełożyć się na szybkość ich uruchomienia i przeprogramowania. Program w zakresie swojego wykorzystania powinien zachować stosunkowo dużą uniwersalność związaną z:
- możliwością paletyzacji pudeł dowolnej wielkości
- obsługą dowolnego robota ABB wyposażonego w kontroler z serii IRC5 z ręcznym panelem FlexPendant, uzbrojonego w chwytak podciśnieniowy
- możliwością dowolnej konfiguracji przestrzennej stanowiska do paletyzowania
- obsługą magazynu przekładek i palet.
Wirtualne stanowisko do paletyzacji
Omawiany program do sterowania pracą robota paletyzującego firmy ABB składa się z dwóch powiązanych ze sobą części. Pierwsza z nich to aplikacja przeznaczona na FlexPendant robota – graficzne menu umozliwiające konfigurację całego stanowiska. Druga część to program wykonywany w kontrolerze robota, napisany w języku RAPID. Program ten wykorzystuje dane wprowadzone podczas konfiguracji stanowiska w graficznym menu panelu oparatora FlexPendant. Cały kod powstał w edytorze języka robotów RAPID i był testowany na wirtualnym kontrolerze wchodzącym w skład pakietu RobotStudio. Do stworzenia interfejsu użytkownika wykorzystano moduł FlexPendant Software Development Kit z aplikacji ABB Robot Application Builder oraz Microsoft Visual Studio.
|
|
Pierwszym etapem tworzenia całego programu było stworzenie wirtualnego stanowiska do paletyzacji w programie firmy ABB RobotStudio. Służyło ono do testów aplikacji, tworzenia graficznego menu oraz rozwijania kodu programu w języku RAPID. Do budowy stanowiska wykorzystano zarówno gotowe modele z biblioteki programu, jak i elementy stworzone z brył importowanych z modeli CAD oraz tworzonych w programie RobotStudio. Do podstawowych elementów składowych stacji należą:
- robot przemysłowy – wybrano robota firmy ABB IRB 660 (rys. 1), który jest przeznaczony do operacji paletyzacji. Dodatkowo robot został umieszczony na podeście
- chwytak podciśnieniowy (rys. 4) – na potrzeby tworzonego wirtualnego stanowiska zbudowano model prostego chwytaka podciśnieniowego o jednej dużej ssawce
- podajnik pudełek – przykładowy podajnik z dostępnych bibliotek RobotStudio
- magazyn palet – stos palet o dowolnej wysokości i standardowych wymiarach 1200 × 800 × 144 mm
- magazyn przekładek – zbiór przekładek kartonowych umieszczonych na jednej palecie
- ogrodzenie – elementy dostępne w standardowych bibliotekach RobotStudio.
Wygląd wirtualnego stanowiska przedstawiono na rys. 5.
Realizacja programu
Przegląd dostępnego na rynku oprogramowania wspierającego paletyzację umożliwił zapoznanie się z funkcjami, jakie powinna oferować aplikacja tego typu. Mając na uwadze pierwotne założenia dotyczace prostoty i dużej szybkości konfiguracji oraz formy programu (aplikacja wykorzystująca środowisko FlexPendant z pominięciem komputera PC) zdefiniowano zestaw funkcji do zaimplementowania. Poniżej przedstawiono zrealizowane funkcjonalności, z podziałem na obszar pracy, którego dotyczą.
• Definiowanie obiektów
Użytkownik może wprowadzić dowolne wielkości palety, przekładki oraz prostopadłościennego przedmiotu, który ma zostać ułożony na palecie. Należy podać również maksymalne liczby palet i przekładek w zasobnikach. Na tej podstawie obliczana jest wysokość stosów, z których robot pobiera kolejne elementy. Program może obsłużyć maksymalnie cztery miejsca zdawcze oraz jedno miejsce, skąd pobierany jest przedmiot, oraz po jednym magazynie przekładek i palet. Dodatkowo zakłada się, że w czasie jednego cyklu pracy wszystkie paletyzowane elementy są tej samej wielkości.
• Rozmieszczenie przestrzenne elementów stanowiska
Użytkownik ma możliwość zdefiniowania wszystkich używanych przez program układów współrzędnych (miejsce poboru przedmiotów, miejsca, na których układane są kolejne palety, magazynu przekładek oraz palet. Każdy z nich może zostać wprowadzony na trzy różne sposoby:
- przez przypisanie wcześniej zdefiniowanego pod odpowiednią nazwą układu
- przez wskazanie za pomocą robota trzech punktów, na podstawie których wyliczany jest układ
- przez podanie współrzędnych początku układu współrzędnych oraz czterech kwaternionów (wynikających z rotacji układu).
• Możliwości układania na palecie
Przedmioty mogą być układane na palecie według jednego z czterech zdefiniowanych wzorów. Użytkownik może ustalić, ile warstw ma zostać ułożonych. Dla każdej palety i warstwy obowiązuje ten sam wzór. Dodatkowo dostępne są opcje wyśrodkowania ułożonych elementów na palecie, odbicia lustrzanego co drugiej warstwy oraz dodania przekładki. Program dba również o odpowiednie zdefiniowanie wektora podejścia do już ułożonych przedmiotów, tak aby dokładane pudełka nie naruszały tych wcześniej ułożonych.
• Pozostałe
Program obsługuje wyłącznie chwytaki trzymające w danej chwili tylko jeden przedmiot i sterowane jednym sygnałem binarnym (włącz/wyłącz). Użytkownik może zmieniać czas potrzebny na uchwycenie elementu. Algorytm ma również funkcję wyszukiwania kolejnych palet i przekładek na stosie. Do prawidłowego działania tej funkcji niezbędny jest sygnał od czujnika obecności detalu zamontowanego przy chwytaku. Użytkownik może także dostosować prędkość ruchów chwytaka do potrzeb procesu.
Program napisany w języku RAPID wykonywany jest w kontrolerze robota. Odpowiada za sterowanie pracą robota przemysłowego, realizuje m.in. instrukcje ruchu robota, zmiany wartości sygnałów cyfrowych. Natomiast interfejs użytkownika uruchomiany na FlexPendant robota odpowiada za dostarczenie programowi kontrolera danych aktualnych dla danego stanowiska. Interfejs użytkownika zawiera cztery zakładki.
• Zakładka Obiekty
Służy do określania wymiarów paletyzowanych pudeł i palety oraz liczby miejsc odstawczych, maksymalnej liczby palet i przekładek w zasobnikach (rys. 7).
|
|
• Zakładka Wzory/Warstwy
Kolejne okno definiuje sposób, w jaki elementy będą odkładane na palecie. Następnie zaznaczając odpowiednie pola wyboru określa się, czy między warstwami mają zostać dodane przekładki, czy ułożone warstwy mają zostać wyśrodkowane lub naprzemiennie obrócone o 180° (rys. 8).
• Zakładka Układy współrzędnych
Następna zakładka odpowiada za definiowanie układów współrzędnych obiektów, na których operuje robot. Użytkownik może wykonać tę czynność na trzy sposoby. Poszczególne układy mogą zostać wskazane za pomocą narzędzia robota (przycisk Pokaz), zdefiniowane przez opis liczbowy (przycisk Wpisz) lub mogą im zostać przypisane odpowiednie układy wcześniej zdefiniowane w pamięci kontrolera (wybór z list rozwijanej) (rys. 9).
|
|
• Zakładka Prędkości
Ostatnie okno umożliwia sterowanie prędkością procesu. Użytkownik może dobrać odpowiednie prędkości ruchów między obiektami (ruchy szybkie) oraz ruchów lokalnych związanych z dokładnym dosuwaniem przedmiotu (ruchy wolne). Dodatkowym parametrem jest czas zamknięcia chwytaka (rys. 10).
Podsumowanie
Przedstawiony program jest pomocnym narzędziem wspierającym obsługę zrobotyzowanych stanowisk paletyzacji. Z powodzeniem może być wykorzystany do sterowania robotem w większości aplikacji zrobotyzowanego paletyzowania. Testy oprogramowania przeprowadzone w środowisku RobotStudio pokazały, że program z powodzeniem może obsłużyć stanowiska o różnym stopniu skomplikowania: od przenoszenia pudełek z miejsca poboru na jedną paletę (rys. 11) po pełną obsługę stanowiska (cztery miejsca odstawcze, magazyny palet oraz magazyn przekładek - rys. 12).
|
|
Program był testowany również na rzeczywistym stanowisku. Z uwagi na inny chwytak zamocowany na robocie (chwytak sekcyjny sterowany kilkoma wyjściami cyfrowymi), testy dotyczyły jedynie sprawdzenia poprawności działania programu. Testy te wypadły pomyślnie. Przede wszystkim wykazały, że interfejs użytkownika jest wygodny w użyciu i zapewnia szybką konfigurację programu do konkretnego zadania. Cechuje go również duża intuicyjność, gdyż umożliwia obsługę programu przez użytkowników niebiorących udziału w projekcie budowania stanowiska. Poza tym, uzyskane wyniki pokrywały się z otrzymanymi w symulacjach komputerowych w RobotStudio.
Przeprowadzone testy pozwoliły okreslić kierunki rozwoju oprogramowania. W pierwszej kolejności program powinien umożliwiać obsługę chwytaków wielosekcyjnych, a tym samym pobieranie kliku detali jednocześnie oraz odkładanie ich w dowolne miejsca (niekoniecznie obok siebie). Wówczas cały proces paletyzowania będzie wykonany znacznie szybciej.
Drugi aspekt, który może być uwzględniony w przyszłości, to możliwość optymalizacji wzoru układanego na palecie w stosunku do rozmiaru pudełka. Pozwoli to na efektywniejsze wykorzystanie miejsca na palecie, co w rezultacie oznacza większą liczbę produktów znajdujących się na jednej palecie. Dodatkowo program mógłby realizować układanie pudełek w takiej orientacji, aby uwidocznić etykiety znajdujące się na nich, co pozwoli na szybszą identyfikację ułożonych produktów.
Podsumowując, można stwierdzić, że stworzony program osiągnął założoną funkcjonalność. Jego obsługa jest zbliżona do obsługi dedykowanego oprogramowania wspomagającego paletyzację i jednocześnie nie wiąże się z dużymi nakładami finansowymi. Do posługiwania się programem nie jest potrzebna znajomość języka programowania robota, a sam program nie wymaga korzystania z komputera PC. Zakładając uzyskanie przez program omówionych dodatkowych funkcjonalności, stanie się on przydatnym narzędziem ułatwiającym szybkie uruchamianie robota przemysłowego do zadania paletyzacji.
Bibliografia
- Barczyk J.: Robotyzacja pakowania problemy i rozwiązania, PAR 5/2004, s. 13–16.
- Barczyk J.: Robotyzacja w przemyśle spożywczym, PAR 1/2007, s. 16–20.
- Strona internetowa firmy ABB: www.abb.pl
- ABB PickMaster 5 Application manual.
inż. Dawid Czemierowski
W 2010 r. ukończył studia I stopnia na Wydziale Mechatroniki Politechniki Warszawskiej. Obecnie kontynuuje studia na tym samym wydziale na kierunku robotyka. W zakresie jego zainteresowań znajduje się robotyka, zarówno przemysłowa jak i mobilna.
dr inż. Krzysztof Kukiełka
Adiunkt w Instytucie Automatyki i Robotyki Politechniki Warszawskiej. Absolwent Politechniki Białostockiej. Przez dwa lata pracował w firmie ABB w dziale robotyki przemysłowej. Zajmuje się zagadnieniami związanymi z robotyką przemysłową oraz systemami akwizycji danych. Ponadto w kręgu jego zainteresowań znajdują się napędy elektryczne ze szczególnym uwzględnieniem układów napędowych z odzyskiem energii.