INSTRUKCJE POMOCNICZNE DO LABORATORIUM Z PRZEDMIOTU CYFROWE SYSTEMY POMIAROWE

Podobne dokumenty
MATERIAŁY POMOCNICZE DO ZAJĘĆ LABORATORYJNYCH ŚRODOWISKO LABVIEW. ELEMENTY JĘZYKA PROGRAMOWANIA GRAFICZNEGO

Gromadzenie danych. Przybliżony czas ćwiczenia. Wstęp. Przegląd ćwiczenia. Poniższe ćwiczenie ukończysz w czasie 15 minut.

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

INSTRUKCJE POMOCNICZNE DO LABORATORIUM Z PRZEDMIOTU SYSTEMY CYFROWE 3

Podstawy budowy wirtualnych przyrządów pomiarowych

Wirtualne przyrządy pomiarowe

Wirtualne przyrządy kontrolno-pomiarowe

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

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium przyrządów wirtualnych. Ćwiczenie 3

Reprezentacja zmiennych numerycznych

Program ćwiczenia: SYSTEMY POMIAROWE WIELKOŚCI FIZYCZNYCH - LABORATORIUM

III. Przebieg ćwiczenia. 1. Generowanie i wizualizacja przebiegów oraz wyznaczanie ich podstawowych parametrów

Laboratorium Komputerowe Systemy Pomiarowe

Robert Barański, AGH, KMIW For Loops While Loops v1.0

Arkusz kalkulacyjny EXCEL

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Podstawy użytkowania programu LabView

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa TECHNIKI REGULACJI AUTOMATYCZNEJ

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

Temat: Organizacja skoroszytów i arkuszy

Programowanie w języku G - Laboratorium 7

Lab. 3 Typy danych w LabView, zapis do pliku

1. Opis okna podstawowego programu TPrezenter.

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Tworzenie i zapis plików w VI

Parametryzacja przetworników analogowocyfrowych

Programowanie w języku G - Laboratorium 12

LabVIEW PLATFORMA EDUKACYJNA Lekcja 1 Pierwsze kroki w środowisku LabVIEW

Politechnika Wrocławska, Katedra Inżynierii Biomedycznej Systemy Pomiarowo-Diagnostyczne, laboratorium

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Laboratorium Komputerowe Systemy Pomiarowe

Lab. 3 Tablice, struktura warunkowa

Przed rozpoczęciem pracy otwórz nowy plik (Ctrl +N) wykorzystując szablon acadiso.dwt

BADANIE ELEMENTÓW RLC

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

4.Arkusz kalkulacyjny Calc

Ćw. 2. Wprowadzenie do graficznego programowania przyrządów pomiarowych

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

Multimetr cyfrowy MAS-345. Instrukcja instalacji i obsługi oprogramowania DMM VIEW Ver 2.0

Dell UltraSharp UP3017 Dell Display Manager Instrukcja użytkownika

5.2. Pierwsze kroki z bazami danych

Prezentacja multimedialna MS PowerPoint 2010 (podstawy)

1. Przypisy, indeks i spisy.

Prezentacja multimedialna MS PowerPoint 2010 (podstawy)

Sprzęt i architektura komputerów

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7

Arkusz kalkulacyjny MS Excel 2010 PL.


Laboratorium Komputerowe Systemy Pomiarowe

Co to jest arkusz kalkulacyjny?

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

Jak rozpocząć pracę? Mapa

Schemat blokowy karty

1. Wprowadzenie. 1.1 Uruchamianie AutoCAD-a Ustawienia wprowadzające. Auto CAD Aby uruchomić AutoCada 14 kliknij ikonę

ZROZUMIENIE MODUŁOWOŚCI (Understanding Modularity)

Ćw. 0: Wprowadzenie do programu MultiSIM

MS Word Długi dokument. Praca z długim dokumentem. Kinga Sorkowska

Podstawy technologii cyfrowej i komputerów

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows XP

Dodawanie grafiki i obiektów

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych

Akademia ETI. Instrukcja laboratoryjna Wirtualne laboratorium elektroniczne

ActionFX oprogramowanie do sterowania efektami platform i kin 7D V1.0.1

Lab. 2 Tablice, struktura warunkowa

5.4. Tworzymy formularze

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3

Wprowadzenie do formuł i funkcji

Wprowadzenie do programu MultiSIM

Tworzenie prezentacji w MS PowerPoint

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

Modelowanie układów sekwencyjnych w LabView - ćwiczenie 8

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3

Instrukcja obsługi programu Do-Exp

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

Celem ćwiczenia jest zapoznanie się z podstawowymi funkcjami i pojęciami związanymi ze środowiskiem AutoCAD 2012 w polskiej wersji językowej.

LABORATORIUM SYSTEMÓW POMIAROWYCH KTP IR PW MATERIAŁY POMOCNICZE DO ĆWICZENIA 1 SYMULATOR SYSTEMU POMIAROWEGO W STANDARDZIE IEC-625.

Zadanie 8. Dołączanie obiektów

VI od podstaw. Przybliżony czas ćwiczenia. Wstęp. Przegląd ćwiczenia. Poniższe ćwiczenie ukończysz w czasie 30 minut.

Budowa i oprogramowanie komputerowych systemów sterowania. Wykład 2. Labview

Opis programu Konwersja MPF Spis treści

OPIS PROGRAMU USTAWIANIA NADAJNIKA TA105

1. SFC W PAKIECIE ISAGRAF 2. EDYCJA PROGRAMU W JĘZYKU SFC. ISaGRAF WERSJE 3.4 LUB 3.5 1

TWORZENIE SCHEMATÓW BLOKOWYCH I ELEKTRYCZNYCH

Skróty klawiaturowe w systemie Windows 10

TM PROGRAM TERMINALA RS232 DLA MULTIPLEKSERA 8XRS232 / ETHERNET 10BASE-T

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

POMIARY WIDEO W PROGRAMIE COACH 5

Lab. 3 Typy danych w LabView, zapis do pliku

Robert Barański, AGH, KMIW Arrays and Clusters v1.0. Poniższy poradnik wprowadza do tworzenia oraz obsługi tablic i typów danych klastra.

Programowanie w języku Python. Grażyna Koba

1. Opis. 2. Wymagania sprzętowe:

MultiBoot Instrukcja obsługi

Programowanie w języku G - Laboratorium 6

Ustawienia ogólne. Ustawienia okólne są dostępne w panelu głównym programu System Sensor, po kliknięciu ikony

LabVIEW w połączeniu z urządzeniami rejestrującymi obraz, ruch, może zostać użyty równie funkcjonalnie jak przyrządy GPIB, PXI, RS232 i RS485.

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Podstawy Programowania C++

Transkrypt:

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki INSTRUKCJE POMOCNICZNE DO LABORATORIUM Z PRZEDMIOTU CYFROWE SYSTEMY POMIAROWE s.vi EiT Opracował: dr inż. Andrzej Sobolewski Białystok, jesień 2011

Spis treści INFORMACJE OGÓLNE... 4 SPIS ZADAŃ DO WYKONANIA... 5 SPIS ZADAŃ DODADKOWYCH... 6 ĆW. 1. ŚRODOWISKO LABVIEW. ELEMENTY JĘZYKA PROGRAMOWANIA GRAFICZNEGO... 8 1.1. LABVIEW JAKO ŚRODOWISKO PROGRAMOWE... 9 1.2. ELEMENTY JĘZYKA PROGRAMOWANIA GRAFICZNEGO G... 14 1.3. WYKONANIE ĆWICZENIA... 19 DODATEK... 30 ĆW. 2. ŚRODOWISKO LABVIEW. PROCES WIZUALIZACJI I AKWIZYCJI DANYCH.... 33 2.1. WPROWADZENIE... 34 2.2. GRAFIKA W LABVIEW... 34 2.3. ODMIERZANIE CZASU... 35 2.4. OPERACJE DYSKOWE... 36 2.5. OPERACJE ŁAŃCUCHOWE... 37 2.6. WYKONANIE ĆWICZENIA... 38 ĆW. 3. REALIZACJA PRZYRZĄDU WIRTUALNEGO PRZY POMOCY KARTY POMIAROWEJ ADVANTECH PCI 1711... 45 3.1. WPROWADZENIE... 46 3.2. ZAWARTOŚĆ ZESTAWU LABORATORYJNEGO... 46 3.3. OPIS ĆWICZENIA... 48 3.4. WYKONANIE ĆWICZENIA... 48 3.5. SPRAWOZDANIE POWINNO ZAWIERAĆ... 52 3.6. DODATEK... 53 ĆW. 4. BIBLIOTEKA NI-DAQMX I URZĄDZENIE AKWIZYCJI DANYCH NI- USB-6008... 55 4.1. ZAWARTOŚĆ ZESTAWU LABORATORYJNEGO... 56 4.2. OPIS ĆWICZENIA... 58 4.3. WYKONANIE ĆWICZENIA... 58 4.4. SPRAWOZDANIE POWINNO ZAWIERAĆ... 61 4.5. DODATEK... 62 ĆW. 5. WIRTUALNY MIERNIK IMPEDANCJI... 65 5.1. WPROWADZENIE... 66

