4 Sterowanie sortowaniem RSS 2013


PRz  RSS  W4
STEROWANIE SORTOWANIEM
Wizualizacja. Drzewo projektu. Logika układu sterowania. Układ główny  sortowanie.
Ustawianie zastawek. Zliczanie elementów. Elementy obrazu. Przyciski. Kolory i
widoczność. Ruch dyskretny  zastawki. Ruch ciągły. Liczniki  wyświetlacze
alfanumeryczne. Sortowanie w ST.
Celem wykładu jest analiza funkcjonowania programu z zależnościami czasowymi, którego
kroki tworzą standardową sekwencję.
WIZUALIZACJA. DRZEWO PROJEKTU
1. Układ sortowania elementów  WIZUALIZACJA
" Obiekt laboratoryjny  sortownica białych i czarnych kulek (Bytronic Unit, GB)
Kulki znajdują się w pochyłym kanale u góry wspierając się na zastawce S4. Powinny
być skierowane do zasobnika lewego lub prawego, zależnie od koloru. Liczby kulek w
zasobnikach mają podawać liczniki (wyświetlacze alfanumeryczne).
" Elementy sortownicy
 Czujnik koloru: biała, czarna
 Czujnik kulek: spadła, brak
 Zastawki: S1, S2  zawsze otwarte podczas sortowania
S3  kierowanie kulki do zasobnika lewego lub prawego
S4  podtrzymywanie kulek, chwilowe otwarcie w celu
przepuszczenia jednej kulki.
1
Uwaga. Czujniki zrealizowane są na fototranzystorach z przerzutnikami RS, które
 zatrzaskują informację. Przygotowanie czujnika do następnego pomiaru wymaga
impulsu resetującego.
" Przyciski operatorskie (DigiVis)
1. START 2. Zeruj liczniki
2. Drzewo projektu
3. Zadanie Sortowanie (10ms)
" Sort1(FBD)  program główny realizujący sortowanie, inkrementację liczników
oraz generujący zmienną dla ruchu.
" Ster(FBD)  ustawianie zastawek.
4. Zadanie Emulacja (10ms)  symulator sortownicy
" Randomizer(FBD)  pseudolosowy generator liczb boolowskich dla określenia koloru
kulki
" Emul1(FBD)  emulator sortownicy zawierający: 1) generator kulki w kanale
górnym, 2) czujniki koloru i kulek z przerzutnikami RS, 3) układ
określania koloru dla obrazu SYMULACJA
" Displayer(FBD)  określenie koloru spadającej kulki.
5. Obrazy
" Sort(FGR)  WIZUALIZACJA
" VisEmula(FGR)  SYMULACJA
" Minimalny cykl odświeżania obrazu (200ms), aby opadanie kulek wyglądało z grubsza
jak ruch ciągły.
Zaznaczyć os1(VIS), menu kontekstowe, Header, wpisać 200ms.
2
LOGIKA UKAADU STEROWANIA
1. Algorytm sortowania
" Stan początkowy
 Otwarcie  na stałe zastawek S1, S2 (0  otwarte).
 Zamknięcie zastawki S4 (1  zamknięte).
" Sortowanie
1. Impuls START  dwukrotne szybkie kliknięcie (0 1 0)
Impuls służy do resetowania przerzutników RS w czujnikach koloru CS (Color
Sensor) i kulek BS (Ball Sensor) za pomocą sygnału RES (sprzętowego). Przy pracy
cyklicznej jest on zastępowany impulsem sygnalizującym zakończenie operacji z
jedną kulką (pkt. 6). Powoduje to rozpoczęcie pracy z następną kulką.
2. Oczekiwanie (700ms) na ustalenie się sygnału w czujniku koloru CS
 obserwującym kulkę spoczywającą na zastawce S4.
