You are on page 1of 56

>Kurs LabVIEW>Istota

LabVIEW - Istota
Moj intencj jest przekazanie w mo liwie tre ciwy sposb tego czego nauczy em si o tym narz dziu w pracy. Dlatego nie zostan tutaj opublikowane adne dziwne sztuczki dla zaawansowanych, a jedynie podstawowa wiedza - umo liwiaj ca jak najszybsze zapoznanie si z narz dziem i przej cie do etapu wykonywania projektw i programw LABView. Skoncentruje si na rzeczach, ktre sprawia y mi problemy w zrozumieniu i w moim przekonaniu poch on y zbyt du o czasu na zrozumieniu tych mechanizmw. Wszelkie sugestie prosz kierowa na mj adres e-mail: witold at kaczurba .pl . B d ogromnie wdzi czny za wszelkie informacje krytyczne, sugestie oraz komentarze. Labview jest narz dziem firmy National Instruments, s u cym do tworzenia programw. Istot r nicy wzgl dem standardowych narz dzi jest:
y y

sposb opracowywania programw - nie s one pisane w sekwencyjny sposb; projekt stanowi rysunek przep ywu informacji atwa komunikacja z zewn trznymi urz dzeniami pomiarowymi

Programy stworzone przez Labview nazywane s Wirtualnymi Narz dziami (VI - Virtual Instrument). Przetwarzaj one (najcz ciej) dane pomiarowe pozyskane z interfejsw komputera. Tak wi c komputer stanowi niejako instrument - przedstawiaj cy opracowane dane, czy te podejmuj cy ci le okre lone zadanie.

Okno pojawiaj ce si po uruchomieniu LabVIEW

Po wybraniu opcji Blank VI uka e si nam okno:

LabVIEW

Elementy paska narz dzi (Toolbar) Run - uruchamia program (pojedyncze wykonanie) Run Continously - uruchamia programw trybie ci g ym (po zako czeniu - rozpoczyna ponownie) Abort Execution - przerywa wykonywanie programu Pause - wstrzymuje (pauzuje) wykonywanie programu Text Settings - ustawienia tekstu Align Objects -pozwala rozmieszcza zaznaczone obiekty w okre lony sposb Distribute Objects -pozwala rozmieszcza zaznaczone obiekty w okre lony sposb

Resize Objects - pozwala zmienia wielko

zaznaczonych obiektw

Reorder - uk ada obiekty (ktry jest z przodu, ktry z ty u; pozwala grupowa je itp.) Show Context Help Window - bardzo przydatna i por czna pomoc dotycz ca funkcji i elementw LabVIEW Icon - ikona

LabVIEW - Okienka, pomoc


Standardowo projekt tworzony jest w dwch oknach:
y y

Panelu frontowy Diagramie blokowym

Istotna jest rwnie ikona opisuj ca program (VI).

Panel frontowy nich stanowi interfejs graficzny przewidziany dla u ytkownika.Diagram blokowy opisuje sposb przep ywu informacji, rd o ch pozyskania itp.Diagram blokowy nie jest widzialny dla u ytkownika programu.

Zatem standardowym sposobem tworzenia aplikacji: b dzie stworzenie kontrolek na panelu frontowym. Z ich pomoc u ytkownik b dzie mg wciska przyciski, jak rwnie ogl da wszelkiego rodzaju wykresy i warto ci przedstawiane przez program. Kontrolki na panelu frontowym s ci le powi zane z elementami diagramu blokowego. Umieszczenie na panelu frontowym elementu spowoduje pojawienie si nowego elementu w diagramie blokowym. Diagram blokowy opisuje sposb przep ywu informacji, oraz funkcjonowania algorytmu. Zachowanie si kontrolek na panelu frontowym jest w a nie okre lone przez diagram blokowy.

Palety panelu frontowego


Po rozpocz ciu pierwszego projektu (Blank VI) otrzymujemy poni szy ekran.W celu zapoznania si z paletami - otworzymy je. Wybieramy z zak adki: Menu -> Window -> Navigation Window Menu -> Window -> ToolsPalette

Menu -> Window -> Controls Palette Menu -> Window -> Show Errors List P niej przejdziemy do diagramu blokowego.

LabVIEW - Panel frontowy

Wymienione okienka/palety u ywane s do tworzenia i nawigacji projektu. S one nieodzownym elementem pracy z LabVIEW. Przedstawiono je na kolejnym rysunku.

Okna ktre mo emy pokaza to:


y y y y

Navigation Window - okno pokazuje rzut projektu w pomniejszeniu Controls Palette - paleta z funkcjami ktre mo emy u y do projektu Tools Palette - paleta z narz dzami do manipulowania elementami Error List - lista b dw w projekcie

Panele diagramu blokowego


Jak wspomniano - program tworzony jest w dwch oknach (panelu frontowym i diagramie blokowym). W celu przej cia do diagramu blokowego nale y skorzysta z opcji menu: Menu -> Window -> Show Block Diagram lub wcisn skrt klawiszowy CTRL+E.

LabVIEW - Diagram blokowy

Analogicznie jak poprzednio - przyjrzymy si paletom diagramu blokowego. Wybieramy z zak adki: Menu -> Window -> Navigation Window Menu -> Window -> ToolsPalette

Menu -> Window -> Functions Palette. Okno Show Errors List jest takie samo dla diagramu blokowego - jak i dla panelu frontowego, wi c pominiemy je. Nale y zwrci przede wszystkim uwag naFunctions Palette. Funkcj tej palety jest dostarczenie elementw s u cych do tworzenia algorytmu. W panelu Functions Palette diagramu blokowego znajdziemy m.in.operacje arytmetyczne, logiczne, p tle i inne elementy s u ce do programowania. Efekt oblicze mo e trafi do elementw ekspozycyjnych panelu frontowego (chc c wy wietli wynik - wystarczy pod czy terminal zawieraj cy interesuj cy nas wynik do wska nika).

LabVIEW - Palety diagramu blokowego


y y y

Navigation Window - analogicznie jak poprzednio okno pokazuje rzut projektu w pomniejszeniu Functions Palette - paleta z funkcjami ktre mo emy u y do projektu Tools Palette - analogicznie jak paleta z narz dzami do manipulowania elementami diagramu blokowego

LabVIEW - Tworzenie VI (1)


W tej cz ci planuje pokaza w du ym streszczeniu tworzenie pierszego VI (programu VI). Jak wspomniano nale y:
y y

stworzy panel frontowy - stanowi cy interfejs u ytkownika stworzy diagram blokowy - opisuj cy dzia anie VI

Tworzymy nowy projekt (panel frontowy): Menu>File> New VI Rozwijamy palety (panel frontowy), ktre b dziemy u ywa do tworzenia projektu: Menu>Window>Show Controls Palette Menu>Window>Show Tools Palette

Korzystaj c z Controls Palette oraz Tools Palette - tworzymy panel frontowy VI Klikaj c na Controls Palette - wybieramy interesuj ce nas elementy panela frontowego. Wybierzemy pola wy wietlaj ce: Num Ctrls>Num Ctrl Umieszczamy kontrolk na panelu frontowym Num Inds >Num Ind Umieszczamy pole wy wietlaj ce na panelu frontowym Buttons >OK Button Umieszczamy przycisk na panelu frontowym Buttons >Toggle Switch Umieszczamy prze cznik na panelu frontowym LEDS > Square LED Umieszczamy diod na panelu frontowym