5.2. ZAWARTOŚĆ ZESTAWU LABORATORYJNEGO... 66 5.3. WYKONANIE ĆWICZENIA... 66 5.4. SPRAWOZDANIE POWINNO ZAWIERAĆ... 72 5.5. DODATEK... 73 ĆW. 6. SZEREGOWA TRANSMISJA DANYCH.... 77 6.1. WPROWADZENIE... 78 6.2. ZAWARTOŚĆ ZESTAWU LABORATORYJNEGO... 78 6.3. SPRAWOZDANIE POWINNO ZAWIERAĆ... 78 6.4. WYKONANIE ĆWICZENIA... 78 DODATEK DO ĆW. 6... 87 ĆW. 7. INTERFEJS RS232 HAMEG HO79-5. WSPÓŁPRACA Z OSCYLOSKOPEM... 91 7.1. WPROWADZENIE... 92 7.2. ZAWARTOŚĆ ZESTAWU LABORATORYJNEGO... 92 7.3. WYKONANIE ĆWICZENIA... 92 7.4. DODATEK... 97 ĆW. 8. ZDEJMOWANIE CHARAKTERYSTYK CZĘSTOTLIWOŚCIOWYCH - INTERFEJS GPIB HAMEG HO89... 103 8.1. WPROWADZENIE... 104 8.2. ZAWARTOŚĆ ZESTAWU LABORATORYJNEGO... 104 8.4. WYKONANIE ĆWICZENIA... 105 8.5. DODATEK... 109 WYKAZ LITERATURY... 115

INFORMACJE OGÓLNE Ćwiczenia z Laboratorium CYFROWE SYSTEMY POMIAROWE są realizowane w wymiarze 30 godzin i wykonywane są w czterech zespołach dwu lub trzy osobowych. Każde ćwiczenie powinno być poprzedzone zapoznaniem się z instrukcjami pomocniczymi, tak aby wiedzieć jakie zadania należy wykonywać i jaki zakres materiału obowiązuje w danym ćwiczeniu. Laboratorium wyposażone jest w komputery, które posiadają karty pomiarowokontrolne, jak również środowisko programistyczne LabView ver 2010 firmy National Instruments i Matlab ver. 2007 firmy MathWorks. Oprócz tego ćwiczenia będą realizowane z wykorzystaniem urządzeń takich jak generatory, zasilacze, oscyloskopy, multimetry, karty akwizycji danych oraz modele układów dynamicznych MAO. W każdym ćwiczeniu studenci będą mieli do wykonania zadania obowiązkowe a sposoby ich rozwiązania powinny znaleźć się w sprawozdaniu z ćwiczenia. Ponadto, programy pisane w środowisku LabView powinny być również rejestrowane na nośnikach danych (płyty CD/DVD, dyskietki), które będą stanowiły załączniki do sprawozdań. W sprawozdaniu powinny więc znaleźć się również odnośniki do załączników jak również opisy działania programów. Zadania są numerowane, znaczącym więc ułatwieniem będzie zawieranie numeru zadania w nazwie programów. Oprócz zadań obowiązkowych w instrukcjach zamieszczono również zadania dodatkowe. Ich rozwiązywanie będzie miało istotny wpływ na końcową ocenę z laboratorium. Sprawozdanie z ćwiczenia powinno zawierać: Opisy i temat ćwiczenia, Treści zadania, Schemat blokowy przyrządu, zrzut z ekranu interfejsu użytkownika, zrzuty z ekranu zarejestrowanych przebiegów i/lub wyników, Opisy działania programów (instrukcja użytkownika ), Komentarze w przypadku badań urządzeń, charakterystyk lub zjawisk, Programy na dyskietkach. Bardzo dobrą praktyką jest wcześniejsze przygotowanie programów (choćby tylko fragmentów) w domu. W ten sposób można znacznie przyspieszyć proces wykonywania zadań, zwłaszcza w tych sytuacjach, gdy podobne zadania wykonywano już wcześniej. Takie postępowanie da szansę na rozwiązywanie zadań dodatkowych w czasie zajęć laboratoryjnych. Przewidziane są również dwa zajęcia na dokonanie poprawek, odróbek, bądź zadań dodatkowych. Pierwszy termin odbędzie się w połowie semestru, a drugi na jego końcu. Ostatnie zajęcia przewidziane są na rozliczenie się ze sprawozdań, przedstawienie rozwiązanych zadań i końcową ocenę.

SPIS ZADAŃ DO WYKONANIA ZADANIE 1. Budowa wirtualnego instrumentu VI (Virtual Instrument)... 19 ZADANIE 2. Konstrukcja sterująca Sequence... 23 ZADANIE 3. Konstrukcja sterująca Case... 24 ZADANIE 4. Konstrukcja Formula Node... 26 ZADANIE 5. Tworzenie i użycie podprogramów VI... 27 ZADANIE 6. Napisz program do wykreślania na wspólnym wykresie przebiegu zmiennej losowej i średniej ruchomej (trzy ostatnie wartości zmiennej) jej przebiegu w czasie dyskretnym. Wykres powinien być tworzony w trybie nadążnym dla dowolnie zdefiniowanej liczebności próby. Przykład diagramu do tego zadania zawiera Rys. 2.5 a pulpitu Rys. 2.6... 38 ZADANIE 7. Napisz program prezentujący na wykresie XY krzywe Lissajous jakie będą tworzyć sygnały okresowe o różnych częstotliwościach i fazach... 40 ZADANIE 8. Napisz program, w którym wykorzystasz pętlę While do zapisu danych i czasu ich wygenerowania do pliku. Przykład diagramu zawiera Rys. 2.8... 41 ZADANIE 9. Należy zbudować wirtualny przyrząd pomiarowy realizujący zadanie pomiaru napięcia i rejestracji przebiegów czasowych wykorzystując Advatech LabView Driver odczytujący dane mierzone za pomocą PCI 1711. Mierzone napięcia mają być generowane przez generatory funkcyjne sinus. Sprawdź z jaką częstotliwością można próbkować sygnał..48 ZADANIE 10. W układzie z Rys. 3.3 zbadaj średni czas wykonania jednej iteracji mierząc 10-cio [Hz] sygnał sinusoidalny w ciągu jednej sekundy. Sprawdź jakość mierzonego sygnału i poziom średniej czasu iteracji wraz z jego wartościami chwilowymi (waveform Chart) w sytuacji gdy w tle uruchomianona jest inna aplikacja (np. odtwarzany plik mpg4, klawisz PrintScrean, skaner antywirusowy)... 50 ZADANIE 11. Zaprogramuj wykreślenie wyników pomiarów z poprzedniego zadania na wykresie XYGraph, gdzie na oś x należy podać zindeksowany wektor czasu zarejestrowania każdej próbki a na oś y zindeksowany wektor wartości każdej próbki (Rys. 3.5). Kliknięcie na tunelu danych prawym klawiszem myszy otworzy podręczne Menu z opcją włączenia indeksacji). Indeksacja umożliwi dostęp do wszystkich zarejestrowanych danych. Brak indeksacji zapewni dostęp tylko do ostatniej pary czasu i wartości danych z serii pomiarowej.... 50 ZADANIE 12. Dokonaj pomiaru 100 próbek sygnału gaussowskiego (lub sygnału z wyjścia Filtra 1 pobudzonego sygnałem PRBS) i wyznacz jego statystyczne parametry w postaci wartości średniej, min, max, odchylenia standardowego, oraz histogramu. Bloki do analizy statystycznej znajdziesz w lokalizacji Functions>>Express>>Signal Analysis. Należy je podłączyć do zindeksowanych wektorów danych.... 51 ZADANIE 13. Zaprogramuj aplikację za pomocą której można będzie dokonać pomiarów napięcia generatora oraz prądu i napięcia kondensatora w układzie z Rys. 4.5. Zdjęte charakterystyki powinny być widoczne w oknie graficznym... 58 ZADANIE 14. Zastosuj NI-USB 6008 do pomiaru napięć i prądu w układzie szeregowym RLC.... 61 ZADANIE 15. Dokonaj pomiaru metodą techniczną rezystancji, indukcyjności i pojemności, używając do tego celu generatora napięcia sinusoidalnego i karty pomiarowej NI-USB6008.... 66 ZADANIE 16. Zbadaj wpływ częstotliwości napięcia zasilającego i rezystacji wzorcowej na wynik pomiarów R,L,C.... 72 ZADANIE 17. Dokonaj pomiaru wielkości rezystancji i/lub pojemności multimetrem Metex i odczytaj dane udostępnione przez niego w programowym środowisku LV... 78

