Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
PRZYRZĄDY
PRZYRZĄDY
WIRTUALNE
WIRTUALNE
Część 7
Wykresy, stringi,
pliki
k.jemielniak@wip.pw.edu.pl
http://www.cim.pw.edu.pl/kjemiel
ST 149, tel. 660 8656
prof. dr hab. Krzysztof Jemielniak
http://www.cim.pw.edu.pl/labview
Warszawa 2003
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Wykresy
(
Graphs
)
• Znajdują się na palecie
Controls>>All Controls>>Graphs
Przebiegi czasowe (
Waveform Chart
) – były
już omawiane
Wykresy zmiennych (
Waveform Graph
) w
funkcji ich indeksów (numeru próbki)
Wykresy XY (
XY Graph i Express XY Graph
) –
wykresy funkcji
Wykresy cyfrowe (
Digital Waveform Graph
)
VIs with graphs usually collect the data in an array and then plot the data to the graph.
The graphs located on the Controls» All Controls» Graph palette include the waveform graph and XY
graph. The waveform graph plots only single-valued functions, as in y = f(x), with points evenly distributed
along the x-axis, such as acquired time-varying waveforms. Express XY graphs display any set of points,
evenly sampled or not. Resize the plot legend to display multiple plots. Use multiple plots to save space on
the front panel and to make comparisons between plots. XY and waveform graphs automatically adapt to
multiple plots.
Single-Plot Waveform Graphs
The waveform graph accepts a single array of values and interprets the data as points on the graph and
increments the x index by one starting at x = 0. The graph also accepts a cluster of an initial x value, a .x, and
an array of y data. Refer to the Waveform Graph VI in the examples\general\graphs\gengraph.llb for
examples of the data types that single-plot waveform graphs accept.
Multiple-Plot Waveform Graphs
A multiplot waveform graph accepts a 2D array of values, where each row of the array is a single plot. The
graph interprets the data as points on the graph and increments the x index by one, starting at x = 0. Wire a
2D array data type to the graph, right-click the graph, and select Transpose Array from the shortcut menu to
handle each column of the array as a plot. Refer to the (Y) Multi Plot 1 graph in the Waveform Graph VI in
the examples\general\graphs\gengraph.llb for an example of a graph that accepts this data type.
A multiplot waveform graph also accepts a cluster of an x value, a x value, and a 2D array of y data. The
graph interprets the y data as points on the graph and increments the x index by x, starting at x = 0. Refer to
the (Xo, x, Y) Multi Plot 3 graph in the Waveform Graph VI in the examples\general\graphs\gengraph.llb
for an example of a graph that accepts this data type.
A multiplot waveform graph accepts a cluster of an initial x value, a .x value, and an array that contains
clusters. Each cluster contains a point array that contains the y data. You use the Bundle function to bundle
the arrays into clusters, and you use the Build Array function to build the resulting clusters into an array. You
also can use the Build Cluster Array, which creates arrays of clusters that contain inputs you specify. Refer
to the (Xo, x, Y) Multi Plot 2 graph in the Waveform Graph VI in the
examples\general\graphs\gengraph.llb for an example of a graph that accepts this data type.
Single-Plot XY Graphs
The single-plot XY graph accepts a cluster that contains an x array and a y array. The XY graph also accepts
an array of points, where a point is a cluster that contains an x value and a y value. Refer to the XY Graph VI
in the examples\general\graph\gengraph.llb for an example of single-plot XY graph data types.
Multiplot XY Graphs
The multiplot XY graph accepts an array of plots, where a plot is a cluster that contains an x array and a y
array. The multiplot XY graph also accepts an array of clusters of plots, where a plot is an array of points. A
point is a cluster that contains an x value and a y value. Refer to the XY Graph VI in the
examples\general\graph\gengraph.llb for an example of multiplot XY graph data types.
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Na osi X indeksy 0..max (co 1), wartości Y są
ciągiem liczb bez związku z czasem
Na osi X określona skala czasu (punkt
początkowy i przyrost), Y jest funkcją
czasu
Wykresy jednej zmiennej
macierz 1D
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Każdy wiersz macierzy jest oddzielnym
zbiorem danych (X
0
=0,
∆X=1) nie
związanych z czasem
Wykresy wielu zmiennych
Każdy wiersz macierzy jest oddzielną
funkcją czasu
If a 1D array is wired to a waveform graph, the graph assumes it is one plot. When a 2D array is wired to a
waveform graph, the graph assumes each row in that array is a separate plot.
Use the Build Array function to create a 2D array input for multiplot graphs:
Example 1: A combination of two single-plot examples with Xo and Delta X defined (Ex 1 from previous
slide). The Build Array function creates a cluster array input to the waveform graph. The terminal is an
array of clusters, because each graph is a cluster.
Example 2: A combination of two single-plot examples without Xo and Delta X defined (Example 2 from
the previous slide). The Build Array function creates a 2D array input to the waveform graph. The terminal
is a 2D array of double-precision numbers.
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Wykresy
(
Graphs
)
Kliknięcie prawym klawiszem na wykresie
umożliwia określenie wielu jego właściwości
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
• Oś X nie jest jednostajna
• Wartości na obu osiach sa
zawarte w oddzielnych
wektorach (macierzach 1D)
• Są bardziej elastyczne niż
Waveform graph
Wykresy XY
(
XYGraphs
)
Porównaj z budowaniem wykresu
dwóch zmiennych – tam było
budowanie macierzy, tu jest wiązanie
w klaster
Generate two arrays, one for X values and other for Y values. Bundle arrays wire into the XY graph.
X array 1,2,3,4,5 and a Y array 0,1,0,1,0 will result in a graph with points ((1,0)(2,1)(3,0)(4,1)(5,0)).
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Przykłady wykresów XY:
XY Graph.vi
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Ćwiczenie: zastosowanie
Waveform Graphs
Wygenerować i wykreślić przebieg trzech
funkcji o zadawanej częstotliwości, w
czasie 0,1s. Częstotliwość generowania
sygnału: 1000 Hz, wykres aktualizowany
co 0,1 s aż do naciśnięcia STOP
Poćwicz obsługę wykresu. Zastąp go
Waveform Chart
. Zrozum różnice między
nimi.
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Ćwiczenie:
Analiza Przebiegu.vi
Opracuj VI który
• w zadanym zakresie
zmiennej X symuluje
pomiary jako:
y=5*tanh(x)+2*cos(x)
z dodanym opcjonalnie
składnikiem losowym
• wyznacza wartość średnia,
max, min oraz wielomian
aproksymujący
y=a
0
+a
1
x+...+a
n
x
n
zadanego rzędu (n) wraz z
błędem średniokwadrato-
wym (mse)
• wykreśla wyniki pomiarów i
przebieg funkcji aproksy-
mującej
Użyj:
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Ćwiczenie:
Analiza Przebiegu.vi
- rozwiązanie
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Ćwiczenie: Okrąg.vi
Opracuj VI wyznaczający macierze X i Y zawierające zadaną liczbę
punktów okręgu o zadanym promieniu i współrzędnych środka
y=y
0
+r*sin(ϕ)
x
0
y
0
ϕ
x
y
x=x
0
+r*cos(ϕ)
Użyj:
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Stringi
•
String to sekwencja (łańcuch) znaków ASCII
•
Wykorzystywane do wyświetlania komunikatów, wyników pomiarów i
obliczeń, sterowania przyrządami, opisu danych w plikach itd.
•
Wskaźniki i zadajniki znajdują się na palecie
Controls »Text Control lub Text Indicator
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Tryby wyświetlania stringów
Zadajnik i wskaźnik stringowy ma wymiar określony przez
użytkownika. W razie potrzeby można dodać pasek przewijania
Sposoby wyświetlania: Normalny
Kodowy
Hasłowy
Hexadecymalny
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Funkcje obsługi stringów - zestawienie
String Length
Concatenate Strings
String Subset
To Upper Case
To Lower Case
Replace Substring
Search and Replace String
Match Pattern
Format Date/Time String
Scan From String
Format Into String
Spreadsheet String To Array
Array to Spreadsheet String
Build String Express
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Funkcje obsługi stringów – 1
Z
wraca liczbę znaków w stringu,
macierzy lub stringów
String Length
Łączy stringi wejściowe lub
macierz 1D stringów w jeden
string wynikowy
Concatenate Strings
Zwraca fragment stringu wejściowego. Deklaruje
się początek (
offset
) i długość (
length
) fragmentu
String Subset
Zamiana małych liter na duże i odwrotnie.
Znaki nie będące literami nie ulegają zmianie
To Upper Case
To Lower Case
Wstawia, usuwa lub zastępuje fragment
stringu wejściowego określony przez
początek (
offset
) i długość (
length
).
Replace Substring
Zastępuje jedno lub wszystkie wystąpienia
fragmentu stringu wejściowego innym
fragmentem.
Search and Replace String
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Funkcje obsługi stringów – 2
Wyszukuje w stringu wejściowym zadane wyrażenie (
regular
expression
) począwszy od zadanej pozycji (
offset
), a po znalezieniu
dzieli string na trzy.
Match Pattern
[~0-9]+
Jeden lub więcej znaków nie będących cyframi
^Panie
Słowo „Panie” jedynie wtedy gdy znajduje się na pozycji offset
Panie$
Słowo „Panie” jedynie wtedy gdy znajduje się na końcu stringu
(.*)
Najdłuższy string w nawiasach
([~( )]*)
Najdłuższy string w nawiasach nie zawierający nawiasów wewnętrznych
[ [ ]
Znak [
[BC][yóu][kg]
Byk, Bóg, Buk, Bug, Cug itp
[\t \r \n \s]+
Jedna lub więcej spacji, tabulatorów, końców wiersza, nowych linii
\s*
Zero lub więcej spacji
[0-9]+
Sekwencja jednej lub kilku cyfr
[ +-]
Spacja, znak plus lub minus
[Pp][Aa][Nn][Ii][Ee]
Wszystkie wersje słowa panie (duże-małe, np. Panie, pAnIE itp.)
PANIE
PANIE
Wyrażenie (
regular
expression
)
Znaki, które mają być znalezione
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Funkcje obsługi stringów – 3
Zamienia stringi, liczby, zmienne
logiczne, ścieżki na tekst zgodnie z
podanym formatem:
Format Into String
Skanuje string wejściowy i przetwarza go zgodnie z założonym
formatem (format string). Stosuj gdy dokładnie wiesz jak jest
sformatowany string wejściowy.
Scan From String
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Build Text – Express VI
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Ćwiczenie:
Oznaczenia zmiennych.vi
1.
Opracuj program
Extract String.vi
, odrzucający początkowe spacje i/lub tabulatory i
zwracający oznaczenie pierwszej zmiennej oraz pozostałą część stringu
W pliku tekstowym mamy wiersz zawierający zawierający oznaczenia zmiennych oddzielone
spacjami i/lub tabulatorami. Znaki takie mogą (nie muszą) występować także na początku i
końcu.
2. Wykorzystaj ten program jako subVI do zbudowania
Oznaczenia zmiennych.vi
, który
string wejściowy przetworzy na macierz stringów – nazw zmiennych
W drugim programie pętla while wykonywana jest do momentu w którym Output String z Extract
String.vi jest pusty, czyli nie ma już więcej oznaczeń zmiennych. W celu uniknięcia dodawania do macierzy
Oznaczenia pustego stringu na końcu, wprowadzono tu warunek sprawdzający. Innym możliwym
rozwiązaniem jest usunięcie ostatniego elementu macierzy po zakończeniu pętli while.
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Ćwiczenie:
Nadzór średniej z komunikatem.vi
Przebuduj
Nadzór sredniej.vi
tak, by zamiast sygnału dźwiękowego był
wyświetlany komunikat „Średnia wynosi”, wartość średniej z dokładnością do 3
miejsc po przecinku, jednostki (V) oraz tekst odpowiednio do sytuacji: „czyli jest
dopuszczalny” lub „czyli przekracza poziom alarmowy!”
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Operacje na plikach – organizacja VI
VI użytkowe wysokiego poziomu
VI i funkcje
średniego poziomu
Funkcje
zaawansowane
Odczyt i zapis danych
w formacie LabVIEW
(Express VI)
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Ćwiczenie: Zapis/Odczyt – Express
Poeksperymentuj z parametrami obu funkcji,
przeanalizuj strukturę pliku LMV
Opracuj program generujący pięć sinusoid o częstotliwościach i amplitudach 0..4, po
100 punktów w każdej, zapisujący wyniki w
LabVIEW Measurement File
, odczytujący
je i wykreślający na rysunku.
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
VI wysokiego poziomu, pliki tekstowe
Zamienia macierz 2D lub 1D liczb rzeczywistych (SGL) na tekst i
zapisuje w nowym pliku lub dopisuje do istniejącego. Można
transponować macierz przed zapisem. Tworzy pliki tekstowe
czytelne dla większości programów posługujących się arkuszami
kalkulacyjnymi.
Write To Spreadsheet File
Odczytuje zadaną liczbę linii lub wierszy z numerycznego pliku
tekstowego, poczynając od zadanej pozycji w pliku (
offset
) i
zamienia je na macierz 2D liczb rzeczywistych (SGL). Można
transponować macierz po odczytaniu. Można stosować do
odczytu arkuszy kalkulacyjnych zapisanych w formacie
tekstowym.
Read From Spreadsheet File
Zapisuje string w nowym lub dodaje do istniejącego pliku.
Write Characters To File
Odczytuje określoną liczbę znaków z pliku poczynając od
zadanej pozycji (
offset
).
Read Characters From File
Read Lines From File
Odczytuje określoną liczbę linii z pliku poczynając od zadanej
pozycji (
offset
).
Wszystkie VI wysokiego poziomu otwierają lub tworzą plik, wykonują odpowiednie operacje i zamykają go.
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
VI wysokiego poziomu – pliki binarne
Odczytuje macierz 1D lub 2D liczb całkowitych 16 bitowych ze
znakiem z pliku binarnego. Można używać do nieprzeskalowa-
nych danych otrzymanych bezpośrednio z DAQ, zapisanych
przez
Write To I16 File VI
.
Read From I16 File
Write To I16 File VI
Zapisuje macierz 1D lub 2D liczb całkowitych 16 bitowych ze
znakiem do istniejącego lub nowego pliku binarnego. Można
używać do nieprzeskalowanych danych otrzymanych
bezpośrednio z DAQ.
Read From SGL File
Odczytuje macierz 1D lub 2D liczb rzeczywistych (SGL) z
pliku binarnego. Można używać do przeskalowanych
danych otrzymanych bezpośrednio z DAQ, zapisanych przez
Write To SGL File VI
.
Write To SGL File
Zapisuje macierz 1D lub 2D liczb rzeczywistych (SGL) do
istniejącego lub nowego pliku binarnego. Można używać
do przeskalowanych danych otrzymanych bezpośrednio z
DAQ.
Wszystkie VI wysokiego poziomu otwierają lub tworzą plik, wykonują odpowiednie operacje i zamykają go.
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Ćwiczenie: Zapis/Odczyt – wysoki poziom
Opracuj program generujący pięć sinusoid o częstotliwościach i amplitudach 0..4, po
100 punktów w każdej, zapisujący wyniki w pliku binarnym, odczytujący je i
wykreślający na rysunku.
Zamień typ danych na I16,
potem na TXT.
Porównaj uzyskane pliki i wykresy.
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
VI i funkcje średniego poziomu
Otwiera istniejący lub tworzy nowy lub zastępuje istniejący plik
programowo lub z wykorzystaniem okna dialogowego. Można określić
pytanie/polecenie do użytkownika, domyślna nazwę pliku, ścieżkę
początkową lub maskę nazwy. Stosuj z funkcjami
Write File
oraz
Read File
.
Open/Create/Replace File
Odczytuje dane z otwartego pliku określonego przez
refnum
i zwraca je
jako
data
. Czytanie rozpoczyna się od bieżącej pozycji w pliku lub pozycji
określonej przez
pos mode
i
pos offset
. Interpretacja danych zależy od
formatu pliku określonym przez
byte stream type
.
Read File
Zapisuje dane (
data
) do otwartego pliku wskazanego przez
refnum
. Zapis
rozpoczyna się od pozycji określonej przez
pos mode
i
pos offset
dla plików
tekstowych i liczbowych, oraz na końcu pliku dla plików rekordów.
Write File
Zamyka otwarty plik wskazany przez
refnum
i zwraca ścieżkę dojścia do
pliku. Plik jest zamykany niezależnie od tego, czy wcześniej wystąpiły
błędy.
Close File
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Ćwiczenie: Zapis/Odczyt – poziom średni
Opracuj program generujący pięć sinusoid o częstotliwościach i amplitudach 0..4, po
100 punktów w każdej, zapisujący wyniki w pliku binarnym, odczytujący je i
wykreślający na rysunku.
Zamień typ danych na SGL, potem na I26,
potem na I8. Porównaj uzyskane pliki i
wykresy. Wypróbuj podawanie określonej
nazwy pliku w programie.
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Formatowanie wiersza arkusza kalkulacyjnego
• Tekstowe arkusze kalkulacyjne są często używanym
narzędziem wymiany i analizy danych
• Wśród wielu formatów tych arkuszy najczęściej stosowany
jest:
– Kolumny rozdzielone są znakami
tab (hex 09)
– Wiersze są rozdzielone znakami końca wiersza
(CR LF
czyli
hex 0D 0A)
• Wiersze takiego arkusza
ł
atwo tworzy się używając
Format
Into File
:
Np.:
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Ćwiczenie:
Nadzór średniej & Log.vi
Rozbuduj Nadzór średniej.vi tak, by czas od początku pomiarów i wartości pojedynczych
pomiarów oraz wartości średnie były na bieżąco zapisywane w pliku *.log o nazwie podanej
przed rozpoczęciem pomiarów, do odwołania lub wystąpienia błędu zapisu. W pierwszym wierszu
pliku podaj datę i godzinę rozpoczęcia pomiarów. Wykorzystaj funkcje
Get Date/Time String
oraz
Get Date/Time In Seconds
Nadzór średniej z dnia 2003-12-10 od godziny 18:23:23
0.000
0.197
0.066
0.100
0.158
0.118
0.201
0.179
0.178
0.301
0.006
0.114
0.401
0.573
0.252
0.501
0.301
0.293
0.601
0.187
0.354
0.701
0.843
0.444
Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn
Ćwiczenie:
Odczyt arkusza log.vi
Opracuj VI odczytujący dane zapisane przez
Nadzór średniej & Log.vi
,
pokazujący je w tablicy i na wykresie