Projekt z przedmiotu Specjalizowane języki programowania Temat: Zastosowanie programowania obiektowego w środowisku LabView

Podobne dokumenty
Wykład 8: klasy cz. 4

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Maszyna stanu State Machine

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Aplikacje w środowisku VBA. Visual Basic for Aplications

Programowanie obiektowe - 1.

tel fax

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Satel Integra FIBARO

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Referat pracy dyplomowej

Język programowania. Andrzej Bobyk

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Programowanie obiektowe

SYSTEMY CZASU RZECZYWISTEGO STEROWNIK WIND. Dokumentacja projektu. Danilo Lakovic. Joanna Duda. Piotr Leżoń. Mateusz Pytel

Wprowadzenie do programowania aplikacji mobilnych

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS)

Czym są właściwości. Poprawne projektowanie klas

Poradnik użytkownika pomoc techniczna

R Livestock solutions. DOKUMENTACJA TECHNICZNO-RUCHOWA Sterownik mikroklimatu FT27

Nr: 15. Tytuł: Kancelaris w systemie Windows 8 i Windows 8.1. Data modyfikacji:

Programowanie Obiektowe GUI

PODSTAWOWE ZASADY PROGRAMOWANIA OBIEKTOWEGO NA BAZIE PAKIETU ROOT

THP-100 su Obsługa oprogramowania oraz instrukcja wzorcowania

Programowanie obiektowe

INSTRUKCJA OBSŁUGI. Przekaźnik czasowy ETM ELEKTROTECH Dzierżoniów. 1. Zastosowanie

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

PROGRAMY STEROWANIA I WIZUALIZACJI II

Robert Barański, AGH, KMIW MathScript and Formula Nodes v1.0

Programowanie obiektowe

Padlet wirtualna tablica lub papier w Internecie

Materiały do laboratorium MS ACCESS BASIC

Technologie obiektowe

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński

Instrukcja obsługi włączników dotykowych

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

PILOT ZDALNEGO STEROWANIA

Gra Labirynt - Zajęcia 4

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Język Java część 2 (przykładowa aplikacja)

Wzorce projektowe. dr inż. Marcin Pietroo

1. Kontroler bezprzewodowy: R51/CE i R51/E (Standard)

Działanie i charakterystyka sterownika GE FANUC VersaMaxNano

Kl-1-3 Szkoła Podstawowa

Programowanie obiektowe

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

4. Podstawowa konfiguracja

Programowanie obiektowe

Politechnika Gdańska. Gdańsk, 2016

Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach.

Instrukcja zarządzania kontami i prawami. użytkowników w systemie express V. 5

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Robert Barański, AGH, KMIW State Machine v1.0. Maszyna stanów (State Machine)

Dokumentacja WebMaster ver 1.0

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

TOUCH LCD WALL CONTROLLER for Online Controller

2.2 Opis części programowej

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

Gra Labirynt Zajęcia 5

4.1.5 Zakładka: Monitoring GPRS Zakładka: LogicProcessor. Konfiguracja systemu.

Laboratorium Komputerowe Systemy Pomiarowe

Podstawy Programowania Obiektowego

Wykład 5: Klasy cz. 3

SPIS TREŚCI Specyfikacja ogólna Ekran startowy Przyciski nawigacji 1. Ustawienia regulacji 1.1 Regulacja cos 1.2 Regulacja przekładni transformatora

Singleton. Cel: Przykład: Zastosowanie: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej.

INSTRUKCJA OBSŁUGI PROJEKTORA BARCO. Spis treści. 1.Informacje ogólne. 2.Panel Communicator a. 1. Informacje ogólne.

Podstawy programowania. Wykład PASCAL. Wstęp do programowania obiektowego. dr Artur Bartoszewski - Podstawy programowania, sem.

Zastosowania Robotów Mobilnych

AN ON OFF TEMPERATURE CONTROLLER WITH A MOBILE APPLICATION

Infra Instrukcja obsługi. Instrukcja obsługi

Site Installer v2.4.xx

Termostat sieciowy Instrukcja REV 1.01

Celem tego projektu jest stworzenie

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

Podstawy Programowania Programowanie Obiektowe

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Diagram wdrożenia. Rys. 5.1 Diagram wdrożenia.

Ri-Co informacje techniczne

Opis do danych z Lan Kontrolera V Dane wysyłane przez http POST ze strony Events Config po wciśnięciu przycisku Save Config.

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Arkusz danych produktu KX6300dc[******]

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Strzelanka dla dwóch graczy

Wirtualne przyrządy kontrolno-pomiarowe

Laboratorium Systemów Operacyjnych

Instrukcja laboratoryjna cz.3

Architektura interfejsu użytkownika

2.1. Duszek w labiryncie

Włączenie stałego ograniczenia prędkości obrotowej silnika

Transkrypt:

Projekt z przedmiotu Specjalizowane języki programowania Temat: Zastosowanie programowania obiektowego w środowisku LabView Wykonali: Krzysztof Przybyłek Piotr Misiuda IVFDS

Istotę programowania obiektowego w LabView przedstawimy na konkretnym przykładzie system sterowania klimatyzacją. System sterowania klimatyzacją składa się z: - panelu wejściowego z cyfrowym i analogowym we/wy, - ekranu VGA 9-calowego, - heater (podgrzewacz), - cooler (schładzacz), - fan (wentylator), - temp sensor (czujnik temperatury). Podgrzewacz i schładzacz są włączane i wyłączane sygnałami cyfrowymi. Sygnały analogowe są użyte w celu powiadomienia schładzacza/podgrzewacza o ile stopni ma być schłodzone/podgrzane powietrze. Użytkownik ustala żądaną temperaturę pokrętłem. Rozwiązanie z góry na dół, nie używając gotowych obiektów, a zawierając wszystko w jednym, przedstawia się następująco:

