Warszawa, 2003
Dokument ten jest pomocą dydaktyczną do wykładów prowadzonych przez autora na Wydziale
Inżynierii Produkcji Politechniki Warszawskiej. Zawiera podstawowy kurs budowy wirtualnych przyrządów
kontrolno-pomiarowych w środowisku LabVIEW firmy National Instruments. Został opracowany w oparciu
o materiały tej firmy – podręczniki dołączane do oprogramowania (patrz niżej Bookshelf), LabVIEW Basic
Course, oraz inne dostępne w internecie (
www.ni.com
).
UWAGA! Dokument będzie ulegał zmianom, polegającym przede wszystkim na spolszczaniu
opisów między ilustracjami. Ponadto jest to tylko część pierwsza, będą następne.
Źródłem sygnałów w każdym układzie pomiarowym jest czujnik (przetwornik) odpowiedni do
badanego zjawiska fizycznego (termometr, siłomierz, akcelerometr itp.). Jest on bezpośrednio podłączony do
układu wstępnego przygotowania sygnału, specjalnie dostosowanego do danego czujnika. Z tego układu
otrzymywany jest sygnał napięciowy (np.
÷10V), który może być podany na wejście układu pomiarowego,
np. oscyloskopu (jak na rysunku), analizatora częstotliwości, woltomierza… Przyrządów tych może być
bardzo wiele, a każdy z nich wyspecjalizowany do wykonywania określonego zadania zdefiniowanego dość
ściśle przez producenta, często bardzo kosztowny. Każdy przyrząd jest wyposażony w odpowiednie
przyciski, pokrętła, wskaźniki czy wyświetlacze dopasowane do założonych zadań przyrządu. Użytkownik
nie ma z reguły możliwości zmieniania sposobu jego działania. Jeśli potrzebne mu są nowe możliwości,
musi kupić kolejny przyrząd. Podobnie jest z urządzeniami sterującymi, które generują pożądane sygnały
analogowe lub cyfrowe.
Współcześnie istnieje jednak alternatywa – wszystkie, a przynajmniej zdecydowaną większość przyrządów
tradycyjnych możemy zastąpić komputerem wyposażonym w kartę DAQ, odpowiadające jej
oprogramowanie (driver) i język programowania (TestPoint, MatLab, C++, LabVIEW i wiele innych)
pozwalający na budowę tzw. wirtualnych przyrządów pomiarowych i sterujących. Wykorzystują one
ogromne i stale rosnące możliwości komputerów do obliczeń i prezentacji wyników, będąc przy tym – jeśli
chodzi o funkcjonalność – zdefiniowane przez użytkownika, a nie producenta sprzętu. Tak więc sygnały
mogą być podane nie na wejście oscyloskopu, lecz karty w komputerze, w którym jest program realizujący
zadania oscyloskopu – czyli oscyloskop wirtualny. Tu też możemy mieć przyciski, pokrętła itp., tyle że
obsługiwane będą one myszką. Gdy potrzebny będzie inny przyrząd, wystarczy wyłączyć oscyloskop i
uruchomić.... co tyko jest nam potrzebne. Jeśli jeszcze nie mamy odpowiedniego programu, możemy go
sobie napisać. To nawet nie jest trudne. Ten kurs pokaże jak się to robi.
Współczesny system akwizycji, prezentacji i analizy danych składa się z czujników, układu przygotowania
sygnału, karty DAQ oraz oprogramowania kształtowanego dowolnie przez użytkownika. Po pierwsze będzie
to program do akwizycji danych (przetwarzania sygnałów na postać cyfrową i ich zapisu na dysku). Bardzo
przydatny będzie zwykle program do wizualizacji zarejestrowanych pomiarów oraz ich analizy i prezentacji
wyników tejże analizy.
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Wprowadzenie sygnałów do komputera
BNC-2120
SCB-68
SC-2075
Do wprowadzenia sygnałów do komputera niezbędny jest odpowiedni terminal przyłączeniowy,
wyposażony w gniazda, do których można włączyć przewody z układu przygotowania sygnału. Terminal ten
z kolei jest połączony z kartą DAQ. Trzy przykładowe terminale firmy National Instruments przedstawiono
na tym rysunku.
Rozdzielczość: w trakcie wprowadzanie sygnału do komputera, przetwornik analogowo-cyfrowy
(A/C) zamienia sygnał analogowy (napięcie) na postać cyfrową – liczby binarne. Tak więc każdej liczbie
odpowiada określony poziom napięcia wejściowego. Im większa rozdzielczość przetwornika, tym więcej jest
tych poziomów, np. przetwornik 3-bitowy ma zaledwie 2
3
=8 poziomów, 12-bitowy (dość popularny, tani)
ma ich już 2
12
=4096, zaś 16 bitowy, aż 2
16
=65536. Oznacza to, że przy zakresie 0 10V przetwornik 12-
bitowy ma rozdzielczość 10/1098=2.4mV, zaś 16-bitowy aż 0.15mV.
Przy okazji warto zauważyć, że dane otrzymane z przetwornika 12 i 16 bitowego, zajmują w pamięci
komputera i na dysku tyle samo miejsca – 2 byty (8 bitów każdy) na próbkę.
Zakres: O ile rozdzielczości przetwornika A/C nie można zmienić, zakres sygnału wejściowego jest
często możliwy do wybrania przez użytkownika – najczęściej jest to 0
÷10V lub –10÷10V. Należy pamiętać
o tym, że rozdzielczość przetwornika jest rozciągnięta na zadeklarowany zakres. Im jest on większy, tym
gorsze odwzorowanie sygnału. Stąd należy starannie dobierać zakres przetwornika, do zakresu sygnału
wejściowego. Jeśli sygnał jest tylko dodatni, a wybrany zostanie zakres -10
÷10V, rozdzielczość ulegnie
niepotrzebnie dwukrotnemu zmniejszeniu. Dla przetwornika 12-bitowego, rozdzielczość dla zakresu 0
÷10V
wynosi 2.4mV, zaś dla zakresu –10
÷10V 4.8mV
Wzmocnienie: Właściwy dobór wzmocnienia (po dobraniu zakresu) umożliwia maksymalne
wykorzystanie rozdzielczości przetwornika A/C. Sygnał wejściowy jest mnożony przez wartość większą od
jedności, lub mniejszą od jedności – w tym drugim przypadku, jest to oczywiście osłabienie sygnału
wejściowego. Dzięki temu na przetwornik A/C podawany jest sygnał o zakresie zbliżonym (nieco
mniejszym) od założonego zakresu przetwornika. Wzmocnienie dla kart National Instruments nie jest
podawane w postaci współczynnika wzmocnienia (na rysunku jest on równy 10) lecz jako zakres sygnału
wejściowego (input limits) co jest znacznie wygodniejsze dla użytkownika. Na rysunku jest to 0
÷1V.
Ponieważ sprzęt National Instruments jest sterowny programowo, ustawienie tak zakresu przetwornika jak
zakresu sygnału wejściowego jest łatwe i może być zmieniane między pomiarami. Wzmacniacz na karcie
DAQ ma określone stopnie wzmocnienia, jednakże użytkownik podaje rzeczywisty zakres sygnału
wejściowego, a program dobiera maksymalne wzmocnienie takie, by wzmocniony sygnał mieścił się w
zakresie przetwornika A/C.
Przetwarzanie analogowo – cyfrowe polega na zamianie ciągłego sygnału (analogowego)
napięciowego na ciąg liczb całkowitych (szereg czasowy), tzn. sygnał jest mierzony z częstotliwością
próbkowania f , czyli w określonych odstępach czasu
∆t=1/f.
Próbkowanie ze zbyt niską częstotliwością prowadzi do mylnej interpretacji częstotliwości sygnału
odtworznego jako niższej niż rzeczywista. To „ukrywanie” się sygnału za „pseudonimem” (alias) nazywamy
aliasingiem.
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Pozorne wsteczne obroty
1
2 3 4 5 6 7
8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
Wskaźnik oglądany 10 razy na obrót wskazówki
wskaźnik oglądany 9 razy rzadziej
Wyobraźmy sobie, że spoglądamy na obracającą się wskazówkę wskaźnika 10 razy na obrót tej
wskazówki. Orientujemy się dobrze w szybkości, z jaką się obraca i kierunku obrotu. Gdybyśmy jednak
oglądali ją 8 razy rzadziej, możemy odnieść wrażenie, że obraca się znacznie wolniej w przeciwnym
kierunku. To znany efekt śmigła lub koła dyliżansu obracającego się na filmie raz w jedną, raz w drugą
stronę. Na tym właśnie polega aliasing.
Zgodnie z twierdzeniem Shanona, w celu uniknięcia aliasingu, sygnał musi być próbkowany z
częstotliwością większą niż dwukrotność najwyższej częstotliwości występującej w sygnale. Maksymalna
częstotliwość sygnału, która może być właściwie (bez aliasingu) zinterpretowana przy określonej
częstotliwości próbkowania nosi nazwę częstotliwości Nyquista i jest równa połowie częstotliwości
próbkowania. Sygnału o częstotliwości wyższej ukażą się zniekształcone w postaci „aliasów” o
częstotliwościach pomiędzy 0 a częstotliwością Nyquista. Tę zniekształconą częstotliwość można
wyznaczyć jako wartość bezwzględną różnicy między rzeczywistą częstotliwością sygnału, a najbliższą
wielokrotnością częstotliwości próbkowania. Przykłady pokazano na rysunku.
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Próbkowanie z różnymi częstotliwościami
Na pytanie „jak wysoka winna być częstotliwość próbkowania?” odpowiedź nie jest oczywista. W pierwszej
chwili można by pomyśleć, że najwyższa, jaka jest dostępna dla danego przetwornika A/C. To jednakże
może spowodować, że dostępna pamięć lub miejsce na dysku będą niewystarczające. Powyżej pokazano
kilka przykładów. Sygnał sinusoidalny próbkowany z częstotliwością (f
pr
) równą częstotliwości samej
sinusoidy f (raz na okres) zostanie odtworzony jako wartość stała (rys. A). Po zwiększeniu f
pr
do 7/4 f
otrzymamy wprawdzie sinusoidę, lecz o częstotliwości mniejszej niż oryginalna (B). Przy f
pr
=2f sygnał
cyfrowy ma tę samą częstotliwość co analogowy (C). Do analizy sygnału w dziedzinie czasu jednakże,
znacznie korzystniejsze byłoby dokładniejsze odwzorowanie sygnału analogowego, przez zastosowanie np.
f
pr
=10f, jak pokazano na rysunku D.
Jak już wiemy, w celu uniknięcia aliasingu, należy zastosować częstotliwość próbkowania co
najmniej dwukrotnie wyższą, niż najwyższa interesująca nas częstotliwość występująca w sygnale. Co zrobić
jednak, gdy w sygnale występują (lub mogą występować) składowe o wyższych częstotliwościach? Należy
zastosować filtr dolnoprzepustowy, eliminujący składowe o wyższych częstotliwościach niż tzw.
częstotliwość odcięcia filtru. Mówiąc ściśle, tak moglibyśmy postąpić dysponując filtrem idealnym, który
odcina dokładnie wszystkie składowe „od razu”. Filtry rzeczywiste jednak mają pewne pasmo przejściowe,
w którym osłabienie sygnału rośnie wraz z oddalaniem się od częstotliwości odcięcia. Szybkość tego
osłabiania zależy od zastosowanego filtru. Żeby tymczasem nie wnikać w szczegóły powiedzmy tyko dla
uproszczenia, że jako ogólne zalecenie można przyjąć częstotliwość próbkowania 4-krotnie wyższą niż
najwyższa interesująca nas częstotliwość, a częstotliwość odcięcia filtru dolnoprzepustowego równą f
max
.
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Czym jest LabVIEW?
Program napisany w
LabVIEW nazywamy
przyrządem wirtualnym
(
Virtual Instrument
),
w skrócie
VI
W językach ogólnego przeznaczenia, dużą rolę odgrywa sam zapis programu (kod). Trzeba wiele
uwagi poświęcić właściwej składni (przecinki, kropki, średniki, nawiasy itd.). Pomyłka w składni sprawia, że
program nie daje się uruchomić. LabVIEW jest językiem programowania graficznego, w którym funkcje
reprezentowane są przez ikony, a łączące je przewodami określają sposób przepływu danych w programie,
podobnie jak na schematach blokowych programów. LabVIEW zawiera w sobie wszechstronność i
możliwości języków ogólnego przeznaczenia, a jest przy tym łatwy w użyciu, co znacznie skraca tak czas
nauki jak tworzenia własnych aplikacji. Zawiera przy tym wygodne narzędzia do akwizycji danych, ich
analizy i prezentacji
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Panel czołowy
(Front Panel)
• Zadajniki
(Controls)
=
wejścia
• Wskaźniki
(Indicators)
=
wyjścia
Diagram
(Block Diagram)
• Program towarzyszący
panelowi czołowemu
• składniki (węzły)
połączone przewodami
Podstawowe elementy VI
Terminale
Wskaźnikom i zadajnikom odpowiadają terminale
Na panelu czołowym znajdują się zadajniki (controls) i wskaźniki (indicators)
Use the Controls palette to place controls and indicators on the front panel. The Controls palette is available
only on the front panel. Select Window»Show Controls Palette or right-click the front panel workspace to
display the Controls palette. You also can display the Controls palette by right-clicking an open area on the
front panel. Tack down the Controls palette by clicking the pushpin on the top left corner of the palette.
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Wskaźniki i zadajniki cyfrowe
pokrętła i zegary
Wskaźniki i zadajniki
numeryczne
Suwaki
pionowe
poziome
Use the front panel controls and indicators located on the Controls palette to build the front panel. Controls
are knobs, push buttons, dials, and other input devices. Indicators are graphs, LEDs, and other displays.
Controls simulate instrument input devices and supply data to the block diagram of the VI. Indicators
simulate instrument output devices and display data the block diagram acquires or generates.
Change the value of a slide control or indicator by using the Operating tool to drag the slider to a new
position, by clicking
a point of the slide object, or by using the optional digital display. Slide controls or indicators can display
more than one value. Right-click the object and select Add Slider from the shortcut menu to add more
sliders.
The rotary objects operate similarly to the slide controls and indicators.Change the value of a rotary control
or indicator by moving the needles, by clicking a point of the rotary object, or by using the optional digital
display.Rotary controls or indicators can display more than one value. Right-click the object and select Add
Needle from the shortcut menu to add new needles.
Digital controls and indicators are the simplest way to enter and display numeric data. You can resize these
front panel objects horizontally to accommodate more digits. You can change the value of a digital control or
indicator by using the following methods:
• Use the Operating or Labeling tool to click inside the digital display window and enter numbers from the
keyboard.
• Use the Operating tool to click the increment or decrement arrow buttons of a digital control.
• Use the Operating or Labeling tool to place the cursor to the right of the digit you want to change and press
the up or down arrow key on the keyboard.
Use the time stamp control and indicator to send and retrieve a time and date value to or from the block
diagram. You can change the value of the time stamp control by using the following methods:
• Right-click the constant and select Format & Precision from the shortcut menu.
• Click the Time/Date Browse button, to display the Set Time and Date dialog box.
• Select Data Operations»Set Time and Date from the shortcut menu to display the Set Time and Date dialog
box. You also can right-click the time stamp control and select Data Operations»Set Time to Now
from the shortcut menu.
Use the Boolean controls and indicators to simulate buttons, switches, and lights. Use Boolean controls and
indicators to enter and display Boolean (TRUE/FALSE) values. For example, if you are monitoring the
temperature of an experiment, you can place a Boolean warning light on the front panel to indicate when the
temperature goes above a certain level.
Use the string and path controls and indicators to simulate text entry boxes and labels and to enter or return
the location of a file or directory.
Use the combo box control to create a list of strings you can cycle through on the front panel. A combo box
control is similar to a text or menu ring control. However, the value and data type of a combo box control are
strings instead of numbers as with ring controls.
Use graphs and charts to display plots of data in a graphical form.
Ring controls are numeric objects that associate numeric values with strings or pictures. Ring controls appear
as pull-down menus that users can cycle through to make selections.
Ring controls are useful for selecting mutually exclusive items, such as trigger modes. For example, use a
ring control for users to select from continuous, single, and external triggering.
Use enumerated type controls to give users a list of items from which to select. An enumerated type control,
or enum, is similar to a text or menu ring control. However, the data type of an enumerated type control
includes information about the numeric values and the string labels in the control. The data type of a ring
control is numeric.
Note You cannot allow the user to enter undefined values in enumerated type controls, and you cannot assign
specific numeric values to items in enumerated type controls. If you need this functionality, use a ring
control.
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Wskaźniki i zadajniki
cd..
Menu
Use graphs and charts to display plots of data in a graphical form.
Ring controls are numeric objects that associate numeric values with strings or pictures. Ring controls appear
as pull-down menus that users can cycle through to make selections.
Ring controls are useful for selecting mutually exclusive items, such as trigger modes. For example, use a
ring control for users to select from continuous, single, and external triggering.
Use enumerated type controls to give users a list of items from which to select. An enumerated type control,
or enum, is similar to a text or menu ring control. However, the data type of an enumerated type control
includes information about the numeric values and the string labels in the control. The data type of a ring
control is numeric.
Note You cannot allow the user to enter undefined values in enumerated type controls, and you cannot assign
specific numeric values to items in enumerated type controls. If you need this functionality, use a ring
control.