Instrukcja
Transkrypt
Instrukcja
Pracownia Nauki Programowania i Aplikacji Robotów Przemysłowych Instrukcja laboratoryjna R 14 Zrobotyzowane gniazdo montażowe – wstęp do języka programowania, wymiana chwytaków Instrukcja dla studentów studiów dziennych. Przygotował: mgr inż. Marcin Zawierucha Łódź 2011 r. str. 1 Zajęcia odbywają się na aparaturze zakupionej w ramach Regionalnego Programu Operacyjnego Województwa Łódzkiego na lata 2007-2013. Oś priorytetowa :V Infrastruktura Społeczna, Działanie :V.3 Infrastruktura edukacyjna pt.: ”Dostosowanie infrastruktury edukacyjnej Wydziału Mechanicznego Politechniki Łódzkiej do prognozowanych potrzeb i oczekiwań rynku pracy województwa łódzkiego poprzez zakup wyposażenia przeznaczonego do nowoczesnych metod nauczania.” str. 2 1. Temat ćwiczenia Stanowisko zrobotyzowanego montażu i nakładania powłok – nauka programowania robota przemysłowego. 2. Cel ćwiczenia Celem ćwiczenia jest: – zapoznanie studentów ze stanowiskiem zrobotyzowanego montażu i nakładania powłok – poznanie możliwości robota przemysłowego wyposażonego w wymienne efektory oraz system wizyjny – nauka programowania robota 3. Stanowisko 3.1 Budowa stanowiska Rys.3.1 Zrobotyzowane stanowisko montażowe Stanowisko laboratoryjne jest przykładem zrobotyzowanego gniazda montażowego oraz nakładania powłok. W jego skład wchodzi: – – – robot przemysłowy o sześciu stopniach swobody wymienne efektory robota – chwytak mechaniczny szczękowy – chwytak pneumatyczny podciśnieniowy – wkrętak elektryczny – dyspenser kleju kamera przemysłowa (system rozpoznawania obrazu) str. 3 – – – – przenośnik taśmowy podajnik wibracyjny wkrętów stanowisko do pozycjonowania i montażu komputer przenośny Stanowisko jest wyposażone w dodatkowy panel sterujący wraz z przyciskami (symulator wejść) oraz sygnalizatorami świetlnymi (symulator wyjść), których można użyć w programie. Rys.3.2 Panel sterujący 3.2 Opis stanowiska Zrobotyzowane gniazdo montażowe jest przeznaczone do składania listw zasilających. Rys. 3.3 Zmontowana listwa zasilająca Listwa zasilająca jest składana z następujących komponentów: – obudowa górna listwy – obudowa dolna listwy – dwie listwy stykowe – naklejka – wkręty (6 szt.) Obudowa dolna, górna oraz obie listwy stykowe podawane są za pomocą podajnika taśmowego. Nad podajnikiem znajduje się kamera. Dzięki specjalnemu oprogramowani MELFA-Vision, robot jest w stanie rozpoznać detal znajdujący się pod kamerą i podjąć określone działanie. Każdy z detali wymaga innego efektora, aby robot był w stanie pobrać go z podajnika taśmowego. Aby zrealizować to zadanie, ramię robota zostało wyposażone w szybkozłączkę, a na stanowisku, w specjalnych gniazdach, znajdują się wymienne efektory. Po rozpoznaniu detalu, robot pobiera odpowiedni efektor: chwytak mechaniczny bądź chwytak pneumatyczny str. 4 podciśnieniowy. Dzięki wybranemu efektorowi, robot jest w stanie przetransportować detal z podajnika taśmowego do miejsca montażu. Zastosowanie systemu wizyjnego zapewni bardzo dużą elastyczność stanowiska montażowego. Robot jest w stanie określić położenie oraz orientację rozpoznanego detalu, dzięki czemu nie trzeba stosować elementów pozycjonujących detal przed pobraniem. Gdyby nie było kamery, na transporterze należałoby zastosować szykany kierujące odpowiednie detale do przeznaczonych specjalnie dla nich elementów pozycjonujących. Aby zakończyć montowanie listwy, należy użyć sześciu wkrętów. Jednym z efektorów jest wkrętak elektryczny umożliwiający dokonanie ostatecznego montażu. Wkręt, za pomocą wkrętaka wyposażonego w magnetyczną końcówkę, jest pobierany z automatycznego podajnika wibracyjnego. Ostatnim etapem montażu, jest naklejenie naklejki. W tym celu robot pobiera dyspenser kleju aby nałożyć powłokę. Następnym krokiem jest wymiana dyspensera na chwytak pneumatyczny podciśnieniowy w celu pobrania naklejki i umieszczenie jej we wcześniej przygotowanym miejscu. Gotowy element w postaci złożonej listwy zasilającej przenoszony jest na transporter międzystanowiskowy. Rys.3.4 Obudowa górna oraz dolna listwy zasilającej Rys.3.5 Listwy stykowe Rys.3.6 Wkręty str. 5 4. Przygotowanie stanowiska do pracy Aby przygotować stanowisko do pracy należy: – sprawdzić pozycje wyłączników stopu awaryjnego – sprawdzić pozycje zaworu doprowadzającego sprężone powietrze do stanowiska. Jeżeli jest to konieczne, otworzyć go. – przełączyć w pozycję ON włącznik główny znajdujący się na szafie sterującej – otworzyć zawór, doprowadzający sprężone powietrze, znajdujący się na szafie sterującej – włączyć kontroler włącznikiem znajdującym się na panelu kontrolera Rys. 4.1 Zawór doprowadzający sprężone powietrze do stanowiska Rys.4.2 Włącznik główny, zawór doprowadzający sprężone powietrze wraz z regulatorem ciśnienia oraz wyspa zaworowa str. 6 5. Budowa robota Do obsługi stanowiska montażowego został zastosowany robot przemysłowy Mitsubishi – model RV-3SB. Rys.5.1 Ramię robota Parametry robota: Parametr Wartość Robot Ilość stopni swobody 6 Struktura ramieniowo-przegubowa Napęd osi Elektryczne serwosilniki, każdy wyposażony w luzownik oraz enkoder absolutny Maksymalny udźwig 3,5 kg Powtarzalność ruchu ± 0,02 mm Maksymalna wypadkowa prędkość pracy 5500 mm/s Masa robota 37 kg Stopień ochrony IP65 Zasięg kołnierza mocującego (kiści) 642 mm Zakresy poszczególnych osi Oś J1 Obrót korpusu: 340° (-170 do +170) Oś J2 Obrót ramienia: 225° (-90 do +135) Oś J3 Oś łokcia: 191° (-20 do +171) Oś J4 Obrót przedramienia: 320° (-160 do +160) str. 7 Oś J5 Pochylenie przegubu kiści: 240° (-120 do +120) Oś J6 Obrót kiści: 720° (-360 do +360) Kontroler robota Model CR2B-574 Możliwa ilość obsługiwanych serwpnapędów Procesor 6 osi robota + 2 dodatkowe interpolowane + 6 dodatkowych niezależnych - główny: 64-bitowy RISC - do obsługi napędów: DSP Liczba programowalnych punktów charakterystycznych 2500 (teaching points) Maksymalna liczba kroków każdego programu 5000 Maksymalna liczba zapamiętanych programów 88 Ilość zabudowanych wejść / wyjść cyfrowych 32 wejścia / 32 wyjścia - 2 redundantne obwody pod obsługę wyłączników Obsługa obwodów bezpieczeństwa bezpieczeństwa - 1 wejście dla obwodu wyłącznika drzwi Maksymalna możliwa ilość wejść / wyjść cyfrowych 256 wejść / 256 wyjść Wyposażenie w porty komunikacyjne Ethernet TCP/IP, RS232, RS422 Ilość szybkich wejść do obsługi enkodera zewnętrznego 2 dla funkcji tracking Ilość portów rozszerzających pod obsługę dodatkowych 3 kart funkcyjnych - Możliwość rozbudowy o interfejsy sieci przemysłowych CCOpcje dodatkowe Link i Profibus DP. - karta obsługi dodatkowych 8 osi serwonapędowych System wizyjny Producent COGNEX Nazwa i numer Modelu ISM1100-10 with PatMax Rozdzielczość 640x480 Matryca 1/3” CCD Szybkość migawki 16μs do 1000ms Pamięć 64 MB Pamięć operacyjna 128 MB Akwizycja obrazu 256 odcieni szarości (8 bitów/piksel) Prędkość akwizycji 60 klatek / s Waga 146g Dopuszczalne przeciążenie 10 G str. 8 6. Kontroler robota oraz panel programatora 6.1 Kontroler robota Rys.6.1 Panel kontrolera Nr Nazwa przycisku Opis 1 Start Rozpoczęcie wykonywania programu. Program jest odtwarzany w pętli. W czasie wykonywania programu świeci się dioda LED (kolor zielony) 2 Stop Natychmiastowe zatrzymanie robota. Przycisk nie powoduje wyłączenia napędów robota. Użycie przycisku do zatrzymania sygnalizowane jest diodą LED (kolor czerwony) 3 Reset Przycisk resetuje błędy. Jeżeli wystąpił jakiś błąd, sygnalizowane jest to diodą LED (kolor czerwony). Przycisk resetuje również stany przerwań oraz program. 4 Stop awaryjny Przycisk stopu bezpieczeństwa z funkcją blokady. Naciśnięcie przycisku powoduje natychmiastowe zatrzymanie robota niezależnie od warunków pracy. Aby odblokować, należy przekręcić go w prawo. 5 Remove T/B Przycisk umożliwia podłączenie lub odłączenie panela uczącego od kontrolera bez konieczności odłączenie zasilania kontrolera 6 Changeover display Zmiana informacji ukazujących się na wyświetlaczu. Kolejność: nr programu → nr linii → prędkość. W przypadku wystąpienia błędu, na wyświetlaczu ukazuje się jego kod 7 End 8 SVO.ON Włączenie napędów. Kiedy napędy są włączone, świeci się dioda LED (kolor zielony) 9 SVO.OFF Wyłączenie napędów. Kiedy napędy są wyłączone, świeci się dioda LED (kolor czerwony) 10 STATUS NUMBER Wyświetlacz. Może pokazywać nr błędu, nazwę programu, nr linii programu, prędkość Zatrzymanie programu po wykonaniu ostatniej linii Zmiana trybu pracy robota: - AUTO(Op.) : możliwe jest operowanie jedynie przyciskami kontrolera. Wykorzystanie 11 MODE changeover zewnętrznych urządzeń bądź panela uczącego nie jest możliwe - TEACH: praca z wykorzystaniem panelu uczącego - AUTO(Ext.) : sterowanie przy pomocy urządzenia zewnętrznego 12 UP/DOWN Przyciski przewijania. Umożliwiają wybór programu, zmianę prędkości oraz uzyskanie dodatkowych informacji o kodzie błędu str. 9 6.2 Panel programowania Rys.6.2 Panel programowania Nr Nazwa przycisku 1 TEACH 2 Pokrętło nawigacji 3 Stop awaryjny 4 Rysik 5 Diody: POWER, TB ENABLED 6 Opis Naciśnięcie przycisku powoduje załączenie panelu. Po włączeniu przycisku, zapala się dioda LED (kolor biały) Umożliwia nawigację w menu ekranów panelu uczącego Przycisk stopu bezpieczeństwa z funkcją blokady. Naciśnięcie przycisku powoduje natychmiastowe zatrzymanie robota niezależnie od warunków pracy. Aby odblokować, należy przekręcić go w prawo. Rysik do wygodnego posługiwania się panelem dotykowym Po podłączeniu i załączeniu napięcia zasilania zapala się dioda LED POWER. Zielona dioda LED TB ENABLED zapala się, gdy ekran dotykowy został uaktywniony przyciskiem TEACH (1) Pokrywa złącza USB Gniazdo USB umożliwia podłączenie pamięci USB. Obsługiwany system plików: FAT 7 Ekran dotykowy Podświetlany ekran dotykowy TFT o przekątnej 6,5'' (rozdzielczość: 640x480) 8 STOP 9 SERWO Jednoczesne naciśnięcie przycisku SERWO i przycisku zezwolenia, powoduje załączenie napędów serwo. Po załączeniu napędów serwo zapala się zielona dioda LED. 10 RESET Jeśli pojawił się błąd, przycisk RESET powoduje jego skasowanie 11 CAUTION 12 HOME Nie jest używany 13 OVRD Zmiana prędkości w trybie JOG i automatycznym 14 HAND Przycisk wywołuje menu HAND – sterowanie wyspą zaworową umieszczoną na ramieniu robota 15 JOG Przycisk wywołuje menu JOG – wybór układu współrzędnych, w którym robot ma się poruszać podczas uczenia, wyświetlenie aktualnych współrzędnych robota 16 Przyciski + oraz - Za pomocą tych przycisków można wybrać pole wprowadzania danych, umożliwiają sterownie manipulatorem lub wyspą zaworową (wybór menu JOG lub HAND) 17 EXE 18 MENU 19 RETURN Natychmiastowe zatrzymanie robota. Nie wyłącza napędów serwo Naciśnięcie przycisku CAUTION w trybie JOG powoduje ignorowanie czujnika krańcowego. Ten przycisk może być użyty do załączenia hamulca Naciśniecie przycisku powoduje wykonanie komendy przez robota Powoduje wyświetlenie ekranu startowego Powrót do poprzedniego menu str. 10 20 Strzałki 21 OK 22 CANCEL Anulowanie wyboru menu lub wprowadzonych danych 23 Uchwyt Uchwyt umożliwia pewne i wygodne trzymanie panelu uczącego 24 Nawigacja w menu ekranu i między polami wprowadzania danych Potwierdzenie wyboru menu lub wprowadzonych danych Trzystopniowy przycisk potwierdzenia, zabezpiecza użytkownika przed jakimkolwiek Przycisk zezwolenia zagrożeniem podczas obsługi robota. Wszystkie wprowadzone polecenia są akceptowane tylko wtedy, gdy przycisk jest naciśnięty w pozycji środkowej. 7. Środowisko programowania robota RT ToolBox2 Środowisko RT ToolBox2 służy do programowania robotów przemysłowych firmy Mitsubishi Electronic zarówno online jak i offline. Rys. 7.1 Środowisko RT ToolBox2 Wykorzystując takie środowisko, programista ma dostęp do wielu dodatkowych narzędzi ułatwiających programowanie robota: – edytor programu wraz z kontrolą składni – pomoc wraz z przykładami użycia funkcji – kontrola stanu wejść/wyjść – monitorowanie zmiennych – edycja pozycji – diagnostyka błędów – zarządzanie projektem tworzenie kopii zapasowej str. 11 8. Programowanie robota 8.1 Podstawowe instrukcje języka programowania DEF INT/DEF FLOAT/DEF DOUBLE – definiowanie zmiennych numerycznych Parametry: DEF INT <numeric value variable name> [,<numeric value variable name>]... DEF FLOAT <numeric value variable name> [,<numeric value variable name>]... DEF DOUBLE <numeric value variable name> [,<numeric value variable name>]... INT – typ całkowity (od -32768 do +32767) FLOAT – typ zmiennoprzecinkowy o pojedynczej precyzji (+/-1.70141E+38) DOUBLE – typ zmiennoprzecinkowy o podwójnej precyzji 1.701411834604692E+308) (+/- <numeric value variable name> - nazwa zmiennej numerycznej Przykład: 10 DEF INT zmienna1 20 DEF FLOAT zmienna2 30 DEF DOUBLE zmienna3 40 zmienna1 = 150 50 zmienna2 = 123.456 60 zmienna3 = 10/3 DLY – określenie czasu wstrzymania programu Parametry: DLY <Time> <Time> - czas wstrzymania programu. Jednostka s (sekunda) END – instrukcja określa ostatnią linię programu. Jeżeli program posiada podprogramy instrukcja oznacza koniec programu głównego. GOSUB, RETURN – funkcja realizuje skok do podprogramu (skok do linii lub etykiety), podprogram musi być zakończony instrukcja RETURN. Podprogram znajduje się w tym samym plik co program główny. Parametry: GOSUB <Call Destination> <Call Destination> - numer linii lub etykieta GOTO – funkcja realizuje skok do wskazanej linii programu lub etykiety Parametry: GOSTO <Branch Destination> str. 12 <Branch Destination> - numer linii lub etykieta HLT – funkcja zatrzymuje wykonywanie programu oraz ruch robota. Wykonywany program przechodzi w tryb oczekiwania HOPEN, HCLOSE – przesterowanie zaworów znajdujących się na ramieniu robota. Polecenia umożliwiają założenie lub zdjęcie efektora, włączenie lub wyłączenie chwytaka podciśnieniowego przyssawkowego, zamknięcie lub otwarcie szczęk chwytaka mechanicznego Parametry: HOPEN <Hand No.> HCLOSE <Hand No.> <Hand No.> - numer zaworu do przesterowania, wartość między 1 a 4. Może być wyrażony jako stała lub zmienna. IF – instrukcja warunkowa. Wykonanie danej komendy zależy od wyniku testu logicznego IF <Expression> THEN <Process> [ELSE <Process>] IF <Expression> THEN <Process> <Process> ... [ELSE] <Process> <Process> ... ENDIF <Expression> - test logiczny <Process> - instrukcje, które mają zostać wykonane JOVRD – określenie prędkości w ruchu z interpolacją przegubową Parametry: JOVRD <Designated override> <Designated override> - wartość prędkości, zmienna typu REAL, jednostka: %, zakres wartości: 1-100.0. Zmienna M_NJOVRD ustawia wartość domyślna. MOV – interpolacja przegubowa, ruch z aktualnej pozycji do pozycji zadanej z interpolacją przegubową Parametry : MOV <Movement Target Position> [,<Close Distance>] [TYPE <Constants 1>, <Constants 2> ] [<Appended conditions>] str. 13 <Movement Target Position> - pozycja docelowe dla operacji interpolacji. Może być przedstawiona przy pomocy zmiennej pozycji, wartości stałych lub jako pozycja kątowa wszystkich osi <Close Distance> - parametr opcjonalny. Punkt docelowy będzie przesunięty o podaną wartość wzdłuż kierunku osi Z narzędzia względem zadanego punktu docelowego <Constants 1> - parametr opcjonalny. 1/0 : Droga okrężna/skrót. Wartość domyślna to 1 (droga okrężna). <Constants 2> - parametr opcjonalny. Nieużywany (przyjąć 0). <Appended conditions> - parametr opcjonalny. Możliwe użycie funkcji WTH i WTHIF MVS – interpolacja liniowa, ruch z aktualnej pozycji do pozycji zadanej z interpolacją liniową Parametry: MVS <Movement Target Position> [, <Close Distance>][TYPE <Constants 1>,<Constants 2>][<Appended Condition>] lub MVS <Separation Distance> [TYPE <Constants 1>,<Constants 2>][<Appended Condition>] <Movement Target Position> - pozycja docelowe dla operacji interpolacji. Może być przedstawiona przy pomocy zmiennej pozycji, wartości stałych lub jako pozycja kątowa wszystkich osi <Close Distance> - parametr opcjonalny. Punkt docelowy będzie przesunięty o podaną wartość wzdłuż kierunku osi Z narzędzia względem zadanego punktu docelowego <Constants 1> - parametr opcjonalny. 1/0 : Droga okrężna/skrót. Wartość domyślna to 1 (droga okrężna). <Constants 2> - parametr opcjonalny. Nieużywany (przyjąć 0). <Appended conditions> - parametr opcjonalny. Możliwe użycie funkcji WTH i WTHIF <Separation Distance> - parametr opcjonalny. Punkt docelowy będzie przesunięty o podaną wartość wzdłuż kierunku osi Z narzędzia względem zadanego punktu docelowego SPD – określenie prędkości w ruchu z interpolacją liniową lub kołową. Parametry: SPD <Designated Speed> <Designated Speed> - wartość prędkości, zmienna typy REAL. Jednostka mm/s. Zmienna M_NSPD ustawia wartość optymalną prędkości M_IN – sprawdzenie stanu wejścia zewnętrznego Parametry: M_IN(<Numerical Expression>) =<Numeric Variable> <Numerical Expression> - numer wejścia, które ma zostać sprawdzone <Numeric Variable> - stan wejścia str. 14 M_OUT – ustawienie lub sprawdzenie stanu wyjścia zewnętrznego Parametry: M_OUT(<Numerical Expression>) =<Numeric Variable> <Numerical Expression> - numer wyjścia, które ma zostać ustawione bądź sprawdzone <Numeric Variable> - stan wyjścia WAIT – funkcja wstrzymuje program, do momentu gdy wskazana zmienna osiągnie żądaną wartość Parametry: WAIT <Numeric variable>=<Numeric constant> <Numeric variable> - zmienna testowana <Numeric constant> - żądana wartość Przykład: 100 WAIT M_IN(6)=1 8.2 Wejścia/Wyjścia Obsługa efektorów. Zdjęcie bądź założenie efektora jest możliwe, gdy kulki mocujące są schowane w trzpieniu szybkozłączki. Zamocowanie efektora na ramieniu robota odbywa się przez wysunięcie kulek z trzpienia szybkozłączki, gdy ten znajduje się w gnieździe efektora. Aby tego dokonać, należy odpowiednio wysterować zawory znajdujące się w ramieniu robota: Kombinacja poleceń wysuwająca kulki (zamocowanie efektora): 10 HOPEN 1 20 HCLOSE 2 Kombinacja poleceń wsuwająca kulki (uwolnienie efektora): 10 HCLOSE 1 20 HOPEN 2 Obsługa chwytaka mechanicznego: Kombinacja poleceń umożliwiająca otwarcie szczęk chwytaka mechanicznego: 10 HOPEN 3 20 HCLOSE 4 Kombinacja poleceń umożliwiająca zamknięcie szczęk chwytaka mechanicznego: 10 HCLOSE 3 20 HOPEN 4 Obsługa chwytaka przyssawkowego: 10 HCLOSE 3 'uruchomienie przyssawki I 20 HCLOSE 4 'uruchomienie przyssawki II str. 15 Obsługa wkrętaka elektrycznego: 10 M_OUT(29) = 1 'włączenie wkrętaka elektrycznego Obsługa dyspensera kleju: 10 M_OUT(28) = 1 'włączenie dyspensera 20 HOPEN 4 'rozpoczęcie nakładania kleju str. 16 Lp Numer opis Wejścia I0 0 Stop I1 1 Serwo Wyłączone I2 2 Reset Błędu I3 3 Start I4 4 Serwo Załączone I6 6 Wejście 1 I7 7 Wejście 2 I8 8 Wejście 3 I9 9 Wejście 4 I10 10 Obecność dyspensera w gnieździe I11 11 Obecność chwytaka mechanicznego w gnieździe I12 12 Obecność chwytaka pneumatycznego w gnieździe I13 13 Obecność wkrętaka elektrycznego w gnieździe I16 16 Obecność detalu w gnieździe montażowym I18 18 Obecność detalu pod kamerą (na końcu podajnika) I19 19 Obecność detalu między siłownikami I20 20 Test obecności wkręta Wyjścia O4 4 Awaria układu O5 5 Wyjście 1 O6 6 Wyjście 2 O7 7 Wyjście 3 O8 8 Wyjście 4 O9 9 Włączenie przenośnika O10 10 Ustawienie drugiej prędkości przenośnika O12 12 Wysunięcie siłownika X (4x) O13 13 Wysunięcie siłownika Y (5x) O14 14 Wysunięcie siłownika na podajniku – pierwszy (3x) O15 15 Wysunięcie siłownika na podajniku – drugi - lewy (1x) O16 16 Wysunięcie siłownika na podajniku – drugi - prawy (2x) O17 17 Wysunięcie kamery O28 28 Włączenie dyspensera (wywołanie: HOPEN 4 umożliwia nakładanie powłoki) O29 29 Włączenie wkrętaka elektrycznego str. 17 Rys.8.1 Umiejscowienie poszczególnych czujników oraz elementów wykonawczych na stanowisku str. 18 9. Zadanie Zadaniem studentów jest napisanie programu realizującego wymianę efektora. Założenia dla programu: – ramię robota powinno znajdować się w pozycji startowej – sprawdzić, czy wskazany przez prowadzącego efektor jest w gnieździe – sprawdzić, czy na ramieniu robota jest założony efektor – jeżeli założony jest inny niż wskazany efektor, należy odłożyć go na właściwe miejsce w gnieździe (realizacja przy wykorzystaniu podprogramu) – wywołać podprogram realizujący pobranie wskazanego efektora – sprawdzenie, czy w gnieździe jest efektor – ruch do pozycji startowej – ruch do punktu poboru efektora – pobór efektora – zamocowanie efektora – ruch do pozycji startowej z założonym efektorem – wywołać podprogram realizujący odłożenie wcześniej pobranego efektora – sprawdzenie, czy gniazdo jest wolne – ruch z założonym efektorem, do punktu nad gniazdem – ruch do punktu odłożenia efektora – uwolnienie efektora – ruch do pozycji startowej bez efektora 10. Sprawozdanie W sprawozdaniu należy umieścić: – wydruk programu wraz z wyjaśnieniem poleceń – wnioski str. 19