LabView oscyloskop cyfrowy

background image

1

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.

background image

2

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-

background image

3

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”.

background image

4

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 „x

0

” 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.

background image

5

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

background image

6

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ść:

f

pr

= liczba próbek / czas obserwacji

(1)

8.

Do sprawozdania dołączyć wydruki panelu użytkownika i panelu programu.


Wnioski:

czas obserwacji

[ms]

liczba próbek

Uzyskana f

pr

[Hz]

Obliczona wg (1) f

pr

[Hz]


Wyszukiwarka

Podobne podstrony:
LabView oscyloskop cyfrowy
badanie oscyloskopu cyfrowego
Sprawozdanie 1 Oscyloskopy Cyfrowe
Oscyloskop cyfrowy
Instrukcja oscyloskop cyfrowy v Nieznany
Cwiczenie 1 (Wstep) Oscyloskopy Cyfrowe id 99010
Oscyloskop Cyfrowy czy Analogowy JQFSN4UWMYHD2UNNQFA6UACFWSQZWBVWUMRQMLA JQFSN4UWMYHD2UNNQFA6UACFWSQ
B - oscyloskop, Oscyloskop cyfrowy, Miernictwo elektroniczne - laboratorium
B - oscyloskop, Oscyloskop cyfrowy-artek, GRUPA 3
Oscyloskop cyfrowy
Labolatoria Oscyloskopy Cyfrowe id 261050
OSCYLOSKOP CYFROWY
Niezwykły oscyloskop cyfrowy

więcej podobnych podstron