Otrzymany panel frontowy (zapisany pod nazw vi_first.vi) Przechodzimy nast pnie do diagramu blokowego. (przyciskaj c CTRL+E lub wybieraj c z menu: Menu>Window >Show Block Diagram

LabVIEW - Tworzenie VI (2)


Po wykonaniu cznno ci z poprzedniej strony otrzymamy poni szy ekran:

Otrzymany diagram blokowy

Korzystaj c z funkcji dost pnych w oknie diagramu blokowego - u o ymy algorytm dzia ania panela frontowego,tak aby dodadawa wpisan liczb i wy wietla j na wska niku. W celu manipulowania elementami diagramu blokowego, jak rwnie ich edycji - korzystamy z palety narz dzi (Tools Palette) Automatic Tool Selection - automatycznie wybiera narz dzie w zale no ci od wskazania kursora Operate Value - pozwala na zmian warto ci wybranego elementu

Position/Size/Select- Wybiera element, zmienia jego rozmiar lub pozycj

Edit Text - edytuje tekst

Connect wire - czy elementy

Object shortcut menu -tworzy skrt do obiektu

Scroll Window -przewija okno

Set/Clear Breakpoint - ustawia / kasuje pu apk (breakpoint) - s u y do wykrywania b dw


Probe data - pobiera dane

Get Color - pobiera kolor - zgodnie ze wskazaniem

Set Color - ustawia kolor

Z kolei - paleta funkcji (Function Palette) - pozwala nam na wybranie interesuj cej nas funkcji spo rd podstawowych dost pnych. Na diagram blokowy k adziemy nast puj ce elementy: Operacja AND - wybieramy Arith/Compare>Boolean>And oraz k adziemy do diagramu blokowego Dodawanie - wybieramy Arith/Compare>Numeric>Add oraz k adziemy do diagramu blokowego Sta a - wybieramy Arith/Compare>Numeric>Constant oraz k adziemy do diagramu blokowego

Po wybraniu elementw, po o eniu - oraz poprzesuwaniu obiektw na diagram blokowy powinni my otrzyma nast puj cy schemat.

Rozmieszczone elementy na diagramie blokowym

Kolejn cz ci zadania jest po czenie elementw.Z Tools Palette wybieramy narz dzie Connect wire, s u ce do czenia obiektw diagramu blokowego.Po czenia powinny wygl da jak przedstawiono poni ej.

Rozmieszczone i po czone elementy na diagramie blokowym

Warto zapoznana si z funkcj automatycznego wyboru narz dzi (Automatic Tool Selection). Jest ona niezwykle przydatna i pozwala na szybkie i sprawne budowanie elementw programu. W wi kszo ci przypadkw - zamiast r cznie wybiera narz dzia - Automatic Tool Selection - zrobi to za nas. Stanowi to bardzo du

Uruchomienie

W celu uruchomienia projektu - przechodzimy do panela frontowego (Menu>Window>Show Front Panel) (lub przyciskamy CTRL+E).

W panelu frontowym wystarczy przycisn przycisk Run Continously znajduj cy si na pasku narz dzi - jak pokazano po lewej stronie.Uruchomi to projekt. W celu zatrzymania - nale y przycisn czerwon ikon - pierwsz znajduj c si po prawej stronie od Run Continously .

Zbadaj jak dzia a przycisk "OK Button " - gdy prze cznik Boolean jest w pozycji grnej. Zobacz rwnie wskazanie pola Numeric 2, gdy zmieniamy warto pola Numeric.

Analiza: W naszym przypadku uruchomili my algorytm przyciskiem Run Continously. W rzeczywisto ci nasz algorytm powininen zako czy si po dostarczeniu warto ci obliczonych do kontrolek "Numeric 2" i "Boolean 2". Oznacza to e po dodadniu i wykonaniu funkcji AND program zako czy si . Aby sprbowa tego - skorzystaj z przycisku Run. Run Continously zapewnia, e po wykonaniu algorytmu - zostanie on wykonany od pocz tku. Przerwanie wykonania mo e nast pi po przyci ni ciu przycisku STOP. Dzia anie przycisku "OK Button" Dzia anie przyciskw, prze cznikw i podobnych elemenetw jest ci le zale ne od funkcji mechanicznej jak one realizuj . Je eli u ytkownik nie zmieni jej w przypadku "OK Button" powinna ona dzia a w przyk adzie, powoduj c krtkie migni cie po zwolnieniu przycisku. Aby zmieni funkcj mechaniczn realizowan przez przycisk nale y klikn prawym przyciskiem na prze cznik (przycisk) i zmieni "Mechanical Action" na inn opcj . Zapiszmy przyk ad pod nazw vi_first.vi

LabVIEW - Kontrolki, wska niki sta e


W poprzednim rozdziale stosowali my kilka rodzajw kontrolek.Jedne z nich pobiera y dane, inne wy wietla y. Warto podzieli w jaki sposb typy danych stosowanych w Labview.
y

kontrolka (Control, np. Numeric Control) - s u y do ustalania warto ci; ona mo e by rd em danych

y y

wska nik (Indicator, np. Numeric Indicator) - s u y do wy wietlania warto ci (np. warto ci numerycznej) sta a (Constant, Numeric Constant) - jest rd em informacji; w przeciwie stwie do dwch pierwszych - sta e wyst puj tylko i wy cznie na diagramie blokowym

Dla przyk adu - pos u my si warto ci liczbow (Numeric). Poni ej przedstawione s r nic w ich wygl dzie Numeric Control kontrolka Panel Frontowy Numeric Indicator wskaznik Numeric Constant sta a Brak

Diagram blokowy Pozwala u ytkownikowi wprowadzi warto ; zostaje ona przekazana do kolejnych funkcji. Na panelu frontowym widzimy po lewej stronie przyciski umo liwiaj ce zmian warto ci. Ma y trjk t znajduj cy si na ikonie diagramu blokowego (z prawej strony) - symbolizuje e funkcja jest rd em danych) Wy wietla dane na panelu frontowym. Na panelu frontowym brak przyciskw pozwalaj cych na zmian zawarto ci komrki. Ma y trjk cik znajduj cy si na ikonie diagramu blokowego (z lewej strony) - symbolizuje e funkcja przyjmuje dane) Sta a dana; jest ona prekazywana do programu; nie ma adnej reprezentacji na panelu frontowym Nie ma trjk cika, ale podobnie wygl daj cy obiekt jest zawsze rd em informacji.

Dzia anie

Aby zmieni kontrolk (Control) na wska nik (Indicator) nale y klikn prawym przyciskiem myszy na intersuj c nas ikon i wybra z menu opcj "Change to Indicator". W odwrotn stron - klikamy na element, lecz tym razem wybieramy opcj "Change to Control". Na diagramie blokowym - klikaj c na interesuj c nas ikon - mo emy konwertowa j w analogiczny sposb do jednej z dwch pozosta ych typw. Dost pna jest opcja konwersji na sta ("Change to Constant"), ktrej nie zobaczymy na panelu frontowym.

LabVIEW - Typy danych


Jak mogli my zauwa y w poprzednich przyk adach - ka dy typ danych ma charakterystyczny dla siebie kolor na diagramie blokowym. Kolor ten jest taki sam dla przewodw (Wire) cz cych terminale okre lonych typw. Do tej pory mieli my okazj zauwa y e kolor danej boolowskiej (boolean) jest zielony, za danej zmiennoprzecinkowej (double) - pomara czowy. Z czasem b d pojawia si kolejne kolory - takie jak chocia by r owy, oznaczaj cy a cuch.
unsigned byte (bajt (bez znaku), 8-bit.) unsigned word (s owo (bez znaku), 16-bit.) unsigned long (podwjne s owo (b/znaku), 32bit.) byte (bajt (ze znakiem), 8-bit.) word (s owo (ze znakiem), 16-bit.) long (podwjne s owo (ze znakiem), 32-bit.) single (rzecz., pojedyncza precyzja) double (rzecz., podwjna precyzja) extended (rzecz., rozszerzona prec.) complex extended (zespolona, rozszerz. precyzja) complex double (zesp., podwjna precyzja) complex single (zesp., pojedyncza precyzja) boolean (typ boolowski) string ( a cuch znakowy) path (scie ka (dost pu do pliku)) Podstawowe typy danych - kontrolki (wska niki tych samych typw r ni sie w nieznacznym stopniu) byte stream (strumie bajtw) enum (typ enum) cluster mixed (klaster, r ne elementy) cluster numeric (klaster, el. numeryczne) array 1D (tablica 1-wymiarowa) array 2D (tablica 2-wymiarowa) waveform graph (wykres) time stamp (znacznik czasu, <64.64>bit.) waveform (wykres) digital waveform (wykres cyfrowy) digital data (dane cyfrowe) I/O name (nazwa zasobu wej cia / wyj cia) picture (obraz) variant (wariant)

Typy danych typu byte, word, long - dotycz liczb ca kowitych.R ni si one d ugo ci bitow (8, 16, 32-bity). Wystepuj cy przed nimi przedrostek unsigned (bez znaku) oznacza, e

danemog by jedynie warto ciami nieujemnymi. Danymi rzeczywistymi s typy single, double, extended. R nic pomi dzy nimi stanowi ich precyzja. Zmienne zawieraj ce przedrostek complex oznaczaj liczby zespolone String - okre la a cuch znakowy.S u y on do m.in.do przechowywania tekstu. Mo e rwnie s u y do przechowywania danych zapisywanych lub odczytywanych z plikw. Jest to zaprezentowane w dalszej cz ci kursu. Path - jest cie k dost pu do plikw. Z typem tym mo na si spotka przy obs udze plikw (otwieranie plikw). Cluster Mixed - klaster w ktrego sk ad wchodz r ne typy danych okre lony jest kolorem r owym. Alternatywnym typem klastra jest klaster liczbowy (Cluster Numeric), w sk ad ktrego wchodz jedynie dane liczbowe (Numeric). Ten ostatni b dzie oznaczony kolorem br zowym.Wi cej o klastrach b dzie mo na przeczyta w kolejnych cz sciach kursu. Tablice jedno i dwu- wymiarowe (Array 1D, Array 2D) posiadaj charakterystyczne nawiasy kwadratowe [ ]. W rodku nawiasu kwadratowego mo emy zobaczy typ danych jaki dana tablica niesie. W powy szym zestawieniu obie tablice przechowuj typ double (DBL). Nawiasy kwadratowe [DBL], [DBL] mog by pogrubione lub nie.Niepogrubiony nawias kwadratowy oznacza jednowymiarowo tablicy.Pogrubienie ma miejsce w przypadku gdy tablica ma co najmniej 2 wymiary. Waveform graph - s u y do przekazywania danych do tworzenia wykresu (grafu). Mo emy zauwa y , e ikona jest podobna do ikony tablicy jednowymiarowej. Niesione dane s bowiem reprezentowane za pomoc tablicy Array 1D. Waveform r ni si odWaveform graph tym, e zawiera dodatkowe dane - jakimi s czas startu wykresu, oraz okres prbkowania. Wi cej na temat wykresw b dzie mo na znale w dalszej cz ci kursu. Kolejnym z typw danych s u cych do tworzenia wykresu jest Digital waveform. S u y on do tworzenia wykresw cyfrowych. Typ danych zawiera czas pocz tku, cyfrowe dane i wszystkie atrybuty cyfrowego wykresu. Digital data - zawiera dane cyfrowe. I/O name - przekazuje zasb wej cia/wyj cia, ktry u ytkownik konfiguruje, do komunikacji. Typ ten jest u ywany do komunikacji m.in. z urz dzeniami zewn trznymi, aparatur pomiarow . Picture - dane zawieraj ce obraz. LabVIEW pozwala na tworzenie i przedstawianie obrazw. Jest to przydatna opcja - szczeglnie-w celach wizualizacji niektrych wynikw pomiarowych.