3. Zależnie od koloru CS, wygenerowanie sygnału do zastawki S3 otwierającej lub
zamykającej kanał do odpowiedniego zasobnika.
4. Oczekiwanie (500ms), aż zastawka S3 przyjmie ustalone położenie.
5. Chwilowe otwarcie zastawki S4 (70ms), aby tylko jedna kulka mogła spaść.
Następna kulka wesprze się na zastawce S4. Zbyt długie otwarcie spowoduje, że
spadną dwie kulki (lub więcej), a zbyt krótkie, że zastawka zakleszczy kulkę.
6. Oczekiwanie (1s) na ustalenie się sygnału w czujniku BS wykrywającym przejście
kulki oraz zsunięcie się jej do zasobnika. Jeśli czujnik sygnalizuje, że kulka spadła,
to generowany jest implus analogiczny jak START (pkt. 1).
2. Schemat ideowy
3
UKAAD GAÓWNY  SORTOWANIE
1. Czasomierz TON (timer on delay)
" Ustawianie sygnału z opóznieniem
Blocks Binary Timer, switch on delay (TON)
" Parametryzacja
" Impuls po zadanym czasie  przerzutnik RS z timerem TON objęte sprzężeniem
zwrotnym.
4
2. Uniwibrator MONO_F
" Ustawienie sygnału na określony czas
Blocks > Binary > Monoflop (MONO_F)
3. Układ główny  Sort1(FBD)
5
" Bloki i parametry
Nr Typ Nazwa Parametry
2 Flipflop FF ST1 RS-flipflop
3 Timer, switch on delay TON T0 Delay time: T#700ms; Scale end: T#2s; Trigger on + edge
6 Monoflop MONO_F WAIT Pulse duration: T#500ms; Scale end: T#2s; Trigger on + edge
7 Monoflop MONO_F T1 Pulse duration: T#70ms; Scale end: T#2s; Trigger on  edge
8 Flipflop FF ST2 RS-flipflop
9 Timer, switch on delay TON T2 Delay time: T#1s; Scale end: T#5s; Trigger on + edge
4. Zmienne
" Wejścia
START  uruchomienie (impuls 0 1 0)
CS  kolor: biała, czarna
BS  kulka: spadła, brak
" Wyjścia
RES  resetowanie przerzutników w czujnikach CS, BS (i innych  impuls
początku cyklu)
R_S3, S_S3  zamknięcie/otwarcie zastawki S3 (Reset/Set)
v_S4  zastawka S4 w ruchu
R_S4  otwarcie zastawki S4
pom  zezwolenie na inkrementację licznika (zmienna pomocnicza   była
kulka ).
5. Uzupełnienie Sort1 o generację krótkiego impulsu startowego
6
USTAWIANIE ZASTAWEK
1. Schemat ster (FBD)
2. Przerzutniki RS na wyjściach sterujących zastawkami (typowe rozwiązanie)
" S1, S2 otwarte  na stałe : R=1, S=0 (S1=0, S2=0)
" S3 przełączany na zmianę: R=R_S3, S=S_S3 (priorytet R)
" S4 otwierany na chwilę: R=R_S4, S=1 (normalnie zamknięte).
ZLICZANIE ELEMENTÓW
1. Układ zliczający (c.d. Sort1)
7
" Liczniki CTUD
Blocks > Binary > Up/down counter (CTUD)
" Zmienne
clr_count  zerowanie licznika (clear counter),
lbi, lcz  liczby białych i czarnych kulek  typ REAL (do wyświetlaczy
alfanumerycznych).
2. Licznik CTUD
3. Sygnał narastający (do wizualizacji ruchu)
" Uniwibrator MONO_F  VIS_MONO
Pulse duration: T#1s500ms  czas narastania sygnału
" Konwertery typów DI, RE  zamiana TIME na REAL
 Blocks > Converter > Data type conversion > Data type to DINT (TO_DI)
lub Data type to REAL (TO_RE).
 Umieścić blok, wykonać połączenie.
 Zaznaczyć blok, Edit > Change data type (lub menu kontekstowe), przyciskiem [<<]
