Nazwa modułu: Podstawy komputerowych systemów sterowania Rok akademicki: 2030/2031 Kod: EAR-1-702-s Punkty ECTS: 3 Wydział: Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Kierunek: Automatyka i Robotyka Specjalność: - Poziom studiów: Studia I stopnia Forma i tryb studiów: - Język wykładowy: Polski Profil kształcenia: Ogólnoakademicki (A) Semestr: 7 Strona www: http://aq.ia.agh.edu.pl/aquarium/dydaktyk/wyklady/pkss/pkss.htm Osoba odpowiedzialna: dr inż. Kołek Krzysztof (kko@agh.edu.pl) Osoby prowadzące: dr inż. Kołek Krzysztof (kko@agh.edu.pl) dr inż. Piłat Adam (ap@agh.edu.pl) Opis efektów kształcenia dla modułu zajęć Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń) Wiedza M_W001 Zna i potrafi określić hierarchiczne poziomy komputerowego systemy sterowania M_W002 Zna elementy składowe komputerowych systemów sterowania M_W003 Zna i rozumie zasadę pracy systemów czasu rzeczywistego M_W004 Zna i rozumie sposoby budowania aplikacji czasu rzeczywistego, w tym aplikacji rozproszonych Umiejętności M_U001 Potrafi pracować w zespole i koordynować wymianę danych między systemami komputerowymi 1 / 5
M_U002 Potrafi posługiwać się wybranym środowiskiem tworzenia aplikacji. Potrafi tworzyć oprogramowanie w wybranym języku M_U003 Potrafi utworzyć aplikacje pracujące sieciowo oraz współbieżnie M_U004 Potrafi implementować wybrane algorytmy symulacji oraz sterowania Kompetencje społeczne M_K001 Zna rolę komputerowych systemów sterowania w aktualnym kontekście techniki oraz ich wpływ na społeczeństwo AR1A_K02, AR1A_K06 Aktywność na zajęciach Matryca efektów kształcenia w odniesieniu do form zajęć Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć Wykład audytoryjne laboratoryjne projektowe Konwersatori um seminaryjne praktyczne Inne terenowe E-learning Wiedza M_W001 M_W002 M_W003 M_W004 Umiejętności M_U001 M_U002 M_U003 Zna i potrafi określić hierarchiczne poziomy komputerowego systemy sterowania Zna elementy składowe komputerowych systemów sterowania Zna i rozumie zasadę pracy systemów czasu rzeczywistego Zna i rozumie sposoby budowania aplikacji czasu rzeczywistego, w tym aplikacji rozproszonych Potrafi pracować w zespole i koordynować wymianę danych między systemami komputerowymi Potrafi posługiwać się wybranym środowiskiem tworzenia aplikacji. Potrafi tworzyć oprogramowanie w wybranym języku Potrafi utworzyć aplikacje pracujące sieciowo oraz współbieżnie 2 / 5
M_U004 Potrafi implementować wybrane algorytmy symulacji oraz sterowania Kompetencje społeczne M_K001 Zna rolę komputerowych systemów sterowania w aktualnym kontekście techniki oraz ich wpływ na społeczeństwo Treść modułu zajęć (program wykładów i pozostałych zajęć) Wykład Struktura systemów sterowania Hierarchiczna struktura systemu sterowania, systemy skupione oraz rozproszone, specyfikacja zadania sterowania, prezentacja systemu sterowania na przykładzie automatyki głównego węzła CO AGH Programowanie TCP/IP Model OSI, koncepcja gniazd TCP/IP, protokołu TCP, UDP oraz IP, konfiguracja klienta oraz serwera, praca w trybie blokującym, nieblokującym oraz asynchronicznym. Procesy Rola programowania współbieżnego, koncepcja procesu, różnice między procesami i wątkami, tworzenie procesów w systemie Unix oraz Windows. Komunikacja między procesami za pomocą mapowania plików do pamięci. Komunikacja międzyprocesowa Mechanizmy komunikacji międzyprocesowej: schowek obiekty COM, kopiowanie danych poprzez kolejkę komunikatów, DDE, nazwane oraz anonimowe strumienie, mailslots, RPC. Wątki Zarządzanie wątkami w systemie Unix i Windows, współużywalność funkcji, modele pracy wielozadaniowej. Priorytety oraz afiliacja wątków i procesów. Synchronizacja wątków Mechanizmy synchronizacji: sekcja krytyczna, semafor, mutex, zmienne warunkowe. Platformy sprzętowe. Wykorzystanie w automatyce układów rekonfigurowalnych Określenie zasad pracy oraz zakresu stosowalności w systemach sterowania: sterowników PLC, mikrokontrolerów, procesorów DSP, komputerów PC, oraz układów rekonfigurowalnych. Zastosowanie układów FPGA w systemach automatyki. Konfiguracja SoC. Technika szybkiego prototypowania oraz automatycznej generacji kodu Automatyczna generacja kodu i tworzenie oraz kompilacja aplikacji czasu rzeczywistego na przykładzie pakietu MATLAB/Simulink/Code generator. Podstawowe regulatory automatyki Sterowanie w pętli otwartej, sprzężenie zwrotne, feedforward PID strojenie, optymalizacja, sterowanie przekaźnikowe, sterownik liniowokwadratowy, kompensacja nieliniowości statycznych, nieliniowe sprzężenie zwrotne, linearyzacja w punkcie pracy, gain scheduling, sterowniki ślizgowe, MPC. 3 / 5
Systemy czasu rzeczywistego Definicje, systemu zanurzone, zakresy stosowania różnych platform sprzętowych, system operacyjny czasu rzeczywistego, kolejkowanie, algorytm RMS, wymagania stawiane systemom operacyjnym czasu rzeczywistego, parametry, zastosowanie Windows jako systemu czasu rzeczywistego. laboratoryjne Wielostanowiskowy, sieciowy system implementujący algorytmy symulacyjne oraz regulatory Celem laboratorium jest utworzenie wielostanowiskowego, sieciowego systemu modelującego instalację CO budynków AGH, realizującego sterowanie wymiennikiem węzła cieplnego oraz sterowanie temperaturą w budynkach. Dodatkowo realizowane będą zadania logowania historii eksperymentu oraz graficznego prezentowania stanu systemu. Liczba stanowisk uzależniona jest od liczby studentów (każda osoba indywidualnie realizuje określone zadanie). Planowane są następujące zadania. 1.Koordynator. Realizuje koordynację między członkami grupy laboratoryjnej w celu uzgodnienia szczegółów wymiany informacji. Podstawowym zadaniem koordynatora jest uzgodnienie sposobu komunikacji między członkami grupy. Odpowiada za skompletowanie dokumentacji projektu (dokumentacje cząstkowe dostarczają wszyscy członkowie grupy). 2.Symulator upływającego czasu. Ze względu na długie stałe czasowe modelowanych obiektów oraz pracę w trybie symulacyjnym na wielu komputerach niezbędne jest posiadanie źródła określającego wspólny czas symulacyjny dla wszystkich stanowisk. Upływ czasu dla potrzeb symulacji będzie szybszy w stosunku do czasu astronomicznego. Celem zadania jest zaimplementowanie serwera SNTP/NTP (Simple Network Time Protocol / Network Time Protocol) stanowiącego wzorzec czasu dla wszystkich stanowisk. Udostępnione zostaną biblioteki umożliwiające odczyt stempli czasowych. 3.Symulacja dostawcy energii cieplnej oraz temperatury zewnętrznej. Symulator pracy zakładu elektrociepłowniczego. W zależności od zmian temperatury zewnętrznej będzie symulował zmiany temperatury zasilania. Zaplanować symulator awarii. Udostępnić wartości temperatury zasilania oraz temperatury zewnętrznej w środowisku sieciowym. 4.Symulacyjny model wymiennika. Utworzyć symulator wymiennika ciepła. Informacje o wartości temperatury zasilania, przepływu oraz temperatury zewnętrznej uzyskiwać sieciowo od symulatora dostawcy energii cieplnej. Udostępnić sieciowo informacje o stanie wymiennika. 5.Regulator wymiennika. Zrealizować regulator stabilizujący temperaturę TZCO (zgodnie z formułą (2)) poprzez sterowanie UM. Odczytywać z symulatorów budynków wartości FCOB oraz TPCOB. Udostępnić sieciowo informacje o pracującym regulatorze. 6.Modele symulacyjne oraz regulatory budynków. W odróżnieniu od pozostałych zadań to realizowane jest wielokrotnie, choć niezależnie, przez kilku studentów. Każdy budynek opisany jest innymi parametrami (dotyczy parametrów kaloryferów i budynków). 7.Logowanie danych o historii eksperymentu. Zaimplementować odczyty i logowanie danych o pracy systemu. 8.Wizualizacja stanu eksperymentu z poziomu języka C. Utworzyć w języku C/C++ graficzne ekrany synoptyczne prezentujące pracę systemu. 9.Wizualizacja stanu eksperymentu poprzez serwer http. Udostępnić informację o pracy systemu w przeglądarkach internetowych. Zaimplementować prosty serwer http oraz utworzyć odpowiednie strony obrazujące stan pracy obiektu. 10.Opracować zadania z punktu 8 ale w sposób umożliwiający wyświetlanie informacji 4 / 5
na telefonie komórkowym. Komunikacja między stanowiskami w celu wymiany danych procesowych może być realizowana za pomocą protokołu Modbus TCP. Możliwe jest również zastosowanie własnego dedykowanego protokołu. Udostępnienie danych innych członkom grupy oznacza konieczność implementacji serwera Modbus TCP lub serwera protokołu uzgodnionego z pozostałymi członkami grupy. Sposób obliczania oceny końcowej Oceną końcową jest ocena z laboratorium Wymagania wstępne i dodatkowe Umiejętność programowania w języku C/C++ Zalecana literatura i pomoce naukowe Nie podano zalecanej literatury lub pomocy naukowych. Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu Nie podano dodatkowych publikacji Informacje dodatkowe Brak Nakład pracy studenta (bilans punktów ECTS) Forma aktywności studenta Udział w wykładach Udział w ćwiczeniach laboratoryjnych Samodzielne studiowanie tematyki zajęć Sumaryczne obciążenie pracą studenta Punkty ECTS za moduł Obciążenie studenta 28 godz 28 godz 19 godz 75 godz 3 ECTS 5 / 5