Programowanie w języku G

Transkrypt

Programowanie w języku G
1
Programowanie w języku G - Laboratorium 3
Ćwiczenie 3.1
Znajdź liczbę
Cel:
Zapoznanie z mechanizmem przekazywania danych przez tunel pętli While.
Poniższe wskazówki umożliwiają stworzenie programu generującego liczby losowe tak długo, aż wygenerowana
liczba będzie zgodna z zadeklarowaną przez użytkownika. Równocześnie będzie rejestrowana i wyświetlana
bieżąca liczba losowa oraz liczba wykonanych w pętli iteracji.
Panel czołowy _______________________________________________________________________
1. Uruchom program LabVIEW i otwórz nowy czysty projekt.
2. Zmodyfikuj okno panelu wstawiając odpowiednie kontrolki i wskaźniki oraz zmieniając ich nazwy
tak, aby uzyskać rezultat zbliżony do pokazanego na poniższym rysunku.
3. W tym celu należy w palecie Controls znaleźć i umieścić na panelu następujące obiekty:
a) z grupy Numeric Controls obiekt Numeric Control i nadać mu etykietę Number to match
(kontrolka będzie służyła do wprowadzania poszukiwanej liczby),
b) z grupy Numeric Indicator obiekt Numeric Indicator i nadać mu etykietkę Current Number
(wskaźnik będzie wyświetlał aktualnie wygenerowaną liczbę losową),
c) z grupy Numeric Indicator obiekt Numeric Indicator i nadać mu etykietkę # of iterations
(wskaźnik będzie prezentował liczbę wykonanych pętli).
Ustawianie zakresu danych _____________________________________________________________
Ustawianie zakresu danych dla kontrolki ma na w celu niedopuszczenia do wprowadzenia wartości, która
nie jest zgodna z przeszukiwanym zakresem lub dopuszczalnym krokiem zmian wielkości. Dla
wprowadzanych wartości spoza zakresu kontrolki możliwe jest wybranie akcji ignorowania
wprowadzonej wielkości lub zaokrąglenia do minimalnej lub maksymalnej wartości z zakresu.
Postępowanie według dalszych instrukcji doprowadzi do zadeklarowania zakresu poszukiwanej liczby
losowej od 0 do 10 000 przy skoku równym 1 i wartości domyślnej równej 50.
1. Otwórz menu kontekstowe kontrolki Number to Match (klikając prawy przycisk myszy w danym
obiekcie) i wybierz opcję Data Range.
2. W otwartym oknie dialogowym Numeric Properties ustaw:
a) w oknie Default value (wartość domyślna) wprowadź wartość 50,
b) w celu zmodyfikowania domyślnego zakresu danych usuń znacznik pola Use Default Range,
c) w oknie Minimum ustaw wartość 0, a z rozwijanego menu Out of range action wybierz opcję
Cerce (zaokrąglanie),
d) w oknie Maximum ustaw wartość 10 000, z rozwijanego menu Out of range action wybierz
opcję Coerce,
e) w oknie Increment ustaw wartość 1, a z rozwijanego menu Out of range action wybierz opcję
Coerce to Nearest (zaokrąglij do najbliższej).
Programowanie w języku G
strona 1
2
3. Nie zamykaj okna dialogowego Numeric Properties: Numeric i przejdź do wykonywania
poniższych instrukcji.
Modyfikowanie sposobu/precyzji wyświetlania liczb ________________________________________
Możliwe jest ustawianie żądanej przez użytkownika dokładności, z jaką mają być wyświetlane wartości
liczbowe regulatorów i wskaźników. Liczby można prezentować w notacji zmiennoprzecinkowej
(np. 5000,00), naukowej (5E+3) lub zgodnie z układem SI (5 k). Instrukcje z kolejnych kroków
spowodują wyświetlanie wartości wprowadzanej liczby jako liczby całkowitej (wyświetlanie z
dokładnością do jedności).
1. Przejdź na kartę Format and Precision.
Uwaga: Jeżeli wykonując instrukcje zawarte w części Ustawianie zakresu danych zamknąłeś okno Numeric
Properties (np. przycisk OK) ponownie wyświetl menu kontekstowe obiektu Number to Match, a następnie
wybierz polecenie Format and Precision.
2. Ustaw wyświetlanie wielkości w postaci zmiennoprzecinkowej wybierając funkcję Floating Point,
a następnie zmień opcję Significant digits na Digits of precision.
3. Do sąsiadującego pola wstaw wartość 0.
4. Wprowadzone zmiany zatwierdź przyciskiem OK.
5. Takie samo formatowanie zastosuj dla wskaźników Current Number i # of iterations.
Schemat blokowy _____________________________________________________________________
1. Dodając w oknie schematu blokowego brakujące elementy i wykonując połączenia między nimi
zbuduj schemat blokowy analogiczny z przedstawionym na poniższym rysunku.
wersja angielska
2. W celu dostosowania schematu blokowego do wymagań projektu należy, wykorzystując obiekty
z palety Functions, umieścić w nim:
a) generator liczb losowych Random Number (0-1) - znajdujący się w grupie funkcji Arithmetic
and Comparison i podgrupie Express Numeric;
b) moduł mnożenia (Multiply) znajdujący się również w grupie funkcji Arithmetics and
Comparison i podgrupie Express Numeric;
c) stałą liczbową o wartości 10 000 dołączoną do wejścia y modułu mnożenia (Multiply). W celu
dodania takiej stałej liczbowej należy uaktywnić menu kontekstowe wejścia y modułu mnożenia
(kliknąć prawy przycisk myszy) i wybrać funkcję Constant z menu Create. W utworzonym
obiekcie stałej liczbowej wpisać jej wartość (10 000);
d) moduł zaokrąglania Round To Nearest znajdujący się w grupie funkcji Arithmetic and
Comparison i podgrupie Express Numeric;
Programowanie w języku G
strona 2
3
e) funkcję „różne od siebie” Not Equal? znajdującą się w grupie funkcji Arithmetic and
Comparison i podgrupie Express Comparison. Funkcja ta sprawdza, czy wartości obu wejść są
różne od siebie. Jeżeli tak, to wyjście modułu przyjmuje stan TRUE (wartość 1), jeżeli nie stan
FALSE (wartość 0);
f) moduł inkrementacji (Increment) znajdujący się w grupie funkcji Arithmetic and Comparison i
podgrupie Express Numeric.
3. Rozmieść wstawione obiekty w sposób podobny do przedstawionego na rysunku.
wersja polska
4. Wstaw pętlę While znajdują się w palecie Functions w grupie Execution Control. Rozwijając menu
kontektsowe obiektu terminala warunku pętli zmień opcję na Continue if True.
5. Usuń z wnętrza pętli moduł przycisku Stop Button.
6. Wykonaj brakujące połączenia pomiędzy elementami.
7. Zapisz stworzony projekt pod nazwą AutoMatch.vi na dysku.
Uruchamianie programu _______________________________________________________________
1. Uaktywnij okno panelu czołowego.
2. Uruchom pogram umożliwiający zliczanie, za którym razem spośród losowo generowanych liczb
zostanie wylosowana wartość ustawiona w oknie Number to Match. Przeprowadź kilka prób.
3. W oknie schematu blokowego, przeanalizuj działanie programu uruchamiając funkcję Highlight
Execution i śledząc drogę sygnału.
4. W oknie panelu czołowego zmień wartość liczby deklarowanej w oknie Number to Match na liczbę
spoza zakresu od 0 do 10 000. Uruchom program i zaobserwuj reakcję programu na taką zmianę.
5. Upewnij się, czy program został zapisany na dysku, a następnie zamknij plik programu.
Ćwiczenie 3.2
Rejestr przesuwny
Cel:
Zapoznanie z wykorzystaniem rejestru przesuwnego (Shift register) do uzyskania
wartości z poprzednich obliczeń (tutaj z poprzednich iteracji).
Panel czołowy _______________________________________________________________________
1. Wyświetlić nowe, puste okno panelu czołowego. Umieścić na nim cztery wskaźniki cyfrowe,
rozmieścić w sposób zbliżony do zaprezentowanego na rysunku. Zmodyfikować etykiety
wskaźników. Przycisk Stop zostanie wprowadzony automatycznie później, ponieważ stanowi element
pętli While wprowadzanej na schemacie blokowym.
2. Na panelu czołowym tego programu znajdują się:
a) wskaźnik X(i) wyświetlający aktualny stan danej wielkości;
b) wskaźnik X(i-1) wyświetlający stan wielkości w poprzednim kroku;
Programowanie w języku G
strona 3
4
c) wskaźnik X(i-2) wyświetlający stan danej wielkości występujący dwie iteracje pętli wcześniej;
d) wskaźnik X(i-3) wyświetlający stan występujący trzy iteracje wcześniej;
e) przycisk Stop powodujący zatrzymanie działania programu (pętli).
Schemat blokowy _____________________________________________________________________
1.
Wprowadzić brakujące elementy programu tak, aby schemat blokowy wyglądał podobnie do
poniższego rysunku.
2.
Brakujące elementy schematu blokowego to:
a) pętla While (Functions /Execution Control /While Loop),
b) rejestr przesuwny (menu kontekstowe pętli /Add Shift register lub później Add element),
c) stała liczbowa rejestru (równa 0),
d) moduł dodawania (Functions /Arithmtic&Comparison /Numeric Express),
e) stała liczbowa modułu dodawania (równa 5),
f) połączenia pomiędzy elementami.
Uruchamianie programu _______________________________________________________________
1. Uaktywnij okno panelu czołowego, uruchom pogram, a następnie zakończ jego działania przyciskiem
Stop.
2. W oknie schematu blokowego, uaktywnij funkcję Highlight Execution, a następnie uruchom
program obserwując zachowanie (drogę) sygnału podczas wykonywania poszczególnych części
programu. Zwróć uwagę na wartości liczbowe ukazujące się przy poszczególnych elementach.
3. Jeżeli zmiany sygnału zachodzą zbyt szybko skorzystaj z przycisku Pause lub wykonywania
krokowego (Steppingu).
4. Zapisz program pod nazwą „Shift Register Example.vi” i zamknij okno programu.
Programowanie w języku G
strona 4
5
Ćwiczenie 3.3
Uśrednianie
Cel:
Utworzenie programu wyświetlającego dwa przebiegi. Pierwszy przebieg
prezentuje generowane dane losowe, drugi bieżącą średnią liczoną za cztery
ostatnie punkty. Wykres Waveform Chart wyświetla je w trybie Sweep.
Panel czołowy _______________________________________________________________________
1. Uruchom program LabVIEW i utwórz nowy czysty projekt.
2. Wstaw do projektu obiekt wykresu Waveform Chart znajdujący się w palecie Controls w grupie
Graph Indicators. Dopasuj jego wygląd, aby był podobny do przedstawionego na poniższym
rysunku.
3. W celu dostosowania ustawień wykresu Waveform Chart do wymagań projektu należy:
a) rozszerzyć obszar legendy Plot Legend do dwóch wykresów;
b) w obszarze Plot Legend zmienić nazwy poszczególnych wykresów, nazwę Plot 0 zmienić na Raw
Data (lub Dane losowe), a nazwę Plot 1 zmienić na Running Avg. (Bieżąca średnia);
c) w menu kontekstowym obszaru Plot Legend zmienić, za pomocą funkcji Common Plots i Color,
typ wyświetlanego wykresu na punktowy dla Raw Data (zielone znaczniki) i liniowy dla
Running Avg. (żółta linia);
d) w oknie Właściwości (Properties) obiektu Waveform Chart dodaj pasek przewijania osi x
uaktywnając opcję Show x scrollbar oraz w oknie Update mode zmień sposób aktualizacji na
Sweep;
e) w oknie Właściwości (Properties) wykresu Waveform Chart dostosuj oś y ustawiając, na karcie
Format and Precision, wyświetlanie wartości liczbowych w postaci zmiennoprzecinkowej
(Floating point) oraz dokładność wyświetlanych danych (Digits of precision) do jednego miejsca
po przecinku (dodatkowo usunąć opcję Hide trailing zeros);
f) dostosuj oś x wybierając, na karcie Scales usunięcie zaznaczenia opcji Autoscale i ustaw wartość
Minimum na 0 i Maximum na 100. Ponadto w oknie Grid Style and Colors ustaw kolor Minor
Grid na czarny;
g) usuń podpis osi x, przez usunięcie znacznika w menu kontekstowym obiektu Waveform Chart
opcji Visible Scale Label (menu X Scale).
Programowanie w języku G
strona 5
6
Schemat blokowy _____________________________________________________________________
1. Dopasuj wygląd schematu blokowego, aby był podobny do przedstawionego na poniższym rysunku.
2. W celu dostosowania schematu blokowego do wymagań projektu:
a) zmień, korzystając z menu kontekstowego, wygląd obiektu Waveform Chart wyłączając funkcję
View As Icon;
b) uaktywnij paletę Functions i wybierz grupę zawierającą wszystkie funkcje (All Functions).
Następnie wstaw w okno schematu blokowego pętlę For znajdującą się w grupie obiektów
Structures (All Functions). Wstawiając pętlę pamiętaj, aby obiekt Waveform Chart znalazł się
w jej wnętrzu;
c) wykorzystując funkcję Create Constant, z menu kontekstowego terminala wejściowego licznika
pętli Loop, dodaj stałą liczbową o wartości 200;
d) wykorzystując menu kontekstowe pętli For wybierz polecenie Add Shift Register. Następnie
zwiększ liczbę modułów wejściowych funkcji Shift Register do 3;
e) z grupy zawierającej wszystkie funkcje (grupa All Funtions w palecie Functions) wstaw do
wnętrza pętli For obiekt Wait Until Next ms Multiple znajdujący się w grupie obiektów Time
and Dialog. Następnie do wejścia tego obiektu dołącz stałą liczbową (wykorzystując menu
kontekstowe obiektu i funkcję Create i opcję Constant) o wartości 10;
f) z palety Functions umieść, we wnętrzu obszaru pętli For, generator liczb losowych Random
Number (0-1) (Functions /Arithmetic and Comparison /Express Numeric);
g) z palety Functions umieść, we wnętrzu obszaru pętli For, moduł Compound Arithmetic i ustaw
na realizowanie funkcji dodawania, a następnie rozszerz go tak, aby uaktywnić cztery wejścia
(Functions /Arithmetic and Comparison /Express Numeric);
h) z palety Functions umieść, we wnętrzu obszaru pętli For, moduł dzielenia (Divide) (Functions
/Arithmetic and Comparison /Express Numeric). Następnie do wejścia y tego modułu dołącz stałą
liczbową (wykorzystując menu kontekstowe i funkcję Create i opcję Constant) o wartości 4;
i) z grupy zawierającej wszystkie funkcje (grupa All Funtions w palecie Functions) wstaw do
wnętrza pętli For moduł Bundle znajdujący się w grupie Cluster;
j) poza obszarem pętli For umieść, najlepiej obok wejść modułu Shift Register, stałą liczbową
(kontrolka Numeric Constant) o wartości 0,5.
3. Wykonaj, zgodne z przedstawionymi na rysunku, połączenia między obiektami.
Uruchamianie programu _______________________________________________________________
1. Uaktywnij okno panelu czołowego.
2. Uruchom stworzony pogram sprawdzając jego działanie.
3. Zapisz stworzony projekt na dysku pod nazwą „Random Average.vi”.
Programowanie w języku G
strona 6
7
Ćwiczenie 3.4
Średnia bieżąca pomiaru temperatury
Cel:
Wykorzystanie rejestrów przesuwnych do obliczania średniej bieżącej.
W kolejnych krokach zostanie przeprowadzona modyfikacja programu „Temperature Monitor.vi”, tak aby
obliczana była średnia z trzech ostatnich pomiarów temperatury, a wartość średniej wyświetlana na wykresie
Waveform chart.
Panel czołowy _______________________________________________________________________
1. Z katalogu wskazanego przez prowadzącego otwórz plik Temperature Monitor.vi.
2. Zapisz plik na dysku pod nową nazwą Temperature Running Average.vi.
Schemat blokowy _____________________________________________________________________
1. Uaktywnij okno schematu blokowego.
2. Zmodyfikuj schemat blokowy, tak by był analogiczny do przedstawionego na poniższym rysunku.
3. W celu dostosowania schematu blokowego do wymagań projektu należy:
a) usuń połączenie obiektu (Demo) Thermometer.vi z wykresem Temperature History;
b) skopiuj obiekt (Demo) Thermometer.vi i umieść go poza obszarem pętli While Loop.
c) wykorzystując menu kontekstowe pętli While wybierz polecenie Add Shift Register. Następnie
zwiększ liczbę modułów wejściowych funkcji Shift Register do 2;
Programowanie w języku G
strona 7
8
d) z palety Functions umieść, we wnętrzu obszaru pętli While, moduł Compound Arithmetic i
ustaw na realizowanie funkcji dodawania. Następnie rozszerz go tak, aby uaktywnić jego trzy
wejścia (Functions / Arithmetic and Comparison /Express Numeric);
e) z palety Functions umieść, we wnętrzu obszaru pętli While, moduł dzielenia (Divide) (Functions
/ Arithmetic and Comparison /Express Numeric). Następnie do wejścia y tego modułu dołącz stałą
liczbową (wykorzystując menu kontekstowe i polecenie Create /Constant) o wartości 3.
4. Wykonaj połączenia między obiektami zgodnie z rysunkiem.
Uruchomienie programu _______________________________________________________________
1. Uaktywnij okno panelu czołowego.
2. Uruchom stworzony pogram sprawdzając jego działanie.
3. Zapisz stworzony projekt na dysku pod istniejącą nazwą.
Modyfikacja tworzonego projektu _______________________________________________________
Postępowanie według podanych instrukcji umożliwia zmodyfikowanie wcześniejszego projektu poprzez dodanie
do wykresu przebiegu aktualnej mierzonej temperatury (symulowanej przez wbudowany przyrząd wirtualny).
1. Zmodyfikuj schemat blokowy tworzonego projektu tak, by przypominał przedstawiony na poniższym
rysunku.
2. W tym celu należy dokonać następujących poprawek:
a) usuń połączenie modułu dzielenia (Divide) z wykresem Temperature History;
b) z grupy zawierającej wszystkie funkcje (grupa All Funtions w palecie Functions) wstaw do
wnętrza pętli While moduł funkcji Bundle znajdujący się w grupie obiektów Cluster;
3. Wykonaj brakujące połączenia między obiektami zgodnie z rysunkiem.
Uruchomienie programu _______________________________________________________________
1.
Uaktywnij okno panelu czołowego.
2. Uruchom stworzony pogram sprawdzając jego działanie.
3. Zapisz zmodyfikowany projekt na dysku pod istniejącą nazwą.
Programowanie w języku G
strona 8
9
Modyfikacja wyglądu wykresu __________________________________________________________
Postępowanie według podanych instrukcji doprowadzi do modyfikacji wyglądu wykresu (zmiany w legendzie
wykresu, opisie skal). W podobny sposób można dostosowywać wyświetlacz cyfrowy i paski przewijania.
Dostosowywanie osi y
1. W celu zmiany wartości minimalnej wyświetlanej na wykresie należy dwukrotnie kliknąć lewym
przyciskiem myszy w obszarze wartości minimalnej i wpisać nową wartość (np. w miejsce wartości
70 wpisz 75) i zatwierdzić wprowadzoną zmianę klawiszem Enter. Podobnie postępujemy z
wartością maksymalną.
2. W celu zmiany skoku wartości między dwoma wielkościami osi należy zmienić wartość drugiej
(licząc od dołu osi) liczby. Skok wartości będzie określony jako różnica między wpisaną wartością
a wartością minimalną (np. wpisując liczbę 80 określimy skok wartości na 5 z poprzedniego 2,5).
Opis skali
1. W celu wyświetlenia legendy Scale Legend należy z menu kontekstowego Visible Items wykresu
wybrać polecenie Scale Legend. Widok obiektu Scale Legend został przedstawiony na poniższym
rysunku.
1–
2–
3–
4–
5–
6–
X-axis
Y-axis
Scale Labels
Scale Look Button
Autoscale Button
Scale Format Button
Wiersz legendy dotyczący osi X
Wiersz legendy dotyczący osi Y
Etykiety osi X i Y
Włączanie/wyłączanie autoformatowania skali
Przycisk autoskalowania (w chwili kliknięcia)
Wyświelenie menu formatowania
2. Uruchom program i sprawdź możliwości poszczególnych funkcji umieszczonych w obiekcie Scale
Legend wyświetlacza wykresów.
Programowanie w języku G
strona 9
10
Opis przebiegów
1. Jeśli opis przebiegów /legenda wykresu (Plot Legend) nie jest wyświetlona na panelu czołowym nad
wykresem należy w menu kontekstowym Visible Items zaznaczyć opcję Plot Legend.
2. Aby wyświetlić informacje o obu wyświetlanych wykresach należy „rozciągnąć” obszar Plot Legend,
aż ukaże się informacja o drugim przebiegu.
3. W celu zmiany nazw poszczególnych przebiegów należy dwukrotnie kliknąć lewy przycisk myszki w
obszarze nazwy przebiegu i wprowadzić nową nazwę (np. zamiast nazwy Plot 1 wpisać Current Temp
lub np. Aktualna temperatura, a zamiast nazwy Plot 0 wpisać Running Avg. lub Średnia bieżąca).
Paleta wykresu
1. Dodatkowym dostępnym elementem jest paleta wykresu (graph palette). Jeśli paleta nie jest
wyświetlona na panelu czołowym, to należy w menu kontekstowym Visible Items zaznaczyć opcję
Graph Palette. Paleta wykresu umożliwiającą dokonywanie zmian w oknie wyświetlanych
przebiegów można umieścić w dowolnym miejscu okna panelu czołowego. Widok obiektu Graph
Palette został przedstawiony na poniższym rysunku.
1–
2–
3–
4–
Cursor Movement Tool
Zoom Button
Panning Tool
Zoom Pull-down Menu
Wybór trybu wskazywania (lub powrotu do trybu wskazywania)
Powiększenie (rozwijanie menu)
Przesuwanie przebiegów na wykresie
Rozwinięte menu powiększania przebiegów
Uruchomienie programu _______________________________________________________________
1.
Uaktywnij okno panelu czołowego.
2.
Uruchom stworzony pogram i sprawdź możliwości poszczególnych funkcji wprowadzonych do
wykresu.
3.
Zapisz zmodyfikowany projekt na dysku pod istniejącą nazwą.
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

Podobne dokumenty