lub [>>] ustawić typ wejścia DI na TIME (zatwierdzić OK); typ wejścia RE ustawić
na DINT (OK).
8
" Zmienne
req  zmienna boolowska sygnalizująca, że trwa narastanie (podstawowe wyjście
MONO_F),
vpos  zmienna typu REAL do animacji ruchu ciągłego.
ELEMENTY OBRAZU
1. Tło obrazu VisEmula
Menu/Change Background color  np. Cyan 15
2. Makieta  dwa duże identyczne prostokąty
" Biały prostokąt
lub Draw Rectangle
Menu/Change Line attributes Rounded corners Small  zaokrąglenia na
rogach
" Czarny prostokąt  ma sprawiać wrażenie trójwymiarowości
Zaznaczyć biały prostokąt, menu Duplicate
Menu/Change Area Attributes Foreground Color selection Black
" Czarny prostokąt ma być pod spodem
Zaznaczyć czarny prostokąt
Menu/Edit Overlap Background
" Prostokąty jako jeden element  grupowanie
Zaznaczyć obydwa prostokąty (z Shift em lub obwiezć myszą)
Menu/Edit Group
3. Trasa zygzakowata
Jest to zgrupowany zestaw wielokątów i wycinków koła.
Draw Polygon, Draw Circle segment
Kolory: Area i Line (brzeg)  MediumBlue
9
Powielanie wycinka koła: menu/Edit Duplicate
Lustrzane odbicie zaznaczonego wycinka: menu/Edit Mirror Vertical  wokół
pionowej osi
Menu/Edit Group
Uwagi. Trasę można również przygotować za pomocą zewnętrznego edytora jako
bitmapę i importować poprzez Draw Bitmap Import Szukaj w: ...
Lustrzane odbicie można tworzyć dla dowolnego obiektu. Przerwanie trybu edycji
elementu w Toolboxie następuje przez Esc.
4. Zasobniki i doprowadzenia
" Pierwszy zasobnik  wielokąt
Draw Polygon, kolory  j.w.
" Drugi zasobnik
M/E Duplicate, Mirror Vertical
" Kanały doprowadzające  wielokąty
Draw Polygon, kolory  j.w.
" Rozmieszczenie  połączenie trasy, zasobników i doprowadzeń.
5. Uzwojenia elektromagnesów
Wielokąty lub dwa zgrupowane prostokąty z tekstami na wierzchu.
Draw Polygon, M/E Duplicate, Mirror Vertical
Teksty: S1, ... , S4, rozmieścić elementy.
6. Zastawki  wielokąty (lub dwa zgrupowane prostokąty)
Draw Polygon, M/E Duplicate, Mirror Vertical, rozmieścić zastawki.
7. Czujniki
" Czujnik koloru  dwa zgrupowane prostokąty
Lewa część: Draw Rectangle, M/E Duplicate, przesunąć na prawą stronę.
Zaznaczyć obydwie części (Shift), M/E Group.
" Czujnik kulek
Zaznaczyć czujnik koloru, M/E Duplicate, rozmieścić czujniki.
8. Kulki
Draw Elipse, M/E Duplicate
Kolory:
przed czujnikiem koloru  biała (Grey93) lub czarna
poniżej czujnika koloru  jw.
przed zasobnikiem białych  biała
przed zasobnikiem czarnych  czarna (Grey18).
9. Napis
New text: sortownica. Menu/Change Text Attributes
10
PRZYCISKI
1. Ustawianie zmiennych
" Animate Button, Action Write variable
"
Zmienna Napisy
START START, START
clr_count Zeruj liczniki, Zerowanie włączone
Uwaga. Zmianie położenia przycisku towarzyszą zmiany koloru tła lub napisu, np. tło
Flash10 dla włączonego zerowania.
2. Okna konfiguracyjne
KOLORY I WIDOCZNOŚĆ
1. Kolory uzwojeń elektromagnesów
" Zmienna określająca kolor: S1, & , S4
Wykonać animację koloru uzwojenia.
" Napisy S1, & , S4 na wierzchu.
Okno Parameter danego uzwojenia (2 kl.)
Zakładka General
Klawisz Objects in foreground
Draw Text (lub Toolbox)
Zaznaczyć miejsce napisu.
W pojawiającym się okienku Change Text wpisać S1, & , S4. Akceptacja  Ok.
Ew. skorygować położenie tekstu (zmiana fontu przez Text attributes).
Zaznaczyć napis (jeśli nie zaznaczony)
Edit Return to object (powrót do zakładki General).
Napis mógłby być ew. napisany wcześniej i tylko zaznaczony po Objects in foreground.
11
Uwaga. Dostęp do okien animacji uzyskuje się po 2 krotnym kliknięciu obiektu
(jak dotychczas) lub aktywacji Animate Reedit i wyborze z pojawiającej się listy
animowanych obiektów tego, który jest potrzebny.
Domyślne nazwy nadawane obiektom przez Control Buildera, np. REC1, ELP2
itp., stają się mało przydatne przy większej liczbie animowanych obiektów. W
takiej sytuacji w oknie Parameter należy w polu Object name wpisać własną
nazwę, np. ELEKTR1, BALL3 itp., która bezpośrednio kojarzy się z obiektem.
2. Widoczność i kolor kulek
" Zmienne animujące kulki:
przed czujnikiem koloru: v_s4, CS (CS = 0  biała, 1  czarna)
poniżej czujnika koloru: v_s4, CS
przed zasobnikiem czarnych: BS, S3
przed zasobnikiem białych: BS, S3
" Tabela kolorów
Kulka Zmienne
Widoczność
(od góry) Bit1, Bit2
v_s4=0  kolor jak CS CS = 0  biała
Pierwsza v_s4, CS
v_s4=1  niewidoczna CS = 1  czarna
v_s4=1  widoczna invisible  niewidoczna
Druga v_s4, CS
v_s4=0  niewidoczna
Trzecia BS=1, S3=0  widoczna
BS, S3
(czarna) inaczej  niewidoczna
Czwarta BS=1, S3=1  widoczna
BS, S3
(biała) inaczej  niewidoczna
Uwaga. Wybór Original colors w tabeli kolorów oznacza, że wykorzysta się
pierwotne kolory wnętrza i obrzeża obiektu statycznego.
12
" Kolory (gdy kulki widoczne)
Kulka Border Fill
Biała Black Grey93
Czarna Black Gray18
Zielona Grey68 Green
Uwaga. Kolory kulek można określić, gdy kulki są jeszcze obiektami statycznymi.
Natomiast widoczność należy do trybu animacji (Animate Graphic symbol) i
może być określona dopiero po wybraniu rodzaju ruchu Movement of GS (No,
Discrete, Continuous; zobacz dalej).
RUCH DYSKRETNY  ZASTAWKI
1. Tryb animacji, ruch dyskretny
" Animate/Toolbox Graphic symbol
Movement of GS Discrete
Wybór ruchu dyskretnego powoduje pojawienie się zakładki Positions w oknie
Parameter.
2. Zmienna powodująca ruch zastawki
Okno Parameter, zakładka Bit allocation.
" Bit1: nazwa zmiennej (F2)  w przypadku 4 ch położeń należy wypełnić Bit2, a w
przypadku 8 miu  Bit3.
Zastawka Zmienna  zmienna powodująca ruch i zmianę koloru (ew.).
S1, S2, S3 S1, S2, S3
S4 v_s4
Wyjaśnienie. Z głównego schematu Sort1(FBD) wynika, że zastawka S4 jest
otwierana tylko na 70 ms (MONO_F  T1). Ponieważ obserwacja tak szybkiego
ruchu nie byłaby możliwa, więc zamiast impulsu S4 (70 ms) do zmiany położenia
zastawki wykorzystano wcześniejszy dłuższy impuls v_s4 (500ms) z uniwibratora
MONO_F  WAIT. Podana na liście zmiennych nazwa v_s4  ruch zastawki S4
dotyczy wyłącznie wizualizacji, a nie sterowania. Na schemacie Sort1, zmienna
v_s4 reprezentuje faktycznie oczekiwanie na ustalenie się położenia zastawki S3.
Ze względu na szybki ruch zastawki S4 nie widać zmian koloru elektromagnesu,
który zależy od zmiennej S4.
13
3. Wskazanie zastawki i kolory
" Zakładka Display
Wskazanie zastawki na obrazie graficznym poprzez pola Object name i uzależnienie
kolorów od zmiennej (jak dotychczas).
4. Pozycje
" Zakładka Positions
Zaznaczyć przycisk All Positions i na pojawiającym się obrazie graficznym kliknąć w
dwu miejscach, w których ma się znalezć lewy górny róg obiektu (dla zmiennej o
wartości 0 lub 1).
" Obserwacja położeń w zakładce Display dla bitów 0 i 1, a jeśli nie są one jeszcze w
pełni zadowalające, to ponowna  ręczna korekta w zakładce Positions.
"  Ręczna korekta współrzędnych X, Y na czerwonych polach w pojawiającej się tabeli
położeń (discrete), aby ruch był ściśle pionowy, poziomy itp. (po wpisaniu wartości
przywrócić czerwony kolor zmienianego pola przez kliknięcie gdzieś w tabelce).
Uwaga. Przycisk Single Position służy do określenia pozycji aktualnie zaznaczonej
(górnej lub dolnej w tabeli discrete). Można go także wykorzystać do
korygowania.
RUCH CIGAY
Ruch ciągły kulek jest generowany przez zmienną vpos (REAL) ustawianą przez uniwibrator
VIS_MONO. Zmienia się ona w przedziale 0.0...1500.0 (do 1500 ms przed przetworzeniem
przez DI i RE). O trwającym narastaniu vpos informuje zmienna req (BOOL). Na obrazie
VisEmula kulkami ruchomymi są tylko dwie kulki zsuwające się do zasobników (w prawo i w
lewo).
1. Tryb animacji, ruch ciągły
" Animate/Toolbox Graphic symbol
Movement of GS Continuous
Wybór ruchu ciągłego powoduje pojawienie się zakładek Process Value, Scale i
Positions w oknie Parameter.
14
2. Wskazanie kulki i widoczność
" Zakładki Bit allocation i Display
Wskazanie kulki na obrazie graficznym poprzez pola Object name uzależniając
widoczność od zmiennych podanych poprzednio (zob. Kolory i widoczność).
3. Zmienna powodująca ruch
" Zakładka Process value
Display variable: vpos  zmienna (F2)
Wpisanie 0.0 zamiast ### w polu Display value (GED) powoduje, że po zatwierdzeniu
okna Parameter obiekt przyjmie pozycję odpowiadające vpos = 0.0. Wpisując inne
wartości zamiast 0.0 można dokonać weryfikacji kolejnych pozycji.
4. Skalowanie
" Zakładka Scale
Pole Scaling
Start: 0.0., End: 1500.0
Wartości te określają zakres zmiennej vpos, któremu odpowiadają skrajne pozycje
ruchomego obiektu.
5. Skrajne pozycje
" Zakładka Positions
Zaznaczyć przycisk Display i na pojawiającym się obrazie dwoma kliknięciami
wskazać skrajne pozycje lewego górnego rogu ruchomego obiektu. Różnica
współrzędnych tych pozycji pojawia się na czerwonych polach x, y w ramce continuous
(oś y jest skierowana ku dołowi). Ewentualnych korekt dokonuje się  ręcznie .
6. Kontrola położeń
" W polu Display value (GED) zakładki Display wpisać 1500.0 i skontrolować położenie.
Ewentualna korekta w zakładce Positions.
15
LICZNIKI  WYŚWIETLACZE ALFANUMERYCZNE
Liczniki kulek są wyświetlaczami alfanumerycznymi wskazującymi wartości zmiennych lbi,
lcz (REAL) określanych przez liczniki CTUD (schemat Sort1).
1. Definicja, rozmiar
" Animate/Toolbox Alphanumeric display
" Rozmiar wyświetlacza  klik w miejscu lewego górnego i prawego dolnego rogu.
Pojawia się okno dialogowe Parameter.
" W polu Object name można wpisać własną nazwę zamiast domyślnej, np. LIBI
(LIcznik BIałych).
2. Wskazywana zmienna
" Zakładka Process value
" Display variable: lbi, lcz  zmienna (F2)
" Display value (GED): 0.0  wartość pokazywana przez edytor graficzny (lub co
innego zamiast 0.0.)
3. Ewentualna zmiana kolorów
" Zakładka Bit allocation  tutaj nieużywana
16
4. Kolor i format
" Zakładka Display
" Kolor: cyfry  Foreground, tło  Background
Uwaga. Zaletą tła invisible jest to, że jego rozmiar może być mniejszy niż wymagany
przez wielkość cyfr. W przypadku tła widocznego kolizja jest sygnalizowana żółtymi
strzałkami. Rozmiar cyfr określa się poprzez menu/Edit Text Attributes.
" Format: Fixed_point 5
Jest to format służący do wyświetlania liczb całkowitych. Przeglądu formatów
dokonuje się zaznaczając pole Format i naciskając F2.
" Modyfikacje
Text attributes: font, size, direction, fix point &
SORTOWANIE W ST
1. Sekwencja podstawowa
" Stany
1
 oczekiwanie na impuls RES
 odmierzanie czasu przez timer T0 (700 ms)