LabVIEW - SubVI

SubVI - jest to funkcja (definiowana przez u ytkownika), stosowana w LabVIEW.SubVI jest opisane w podobny sposb co VI.SubVI posiada wej cia i wyj cia.Posiada ikon , ktra b dzie reprezentowa SubVI.VI mo e zawiera funkcje dost pna z palety (Functions Palette), jak rwnie funkcje definiowane przez u ytkownika (SubVI). U ytkownik po stworzeniu VI - mo e zdecydowa si e pewien fragment programu jest tak cz sto u ywany, e warto go zgrupowa i przedstawi w postaci czarnej skrzynki.Tak czarn skrzynk b dzie SubVI.B dzie zawiera wej cia i wyj cia, a jego reprezentacj b dzie ikona. SubVI stanowi osobny plik (.vi), ktry mo e istnie niezale nie od wszystkich ikon, lub te mo e zosta w czony do biblioteki. SubVI to nic innego jak kolejny VI, ktry mo e istnie niezale nie od wszelkich ikon. Mo e zosta rwnie w czony do biblioteki. G wne zalety SubVI: - atwo reprezentacji skomplikowanego kawa ka programu w postaci ikony, oraz uzyskiwana czytelno programu - osobny plik z SubVI pozwala na zastosowanie w r nych projektach

Wady SubVI: - zewn trzny plik mo e zapodzia si i spowodowa e projekt VI nie b dzie funkcjonowa (jest to w prawdzie wina programisty, niemniej jednak nadmiar plikw mo e by nieco k opotliwy) - niedok adnie zdefiniowane warto ci pocz tkowe SubVI mog by przyczyn nieprawid owego funkcjonowania algorytmu (nale y zwraca uwag np. na d ugo Array w SubVI) SubVI jest niczym innym jak kolejnym VI. Sub sk ada si analogicznie z
y y y

Panelu frontowego Diagramu blokowego Ikony

Tworzenie SubVI
y y y

tworzymy panel frontowy (Front Panel) i diagram blokowy (Block Diagram), ikon (Icon) sprawdzamy funkcjonowanie przypisujemy kontrolki i wyj cia projektu - odpowiednim terminalom

Poni ej pokazano skrtowo tworzenie SubVI. B dzie on konwertowa temperatur Fahrenheit na Celsius, zgodnie ze wzorem: TempC = (5/9) * (TempF - 32) Tworzymy poni szy panel frontowy.

LabVIEW - SubVi - Panel frontowy Tworzymy poni szy diagram blokowy.

LabVIEW - SubVi - Diagram Blokowy Nale y rwnie wyedytowa ikon .W tym celu nale y klikn prawym przyciskiem ikon w oknie diagramu blokowego (lub panelu frontowgo). Z listy pop-up wybieramy Edit Icon i edytujemy j .

LabVIEW - SubVi - Edycja ikony

Testujemy funkcjonowanie. Z palety narz dzi (Tool Palette) wybieramy Operate Value: Operate Value - pozwala na zmian warto ci wybranego elementu Modyfikujemy warto temperatury Fahrenheit w panelu frontowym, a nast pnie klikamy przycisk Run, lub wybieramy z paska Menu Operate >Run w celu uruchomienia programu. Powinna pojawi si nowa warto stopni Celsjusza.

Je eli mamy ju gotowy VI, ktry nas satysfakcjonuje - nale y przypisa terminale.W tym celu wybieramy z palety narz dzi (Tool Palette) Connect Wire. Connect wire - czy elementy B dziemy czy terminale naszego SubVI z kontrolkami. Klikamy na ikon panela frontowego prawym przyciskiem i wybieramy Show Connector. Pojawi si dwa prostok ty symbolizuj ce terminale. Klikamy ponownie - tym razem lewym przyciskiem na lewy prostok t. Zmieni on kolor na czarny. Nast pnie klikamy na kontrolk Fahrenheit. Prostok t zmieni kolor na br zowy, co b dzie oznacza o e jest przypisany. Nast pnie klikamy na drugi terminal (prawy prostok t) lewym przyciskiem. Klikamy lewym przyciskiem na wska nik Celsius. Oba br zowe prostok ty oznaczaj , e SubVI jest w pe ni przypisany. W celu powrotu do ikony - klikamy na dowolny prostok t prawym przyciskiem myszy i wybieramy Show Icon. Zapisujemy nasz SubVI pod nazwa FtoC.vi. W ten sposb stworzyli my nasz SubVI, ktry u yjemy do nowego projektu.

Korzystanie z SubVI Tworzymy nowy projekt VI. Wykorzystamy w nim stworzone uprzednio SubVI. Tworzymy poni szy panel frontowy.

LabVIEW - VI - Panel frontowy Diody Ice, Water, Steam wybieramy z palety kontrolek (ControlsPalette): LEDs>Square LED Kolor diod mo emy zmieni . W tym celu nale y klikn prawym przyciskiem na diod i wybra z Properities. Zak adka Appearance zawiera pole Colors. Klikaj c na kolory diod zapalon (On) i wy czon (Off). Mo emy zmieni jej kolor. Tworzymy poni szy diagram blokowy.

LabVIEW - SubVi - Diagram Blokowy SubVI FtoC.vi wybieramy z palety funkcji. (Functions Palette ). Klikamy naAll Functions w palecie. W lewym dolnym rogu znaduje si Select a VI.... Klikamy, a nast pnie wybieramy interesuj cy nas VI.W tym przypadku b dzie to FtoC.vi. Funkcje porwnania znajdziemy w palecie funkcji - Arith/Compare > Comparision. Tam te mo emy wybra porwnanie logiczne: Arith/Compare > Boolean. Przechodzimy do panelu frontowego i klikamy Run Continously. Zmieniamy temperatur Temp F - tak, aby zapali y si diody wskazuj ce na stan cia a (Ice, Water, Steam). Przyk ad ten nauczy nas przy jakiej temperaturze Fahrenheit zamarza i wrze woda. Zapisujemy przyk ad pod nazw H2O_State.vi .

LabVIEW - Debug
Niejednokrotnie zdarzy si nam stworzy program zawieraj cy b dy. W celu wyszukiwania ich LabVIEW wyposa ony jest w funkcje umo liwiaj ce odpluskiwanie (Debug) naszego VI. Kiedy program jest stworzy nie poprawnie - np. brakuje po cze pomi dzy elementami - nie mo emy uruchomi programu. Zamiast ikony Run pojawia si ikona List Errors.

VI zawieraj cy b dy

List Errors - otwiera okno zawieraj ce list b dw

Po klikni ciu ikony List Errors otrzymamy: - Block Diagram Errors Less Or Equal?: contains unwired or bad terminal Wire: has loose ends