ZADANIE 18. Dokonaj akwizycji danych z Anemometru Cyfrowego AM-4203. Wirtualne narzędzie powinno posiadać:... 81 ZADANIE 19. Zbuduj aplikację w LV pozwalającą na przesył grafiki z oscyloskopu HM305, za pomocą RS232 do komputera i wyświetlenie jej na ekranie monitora. Za pomocą tej aplikacji dokonaj pomiaru częstotliwości za pomocą oscyloskopu. Okład pomiarowy zawiera Rys. 7.1. Na podstawie figur Lissajous zmierzyć kilka częstotliwości f x porównując je z częstotliwościami f w generatora wzorcowego.... 92 ZADANIE 20. Zaprogramuj zdalne sterowanie generatorem za pomocą GPIB tak by co 100ms zmieniała się częstotliwość przebiegu sinus od 0.1Hz co 0.1Hz do 25Hz... 106 ZADANIE 21. Zbadaj charakterystykę Z=f(f) i znajdź częstotliwość rezonansową (dla której prąd i przyjmuje wartość najmniejszą, co odpowiada największej wartości zastępczej impedancji układu równoległego LC) dla równolegle połączonych cewki i kondensatora. wykorzystując do tego celu generator funkcyjny HM8130... 107 SPIS ZADAŃ DODADKOWYCH ZADANIE S.1. Napisz program losujący 6 liczb z 49. Program powinien być realizowany przez VI zaprogramowany przez użytkownika a wynik powinien być widoczny w tablicy o jednym wierszu i sześciu wyrazach... 29 ZADANIE S.2. Zbadaj możliwość prezentacji wyników w formie graficznej... 43 ZADANIE S.3. Dokonać pomiaru przebiegów okresowych, generowanych przez generatory sin z i bez zachowania zaleceń wynikających z Twierdzenia Kotielnikowa-Shannona. Należy zarejestrować zjawisko nakładania się widm oraz błędnego odczytu częstotliwości spowodowanej niewłaściwym doborem okresu próbkowania.... 51 ZADANIE S.4. Napisz program do akwizycji danych z multimetru BRYMEN BM202 poprzez RS232. 84 ZADANIE S.5. Należy zbadać za pomocą oscyloskopu Hameg HM305 charakterystyki układu prostowniczego jednopołówkowego z filtrem pojemnościowy... 95 ZADANIE S.6. Zdejmij charakterystykę częstotliwościową Bode amplitudy L[dB]=f(ω[rad/sek]) członów całkującego o stałej czasowej 0.05 (rezystor R=33Ohm w szeregu z kondensatorem 1500uF)... 108

CZĘŚĆ A

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆW. 1. ŚRODOWISKO LABVIEW. ELEMENTY JĘZYKA PROGRAMOWANIA GRAFICZNEGO Opracował: dr inż. Andrzej Sobolewski Białystok, jesień 2011

1.1. LABVIEW JAKO ŚRODOWISKO PROGRAMOWE Pakiet LabView jest ukierunkowany na programowanie systemów kontrolnoprogramowych w których wykorzystuje się akwizycję danych. Istotą działania programu jest używanie graficznego języka programowania algorytmów komunikacji i wymianie danych pomiędzy urządzeniami wchodzącym w skład systemu kontrolno- pomiarowego. Bardzo często program LabView jest nazywany przyrządem wirtualnym ( virtual instrument) lub krótko programem VI. Wynika to z zastosowania aplikacji napisanych w tym środowisku do pełnienia funkcji rzeczywistych przyrządów pomiarowych takich jak multimetry czy oscyloskopy i wiele innych. Każdy wirtualny instrument VI zawiera takie same elementy jak rzeczywiste urządzenie z ta różnicą, że operowanie nimi dokonywane jest za pomocą myszy i klawiatury komputera, na którym jest on uruchomiony. Po zgromadzeniu danych można, korzystając z biblioteki wirtualnych przyrządów pomiarowych, przetworzyć wyniki pomiarów za pomocą różnorodnych procedur np. cyfrowej analizy danych, filtracji cyfrowej, statystyki i analizy numerycznej, itd. Można również sterować oprogramowaniem i prezentacją wyników pomiaru poprzez interaktywny panel przyrządu pomiarowego. LabView jest w pełni zintegrowany do komunikacji z fizycznymi narzędziami pomiarowymi poprzez oprogramowanie interfejsów takich jak GPIB, VXI, PXI, RS 485, RS232 tworzący ten sposób Cyfrowy System Pomiarowy. LabView przystosowany jest również do połączenia z internetem za pomocą LabView web server i standardów programowych takich jak TCP/IP i ActiveX. LabView zawiera podstawowe biblioteki do akwizycji, analizy i prezentacji danych. Pozwala również analizować i śledzić poprawność wykonywanego programu tak jak to jest w językach programowania tekstowego.

Opis środowiska LabView LabView składa się z dwóch komponentów: Pulpitu (front panel), stanowi on graficzny interfejs użytkownika i znajdują się na nim wszelkie wirtualne narzędzia do komunikacji programu ze światem zewnętrznym Rys. 1.1 Wygląd pustego projektu panelu frontowego Diagramu (block diagram), stanowi edytor programu i zawiera strategię działania aplikacji zaprogramowaną w języku graficznym G. Rys. 1.2 Podział rodzajów ikon ze względu na funkcje programowe Działanie programu możliwe jest dzięki wykorzystywaniu:

Terminali (terminals) są one portami wejściowymi i wyjściowymi przesyłającymi informacje pomiędzy pulpitem i diagramem. Dane wprowadzone do elementów kontrolnych pulpitu wpływają do diagramu przez końcówki wejściowe (kontrolne). Dane wpływające do końcówek wyjściowych (wskaźnikowych) opuszczają diagram i przechodzą do odpowiednich elementów prezentacyjnych pulpitu. Końcówka jest generowana automatycznie w diagramie w momencie postawienia elementu kontrolnego lub prezentacyjnego na pulpicie. Reprezentuje ona port do określonego elementu pulpitu oraz typ danych wchodzących lub wychodzących, np. DBL -double. Węzłów (nodes) są obiektami wyposażonymi w wejścia i wyjścia danych realizującymi określone operacje podczas działania programu. W języku graficznym pełnią podobne role jak wyrażenia, operatory, funkcje i procedury w językach tekstowych. Przewodów (wires) służą do budowania połączeń (dróg przepływu danych) pomiędzy elementami diagramu. Każde połączenie może mieć tylko jedno źródło danych lecz może być rozgałęzione do wielu punktów odbioru danych. W zależności od typu przesyłanych danych połączenia są wyróżniane kolorami, stylem linii łączącej oraz jej grubością. Złe połączenia są zaznaczane czarną linią przerywaną. Konstrukcji sterujących (structures) języka graficznego zapewniają specyficzny sposób wykonania fragmentów kodu. Pozwalają realizować powtarzanie bloków kodu (pętle), warunkowy wybór wykonania bloków kodu (case) lub określić sekwencję wykonania bloków kodu.

W każdym z dwóch paneli programu dostępne są dwie palety narzędzi do wykorzystywania podczas tworzenia aplikacji, dostępne z Menu głównego Window. Palety Pulpitu: Rys. 1.3 Okno Tools i Controls dostępne w panelu frontowym Palety Diagramu:

Rys. 1.4 Okno Tools i Functions dostępne w panelu diagramu W paletach tych znajdują się narzędzia (podprogramy, tzw. SubVi) łatwe do wykorzystania w postaci Ikon. Ikona jest więc czymś w rodzaju procedury w tekstowych językach programowania. Strumień przepływu danych LabView działa na zasadzie przekazywania danych z jednego węzła diagramu do drugiego. Kolejność działania poszczególnych elementów programu jest więc zależna od