2
Przy przechodzeniu do stanu 3 ustawienie wyjść R_S3 i S_S3.
 odmierzanie czasu przez generator impulsu WAIT (500 ms)
3
Wtedy wyjście v_s4 ustawione.
 odmierzanie czasu przez generator impulsu T1 (70 ms)
4
Wtedy wyjście R_S4 ustawione.
 odmierzanie czasu przez timer T2 (1s)
5
Przy powrocie do stanu 1 ustawienie wyjścia pom.
" Graf sekwencji
T0:TON; WAIT:MONO_F; T1:MONO_F; T2:TON;
T0
RES
T0_OUT
2 WAIT
R_S3:=CS
S_S3:=NOT CS
0,0,0
R_S3:=0
0,0
1
S_S3:=0
3
v_s4:=0
0,0
R_S4:=0
v_s4:=1
pom:=0
T2 T1 0,0
T2_OUT
0<=>FALSE
NOT WAIT_OUT
pom:=BS
NOT T1_OUT
5 4
0,0, 0
0,0,0
R_S4:=1
0,0
0
17
" Programy w drzewie projektu
jezykST[ST]  graf sekwencji
ster[FBD]  przerzutniki wyjściowe (bez zmiany)
licznikiST[ST]  liczniki i zmienna narastająca
" Wartość początkowa stan =1 (Variable list)
" Kod ST
18
2. Liczniki i zmienna narastająca
" FBD
" ST
19


Wyszukiwarka

Podobne podstrony:
Filozofia religii cwiczenia dokladne notatki z zajec (2012 2013) [od Agi]
automatyka i sterowanie wyklad
W 4 zadanie wartswa 2013
Zagadnienia z fizyki Technologia Chemiczna PolSl 2013
Lekcja sortowanie
klucze office 2013
Przechowalnictwo pytania 2013 1
Podstawy diagnozowania pedagogicznego Pedagogika S 2012 2013
test zawodowy probny 2013 14
TEST 2013 2014 Wojewodzki Konkurs Fizyczny etap rejonowy
wyklad 7 zap i, 11 2013

więcej podobnych podstron