Jak widać z diagramu, w jednym przyrządzie zawarto interfejs użytkownika (GUI) i strukturę logiczną programu. Cały program to jeden monolit, w którym wszystkie zmienne są globalne. Utrudnia to ewentualne ich zmiany, dodanie dodatkowych opcji. Niemożliwe jest też używanie części aplikacji w innych projektach. Kod programu staje się mniej czytelny, trudniejszy do zrozumienia i ewentualnego modyfikowania. Jeśli GUI i application logic są umieszczone w jednym przyrządzie, nie jest możliwe dokonywanie oddzielnych zmian na jednym z nich. Silne powiązania pomiędzy przyrządami i zmiennymi globalnymi powodują, że jeśli przyrząd chce zmienić zmienną globalną, to musi ją także zmienić w pozostałych przyrządach. Lepszym wyjściem jest podzielenie monolitycznego programu na oddzielne składniki, jakby klocki, które pasują do siebie i tworzą wspólną całość.

Każdy składnik to mini-aplikacja zamykająca w sobie swoje zmienne i funkcje. Realizowane jest to przez programowanie obiektowe w postaci klas. Każda klasa to zmienne lokalne prywatne dla klasy, oraz publiczne, widoczne dla użytkownika tej klasy. Przykładowo klasa fan: A to już deklaracja klasy w C++: a tak wygląda ta klasa w LabView: Wykorzystujemy tutaj LabView LLB. Przyrządy powyżej linii reprezentują publiczne funkcje, poniżej prywatne. Zmienna speed zawarta jest w Fan Data Members.ctl. Fan Create.vi tworzy obiekt typu fan (konstruktor), Fan Destroy.vi usuwa obiekty Fan. równoznaczne z :

Realizacja całego systemu sterowania klimatyzacją rozpoczyna się od podziału zadania na rozdzielne składniki. Będą to: - GUI-system klimatyzacji, - system klimatyzacji. System klimatyzacji GUI odpowiada za wartości wejściowe i przekazuje je dalej do systemu klimatyzacji. Ponadto prezentuje użytkownikowi wyniki działania składnika system klimatyzacji. Na system klimatyzacji składa się 5 klas: - climate control (kontroler klimatyzacji), - fan (wentylator), - heater, - cooler, - temp sensor (czujnik temperatury). Klasa Climate Controler zawiera w sobie 4 funkcje, które składają się na interfejs składnika Climate system. Są to: - wanted temp, - status, - run, - stop.

W LabView klasy te odwzorowują przyrządy używając do ich przechowywania LabView LLB. Vi przechowujące dane publiczne będą pierwsze (top-level). Poniższy rysunek przedstawia publiczny interfejs klasy Fan: Fan reference zapobiega nieumyślnemu przesłaniu przez użytkownika obiektu jednej klasy do innej. Używając LabView GOOP Wizard do stworzenia klasy LLB, tworzonych jest 5 pomocniczych funkcji do tworzenia obiektów i uzyskania dostępu do ich danych. Są to: - create an object (stwórz obiekt) przydziela miejsce na prywatne dane obiektu i zwraca wskaźnik do tych danych, jest używana w konstruktorze klasy, - get an object s data ( weź dane obiektu) - zwraca dane skojarzone przez wskaźnik obiektu, używana w razie potrzeby odczytania aktualnych danych obiektu, - get an object s data and lock it for futher modifications zwraca daną skojarzoną przez wskaźnik do obiektu i zabiezpiecza przed modyfikacją tej danej, - set an object s data usuwa zabezpieczenie stworzone przez poprzednią funkcję, - destroy an object zwalnia pamięć i usuwa obiekt. Używana jako destruktor klasy.

Konstruktor Fan: Get speed: Destruktor Fan destroy Gotowy panel GUI wygląda nastepująco:

Funkcja w lewym górnym rogu tworzy obiekt Climate Controler. Daje ona wskaźnik przekazywany dalej do funkcji Run (u góry po środku), a f. Run wykonuje kontroler w pętli, porównując aktualną temperaturę z temperaturą docelową ( przechowywaną w zmiennej prywatnej desire temp) i odpowiednio zmienia ustawienia podgrzewacza (heater), schładzacza (cooler) i wentylatora (fan). Wewnątrz pętli żądana temperatura przekazywana jest dalej do climate controler, używając przy tym funkcji Wanted temp, a aktualny status kontrolera określany jest przez funkcję Status. Kiedy użytkownik naciśnie przycisk Stop, wywoływana jest funkcja Stop, która przerywa wykonywanie funkcji Run, i obiekt climate controler jest usuwany przez funkcję Destroy (prawy górny róg). Poniższy rysunek przedstawia diagram funkcji Wanted Temp, która modyfikuje prywatną zmienną desired temp, która jest odczytywana w funkcji Run:

Podsumowanie: Można dostrzec następujące zalety rozbicia programu Climate Control na dwie części. Dzięki rozdzieleniu implementacji składnika Climate Control i interfejsu GUI, możemy swobodnie zmieniać implementację nie martwiąc się przy tym jak zareaguje GUI. To skapsułkowanie rozwiązuje problem globalnych zmiennych jak w przypadku pierwszej implementacji problemu. Analogicznie, nie musimy się martwić o reakcję programu w przypadku zmian na interfejsie GUI. Kod programu Staje się bardziej czytelny i zrozumiały. Jest skalowalny tj. można dodawać/usuwać nowe elementy, tworząc odwołania do funkcji Climate Controler Create i Run. Poszczególne składniki dzięki temu że działają na swoich zmiennych, mogą być wykorzystywane w innych aplikacjach.