Debugowanie LabVIEW dostarcza rwnie dodatkowych funkcji s u cych do debugowania programu. Dzi ki nim mo liwe jest ledzenie wykonywanego programu, tworzenie pu apek i kontrolowanie przekazywanych warto ci. Otwrzmy przyk adowy H2O_state.vi, pozbawiony b dw. Przejdzmy do diagramu blokowego. Na pasku menu mo emy dostrzec nast puj ce ikony (od lewej do prawej - uwaga - niektre ikony (Run WIthout Pausing, Continue) - s widoczne dopiero po uruchomieniu programu w trybie debugowania (po przycisni ciu Start Single Stepping).

Run / Run Without Pausing - uruchamia program (pojedyncze wykonanie) / wznawia uruchamianie w trybie debugowania. Run Continously - uruchamia programw trybie ci g ym (po zako czeniu rozpoczyna ponownie) Abort Execution - przerywa wykonywanie programu Pause / Continue - wstrzymuje (pauzuje) wykonywanie programu / wznawia wykonywanie programu (po pauzie) Highlight Execution - pokazuje kolejne kroki wykonywanie programu (przekazywania danych pomi dzy funkcjami) Start Single Stepping - (Step Into) - rozpoczyna prac krokow (lub je eli rozpocz ta - zag bia si w funkcj ) Start Single Stepping - (Step Over) - rozpoczyna prac krokow (lub je eli rozpocz ta - przechodzi do kolejnej funkcji) Step Over - (Finish Block Diagram) - wychodzi z funkcji w ktrej LabVIEW si zag bi

Pod wietlanie wykonywania Kliknijmy Highlight Execution, a nast pnie przycisk Run. Zauwa ymy, w jaki sposb przekazywane s dane od kontrolki (Temp F) a do wyj cia. Funkcje wymagaj ce dwch argumentw nie wykonaj si dopki argumenty nie zostan dostarczone.Ca o odbywa si bardzo szybko.

Krokowe wykonywanie Pozostawmy w czon opcj HighlightExecution.Przyci nijmy przycisk Start Single Stepping. Program przejdzie do ledzenia krokowego kolejnych funkcji i zatrzyma si na pierwszym napotkanym elemencie - FtoC.vi. B dzie to oznaczone migotaniem elementu. Chc zag bi si i zobaczy jak wykonywany jest nasz SubVI - przyciskamy Step Into.

Wykonywanie krokowe - po przyci ni ciu Step Into

Je eli przycisn liby my Step Over - omin liby my ledzenie FtoC.vi. Przeszliby my zarazem do ledzenia kolejnego elementu - zgodnie z poni szym rysunkiem.

Wykonywanie krokowe - po przyci ni ciu Step Over

Wy wietlanie warto ci W trakcie wykonywanych czynno ci mo emy zauwa y , e po ka dym wykonaniu funkcji - wy wietlana jest warto w uk adzie.

Wykonywanie krokowe - po przyci ni ciu Step Over

Pu apki (Breakpoints) Niejednokrotnie przy du ych projektach zdarza si , e trzeba sprawdzi konkretn warto w programie. ledzenie krokowe by o by skomplikowanym i czasoch onnym procesem.Aby unikn ledzenia krokowego - wystarczy skorzysta z pu apki (Breakpoint). Dost pny jest on w palecie narz dzi (Tools Palette > Set / Clear Breakpoint). Kliknijmy naSet / ClearBreakpoint. Kliknijmy na po czenie - np. pomi dzy wska nikiem Steam, a porwnaniem. Po uruchomieniu VI w normalnym trybie (Run) - jego wykonywanie zostanie wstrzymane w miejscu ustalenia pu apki. Wynik porwnania zostanie wy wietlony (T = True lub F = False).

Sondy (Probes) W celu u atwienia wy wietlania warto ci w okre lonym po czeniu - mo emy skorzysta z sondy (Probe).Wy wietla ona aktualn warto w po czeniu pomi dzy funkcjami. Opcja ta jest dost pna z palety narz dzi Tools Palette>Probe Data. Kliknijmy naProbe Data Kliknijmy na po czenie - np. pomi dzy wska nikiem Steam, a porwnaniem. Wynik porwnania zostanie wy wietlony w czytelny i atwy sposb.

LabVIEW - Loop(1) - While


W LabVIEW - podobnie jak w innych j zykach programowania - mo na realizowa p tle. Do wyboru mamy p tle typu:
y y

while for

P tle powinny sk ada si z warunku do kiedy powinna by p tla realizowana (Conditional Terminal- w przypadku p tli while; count number - w przypadku p tli for) oraz z warto ci iterowanej (Iteration Terminal). Ta ostatnia jest dost pna wewn trz p tli.

Terminale p tli while

Warunki zako czania p tli (Condition Terminal) - p tla while Mo na je zmieni typ terminala warunku - klikaj c na niego prawym przyciskiem myszy. Istniej dwa warianty. Stop if true - p tla zako czy si gdy warunek podany do terminala b dzie prawdziwy Continue if true - p tla b dzie trwa a dopki warunek podany do terminala b dzie prawdziwy

Przyk ad Stwrzmy zatem nast puj cy panel frontowy (pomi my przycisk stop; w standardowej konfiguracji zostanie on automatycznie dodany w momencie dodawania p tli while do diagramu blokowego).

Panel frontowy loop1vi.vi

Oraz po czmy elementy diagramu blokowego w poni szy sposb.

Diagram blokowy loop1vi.vi P tla while znajduje si na palecie funkcji (Functions Palette) ExecCtrl>While Loop. Kostka symbolizuj ca zmienn losow znajduje si (Functions Palette) Arith/Compare > Numeric > Random Num

Po uruchomieniu przyk adu (Run) mo emy zobaczy jak szybko wzrasta numer iteracji, oraz zmienne losowe. Zapiszmy przyk ad pod nazw loop1vi.vi

Dodawanie timingu P tla ko czy iteracj w momencie w ktrym wszystkie jej elementy zostan wykonane.Oznacza to, e czas wykonania pojedynczej itercji nie b dzie krtszy ni czas trwania najd u ej wykonywanej funkcji. Dla przyk adu mo emy doda do p tli op nienie wynosz ce 1 sekund . B dzie to najd u sze op nienie w p tli, co b dzie oznacza o, e pojedyncza iteracja b dzie wykonywa si 1 sekund . (w praktyce na wolnych komputerach mo e wykona si nieznacznie d u ej). Przyk ad Dodajmy do poprzedniego VI - element op nienia - zgodnie z poni szym diagramem blokowym.

Diagram blokowy loop2vi.vi

Element op niaj cy mo emy odnale na palecie funkcji AllFunctions>TIme & Dialog > Wait Until Next ms Multiple. Umieszczenie tego elementu spowoduje, e program b dzie czeka do kolejnej wielokrotno ci milisekundowego zegara komputera (warto zegara komputera mo na uzyska przy u yciu funkcji Tick Count z tej samej palety). Po uruchomieniu zobaczymy, e:
y y

p tla b dzie oczekiwa na kolejn wielokrotno sekunda) iteracja p tli zaczyna si od warto ci 0

1000ms wewn trznego licznika (1

Zapiszmy przyk ad pod nazw loop2vi.vi

LabVIEW - Loop(2) - For


Funkcj p tli mo na rwnie realizowa przy wykorzystaniu p tli for, dost pnej z palety funkcji. ( All Functions > Structures > For Loop). R nic pomi dzy p tl for, a p tl while jest warunek wykonywania.W przypadku p tli for - z gry deklarujemy ilo iteracji, jak p tla ma wykona . Przyk ad Pos u my si loop2vi.vi. Usu my Przycisk STOP. Zawarto p tli while - wyci gnijmy poza p tle. Usu my pust p tl i utwrzmy p tle for (All Functions > Structures > For Loop). Do pustej p tli nale y w o y zachowane uprzednio elementy. Ilo iteracji (N) nale y po czy ze sta warto ci 10 - zgodnie z poni szym diagramem blokowym.

Diagram blokowy loop3vi.vi

Po uruchomieniu przyk adu - zobaczymy, e p tla wykona si 10 razy.

LabVIEW - Loop(3) - Rejestry przesuwne, indeksowanie


Niejednokrotnie zachodzi potrzeba przekazania warto ci otrzymanej w iteracji (n) do kolejnej iteracji (n+1) p tli.Mo na to zrobi korzystaj c z rejestrw przesuwnych. W celu dodania rejestru przesuwnego do p tli (for lub while) nale y klikn na lew kraw d prawym przyciskiem myszy, a nast pnie wybra Add Shift Register.

Rejestr przesuwny

W pierwszej iteracji rejestr przesuwny (Shift Register) jest wype niany warto ci (Initial Value).W kolejnych iteracjach rejestr ten zawiera warto obliczon w poprzedniej iteracji. Przeanalizujmy dwa przypadki. 1. W oparciu o loop2vi.vi nale y zbudowa poni szy przyk ad loop4shiftreg.vi.

Rejestr przesuwny - przyk ad loop4shiftreg.vi

Po uruchomieniu tego przyk adu na ekranie b d wy wietlane kolejne warto ci: 0, 3, 6, 9, 11, ... 27. Algorytm dzia ania jest prosty: W pierwszym kroku rejestr (z lewej strony) zawiera warto 0 (Initial Value). Do niej dodawana jest warto 3 i przekazywana do rejestru po prawej stronie. W kolejnych krokach warto rejestru z lewej strony jest uzupe niana ostatnio otrzymanym wynikiem (zapisanym w rejestrze po prawej stronie).
Tak wi c w ka dej kolejnej iteracji do poprzednio otrzymanej warto ci dodajemy 3. Zapiszmy przyk ad pod nazw loop4shiftreg.vi.

2. Przeanalizujmy bardziej skomplikowany przyk ad ci gu Fibonacciego. W tym celu nale y stworzy przyk ad - zgodny z poni szym diagramem blokowym.

Rejestr przesuwny - realizacja ci gu Fibonacciego (loop4fib.vi)

W tym przypadku sposb przekazywania argumentw jest bardziej skomplikowany. Rejestry po lewej stronie inicjalizowane s odpowiednio warto ciami 0 i 1. Po wykonaniu pierwszej p tli

warto z prawej strony przypisana jest do grnego rejstru z lewej strony. Ten za przechodzi na miejsce dolnego rejestru. Nale y przeanalizowa te przyk ady z wykorzystaniem pu apek (breakpoint) - je eli procedura nie jest jasna.

Grupowanie danych z wyj cia Wynik dzia ania p tli - mo e by zgrupowany (zindeksowany) do postaci tablicy (Array) lub pozostawiony bez grupowania. Indeksowanie wynikw sprowadza seri pojedy czych warto ci do tablicy (Array).Array jest przekazywany dalej do programu - dopiero po pe nym zako czeniu p tli (po ostatniej iteracji). Odwrotnie jest w przypadku braku indeksowania. Poszczeglne prbki nie s grupowane. Jedynie wynik pochodz cy z ostatniej iteracji przekazywany jest dalej do programu. Dwa odmienne poni sze przyk ady obrazuj r nic . Przyk ad 1 - z grupowaniem

Indeksowanie wynikw (loop5group1.vi)

Wykres - WaveformGraph mo emy odnale tworz c Panel Frontowy. Znajduje si on na palecie funkcji Graph Inds > Graph. W powy szym przyk adzie - po wykonaniu ca ej p tli - wynik zostanie przekazany do wykresu

(Waveform Graph) - w zgrupowanej postaci. Argumentem wykresu jest Array (jednowymiarowy). W kolejnych cz ciach kursu o wielowymiarowych Arrayach. Wyprzedzaj c nieco w przysz o - mo emy powiedzie , e wielowymiarowe szeregi (Array) mo na otrzyma przez wielokrotne indeksowanie wynikw; kilka zagnie d onych p tli)