ukierunkowania strumienia przepływu danych. Węzeł bloku diagramu wykona przypisaną mu operację kiedy wszystkie jego wejścia będą skompletowane i dostępne. Wówczas dane wejściowe zostają przetworzone i przekazane jako dane wyjściowe do następnego węzła. W programie laboratorium, pierwsze zadanie, poświęcone będzie zaobserwowaniu tego właśnie zjawiska. 1.2. ELEMENTY JĘZYKA PROGRAMOWANIA GRAFICZNEGO G Instrukcje sterujące Podstawą programowania w języku G jest zrozumienie i opanowanie stosowanie konstrukcji sterujących, do których zaliczamy: konstrukcję sterującą Sequence, konstrukcja sterująca Case, konstrukcja Formula Node, pętla For Loop, pętla While Loop oraz operator Shift Register. Struktura Sequence: Konstrukcja Sequence odpowiada instrukcji grupującej {} w języku C. Służy ona do grupowania obiektów języka G co zwiększa przejrzystość programu i umożliwia wprowadzenie zależności czasowych pomiędzy fragmentami wykonywanego kodu. Struktura sekwencyjna składa się z jednej lub wielu ramek, które mogą zawierać kody programów wykonywanych etapowo w kolejności rosnącej zgodnie z numerem ramki sekwencji. Dane opuszczają strukturę w momencie kiedy ostatnia ramka kończy czynność. Wyjście danych poza strukturę odbywa się poprzez tunel, który może być podłączony tylko do jednego źródła informacji. Dane na wejściu tunelu są dostępne dla wszystkich ramek.

Rys. 1.5 Ramka (frame) struktury Sequence Tworzenie nowych ramek odbywa się poprzez wybranie z menu podręcznego dostępnego po kliknięciu prawym przyciskiem myszy, Add Frame After bądź Add Frame Before albo Duplikate Frame Do usunięcia wskazanej ramki służy opcja Remove Frame. Do przechodzenia danych pomiędzy jedną ramka a ramkami podsekwencyjnymi służą sekwencje lokalne. Aby Tworzyć lokalną sekwencję wybiera się Sequence Lokal>>Add. Pojawia się wówczas strzałki na krawędziach ramek, których kierunek będzie wskazywał na ramkę źródłową i ramki w sekwencjach lokalnych. Struktury wyboru Case Konstrukcja sterująca Case jest odpowiednikiem instrukcji wyboru if i switch w języku C. Konstrukcja ta umożliwia wykonanie odpowiedniego fragmentu kodu programu w zależności od wyników kodu programu wykonanego wcześniej. Konstrukcja sterująca Case umożliwia realizację jednej z wielu zdefiniowanej operacji. Każda zdefiniowana operacja znajduje się w osobnej ramce konstrukcji sterującej Case. Wybór aktywnej ramki dokonywany jest przez pole sektora. W przypadku, gdy do pola selektora dołączone jest wyrażenie logiczne istnieją dwie wartości FALSE i TRUE. Jeżeli do selektora jest podłączona wartość liczbowa, struktura może mieć od 0 do 32767 przypadków. Jeżeli do selektora podłączony jest element typu Numeric, to musi być jeden podschemat dla każdego elementu. Konstrukcja sterująca jest identyfikowana tak samo jak nazwa pozycji elementu typu Numeric.

Rys. 1.6 Ramka struktury Case Selektor można umieścić w dowolnym miejscu obramowania, może on również pozostać nie podłączony. Selektor automatycznie dostosowuje się do typu danych. Jeżeli zmieni się wartość połączenia do selektora z Numeric na boolean, przypadki 0 i 1 zmienia się na False i True. Pętle w LabView Realizowane są przez konstrukcje For Loop i While Loop wraz z operatorem Shift Register odpowiadają instrukcją iteracyjnym do.. while i for w języku C. Konstrukcje te służą do wielokrotnego wykonywania fragmentu kodu programu. Po zastosowaniu elementu Shift Register można je wykorzystać do obliczeń iteracyjnych. Pętla for W LabView pętla for pozwala na zdefiniowanie ilości iteracji prze podłączenie do N stałej o wartości całkowitej, oraz pozwala na odczyt z licznika iteracji przez podłączenie się do i.

Rys. 1.7 Przykład pętli For Pętla While Rys. 1.8 Przykład pętli While Podobnie jak w językach tekstowych pętla While posiada ;licznik iteracji i, który może być wykorzystywany do np. wyznaczenia warunku końca działania pętli jak również możliwość zdefiniowania warunku końca działania pętli. Pętla While wykonuje się

dopóki wartość logiczna elementu podłączonego do warunku końca pętli będzie miała wartość FALSE. Pętla sprawdzi wartość warunku po zakończeniu każdej iteracji. Rejestry przesuwne (Shift registers) Zarówno pętla for jak i While może być wyposażona w rejestry przesuwne (Rys. 1.8). Pojawiają się wówczas prostokąty na przeciwległych krawędziach ramek ze strzałkami w dół lub górę. Zwane rejestrami przesuwnymi., które używa się do przejścia danych z aktualnego warunku do następnej iteracji. Operatory rejestru przesuwnego, są to elementy przesyłu informacji, będące lokalnymi zmiennymi przechowującymi informacje z poprzednich iteracji. Historia danych sięga tak daleko ile elementów rejestru zostanie zdeklarowanych. Operator rejestru przesuwnego składa się z dwóch pól oznaczonych przez strzałki skierowane przeciwnie. Informacja wychodząca z rejestru przesuwnego, tzn. elementu ze strzałką w górę, doprowadzona jest do elementu ze strzałką skierowana w dół Formula Node(Formuła węzła) Rys. 1.9 Ramka Formula Node Bardzo ciekawym narzędziem jest formuła węzła. Pozwala ona na wpisanie zależności matematycznej pomiędzy danymi wejściowymi a wyjściowymi. Innymi słowy formuła ta wykonuje wyznaczania wartości funkcji jednej bądź wielu zmiennych. Określenie argumentów funkcji jak i jej wartości odbywa się za pomocą podręcznego Menu. Formula Node może więc służyć do wprowadzania wyrażeń znanych z języka C. W obrębie tego obiektu można stosować następujące operatory: arytmetyczne: + - znak plus, - - znak minus,

++ - inkrementacja, -- - dekrementacja, + - dodawanie, - - odejmowanie, * - mnożenie, / - dzielenie, % - reszta z dzielenia, ** - wykładnik potęgi (operator niedostępny w C), logiczne:! - negacja (NOT), && - koniunkcja argumentów (AND), - alternatywa argumentów (OR), bitowe: ~ - negacja zestawu bitów, & - koniunkcja zestawu bitów, ^ - różnica symetryczna zestawu bitów, - alternatywa zestawu bitów, >> - przesunięcie w prawo, << - przesunięcie w lewo, relacji: == - równy,!= - różny, < - mniejszy, > - większy, <= - mniejszy bądź równy, >= - większy bądź równy. Inne:?: - operator warunkowy. Dostępne są również funkcje wbudowane : abs, acos, acosh, asin, asinh, atan, atanh, ceil, cos, cosh, cot, csc, exp, expm1, floor, getexp, getman, int, intrz, ln, lnp1, log, log2, max, min, mod, rand, rem, sec, sign, sin, sinc, sinh, sqrt, tan, tanh. 1.3. WYKONANIE ĆWICZENIA. ZADANIE 1. Budowa wirtualnego instrumentu VI (Virtual Instrument) Pulpit 1. Otwórz nowy panel frontowy przez wybranie File>>New VI lub przez skróty klawiszów <Ctrl-n>. Jeśli zamknięto wcześniej wszystkie VI wybierz New VI z okna dialogowego LabView

2. Możesz mieć dostęp do standardowej palety Controls przez wciśnięcie prawego klawisza myszy na otwartym panelu frontowym. 3. Wybierz Thermometer z palety Controls>>Modern>>Numeric, I umieść go na panelu frontowym. 4. Wpisz deg C w okno tekstowe label i kliknij klawisz Enter na palecie Tools albo kliknij na dowolnym miejscu panelu frontowego aby zaakceptować wprowadzony tekst. Uwaga! Jeśli klikniesz poza obszarem okna tekstowego bez wprowadzenia tekstu, etykieta przyjmie nazwę domyślną Thermometer. Aby ponownie pojawiła się etykieta z tekstem, kliknij prawym przyciskiem myszy na kontrolce i zaznacz Visible Items»Label z podręcznego menu. 5. Kliknij prawym przyciskiem myszy na termometrze i zaznacz Change to Control z podręcznego menu. 6. Aby uczynić dokładniejszym sposób wyświetlania wartości temperatury zaznacz właściwość Digital Display visible. Aby tego dokonać kliknij prawym przyciskiem myszy na termometrze i zaznacz Visible Items»Digital Display z podręcznego menu. W tym momencie mamy termometr wyskalowany w stopniach Celcjusza. Teraz potrzebny nam będzie termometr wskazujący wartość temperatury w stopniach Fahrenheit. 7. Zaznacz inny termometr z palety Controls>>Modern>>Numeric i umieść go w dowolnym miejscu panelu frontowego. 8. Nazwij ten termometr deg F tak jak to zrobiłeś w kroku 3 i zaznacz Digital Display visible jak to zrobiłeś w kroku 5. Rys. 1.10 Panel frontowy konwertera

