Programowanie w języku G

Transkrypt

Programowanie w języku G
1
Programowanie w języku G - Laboratorium 5
Ćwiczenie 5.1
Pierwiastek kwadratowy
Cel:
Zapoznanie z wykorzystaniem struktur wyboru (case structure).
Postępowanie według instrukcji umożliwia budowę programu kontrolującego, czy wprowadzana liczba jest
dodatnia i w przypadku spełnienia tego warunku obliczania jej pierwiastka kwadratowego. W przeciwnym razie
wyświetlana jest informacja o błędzie.
Panel czołowy ________________________________________________________________________
1. Otwórz nowy projekt programu LabVIEW.
2. Zmodyfikuj okno panelu czołowego wstawiając odpowiednie elementy tak, aby uzyskać rezultat
podobny do pokazanego na poniższym rysunku.
3. W tym celu należy wstawić, w obszar okna panelu czołowego, następujące obiekty znajdujące się
w palecie Controls:
a) kontrolkę numeryczną Numeric Controls z grupy Controls/Numeric Controls i nadać jej
etykietę Liczba;
b) wskaźnik numeryczny Numeric Indicator z grupy Controls/Numeric Indicators i nadać mu
etykietkę Pierwiastek kwadratowy.
Schemat blokowy _____________________________________________________________________
1. W oknie schematu blokowego wstaw obiekt struktury wyboru (Case Structure). Obiekt Case
Structure znajduje się na palecie Functions w grupie Execution Control.
2. W obszarze struktury wyboru Case Structure uaktywnij okno FALSE i zbuduj schemat blokowy
przypominający ten przedstawiony na poniższym rysunku.
Porada: Przełączanie między poszczególnymi oknami obiektu Case Structure (struktury wyboru) odbywa się
za pomocą strzałek umieszczonych w górnej części okna. W polu testowym między strzałkami zamieszczona
jest nazwa aktualnie otworzonego okna obiektu struktury wyboru.
Programowanie w języku G
strona 1
2
3. W celu dostosowania schematu blokowego do wymagań projektu należy umieścić w nim następujące
obiekty znajdujące się w palecie Functions:
a) warunek Greater or Equal to 0? (większe lub równe 0). Obiekt ten znajduje się w grupie
Arithmetic & Comparison /Express Comparison. Funkcja ta daje na wyjściu stan 1 (TRUE),
jeżeli liczba na wejściu jest większa lub równa 0;
b) wewnątrz okna struktury wyboru (dla false) stałą liczbową i nadać jej wartość -99 999,0. Ponadto
korzystając z menu kontekstowego uaktywnić okno właściwości Properties stałej liczbowej i na
karcie Format and Precision zadeklarować Digits of precision na wartość 2 i wybrać opcję
postaci wyświetlania liczby na zmiennoprzecinkową (Floating point) Dokonane zmiany
zatwierdzić przyciskiem OK;
c) wewnątrz okna struktury wyboru (dla false) funkcję One Button Dialog. Funkcja znajduje się w
grupie All Functions/Time & Dialog. Funkcja umożliwia wyświetlanie na ekranie monitora
komunikatów tekstowych;
d) korzystając z menu kontekstowego obiektu One Button Dialog zadeklaruj komunikat o treści:
Błąd!!! Niewłaściwa liczba (Liczba ujemna). W tym celu wykorzystaj funkcję Create (zawartą w
menu kontekstowym), wybierając opcję Constant.
4. Wykonaj niezbędne połączenia między poszczególnymi elementami schematu blokowego.
5. W obszarze struktury wyboru Case Structure uaktywnij okno TRUE i zbuduj schemat blokowy
zgodny z przedstawionym na poniższym rysunku.
6. Wstaw wewnątrz okna struktury wyboru Case Structure moduł pierwiastkowania Square Root.
Obiekt znajduje się w grupie funkcji Arithmetic & Comparison /Express Numeric.
7. Wykonaj niezbędne brakujące połączenia między elementami.
8. Zapisz stworzony projekt pod nazwą Square Root.vi.
Uruchamianie programu _______________________________________________________________
1. W oknie panelu czołowego i uruchom jednokrotnie program (przycisk Run, CRL+R). Nie używaj, w
tym przypadku, do uruchamiania programu przycisku [Run Continuously], ponieważ w przypadku
ustawienia liczby ujemnej zostanie zawieszone działanie.
2. Zmieniaj wartości wyświetlanych liczb i obserwuj zachowanie się programu, szczególnie przy
ustawianiu liczb ujemnych.
3. Upewnij się, czy program został zapisany na dysku, a następnie zamknij projekt.
Programowanie w języku G
strona 2
3
Ćwiczenie 5.2
Kontrola temperatury
Cel:
Wykorzystywanie struktur wyboru.
Postępowanie według podanych instrukcji umożliwia budowę przyrządu wirtualnego wykrywającego i
sygnalizującego wystąpienie wartości temperatury w zadeklarowanym zakresie. Jeśli wartość mierzonej
temperatury przekroczy wyznaczony limit, zostanie załączona kontrolka w postaci diody LED i wygenerowany
sygnał dźwiękowy.
Panel czołowy ________________________________________________________________________
1. Otwórz utworzony uprzednio pliku programu o nazwie Temperature Running Average.vi
(Laboratorium 03 /Ćwiczenie 3.4 /Średnia bieżąca pomiaru temperatury). Po otwarciu pliku powinny
zostać wyświetlone okna panelu czołowego i schematu blokowego zbliżone do przedstawionych
poniżej.
2. Zmodyfikuj okno panelu czołowego wstawiając odpowiednie elementy tak, aby uzyskać rezultat
podobny do pokazanego na poniższym rysunku.
3. W celu dostosowania panelu należy wykonać następujące czynności:
a) sprawdzić, czy aktywna jest opcja wyświetlania wartości przebiegu w postaci numerycznej. Jeżeli
nie, to należy ją uaktywnić. Funkcję tę uruchamia się w menu kontekstowym wykresu
uaktywniając opcję Digital Display w menu Visible Items;
b) z palety Controls z grupy Numeric Controls wstawić w okno panelu czołowego kontrolkę
numeryczną Numeric Control i nadaj jej nazwę High Limit (lub np. Temperatura graniczna);
c) z palety Controls z grupy LED wstawić w okno panelu czołowego wskaźnik w postaci diody
świecącej Round LED i nadaj jej etykietkę Warning (lub np. Ostrzeżenie).
4. Po wprowadzeniu zmian do tworzonego projektu zapisz go na dysku komputera pod nazwą
Temperature Control.vi.
Programowanie w języku G
strona 3
4
Schemat blokowy _____________________________________________________________________
1. W oknie schematu blokowego dokonaj niezbędnych poprawek tak, by uzyskać efekt podobny do
przedstawionego na poniższym rysunku.
2. Dostosuj wielkość okna pętli While, tak by możliwe mogło być wstawienie brakujących elementów.
Następnie do wnętrza obszaru pętli wstaw następujące elementy:
a) obiekt struktury wyboru (Case Structure). Obiekt Case Structure znajduje się na palecie
Functions w grupie Execution Control. Uaktywnij w nim okno TRUE.
b) warunek Greater (warunek większości). Obiekt ten znajduje się w grupie Arithmetic
& Comparison/Express Comparison. Funkcja ta daje na wyjściu stan 1 (TRUE), jeżeli liczba na
wejściu górnym jest większa od liczby na wejściu dolnym modułu.
3. Do wnętrza okna TRUE obiektu struktury wyboru Case Structure wstaw przyrząd wirtualny Beep.vi
(generator dźwięku). Obiekt ten znajduje się w palecie Functions w grupie All Functions i podgrupie
Graphics & Sound /Sound.
4. Wykonaj brakujące połączenia między poszczególnymi elementami.
5. Zapisz w bieżącym pliku dokonane zmiany. Plik będzie potrzebny w kolejnych zajęciach.
Uruchamianie programu _______________________________________________________________
1. Uaktywnij okno panelu czołowego. Przed uruchomieniem programu ustaw na kontrolce numerycznej
High Limit wartość 80.
2. Obserwuj zmiany zachodzące na panelu czołowym (diodzie LED i głośniku PC) po przekroczeniu
wartości progowej ustawionej na kontrolce numerycznej.
3. Sprawdź działanie programu dla innych wartości progowych temperatury.
4. Upewnij się, czy został zapisany program na dysku, a następnie zamknij plik projektu.
Programowanie w języku G
strona 4
5
Ćwiczenie 5.3
Czas wyszukiwania (Time to Match)
Cel:
Zapoznanie z korzystaniem ze struktur sekwencyjnych.
Postępowanie według podanych instrukcji umożliwia budowę przyrządu wirtualnego, który będzie obliczał czas,
jaki minął od chwili uruchomienia programu do momentu wygenerowania przez generator liczb losowych wartości
zadanej przez użytkownika.
Panel czołowy ________________________________________________________________________
1. Otwórz plik programu Auto Match.vi (plik został utworzony wcześniej (Laboratorium 3 /Ćwiczenie
3.1 /Znajdź liczbę). Powinny zostać wyświetlone okna panelu czołowego i schematu blokowego
analogiczne do przedstawionych poniżej.
2. Zmodyfikuj okno panelu czołowego wstawiając wskaźnik numeryczny Numeric Indicator (paleta
Controls grupa Numeric Indicators). Wskaźnikowi nadaj etykietkę Time to Match (Czas
wyszukiwania). Efekt wprowadzonych zmian powinien być podobny do pokazanego na poniższym
rysunku.
3. Zmień typ danych - kontrolki Number to Match i wskaźników Current Number i # of iterations na
I32, wskaźnika Time to Match na DBL (Double Precision). Zmian tych można dokonać w menu
kontekstowym Representation wybierając ikonę zgodną z pożądanym typ danych.
4. Za pomocą menu kontekstowego wskaźnika Time to Match uaktywnij okno Format and Precison w
oknie właściwości Properties obiektu. W oknie tym wybierz opcję Digits of precision i ustaw ilość
wyświetlanych miejsc po przecinku na 3.
5. Po wprowadzeniu zmian do tworzonego projektu zapisz go na dysku pod nazwą Time to Match.vi.
Programowanie w języku G
strona 5
6
Schemat blokowy _____________________________________________________________________
1. W oknie schematu blokowego dokonaj niezbędnych poprawek tak, by uzyskać efekt podobny do
przedstawionego na poniższym rysunku.
2. Wstawić wokół istniejącego schematu blokowego strukturę sekwencyjną (stosową) Stacked Seqence
Structure. Struktura Stacked Sequence znajduje się w palecie Functions w grupie All Functions
/Structures. W celu dodania kolejnej ramki do struktury sekwencyjnej należy użyć polecenia Add
Frame After znajdującego się w menu kontekstowym obiektu.
3. Poza polem struktury sekwencyjnej należy umieścić obiekt licznika czasu Tick Count (ms). Obiekt
Tick Count (ms) znajduje się w palecie Functions w grupie All Functions/Time & Dialog.
4. Wykonaj brakujące połączenia w schemacie blokowym dla ramki 0. Następnie za pomocą strzałek
umieszczonych w górnej części ramki struktury sekwencyjnej przejdź do ramki 1.
5. W ramce 1 umieść znajdujący się w oknie schematu blokowego wskaźnik Time to Match.
6. Następnie wewnątrz ramki 1 struktury sekwencyjnej umieść następujące elementy:
a) obiekt licznika czasu Tick Count (ms) (paleta Functions grupa All Functions/Time & Dialog);
b) moduł odejmowania - Subtract. Moduł znajduje się w palecie Functions w grupie
Arithmetic & Comparison /Express Numeric;
c) moduł dzielenia - Divide (paleta Functions grupa Arithmetic & Comparison /Express
Numeric). Do dolnego wejścia modułu dzielenia dołącz stałą numeryczną o wartości 1000.
7. Wykonaj brakujące połączenia w schemacie blokowym dla ramki 1.
8. Wykonane zmiany zapisz w bieżącym pliku.
Uruchamianie programu _______________________________________________________________
1. Uaktywnij okno panelu czołowego i kilkukrotnie uruchom program deklarując kilka wartości
poszukiwanych liczb.
2. W oknie wskaźnika Time to Match wyświetlana jest wielkość określająca czas, jaki minął od
momentu uruchomienia programu do chwili wygenerowania przez program szukanej liczby.
3. Zamknij plik stworzonego programu.
Programowanie w języku G
strona 6
7
Ćwiczenie 5.4
Węzeł formuły
Cel:
Praktyczne wykorzystywanie obiektów formuł matematycznych.
Postępowanie według podanych instrukcji umożliwia budowę przyrządu wirtualnego wykorzystującego węzły
formuły do wykonywania złożonych działań matematycznych i wyświetlania ich na wykresie.
Panel czołowy ________________________________________________________________________
1. Otwórz nowy projekt.
2. W oknie panelu czołowego umieść wykres Waveform Graph. W wykorzystując menu kontekstowe
usuń legendy osi (menu kontekstowe Visible Scale Label oraz X Scale i Y Scale).
3. Zmień zakres liczb wyświetlany na osi Y od -2,0 do 10,0 i skoku wartości (interwał) 2,0. Ustaw
wyświetlanie liczb z dokładnością do 1 miejsca po przecinku. W przypadku osi X ustaw zakres od 0
do 200 przy skoku wartości równym 20. Po wykonaniu tych zmian panel czołowy powinien wyglądać
podobnie do przedstawionego na poniższym rysunku.
Porada: Modyfikacji wyglądu wykresu wykonuje się wpisując żądane wielkości w określone miejsca na
osiach wykresu (początek osi – minimum, koniec osi – maksimum zakresu, druga liczba – interwał).
Postępowanie jest podobne do wykonywanego w ramach ćwiczenia Ćwiczenie 3.4 - Średnia bieżąca pomiaru
temperatury.
Schemat blokowy _____________________________________________________________________
1. Zbuduj schemat blokowy przedstawiony na poniższym rysunku.
2. Przekształcając schemat blokowy wstaw z poszczególnych grup palety Functions następujące
obiekty:
a) pętlę For (grupa All Functions /Structure);
Programowanie w języku G
strona 7
8
b) węzeł Formula Node (grupa All Functions /Structure);
c) moduł dzielenia - Divide (grupa Arithmetic & Comparison /Express Numeric);
d) stałą liczbową - Numeric Constant (grupa Arithmetic & Comparison /Express Numeric).
3. Wstaw, wykorzystując z menu kontekstowego pętli For polecenie Create Constant, stałą liczbową o
wartości 200 określającą ilość iteracji (kroków) pętli.
4. Wykorzystując polecenia Add Input (dodaj wejście) i Add Output (dodaj wyjście) menu
kontekstowego węzła Formula Node utwórz jedno wejście do formuły nadając mu nazwę x i dwa
wyjścia o nazwach a i y.
5. Do środka obszaru formuły wpisz następujące funkcje matematyczne, której wartość będzie
wyznaczała formuła Formula Node:
a = tanh(x) + cos(x)
y = a**3 + a
Wskazówka: W formułach matematycznych stosowanych w środowisku LabVIEW symbol ** oznacza
potęgowanie.
6. Wykonaj niezbędne połączenia między elementami schematu blokowego.
7. Zapisz program pod nazwą Formula Node Exercise.vi.
Uruchomienie programu _______________________________________________________________
1. Uruchom programu w oknie panelu czołowego.
2. Zaobserwuj wygenerowany na wykres.
3. Uruchom kilkukrotnie program dokonując uprzednio modyfikacji obliczanych funkcji oraz liczby
iteracji pętli.
4. Zamknij plik bieżącego projektu przyrządu wirtualnego.
Ćwiczenie 5.5
Obwód szeregowy RLC
Cel:
Praktyczne wykorzystywanie obiektów formuł matematycznych.
Postępowanie według podanych instrukcji umożliwia budowę przyrządu wirtualnego wykorzystującego węzeł
formuły do symulowania działania prostego, idealnego obwodu RLC. Eksperymentator ma możliwość zadawania
wartości i częstotliwości napięcia zasilającego oraz wartości rezystancji, indukcyjności i pojemności, a w efekcie
zostaje obliczona wartość natężenia prądu w obwodzie oraz wartości napięć na poszczególnych elementach
obwodu.
Panel czołowy ________________________________________________________________________
1. Otwórz nowy projekt i zbuduj panel czołowy o wyglądzie zbliżonym do przedstawionego na rysunku.
2. Panel czołowy zawiera następujące obiekty:
a) cztery wskaźniki (wskazówkowe) (Natężenie prądu I, Napięcie UR, Napięcie UC, Napięcie UL)
z wyświetlonymi dodatkowo wskaźnikami numerycznymi;
b) trzy kontrolki numeryczne R, L, C do deklarowania wartości elementów układu;
c) dwie kontrolki numeryczne w postaci gałek (Napięcie, Częstotliwość) do deklarowania
parametrów napięcia zasilającego;
Programowanie w języku G
strona 8
9
d) przycisk logiczny Stop (Koniec symulacji) towarzyszący pętli While, który służy do kończenia
pracy programu;
e) elementy graficzne: tło pochodzące z pliku RLC.jpg (lokalizację poda prowadzący zajęcia) oraz
tło przyrządu z palety LabVIEW.
3. Dokonać formatowania elementów kontrolek i wskaźników (zakres min/max, skok, liczba cyfr
znaczących) „na wyczucie” tj. np. dla gałki zadawania wartości napięcia – minimum 0, maksimum
- 300, skok – 1, skala – zmiennoprzecinkowa, precyzja – 0 cyfr).
Schemat blokowy _____________________________________________________________________
1.
Utwórz schemat blokowy, który będzie obliczał pożądane wartości napięć i prądów występujących w
idealnym obwodzie RLC. Informacje pomocne do rozwiązania tego problemu są następujące:
Wartości dane (zadawane przez eksperymentatora):
U – wartość napięcia zasilającego w V (woltach);
f – częstotliwość napięcia zasilającego w Hz (hercach);
R – rezystancja rezystora umieszczonego w obwodzie w Ω (omach);
L – indukcyjność cewki w H (henrach);
C – pojemność kondensatora w F (faradach).
Wartości pośrednie i poszukiwane:
XL – reaktancja indukcyjna w Ω (omach), X L = 2πfL ;
XC – reaktancja pojemnościowa w Ω (omach), X C = 1 /( 2πfC ) ;
Z – impedancja obwodu w Ω (omach) , Z = R 2 + ( X L − X C ) 2 ;
I - wartość natężenia prądu w obwodzie w A (amperach), I = U / Z ;
UR – wartość napięcia na rezystorze R w V (woltach), U R = I ⋅ R ;
UL – wartość napięcia na indukcyjności L w V (woltach), U L = I ⋅ X L ;
UC – wartość napięcia na pojemności C w V (woltach), U C = I ⋅ X C .
Programowanie w języku G
strona 9
10
2.
Utworzony schemat blokowy może być zbliżony do przedstawionego na kolejnym rysunku.
3.
Obiekt pętli While został wprowadzony dla zachowania ciągłości funkcjonowania programu.
Zadaniem modułu oczekiwania (Wait (ms)) jest zapobieganie monopolizacji zasobów komputera
przez nieustannie wykonywaną pętlę.
4.
Zapisz plik programu pod nazwą Rezonans.vi.
Uruchomienie programu _______________________________________________________________
1.
Uruchom programu w oknie panelu czołowego.
2.
Odpowiedz na pytanie, jaka będzie wartość natężenia prądu (I) i napięcia na cewce (UL) w przypadku
następujących parametrów występujących w obwodzie:
U = 230 V (wartość napięcia zasilającego);
f = 50 Hz (częstotliwość napięcia zasilającego);
R = 36,8 Ω (rezystancja rezystora);
L = 1,1 H (indukcyjność cewki);
C = 50 µF (0,000050 F) (pojemność kondensatora).
3.
Zamknij plik bieżącego programu.
Opracowane na podstawie:
LabVIEW 7 Express Basics Interactive Training CD. National Instruments 2003.
LabVIEW Basics I. Introduction Course Manual. National Instruments 2002.
Programowanie w języku G
strona 10