Przyk ad 2 - bez grupowania

Bez indeksowania wynikw (loop5nogroup1.vi)

W powy szym przyk adzie jedynie ostatni wynik jest wyrzucany na zewn trz p tli. Tam te odbywa si testowanie czy warto jest podzielna przez dwa (zapalona dioda) czy nie (zgaszona dioda). Aby zabroni indeksowania - nale y klikn prawym przyciskiem na kwadrat - symbolizuj cy indeksowanie. Wybieramy Disable Indexing. Dzielenie z reszt mo emy odnale w palecie funkcji AllFunctions>Numeric>Quotient & Remainder. Porwnywanie mo emy odnale w palecie funkcji Arith/Compare >Equal To 0? Po uruchomieniu przyk adu zauwa ymy, e dioda zapali si po osi gni ciu warto ci 34.

LabVIEW - Arrays
Osoby maj ce do wiadczenie w programowaniu w j zykach takich jak C czy Pascal - zdaj sobie spraw z faktu i programowanie bez wykorzystania tablic czy struktur jest praktycznie niemo liwe.Analogicznie tworzenie bardziej skomplikowanych VI bez wykorzystania podobnych mechanizmw by o by niezwykle trudne. Na szcz cie z pomoc przychodz nam tablice (Arrays) i klastry (Clusters).

Porwnuj c nale a o by porwna Array do tablicy w C czy te w Pascalu. Wwczas Cluster sta by si rekordem w Pascalu, za struktur w j zyku C. T umacz c to:
y y

Array - tablica grupuje elementy jednego typu (np. tekst, warto sta , itp).; tablica mo e by wielowymiarowa Cluster - klaster grupuj cy elementy r nych typw (tekst, warto ci sta e - w jednym klastrze jednocze nie)

Przyk ad Stwrzmy poni szy panel frontowy.

Panel frontowy array1.vi Diagram blokowy odzwierciedlony jest na poni szym rysunku.

Diagram blokowy array1.vi, obrazuj cy jednocze nie r nice grubo ci przewodw

