Podstawy programowania w środowisku LabVIEW, program do pomiaru napięcia LabVIEW jest zintegrowanym środowiskiem programistycznym firmy National Instruments przeznaczonym do tworzenia oprogramowania do systemów kontrolno-pomiarowych. LabVIEW bazuje na graficznym języku programowania G. Program tworzony jest w postaci diagramu, na którym poszczególne operacje przedstawione są w postaci symboli graficznych, łączonych zgodnie z kierunkiem przepływu informacji. Istotą programów opracowanych w środowisku LabVIEW jest hierarchiczność, tzn. kaŝdy program moŝe być traktowany jak podprogram dla innej aplikacji oraz polimorfizm operatory dopasowują się do rodzaju danych. W trakcie tworzenia aplikacji mamy do dyspozycji dwa ściśle zintegrowane ze sobą okna: panel graficznego interfejsu uŝytkownika (Front Panel) i panel programu (Block Diagram). Programy napisane w LabVIEW nazywane są wirtualnymi przyrządami (virtual instruments VIs), poniewaŝ ich wygląd i działanie imitują rzeczywiste przyrządy jak np. multimetr czy oscyloskop. Do tworzenia programu wykorzystuje się: Tools Pallete paletę narzędzi do budowania panelu uŝytkownik i panelu programu, Controls Pallete paletę obiektów sterujących i wskazujących do budowy panelu uŝytkownika, Functions Pallete paletę funkcji i instrumentów wirtualnych (VI) do budowy panelu programu. Celem ćwiczenia jest poznanie metodyki tworzenia typowych aplikacji w środowisku LabVIEW na przykładzie budowy wirtualnego przyrządu do pomiaru napięcia. Podstawą sprzętową wspomnianego przyrządu jest karta akwizycji sygnałów PCI DAS-4020 firmy Measurement Computing Corp. Jest to 4 kanałowa karta pomiarowa wyposaŝona w 12 bitowy przetwornik A/C o maksymalnej częstotliwości próbkowania 20MHz, oraz zewnętrzne wejście wyzwalające. Programowa obsługa funkcji sprzętowych karty odbywa się poprzez wywołania odpowiednich funkcji zapisanych w bibliotece dynamicznej DLL. Dla karty dostępna jest równieŝ biblioteka takich funkcji dla środowiska LabVIEW, którą moŝna znaleźć w palecie Functions Pallete jako grupę funkcji o nazwie Universal Library. Wszystkie funkcje z tej grupy zostały podzielone z kolei na 8 podgrup: Analog Input Analog Output Digital I/O Counter Calibration and Configuration Signal Conditioning Serial Communication Memory Część praktyczna Do zmierzenia napięcia podanego na wejścia analogowe karty wystarcza wykorzystanie najprostszej funkcji z pierwszej grupy o nazwie Single Analog input oznaczona skrótem AIn. Jest to funkcja dokonująca odczytu napięcia na wejściu analogowym zadanym poprzez parametr 1
Channel z karty pomiarowej o numerze podanym w BoardNum. W przypadku gdy karta ma programowalny wybór zakresu pomiarowego dodatkowo konieczne jest jego podanie na wejście Range. Dla karty DAS-4020 moŝliwe do wyboru są dwa zakresy: ±5V i ±1V. Na wyjściu DataValue funkcja AIn zwraca cyfrową wartość sygnału z wybranego wejścia analogowego. Natomiast wyjście ErrCode słuŝy do sygnalizowania poprawności przetwarzania i ewentualnych przyczyn błędnego działania. 1. Po uruchomieniu programu LabVIEW rozpoczynamy tworzenie programu od wyboru nowego instrumentu: New VI (moŝemy równieŝ rozpocząć pracę nad nowym projektem wybierając z menu File opcję New VI ). Pojawi się wówczas na ekranie pusty panel uŝytkownika. 2. Na panelu uŝytkownika w pierwszej kolejności umieszczamy elementy pozwalające - w naszym przykładzie - na wybór numeru karty pomiarowej oraz numeru kanału wejściowego. W tym celu poleceniem Show Controls Pallete wybranym z menu Windows, otwieramy okno Controlls Pallete, w którym wybieramy grupę Numeric a w niej z kolei wybieramy (klikając myszką) Numeric Control. Następnie przesuwamy kursor do panelu uŝytkownika i ponownie klikając myszką wstawiamy wybrany element. Następnie moŝemy od razu wprowadzić z klawiatury właściwą jego nazwę: Nr karty. Identycznie postępujemy aby umieścić na panelu uŝytkownika następną kontrolkę: Nr kanału. 3. Trzecim parametrem wejściowym funkcji AIn jest zakres napięć wejściowych ( Range ), który powinien być wybierany ze zbioru dopuszczalnych wartości. Do tego celu moŝna zastosować kontrolkę Menu Ring, którą wybieramy z grupy Ring & Enum i wstawiamy do panelu uŝytkownika. Po jej wstawieniu najlepiej od razu nadać jej nazwę Zakres. W wypadku tego elementu naleŝy utworzyć listę dostępnych opcji czyli listę zakresów napięć wejściowych. KaŜdy z zakresów wejściowych ma swój na stałe przypisany numer, który jest właściwym parametrem funkcji AIn. Do naszych potrzeb wystarczy nam wpisanie tylko 2 zakresów: ±5V, ±1V. Ustawiamy kursor na elemencie Zakres i po wywołaniu prawym przyciskiem myszy podręcznego menu wybieramy opcję Edit Items i w otwartym oknie po odhaczeniu opcji Sequential values wpisujemy do tabeli w pierwszej kolumnie oznaczenia dla obu zakresów ( +-5V i +-1V ) a w drugiej kolumnie przypisane im wartości (2 i 6). 4. Kolejny krok to umieszczenie w programie funkcji AIn. Znajduje się ona podgrupie funkcji Analog Input grupy Uniwersal Library. Funkcję AIn umieszczamy na prawo od pozostałych elementów na panelu programu. Następnie szpulką łączymy wyjście Nr karty z wejściem BoardNum funkcji AIn, wyjście Nr kanału z wejściem Channel funkcji AIn oraz wyjście operatora Add z wejściem Range funkcji AIn. 2
5. W następnym kroku musimy zająć się obsługą wyjścia DataValue funkcji AIn. PoniewaŜ wartości wyjściowe tej funkcji są liczbami całkowitymi z zakresu od 0 do 2 n -1 (n rozdzielczość przetwornika A/C) naleŝy dokonać ich konwersji na wartość napięcia. MoŜna do tego wykorzystać funkcję ToEng, która dokonuje zamiany wejściowej wartości całkowitoliczbowej DataValue na napięcie z zakresu podanego na wejście Range. Funkcja ToEng dodatkowo wymaga podania numeru karty pomiarowej na wejście BoardNum. Funkcję ToEng pobieramy z podgrupy funkcji Signal Conditioning grupy Uniwersal Library i umieszczamy na prawo od funkcji Ain. Następnie szpulką łączymy wyjście DataValue AIn z wejściem ToEng o tej samej nazwie. Wejścia Range i BoardNum funkcji ToEng łączymy natomiast z przewodami dołączonymi do wejść funkcji AIn o tych samych nazwach. 6. Aby moŝliwe było odczytanie na ekranie zmierzonego naszym przyrządem napięcia konieczne jest jeszcze wstawienia do panelu uŝytkownika odpowiednika wskaźnika. MoŜe to być wskaźnik cyfrowy Numeric Indicator wybrany z grupy Numeric palety Controls lub analogowy Meter, do którego dotrzemy wybierając kolejno Classic Controls, Classic Numeric w palecie Controls. Po umieszczeniu wskaźnika na panelu uŝytkownika wracamy do panelu programu i łączymy wyjście Engineering Units funkcji ToEng z wejściem wstawionego wskaźnika. 7. Aby moŝna było w trakcie uŝywania naszego przyrządu rozpoznać ewentualne przyczyny nieprawidłowego jego działania, naleŝy obsłuŝyć wyjście ErrCode funkcji AIn. W tym celu do panelu programu wstawiamy funkcję ErrMsg, którą moŝna znaleźć w podgrupie Calibration and Configuration biblioteki Universal Library. Funkcja ErrMsg zamienia kod błędu na jego krótki opis. Aby moŝna przeczytać ten komunikat o błedzie potrzebny nam będzie wskaźnik tekstowy String Indicator, który z podgrupy String & Path wstawiamy do panelu uŝytkownika. Wskaźnik ten moŝemy nazwać jako Błąd. Następnie wracamy do panelu programu i łączymy wyjście ErrCode funkcji AIn z wejściem ErrCode funkcji ErrMsg oraz wyjście ErrMsg tej funkcji z wskaźnikiem Błąd. 8. W tym momencie nasz program jest gotowy do pracy, więc moŝemy go zapisać pod dowolna nazwą na dysku wybierając opcję Save As z menu File. MoŜemy sprawdzić czy program działa wciskając białą strzałkę na pasku ikon panelu uŝytkownika lub wybierając opcję Run z menu Operate. Tak uruchomiony program dokona pomiaru napięcia ze wskazanego wejścia wybranej karty i wyświetli wynik na wskaźniku U [V] po czym zakończy działanie. Nie umoŝliwia to niestety dokonanie jakichkolwiek zmian nastaw naszego przyrządu w czasie jego pracy. MoŜna to zrobić dopiero po jego zatrzymaniu. Jeśli chcielibyśmy aby nasz miernik działał w sposób ciągły moŝna go uruchomić w trybie pracy cyklicznej wciskając strzałki 3
pracy cyklicznej na pasku ikon panelu uŝytkownika. Działanie miernika moŝna wówczas zatrzymać czerwonym przyciskiem Abort Execution. 9. Lepszym sposobem na zapewnienie ciągłej pracy naszego miernika jest umieszczenie napisanego przez nas programu wewnątrz pętli. Najlepiej jeśli będzie to pętla warunkowa While Loop, którą znajdziemy w grupie Structures palety Function. Wybraną pętlę wstawiamy do panelu programu w ten sposób, Ŝe zakotwiczamy jej lewy górny róg lewym klawiszem myszy na lewo i powyŝej wszystkich elementów umieszczonych wcześniej na panelu i trzymając wciśnięty klawisz przeciągamy jej prawy dolny róg tak aby objęła cały schemat naszego programu po czym zwalniamy klawisz myszy. Na panelu programu pojawi się wówczas gruba szara ramka, w której lewym dolnym rogu widoczny jest licznik iteracji i a w prawym dolnym rogu wejście dla warunku zakończenia pętli. Pętla ta jest wykonywana dopóki wartość warunku jest równa FALSE. Aby moŝna było zatrzymać pracę naszego programu musimy do tego warunku podłączyć przycisk STOP, wciśnięcie którego zmieni wartość warunku zakończenia pętli na TRUE. Aby to zrobić wracamy do panelu uŝytkownika i z grupy Boolean wybieramy element Stop Button, który umieszczamy na panelu uŝytkownika. Następnie wracamy do panelu programu, odnajdujemy przycisk Stop, przesuwamy go wnętrza pętli obok warunku jej zakończenia i przy pomocy szpulki łączymy je ze sobą. Następnie ustawiamy kursor na warunku pętli wciskamy prawy klawisz myszy i w podręcznym menu zaznaczamy opcję Stop If True. 10. Oczywiście moŝna poświęcić jeszcze nieco czasu na jego dalsze udoskonalenia, jak np. zmienić format zadawanych parametrów, wprowadzić ograniczenia zakresu ich zmienności (np. Nr kanału powinien zawierać się w przedziale od 0 do 3), uporządkować rozmieszczenie elementów na panelu czy zmienić ich rozmiary. Tak zbudowany program został przedstawiony na rysunkach poniŝej. 4
Literatura: 1. National Instruments Corporation: LabView User Manual, November 2001 Edition. 2. W. Tłaczała : Środowisko LabVIEW w eksperymencie wspomaganym komputerowo. WNT, Warszawa 2002 5
Imię i Nazwisko. Rok... Grupa.. Data: Zadania do wykonania: Podstawy programowania w środowisku LabVIEW, program do pomiaru napięcia Sprawozdanie 1. Napisać według powyŝszych wskazówek działający program do pomiaru napięcia. 2. Do analogowego wskaźnika napięcia dodać wskaźnik cyfrowy (wciskamy prawy klawisz myszki na wskaźniku i z dostępnego menu wybieramy Visible Items i zaznaczmy opcję Digital Display ). 3. Wybrać jako nr karty pomiarowej 1 a jako nr kanału 0. 4. Zewrzeć ze sobą dwa podłączone do analogowego wejścia karty zaciski i zapisać wynik pomiaru: U =... [V] 5. Podłączyć do zacisków źródło napięcia stałego i dokonać pomiarów na wszystkich dostępnych zakresach pomiarowych i dla róŝnych polaryzacji połączeń. Wyniki zapisać w tabeli. Zakres pomiarowy U [V] Polaryzacja + U [V] Polaryzacja - 6. Do sprawozdania dołączyć wydruki panelu uŝytkownika i panelu programu. Wnioski: 6