Ponieważ ten termometr będzie wyświetlał wartości temperatury w stopniach Fahrenheit, zmień skalę termometru tak aby odczytywał więcej niż 100 stopni. 9. Aby zmienić skalę na termometrze, użyj narzędzi z palety Tools Labeling lub Operating do edycji górnej wartości skali i wpisz 212, co w stopniach Fahrenheit odpowiada 100 stopniom Celcjusza. 10. Powinieneś uzyskać panel frontowy podobny do tego na rysunku poniżej: Diagram 1. Otwórz okno Diagram zaznaczając Window»Show Diagram, albo kliknięciem okna diagramu umiejscowionym poza panelem frontowym. Możliwe jest również użycie klawiszów skrótu <Ctrl-e> do przełączenia pomiędzy oknem diagramu a pulpitem Zauważ, że pojawiły się na oknie diagramu dwa bloki. Te obiekty są terminalami, które odnoszą się do termometrów na pulpicie. Aby przekonwertować temperaturę w stopniach Celcjusza do temperatury w stopniach Fahrenheit, przemnóż wartość w Celsjuszach przez 1.8 i dodaj 32. Użyj funkcji z palety Functions>> Programming>>Numeric do budowy diagramu, który dokona takiej konwersji. 2. Zaznacz Window»Show Functions Palette aby udostępnić paletę Functions. Możesz również uzyskać dostęp do palety Functions poprzez kliknięcie prawym klawiszem myszy na dowolnym miejscu okna diagramu. 3. Wybierz blok mnożenia Multiply z palety Functions>> Programming>>Numeric i umieść go na dowolnie wybranym miejscu okna diagramu po prawej stronie terminala termometru deg C. Uwaga! Kiedy przytrzymasz blok blisko terminala, LabView automatycznie połączy przewodami terminal z blokiem, kliknij przycisk myszy aby umieścić blok na oknie diagramu. Pamiętaj aby terminal termometru deg C był podłączony do bloku mnożenia. 4. (Opcjonalnie) Jeśli umieściłeś blok mnożenia bez podłączenia go przewodami do terminala deg C, należy go podłączyć poprzez wybranie narzędzia Wiring wykonując kolejne kroki jak następuje: a. Wybierz ikonę podłączenia Wiring z palety Tools. b. Kliknij terminal deg C aby podłączyć terminal. Nie jest konieczne przytrzymywanie klawisza myszy.

c. Przesuń mysz od terminala do bloku mnożenia i kliknij aby połączyć ze sobą te dwa elementy. 5. Należy przemnożyć stopnie Celcjusza termometru deg C przez 1.8. Kliknij prawym przyciskiem myszy na nie podłączonym wejściu bloku mnożenia i zaznacz Create»Constant. LabView stworzy numeryczna stałą wartość i podłączy ją do wejścia bloku mnożenia dając możliwość zdeklarowania wartości tej stałej. Wpisz 1.8 I kliknij na przycisk Enter lub kliknij myszą na dowolnym miejscu okna diagramu. 6. Tera należy dodać 32 aby zakończyć operacje obliczeń konwertujących. Wybierz blok dodawania Add z palety Functions>> Programming>>Numeric i umieść go na oknie diagramu po prawej stronie wyjścia bloku mnożenia. Kiedy pojawią się przewody łączące wyjście bloku mnożenia z wejściem bloku dodawania, kliknij myszą aby umieścić blok dodawania na diagramie. LabView automatycznie podłączy oba bloki razem. Jeśli bloki nie zostaną podłączone razem należy postąpić podobnie jak w kroku 3. 7. Kliknij klawiszem myszy na nie podłączonym wejściu bloku dodawania I zaznacz Create»Constant, tak jak to uczyniłeś w kroku 4. Wpisz 32 I kliknij ikonę przycisku Enter, albo kliknij na dowolnym miejscu okna diagramu. 8. Teraz gdy przemnożyłeś temperaturę w Celsjuszach prze 1.8 i dodałeś 32, potrzebne jest przekazanie przekonwertowanej wartości temperatury do termometru deg F. W tym celu należy: a. Zaznaczyć ikonę bloku Wiring z palety Tools. b. Kliknąć na wyjściu bloku funkcji dodawania i podłączenia do wejścia terminala termometru deg F. c. Przenieś mysz na terminal termometru deg F I kliknij przycisk myszy aby dokonać podłączenia. 9. (Opcjonalnie) Możesz rozmieścić elementy diagramu w dowolne miejsca na oknie z zachowaniem istniejących połączeń poprzez użycie narzędzia Positioning z palety Tools. Diagram jest teraz kompletny i powinien wyglądać podobnie do tego na rysunku poniżej:

Rys. 1.11 Kompletny diagram programu konwersji temperatury 10. Zaznacz File»Save I zapisz VI pod dowolną nazwą z rozszerzeniem.vi we wskazanym katalogu. Zapis I uruchomienie VI 1. Na panelu frontowym wybierz narzędzia Operating albo Labeling z palety Tools aby wpisać 37, co jest normalną temperatura ciała w Celsjuszach, w zadajniku cyfrowym termometru deg C. 2. Uruchom VI klikając ikonę Run button. Zauważ, że LabView konwertuje temperaturę w Celsjuszach do wartości 98.6 w stopniach Fahrenheit I wyświetla ją na termometrze deg F. Wpisz inną temperaturę w deg C i uruchom ponownie LabView. Zamknij VI wybierając File»Close. ZADANIE 2. Konstrukcja sterująca Sequence. W zadaniu tym ćwiczona będzie umiejętność sterowania strumienia danych na przykładzie programowania beepera komputera. W tym celu należy: 1. utworzyć nowy program.vi, 2. do okna Block Diagram wstawić obiekt Functions>>Programming>>Structures>>Flat Sequence, 3. z menu obiektu Sequence (prawy klawisz myszy na krawędzi obiektu) wybrać dwukrotnie Add Frame After. Powstaną trzy ramki jedna obok drugiej. 4. poszczególne obiekty programu połączyć zgodnie z Rys. 1.12, 5. położenie poszczególnych obiektów: 6. Functions>>Programming>>Timing>>Time Delay, 7. Functions>> Programming>>Graphics&Sound>>Beep.vi,

Rys. 1.12 Diagramy programów realizowanych w ZADANIE 2 8. podaj czas pomiędzy dźwiękami w [s] wybierając z palety Tools przycisk Connect Wire następnie najechać kursorem na wejście obiektu Beep.vi i wybierając z jego menu prawym klawiszem myszy opcję Create>>Control, 9. w podobny sposób utworzyć kontrolki częstotliwości Freguency i czasy trwania dźwięku Duration, 10. na wejściu bloku Beep o nazwie Use system alert? podobnie utworzyć stałą (PKL Create>>Constant) i ustawić ja na False ZADANIE 3. Konstrukcja sterująca Case 1. Program rozpoczynamy od wstawienia struktury Case. W tym celu z palety Functions>>Express>>Exec Control wybieramy strukturę Case i rozciągamy ją w oknie Block Diagram 2. Przejdź do okna Front Panel i z palety Controls wybierz Modern>>Ring & Enum>>Enum wybierz Menu Ring i przeciągnij go na okno Front Panel. 3. Kilknij pkl na tym elemencie i wybierz z podręcznego menu Edit Items. Otworzy się okno, w którym wpisz cztery polecenia add, subtract, muliply, divide. Po skończonej definicji opcji Items kliknij ok.

Rys. 1.13 Okno definicji opcji Case 4. W tym samym oknie Front Panel umieść dwie kontrolki Num Ctrl i jeden wskaźnik Num Ind. Oba elementy znadziesz w Controls>>Express>>Num Ctrls oraz Controls>>Express>>Num Inds. 5. Zmień nazwę wskaźnikowi na Result 6. Przejdź do okna Diagram i połacz Enum z selektorem? opcji Case 7. Kliknij pkl na krawędzi struktury Case i wybierz z menu Add Case for Every Value 8. Z palety Controls>>Express>>Arith & Compar>>Numeric wybierz elementy odpowiadające elementarnym działaniom zdefiniowanym w pętli Case tzn. 9. Umieść poszczególne elementy w odpowiadających im oknach wyboru i połącz wejścia z controlkami Num Ctrl a wyjście z Num Ind o nazwie Result 10. Uruchomić program sprawdzić i zrozumieć jego działanie,

