Sterowniki Programowalne (SP) Wykład 11 Podstawy metody sekwencyjnych schematów funkcjonalnych (SFC) SP 2016 WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI KATEDRA INŻYNIERII SYSTEMÓW STEROWANIA Kierunek: Automatyka i Robotyka Studia stacjonarne I stopnia: rok III, semestr V dr inż. Tomasz Rutkowski 2016
Przypomnienie wybranych elementów normy IEC 61131-3 SP 2016 2
IEC 61131-3 - model oprogramowania Norma IEC 61131-3 wyróżnia następujące elementy języków programowania dla sterowników PLC: typy danych (ang. Data types) jednostki organizacyjne oprogramowania (ang. Program Organization Units - POU) elementy konfiguracji (ang. Configuration elements) elementy sekwencyjnego schematu funkcjonalnego (ang. Sequential Function Chart - SFC) SP 2016 3
IEC 61131-3 - model oprogramowania - POU Jednostki organizacyjne oprogramowania POU (ang. Program Organization Units) stanowią najmniejsze niezależne jednostki oprogramowania aplikacji użytkownika, a składają się na nie: funkcje (ang. functions) bloki funkcyjne (ang. function blocks) programy (ang. programs) Każdy POU zawiera następujące elementy: typ i nazwa POU (w przypadku funkcji także typ danej wyjściowej) deklaracja zmiennych (wejściowych, wyjściowych i lokalnych) ciało POU (kod programu) SP 2016 4
IEC 61131-3 - model oprogramowania SFC Sekwencyjny schemat funkcjonalny SFC (sekwencyjną sieć działań) stosuje się gdy proces ma charakter sekwencyjny, tzn. realizacja poszczególnych etapów procesu wymaga ściśle określonej kolejności czy upływu zadanego czasu ich wykonania SFC bazuje na metodzie Grafcet, której podstawą teoretyczną są sieci Petriego typu P/T (pozycja, miejsce, etap, tranzycja, przejście) SFC umożliwiają podział POU na mniejsze elementy, między którymi następuje przepływ sygnałów sterujących SFC opisuje zadania sterowania sekwencyjnego za pomocą sieci zawierających kroki (etapy, stany) i warunki przejścia (tranzycji) między tymi krokami SP 2016 5
IEC 61131-3 - model oprogramowania SFC Z każdym krokiem jest skojarzony odpowiedni zbiór instrukcji, które nazywa się akcjami Każdemu przejściu między krokami towarzyszy warunek przejścia nazywany tranzycją Elementy SFC (akcje, warunki przejścia) można programować za pomocą różnych języków programowania FBD, LD, ST, IL czy C Elementy SFC wymagają pamięci do przechowywania informacji o stanie systemu, stąd jedynymi jednostkami organizacyjnymi oprogramowania POU, które mogą być z nich zbudowane są bloki funkcyjne i programy SP 2016 6
Przykłady metod syntezy algorytmu sterowania procesem napełniania i opróżniania dwóch zbiorników technologicznych SP 2016 7
Schemat technologiczny v 1 v 2 h 1 h 2 b 1 b 2 w 1 w 2 SP 2016 Źródło: Kasprzyk J. Programowanie 8
Założenia: Poziom początkowy Zbiorników 1 i 2 równy 0 Uważa się, że Zbiorniki 1 i 2 są puste gdy b 1 i b 2 w stanie 0 Uważa się, że Zbiorniki 1 i 2 są pełne gdy h 1 i h 2 w stanie 1 Napełnianie pustych Zbiorników 1 i 2 następuje gdy v 1 i v 2 w stanie 1 (przy w 1 i w 2 w stanie 0 ) Opróżnianie napełnionych Zbiorników 1 i 2 następuje gdy w 1 i w 2 w stanie 1 (v 1 i v 2 w stanie 0) Napełnianie Zbiorników 1 i 2 można rozpocząć w wyniku przyciśnięcia bistabilnego przycisku Sta (stan 1) SP 2016 Źródło: Kasprzyk J. Programowanie 9
Przykład syntezy algorytmu sterowania Tablica stanów Sta SP 2016 Sta Źródło: Kasprzyk J. Programowanie 10
Przykład syntezy algorytmu sterowania Graf stanów SP 2016 Źródło: Kasprzyk J. Programowanie 11
Przykład syntezy algorytmu sterowania Klasyczny algorytm blokowy Narysować jako zadanie domowe SP 2016 12
Przykład syntezy algorytmu sterowania - napełnianie dwóch zbiorników technologicznych Sieć Grafcet Sta SP 2016 Źródło: Kasprzyk J. Programowanie 13
Przykład syntezy algorytmu sterowania Schemat drabinkowy Sta Sta SP 2016 14
Przykład syntezy algorytmu sterowania Sieć SFC??? SP 2016 15
Sekwencyjne Schematy Funkcjonalne (ang. SFC) SP 2016 16
SFC kroki SP 2016 17
IEC 61131-3 - model oprogramowania SFC - kroki Jednostka POU może zawierać jedną lub kilka sieci SFC Krok określa sytuację, w której zachowanie się jednostki POU, w odniesieniu do jej wejść i wyjść, jest zdefiniowane przez skojarzony z danym krokiem zestaw akcji Dany krok może być aktywny lub nieaktywny W dowolnej chwili stan POU jest określony przez zbiór aktywnych kroków oraz wartości zmiennych wewnętrznych i wyjściowych Aktywność danego kroku określa flaga kroku w postaci zmiennej boolowskiej ***.X, gdzie *** jest nazwą kroku SP 2016 18
IEC 61131-3 - model oprogramowania SFC - kroki Flaga kroku przyjmuje wartość 1 dla kroku aktywnego i 0 dla kroku nieaktywnego Czas aktywności kroku jest określony przez zmienną ***.T (typ TIME), wartość tej zmiennej pozostaje bez zmian gdy krok przechodzi w stan nieaktywny Stan początkowy POU jest określony przez wartości początkowe jego zmiennych wewnętrznych i wyjściowych oraz przez zbiór kroków początkowych (kroków aktywnych w chwili początkowej) Każda sieć SFC powinna zawierać tylko jeden krok początkowy Graficznie krok przedstawia się w postaci prostokąta z nazwą kroku 19 SP 2016
IEC 61131-3 - model oprogramowania SFC - kroki SP 2016 Źródło: PN-EN 61131-3, Kasprzyk J. Programowanie 20
SFC przejścia SP 2016 21
IEC 61131-3 - model oprogramowania SFC - przejścia Przejście (tranzycja) opisuje warunek przepływu sterowania z jednego lub wielu kroków poprzedzających do jednego lub wielu kroków występujących bezpośrednio za przejściem Z każdym przejściem jest skojarzony warunek przejścia, który jest wynikiem rozwiązania pojedynczego wyrażenia boolowskiego Warunek przejścia zawsze prawdziwy oznacza się symbolem 1 (TRUE) Graficznie przejście (tranzycję) przedstawia się w postaci poziomego odcinka przecinającego połączenie poszczególnych kroków SP 2016 22
IEC 61131-3 - model oprogramowania SFC - przejścia SP 2016 Źródło: PN-EN 61131-3, Kasprzyk J. Programowanie 23
SFC sekwencje kroków i przejść SP 2016 24
IEC 61131-3 - model oprogramowania SFC sekwencje kroków i przejść Krok początkowy jest aktywny z chwilą inicjowania programu lub bloku funkcjonalnego zawierającego schemat SFC Zmiana stanu procesu polega na przechodzeniu między krokami aktywnymi a kolejnymi, bezpośrednio połączonymi z nimi krokami, i zależy od spełnienia warunków przejścia (tranzycji) Przejście (tranzycja) jest dozwolone tylko wówczas, gdy wszystkie bezpośrednio poprzedzające je kroki są aktywne SP 2016 25
IEC 61131-3 - model oprogramowania SFC sekwencje kroków i przejść Jeżeli przejście jest dozwolone i jednocześnie jest spełniony związany z nim warunek przejścia (tranzycji), to następuje kasowanie przejścia oraz dezaktywacja wszystkich bezpośrednio poprzedzających je kroków i aktywacja wszystkich kroków występujących bezpośrednio po symbolu przejścia Dwa kroki nie mogą być bezpośrednio połączone muszą zawsze być rozdzielone przejściem (tranzycją) Dwa przejścia nie mogą być bezpośrednio połączone muszą być zawsze rozdzielone krokiem SP 2016 26
IEC 61131-3 - model oprogramowania SFC sekwencje kroków i przejść SP 2016 Źródło: PN-EN 61131-3, Kasprzyk J. Programowanie 27
IEC 61131-3 - model oprogramowania SFC sekwencje kroków i przejść SP 2016 Źródło: PN-EN 61131-3, Kasprzyk J. Programowanie 28
IEC 61131-3 - model oprogramowania SFC sekwencje kroków i przejść SP 2016 Źródło: PN-EN 61131-3, Kasprzyk J. Programowanie 29
IEC 61131-3 - model oprogramowania SFC sekwencje kroków i przejść SP 2016 Źródło: PN-EN 61131-3, Kasprzyk J. Programowanie 30
IEC 61131-3 - model oprogramowania SFC sekwencje kroków i przejść Zasady rozwoju sieci SFC (przekazywanie Żetonu) SP 2016 Źródło: PN-EN 61131-3, Kasprzyk J. Programowanie 31
IEC 61131-3 - model oprogramowania SFC sekwencje kroków i przejść Niebezpieczny SFC (liczba żetonów wzrasta) SP 2016 Źródło: PN-EN 61131-3, Kasprzyk J. Programowanie 32
IEC 61131-3 - model oprogramowania SFC sekwencje kroków i przejść Niebezpieczny SFC (np. blokada kroku D brak aktywacji kroku F) SP 2016 Źródło: PN-EN 61131-3, Kasprzyk J. Programowanie 33
SFC sekcje i bloki akcji SP 2016 34
IEC 61131-3 - model oprogramowania SFC akcje i bloki akcji Gdy dany krok jest aktywny to powinny być wykonane związane z nim działania Działania są deklarowane w postaci akcji i kojarzone z odpowiednim krokiem za pomocą bloków akcji Blok akcji określa akcję, która powinna być wykonana gdy krok staje się aktywny Kwantyfikator akcji zdefiniowany w bloku akcji, określa warunki jego wykonania (np. kiedy akcja ma wystartować, jak długo ma trwać) SP 2016 35
IEC 61131-3 - model oprogramowania SFC akcje i bloki akcji Postać graficzna bloku akcji SP 2016 Źródło: PN-EN 61131-3, Kasprzyk J. Programowanie 36
IEC 61131-3 - model oprogramowania SFC akcje i bloki akcji SP 2016 Źródło: PN-EN 61131-3, Kasprzyk J. Programowanie 37
IEC 61131-3 - model oprogramowania SFC akcje i bloki akcji SP 2016 Źródło: PN-EN 61131-3, Kasprzyk J. Programowanie 38
SFC przykład syntezy algorytmu SP 2016 sterowania 39
Przykład syntezy algorytmu sterowania - napełnianie dwóch zbiorników technologicznych Schemat technologiczny SP 2016 Źródło: Kasprzyk J. Programowanie 40
Przykład syntezy algorytmu sterowania Założenia: Zadanie napełniania dwóch zbiorników technologicznych Poziom początkowy Zbiorników 1 i 2 równy 0 Uważa a się, że e Zbiorniki 1 i 2 są puste gdy b 1 i b 2 w stanie 0 Uważa się, że Zbiorniki 1 i 2 są pełne gdy h 1 i h 2 w stanie 1 Napełnianie pustych Zbiorników 1 i 2 następuje gdy v 1 i v 2 w stanie 1 (przy w 1 i w 2 w stanie 0 ) Opróżnianie napełnionych Zbiorników 1 i 2 następuje gdy w 1 i w 2 w stanie 1 (v 1 i v 2 w stanie 0) Napełnianie Zbiorników 1 i 2 można rozpocząć w wyniku przyciśnięcia bistabilnego przycisku Sta (stan 1) SP 2016 Źródło: Kasprzyk J. Programowanie 41
Przykład syntezy algorytmu sterowania Zadanie napełniania dwóch zbiorników technologicznych Kroki (stany systemu): K14 Zbiorniki I i II puste K2 Zbiornik I w trakcie napełniania K3 Zbiornik I w trakcie opróżniania K5 Zbiornik II w trakcie napełniania K6 Zbiornik II w trakcie opróżniania SP 2016 Źródło: Kasprzyk J. Programowanie 42
Przykład syntezy algorytmu sterowania - napełnianie dwóch zbiorników technologicznych Sieć SFC K14 Sta K2 K5 K3 K6 SP 2016 Źródło: Kasprzyk J. Programowanie 43
Przykład syntezy algorytmu sterowania - napełnianie dwóch zbiorników technologicznych Sieć SFC K14 Sta K2 K5 K3 K6 Jakie różnice w porównaniu ze slajdem 13 SP 2016 Źródło: Kasprzyk J. Programowanie 44
Podstawowe zasady tłumaczenia grafu SFC na język LD SP 2016 45
podstawy SFC na LD -Gdy aktywny jest krok Ki, to wykonuj akcje Aii Ak Ki Kp Tj Ai, Ak Ap - W przypadku gdy aktywna stanie się tranzycjatjto: - dezaktywuj krok Ki -i zakończ akcje Aii Ak -oraz aktywuj krok Kpa tym samym wykonuj akcje Ap SP 2016 46
SFC na LD Zakładamy, że akcja związana z blokami akcji w dalej rozważanych przykładach programów związana jest jedynie z aktywacją odpowiedniego przekaźnika SP 2016 47
Przykład 1 SFC na LD Ki Ai Tj Kp SP 2016 48
Przykład 2 SFC na LD Ki Ai Tj Tk Kp Kq SP 2016 49
Przykład 3 SFC na LD Ki Ai Tj Kp Kq SP 2016 50
Przykład 4 SFC na LD Ki Ai Kp Ap Kq Tj SP 2016 51
Przykład 5 SFC na LD Ki Ai Tj Kp Ap Tq Kk SP 2016 52
Przykład 5 SFC na LD Ki Ai Tj Kp Ap Tq Kk SP 2016 53
SFC na LD Przykład 5 cd. Krok 1/2 Ki Ai Tj Kp Ap Tq Kk SP 2016 54
SFC na LD Przykład 5 cd. Krok 2/2 Ki Ai Tj Kp Ap Tq Kk SP 2016 55
Przykład 6 SFC na LD Ki Ai Tj Kp Ai Tq Kk SP 2016 56
Przykład 7 SFC na LD Ki Kp Kk Tj Tq Tn Ai Ap Ak SP 2016 57
SFC na LD Przykład 7 Krok 1/6 Ki Kp Kk Tj Tq Tn Ai Ap Ak SP 2016 58
SFC na LD Przykład 7 Krok 2/6 Ki Kp Kk Tj Tq Tn Ai Ap Ak SP 2016 59
SFC na LD Przykład 7 Krok 3/6 Ki Kp Kk Tj Tq Tn Ai Ap Ak SP 2016 60
SFC na LD Przykład 7 Krok 4/6 Ki Kp Kk Tj Tq Tn Ai Ap Ak SP 2016 61
SFC na LD Przykład 7 Krok 5/6 Ki Kp Kk Tj Tq Tn Ai Ap Ak SP 2016 62
SFC na LD Przykład 7 Krok 6/6 Ki Kp Kk Tj Tq Tn Ai Ap Ak SP 2016 63
SFC na LD Przykład 8 Ka Aa Ti Kb Ab Tj Tl Kc Ac Kd Ad Tk Tm SP 2016 64
SFC na LD Przykład 8 Krok 1/9 Ka Aa Ti Kb Ab Tj Tl Kc Ac Kd Ad Tk Tm SP 2016 65
SFC na LD Przykład 8 Krok 2/9 Ka Aa Ti Kb Ab Tj Tl Kc Ac Kd Ad Tk Tm SP 2016 66
SFC na LD Przykład 8 Krok 3/9 Ka Aa Ti Kb Ab Tj Tl Kc Ac Kd Ad Tk Tm SP 2016 67
SFC na LD Przykład 8 Krok 4/9 Ka Aa Ti Kb Ab Tj Tl Kc Ac Kd Ad Tk Tm SP 2016 68
SFC na LD Przykład 8 Krok 5/9 Ka Aa Ti Kb Ab Tj Tl Kc Ac Kd Ad Tk Tm SP 2016 69
SFC na LD Przykład 8 Krok 6/9 Ka Aa Ti Kb Ab Tj Tl Kc Ac Kd Ad Tk Tm SP 2016 70
SFC na LD Przykład 8 Krok 7/9 Ka Aa Ti Kb Ab Tj Tl Kc Ac Kd Ad Tk Tm SP 2016 71
SFC na LD Przykład 8 Krok 8/9 Ka Aa Ti Kb Ab Tj Tl Kc Ac Kd Ad Tk Tm SP 2016 72
SFC na LD Przykład 8 Krok 9/9 Ka Aa Ti Kb Ab Tj Tl Kc Ac Kd Ad Tk Tm SP 2016 73
SFC na LD Zadanie domowe: Przetłumaczyć sieć SFC ze slajdu 43 na język LD SP 2016 74
Źródła: PN-EN 61131-3 Sterowniki programowalne Języki programowania Kasprzyk J. Programowanie sterowników przemysłowych. WNT 2006 Seta K. Wprowadzenie do zagadnień sterowania. NIKOM 2002 Broel-Plater B. Układy wykorzystujące sterowniki PLC Projektowanie algorytmów sterowania. PWN 2009 SP 2016 75
Dziękuję za uwagę!!! SP 2016 76