background image

 

 

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 

 

background image

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 = 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 index by one starting at = 0. The graph also accepts a cluster of an initial value, a .x, and 

an array of 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 index by one, starting at = 0. Wire a 

2D array data type to the graph, right-click the graph, and select Transpose Array from the shortcut menu to 

background image

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 value, a  x value, and a 2D array of data. The 

graph interprets the data as points on the graph and increments the index by  x, starting at = 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 value, a .value, and an array that contains 

clusters. Each cluster contains a point array that contains the 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 array and a array. The XY graph also accepts 

an array of points, where a point is a cluster that contains an value and a 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 array and a 

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 value and a value. Refer to the XY Graph VI in the 

examples\general\graph\gengraph.llb for an example of multiplot XY graph data types. 

 

background image

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. 

background image

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

 

background image

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.

 

 

background image

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

 

 

background image

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

 

background image

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

 

 

background image

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

 

background image

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

 

background image

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

 

background image

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.

 

background image

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.

 

background image

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 

 

background image

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

 

background image

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