JĘZYK SFC
Transkrypt
JĘZYK SFC
Sequential Function Chart Graf sekwencji dr inż. Konrad Urbański 2004 JĘZYK SFC TRANSITION tranzycja, przejście START INITIAL STEP blok/krok startowy/początkowy/ inicjujący blok aktywny blok nieaktywny Zawsze bloki i tranzycje patrząc w pionie są umieszczone na przemian: blok-tranzycja-bloktranzycja... JUMP skok START dr inż. Konrad Urbański 2004 STEP blok, krok dr inż. Konrad Urbański 2004 dr inż. Konrad Urbański 2004 ELEMENTY SKŁADOWE SFC BLOK STARTOWY tylko jeden w całym schemacie ● musi być na początku ● służy np. do inicjacji zmiennych ● oznaczony (zazwyczaj) podwójną ramką START dr inż. Konrad Urbański 2004 ● BLOK NR n dr inż. Konrad Urbański 2004 BLOK ● jest aktywny (wykonują się działania skojarzone z danym blokiem) tak długo, jak długo tranzycja znajdująca się bezpośrednio pod nim jest zamknięta ● działania skojarzone z blokiem mogą być zapisane w różnych językach (np. w logice drabinkowej) lub jako zestaw ściśle określonych akcji tranzycja tr dr inż. Konrad Urbański 2004 TRANZYCJA ● jeżeli tranzycja znajdująca się poniżej aktywnego bloku ma stan logiczny zero, to sterowanie jest zatrzymane w tym bloku ● jeżeli tranzycja znajdująca się poniżej aktywnego bloku ma stan logiczny jeden, to sterowanie jest przekazane do bloku lub bloków znajdujących się poniżej danej tranzycji ROZGAŁĘZIENIE ALTERNATYWNE (WYBÓR) dr inż. Konrad Urbański 2004 Strumień programowy płynie tylko jednym wybranym torem poprzez jedną z otwartych tranzycji Jeżeli otwarta jest więcej niż jedna tranzycja, system wybiera jedną z nich w sposób zależny od realizacji/ustawień danego modelu sterownika Jeżeli wcześniej było rozgałęzienie alternatywne, to powinien być też w programie powrót z rozgałęzienia alternatywnego dr inż. Konrad Urbański 2004 POWRÓT Z ROZGAŁĘZIENIA ALTERNATYWNEGO dr inż. Konrad Urbański 2004 SEKWENCJA WSPÓŁBIEŻNA POWRÓT Z SEKWENCJI WSPÓŁBIEŻNEJ tranzycja synchronizująca dr inż. Konrad Urbański 2004 Jeżeli wcześniej była sekwencja współbieżna, to powinien być też w programie powrót z sekwencji współbieżnej. Tranzycja synchronizująca powinna się otwierać dopiero wtedy, kiedy sterowanie przekazane jest do ostatniego bloku w każdej kolumnie. Zazwyczaj realizuje się to np. poprzez sterowanie tranzycji synchronizującej z ostatniego bloku wybranej kolumny – czas przebywania w ostatnich blokach pozostałych kolumn ustala się wtedy samoistnie. dr inż. Konrad Urbański 2004 Czas wykonywania sekwencji we wszystkich kolumnach musi być równy. dr inż. Konrad Urbański 2004 dr inż. Konrad Urbański 2004 PRZYKŁAD REALIZACJI ZADANEJ SEKWENCJI W JĘZYKU SFC PRZYKŁAD REALIZACJI ZADANEJ SEKWENCJI wy 0:1 3s 1s t dr inż. Konrad Urbański 2004 Zadanie: wygenerować na wyjściu dyskretnym o adresie 0:1 okresowy sygnał o parametrach jak na rysunku: SPOSÓB NAJŁATWIEJSZY: Każdej niezmiennej wartości zadanej sekwencji odpowiada 1 blok programu 3s 1s blok nr 1 blok nr 2 t dr inż. Konrad Urbański 2004 wy 0:1 MOŻLIWE AKCJE W BLOKU N (none) zmienna/adr._bezpośr. S (set/saved) zmienna/adr._bezpośr. R (reset) P (pulse) zmienna/adr._bezpośr. L (limited) czas zmienna/adr._bezpośr. D (delayed) czas zmienna/adr._bezpośr. DS (delayed+saved) czas zmienna/adr._bezpośr. dr inż. Konrad Urbański 2004 zmienna/adr._bezpośr. WERSJA 1 (concept) -ustawienie na czas przebywania w bloku na stan wysoki wyjścia 0:1 -odmierzenie czasu 3s START AKCJA 1: N 0:1 -odmierzenie czasu 1s pusty: odczekujemy tylko 1s stale otwarta (bo blok “sam” odmierza czas 1s) START dr inż. Konrad Urbański 2004 stale otwarta (bo blok “sam” odmierza czas 3s) WERSJA 2 (zgodna z innymi odmianami języka SFC) START oczekuje na otwarcie przez akcję zdefiniowaną w bloku poprzedzającym tr1 -ustawienie (na czas przebywania w bloku) stanu niskiego wyjścia 0:1 -odmierzenie czasu 1s oczekuje na otwarcie przez akcję zdefiniowaną w bloku poprzedzającym AKCJA 1: AKCJA 2: AKCJA 1: AKCJA 2: tr1 START S D R D 3s 1s 0:1 tr1 0:1 tr1 dr inż. Konrad Urbański 2004 -ustawienie (na czas przebywania w bloku) stanu wysokiego wyjścia 0:1 -odmierzenie czasu 3s WERSJA 3 (na jednym bloku) wy 0:1 1s x t tlim t nasze zadanie -ustawienie na czas 3s stanu wysokiego wyjścia 0:1 -odmierzenie czasu 4s START oczekuje na otwarcie przez akcję zdefiniowaną w bloku poprzedzającym tr1 START AKCJA 1: AKCJA 2: L D 3s 4s 0:1 tr1 dr inż. Konrad Urbański 2004 3s tak działa akcja L (limit)