Rozdział 1Wprowadzenie
Automatyzacja i robotyzacja procesów przemysłowych są wyznacznikami technologicznego poziomu gospodarki. Zapoczątkowany w połowie XX wieku rozwój robotyki był związany z budową robotów przemysłowych i ich zastosowaniem do realizacji powtarzalnych zadań w uporządkowanym środowisku, często w warunkach uciążliwych dla człowieka. Obecnie, dzięki rozwojowi sensoryki i układów sterowania, budowane są roboty, które mogą pracować w zmiennym środowisku, w tym we współpracy z człowiekiem, przy zapewnieniu odpowiednich warunków bezpieczeństwa (coboty). Robotyka wymieniana jest jako jeden z filarów Przemysłu 4.0 wśród dominujących w tej dziedzinie rozwiązań informatycznych z zakresu analizy danych oraz sterowania i zarządzania produkcją.
Robotyzacja procesów dotyczy już nie tylko pojedynczych stanowisk, ale obejmuje całe linie produkcyjne. Ze względu na skalę takiego projektu i związane z tym ryzyko popełnienia błędu konieczna jest pełna weryfikacja rozwiązania jeszcze na etapie projektu, przed podjęciem kluczowych, wiążących decyzji inwestycyjnych. Weryfikacja taka to nie tylko sprawdzenie parametrów funkcjonalnych dobranych robotów, takich jak przestrzeń robocza, udźwig czy szybkość działania, ale także sprawdzenie robotów w działaniu, w kontekście całej linii, co obejmuje np. integrację z oprzyrządowaniem czy synchronizację pracy robotów działających w tej samej przestrzeni. Wymaga to przygotowania programów dla robotów przed ich zakupem i instalacją na hali produkcyjnej oraz integracją z oprzyrządowaniem.
W takiej sytuacji tradycyjne podejście do programowania robotów poprzez ich uczenie na rzeczywistym stanowisku, czyli programowanie online, nie może być wykorzystane, gdyż wtedy, gdy potrzebne jest przygotowanie programu, robot nie jest jeszcze dostępny. Mało efektywna będzie też próba przygotowania programów offline w języku programowania robota, w szczególności ze względu na brak możliwości weryfikacji poprawności takiego programu.
Potrzebne są narzędzia, które umożliwią programowanie robotów offline w środowisku zbliżonym do środowiska rzeczywistego. W tym celu wykorzystuje się systemy udostępniające środowisko graficzne zawierające modele 3D robotów. Ponieważ weryfikacja programu jest realizowana przez symulację, modele robotów, poza odzwierciedleniem geometrii robota, powinny zawierać również reprezentację modelu kinematycznego - pary kinematyczne, zakresy ruchów, prędkości, układy współrzędnych. Realistyczne odtworzenie środowiska pracy robota wymaga uwzględnienia w modelu oprzyrządowania, z którym robot współpracuje (chwytaki, pozycjonery, palniki spawalnicze), oraz elementów pomocniczych, takich jak podstawy, postumenty, magazyny, wygrodzenia.
Producenci robotów udostępniają aplikacje umożliwiające programowanie offline dostarczanych przez nich robotów w środowisku graficznym. Są to na przykład programy: RoboGuide firmy Fanuc Robotics, PC Roset firmy Kawasaki czy Robot Studio firmy ABB. Zaletą tych programów jest wykorzystanie wirtualnego kontrolera robota, zawierającego takie samy algorytmy sterowania robotem jak w kontrolerze rzeczywistym. Dzięki temu uzyskujemy pełną zgodność wyników symulacji z działaniem robota rzeczywistego dla programu wygenerowanego dla modelu symulacyjnego. Zastosowanie tych programów jest jednak ograniczone do modeli robotów i oprzyrządowania tylko jednego producenta. Dodatkowo programy takie mają ograniczone możliwości w zakresie przygotowania modeli urządzeń i elementów pomocniczych, które nie są dostępne w bibliotece programu, a są konieczne, aby wiernie odtworzyć stanowisko rzeczywiste.
Inny rodzaj oprogramowania do modelowania, symulacji i programowania robotów offline w środowisku graficznym to programy uniwersalne obsługujące roboty i urządzenia różnych producentów. Jako przykłady tego typu programów można wymienić produkty liderów na rynku europejskim, DELMIA V6 firmy Dassault Systemes oraz Process Simulate firmy Siemens. Programy te nie są oddzielnymi aplikacjami, lecz są w pełni zintegrowane z aplikacjami do projektowania i analizy produktów oraz procesów wytwarzania, tworząc spójne środowisko operujące na tych samych danych. Dla modelowania, symulacji i programowania stanowisk zrobotyzowanych oznacza to pracę w jednym środowisku o tym samym interfejsie bez potrzeby przenoszenia danych niezależnie od tego, czy projektujemy chwytak, definiujemy ruch robota czy też symulujemy pracę całej linii. Dzięki pracy na tych samych modelach zmiany wprowadzone w projekcie produktu mogą być bezpośrednio uwzględniane w projektowaniu wytwarzania. Jest to, poza możliwością programowania robotów różnych producentów, istotna zaleta oprogramowania tego typu.
W książce przedstawiono proces modelowania, analizy, symulacji i programowania stanowisk zrobotyzowanych w systemie DELMIA V6, który jest częścią platformy 3DEXPERIENCE. Autor zakłada, że czytelnik zna tę platformę w stopniu przynajmniej podstawowym. Dotyczy to interfejsu platformy i systemu CATIA V6, w szczególności modelowania bryłowego w aplikacji Part Design oraz modelowania produktów w aplikacji Assembly Design. Zagadnienia te wykorzystywane są w modelowaniu urządzeń stanowisk zrobotyzowanych przedstawionym w rozdziale 12, ale nie są w książce omawiane.
W rozdziałach 2 i 3 przedstawiono definiowanie struktury stanowiska zrobotyzowanego, w tym tworzenie nowych i wstawianie istniejących modeli stanowisk wytwarzania, wstawianie modeli z katalogu oraz ustawianie i łączenie modeli na stanowisku. Rozdział 4 zawiera charakterystykę środowiska symulacji. W rozdziale 5 omówiono definiowanie grup ruchu, sterowników ruchu oraz integrację robota z chwytakiem, pozycjonerem i torem jezdnym. W rozdziale 6 omówiono funkcję poruszania mechanizmami. Jednym ze sposobów definiowania położeń docelowych operacji ruchu robota jest wykorzystanie tagów. W rozdziale 7 przedstawiono pracę z tagami - ich definiowanie, modyfikacje i wykorzystanie. Istotną część książki stanowi rozdział 8, w którym przedstawiono definiowanie zadań robotów. Omówiono tu parametry operacji ruchu, definiowanie zadań w edytorze Teach i w edytorze struktury logicznej oraz współpracę robota z pozycjonerem i torem jezdnym. Rozdział 9 zawiera opis narzędzi do analizy umożliwiających sprawdzenie zasięgu robota, ustawienia robota, osiągalności położeń operacji ruchu, przestrzeni wymaganej do realizacji zadania i synchronizacji zadań robotów pracujących w tej samej przestrzeni. W rozdziale 10 przedstawiono możliwości symulacji zadań robotów. Omówiono tu także tworzenie scenariuszy symulacji oraz analizy z wykorzystaniem sensorów. Rozdział 11 zawiera opis postępowania przy generowaniu programów dla robotów do zdefiniowanych zdań oraz sposób importowania programów robotów do programu DELMIA V6.
Istotną częścią książki są dołączone przykłady. Przedstawiają one krok po kroku praktyczne wykorzystanie ważniejszych, omawianych w książce zagadnień. Do każdego przykładu dostępny jest model startowy. Modele te są dostępne na stronie: https://ebook.pwn.pl/modelowanie-symulacja-i-programowanie. Jako modele startowe do przykładów będących kontynuacją innych przykładów można wykorzystać modele końcowe przykładów wcześniejszych. Udostępnione do przykładów modele zostały przygotowane w wersji edukacyjnej platformy 3DEXPERIENCE i - ze względu na ograniczenia licencyjne - tylko w takiej wersji mogą być one otwarte i wykorzystane.
Oprogramowanie platformy 3DEXPERIENCE jest ciągle rozwijane. W ciągu miesiąca udostępnianych jest kilka, a nawet kilkanaście aktualizacji. Aktualizacje te wprowadzają nowe i modyfikują istniejące funkcjonalności oraz usuwają wykryte usterki. Dotyczy to omawianego w książce systemu DELMIA V6. Tekst książki został przygotowany i sprawdzony dla wersji R2025x HotFix 0.14. Przedstawione w książce przykłady zostały opracowane w wersji R2025x HotFix 0.26, z wyjątkiem przykładu z podrozdz. 8.11, który został przygotowany w wersji R2025x HotFix 1.7. Ze względu na rozwój oprogramowania kolejne wersje mogą różnić się w stosunku do opisu przedstawianego w książce.
Mam nadzieję, że książka, którą oddaję w ręce czytelników, będzie wartościowa dla osób, które chcą zaznajomić się z tematyką modelowania, symulacji i programowania stanowisk zrobotyzowanych w systemie DELMIA V6 lub pogłębić swoją wiedzę oraz umiejętności z tego zakresu.
Rozdział 2Definiowanie struktury stanowiska
Podstawową jednostką integrującą wszystkie elementy systemu wytwarzania, która obejmuje produkty, zasoby i realizowane przez nie działania, jest PPR Context (process-product-resource). Omawiane w tym podręczniku zagadnienia dotyczą modelowania stanowisk zrobotyzowanych realizujących wybrane fragmenty procesu produkcyjnego bez uwzględnienia całościowego planowania procesu. Stąd zawartość PPR będzie ograniczona do zasobów i przetwarzanych produktów (manufacturing products), które formalnie zaliczane są do zasobów (resources), a realizowane na stanowisku działania będą zdefiniowane w postaci zadań dla zasobów. Tak więc kontekst PPR będzie stanowić model stanowiska zrobotyzowanego i będzie obejmować wszystkie związane z nim elementy.
Zasoby umieszczane w kontekście PPR można podzielić na zasoby organizacyjne i zasoby robocze. Zasoby organizacyjne służą do grupowania zasobów roboczych i mogą zawierać również inne zasoby organizacyjne. Do zasobów organizacyjnych zaliczamy: strefę produkcyjną (Area) oraz jednostkę produkcyjną (Manufacturing Cell). Zasoby robocze to takie, które biorą bezpośredni lub pośredni udział w procesie produkcyjnym. Wyróżnia się wśród nich zasoby aktywne, które realizują zadania, np. robot (Robot), obrabiarka (NC Machine), operator (Worker), podajnik (Conveyor). Drugą grupę stanowią zasoby pomocnicze wykorzystywane do realizacji zadań, takie jak narzędzie (Tool Device), magazyn (Storage). Wstawianie i rozmieszczanie zasobów realizujemy w aplikacji Plant Layout Design.
2.1. Wstawianie dokumentu PPR Context
Dokument PPR Context jest główną jednostką modelu. Wstawiamy go, wybierając polecenie New Content z listy wyświetlonej po kliknięciu przycisku (1) (rys. 2.1a). W oknie New Content (rys. 2.1b) wybieramy PPR Context. Odpowiedni typ dokumentu można wyszukać, wpisując część nazwy w polu (2), a następnie klikając przycisk (4). Użycie przycisku (3) powoduje usunięcie wpisanej nazwy.
Rys. 2.1. Wstawianie nowego dokumentu PPR Context: a) wybór z listy, b) okno dialogowe New Content
2.2. Wstawianie zasobów organizacyjnych Area oraz Manufacturing cell
Zasoby organizacyjne można wstawić do utworzonych wcześniej zasobów organizacyjnych lub kontekstu PPR, korzystając z podanych poniższych sposobów:
A. Utworzyć nowy zasób Area lub Manufacturing cell, wstawiając nową zawartość przez New Content. Zostaje utworzony dokument w nowej zakładce. Zasób ten można skopiować do utworzonego wcześniej zasobu organizacyjnego, wybierając kolejno Copy dla kopiowanego zasobu i Paste dla zasobu nadrzędnego (rodzica) otwartego w innej zakładce.
B. Z menu kontekstowego dla kontekstu PPR lub innego zasobu organizacyjnego w drzewku, który będzie zasobem nadrzędnym dla wstawianego zasobu, wybrać Insert Resource->Area lub Insert->Manufacturing cell (rys. 2.2a).
C. Z paska narzędziowego Resource creation wybrać polecenie Area (rys. 2.2b) lub Manufacturing cell (rys. 2.2c) i wskazać w drzewku element nadrzędny wstawianego zasobu.
Korzystając z powyższych sposobów, można również wstawić zasoby innych typów. Po ich wstawieniu należy później zdefiniować ich zawartość (modele geometryczne i wszystkie wymagane dla danego typu zasobu parametry).
Rys. 2.2. Wstawianie zasobu organizacyjnego: a) wybór z menu kontekstowego, b) polecenie Area, c) polecenie Manufacturing cell
2.3. Wstawianie utworzonych wcześniej zasobów
Do utworzonych według powyższych sposobów zasobów organizacyjnych Area oraz Manufacturing cell można dodać utworzone wcześniej zasoby lub produkty (w tym również zasoby organizacyjne). Można to zrobić:
A. Wybierając z menu kontekstowego zasobu organizacyjnego lub kontekstu PPR polecenie Insert Resource->Insert existing product or resource (rys. 2.3a), a następnie wyszukując i wskazując w bazie danych zasób do wstawienia. Po wybraniu tego polecenia zasób można również wybrać spośród dostępnych zasobów, otwartych w innych zakładkach w bieżącej sesji.
B. Wybierając polecenie Insert existing product or resource (rys. 2.3b) z paska narzędziowego Resource creation i wskazując w drzewku zasób organizacyjny, który ma być elementem nadrzędnym wstawianego zasobu. Następnie należy wyszukać i wskazać zasób z bazy danych lub otwarty w bieżącej sesji.
Rys. 2.3. Wstawianie zdefiniowanego wcześniej zasobu: a) wybór z menu kontekstowego, b) polecenie Insert existing product or resource
C. Korzystając z poleceń Copy dostępnych w menu kontekstowym dla wstawianego zasobu, otwartego w bieżącej sesji, i Paste dla zasobu nadrzędnego.
Gdy zasób jest wstawiany przez kopiowanie Copy/Paste, to wstawienie jest realizowane w położeniu manipulatora, jeżeli manipulator jest umieszczony w geometrii. Jeżeli manipulator znajduje się poza geometrią, to zasób jest umieszczany w początku układu współrzędnych w przypadku, gdy kopia została wykonana w innym dokumencie, a w przeciwnym razie zasób jest umieszczany w miejscu kopiowanego modelu. Wklejany zasób może być przesuwany razem z manipulatorem. Przy manipulatorze wyświetlana jest chmurka narzędzi (rys. 2.4), która pozwala na przemieszczanie manipulatora (razem z wklejanym zasobem): (1) do miejsca, gdzie jest kopiowany model źródłowy (działa przy kopiowaniu w obrębie jednego dokumentu), (2) do początku układu współrzędnych dokumentu, (3) do ostatniego położenia manipulatora. Miejsce wstawienia zatwierdzamy klawiszem Esc na klawiaturze lub klikając puste miejsce w oknie.
Rys. 2.4. Chmurka narzędzi do ustawienia wstawianego zasobu
Jeżeli do wstawienia zostanie wybrany produkt, a nie zasób, to wówczas wyświetlane jest okno dialogowe Generate a Resource (rys. 2.5a), które umożliwia przekształcenie produktu w zasób przez wybór typu zasobu i potwierdzenie. Raz określony typ zasobu nie może być później zmieniony. Po wybraniu Cancel typ zasobu nie zostaje określony, a do modelu wstawiany jest zwykły produkt. Produkt taki może być później zamieniony na zasób za pomocą polecenia Generate a Resource (rys. 2.5b) z zakładki Resource Creation.
Rys. 2.5. Zamiana produktu na zasób: a) okno dialogowe Generate a Resource, b) polecenie Generate a Resource
2.4. Wstawianie zasobów z katalogu
Katalogi powinny być zaimportowane do bazy danych. Sposób importu przestawiono w przykładzie z podrozdz. 3.14.
Aby otworzyć katalog zawierający elementy do wstawienia, należy wybrać polecenie Open catalog browser (rys. 2.6a) z paska Resource Creation lub polecenie Catalog Browser z paska Tools (rys. 2.6b).
Rys. 2.6. Wstawianie zasobów z katalogu: a) polecenie Open catalog browser, b) polecenie Catalog Browser
Po wybraniu polecenia otwiera się okno dialogowe wyświetlające strukturę ostatnio otwieranego katalogu (rys. 2.7). Aby zmienić katalog, należy w wyświetlonym oknie wybrać Open a catalog (1), a następnie w oknie Choose a Catalog or Chapter (rys. 2.8) wybrać katalog do otwarcia z dostępnej listy. Aby otworzyć katalog, którego nie ma na liście, należy wybrać przycisk More i wyszukać katalog w bazie.
Rys. 2.7. Okno z katalogiem ResourceLayoutCatalog
Rys. 2.8. Okno dialogowe wyboru nowego katalogu
Po zlokalizowaniu wybranego komponentu w drzewie katalogu można go wstawić, korzystając z jednego z poniższych sposobów:
A. W przypadku modelu sparametryzowanego kliknąć wybraną pozycję prawym przyciskiem myszki i z menu kontekstowego wybrać Use Item->Template instantiation (rys. 2.9).
Rys. 2.9. Wstawienie zasobu sparametryzowanego
Po wyświetleniu okna dialogowego Select destinations (rys. 2.10) wskazujemy miejsce w strukturze modelu (dokument PPR, Manufacturing cell lub Area), gdzie komponent ma być wstawiony.
Rys. 2.10. Okno wyboru miejsca wstawienia zasobu sparametryzowanego
Po zatwierdzeniu zostaje wyświetlone okno dialogowe Insert Object (rys. 2.11) przedstawiające podgląd wstawianego komponentu. Użycie przycisku Parameters powoduje wyświetlenie okna dialogowego o tej samej nazwie, które umożliwia zmianę wartości parametrów wstawianego zasobu (rys. 2.12).
Po ustawieniu parametrów i zatwierdzeniu wstawienia w oknie Insert Object wstawiany komponent jest połączony z kursorem, a przez kliknięcie określamy miejsce wstawienia komponentu w geometrii modelu.
Rys. 2.11. Okno dialogowe wstawienia zasobu sparametryzowanego
Rys. 2.12. Okno dialogowe edycji parametrów zasobu
B. W przypadku modelu niesparametryzowanego z menu kontekstowego należy wybrać Use Item->Insert (rys. 2.13). Następnym krokiem jest wskazanie zasobu organizacyjnego, do którego ma być wstawiony model (nie jest wyświetlane okno Select destinations jak w przypadku modelu sparametryzowanego). Na koniec kliknięciem wskazujemy miejsce wstawienia modelu połączonego z kursorem.
Rys. 2.13. Wstawienie zasobu niesparametryzowanego
C. Po wybraniu polecenia Open catalog browser z paska Resource creation aktywujemy w drzewku zasób organizacyjny, do którego ma być wstawiony model z katalogu. Następnie należy zlokalizować w katalogu model zasobu i kliknąć go. Wyświetlane jest okno dialogowe Snap (rys. 2.14) oraz zestaw narzędzi w chmurce (rys. 2.15). Narzędzia te opisano w podrozdz. 3.4. Są one wyświetlane, jeśli w ustawieniach jest zaznaczona opcja App Preferences->Simulation->Manufacturing Simulation Apps Common Services->Resource Positioning->Instantiate from Catalog Preferences->Advanced Snap (rys. 3.34), i umożliwiają ustawienie wstawianego zasobu. Po zatwierdzeniu miejsca ustawienia model zostaje wstawiony w aktywnym zasobie organizacyjnym.
Rys. 2.14. Okno dialogowe Snap do dodatkowych przesunięć i obrotów
Rys. 2.15. Chmurka z narzędziami do ustawiania manipulatora
Jeżeli wstawiany model jest sparametryzowany oraz w ustawieniach jest zaznaczona opcja App Preferences->Simulation->Manufacturing Simulation Apps Common Services->Resource Positioning->Instantiate from Catalog Preferences->Edit Parameters (rys. 3.34), to po zatwierdzeniu ustawienia komponentu zostaje wyświetlone okno dialogowe, które umożliwia zmianę wartości parametrów modelu (rys. 2.16a).
Rys. 2.16. Edycja parametrów zasobu: a) okno dialogowe edycji parametrów, b) polecenie Resource parameters
Późniejsza zmiana wartości parametrów wstawionego z katalogu modelu sparametryzowanego jest możliwa przy użyciu polecenia Resource parameters (rys. 2.16b) z paska Resource creation.
Zasoby są wstawiane w miejscu wskazanym początkiem ich układu współrzędnych lub portem typu locator, jeżeli zasób zawiera taki port, a w ustawieniach wybrano opcję App Preferences->Simulation->Manufacturing Simulation Apps Common Services->Resource Positioning->Object Positioning Preferences->Use Locator Mechanical Port (rys. 3.34).
2.5. Tworzenie nowych zasobów
Korzystając z poleceń przedstawionych na rys. 2.17, dostępnych na pasku Resource creation, można do dokumentu PPR lub zasobu organizacyjnego wstawić pusty zasób określonego typu. Zasób taki powinien być później wypełniony zawartością przez wstawienie produktu z geometrią i zdefiniowanie parametrów wymaganych przez typ zasobu. Do nowo utworzonego zasobu można wstawić przygotowany wcześniej produkt definiujący jego geometrię, korzystając z polecenia Insert existing product or resource (podrozdz 2.3). Produkt do wstawienia może być wyszukany w bazie lub wybrany spośród modeli otwartych w bieżącej sesji.
Rys. 2.17. Polecenia wstawiania pustych zasobów