różnych wielkości od siebie. Do uruchomienia aplikacji należy również zbudować Diagram (rys. 1.3) programu (budowa polega na łączeniu ze sobą ikon różnych elementów). W oknie Diagramu następuje połączenie logiczne elementów mające na celu uzyskanie żądanego schematu działania aplikacji. Można korzystać z elementów, takich jak: funkcje logiczne, arytmetyczne, porównywania, komunikacyjnych, operacji wejścia/wyjścia i analizy sygnałowej. Uruchomienie budowanej aplikacji możliwe jest dopiero po poprawnym połączeniu wszystkich elementów w oknie Diagramu. W przeciwnym razie próba uruchomienia aplikacji spowoduje pojawienie się okna z wypisanymi błędami (rys. 1.4). Dwukrotne kliknięcie na wybranym błędzie powoduje jego zaznaczenie w oknie Diagramu. Oba okna edycyjne posiadają menu i pasek narzędziowy (rys. 1.2, 1.3). Menu zawiera w większości opcje obsługi plików i edycji znane z innych popularnych aplikacji, np. MS Office. Rys. 1.4. Okno listy błędów pojawiające się po uruchomieniu błędnie zbudowanej aplikacji W pracy ze środowiskiem LabVIEW przydatne są szczególnie dwie opcje: Operate Run/Stop powoduje przełączanie między trybem edycji a trybem działania aplikacji. Budowa schematu procesu i interfejsu graficznego aplikacji możliwa jest tylko w trybie edycji. Window Show Front Panel/Block Diagram powoduje przełączanie pomiędzy oknami Panelu i Diagramu. W zależności od rodzaju aktywnego okna wygląd paska narzędziowego ma postać pokazaną na rysunku 1.5. Większość przycisków jest taka sama dla obydwu okien edycyjnych. 11
Rys. 1.5. Paski narzędziowe okien edycyjnych programu LabVIEW: a) okna Diagramu, b) okna Panelu a) b) 1 2 3 4 5 6 7 8 10 11 12 13 Poszczególne przyciski odpowiadają następującym funkcjom: 1 jednokrotne uruchomienie programu VI, 2 ciągłe uruchomienie programu VI, 3 zatrzymanie działania programu VI, 4 chwilowe zatrzymanie wykonywania programu pauza, 5 animacja przetwarzania danych na schemacie świecący punkt porusza się po połączeniach między ikonami elementów, pokazując przepływ danych. Przyciski 6, 7, 8 wykorzystywane są w trybie debuggera do krokowego wykonywania programu. Przycisk służy do wyboru czcionki i jej edycji, natomiast przyciski: 10, 11 i 12 mają zastosowanie do ustawiania położenia ikon elementów względem siebie. Przycisk 13 wywołuje menu podpowiedzi. Elementy umożliwiające opracowywanie programu znajdują się w paletach: Controls (rys. 1.6) i Functions (rys. 1.7). Aby wyświetlić te palety, należy wybrać poniższe opcje menu: Window Show Controls Palette wywołuje paletę Controls z elementami do zaprojektowania interfejsu użytkownika w oknie Panelu. Paletę można również wywołać, klikając prawym klawiszem myszy w oknie Panelu. Rys. 1.6. Paleta Controls i paleta All Controls 12
Window Show Functions Palette wywołuje paletę Functions z elementami do budowy schematu w oknie Diagramu. Paletę można również wywołać, klikając prawym klawiszem myszy w oknie Diagramu. Rys. 1.7. Paleta Functions i paleta All Functions Pobranie konkretnego elementu z palety wymaga niekiedy przejścia przez kilka niższych poziomów-podgrup. Na przykład, aby pobrać model generatora sinusoidalnego, należy otworzyć grupę zawierającą modele generatorów (Signal Generation), wymaga to wcześniejszego otwarcia grup Analyze i Signal Processing (rys. 1.8). Rys. 1.8. Rozwinięcie grupy Analyze z palety Functions do poziomu grupy generatorów 13
Paleta All Functions Structures zawiera sekwencję, instrukcję wyboru, pętle For i While, strukturę do edycji formuł oraz elementy do deklaracji zmiennych globalnych i lokalnych. Sekwencja Sequence umożliwia określenie dokładnej kolejności, w której będą wykonywane operacje w programie. Operacje wykonuje się po kolei, począwszy od okna o numerze 0. Instrukcja wyboru Case umożliwia realizację jednej z kilku zdefiniowanych operacji w zależności od wartości zmiennej doprowadzonej do pola selektora. Struktura ta w najprostszej postaci odpowiada instrukcji If then znanej z języków programowania. Pętla For odpowiada instrukcji For i = 0 to N do Operacje umieszczone w ramce wykonywane są N razy. Pętla While wykonywana jest, dopóki warunek przekazywany do pętli będzie prawdziwy, przy czym sprawdzenie warunku wykonywane jest na końcu każdej iteracji. Struktura do edycji formuł Formula Node umożliwia wykonywanie formuł matematycznych. Numeric operacje na liczbach (dodawanie, odejmowanie, mnożenie, dzielenie, inkrementacja, dekrementacja, sumowanie i mnożenie elementów macierzy, wartość bezwzględna, pierwiastkowanie, negacja, signum, 1/x, operacje na liczbach zespolonych, konwersje typów danych, funkcje trygonometryczne, funkcje logarytmiczne i stałe numeryczne). Boolean elementy wykonujące funkcje logiczne (AND, OR, NAND, NOR, EXOR, EXNOR, NOT, konwersja liczby w macierz boolowską i macierzy boolowskiej w liczbę, stałe logiczne). String elementy dokonujące operacji na łańcuchach (np.: łączenie łańcuchów, konwersje łańcuchów na liczby i odwrotnie, konwersje ścieżek na łańcuchy i odwrotnie). Array operacje na macierzach (obliczanie rozmiaru macierzy, pobieranie elementów macierzy o określonych indeksach, usuwanie elementów macierzy, tworzenie, dzielenie, rotacja, transpozycja, interpolacja, decymacja macierzy, sortowanie macierzy 1D, znajdowanie minimalnej i maksymalnej wartości w macierzy, przeszukiwanie macierzy). 16
Cluster operacje na rekordach. Comparison elementy realizujące operacje porównania (równy, różny, większy, mniejszy, większy równy, mniejszy równy, równy zero, różny od zera, większy od zera, mniejszy od zera, większy równy zero, mniejszy równy zero, wyszukiwanie wartości minimalnej i maksymalnej, wybór źródła sygnału zależnie od spełnienia warunku logicznego, sprawdzenie, czy sygnał mieści się w zadanym zakresie, sprawdzenie, czy sygnał jest liczbą dziesiętną, ósemkową, szesnastkową itp.). Time & Dialog elementy związane z czasem i datą (np.: odmierzanie czasu, ustawianie opóźnień, pobieranie czasu i daty) oraz elementy do tworzenia okien dialogowych. File I/O operacje na plikach (tworzenie, otwieranie, zamykanie plików, odczyt danych z pliku, zapis danych do pliku itp.). NI Measurement elementy do obróbki obrazu. Waveform operacje na przebiegach sygnałów (np.: dodawanie, odejmowanie, mnożenie, dzielenie dwóch sygnałów, skalowanie, obliczanie transformaty FFT, znajdowanie minimum i maksimum). Analyze zestaw elementów do analizy i obróbki danych w dziedzinie czasu i częstotliwości oraz generacji sygnałów (obliczanie składowej stałej i wartości skutecznej sygnału, analiza harmonicznych, analiza SINAD, widmo mocy, widmo gęstości mocy, widmo amplitudowo fazowe, widmo zespolone, uśrednione amplitudowo fazowe widmo mocy, uśrednione zespolone widmo mocy, kontrola, czy parametry sygnału mieszczą się w zadanych granicach, detekcja pików w sygnale, detekcja poziomów wyzwalania, generacja funkcyjna, generacja sygnału z formuły, generacja szumu białego, generacja szumu białego o rozkładzie Gaussa, generacja szumu okresowego, generacja sygnałów w czasie, generacja sygnału impulsowego, funkcje konwolucji, dekonwolucji, korelacji wzajemnej, autokorelacji, decymacja, obliczanie estymat, wyznaczanie parametrów sygnału, obliczanie pochodnej x(t) i całki x(t), 17
obliczenie transformaty FFT i odwrotnej transformaty FFT, obliczenie szybkich transformat Hilberta i Hartleya oraz ich odwrotności, wyznaczanie części rzeczywistej transformaty FFT, estymator częstotliwości sygnału sinusoidalnego o nieznanej długości, wyznaczanie spektogramu metodą Wignera Ville a oraz z wykorzystaniem algorytmu Short Time Fourier Transform, wyznaczanie części rzeczywistej transformaty Laplace a, obliczanie transformaty Walsha Hammarda i odwrotnej transformaty Walsha Hammarda, konwersja skali widma, cyfrowe filtry Butterwortha, Czebyszewa i Bessela, odwrócony filtr Czebyszewa, filtr eliptyczny, filtr medianowy, filtr z ograniczoną (FIR) i nieograniczoną (IIR) odpowiedzią impulsową, skalowane okna czasowe, okna czasowe Hanninga, Hamminga, Blackmana, Blackmana Harrisa, Kaisera Bessela, trójkątne i wykładnicze, funkcje matematyczne, których opis podany jest przy ikonie Mathematics). Instrument I/O zestaw funkcji do obsługi urządzeń komunikujących się poprzez interfejsy GPIB, VXI oraz porty szeregowe. Application Control grupa elementów pomocniczych przeznaczonych do sterowania działaniem programu. Graphics & Sound elementy do tworzenia wykresów, obróbki grafiki i dźwięku. Communication funkcje zapewniające komunikację komputera (ActiveX, DataSocket, TCP, UDP, HiQ). Report Generation funkcje do generacji raportów. Advanced zaawansowane funkcje do operacji na rejestrze systemu Windows, obróbki danych i synchronizacji. Select a VI umożliwia wstawienie do programu przyrządów wirtualnych zapisanych w plikach. Decorations zestaw obiektów graficznych wykorzystywanych do upiększania interfejsu użytkownika. 18
User Libraries biblioteka elementów użytkownika. W celu pobrania konkretnego elementu z palety Controls lub Functions należy kliknąć na jego ikonę, a następnie w miejsce, gdzie ma być on wstawiony w oknie Panelu lub Diagramu. Elementy po wstawieniu do okna Panelu mogą być przeformatowane zgodnie z wymaganiami użytkownika (np. zmiana czcionki, wymiarów, kolorów). Aby zmienić zakres podziałki dla elementów umieszczonych w oknie Panelu, należy wpisać ręcznie wartość nowego zakresu. Elementy umieszczone w oknie Panelu lub Diagramu posiadają swoje menu konfiguracyjne (może się ono różnić dla różnych obiektów). Menu można wywołać poprzez kliknięcie prawym klawiszem myszy na elemencie. Na rysunku 1.9 pokazane jest przykładowe menu obiektu z najczęściej spotykanymi opcjami. Ich znaczenie jest następujące: Visible Items ukrycie lub wyświetlenie elementów graficznych związanych z obiektem (np.: etykiety, tytuł obiektu itp.). Find Terminal wyszukanie w oknie Diagramu zacisku obiektu osadzonego w oknie Panelu. Change to Control/Indicator zmiana funkcji elementu z kontrolnej na wskaźnikową i odwrotnie. Description and Tip umożliwia utworzenie opisu elementu w okienku tekstowym. Create w zależności od rodzaju elementu tworzy w oknie Diagramu dodatkowe zaciski dla obiektu (np.: zacisk zmiennej lokalnej, przez którą można wprowadzać dane do obiektu, zacisk do odczytu lub zmiany właściwości obiektu Property Node, zaciski wartości stałej Constant i elementu regulacyjnego Control, przyłączone bezpośrednio do wejść obiektu, zacisk wskaźnika odczytującego sygnał wyjściowy z obiektu Indicator). Rys. 1.9. Menu obiektu 19
Ćwiczenie 2 Pomiary podstawowych parametrów sygnałów Budowa aplikacji w LabVIEW zostanie przedstawiona na przykładzie programu z generatorem sygnałowym. Zaprojektowany układ pomiarowy umożliwia pomiar parametrów generowanego sygnału oraz prezentację jego przebiegu na wykresie. Najpierw z palety Controls należy pobrać elementy: Numeric Control z grupy Numeric, Vertical Pointer Slide z tej samej grupy i Waveform Chart z grupy Graph i wstawić w oknie Panelu. Po dwukrotnym kliknięciu na etykiecie z nazwą elementu można dokonać zmiany opisu zgodnie z przeznaczeniem elementu. Elementy Numeric Control będą wykorzystywane do zadawania liczby próbek sygnału z generatora oraz częstotliwości tego sygnału, Vertical Pointer Slide do zmiany amplitudy, a Waveform Chart do prezentacji przebiegów. Można więc przypisać im następujące nazwy: Ilość próbek, Częstotliwość, Amplituda, Wykres. Okno Panelu po wstawieniu elementów i zmianie ich nazw powinno wyglądać jak na rysunku 2.1. Rys. 2.1. Okno Panelu układu pomiarowego z generatorem sygnałowym 22
Rys. 2.2. Okno Diagramu układu pomiarowego z generatorem sygnałowym Umieszczenie elementu w Panelu powoduje automatyczne pojawienie się jego ikony w oknie Diagramu (rys. 2.2). Po najechaniu kursorem myszy na wybrany element pojawiają się jego zaciski (kolorowe prostokąty). Kolor zacisku oraz nazwa wewnątrz prostokąta informują o typie danych, które można pobrać lub wysłać przez określony zacisk (np. kolor pomarańczowy i nazwa DBL dotyczą zmiennych numerycznych zmiennoprzecinkowych typu DOUBLE). Opis wszystkich typów danych znajduje się w pomocy programu LabVIEW. Podczas dokonywania połączeń zacisków należy zachować zgodność typów danych. W przypadku połączenia zacisków różnych typów program automatycznie sygnalizuje błąd, przedstawiając linię pomiędzy zaciskami jako przerywaną. Dodatkowo w oknie Diagramu należy umieścić elementy z palety Functions. Są to: generator sygnałowy (Analyze Signal Processing Signal Generation Signal Generator by Duration), układ wyszukujący wartość maksymalną i minimalną z tabeli (Array Array Max & Min), układ mierzący wartość skuteczną sygnału (Analyze Wavefrom Measurements Basic Averaged DC-RMS). 23
Rys. 2.5. Okna Panelu i Diagramu układu pomiarowego z generatorem sygnałowym po wstawieniu elementu sterującego wyborem typu sygnału (signal type) 26