Rys. 1.14 Diagramy programu realizowanego w ZADANIE 3. Opcja Multiply ZADANIE 4. Konstrukcja Formula Node 1. Utworzyć nowy program.vi, 2. do okna Block Diagram wstawić obiekt Functions>>Programming>>Structures>>Formula Node, 3. z menu obiektu Formula Node wybrać dwukrotnie opcję Add>>Input i dwukrotnie opcję Add Output. Spowoduje to pojawienie się dwóch wejść i dwóch wyjść. poszczególne obiekty programu połączyć zgodnie z Rys. 1.15, 4. położenie poszczególnych obiektów: Functions>>Programming>>Structures>>Formula Node, Controls>>Modern>>Numeric>>Numeric Control, Controls>>Modern>>Numeric>>Numeric Indicator,

Rys. 1.15 Diagram i Panel frontowy programu realizowanego w ZADANIE 4 ZADANIE 5. Tworzenie i użycie podprogramów VI. W celu ilustracji tworzenia i użycia podprogramów VI zostanie napisana procedura obliczająca wartość średnią ważoną dwóch liczb na podstawie wzoru: Y = ( x 1 *0.9 + x 2 *0.8 ) / 2 1. poszczególne obiekty programu połączyć zgodnie z Rys. 1.16, 2. zapisać program na dysku, Rys. 1.16 Diagram i Panel frontowy programu realizowanego w ZADANIE 5

3. w prawym górnym rogu okna Front Panel znajduje się ikona utworzonego programu, kursorem najechać na ikonę, nacisnąć prawy przycisk myszy i wybrać opcję Edit Icon, 4. zapoznać się z możliwościami edycji ikony, 5. ponownie najechać kursorem na ikonę, nacisnąć prawy przycisk myszy i wybrać opcję Show Connector. W prawym górnym rogu zostanie wyświetlona siatka wejść i wyjść programu (w edytowanym programie: 2 wejścia i 1 wyjście Rys. 1.17a), 6. w celu przypisania danych do siatki ikony kliknąć wejście danych, które zmieni kolor (Rys. 1.17b) następnie kliknąć obiekt x1 w oknie Front Panel, wejście danych z siatki ponownie zmieni kolor Rys. 1.17c), 7. przypisać dane do drugiego wejścia i wyjścia siatki ikony z Rys. 1.17a, 8. w celu utworzenia opisu podprogramu w oknie Front Panel wybrać opcję File>>VI Properties i wpisać tekst opisujący program w menu kontekstowym Menu kontekstowe pojawia się na ekranie po wyborze opcji Show Context Help, 9. zapisać program i zamknąć, 10. w celu wywołania podprogramu VI z programu VI utworzyć nowy program VI, 11. przejść do okna Blok Diagram i z palety Functions wybrać Select a VI.., odnaleźć wcześniej utworzony podprogram i wstawić do tworzonego programu, 12. w celu sprawdzenia czy podprogram VI jest prawidłowo wykonywany uruchomić program krokowo (przycisk Start Single Stepping ). Rys. 1.17 Terminale podprogramów

Rys. 1.18 Okno właściwości tworzonego podprogramu Rys. 1.19 Diagram i Panel frontowy programu wykorzystującego podprogram (SubVi) ZADANIA DODADKOWE ZADANIE S.1. Napisz program losujący 6 liczb z 49. Program powinien być realizowany przez VI zaprogramowany przez użytkownika a wynik powinien być widoczny w tablicy o jednym wierszu i sześciu wyrazach.

DODATEK. Klawisze skrótów w LabView 1. Panel i diagram Ctrl + E Przejście między oknem panelu i diagramu Podstawowy skrót o którym warto pamiętać. Podobnie działa podwójne kliknięcie na terminalu (wejściowym lub wyjściowym): na diagramie przełączy na panel i wskaże odpowiedni element, oczywiście działa również w drugą stronę. Ctrl + R Uruchomienie aplikacji Odpowiada naciśnięciu przycisku "Run". Ctrl +. (kropka) Zatrzymanie aplikacji Odpowiednik przycisku "Abort Execution". Ctrl + T Ustawienie obok siebie okna panelu i diagramu Opcja przydatna przy debagowaniu i analizie VI'a, często jednak wymaga pracy na wyższej rozdzielczości ekranu i. Ctrl + A Wyrównanie zaznaczonych elementów Pomaga przy porządkowaniu zaznaczonej grupy elementów na panelu lub diagramie. Wywołany skrót uaktywnia ostatnio wybrana opcję z palety Align Objects. Ctrl + D Rozmieszczenie zaznaczonych elementów Działanie podobne do poprzedniego skrótu: zastosowanie ostatniej wybranej dystrybucji dla zaznaczonej grupy elementów. Ctrl + Y Zapis historii VI'a: komentowanie przeprowadzanych zmian Opcją przydatna przy tworzeniu aplikacji przez długi czas. Komentarze są zapisywane w pliku VI'a jako Revision History.

Pytanie o zapisy dokumentujące historię VI'a mogą być ponadto ustawione w opcjach LabView i tworzone np. przy każdym zapisie zmian w VI'u do pliku. Historia jest wykorzystywana (opcjonalnie) przez opcję File>>Print przy tworzeniu dokumentacji, może zostać również zapisana w postaci pliku tekstowego (History>> Export to File..). Ctrl + M Zmiana trybu pracy: edycja / uruchomienie Tryb uruchomieniowy nie uruchamia VI'a, jednak pozwala np. na sprawdzenie zachowania kontrolek, rozmieszczenia elementów na panelu oraz ustawienie pułapek programowych (Breakpoints na palecie Tools) na diagramie. W tym trybie nie jest widoczna siatka umieszczona panelu i diagramie jeśli została uaktywniona: menu: Tools>>Options>>Alignment Grid: Warto zauważyć, że dostępna jest tutaj opcja "grid alignment" analogiczna do "Przyciągania do prowadnic" w programie Corel Draw. Dostępne jest również ustawienie stopnia kontrastu, czyli jasności linii siatki oraz jej rozmiar. Shift + strzałka Przesuwanie elementu lub zaznaczonej grupy ze skokiem równym rozmiarowi siatki Pomaga w szybkim przemieszczaniu elementów. Ctrl + Tab Przełączanie między kolejnymi otwartymi oknami VIs Skrót pozwalający np. odnaleźć i zamknąć odpowiednie okno. Przydatny przy przechodzeniu między dużą ilością otwartych okien subvis. Okna przełączane są tylko w obrębie środowiska LabView. Ctrl + Shift+ LKM Rączka (Scroll Window) Pozwala na precyzyjne przesuwanie płaszczyzny panelu lub diagramu wewnątrz okna. Działanie skrótu jest podobne do dłoni (Narzędzie Rączka) w programie Acrobat Reader. Uwaga praktyczna - opcja nie działa wewnątrz klastrów i kontrolek typu Tab (zakładki). Ctrl +?( lub /) Maksymalizacja lub powrót do poprzedniego rozmiaru okna Maksymalizuje aktywne okno VI'a. Przydatne w przypadku np. VI dialogowego, którego tylko część jest widoczna podczas pracy. Ctrl + LKM + przeciągnięcie kursorem

Rozciąga panel lub diagram Przydatna operacja, kiedy diagram lub panel robi się ciasny. Pomaga również gdy trzeba wprowadzić dodatkowe elementy. Shift + scroll (kółko myszy) Skok Szybkie przewijanie okna panelu lub diagramu. Shift + LKM Zaznaczanie Dodanie kolejnego elementu do już zaznaczonej grupy.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆW. 2. ŚRODOWISKO LABVIEW. PROCES WIZUALIZACJI I AKWIZYCJI DANYCH. Opracował: dr inż. Andrzej Sobolewski Białystok, jesień 2011

2.1. WPROWADZENIE Cel ćwiczenia: zapoznanie się ze środowiskiem programowym LabView zapoznanie się z podstawowymi strukturami programowymi języka G, zapoznanie się ze sposobem tworzenie podprogramów z reprezentacją graficzną. 2.2. GRAFIKA W LABVIEW Graficzna prezentacja wyników może odbywać się na wiele sposobów. Najczęściej wykorzystywane bloki biblioteki Graph to Waveform Chart, Waveform Graph, XYGraph. Biblioteka Graph przedstawiona jest na Rys. 2.1 Rys. 2.1 Biblioteka narzędzi graficznych dostępna w oknie Pulpitu. Istotą różniącą te trzy sposoby wyświetlania grafiki jest sposób prezentowania danych. W przypadku Waveform Chart aby wyświetlić wykres na ekranie wystarczy podać wartość liczbową, która zostanie naniesiona na wykres utworzony z poprzednio prezentowanych próbek. Na osi X będą wówczas prezentowane kolejne próbki.