W celu stworzenia diagramu - wybieramy sta tablic : All Functions>Array>Array Constant. Po umiejscowieniu ikony w diagramie blokowym - b dzie ona pusta.Oznacza to b dzie, e nie ma danych oraz e nie ma przypisanego typu danych. Aby doko czy dzie o - nale y wybra sta (tak jak wykonywano w poprzednich projektach (z palety funkcji): Arith/Compare>Numeric> NumConst. Sta przeci gamy do rodka ikony tablicy. Nast pnie

powi kszamy (rozci gaj c bok) rozmiar tablicy do

danego.

Graf (Waveform Graph) mo na odnale tworz c Panel Frontowy. Znajduje si on na palecie kontolek (Controls Panel) Graph Inds>Graph. Przewd (Wire) zawieraj ce tablic zgrupowanych danych jest koloru takiego samego jak dane ktre grupuje. R nica le y w grubo ci po czenia - Array grupuj cy typ danych A - jest grubszy.Grubo po czenia wzrasta ze wzrostem ilo ci wymiarw tablicy. Przewd (Wire) symbolizuj cy po czone klastry - jest koloru r owego lub br zowego (w zale no ci od sk adnikw klastru).

LabVIEW - Clusters
Klaster jest elementem podobnym do struktury w j zyku C, czy rekordu w Pascalu. Pozwala na zgrupowanie kilku r nych typw danych. Przyk adowy klaster mo e zawiera liczby zmiennoprzecinkowe (double), a cuchy znakowe (string), liczby ca kowite (integer), oraz inne dane jednocze nie. Istotna jest kolejno wyst powania elementw w klastrze.Je eli kolejno wyst powania elementw nie jest zachowana pomi dzy funkcjami - wwczas nie mo emy po czy funkcji. Zupe nie podstawowe funkcje realizowane przez klaster przedstawione s w poni szym przyk adzie. Przyk ad Na panelu frontowym wybieramy: All Controls >Array & Cluster >Cluster. Umieszczamy na panelu. W pole nowo dodanego klastra dodajemy wska nik tekstu: (String Indicator) Text Inds >String Ind. Umieszczamy rwnie wewn trz klastra - wska niki warto ci (rwnie w pole klastra). Num Inds>Num Ind Powinni my otrzyma nast puj cy panel frontowy:

Panel frontowy clusters1.vi

W celu ustalenia kolejno ci w klastrze: - kliknij prawym przyciskiem na kraw d klastra - wybierz Reorder Controls in Cluster - uzupe nij pole Click To Set warto ci 0. - kliknij na pole ktre ma by pierwsze (Numeric 2) - kliknij na pole ktre ma by drugie (Numeric 3) - kliknij na pole ktre ma by trzecie (String) - zaakceptuj - klikaj c napis OK

Panel frontowy clusters1.vi - ustalanie kolejno ci elementw w klastrze

W celu ustalenia klastra na panelu frontowym - jako wska nika - kliknij prawym przyciskiem na kraw d klastra i wybierz Change to Indicator. Diagram blokowy powinien wygl da jak przedstawiono poni ej.

Panel frontowy array1.vi

Na diagramie blokowym z palety funkcji wybieramy All Functions>Clusters>Bundle.Element ten grupuje wchodz ce z lewej strony dane i tworzy z niego klaster. Klaster ten zostanie przes any do wska nika - zgodnie z przedstawionym diagramem.

Nale y zwrci szczegln uwag na kolejno pod czania elementw po lewej stronie. Pierwsze dwa elementy to Numeric Constant. Trzeci z nich to String Constant (All Functions > String > String Constant)

LabVIEW - Cases
Kolejne opisywane poni ej elementy j zyka - pozwalaj nam na lepsze kontrolowanie przebiegu programu. Struktura case pozwala wybra dzia anie w zale no ci od warto ci. Poni szy przyk ad zilustruje nam zasad dzia ania p tli case. Warunek case b dzie okre lony dla warto ci 0, 1, 2. W ka dym z tych trzech przypadkw zostanie wypisany inny komunikat. Diagram blokowy b dzie mia nast puj c posta :

Diagram blokowy cases1.vi - dla warto ci 0.

W celu wybrania struktury case nale y z palety funkcji wybra Exec Ctrl>Case Structure. Case dzia a w oparciu o zasad wyboru algorytmu. Wybr ten zale ny jest od warto ci steruj cej struktur case. W rozwini ciu warunku case - otrzymamy na wyj ciu struktury poni sze a cuchy.

W przypadku warto ci 0, oraz w przypadku gdy uzyskamy warto r n od (0,1,2) - zwrcony zostanie a cuch (string) "I don't like 0"

W przypadku warto ci 1, zwrcony zostanie a cuch "1 is more than 0"

W przypadku warto ci 1, zwrcony zostanie a cuch "2 is very OK!"

LabVIEW - Sequence structures


LabVIEW zak ada e bloki ktre nie s po czone ze sob - mog by wykonywane jednocze nie. Przeanalizujmy poni szy przypadek Niekiedy jednak zdarza si - e procesy powinny zosta wykonywane w ci le okre lonym porz dku.Przyk adem mo e by chocia by transmisja z zewn trznym urz deniem. ci le okre lony protok b dzie narzuca wymg zachowania okre lonej sekwencji wymienianych danych. Przyjdzie nam z pomoc struktura sekwencyjna (Sequence structure). Jest ona dost pna w palecie funkcji Exec Ctrl >Flat Sequence.

Diagram blokowy sequence1.vi

Przyk ad

B dziemy mierzy czas wykonania kolejnych elementw sekwencji.Zmierzymy czy czas losowania 10 pierwszych liczb rzeczywi cie wynosi 10 * 1000ms. Wynik zostanie przes any do wska nika numerycznego (Numeric Indicator) o nazwie "Time of Random1". Osobno zmierzymy czas losowania kolejnych 10 liczb. Ten wynik zostanie przes any do "Time of Random2" Panel frontowy przybierze nast puj c posta .

Panel frontowy sequence2.vi

Wskazwka: Mierzenie czasu odb dzie si w prosty sposb. Skorzystamy z nast puj cego rozwi zania dla struktury sekwencyjnej.

Prosty sposb na mierzenie czasu 1 ramki (Frame)

Struktura sekwencyjna zdeterminuje sposb wykonywania si programu. Ramki b d wykonywa si po kolei. Po rozpocz ciu wykonywania pierwszej ramki - zostanie pobrany czas (nazwijmy go A). Po zako czeniu wykonywanie pierwszej struktury (po wykonaniu wszystkich jego elementw) rozpocznie si wykonywanie drugiej ramki. Zostanie pobrany czas (B). R nica czasw (B - A) jest niczym innym jak czasem wykonywania si ramki 1. Element s u acy do odmierzania czasu znajdziemy na palecie funkcjii: All Functions>TIme & Dialog >Tick Count (ms)

Powracaj c do naszego zadania - chc c zmierzy czas - b dziemy musieli zbudowa nast puj cy diagram blokowy.

Diagram blokowy sequence2.vi

Czas wykonywania pierwszej ramki: "Time of Random1". Czas wykonywania drugiej ramki: "TIme of Random2".

Zmienne lokalne

Co je eli jednak b dziemy chcieli do tego samego wska nika wpisa najpierw czas wykonywania pierwszego elementu, za p niej drugiego? Chcemy to uczyni do elementu o nazwie "Time of Random". Nasz wska nik warto ci (Numeric Indicator) mo e by tylko w jednej ramce. Chcemy do niego odwo ywa si w ka dej sekwencji. Jak rozwi za problem? Skorzystam ze zmiennych lokalnych (Local variables).Zamiast tworzy "Time of Random1" i "Time of Random2" mo emy utworzy "Time of Random".Na podstawie "Time of Random" utowrzymy dwie zmienne lokalne (Local variables), ktre umie cimy w miejsce poprzednich elementw.Ilustruje to kolejny diagram blokowy. Tworzymy wska nik (Numeric Indicator).Na diagramie blokowym klikamy prawym przyciskiem myszy.Z menu wybieramy Create >Local Variable.Czynno powtarzamy, tworz c te drug zmienn lokaln .

Diagram blokowy sequence3.vi. Zaznaczone zmienne lokalne i wska nik warto ci.

Jak wida na powy szym przyk adzie - nie ma konieczno ci czenia kontrolki. Jest ona po czona poprzez zmienne lokalne. Zmienne lokalne mog by zmienny przeznaczonymi do odczytu i zapisu. Aby zmieni typ zmiennej lokalnej - nale y klikn prawym przyciskiem myszy na element i wybra opcj Change To Read, alternatywnie Change To Write. Znajduj one rwnie zastosowanie m.in.w przypadku stosowania struktury Case i innych struktrur.

LabVIEW - Strings
a cuchy (String) s w j zykach progrmowana typem danych, s u acym do przechowywania ci gu znakw. Mog s u y do przechowywania tekstw. Odgrywaj rwnie istotn rol przy obs udze plikw - w nich przechowywane s dane zapisywane i odczytywane z plikw. LabVIEW implementuje kontrolki i funkcje umo liwiaj ce pos ugiwanie si a cuchami. Zupe nie podstawowymi elementami obs ugi a cuchw s kontrolki i wska niki (String Controls, String Indicators). Wygl dem s one zbli one do kontrolek i wska nikw numerycznych (Numeric Controls, Numeric Indicators). Ich funkcjonowanie jest rwnie podobne - pozwalaj wprowadza i wyy wietla dane, jakimi s w tym przypadku teksty. Funkcje zaimplementowane w LabVIEW pozwalaj nam na r nego rodzaju operacje na tekscie. Do nich mo emy zaliczy m.in.:
y y y y y

formu owanie (tworzenie) a cuchw funkcje konwersji a cucha (na liczby i inne typy danych; oraz im odwrotne) czenie i dzielenie a cuchw wyszukiwanie fragmentw tekstu formatowanie daty/czasu

inne

Poni szy przyk ad zapozna nas z tworzeniem a cuchw.Panel frontowy w tym przypadku b dzie jak pokazno poni ej.

Panel frontowy strings1.vi Kontrolk (StringControl) znajdziemy w palecie kontrolek ( Text Ctrls>String Ctr), na panelu frontowym. Wska nik (StringIndicator) odnajdziemy w tej samej palecie ( Text Inds>String Ind). Prze cznik - Buttons>Toggle Switch. Suwak - Num Ctrls >Fill Slide. Po czmy elementy w poni szy sposb:

Diagram blokowy strings1.vi

Formatowanie stringa znajdziemy na palecie funkcji: All Functions>String> Format Into String. Sta a cuchow (String Constant) - odnajdziemy w All Functions>String > String Constant. Jedn z nich nale y: ' "%s"\nTemperature:"%f"\nToggle Switch Is: %s' i pod czy do terminala format string (jak wy ej). Drug natomiast nale y wype ni : "Your text: " Przed uruchomieniem - kliknijmy prawym przyciskiem na kontrolk "String" na panelu frontowym prawym przyciskiem myszy. Wybierzmy Update Values while Typing. Zapewni to

e warto ci b d aktualizowane w trakcie modyfikacji pola. Po uruchomieniu przyk adu przyciskiem Run Continously sprbujmy wype ni pola, zmieni wska nik, czy wreszcie prze czy prze cznik.Powinni my zauwa y r nic w wypisywanym tekscie.

Analiza Wypisywany tekst jest formatowany przez funkcj Format Into String znajduj c si na diagramie blokowym. O sposobie formatowania decyduje a cuch formatuj cy (Format String): ' "%s"\nTemperature:"%f"\nToggle Switch Is: %s' . W miejsce znakw %s, %f,%s - wstawiane s sformatowane dane wej ciowe (w kolejno ci pod czenia do terminalw wej ciowych). Odwo ywanie si do zmiennych w a cuchu formatuj cym odbywa si za pomoc poni szych znakw %. Wyj tek stanowi znak (%%), ktry nie odwo uje si do adnej zmiennej. Znak Funkcja %b %d %f %g %o %s %x %% wypisuje liczb binarny (1011) wypisuje liczb ca kowity (12) wypisuje liczb zmiennoprzecinkowa (np. 12,345) wypisuje liczb zmiennoprzecinkowy / lub z eksponent (np. 12,345) wypisuje liczb semkowy (701) wypisuje a cuch (abc) wypisuje liczb hex (B8) nie odwo uje si do zmiennej, lecz wypisuje znak %

Na samym pocz tku a cucha wyj ciowego wstawiany jest a cuch inicjuj cy (inital string). W naszym przypadku jest nim 'Your text: '. Funkcja Format Into String zawiera rwie obs ug b dw. S one przekazywane do terminala error out, po zsumowaniu z b dami wej ciowymi error in. Oprcz wy ej wymienonych znakw - istniej inne znaki, takie jak znak przej cia do nowej linii (\n). Jest wi cej takich znakw. Wi kszo z nich zosta a wymieniona w poni szej tabeli. Znak Funkcja \n wypisuje pocz tek nowej linii

\t \\ \hex

wypisuje tabulator wypisuje znak \ wypisuje znak ASCII o numerze hex, np. \64 wypisze setny znak z tablicy ASCII (znak d) (100 dec. = 64hex)) d, za \20

LabVIEW - Files
Istnieje kilka sposobw obs ugi plikw w LabVIEW.Daje to du elastyczno programiscie VI. W zale no ci od potrzeb mo e on u y bardziej lub mniej skomplikowanych funkcji. Wszystkie fukcje obs ugi plikw zosta y zorganizowane w 1) Wysokiego poziomu VI (High-Level I/O VIs) 2) Funkcje niskiego poziomu (Low-Level File I/O Functions) 3) Funkcje zaawansowane (Advanced File I/O) Podzia ten mo emy zobaczy w palecie funkcji. Jest on przedstawiony poni ej.

