Lista zadań nr 8
Transkrypt
Lista zadań nr 8
Sterowanie procesami dyskretnymi – laboratorium dr inż. Grzegorz Bazydło [email protected], staff.uz.zgora.pl/gbazydlo Lista zadań nr 8 Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami dyskretnymi, stosowanie skończonych automatów stanów (ang. Finite State Machines) do modelowania algorytmów sterowania procesami dyskretnymi implementacja algorytmów sterowania w układach cyfrowych FPGA (Field-Programmable Gate Array). Ścieżka projektowa Realizacja zadania odbywać się będzie zgodnie z poniższą ścieżką projektową (rys. 1): Wymagania opis słowny 0. Dekompozycja (podział na moduły) opis słowny opis słowny 1a. Modelowanie (sieć Petriego) IOPT Tools 1b. Modelowanie (automat FSM) Active-HDL błędy automat FSM 2a. Symulacja IOPT Tools 2b. Symulacja błędy Active-HDL VHDL + UCF błędy błędy VHDL 3. Synteza ISE Design Suite poprawa modelu poprawa modelu sieć Petriego błędy bitstream 4. Implementacja iMPACT błędy 5. Weryfikacja sprzętowa błędy Rys. 1 Środowisko laboratoryjne W trakcie realizacji listy zadań będziesz korzystać z następujących narzędzi informatycznych i sprzętu: do tworzenia modelu sieci Petriego (krok 1a) oraz symulacji (krok 2a) wykorzystaj internetowe narzędzie IOPT Tools: gres.uninova.pt/IOPT-tools (login: guest, hasło: guest), do tworzenia modelu FSM (krok 1b) oraz symulacji (krok 2b) wykorzystaj środowisko Active-HDL 10.2 firmy Aldec, do syntezy (krok 3) algorytmu sterowania w układzie cyfrowym wykorzystaj środowisko Xilinx ISE Design Suite 14.7, do fizycznej implementacji (krok 4) w układzie cyfrowym typu FPGA (programowanie układu) użyj narzędzia iMPACT (z pakietu narzędzi firmy Xilinx). 1 Sprzęt Do implementacji sprzętowej (krok 4) oraz weryfikacji algorytmu sterowania w sprzęcie (krok 5) wykorzystaj zestaw uruchomieniowy Nexys4 DDR (rys. 2) z układem FPGA Artix-7 (szczegółowy opis tego układu znajduje się w liście zadań nr 2). Zadanie Wymagania Celem projektu jest utworzenie systemu sterowania cyklem produkcyjnym, którego celem jest produkcja napoju (rys. 2). Przebieg sterowania jest następujący: w chwili początkowej wózek znajduje się w prawym, skrajnym położeniu (aktywny sygnał b). Proces rozpoczyna się po naciśnięciu przez operatora przycisku Start (aktywny sygnał start). Następuje niezależne napełnianie zbiorników 1 i 2: składnik 1 wlewany jest do zbiornika 1 przez zawór Z1 tak długo, aż zbiornik będzie pełny (aktywny sygnał x1). Analogicznie jest w przypadku składnika 2, który wlewany jest do zbiornika 2 przez zawór Z2 aż do napełnienia zbiornika 2 (sygnał x3). Po napełnieniu obu zbiorników przygotowane składniki wlewane są zaworami Z3 oraz Z4 do zbiornika 3. Zawory Z3 i Z4 są zamykane po całkowitym opróżnieniu zbiorników 1 i 2 (nieaktywne sygnały x2 oraz x4). Na 3 sekundy przed rozpoczęciem wlewania składników ze zbiorników 1 i 2 uruchamiane jest mieszadło (aktywny sygnał M) i następuje mieszanie składników przez cały czas wlewania składników. Po zakończeniu wlewania składników do zbiornika 3, mieszadło działa jeszcze przez 12 sekund lub aż do momentu, kiedy wózek znajdzie się w lewym, skrajnym położeniu. Kolejnym etapem cyklu produkcyjnego jest opróżnienie zbiornika 3 poprzez otwarcie zaworu Z5 i wlanie całej zawartości zbiornika 3 do wózka. Po całkowitym opróżnieniu zbiornika 3 (nieaktywny sygnał x5) zamykany jest zawór Z5. Także po naciśnięciu przycisku Start uruchamiany jest proces sterowania wózkiem. W sposób niezależny od procesu produkcyjnego napoju wózek jest przemieszczany w lewo (aktywny sygnał L), aż do osiągnięcia lewego, skrajnego położenia (aktywny sygnał a). Opróżnianie zbiornika 3 nie może się rozpocząć dopóki wózek nie znajdzie się w lewym, skrajnym położeniu. Po napełnieniu wózka i opróżnieniu zbiornika 3 (nieaktywny sygnał x5) porusza się on w prawo (aktywny sygnał R), aż do skrajnego położenia (aktywny sygnał b) i układ jest gotowy do kolejnego cyklu pracy. Wszystkie sygnały występujące w układzie scharakteryzowano w tabeli 1. TM3 TM12 tm3_out tm12_out Start KONSOLA OPERATORA start Mieszadło M Z1 Z2 Składnik 1 Składnik 2 x1 x3 x2 x4 Zbiornik 1 Z3 Zbiornik 2 Z4 x5 Zbiornik 3 Z5 L a Wózek R b Rys. 2 Tabela 1. Opis sygnałów układu Lp. Nazwa sygnału Rodzaj sygnału Źródło 1. start wejściowy konsola operatora 2. x1 wejściowy czujnik cieczy Znaczenie Sygnał aktywny oznacza, że użytkownik wcisnął przycisk Start i system rozpoczyna pracę. Sygnał aktywny oznacza, że zbiornik 1 jest pełny. 2 Lp. Nazwa sygnału Rodzaj sygnału Źródło Znaczenie 3. x2 wejściowy czujnik cieczy Sygnał nieaktywny oznacza, że zbiornik 1 jest pusty. 4. x3 wejściowy czujnik cieczy Sygnał aktywny oznacza, że zbiornik 2 jest pełny. 5. x4 wejściowy czujnik cieczy Sygnał nieaktywny oznacza, że zbiornik 2 jest pusty. 6. x5 wejściowy czujnik cieczy Sygnał nieaktywny oznacza, że zbiornik 3 jest pusty. 7. M wyjściowy sterownik Sygnał aktywny oznacza, że mieszadło pracuje. 8. Z1 wyjściowy sterownik Sygnał aktywny oznacza, że zawór Z1 jest otwarty. 9. Z2 wyjściowy sterownik Sygnał aktywny oznacza, że zawór Z2 jest otwarty. 10. Z3 wyjściowy sterownik Sygnał aktywny oznacza, że zawór Z3 jest otwarty. 11. Z4 wyjściowy sterownik Sygnał aktywny oznacza, że zawór Z4 jest otwarty. 12. Z5 wyjściowy sterownik Sygnał aktywny oznacza, że zawór Z5 jest otwarty. 13. a wejściowy czujnik położenia 14. b wejściowy czujnik położenia 15. L wyjściowy sterownik Sygnał aktywny oznacza, że wózek jedzie w lewą stronę. 16. R wyjściowy sterownik Sygnał aktywny oznacza, że wózek jedzie w prawą stronę. 17. TM3 wyjściowy sterownik 18. tm3_out wejściowy timer 19. TM12 wyjściowy sterownik 20. tm12_out wejściowy timer Sygnał aktywny oznacza, że wózek znajduje się w lewym skrajnym położeniu. Sygnał aktywny oznacza, że wózek znajduje się w prawym skrajnym położeniu. Sygnał aktywny oznacza uruchomienie timera odmierzającego czas 3 sekund. Sygnał aktywny oznacza, że upłynął czas 3 sekund od momentu uruchomienia timera. Sygnał aktywny oznacza uruchomienie timera odmierzającego czas 12 sekund. Sygnał aktywny oznacza, że upłynął czas 12 sekund od momentu uruchomienia timera. Krok 0 – Dekompozycja (podział na moduły) Ten krok jest narzucony w zadaniu. System został podzielony na dwa moduły: moduł sterujący produkcją napoju oraz moduł sterujący ruchem wózka. Pierwszy moduł zrealizuj wykorzystując sieci Petriego, a drugi diagramy FSM. Krok 1a – Modelowanie (sieć Petriego) Korzystając ze środowiska IOPT Tools zamodeluj sieć Petriego przedstawiającą model sterowania produkcją napoju (moduł 1). Odpowiednio zidentyfikuj i nazwij poszczególne miejsca i tranzycje. Użyj dokładnie takich nazw sygnałów jak pokazano w tabeli 1. Krok 2a – Symulacja Po zaprojektowaniu modelu układu sterowania, wykonaj symulację utworzonej sieci Petriego korzystając z symulatora IOPT Tools. Jeżeli wyniki symulacji wykażą, że model zawiera błędy, wróć do kroku 1a i popraw go. Jeżeli model przeszedł poprawnie etap symulacji, wyeksportuj jego opis w syntezowalnym języku opisu sprzętu VHDL. Krok 1b – Modelowanie (automat FSM) Korzystając ze środowiska Active-HDL zamodeluj automat FSM przedstawiający model sterowania ruchem wózka (moduł 2). Odpowiednio zidentyfikuj i nazwij poszczególne stany i przejścia. Użyj dokładnie takich nazw sygnałów jak pokazano w tabeli 1. Warunki przejść i akcje w stanach wyraź w języku VHDL. 3 Krok 2b – Symulacja Po zaprojektowaniu modelu układu sterowania, wykonaj symulację utworzonego automatu FSM korzystając z symulatora w Active-HDL. Korzystając z wytycznych prowadzącego utwórz najpierw program testujący (ang. TesBench) a następnie uruchom symulację. Jeżeli wyniki symulacji wykażą, że model zawiera błędy, wróć do kroku 1b i popraw go. Krok 3 – Synteza Następnie korzystając z wytycznych prowadzącego utwórz projekt w środowisku Xilinx ISE Design Suite 14.7. Parametry projektu pokazano na rys. 3. Rys. 3 Na etapie syntezy układu dodaj do projektu pliki Lab08_zad01_nexys4ddr.ucf, Timers.vhdl oraz Lab08_main.vhdl. Zgodnie z wytycznymi prowadzącego dokonaj modyfikacji w pliku Lab08_main.vhdl (zamień ciągi znaków nazwaProjektuSiecPetriego oraz nazwaProjektuFSM odpowiednimi nazwami swoich projektów). Kolejnym etapem jest uruchomienie procesu syntezy, implementacji oraz generowania pliku wynikowego (bitstream) zawierającego dane służące do zaprogramowania układu. Krok 4 – Implementacja Podłącz do komputera układ Nexys 4 DDR i korzystając z narzędzia iMPACT oraz wytycznych prowadzącego wykonaj programowanie układu FPGA za pomocą wygenerowanego w poprzednim kroku bitstreamu. Krok 5 – Weryfikacja sprzętowa Zweryfikuj działanie układu przełączając poszczególne przełączniki i obserwując diody LED (rys. 4). M a L R Z1 Z2 b start x1 x2 Z3 Z4 Z5 x3 x4 x5 Reset Enable Rys. 4 4