Waveform Graph wymaga natomiast podania wszystkich próbek, z których ma być stworzony wykres. XYGraph podobnie jak Waveform Graph wymaga zestawu i w tym wypadku dwuwymiarowej tablicy próbek. Ze specyfiki narzędzi graficznych w LV wynika praktyczne ich zastosowanie. Waveform Chart stosuje się zwykle w pętli programowej i wykres tworzony jest na bieżąco. Pozostałe dwa stosowane są zwykle poza pętlą. 2.3. ODMIERZANIE CZASU Odmierzanie czasu dostępne jest za pomocą biblioteki Functions>>Programming>>Timing przedstawionej na Rys. 2.2. Zawiera Ona kilka podstawowych narzędzi do odmierzania czasu, odczytu zegara systemowego itp. Najbardziej popularne bloki to m.in. Blok Tick Count(ms). Blok ten zwraca wartość czasu w [ms] jednak początek jego odmierzania nie jest zdefiniowany. Podana wartość czasu nie jest względna. Używany jest najczęściej do operacji odmierzania czasu w obrębie działania jednej aplikacji. Wówczas jako punkt odniesienia w czasie używany jest pierwsza wartość wygenerowana przez ten blok. Dwa następne w kolejności najczęściej używane bloki to Wait(ms) oraz Wait until Next ms Multiple. Pierwszy element wymusza pauzę w działaniu programu do momentu gdy czas podany na jego wejście upłynie. W odróżnieniu, blok Wait until Next ms Multiple, wymusza pauzę w działaniu programu do czasu, który jest wielokrotnością podanej na jego wejście wartości. W praktyce blok ten używany jest do synchronizacji działania pętli.

Rys. 2.2 Zawartość biblioteki Timing. 2.4. OPERACJE DYSKOWE Operacje dyskowe dogodnie jest przeprowadzać wykorzystując elementy biblioteki narzędzi palety Functions>>Programming>>File I/O, przedstawionej na Rys. 2.3. Znajdujące się w niej narzędzia pozwalają na przyprowadzanie prostych, typowych operacji dyskowych jak również bardziej zaawansowane operacje. Najczęściej wykorzystywane bloki to Write i Read Spreadsheet. Służą one odpowiednio do zapisu bądź odczytu arkuszy zawierających tablicowane dane. Oba bloki wymagają podania nazwy pliku, w którym ma być dokonany zapis lub odczyt danych. Jeśli jednak

taka nazwa nie zostanie podana wówczas otwiera się okno dialogowe, w którym użytkownik powinien wskazać ten plik. Rys. 2.3 Zawartość Biblioteki File I/O. 2.5. OPERACJE ŁAŃCUCHOWE Operacje na łańcuchach dokonać można za pomocą narzędzi znajdujących się w palecie Functions>>Programming>>String. Zawartość biblioteki widoczna jest na Rys. 2.4. Znajdują się w niej bloki służące do operacji na łańcuchach i należą do nich m.in. bloki do łączenia łańcuchów znaków (Concatenate String), poszukiwania liczby w łańcuchu (Scan from String). Mamy też do dyspozycji stałe w postaci dowolnie zdefiniowanych łańcuchów oraz znaków specjalnych takich jak CR (Carriage Return) LF (Line Feed), czy też znak tabulacji (Tab Constatnt). Nie mniej ważnym i często używanym fragmentem tej biblioteki jest zestaw bloków do konwersji z łańcucha na liczby i odwrotnie (String/ Number Convertion)

Rys. 2.4 Zawartość biblioteki String 2.6. WYKONANIE ĆWICZENIA ZADANIE 6. Napisz program do wykreślania na wspólnym wykresie przebiegu zmiennej losowej i średniej ruchomej (trzy ostatnie wartości zmiennej) jej przebiegu w czasie dyskretnym. Wykres powinien być tworzony w trybie nadążnym dla dowolnie zdefiniowanej liczebności próby. Przykład diagramu do tego zadania zawiera Rys. 2.5 a pulpitu Rys. 2.6.

Rys. 2.5 Przykład diagramu wykorzystującego elementy graficzne Rys. 2.6 Przykład Pulpitu wykorzystującego elementy graficzne

Opis programu. Program ten ma zadanie pokazania różnicy w działaniu dwóch narzędzi do graficznego przedstawiania wyników. Są to Chart i Graph z palety Contro;s>>Modern>>Graph. Generowany jest losowo przebieg za pomocą generatora liczb losowych z palety Functions>>Programming>>Numeric>>Random Number(0-1). 1. Wywołany w pętli For N razy pozwala na prezentację wartości chwilowej jak również wartości średniej ruchomej pseudolosowego przebiegu. Średnią ruchomą realizuje się za pomocą rejestrów przesuwnych. Sumowane są 4 sąsiednie wartości przebiegu i dzielone przez 4. Generowana jest postać graficzna obu przebiegów wartości chwilowej i średniej ruchomej za pomocą Waveform Chart. 2. Możliwość wyświetlenia oby wartości na wspólnym ekranie realizuje się za pomocą multipleksera Bundle dostępnego z palety Functions>>Programming>>Cluster. 3. Aby wyświetlić grafikę za pomocą Graph najpierw należy skompletować dane do wyświetlenia. Odbywa się to za pomocą autoindeksowania wyjścia pętli For. Za jego pomocą tworzony jest zestaw danych dostępny do dalszego wykorzystania po wykonaniu zdeklarowanej ilości iteracji pętli. Autoindeksowanie włącza się bądź wyłącza prawym przyciskiem myszy na wyjściu tunelu pętli For. Włączone autoindeksowanie sygnalizowane jest nawiasami kwadratowymi na wyjściu tunelu. Pełny prostokąt świadczy o wyłączonym autoindeksowaniu. 4. Blok Wait(ms) służy do określenia zwłoki czasowej pomiędzy wykonaniem kolejnych iteracji pętli. ZADANIE 7. Napisz program prezentujący na wykresie XY krzywe Lissajous jakie będą tworzyć sygnały okresowe o różnych częstotliwościach i fazach. Rys. 2.7 Diagram do wyznaczania krzywych Lissajous

ZADANIE 8. Napisz program, w którym wykorzystasz pętlę While do zapisu danych i czasu ich wygenerowania do pliku. Przykład diagramu zawiera Rys. 2.8 Rys. 2.8 Przykładowy diagram generowania danych I zapisywania ich do pliku o wskazanej lokalizacji Działanie programu. Generator liczb losowych Rundom Number (N1) generuje liczbę z zakresu 0-1. Za pomocą konwersji dokonanej przez Number to fractional string (C1) dana w postaci liczbowej zostaje przedstawiona w postaci Stringowej. Liczba zakodowana jako zestaw znaków ASCII zostaje doprowadzona do Concatenate String (S4), który pełni rolę elementu łączącego ciąg znaków, które będą zapisywane do pliku za pomocą Write to text file (F1). Oprócz danej pochodzącej z konwertera (C1) zapisana zostanie również informacja o czasie wygenerowania danej. Dodatkowo przesłane zostaną również dwa znaki sterujące Tabulator (S2) i Enter (S3). W sumie do zapisu wysyłany jest ciąg znaków o formacie: godz:min:sek ;TAB ; dana ; CR Wynik działania programu to stworzenie pliku o nazwie i ścieżce dostępu wskazanej przez stałą (F3) zawierającego dwie kolumny tekstowe. Pierwsza kolumna zawiera czas wygenerowania liczby a druga sama wartość liczby. Każda z kolumn ma 10 wierszy.

Do działania programu użyto narzędzi, których zestawienie zostało pogrupowane wg przynależności do odpowiedniej palety i katalogu palety Functions. Opis użytych bloków: Functions>>Programming>>String S2 Tab Constant S3 Carriage Return Constant S4 Concatenate Strings Functions>>Programming >>String>>String/Number Conversion C1 Number To Fractional String Functions>>Programming >>Numeric N1 Rundom Number (0-1) Functions>>Programming >>Time & Dialog T1 Get Date/Time String T2 Wait Until Next ms Multiple Functions>>Programming >>File F1 Write Characters To File F2 Open/Create/Replace File F3 Path String Użyto również stałych CON1..CON4, które można zdeklarować klikając prawym przyciskiem myszy na wejściu odpowiedniego bloku. Wynikiem działania tego programu jest utworzenie pliku example.txt we wskazanej lokalizacji (C:\) którego zawartością są dwie kolumny liczb (kolumna czasu i danych generowanych losowo) i jest zamieszczona poniżej: 13:20 0.964068 13:20 0.907336 13:20 0.807031 13:20 0.350794 13:20 0.581078 13:20 0.670835 13:20 0.349398 13:20 0.048088 13:20 0.205854 13:20 0.842720 ZADANIA DODATKOWE