High-Level I/O VIs - s to funkcje w postaci SubVI; Te pliki VI wywo uj funkcje niskiego poziomu (Low-Level File I/O); dzi ki temu posiadaj prosty interfejs (terminale) i s atwiejsze, ale zarazem mniej elastyczne. Low-Level File I/O Functions funkcje niskiego poziomu posiadaj nieco bardziej z o ony intefrejs (wi cej terminali), s bardziej elastyczne, ale zarazem wymagaj wi kszej ilo ci argumentw. Advanced File I/O Functions funkcje zaawansowane pozwalaj na jeszcze bardziej skomplikowany dost p do plikw; zostan one pomini te w poni szym rozdziale

Oprcz podzia u ze wzgl du na rodzaje terminali - mo na dokona podzia ze wzgl du na typ dost pu. Mo liwe s dwie opcje:
y

pliki tekstowe - maj przede wszystkim zastosowanie, gdy pliki przeznaczone s do odczytu dla cz owieka; pliki tekstowe nie zawieraj dziwnych znakw, powinny by bez przeszkd rozczytywalne przez cz owieka; wygodnie jest stowa pliki tekstowe, do ktrych zapisujemy uprzednio sformatowane a cuchy znakw (String). Takie formatowanie i zapis do pliku tekstowego jest rzecz atw , szybk , oraz daje u ytkownikowi gotowy, atwy do zrozumienia plik. pliki binarne - s u przede wszystkim do sk adowania danych w wygodny dla programisty sposb; pliki te najcz ciej nie s czytelne (zrozumia e) dla cz owieka. Najlepiej stosowa je do zapisu liczb lub innych danych.

LabVIEW obs uguje tak e pliki typu Datalog, umo liwiaj ce zapisu lub odczyt struktur.S one podobne budow do arkuszy (Spreadsheet) w ktrych ka dy wiersz zawiera rekord (struktur ). Wszystkie elementy ktre LabVIEW zapisuje do jednego pliku - musz by takiego samego typu. Przypomina to umieszczanie danych w klastrach.Aby operacja powiod a si - musz by tego samego typu.

Do naszych potrzeb polecam rozpocz najprostszy.

od zapisu wysokopoziomowego, poniewa jest on

Opis dost pu wysokpoziomowego i niskopoziomowego dost pu do plikw zosta zawarty z lewej strony menu.

LabVIEW - Budowanie aplikacji


Je eli posiadamy istniej cy i dzia aj cy program - mo emy go zbudowa i stworzy plik wykonywalny EXE lub bibliotek DLL.W poni szym przyk adzie poka emy jak stworzy prosty plik EXE. Przyk ad Otwieramy VI ktry z ktrego chcemy stworzy wykonywalny plik.W omawianym przypadku u yto pliku exec1.vi. Z grnego menu diagramu blockowego (Block Diagram) lub panelu frontowego (Front Panel) wybieramy: Tools>Build Application or Shared Library (DLL).

Budowanie wykonywalnego pliku EXE - cz.1.

Budowanie wykonywalnego pliku EXE - cz.2.

Po zbudowaniu (Build) z domy lnymi ustawieniami otrzymamy plik Application.exe. Po jego uruchomieniu najprawdpodobniej dostrze emy, e w nowoutworzonym pliku wykonywalnym s elementy ktre chcieliby my usun lub te zmieni . Niektre z elementw okna, ktre mo emy usun / zmieni - zosta y przedstawione na poni szym rysunku.

Budowanie wykonywalnego pliku EXE z pliku exec1.vi

W celu wyeliminowania zb dnych elementw z wykonywalnego pliku wybieramy ponownie Tools>Build Application or Shared Library (DLL). Z zak adki VI Settings zaznaczamy intersuj cy nas VI do zbudowania. W tym przypadku b dzie to exec1.vi.Klikamy Edit Build Settings. Nast puj ce okno pozwala nam na ustawienie ostatecznego wygl du wynikowego VI. Opcje s nast puj ce

Remove Panel Run When Opened Show Abort Button

