500 likes | 744 Views
MANIPULATORY (ROBOTY) Robotyka jest nauką o inteligentnym wykorzystaniu percepcji do działania.
E N D
MANIPULATORY (ROBOTY) Robotyka jest nauką o inteligentnym wykorzystaniu percepcji do działania. Obiektami robotyki są układy zdolne do samoczynnego i samodzielnego działania w zmieniającym się otoczeniu, zwane robotami autonomicznymi lub inteligentnymi. W zależności od przeznaczenia, roboty inteligentne należą do klasy robotów przemysłowych lub usługowych . Z samej natury robotyki wynika, że jednym z jej podstawowych narzędzi jest informatyka, ze szczególnym uwzględnieniem programowania numerycznego i symbolicznego, sztucznej inteligencji i inteligencji obliczeniowej, cyfrowego przetwarzania sygnałów, mikrokontrolerów oraz lokalnych sieci komputerowych i rozproszonych układów przetwarzania danych i sterowania.
Automatyzacja wielu operacji technologicznych (np. podawanie detali do obróbki, montaż, pakowanie, sortowanie, rozpoznawanie cech fizycznych, itp.) wymaga stosowania urządzeń automatyki umożliwiających wykonywanie ruchów roboczych o precyzyjnie ustalonych parametrach, takich, jak: prędkość, przyspieszenie, przemieszczenie, trajektoria, położenie początkowe i końcowe ruchu. W operacjach tego typu wykorzystywane są manipulatory. Z punktu widzenia organizacji procesu technologicznego manipulowanie (ang. HANDLING) stanowi część funkcji przepływu materiałów (rysunek 1.) Rys.1. Operacja manipulowania jako element procesu technologicznego
Manipulator sterowany jest przez urządzenie cyfrowe, którym może być PLC, wyspecjalizowany sterownik lub komputer. Stanowisko laboratoryjne wyposażone jest w elektropneumatyczny manipulator pozycjonujący sterowany przez komputer. W skład stanowiska wchodzą trzy grupy elementów (rysunek 4.): -urządzenie sterujące, -urządzenia transmisyjno - sprzęgające, -zespół manipulatora URZĄDZANIE STERUJĄCE urządzenia transmisyjno - sprzęgające Urządzeniem sterującym jest komputer osobisty klasy IBM PC (typu IBM PS/2). Komputer wraz z oprogramowaniem spełnia następujące funkcje: 1. Umożliwia realizację programu sterującego urządzeniami wykonawczymi. 2. Umożliwia wpisanie programu sterującego, jego modyfikację oraz uruchomienie (tzn. sprawdzenie poprawności i ewentualne poprawienie).
Rys.3 Manipulator (robot dydaktyczny)
Urządzeniem wykonawczym jest manipulator pozycjonujący o 3 stopniach swobody: umożliwia przemieszczanie głowicy roboczej ruchem prostoliniowym poziomym, prostoliniowym pionowym i ruchem obrotowym wokół osi pionowej (rysunek 3.). Układ kinematyczny manipulatora stanowią dwie sprzężone prostopadle osie - pionowa (1) i pozioma (8), zamocowane na stole obrotowym (10). Na jednym z końców osi poziomej znajduje się chwytak pneumatyczny (15) sterowany przy pomocy rozdzielacza elektropneumatycznego. Jednostką napędową każdej osi jest silnik skokowy (2), (6), obracający śrubę posuwu (3), (7), która przesuwa wózek suportowy. Jednostką napędową stołu obrotowego jest silnik prądu stałego (9), z przekładnią zębatą. Na każdej prowadnicy zamontowany jest czujnik położenia (4), (5), wykorzystywany przy określaniu położenia ramienia manipulatora. W stole obrotowym zamontowane są dwa czujniki położenia (12) umożliwiające pozycjonowanie kątowe stołu. Na chwytaku zamocowane są dwa czujniki położenia (16), (17), z których jeden umożliwia detekcję stanu "chwytak trzyma", a drugi - stanu przeciwnego.
Elementy transmisyjno - sprzęgające zapewniają komunikację między komputerem a elementami manipulatora, tzn. transmisję sygnałów sterujących z komputera do urządzeń wykonawczych, oraz sygnałów informujących o stanie, w jakim znajduje się manipulator z czujników do komputera. W skład grupy elementów transmisyjno - sprzęgających wchodzą (rysunek 4.): - napięciowy interfejs szeregowy RS232 (karta wewnątrz komputera), - prądowy interfejs szeregowy D.AS-DIAG/RS232-1,
Sterowanie silnikiem prądu stałego do obrotu w osi pionowej manipulatora
Porównanie pracy silnika przy dwóch różnych częstotliwościach sygnału CLK. . a) silnik sterowany sygnałem CLK1, b) silnik sterowany sygnałem CLK2. Częstotliwość fCLK1=2*fCLK2
Prędkość kątowa Znaczenie parametrów FR, R, S określających ruch silnika skokowego. Tą samą drogę (kąt obrotu) silnik skokowy może przebyć z różnymi prędkościami i w różnym czasie, w zależności od wartości parametrów FR, R, S (rysunek 12.). Przy sterowaniu silnikiem skokowym należy wziąć pod uwagę ograniczenia, jakim podlegają wartości parametrów FR, R, S, które nie powinny przekroczyć pewnych wartości granicznych zależnych od momentu siły obciążającej silnik.
Ramię manipulatora (1 i 8 na rysunku 3.) napędzane jest przez silnik skokowy. Ruch wzdłuż każdej z osi określony jest więc przez parametry ruchu silnika skokowego FR, R, S. Zmiana położenia ramienia wywoływana jest przez rozkazy języka CCS sterujące silnikiem skokowym. W celu określenia położenia ramienia wprowadzona jest oś układu współrzędnych OX (rysunek 13.). Kierunek osi OX jest zgodny z kierunkiem ramienia (1). Punkt zerowy osi jest wyznaczony przez magnes trwały (3) zamontowany na wózku suportowym (2). Położenie ramienia w punkcie zerowym jest wykrywane przez magnetyczny czujnik obecności (4) zamontowany na ramieniu. Od tego punktu odmierzane są współrzędne podawane w programie sterującym. Przemieszczanie ramienia możliwe jest tylko w obszarze dodatnich współrzędnych. Jednostką położenia na osi OX jest przesunięcie ramienia spowodowane jednym krokiem silnika skokowego. Długość ramienia mierzona w tych jednostkach wynosi 16000. Moduł wejść/wyjść cyfrowych. Moduł wejść/wyjść cyfrowych (rysunek 14.) umożliwia wprowadzenie do komputera (odczytanie) nie więcej niż 8 i wyprowadzenie z komputera (zapis) nie więcej niż 8 sygnałów logicznych (dwustanowych sygnałów napięciowych). Sygnały wyprowadzane są przez złącze wyjściowe (6) do odbiorników sygnałów, a wprowadzane przez złącze wejściowe (1) z nadajników sygnałów. 8 sygnałów wejściowych stanowi słowo wejściowe, a 8 sygnałów wyjściowych stanowi słowo wyjściowe modułu. Stan logiczny poszczególnych wejść i wyjść można obserwować na wskaźnikach diodowych (7), (8). Dołączanie przewodów sygnałowych do modułu jest ułatwione dzięki zastosowaniu puszki przyłączeniowej. Uporządkowanie sygnałów (numerowanych od 1 do 8) w polu wejściowym i wyjściowym puszki przyłączeniowej jest takie samo, jak uporządkowanie tych sygnałów (numerowanych od 0 do 7) w edytorze programu systemu CCS.
Moduł wejść/wyjść cyfrowych D.ER-REA-88-S z puszką przyłączeniową
Tabela stanów wskaźników świetlnych pokazujących stan wejść modułu sterowania silnikami skokowymi D.ER.-REA-STEP-POSIT-2. . Elementy ustalania konfiguracji modułu. a) przełącznik adresów, b) zespół przełączników konfiguracyjnych.
. Łączenie modułów z komputerem. 1 ‑ komputer, 2 ‑ przetwornik napięciowego sygnału transmisji szeregowej na sygnał prądowy, 3 ‑ moduły, 4 ‑ kable łączące, 5 ‑ terminator.
SPOSOBY PROGRAMOWANIA MANIPULATORA Za pomocą języka CCS. Za pomocą języka STL. Za pomocą specjalnych procedur języka Pascal.
Opis języka CCS. • Język programowania CCS (Computer Control Software) służy do tworzenia programów sterujących urządzeniami wykonawczymi połączonymi z komputerem za pomocą interfejsów D.ER-REA-POSIT-STEP-2 oraz D.ER-REA-88-S (możliwe jest też oprogramowanie modułów wejść/wyjść analogowych i wejść analogowych/wyjść cyfrowych, które jednak nie są używane do sterowania manipulatorem i w związku z tym nie będą opisywane). Większość rozkazów tego języka jest wykonywana warunkowo. Język umożliwia wykonywanie następujących operacji: • odczyt wartości sygnałów logicznych doprowadzonych do modułu wejść/wyjść cyfrowych, • nadanie wartości wyjściowym sygnałom logicznym modułu wejść/wyjść cyfrowych, • nadawanie wartości zmiennym logicznym (flagom), • budowanie wyrażeń sumy i alternatywy logicznej, których argumentami są wartości sygnałów wejściowych modułów wejść/wyjść cyfrowych i wartości zmiennych logicznych, • wykorzystanie liczników zdarzeń logicznych, • wykorzystanie funkcji czasowych (opóźnienia i pętle czasowe), • sterowanie silnikami skokowymi (prędkością, przyspieszeniem i położeniem każdego z ramion manipulatora), • odtworzenie (w formie wywołania podprogramu) sekwencji ruchów manipulatora zapamiętanych w trybie "ręcznego sterowania", • wykorzystanie skoków programowych.
Program napisany w języku CCS składa się z kroków. Ilość kroków w programie nie może być większa niż 500. Zapis każdego kroku zawiera kolejno: numer kroku, warunek wykonania rozkazu, rozkaz, argumenty rozkazu i ewentualnie warunki czasowe. Program może zawierać również linie komentarza, wprowadzane najczęściej w celu objaśnienia przebiegu programu. Każda linia komentarza powinna rozpoczynać się znakiem * i może mieć dowolną zawartość. Ilość linii komentarza i ich położenie w programie są dowolne.
PRZYKŁAD 1 PRZYKŁAD 2
Programowanie robota za pomocą języka STL. (napęd stepper motors- silniki krokowe)
0004 "" * * * * * * * * * * * * "PROGRAM 3 : MANIPULATOR * * * * • 0005 "" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * • 0006 STEP 1 (1) "*********DEKLARACJA STALYCH********* • 0007 THEN CFM 0 "ZEROWANIE WSZYSTKICH * • 0008 WITH V0 "FLAG,REJESTROW,TIMEROW,LICZNIKOW * • 0009 LOAD V500 • 0010 TO TP2 'czas zalaczenia tasmociagu • LOAD V30 • 0012 TO TP4 'czas migotania lampki alarmowej 0013 STEP 1.1 (2) "***OPERACJE RESETUJACE UKLAD 0014 THEN RESET led1 'lampka przycisku start 0015 RESET led2 'lampka pozycjonowania wyjsciowego 0016 RESET sp1 'ssanie ON 4Y3 0017 SET sp0 'ssanie OF 4Y4 ====================================================== 0018 STEP 2 (3) 0019 THEN LOAD V10 "predkosc poczatkowa 0020 TO R0 "os 1 0021 TO R3 "os 2 ===================================================== 0022 STEP 2.1 (4) 0023 THEN LOAD V80 "predkosc koncowa 0024 TO R1 "os 1 0025 TO R4 "os 2 ====================================================== 0026 STEP 2.3 (5) 0027 THEN LOAD V100 "przyspieszenie 0028 TO R2 "os1 0029 TO R5 "os2
0040 STEP 20 (7) "***INICJALIZACJA STEROWNIKA SILNIKOW 0041 IF F13.0 'BAP beendet bzw. Motion complete 0042 THEN CFM 2 0043 WITH 'cmp0:1' 0044 WITH V0 0045 WITH V1 0046 WITH V0 0047 WITH V0 =============================================================== 0048 STEP 30 (8) "***WYWOLANIE RUCHU REFERENCYJNEGO 0049 IF F13.0 'BAP beendet bzw. Motion complete 0050 THEN CFM 2 0051 WITH 'cmp0:1' 0052 WITH V0 0053 WITH V23 0054 WITH V0 0055 WITH V0 0070 STEP 53 (12) "***NAJAZD NA PUNKT POBRANIA 0071 IF _cz 'element gotowy do pobrania 3B8 0072 AND F13.0 'BAP beendet bzw. Motion complete 0073 THEN CFM 2 0074 WITH 'cmp0:1' 0075 WITH V0 0076 WITH V3 0077 WITH V22 0078 WITH V22 0079 RESET st 'silnik tasmociagu 2M1 0080 OTHRW JMP TO 200 (22)
Instrukcja programowania robota w języku PASCAL Sterowniki silników skokowych i moduły we/wy cyfrowych podłączamy do portu szeregowego np. COM2 poprzez konwerter D.AS-DIAG / RS232-1. Przed uruchomieniem programu w Pascalu należy ustawić parametry transmisji przez port szeregowy za pomocą komendy dosowej mode , np.: mode com2: baud24 parity=M data=7 stop=1 Ustawione w ten sposób parametry muszą być zgodne z parametrami ustawionymi za pomocą przełączników na płycie czołowej sterownika (w podanym przykładzie wszystkie przełączniki muszą być w pozycji OFF). Do sterowania robotem został napisany program w języku Pascal. Jego kod znajduje się w kilku plikach : proc1.pas, procpom.pas, rozkazy.pas, ruchy.pas, stałe.pas, typy.pas. Głównym plikiem jest proc1.pas, w którym można wprowadzać pożądaną sekwencję działań robota. Pozostałych plików nie należy modyfikować. W oznaczonym obszarze pliku proc1.pas najpierw należy wywołać procedurę : assign(zmienna_plikowa,’COM2’); - przypisanie zmiennej zmienna_plikowa typu text do portu szeregowego, do którego jest podłączony sterownik.
Komunikacja odbywa się poprzez wysyłanie i odbieranie znaków kodu ASCII. W omawianym programie napisano procedury ułatwiające tworzenie odpowiednich sekwencji znaków, a następnie wysyłanie ich i odbieranie. Przed wysłaniem jakiejkolwiek sekwencji znaków należy otworzyć zmienna plikową do zapisu : rewrite(zmienna_plikowa); Robot wykonuje ruch do punktu referencyjnego po wywołaniu procedury : PunktReferencyjny; Moment zakończenia ruchu referencyjnego nie jest wykrywany automatycznie. Stan obu silników skokowych można wykrywać za pomocą procedury : odczytaj(md,os); md - określa numer modułu os - określa oś, której stan sprawdzamy Po wywołaniu tej procedury w zmiennej status zostaną przypisane dwie cyfry heksadecymalne. Przy czym 7F - oznacza, że ruch trwa, FF - oznacza, że ruch zakończył się. Zmienna statusu jest typu string[2].
Ruch robota na osiach napędzanych silnikami skokowymi realizuje się za pomocą wywołania procedury : ruchodczyt(md,os,odl); md - moduł os - numer osi odl - odległość typu integer W tej procedurze jest już sprawdzane zakończenie ruchu. Przejście do wykonywania kolejnego rozkazu w programie odbywa się dopiero po zakończeniu ruchu. Sprawdzanie stanu wejść cyfrowych modułu nr 0 odbywa się za pomocą wywołania procedury : odczytIO; Po jej wykonaniu, zmiennej status zostana przypisane dwie cyfry heksadecymalne odpowiadające stanowi dwu czwórek wejść cyfrowych. Zapisanie wyjść cyfrowych odbywa się za pomocą procedury : zapisIO(‘XX’); X - cyfra heksadecymalna 0,1,..,9,A,B,C,D,E,F.
Programowanie silników krokowych robota bezpośrednio z PLC
Prosty układ sterowania silnikiem krokowym na PLC -S7; użyto hardwerowego układu SAA 1027, który z dwóch sygnałów -sygnału taktu i sygnału kierunku- generuje odpowiednie przebiegi 4 faz )
Zalety i wady silników krokowych. • Zalety: • Kąt obrotu silnika jest proporcjonalny do ilości impulsów wejściowych, • Silnik pracuje z pełnym momentem w stanie spoczynku (o ile uzwojenia są zasilane), • Precyzyjne pozycjonowanie i powtarzalność ruchu - dobre silniki krokowe mają dokładność ok. 3 - 5% kroku i błąd ten nie kumuluje się z kroku na krok, • Możliwość bardzo szybkiego rozbiegu, hamowania i zmiany kierunku, • Niezawodne - ze względu na brak szczotek. żywotność silnika zależy zatem tylko od żywotności łożysk, • Zależność obrotów silnika od dyskretnych impulsów umożliwia sterowanie w pętli otwartej, przez co silnik krokowy jest łatwiejszy i tańszy w sterowaniu, • Możliwość osiągnięcia bardzo niskich prędkości synchronicznych obrotów z obciążeniem umocowanym bezpośrednio na osi., • Szeroki zakres prędkości obrotowych uzyskiwany dzięki temu, że prędkość jest proporcjonalna do częstotliwości impulsów wejściowych, • Jedną z najbardziej znaczących zalet silnika krokowego jest możliwość dokładnego sterowania w pętli otwartej. Praca w pętli otwartej oznacza, że nie potrzeba sprzężenia zwrotnego - informacji o położeniu. Takie sterowanie eliminuje potrzebę stosowania kosztownych urządzeń sprzężenia zwrotnego, takich jak enkodery optoelektroniczne. Pozycje znajduje się zliczając impulsy wejściowej. • Wady: • Rezonanse mechaniczne pojawiające się przy niewłaściwym sterowaniu, • Trudności przy pracy z bardzo dużymi prędkościami
Programowanie PLC w przypadku zadań sekwencyjnych Przykładowy projekt układu sterowania procesem objętościowego dozowania materiału sypkiego (np. sorbentu siarki w kotle) Ze zbiornika ma być pobierana stała objętość ziarna w sposób cykliczny. Objętość dozowanego ziarna ustalana jest przez dwie zasuwy napędzane siłownikami A i B. Po zamknięciu zasuwy dolnej (tłoczysko siłownika B - wysunięte) i przy otwartej zasuwie górnej (tłoczysko siłownika A – wycofane) następuje wypełnienie przestrzeni dozowniczej (rys. a). Wysuw tłoczyska siłownika A (rys. b) odcina określoną objętość ziarna. Odmierzona objętość ziarna opuszcza silos po otwarciu zasuwy dolnej (rys. c). Czas otwarcia zasuwy górnej jest także zadawany. Zaprojektować układ automatycznego sterowania spełniający ww. wymagania
Programowanie PLC w przypadku zadań sekwencyjnych (Widok zadania : samotok)
Zadanie : Przy pomocy zestawu elementów elektro-pneumatycznych i sterownika zrealizować cyklogram przedstawiony na poniższym rysunku . Zadanie zrealizować w języku drabinkowym. Cyklogram dotyczy współdziałania 2 siłowników obsługujących fragment samotoku – kiedy „paczka” trafia na siłownik A, ten podnosi ja do góry i przytrzymuje tak długo aż siłownik B przesunie paczkę na kolejny fragment samotoku.
Lista alokacji zmiennych sterownika SIMATIC S7 200 : Czujnik paczki - I0.0 Kr_A0 - I0.1 (siłownik A cofnięty) Kr_A1 - I0.2 (siłownik A wysunięty) Kr_B0 - I0.4 (siłownik B -cofnięty) Kr_B1 - I0.5 (siłownik B wysunięty) Wyjścia: cewka rozdzielacza siłownika A - Q0.4 cewka rozdzielacza siłownika B - Q0.5 Znaczniki stanu cyklogramu: M0.0, M0.1 M0.2, M0.3 Lamki stanu: Q0.0, Q0.1 Q0.2, Q0.3 odpowiednio Program – Ladder poniżej:
Zadanie 2 . Przy pomocy zestawu elementów elektro-pneumatycznych i sterownika FESTO 101 ( lub S7) zrealizować cyklogram przedstawiony na poniższym rysunku. Zadanie zrealizować w języku STL Zadanie nawiązuje do monostabilnych przycisków spełniających jednocześnie funkcje włącznika i wyłącznika – pierwsze naciśnięcie dale nam na wyjściu jedynkę logiczną, drugie ja kasuje. Takie rozwiązanie, stosowane m.in. w klawiaturach do komputerów klasy PC (CAPS LOCK, SCROLL LOCK i NUM LOCK) ma zastosowanie, np., gdy mamy ograniczoną liczbę wejść do sterownika (albo ograniczona liczbę przycisków), a musimy zapewnić ręczne załączanie i wyłączanie jakiś urządzeń.
0001 STEP 10 (1) 0002 THEN SET ff 'flaga 1 ====================================================================== 0003 STEP 20 (2) 0004 IF ff 'flaga 1 0005 AND N x1 'start 0006 THEN RESET ff 'flaga 1 ====================================================================== 0007 STEP 30 (3) 0008 IF N ff 'flaga 1 0009 AND x1 'start 0010 THEN SET ff 'flaga 1 ====================================================================== 0011 STEP 40 (4) 0012 THEN LOAD N y1 'silownik A 0013 TO y1 'silownik A ====================================================================== 0014 STEP 50 (5) 0015 THEN JMP TO 10 (1)
Model bloku energetycznego pz A p M Rp L