ZADANIE S.2. Zbadaj możliwość prezentacji wyników w formie graficznej Nakładanie wykresów Często wygodnie jest przedstawiać wykresy porównawcze. W takich wypadkach można skorzystać z kilku wariantów. Wymienimy trzy sposoby przedstawiania dwóch wykresów na wspólnym oknie graficznym. Załóżmy, że chcielibyśmy przedstawić na wspólnym wykresie przebiegi funkcji sin i cos. Rys. 2.9 Diagram obrazujący sposoby nakładania wykresów Dwa wykresy na jednym XY Graph ten sposób umożliwia przedstawienie dwóch przebiegów, dla których posługujemy się tą samą skalą osi x. Rys. 2.10 Dwa wykesy na xygraph we wspólnej skali osi x

Dwa wykresy na jednym Waveform Graph ten sposób umożliwia przedstawienie dwóch przebiegów, dla których na osi x będą indeksy. W przypadku przebiegów czasowych możemy utracić w ten sposób wspólną skalę czasu Rys. 2.11 Dwa wykesy na Waveform Graph Jeden wykres na XYGraph ten sposób umożliwia przedstawienie dwóch przebiegów, przy czym jeden jest na osi x drugi na y Rys. 2.12 Dwa wykesy na Waveform Graph

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆW. 3. REALIZACJA PRZYRZĄDU WIRTUALNEGO PRZY POMOCY KARTY POMIAROWEJ ADVANTECH PCI 1711 Opracował: dr inż. Andrzej Sobolewski Białystok, jesień 2011

3.1. WPROWADZENIE Newralgicznym punktem komputerowego systemu pomiarowego jest urządzenie umożliwiające podłączenie sygnałów podlegających pomiorom. Mogą być to urządzenia wyposarzone w interfejsy pomiarowe albo karty pomiarowe. Przykładem takiej karty jest Advantech PCI 1711, której wykorzystanie jest celem niniejszego ćwiczenia. 3.2. ZAWARTOŚĆ ZESTAWU LABORATORYJNEGO Karta DAQ Advantech PCI1711 Terminal łaczeniowy PCLD 8710 Kabel transmisyjny 37-pinowy DB-37 (PCI-1711) Generator funkcyjny z funkcją gaussian noise, lub zestaw MAO z generatorem PRBS Zainstalowany Advatech LabView Driver Biblioteki VI o Functions>>Express>>Signal Analysis o Functions>>User Library >> Laboratoria >> PCI 1711 o Functions>>Programming >> Timing Rys. 3.1 Karta PCI 1711

Rys. 3.2 Rozplanowanie elementów znajdujących się na płytce terminala PCLD 8710 Programowanie PCI-1711 w LabView może być przeprowadzone za pomocą kompaktowych instrumentów VI do komunikacji z kartami Advantecha. Dostępne są one w bibliotece User Library >> Laboratoria >> PCI 1711. Tabela 1. Ikony programów do komunikacji z kartą PCI 1711 Jedno wejście (AI 0 ) Jedno wyjście (AO 0) Dwa wejścia (AI 0,1)

Dwa wyjścia (AO 0,1) 3.3. OPIS ĆWICZENIA Ćwiczenie polega na oprogramowaniu karty PCI 1711 do pomiarów sygnałów napięciowych, ich analizy statystycznej i wizualizacji przy różnycch okresach próbkowania. Żródłem sygnału pomiarowego może być generator funkcyjny generujący szum gausowski, lub wyjście szybkiego filtra 1 zestawu laboratoryjnego MAO pobudzonego sygnałem binarnym pseudo-losowym PRBS. Analiza statystyczna polega na wyznaczeniu parametrów próby pomiarowej (jednej realizacji mierzonej zmiennej s(n), gdzie n jest liczbą mierzonych próbek) w postaci wartości średniej, max, min, odchylenia standardowego jak również histogramu. 3.4. WYKONANIE ĆWICZENIA. ZADANIE 9. Należy zbudować wirtualny przyrząd pomiarowy realizujący zadanie pomiaru napięcia i rejestracji przebiegów czasowych wykorzystując Advatech LabView Driver odczytujący dane mierzone za pomocą PCI 1711. Mierzone napięcia mają być generowane przez generatory funkcyjne sinus. Sprawdź z jaką częstotliwością można próbkować sygnał. Przykład programu wykorzystującego przedstawione podprogramy znajduje się na Rys. 3.3

Rys. 3.3 Przykładowy program wykorzystujący podprogramy obsługi karty PCI 1711 w LV Opis działania programu przykładowego. Ikony ADV_1AI oraz ADV_1AO znajdują się w bibliotece User Libraries>>Laboratoria>> PCI 1711. ADV_1AO służy do jednorazowego przypisania wartości napięcia w zakresie 0:10VDC na wyjście karty AO 0 (Analog Output kanał 0). ADV_1AI służy do odczytania wartościpotencjału napięcia na kanale AI 0 (Analog Input kanał 0). AI 0 jest następnie wyświetlany za pomocą Waveform Chart w formie graficznej. Próbki są pobierane co około 100ms, którą to wartość należy ustawić w kontrolce milisecons to wait. Konfiguruje ona blok opóźnienia czasowego Wait ms. Diagram ten umożliwia też pomiar czasu za pomocą różnicy wartości zwracanych przez bloki Tick count. UWAGA! System Windows jest wielowątkowy, co ma znaczący wpływ na dokładność pomiarów. Jeśli w tle działają jakieś aplikacje to procesor musi zapewnić dostęp do swoich zasobów każdej z nich. Im więcej aplikacji tym mniej czasu na ich obsługę. Możliwe jest więc przekroczenie czasu przewidzianego na obsługę zadań, co w przypadku aplikacji pomiarowych prowadzi w konsekwencji do nieprawidłowych pomiarów. Aby uniknąć tego zjawiska można uprzywilejować niektóre z aplikacji nadając im wyższy priorytet obsługi. Dokonać tego można w Menadżerze zadań Windowsa (Ctr,

Alt, Del), wskazując aplikację i nadać jej jeden z wyższych priorytetów wykonywalności. Rys. 3.4 Okno Menadżera zadań Windows z przykładem ustawienia priorytetu aplikacji LabView ZADANIE 10. ZADANIE 11. W układzie z Rys. 3.3 zbadaj średni czas wykonania jednej iteracji mierząc 10-cio [Hz] sygnał sinusoidalny w ciągu jednej sekundy. Sprawdź jakość mierzonego sygnału i poziom średniej czasu iteracji wraz z jego wartościami chwilowymi (waveform Chart) w sytuacji gdy w tle uruchomianona jest inna aplikacja (np. odtwarzany plik mpg4, klawisz PrintScrean, skaner antywirusowy) Zaprogramuj wykreślenie wyników pomiarów z poprzedniego zadania na wykresie XYGraph, gdzie na oś x należy podać zindeksowany wektor czasu zarejestrowania każdej próbki a na oś y zindeksowany wektor wartości każdej próbki (Rys. 3.5). Kliknięcie na tunelu danych prawym klawiszem myszy otworzy podręczne Menu z opcją włączenia indeksacji). Indeksacja umożliwi dostęp do wszystkich zarejestrowanych danych. Brak indeksacji

zapewni dostęp tylko do ostatniej pary czasu i wartości danych z serii pomiarowej. Rys. 3.5 Sposób włączenia indeksacji wymaganej do skonfigurowania wejść XYGraph. Rys. 3.6 Sposób podłączenia XYGraph Porównaj kształt wykresów XYGraph z Waveform Chart. Skomentuj wyniki obserwacji. Wykonaj to zadanie nadając LabView w Menadżerze zadań Windows Niski, Normaly i Wysoki priorytet. ZADANIE 12. Dokonaj pomiaru 100 próbek sygnału gaussowskiego (lub sygnału z wyjścia Filtra 1 pobudzonego sygnałem PRBS) i wyznacz jego statystyczne parametry w postaci wartości średniej, min, max, odchylenia standardowego, oraz histogramu. Bloki do analizy statystycznej znajdziesz w lokalizacji Functions>>Express>>Signal Analysis. Należy je podłączyć do zindeksowanych wektorów danych. ZADANIA DODATKOWE ZADANIE S.3. Dokonać pomiaru przebiegów okresowych, generowanych przez generatory sin z i bez zachowania zaleceń wynikających z Twierdzenia Kotielnikowa- Shannona. Należy zarejestrować zjawisko nakładania się widm oraz