Symulator manipulatora kartezjańskiego Dokumentacja narzędzi składających się na symulator manipulatora kartezjańskiego (projekt rplcsym). Dotyczy wersji 0.9.5. Opracowane dla potrzeb laboratorium POPROB ROPRM przez dra inŝ. M. Horczyczaka we wrześniu 2009. Wprowadzenie Symulator manipulatora kartezjańskiego (projekt RPlcSym) jest programowym symulatorem manipulatora 3-osiowego wraz z definiowalnym środowiskiem oraz systemem programowania (język programowania, symulator sterownika, symulator mainpulatora i symulator środowiska). Symulator przeznaczony jest do nauki programowania robotów manipulacyjnych sterowanych w wykorzystaniem sterowników typu 'programowalny sterownik logiczny'. Symulator stanowi program DOSwski o nazwie rplcsym.exe. Zachowanie sterowanego układu oraz proces sterowania przebiegają w sposób maksymalnie zbliŝony do rzeczywistości. Stan układu przedstawiany jest w trakcie pracy symulatora w postaci graficznej na ekranie komputera. Podawany jest takŝe stan logiczny sensorów, efektorów i markerów. Opis języka wykorzystywanego do programowania manipulatora przedstawiono w dalszej części tego dokumentu. Symulator: manipulator i jego środowisko do wersji symulatora 0.9.5 (projekt rplcsym). (c) mjkh 2009,2011 Spis treści: 1. budowa manipulatora 2. środowisko symulacji 3. porty: dostęp do czujników i efektorów 1. Budowa manipulatora Rysunek system.jpg przedstawia schemat manipulatora wraz ze środowiskiem: stanowiskami załadowczym, wyładowczym i roboczymi. Manipulator wyposaŝony jest w następujące elementy: Elementy konstrukcyjne: belkę wzdłuŝną stanowiącą prowadnicę dla ramienia manipulatora
ramię poziome stanowiące prowadnicę dla ramienia pionowego ramię pionowe wyposaŝone w chwytak chwytak stanowiska: załadowcze stz, wyładowcze stw oraz 3 stanowiska robocze st1, st2 i st3 Efektory: silnik elektryczny włączający przesuw ramienia poziomego po belce w kierunku 'do przodu' i 'do tyłu'; ramię przesuwa się po belce zaleŝnie od włączonych obrotów silnika; jednoczesne włączenie obrotów do przesuwu w przód i w tył powoduje spalenie silnika siłownik pneumatyczny przesuwający ramię pionowe po ramieniu poziomym; siłownik jest siłownikiem jednostronnego działania - jego włączenie powoduje przesuw (w prawo) ramienia pionowego aŝ do pozycji krańcowej, wyłączenie powoduje samoczynny powrót do pozycji krańcowej lewej (pod działaniem spręŝyny powrotnej). siłownik pneumatyczny przesuwający ramię pionowe w dół; siłownik jest siłownikiem jednostronnego działania - jego włączenie powoduje przesuw (w dół) ramienia pionowego aŝ do pozycji krańcowej, wyłączenie powoduje samoczynny powrót do pozycji krańcowej górnej (pod działaniem spręŝyny powrotnej). chwytak napędzany siłownikiem pneumatycznym; włączenie siłownika powoduje zamknięcie szczęk chwytaka, wyłączenie siłownika - rozwarcie szczęk Czujniki (sensory): belka wyposaŝona jest w 4 łączniki drogowe włączane przesuwającym się ramieniem poziomym odpowiadające połoŝeniom poszczególnych stanowisk ramię poziome wyposaŝone jest w 2 łączniki drogowe odpowiednio dla skrajnej lewej i prawej pozycji ramienia pionowego ramię pionowe wyposaŝone jest w 2 łączniki drogowe odpowiednio dla skrajnej dolnej i górnej pozycji ramienia pionowego kaŝde ze stanowisk (stz, stw, st1, st2, st3) wyposaŝone jest w czujnik obecności przedmiotu na stanowisku stanowiska robocze (st1, st2, st3) wyposaŝone są w lampki sygnalizacyjne włączane klawiszami funkcyjnymi F1-F3, wyłączane zaś programowo. symulowane są dwa przyciski: przycisk START (klawisz F5) oraz przycisk STOP (klawisz F8) 2. Środowisko symulacji Środowisko, w którym odbywa się symulacja pracy manipulatora odpowiada umownemu gniazdu obróbkowemu wyposaŝonemu w 3 stanowiska obróbkowe st1, st2 i st3 oraz stanowisko załadowcze stz i wyładowcze stw. W środowisku mogą znajdować się przedmioty obrabiane (maksymalnie 5 sztuk). Przedmioty mogą byc przenoszone w obrębie gniazda przez manipulator. Przedmioty wprowadza się do gniazda poprzez stanowisko załadowcze stz. Przedmioty są usuwane z gniazda poprzez stanowisko wyładowcze stw - odłoŝenie przedmiotu na stw powoduje po kilku sekundach usunięcie przedmiotu z gniazda. Lampki
sygnalizacyjne stanowisk przeznaczone są do sygnalizowania zakończenia operacji na stanowiskach roboczych. 3. Porty: dostęp do efektorów i czujników Obsługa efektorów i czujników odbywa się z poziomu języka sterowania robotem wykonywanego przez sterownik poprzez zapis lub odczyt odpowiednich wartości na programowe porty wejścia-wyjścia. Ogólnie w sterowniku dostępne są: 32 wejścia od sensorów oznaczane s0-s31 32 wyjścia na efektory oznaczane e0-e32 Przypisanie funkcji do sensorów i efektorów jest następujące: Efektory (dany element jest włączony, gdy sygnał dla efektora ma wartośc 'prawda') : e1 - ruch silnika napędu belki powodujący ruch belki w kierunku od s1 do s4 (w głąb ekranu) e2 - ruch silnika napędu belki powodujący ruch belki w kierunku od s4 do s1 (ku ekranowi) e3 - przesuw w prawo ramienia pionowego e4 - przesuw w dół ramienia pionowego e5 - zamknięcie chwytaka e15, e16, e17 - wyłączniki lampek odpowiedno na stanowiskach st1, st2 i st3; podanie sygnału logicznego T powoduje zgaszenie lampki; lampka pozostaje zgaszona nawet po zmianie stanu efektora na F. Sensory (dają sygnał 'prawda' w sytuacji 'kontaktu'/'styku'): s1-s4 - łączniki drogowe na belce wyznaczające połoŝenia ramienia poziomego odpowiadające: s1 - stanowiskom stz i stw s2 - stanowisku st1 s3 - stanowisku st2 s4 - stanowisku st3 s5 - łącznik drogowy lewego połoŝenia ramienia pionowego na ramieniu poziomym s6 - łącznik drogowy prawego połoŝenia ramienia pionowego na ramieniu poziomym s7 - łącznik drogowy górnego połoŝenia ramienia pionowego s8 - łącznik drogowy dolnego połoŝenia ramienia pionowego s9-s13 - czujniki obecności przedmiotu na stanowiskach odpowiednio: s9 - stz s10 - stw s11 - st1 s12 - st2 s13 - st3 s14-s16 - czujniki włączenia lampek sygnalizacyjnych na stanowiskach roboczych, odpowiednio: s14 - st1
s15 - st2 s16 - st3 s17 - naciśniecie przycisku START (klawisza F5) s18 - naciśniecie przycisku STOP (klawisza F8) Język sterowania manipulatora do wersji symulatora 0.9 (projekt plcrob). (c) mjkh 2009 Spis treści 4. informacje ogólne 5. składnia języka 6. przykłady 4. Informacje ogólne Sterownik manipulatora działa na zasadzie wykorzystywanej w programowalnych sterownikach logicznych. Program składa się z formuł logicznych wyraŝających stany wyjść (efektorów) w funkcji stanów wejść (sensorów) oraz markerów. W czasie pracy (symulacji) program wykonywany jest w sposób ciągły - formuły logiczne występujace w programie są przeliczane w kolejności ich wystąpienia w pliku programu, zaś obliczone wartości są natychmiast uwzględniane. Stany wejśc i wyjść (sensorów i efektorów) są uaktualniane po kaŝdorazowym przeliczeniu całości programu. W języku sterującym oprócz sensorów i efektorów występują takŝe markery. Są to swoiste zmienne przechowujące stany logiczne w trakcie wykonywania programu. 5. Składnia języka Plik programu jest plikiem ASCII o dowolnej nazwie i rozszerzeniu (zaleca się rozszerzenie.prg). Plik zawiera formuły logiczne wyznaczające stany markerów lub efektorów. Formuły zapisywane są po jednej formule w linii i mają nastepującą składnię: m_lub_e : wyrazenie gdzie m_lub_e oznacza marker lub efektor, zaś wyrazenie jest wyraŝeniem logicznym, którego wartość jest przypisywana m_lub_e. Oznaczenia sensorów nie moga występować przed znakiem dwukropka. WyraŜeniem arytmetycznym jest sekwencja identyfikatorów markerów, sensorów, operatorów i stałych logicznych oddzielonych separatorami z ewentualnymi nawiasami. Identyfikatory sensorów, efektorów i markerów składają się z małej lub duŝej litery S, E lub M oraz liczby. Dopuszczalny zakres liczb to: dla sensorów: od s0 do s31 dla efektorów: od e0 do e31 dla markerów: od m0 do m63
Dopuszcza się zapis z jedną lub dwoma cyframi, z duŝą lub małą literą np. s01 S1 m11 M07 UŜycie trzech lub więcej cyfr po oznaczeniu e, s lub m jest traktorane jako błąd. Po lewej stronie formuły (przed dwukropkiem) moga wystepować jedynie oznaczenia efektorów lub markerów; po prawej: oznaczenia sensorów, markerów, operatory, stałe oraz nawiasy. Dostępne są następujące operatory logiczne: operator koniunkcji logiczej (AND), który jest operatorem dwuargumentowym i oznaczany jest jako * lub &. operator alternatywy logiczej (OR), który jest operatorem dwuargumentowym i oznaczany jest jako + lub. operator negacji logiczej (NOT), który jest operatorem jednoargumentowym i oznaczany jest jako! lub ^. Priorytety operatorów są następujące: priorytet 2: operator negacji priorytet 1: operatory koniunkcji i alternatywy Oznacza to, Ŝe na przykład sekwencja: s1*!s2 wykonywana jest jako: 1. weź stan s1 2. weź stan s2 3. weŝ negację z 2 4. weź koniunkcję z 1 i 3 Nawiasy '(' i ')' pozwalają na jawne wskazanie kolejności opracowywania wyraŝeń. MoŜna uŝywać nawiasów zagnieŝdŝonych. Dostępnymi stałymi są stałe oznaczające prawdę i fałsz logiczny. Oznaczane są one następująco: prawda: T, t lub 1 fałsz: F, f lub 0 W języku mogą występować komentarze. Komentarzem jest dowolny ciąg znaków od znaku # do końca linii. Separatorami są znaki odstępu (spacja) oraz tabulatora. MoŜna je umieszczać w dowolnym miejscu pomiędzy operatorami, nawiasami oraz oznaczeniami markerów, sensorów i efektorów. Nie mogą one jednak rozdzielać oznaczeń markerów, sensorów czy efektorów. 6. Przykłady Oto kilka przykładów formuł: m1:!(s7*m2)*m1+(s8*s9) e4: m1 m2: m2+s7 e5: m2 alternatywnie to samo moŝna zapisać jako:
M1: ^(s07 & m02)& m01 (S08&S09) E4: M1 M2: M2 S7 E5: M2