Usu panel Uruchom skrpyt po otwarciu pliku wykonywalnego Poka przycisk Abort (na pasku Toolbar) Pozwl u ytkownikowi zamkn Close Window z paska tyty u) okno (wy czenie opcji blokuje ikon

Allow User to Close Window

Window is Modal

Pozwala minimalizowa okno (wy czenie blokuje ikon Modal z pasku tyty u) Wy wietla pasek tytu u (Title Bar) Poka pasek menu (Menu Bar) Poka pasek narz dzi (Tool Bar) Poka elementy do przesuwania okna (Scroll Bar) Autocentrowanie

Window Has Title Bar Show Menu Bar Show Toolbar Show Scroll Bars Auto-Center Size the Front Panel to the Width and Height of the Entire Screen

Rozci ganie okna do ca ego ekranu.

Zmiana nazwy z paska tytu u (Window Title)

Na oknie najprawdopodnbniej pojawi si nazwa pliku VI (z rozszrzeniem VI). Mo emy zmieni t nazw . Ustawie tych jednak nie wykonuje si w oknie dialogowym Build Application or Shared Library (DLL).Aby zmieni nazw - nale y przej do diagramu blokowego (Block Diagram) lub panelu frontowego (Front Panel) Klikamy prawym przyciskiem myszki w Ikon (Icon). Z menu wybieramy opcj VI Properities. Zak adka General pozwala nam na zmian ikony. Zak adka Window Appearance umo liwia zmian nazwy okna (Window Title).

Aby uczyni to - odznaczamy checkbox "Same as VI name" i wpisujemy w pole dowoln nazw .

Automatyczne skrypty do budowania LabVIEW umo liwia nam automatyzacj budowania programu przy u yciu skryptw. Okno dialogowe odpowidzialne za budowanie aplikacji - posiada przyciski Load, Save, Save As. Dzi ki nim mo liwy jest zapis i odczyt ustawie zwi zanych z budowaniem aplikacji. Jest to przydatna opcja.

LabVIEW - Files - High Level I/O VIs


Do naszych potrzeb skoncentrujemy si na pocz tku na zapisie wysokopoziomowym, poniewa jest on najprostszy. Jak wspomniano - wysokopoziomowe funkcje do obs ugi plikw s plakim VI, ktre wywo uj funkcje niskopoziomowe. Interfejst w ten sposb jest znacznie uproszczony.Mo emy nie podawa nadmiaru parametrw - wwczas zostan wybrane domy lne. Do funkcji wysokiego poziomu zaliczamyponi sze funkcje
Write To Spreadsheet.vi zapis do arkusza

Read From Spreadsheet.vi odczyt z arkusza

Write Characters To File.vi - zapis ( a cucha) znakw do plikw Read Characters From File.vi - odczyt ( a cucha) znakw z pliku Read Lines From File.vi odczyt linii z pliku

Read From I16 File.vi odczyt z pliku I16

Write To I16 File.vi - zapis do pliku I16

Read From SGL File.vi odczyt z pliku SGL

Write To SGL File.vi - zapis do pliku SGL

Przyk ad - zapis i odczyt ci gu znakw Jako jeden z najprostszych przyk adw mo emy wzi funkcj zapisu i odczytu ci gu znakw.

Najprostszy zapis

Najprostszy odczyt

Przy zapisie skorzystano z funkcji Write Characters to File.vi .Warto ci zapisywan jest sta a typu acuchowego (String) o tre ci "Tekst".Przy odczycie skorzystano z funkcji Read Characters from File.vi. Wynik funkcji zostaje przekazany do wska nika Text Indicator. Po uruchomieniu obu przyk adw zostaniemy zapytani o nazw pliku (do odczytu b d zapisu), gdy w adnym z przyk adw nie zosta a ona okre lona. Je eli przeka emy do funkcji zapisuj cej plik, ktry istnieje - funkcja spyta nas czy chcemy nadpisa plik. Obie funkcje zwracaj b d na ekran - w przypadku nieprawid owego wykonania.

Przyk ad - zapis arkusza (Spreadsheet) 1D

Funkcje wysokopoziomowe u atwiaj szybkie i sprawne zapisywanie tablic. Jako przyk ad mo emy pos u y si poni szym diagramem blokowym VI o nazwie write2spreadsheet1d.vi Przy zapisie skorzystano z funkcji Write To Spreadsheet.vi .W przyk adzie zapisujemy tablic wygenerowan w p tli for.

Zapis tablicy (Array) jednowymiarowej do pliku (write2spreadsheet1d.vi)

Przyk ad jest stosunkowo prosty. Spowoduje on zapisanie do wskazanego pliku nast puj cej zawarto ci:
0,000 1,000 2,000 3,000 4,000 5,000 6,000 7,000 8,000 9,000

Przyk ad - zapis i odczyt arkuszy (Spreadsheet), 2D Zapis 2D

Wykorzystuj c t sam funkcj Write To Spreadsheet.vi - mo emy zapisa rwnie do pliku dane wielowymiarowe. Zosta o to przedstawione na poni szym diagramie blokowym przyk adu write2spreadsheet2d.vi. W pierwszym etapie dzia ania - funckja generuje tablic dwuwymiarow , korzystaj c z zagnie d onej p tli. Tablica (array) ta zostaje przekazana do funkcji wysokopoziomowego zapisu. Poniewa funkcja Write To Spreadsheet.vi nie posiada zadeklarowanych adnych innych informacji - tote po uruchomieniu przyk adu - LabVIEW spyta o nazw pliku do zapisu.

Zapis tablicy (Array) jednowymiarowej do pliku (write2spreadsheet2d.vi)

Po uruchomeniu przyk adu - do wskazanego pliku powinna zosta zapisana poni sza tre :
0,000 10,000 20,000 30,000 40,000 50,000 60,000 70,000 80,000 90,000 1,000 11,000 21,000 31,000 41,000 51,000 61,000 71,000 81,000 91,000 2,000 12,000 22,000 32,000 42,000 52,000 62,000 72,000 82,000 92,000 3,000 13,000 23,000 33,000 43,000 53,000 63,000 73,000 83,000 93,000 4,000 14,000 24,000 34,000 44,000 54,000 64,000 74,000 84,000 94,000 5,000 15,000 25,000 35,000 45,000 55,000 65,000 75,000 85,000 95,000 6,000 16,000 26,000 36,000 46,000 56,000 66,000 76,000 86,000 96,000 7,000 17,000 27,000 37,000 47,000 57,000 67,000 77,000 87,000 97,000 8,000 18,000 28,000 38,000 48,000 58,000 68,000 78,000 88,000 98,000 9,000 19,000 29,000 39,000 49,000 59,000 69,000 79,000 89,000 99,000

Odczyt 2D

Odczyt jest rwnie kwesti stosunkowo prost . Funkcja Read From Spreadsheet.vi zapewni nam bezproblemowy dost p do wcze niej zapisanych danych. Przyk ad readfromspreadsheet2d.vi przedstawia sposb korzystania z wymienionej funkcji VI.

Odczyt tablicy (Array) dwuwymiarowej z pliku (readfromspreadsheet2d.vi - panel frontowy)

Do tego panelu frontowego (sk adaj cego si z dwuwymiarowej tablicy (Array) wska nikw warto ci (Numeric Indicator) istnieje prosty - i spe niaj cy swoj funkcjonalno diagram blokowy (przedstawiony poni ej).

Odczyt tablicy (Array) dwuwymiarowej z pliku (readfromspreadsheet2d.vi - diagram blokowy)

Po uruchomieniu przyk adu zostaniemy spytani o nazw pliku do odczytu. Po wskazaniu prawid owego pliku (arkusza uprzednio zapisanego) - panel frontowy zostanie zape niony odpowiednimi warto ciami. Przyk ad pokazuje w jak prosty sposb mo na zrobi operacje zapisu i odczytu tablic.

LabVIEW - Files - Low Level File I/O Function


Funkcje niskopoziomowe przypominaj pod wzgl dem ilo ci argumentw i sposobu obs ugi funkcje obs ugi plikw w j zykach C czy te innych. Zasada dzia ania powinna przypomnie programistom innych j zykw kolejno
y

otwarcie pliku

y y

odczyt / zapis / operacje na danych zamkni cie pliku.

Analogicznie wygl da to w przypadku LabVIEW. Przejd my wi c do przyk adu.

Przyk ad - zapis pliku Zaczniemy od najprostszego przypadku zapisu do pliku. Zapiszemy do pliku wskazanego przez u ytkownika a cuch "Tekst". W naszym przypadku diagram blokowy b dzie przypomina poni szy.

Diagram blokowy files1.vi

Wybierz z palety funkcji All Functions>File I/O>Open/Create/Replace File.vi. Umie funkcje na diagramie. Wybierz z palety narz dzi (ToolsPalette) Connect Wire. Najd nad ikon Open/Create/Replace File.vi. Spo rd terminali odszukaj (function (open:0)). Kliknij prawym przyciskiem myszy nad tym terminalem i wybierz Create >Constant. Obok ikony pojawi si pole z napisem open. Wybierz Operate Value z palety narz dzi i kliknij lewym przyciskiem na wspomniane pole. Wybierz opcj create or replace (tworzenie lub zamiana). Dodajemy funkcj Write File, odpowiedzialn za zapis do pliku All Functions>File I/O>Write File. Terminal refnum tej funkcji czymy z terminalem refnum funkcji Open/Create/Replace File. czymy rwnie Error Out (Open/Create/Replace File) z Error In (Write File).Do funkcji nale y rwnie doprowadzi dane, jakie chcemy zapisa . W naszym przypadku b dzie to prosty a cuch znakw o tre ci "Tekst". Wybieramy All Functions>String>String Constants. Uzupe niamy zawarto pola narz dziem Edit Text wpisuj c "Tekstt", a nast pnie czymy element z terminalm data. Kolejnym elementem jakie nale y doda - jest zamykanie pliku.All Functions>File I/O>Close File. czymy terminale: dup refnum funkcji Write File z terminalem refnum funkcji Close File. Analogicznie czymy Error Out (Read File) z Error In (Close File). Ostatnia jest funkcja odpowiedzialna za wy wietlanie b dw.All Functions>Time & Dialog>Simple Error Handler.vi. Do jej funkcjonowania wystarczy informacja o b dzie. Tak mo emy dostarczy z funkcji Close File. czymy Error Out (Close File) z Error In (Simple Error Handler).

Po uruchomieniu przyk adu (Run) program powinien si zapyta o nazw plik do zapisu. Funkcje s posiadaj nast puj ce terminale: Open file - otwiera plik

Write file - zapis do pliku

Close file - zamkni cie pliku Simple Error Handler - prosta obs uga b dw (wypisuje b d)

Przyk ad - odczyt z pliku Poni ej zaprezentowano prosty sposb odczytu pliku.W panelu frontowy umieszczamy jedynie pole StringIndicator z palety kontrolek (Text Inds >String Ind).

Panel frontowy files2.vi Powi kszamy do danych wymiarw wska nik String. W diagramie blokowym b dzie nieco wi cej zada do wykonania.

Diagram blokowy files2.vi

Na pocz tek dodamy wszystkie elementy, jakie powinny si pojawi w panelu. Dodajemy zatem z palety funkcji: All Functions > File I/O > Open/Create/Replace File.vi. Wybierz z palety narz dzi (Tools Palette) Connect Wire. Najd nad ikon Open/Create/Replace File.vi. Spo rd terminali odszukajmy (function (open:0)). Kliknijmy prawym przyciskiem myszy nad tym terminalem i wybierzmy: Create>Constant. Obok ikony pojawi si pole z napisem open. Je eli wybrana jest inna opcja niz open - Wybierzmy Operate Value z palety narzedzi i kliknijmy lewym przyciskiem na wspomniane pole. Wybierzmy opcj create or replace (tworzenie lub zamiana). Klikamy prawym nafunction i wybieramy open. Wybieramy dalej kolejne elementy i umieszczamy je na diagramie blokowym: All Functions>File I/O>File Constants>Path Constant. Element ten czymy z terminalem file path funkcji Open/Create/Replace.vi. All Functions>String>String Constants.Uzupe niamy zawarto pola narz dziem Edit Text wpisuj c "Enter file name to read", a nast pnie czymy element z terminalem prompt. All Functions>String>String Constants.Uzupe niamy zawarto pola narz dziem Edit Text wpisuj c "*.txt", a nast pnie czymy element z terminalm pattern.Oznacza on typ plikw (rozszerzenie), jaki b dzie domy lnie otwierany. All Functions>File I/O>Read File. czymy terminal refnum funkcji Read File z terminalem refnum funkcji Open File. czymy rwnie terminal Count (ilo bajtw do przeczytania) funkcji Read File z terminalemfilesize(bytes) (rozmiar pliku) funkcji Open File. Analogicznie czymy terminale error out (open file) -> error in (read file). W przypadku odczytu z pliku - musimy rwnie wybra pozycj od ktrej nale y zacz odczyt pliku. W naszym przypadku b dziemy chcieli rozpocz od pocz tku. W tym celu wybieramy narz dzie Connect Wire z palety funkcji i klikamy prawym przyciskiem na terminal pos mode(0:2). Z menu wybieramy opcj Create Constant.Powinna pojawi si opcja start. Je eli pojawi a si inna opcja - zmieniamy j na "start" z wykorzystaniem narz dzia operate value. Terminal danych z naszej funkcji Read File - terminal (data) czymy z uprzednio umiejscowionym wsk nikiem String. Analogicznie jak w przypadku odczytu - nale y zamkn plik i sprawdzi czy nie wyst pi y

b dy.Zatem dodamy All Functions>File I/O>Close File. czymy terminale: dup refnum, Error Out funkcji Read File w tej kolejno ci z terminalami refnum, Error In (funkcji Close File). Ostatnia jest funkcja odpowiedzialna za wy wietlanie b dw.All Functions>Time & Dialog>Simple Error Handler.vi. czymy Error Out (Close File) z Error In (Simple Error Handler). Po uruchomieniu przyk adu (Run) program powinien si zapyta o plik do odczytu. Dialog powinien zacz si oknem "Enter filename to read". Wska e on pliki tekstowe z rozszerzeniem txt.Po wybraniu pliku - zawarto zostanie wy wietlona w oknie String.

You might also like