Laboratorium wirtualne 1/Moduł 1 - ćwiczenie 1: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 58: | Linia 58: | ||
|} | |} | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="450px"|[[Grafika:LW1_M1_Slajd08.png]] | |valign="top" width="450px"|[[Grafika:LW1_M1_Slajd08.png]] | ||
Linia 178: | Linia 177: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="450px"|[[Grafika:LW1_M1_Slajd24.png]] | |valign="top" width="450px"|[[Grafika:LW1_M1_Slajd24.png]] | ||
|valign="top"|'' | |valign="top"| | ||
Po wybraniu z menu File -> New VI otworzą się okna dla nowego programu. W oknie płyty czołowej należy umieścić dwa elementy typu '''Numeric: Control''' oraz '''Indicator''' i nadać im stosowne nazwy zgodnie ze slajdem. | |||
|} | |} | ||
Linia 184: | Linia 184: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="450px"|[[Grafika:LW1_M1_Slajd25.png]] | |valign="top" width="450px"|[[Grafika:LW1_M1_Slajd25.png]] | ||
|valign="top"|'' | |valign="top"| | ||
Diagram programu będzie miał postać jak na slajdzie. Funkcja mnożenia dostępna w oknie '''Functions -> All Functions -> Numeric'''. W tym samym miejscu dostępne są również stałe. Po umieszczeniu ich na ekranie należy z menu kontekstowego wybrać '''Representation''' i dalej typ '''DBL''' (Double Precision). Dzięki temu domyślny typ stałej: całkowitoliczbowy, reprezentowany kolorem niebieskim zostanie zamineiony na typ zmiennoprzecinkowy. | |||
Stowarzyszone z elementami panelu aplikacji terminale, które znajdują się na diagramie mogą być wyświetlane w postaci uproszczonej lub ikon. Zmina możliwa jest poprzez menu kontekstowe. | |||
|} | |} | ||
Linia 190: | Linia 193: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="450px"|[[Grafika:LW1_M1_Slajd26.png]] | |valign="top" width="450px"|[[Grafika:LW1_M1_Slajd26.png]] | ||
|valign="top"|'' | |valign="top"| | ||
Po wykonaniu wszystkich czynności można wpisać wartość temperatury w stopniach Celsjusza i odczytać wynik w stopniach Fahrenheita. Przed przystąpieniem do stworzenia funkcji (subVI) z bieżącej aplikacji dobrze jest zmienić jej ikonę z postaci domyślnej. Można to uczynić klikając prawym klawiszem myszy na polu ikony w oknie panelu lub diagramu i z menu wybierając '''Edit Icon....''' | |||
|} | |} | ||
Linia 196: | Linia 200: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="450px"|[[Grafika:LW1_M1_Slajd27.png]] | |valign="top" width="450px"|[[Grafika:LW1_M1_Slajd27.png]] | ||
|valign="top"|'' | |valign="top"| | ||
Aby z aplikacji utworzyć funkcję (subVI) należy przejść do okna płyty czołowej programu. Tam klikając prawym klawiszem na nowo utworzonej ikonie z menu wybrać trzeba pozycję '''Show connector'''. Teraz za pomocą myszy należy przyporządkować elementowi wejściowemu i wyjściowemu odpowiednie pola na „konektorze” zgodnie ze slajdem. Jeżeli zaszła by potrzeba modyfikacji „konektora”, to można jej dokonać poprzez dostępne w menu kontekstowym pozycje. Po wykonaniu powyższych czynności należy program zapisać. Użyta nazwa będzie jednocześnie nazwą nowopowstałego subVI’a. | |||
|} | |} | ||
Linia 202: | Linia 207: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="450px"|[[Grafika:LW1_M1_Slajd28.png]] | |valign="top" width="450px"|[[Grafika:LW1_M1_Slajd28.png]] | ||
|valign="top"| | |valign="top"| | ||
Można już przystąpić do stworzenia aplikacji, w której wykorzystany zostanie zbudowany wcześniej subVI. Płyta czołowa aplikacji może wyglądać podobnie to tej ze slajdu. | |||
|} | |} | ||
Linia 208: | Linia 214: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="450px"|[[Grafika:LW1_M1_Slajd29.png]] | |valign="top" width="450px"|[[Grafika:LW1_M1_Slajd29.png]] | ||
|valign="top"|'' | |valign="top"| | ||
Diagram programu powinien być zgodny z tym przedstawionym na slajdzie. Nowym elementem jest funkcja wyboru '''Select''' dostępna w oknie '''Functions -> All functions -> Comparision'''. Funkcja ta na swoje wyjście przesyła dane z wejścia TRUE bądź FALSE w zależności os stany wejścia sterującego ?. Podłączenie tego wejścia do przełącznika logicznego symbolizowane jest kolorem zielonym, przydzielonym w LabVIEW właśnie dla zmiennych logicznych. Aby umieścić stworzoną uprzednio funkcję konwersji temperatury należy wybrać z menu '''Functions -> All functions -> Select a VI''', odszukać w drzewie katalogów zapisany plik funkcji i zatwierdzić wybór. Dalej można funkcję tę wykorzystywać jak każdą inną, wbudowaną funkcję LabVIEW. | |||
|} | |} | ||
Linia 214: | Linia 221: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="450px"|[[Grafika:LW1_M1_Slajd30.png]] | |valign="top" width="450px"|[[Grafika:LW1_M1_Slajd30.png]] | ||
|valign="top"|'' | |valign="top"| | ||
W programie zamieniono „źródło danych”. W miejsce pola, do którego wprowadzane były wartości wejściowe wstawiony został symulator generatora sygnałów. Dostępny jest on poprzez okno '''Functions -> Input ->Simulate Signal'''. W oknie konfiguracyjnym finkcji typu Express VI warto jest zmienić wartość amplitudy i składowej stałej tak aby odwzorować zakres temperatur np.: od 0 do 100 oC. Typ przebiegu jest dowolny. Funkcja '''Simulate Signal''' jak i inne funkcje typu ExpressVI zwraca na wyjściu dane w postaci typu dynamicznego. Aby umożliwić działanie funkcji konwertującej oC do oF należy dokonać konwersji do wielkości skalarnej typu zmiennoprzecinkowego (zmiennej tego typu oczekuje napisana wcześniej funkcja). Operacji tej dokonać można za pomocą funkcji From DDT dostępnej w menu '''Functions -> Signal Manipulation'''. W oknie konfiguracyjnym tej funkcji należy wybrać odpowiednią postać danych po konwersji ('''Single scalar'''). | |||
|}] | |}] | ||
Linia 220: | Linia 228: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="450px"|[[Grafika:LW1_M1_Slajd31.png]] | |valign="top" width="450px"|[[Grafika:LW1_M1_Slajd31.png]] | ||
|valign="top"| | |valign="top"| | ||
Kolejną modyfikacją jest dodanie do aplikacji ekranu oscyloskopowego, którego zadaniem jest prezentacja graficzna „historii” pomiarów. Ekran wykorzystany w bieżącej wersji aplikacji dostępny jest z okna Controls -> Graph Inds -> Chart. | |||
|} | |} | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="450px"|[[Grafika:LW1_M1_Slajd32.png]] | |valign="top" width="450px"|[[Grafika:LW1_M1_Slajd32.png]] | ||
|valign="top"| | |valign="top"| | ||
|} | |} | ||
Linia 232: | Linia 240: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="450px"|[[Grafika:LW1_M1_Slajd33.png]] | |valign="top" width="450px"|[[Grafika:LW1_M1_Slajd33.png]] | ||
|valign="top"|'' | |valign="top"| | ||
Aby program wykonywał się w sposób ciągły a kolejne iteracje wykonywane były w ściśle określonych chwilach czasowych, należy dokonać kolejnych modyfikacji. | |||
Pierwszą z nich jest objęcie całego dotychczasowego kodu programu pętlą '''while'''. Stosowanie pętli w LabVIEW sprowadza się do objęcia jej zasięgiem (reprezentowanym przez graficzny symbol) obszaru kodu, który ma się wykonywać w tej pętli. Pętle i inne struktury dostępne są w oknie '''Functions ->All functions -> Structures'''. Tam też znajduje się pęlta '''while'''. Aby ją umieścić na ekranie należy przesunąć wskaźnik myszy w miejsce przyszłego narożnika pętli i trzymając wciśnięty lewy klawisz myszy objąć jej obszarem wybrane funkcje. Wraz z symbolem obramowania pętli na ekranie w dolnych jej narożnikach pojawiły się dwa symbole. Lewy to zmienna przechowująca numer iteracji. Prawy terminal służy do zakończenia działania pętli. Do niego podłącza się sygnał logiczny niosący informację o tym czy należy zakończyć pętlę. W bieżącym programie będzie to po prostu przycisk, wybrany poprzez pozycję Create Control n menu kontekstowego tego terminala. | |||
Drugą modyfikację stanowi funkcja timera wprowadzająca raster czasowy wykonywania kolejnych iteracji. Funkcja ta nazywa się '''Wait until Next ms Multiple''' i dostępna z okna '''Functions -> All Functions -> Time & Dialog'''. | |||
Rozbudowany program pozwala na ciągłe wykonywanie symulacji pomiarów temperatury w określonych interwałach czasowych. | |||
|} | |} | ||
Linia 238: | Linia 251: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="450px"|[[Grafika:LW1_M1_Slajd34.png]] | |valign="top" width="450px"|[[Grafika:LW1_M1_Slajd34.png]] | ||
|valign="top"|'' | |valign="top"| | ||
Przykład programu przedstawionego na slajdzie ilustruje wyświetlanie wielu wykresów na jednym ekranie oscyloskopowym. Wykorzystano tu funkcję '''Merge Signals (Functions - > Signal Manipulation)'''. Ten sam efekt (wstawienia ww funkcji) można uzyskać poprzez podłączenie do już istniejącej ścieżki danych dynamicznych kolejnego źródła danych dynamicznych. | |||
|} | |} | ||
Linia 244: | Linia 258: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="450px"|[[Grafika:LW1_M1_Slajd35.png]] | |valign="top" width="450px"|[[Grafika:LW1_M1_Slajd35.png]] | ||
|valign="top"|'' | |valign="top"| | ||
Na slajdzie przedstawiono elementarny program wykorzystujący pętlę '''for'''. Charakterystyczna dla tej pętli jest ikona w lewym górnym rogu (symbol litery '''N'''). Jest to zmienna do której należy wpisać liczbę iteracji, które pętla ma wykonać. W przykładowym programie jest ich 10. Wewnątrz pętli generator liczb losowych (dostępny w oknie '''Functions -> All Functions -> Numeric''') zwraca w każdej z iteracji jedną wartość. Wynik, po zakończeniu działania pętli przesyłany jest osobno do dwóch pól odczytowych: jednego dla wielkości skalarnych i drugiego dla tablic. Należy zauważyć, że miejsca opuszczenia obszaru pętli (kółko czerwone i niebieskie) są oznaczone w inny sposób. Oznaczony czerwonym kółkiem symbol przekazywania danych poza pętlę '''for''' polega na tym, że z kolejnych wartości wyjściowych tworzony jest wektor danych o rozmiarze równym liczbie iteracji. Jest to tryb pracy z włączonym indeksowaniem. Powstały wektor jest przesyłany do wyświetlacza. | |||
Sposób przekazywania danych oznaczony niebieskim kółkiem, dotyczy trybu pracy z włączonym indeksowaniem. Kolejne dane wyjściowe nie tworzą wektora. Na wyjściu po zakończeniu działania pętli pojawia się wynik działania ostatniej iteracji. Można to zweryfikować porównując zawartość pola odczytowego '''Numeric''' z ostatnim polem wyświetlacza tablicowego. | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="450px"|[[Grafika:LW1_M1_Slajd36.png]] | |valign="top" width="450px"|[[Grafika:LW1_M1_Slajd36.png]] | ||
|valign="top"| | |valign="top"| | ||
Przestawiony tu program jest analogiczny do poprzedniego, z tą różnicą, iż dotyczy przypadku tablicy dwuwymiarowej na uwagę zasługuje sposób rozróżniania poprzez grubość linii rozmiarów danych: wielkości skalarnych - linia cienka , tablice jednowymiarowe (linia gruba) i dwuwymiarowe (linia podwójna). | |||
|} | |} | ||
Linia 255: | Linia 273: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="450px"|[[Grafika:LW1_M1_Slajd37.png]] | |valign="top" width="450px"|[[Grafika:LW1_M1_Slajd37.png]] | ||
|valign="top"| | |valign="top"| | ||
Na zakończenie zestawiono przykładowe źródła szczegółowych informacji dotyczących LabVIEW. | |||
|} | |} |
Wersja z 22:59, 23 sie 2006
wersja beta 02
Ćwiczenie 1 - Środowisko programistyczne LabVIEW
![]() |
![]() |
![]() |
![]() |
Dostęp do dokumentacji w formie popularnych plików „pdf” uzyskać można poprzez wybór z menu Help -> Search the LabVIEW Bookshelf... |
![]() |
Środowisko LabVIEW oferuje obszerny zestaw przykładów dostępny w postaci uporządkowanej tematycznie biblioteki. Jest ona dostępna z menu Help -> Find Examples... |
![]() |
W dalszej części omówiona zostanie prosta aplikacja wyznaczająca sumę i różnicę dwóch wielkości wejściowych. |
![]() |
![]() |
Można już przystąpić do stworzenia aplikacji, w której wykorzystany zostanie zbudowany wcześniej subVI. Płyta czołowa aplikacji może wyglądać podobnie to tej ze slajdu. |
]
![]() |
![]() |
Na zakończenie zestawiono przykładowe źródła szczegółowych informacji dotyczących LabVIEW. |