Podstawy programowania w środowisku LabVIEW,
projekt oscyloskopu cyfrowego
Celem ćwiczenia jest doskonalenie umiejętności tworzenia typowych aplikacji w środowisku
LabVIEW na przykładzie projektu witrualnego oscyloskopu cyfrowego. Podstawą sprzętową
wspomnianego przyrządu jest karta akwizycji sygnałów PCI DAS-1200 firmy Measurement Com-
puting Corp. Jest to 16 kanałowa karta pomiarowa wyposaśona w 12 bitowy przetwornik A/C o
maksymalnej częstotliwości próbkowania 330kHz, dwa 12 bitowe przetwornik C/A, 3 liczniki oraz
24 cyfrowe we/wy. Programowa obsługa funkcji sprzętowych karty odbywa się poprzez wywołania
odpowiednich funkcji zapisanych w bibliotece dynamicznej DLL . Dostępna jest równieś biblioteka
takich funkcji dla środowiska LabVIEW. Funkcje te są znajdują się w palecie Functions Pallete
jako grupa o nazwie Universal Library.
Oscyloskop cyfrowy działa na zasadzie cyklicznej rejestracji w zadanym czasie stałej liczby
próbek sygnału i wyświetlaniu ich na ekranie. Dlatego podstawą projektowanego oscyloskopu po-
winna być funkcja pozwalająca na rejestrację z zadaną częstotliwością zadanej liczby próbek. Jedną
z takich funkcji dla karty DAS-1200 jest AInScFg (rys.1) z grupy Analog Input.
Rys.1. Parametry funkcji AInScFg
Jest to funkcja dokonująca rejestracji śCount” próbek z częstotliwością śRate” na wejściach analo-
gowych o numerach od śLowChan” do śHighChan” z karty pomiarowej o numerze podanej w śBo-
ardNum”. Zakres pomiarowy napięć podawany jest jako śRange”. Przy pomocy parametru
śOptions” mośna sterować trybem realizacji funkcji AInScFg (m.in. sposobem wyzwalania reje-
stracji i przesyłania danych do pamięci). Wyjściowy parametr śADData” jest tablicą z zarejestro-
wanymi próbkami. Natomiast wyjście śErrCode” słuśy do sygnalizowania poprawności przetwa-
rzania i ewentualnych przyczyn błędnego działania. Wyjściowa wartość śRate” jest rzeczywistą
częstotliwością próbkowania.
Część praktyczna
Po uruchomieniu programu LabVIEW rozpoczynamy tworzenie programu od wyboru nowego in-
strumentu ś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.
1
1. Na panelu uśytkownika w pierwszej kolejności umieszczamy elementy pozwalające 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ą) śDigital Con-
trol”. Następnie przesuwamy kursor do panelu uśytkownika i ponownie klikając myszką wsta-
wiamy 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” (poniewaś projektowany oscyloskop ma umośliwić obserwację tylko
jednego sygnału – dlatego do wyboru kanału wejściowego wystarczy nam ta jedna kontrolka).
Trzecim niezbędnym parametrem wejściowym funkcji AInScFg jest liczba rejestrowanych pró-
bek śCount” – dlatego umieszczamy na panelu uśytkownika jeszcze jedną kontrolkę śLiczba
próbek”, co pozwoli nam na sterowanie ilością próbek rejestrowanych w kolejnych cyklach pra-
cy oscyloskopu. Aby oscyloskop mógł prawidłowo pracować śLiczba próbek” oczywiście po-
winna być większa od zera, dlatego dobrze jest nadać jej dodatnią wartość początkową. Powin-
na to być wartość na tyle duśa, aby zapewnić wystarczającą rozdzielczość poziomą obrazu (co
najmniej 100 punktów) a zarazem niezbyt duśa, śeby oscyloskop w rozsądnym czasie odświeśał
ekran (co najwyśej 1000). W naszym przykładzie mośe to być 200 próbek.
2. Kolejny parametrem wejściowym funkcji AInScFg jest częstotliwość próbkowania śRate”. W
przypadku oscyloskopu zamiast podawania częstotliwości próbkowania, przy pomocy pokrętła
podstawy czasu ustawia się czas trwania pomiaru (tzn. ustalamy ile czasu przypada na jednostkę
długości osi poziomej ekranu np.: 5 ms/cm). W naszym przypadku wygodniejsze będzie okre-
ślanie całkowitego czasu trwania fragmentu sygnału wyświetlanego na ekranie w pojedynczym
cyklu pracy oscyloskopu. Dlatego umieszczamy na panelu uśytkownika kolejną kontrolkę typu
śHorizontal Pointer Slide” wybraną z grupy śNumeric” i nazywamy ją śCzas obserwacji [ms]”.
Konieczny parametr wejściowy funkcji AInScFg jakim jest częstotliwość próbkowania śRate”
uzyskamy dzieląc śLiczbę próbek” przez śCzas obserwacji”.
3. Kolejny krok to umieszczenie w programie funkcji AInScFg. Znajduje się ona podgrupie funk-
cji Analog Input grupy Uniwersal Library. Funkcję AInScFg umieszczamy na prawo od pozo-
stałych elementów na panelu programu. Następnie szpulką łączymy śNr karty” z wejściem
śBoardNum” funkcji AInScFg, a śNr kanału” z oboma wejściami śLowChan” i śHighChan”
funkcji AInScFg. Wejście śCount” łączymy z śLiczbą próbek”. Do obliczenia częstotliwości
próbkowania konieczne jest zastosowanie operatora dzielenia, do którego wejścia śx” dołącza-
my śLiczbę próbek” a do wejścia śy” śCzas obserwacji [ms]”. Poniewaś śCzas obserwacji
[ms]” będziemy zadawać w milisekundach, dlatego otrzymany iloraz naleśy pomnośyć przez
1000 aby otrzymać częstotliwość w hercach a nie w kilohercach. Mnośenie to realizujemy wy-
korzystując operator mnośenia i element śNumeric Constant” o wartości 1000. Wyjście opera-
tora mnośenia mośemy teraz połączyć z wejściem śRate” funkcji AInScFg. Nie obsadzone pa-
rametry wejściowe funkcji AInScFg śRange” i śOptions” przyjmą wartości domyślne, które w
naszym przypadku zapewnią poprawną pracę programu. W tym miejscu naleśy wrócić do pane-
2
lu uśytkownika i wpisać odpowiedni zakres nastawiania śCzasu obserwacji [ms]”. Jego wartość
minimalna jest ograniczona maksymalną częstotliwością próbkowania przetwornika A/C, po-
niewaś śCzas obserwacji” musi byś większy od iloczynu śLiczby próbek” i minimalnego okre-
su próbkowania. W naszym przypadku maksymalną częstotliwością próbkowania wynosi 330
kHz i dlatego rejestracja 200 próbek musi trwać co najmniej 0,606 ms. Jeśli próbek będzie 330
to minimalny czas obserwacji wyniesie 1 ms i taką wartość mośemy ustawić jako dolny zakres
nastaw śCzasu obserwacji [ms]”. Maksymalny czas obserwacji mośe być dowolny, ale rozsąd-
nie jest go ograniczyć do co najwyśej kilku sekund (proponujemy 100 ms).
4. Aby mośna było w trakcie uśywania naszego przyrządu rozpoznać ewentualne przyczyny nie-
prawidłowego jego działania, naleśy obsłuśyć wyjście śErrCode” funkcji AInScFg. 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 było przeczytać ten komunikat o błędzie potrzebny nam będzie wskaź-
nik tekstowy śString Indicator”, który z podgrupy śString & Path” wstawiamy do panelu uśyt-
kownika. Wskaźnik ten mośemy nazwać jako śBłąd”. Następnie wracamy do panelu programu i
łączymy wyjście śErrCode” funkcji AInScFg z wejściem śErrCode” funkcji ErrMsg oraz wyj-
ście śErrMsg” tej funkcji z wskaźnikiem śBłąd”.
5. W celu umośliwienia obserwacji na ekranie rzeczywistej częstotliwości próbkowania sygnału,
konieczne jest jeszcze wstawienia do panelu uśytkownika odpowiedniego wskaźnika. Mośe to
być wskaźnik cyfrowy, który nazywamy śf pr. [Hz]” i łączymy z wyjściem śRate” (po prawej
stronie) funkcji AInScFg.
6. W następnym kroku musimy zająć się obsługą wyjścia śADData” funkcji AInScFg. Poniewaś
wartości wyjściowe tej funkcji są liczbami całkowitymi z zakresu od 0 do 2 n-1 ( n – rozdziel-
czość przetwornika A/C) naleśy dokonać ich konwersji na wartość napięcia. Mośna do tego
wykorzystać
funkcję
ScaleArr,
która
dokonuje
konwersji
wejściowych
wartości
całkowitoliczbowych zapisanych w tablicy śADData” na wartości rzeczywiste z zakresu
Rys.2. Parametry funkcji ScaleArr
podanego na wejścia śMin” i śMax”. Funkcja ScaleArr dodatkowo wymaga podania czy war-
tości śADData” zapisane są na 12 czy na 16 bitach. Funkcję ScaleArr pobieramy z podgrupy
funkcji Signal Conditioning grupy Uniwersal Library i umieszczamy na prawo od funkcji AIn-
ScFg. Następnie szpulką łączymy wyjście śADData” AInScFg z analogicznym wejściem funk-
cji ScaleArr. Do wejścia śMin” i śMax” funkcji ScaleArr podłączymy natomiast wartości stałe
ś-5’ i ś5”, poniewaś taki jest domyślny zakres napięć wejściowych naszej karty pomiarowej.
Do wejścia ś16 or 12 bit” podłączamy wyjście z dowolnej kontrolki typu boolean umieszczo-
nej na panelu uśytkownika i opisanej ś12/16 bit”.
3
7. W oscyloskopie do obserwacji badanego sygnału niezbędny jest oczywiście ekran, do którego
budowy wykorzystamy instrument o nazwie śWaveform Graph”. Słuśy on do wykreślania
przebiegów czasowych i znajduje się w z grupie śGraph” palety śControls”. Po umieszczeniu
śWaveform Graph” na panelu uśytkownika wracamy do panelu programu, gdzie konieczne bę-
dzie odpowiednie przygotowanie danych dla śWaveform Graph”. Dane te muszą mieć postać
wiązki (bundle) złośonej z:
ó wartości początkowej śx0” współrzędnej śx” wykresu,
ó przyrostu śąx” współrzędnej śx” wykresu,
ó właściwych danych kreślonego przebiegu zapisanych w tablicy śy”.
Taką wiązkę tworzymy wykorzystując element śBundle” z grupy śCluster”. Po umieszczeniu
go w panelu programu ma on tylko dwa wejścia, dlatego konieczne jest dodanie mu jeszcze jed-
nego (ustawiamy kursor na lewej części śBundle”, klikamy prawym klawiszem myszki i wy-
bieramy śAdd Input”). Następnie łączymy wyjście śVal” funkcji ScaleArr z dolnym wejściem
śBundle”. Do górnego wejścia dołączamy stałą o wartości ś0”, poniewaś chcemy, śeby oś cza-
su na ekranie miała początek w zerze. Natomiast na wejście środkowe naleśy podać długość
okresu próbkowania tzn. odwrotność okresu próbkowania. Poniewaś chcemy, śeby skala cza-
sowa ekranu była w milisekundach dlatego okres próbkowania równieś musi być w milisekun-
dach. Taką wartość otrzymamy dzieląc śCzas obserwacji [ms]” przez śLiczbę próbek”. Ponie-
waś odwrotne dzielenie nasz program juś wykonuje (patrz pkt.4), dlatego wystarczy obliczyć
jego odwrotność (wykorzystując operator śReciprocal” z grupy śNumeric”), i podłączyć do
środkowego wejścia śBundle”. Teraz wystarczy tylko połączyć wyjście śoutput cluster” ele-
mentu śBundle” z wejściem śWaveform Graph” i tor przetwarzania naszego oscyloskopu jest
gotowy.
8. Następnie musimy zapewnić ciągłą pracę naszego oscyloskopu przez umieszczenie napisanego
przez nas programu wewnątrz pętli warunkowej śWhile Loop”, którą znajdziemy w grupie
śStructures” palety śFunction”. Pętlę wstawiamy do panelu program i do warunku jej zatrzyma-
nia podłączamy przycisk śSTOP”, który wcześniej musimy umieścić na panelu uśytkownika.
Pamiętamy równieś o zaznaczeniu opcji śStop If True” na warunku zakończenia pętli.
9. Zanim uruchomimy nasz oscyloskop naleśy jeszcze tak skonfigurować instrument śWaveform
Graph”, śeby obraz sygnału na ekranie był zawsze czytelnie wyświetlany bez konieczności
ręcznego skalowania obrazu. Taki efekt uzyskamy ustawiając dla obu osi opcje śAuto Scale”,
śLoose Fit” i śVisible Scale Label” oraz wpisując dla osi śx” nazwę śt [ms]” a dla osi śy” na-
zwę śU [V]”. Aby obsługa oscyloskopu była prosta i wygodna naleśy jeszcze uporządkować
rozmieszczenie elementów na panelu i 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: ŚŚŚŚŚŚ
Podstawy programowania w środowisku LabVIEW,
projekt oscyloskopu cyfrowego
Sprawozdanie
Zadania do wykonania:
1. Zbudować wg powyśszych wskazówek działający oscyloskop.
2. Ustawić nr karty pomiarowej na 0, a przełącznik 12/16 bit na 16 bit.
3. Wpisać liczbę próbek 200 i dokonać obserwacji sygnałów okresowych z kanałów od 0 do 4.
Zmieniając liczbę próbek na 199 i 201 sprawdzić kierunek przesuwania sygnału na ekranie.
4. Ustawić nr karty pomiarowej na 1, nr kanału na 0, a przełącznik 12/16 bit na 12 bit.
5. Podłączyć do zacisków analogowego wejścia karty generator i dokonać obserwacji sygna-
łów wytwarzanych przez generator.
6. Sprawdzić działanie suwaka czasu obserwacji i wpływ jego ustawienia na częstotliwość
próbkowania.
7. Dla trzech ustawień czasu obserwacji zanotować w tabeli uzyskaną częstotliwość próbko-
wania i sprawdzić czy spełniona jest zaleśność:
fpr = liczba próbek / czas obserwacji (1)
czas obserwacji
Uzyskana fpr
Obliczona wg (1) fpr
liczba próbek
[ms]
[Hz]
[Hz]
8. Do sprawozdania dołączyć wydruki panelu uśytkownika i panelu programu.
Wnioski:
6
Wyszukiwarka
Podobne podstrony:
120319122549 ee sweetsavoury id Nieznany1 05 Palestyna w 9 10w pne id 2 Nieznany2 07 Polska i Litwa po 1385r id Nieznany110913135536 bbc tews 36 yob id NieznanyAstromuzyka i astroterapia id 2 Nieznanykanapka dla dzieci serduszko id Nieznany130904121016 bbc vwitn train id Nieznany1 17 Rzesza Niemiecka w 11w id Nieznany111216124909 witn amundsen id 2 Nieznany111129121921 bbc vwitn japan id NieznanyOscyloskop cyfrowy z pamięcią FIFO111124155929 witn palestine id NieznanyLaserowy ,,kabel do RS232 id 2 Nieznany3 12 Wojna secesyjna w USA id 2 Nieznanysprawozdanie oscyloskop cyfrowyZasada działania oscyloskopu cyfrowego4 00021 2 FEA209544 71UEN B id Nieznanywięcej podobnych podstron