virtuelna instrumentacija labview i deo

Upload: boban-zarkov

Post on 10-Jul-2015

216 views

Category:

Documents


4 download

TRANSCRIPT

VIRTUELNA INSTRUMENTACIJA - LabVIEWI deo

VIRTUELNA INSTRUMENTACIJAVirtuelna instrumentacija predstavlja metodologiju za projektovanje instrumenata, koja koristi standardni PC raunar, specijalne hardverske komponente za akviziciju i digitalnu konverziju signala, i raunarske programe koji omoguuju prikupljanje, obradu i prikaz signala na raunaru Virtuelna instrumentacija omoguava objedinjavanje razliitih tipova instrumenata u jedan insturment PC raunar Obezbeuje lako programiranje instrumenata, reprogramiranje i nadogradnju potojeih instrumenata Omoguava iskorienje postojeih resursa PC raunara: memorijski prostor, brza obrada velike koliine podataka, baze podataka, Internet, e-mail, LAN... Olakana je upotreba instrumenata jer su zasnovani na PC korisnikom interfejsu Reusability

1

VIRTUELNA INSTRUMENTACIJARodonaelnik virtuelne instrumentacije je firma National Instruments iz SAD-a National Instruments se bavi proizodnjom: Hardware DAQ kartice, ureaji za automatiku i merenje Software LabVIEW, aktuelna verzija v7.1 Measurement Studio (Visual Basic, VC++, LabWindows C) Primena drugih alata u virtuelnoj instrumentaciji: Matlab (Data Acquisition Toolbox)

Laboratorija opremljena virtuelnim instrumentima

DAQ - kartica, National Instruments

LabVIEWLabVIEW je grafiki orijentisan programski jezik koji koristi ikonice umesto teksa za kreiranje aplikacija LabVIEW - Laboratory Virtual Instrument Engineering Workbench. Umesto pisanih instrukcija, koristi se tok podataka (data-flow) dijagram za pisanje koda Sastoji se iz front panela u kome se projektuje korisniki interfejs i block diagram-a u kome se programira kod.

front panel

block diagram

2

LabVIEWU LabVIEW- u, korisniki interfejs se pravi koristei ve gotov set kontrola, indikatora i objekata (prekidai, grafici, digitalne kontrole) Kada se isprojekuje interfejs, tada se u block diagram prozoru pie kod Blok dijagram predstavlja mesto gde se pie kod - logiki se povezuju kontrole i uslovi izvravanja programa U blok dijagramu se koristi tok podataka (data flow), a ne sekvencijalne instrukcije kao u tekstualnim programskim jezicima Upravo tok podatak odreuje redosled izvravanja delova programa

Sinus generator - front panel

Sinus generator block diagram

Programiranje u LabVIEW-uProgrami u LabVIEW- u se nazivaju virtuelni instrumenti i obeleavaju sa VI Na front panelu se postavljaju kontrole: grafici, prekidai, indikatori i drugi elementi. U njemu se projektuje interfejs koji treba da podsea na konvencionalni fiziki instrument (osciloskop, multimetar...) Interfejs treba da omogui lak i jednostavan nain korienja virtuelnih instrumenata Za projektovan interfejs, formira se programski kod u blok dijagramu Svaki isprogramirani virtuelni instrument moe da se koristi kao podprogram (subVI) u nekom drugom VI

3

Blok dijagramU prozoru blok dijagrama se pie tj. projektuje programski kod virtuelnog instrumenta. Terminali koji se nalaze u blok dijagramu predstavljaju kontrole koje se nalaze na front panelu. Povezivanje kontrola (oiavanje) i dodavanjem struktura i funkcija formira se programski kod LabVIEW-a. Osnovni elementi u blok dijagramu: terminali (terminals) vorovi (nodes, statments) ice (wires) strukture (structures)

Treminali u blok dijagramu su prezentacija kontrola sa front panela. Mogu biti ulazni (kontrole) i izlazi (indikatori) vorovi su elementi u blok dijagramu koji su predstavljeni ikonicama, i odgovaraju operatorima, funkcijama, podprogramima u tekstualnom programskom jeziku. Imaju ulaze i izlaze. One slue za izvrenje razliitih programski instrukcija i izraza ice slue za povezivanje terminala vorova i struktura unutar blok dijagrama. One simbolizuju tok podataka Strukture predstavljau grafike prezentacije programskih petlji (For,While), zatim Case struktura i sekvenci

ice

struktura

terminali

vor - node

4

LabVIEW okruenjeLabVIEW okruenje sastoji se od: front panela, blok dijgaram porzora, paleta kontrola (Controls Pallete), paleta funkcija (Functions Pallete), paleta alata (Tools Pallete), Paleta kontrola (Controls Pallete) dostupna je samo kada je aktivan front panel prozor Paleta alata je dostupna u oba LabVIEW prozora. U ovoj paleti se vri izbora alata koji se koristi pri grafikom programiranju i razliiti modovi pointetra mia: selektror, tekst, oiavanje, breakpoints, bojenje i drugo Front panelPaleta kontrola Controls Pallete Paleta alata Tools Pallete

LabVIEW okruenjePaleta funkcija (Function Pallete) dostupna je samo kada je aktivan blok dijagram prozor. U ovoj paleti nalazi se veliki broj programskih funkcija (numerikih logikih), programa i virtuelnih instrumentat za akviziciju analizu, obradu i prikazivanje podataka Function Pallete Paleta alata je dostupna u oba LabVIEW prozora. U ovoj paleti se podeavaju razliiti modovi pointetra mia: selektro, tekst, oiavanje, brakpoints, bojenje... Paleta funkcija (Function Pallete) dostupna je samo kada je aktivan blok dijagram prozorTools Pallete

5

Dizajniranje front panelaNa front panel se postavljaju elementi po elji prevlaenjem sa palete kotrola. U okviru svake palete se nalaze nekoliko podpaleta sa veim izborom razliitih kontrola Na slici je prikazan jedan primer virtulenog instrumenta koji generie sinusni signal Elementi koji su koriteni su: Knob (Amplitude, Frequency) Button (Stop) Meter (metrina skala) Graph Graph (Waveform graph) Numeric control (Samples)

Meter

Knob Numeric control

Numerike kontroleIz osnovne palete kontrola mogu se birati razne pod-palete Paleta numerikih kontrola sadri grafike kontrole za zadavanje, kontrolu i prikazivanje numerikih vrednosti u LabVIEW Veina kontrola vizuelno podsea na kontrole stvarnih fizikih instrumenta Pored numerikih kontrola nalaze se i numeriki indikatori Na slici su prikazane neke kontrole koje se esto koriste pri projektovanju virtuelnih instrumenata: Numeric, Knob, Slide, Tank

Numeric subpallete

6

Boolean i String kontroleBoolean kontrole omoguavaju zadavanje logikih (boolean) vrednosti preko korisnkog interfejsa Najee su u obliku prekidaa, koji mogu da imaju diskretne vrednosti u zavisnosti od poloaja (On, Off) Boolean indikatori su najee predstavljeni LED indikatorima String kontrole obezbeuju zadavanje tekstualnih poruka i naziva u programu U okviru ove pod palete nalaze se i Path kontrole, koje omoguuju zadavanje putanja za pristupanje fajlovima i aplikacijama Obe kontrole imaju i ekvivalentne indikatore

Boolean subpallete

String subpallete

GraficiLabVIEW poseduje nekoliko tipova grafova: Graph, Chart, XY Graph, 3D Graph, Digital Waveform Graph Grafici slue za prikazivanje funkcija, merenih signala, rezultate obrade i analize Na jednom grafiku mogu se prikazivati vie signala Mogu se podeavati i vie skala razliitih intertvala Razlika graph i chart: chart grafici imaju memoriju, tj pamte zadatu koliinu taaka bez obzira da li je prikazuju u tom trenutku

Graph subpallete

7

Primeri drugih kontrolaU LabVIEW-u se nalaze i druge kontrole koje omoguavaju projektovanje kvalitetnog grafikog korisnikog interfejsa U pod-paleti List &Tables se nalaze kontrole: list box, tables U pod paleti Rings&Enum se nalaze kontrole: Ring, Enum, Menu U pod paleti Array&Cluster se nalaze kontrole: Array, Cluster, Tab U pod paleti Dialog Controls se nalaze kontrole dialoga, padajueg menija, radio button, checkbox i druge Na slici su prikazani primeri nekih kontrola

Dizajniranje blok dijagramaObjekti koji se nalaze na front panelu predstaljeni su u blok dijagramu kao terminali Povezivanje kontrola (oiavanje) i dodavanjem razliitih programskih funkcija formira se programski kod LabVIEW-a. Na slici je primer blok dijagrama programa za generisanje sinusnog signal, iji je front panel pirkazan na nekom od predhodnih slajdova Terminali nose ista imena kao i kontrole na front panelu

Meter terminal Numeric control terminal

Graph terminal Knob terminal

8

Tipovi podataka u LabVIEWLabVIEW je grafiki programski jezik te je stoga svaki tip ili struktura podatka prikazan na specifian nain, korienjem razliitih boja i oblika. Svaki tip ima svoju boju i oblik Spajanjem u programu ice takoe oslikavaju protok razliitih tipova podataka. ice su razliite debljine i boje za razliite tipove podataka U tabeli je dat prikaz tipova podataka u LabVIEW-u

Tipovi podataka u LabVIEW - nastavak

9

Funkcije u LabVIEW-uU LabVIEW-u se nalazi veliki broj funkcija za rad sa bojevima, stringovima, booleanima, nizovima, funkcije koje omoguavaju obradu signala, merenja i analizu Funkcije u LabVIEW su: numerike funkcije, strukture, boolean, string, nizovi - array, cluster, file I/O, waveform, dialog, DAQ, funkcije za analizu i obradu signala... Postoje i napredne funkcije za upravljanje aplikacijama (advanced function, appliction control function) Sve funkcije su predstavljene ikonicama, i poseduju ulaze i izlaze na koje se vezuju ice, ime se funkcije implementiraju u programski kod Primeri nekih funkcija u LabVIEW: Paleta funkcija

While petljaU LabVIEW-u strukture u programu su prikazane grafiki. Strukture u LabVIEW su: While loop, For loop, Sequence, Case, Formula node, Event structure While petlja (prikazana na slici) je predstavljena kao kvadrat sivih zadebljanjih stranica. Ovaj kvadrat moe proizoljno da se smanjuje ili poveava. Sve to se nalazi unutar kvadrata predstavlja programski kod koji se izvrava unutar While petlje. Petlja se izvrava dok nije zadovoljen uslov. Uslov za zaustavljanje petlje se zadaje preko kondicionog terminala (conditional) koji je Boolean tipa Index terminal vri brojanje iteracija While petlje Petlja moe da se zaustavi signalom sa kontrole koja se nalazi na front panelu (npr. Stop) ili programski iz same petlje, ako je zadovoljen uslova zaustavljanja While petlja se ne moe zaustaviti naredbom koja se zadaje van petlje u trenutku izvrenja

10

For petljaFor petlja (prikazana na slici) je grafiki predstavljena kao kvadrat. Ovaj kvadrat moe proizoljno da se smanjuje ili poveava. Sve to se nalazi unutar petlje kvadrata predstavlja programski kod koji se izvrava unutar For petlje. Broj izvravanja zadaje se preko count N terminla Iteracioni terminal i sadri trenutni redni broj izvrenja For petlje Broj iteracija For petlje moe biti i Auto-indexing, tj. ako se neka viedimenzionalna struktura (niz, matrica) dovede na ulaz petlje, tada e petlja imati onoliko iteracija kolika je dimenzija ulazne stukture (prikazano na slici) Po zavretku petlje izlazni parameter se prosleuje dalje u program. Kada se eli prenosti vrednost parametra untar petlje iz prethoden u sledeu iteraciju korsti se Shift registar. Ova opcija se bira na sledei nain: desnim klikom mia na ivicu For petlje, dobija se padajui meni iz kog se bira Add Shift Registar. Ovih registara moe biti vie u petlji, mogu biti svih tipova. Inicijalne vrednisti se mogu zadavati van petlje, a na kraju izvrenja petlje, poslednja vrednost parametra je ujedno i izlazna vrednost

Auto indexing

Shift registar

Case strukturaCase struktura (prikazana na slici) predstavljena je grafiki kao sivi uramljeni kvadrat. Ova struktura odgovara Case naredbi u standardnom tekstualnom programskom jeziku Kao prethodne grafike strukture i ova moe da se poveava ili smanjuje. Sve to obuhvati ova grafika struktura predstavlja programski kod koji se izvrava unutar Case izraza Case struktura sadri vie pod-dijagramskih struktura - cases (najmanje dve), koji predstavljaju programski kod za svaki od zadatih ulaznih uslova. Samo je jedan dijagram vidljiv, i samo se jedan pod-dijagram izvrava u jedno trenutku Case selector terminal predstavlja ulaz u Case struktura. On moe bit razliitog tipa: boolean, integer, enum ili string. U vrhu Case strukture nalazi se labela Case selector label koja sadri trenutnu vrednost izabranog case-a Izlaz iz petlje predstavljen je kroz grafiki tunel. Ukoliko se eli ilaz iz case-a, svi pod-dijagrmi moraju da imaju izlaz istog tipa. U protivnom program e javiti greku

11

Sequence strukturaSequence struktura (prikazana na slici) je grafiki predstavljena kao sivi uramljeni kvadrat. Sve to obuhvati ova grafika struktura predstavlja programski kod koji se izvrava unutar Sequence strukture Sequnce struktura sadri vie pod-dijagramskih struktura - sequences (najmanje dve), koji predstavljaju programski kod za svaki od zadatih ulaznih uslova. Slui za voenje rauna o redoslednom izvrenju delova programa Samo je jedan dijagram vidljiv, i samo se jedan pod-dijagram izvrava u jedno trenutku U vrhu Sequence strukture nalazi se labela Sequence label koja sadri broj sekvence koja se trenutno izvrava Primenom sekvence omoguena je kontrola izvrenja toka programa Ako se ele prenositi parametri i vrednosti iz jedne u drugu sekvencu, koristi se sequence local terminal Ovaj terninal je grafiki predstavljen strelicama, i simbolno pokazuje smer toka podataka (strelica gore, strelica dole)

Numerike funkcijeLabVIEW poseduje implemeniran veliki broj funkcija koje vre numerike operacije Na slici je prikazana paleta Numeric (Function>>Numeric) u kojoj se mogu nai osnovne funkcije za sabiranje oduzimanje, mnoenje, korenovanje, trigonometrijske funkcije, logaritamske funkcije, rad sa kompleksnim brojevima i druge LabVIEW ima podrane operacije i za nizove i matrice (primer na slici)

12

Boolean funkcijeLabVIEW poseduje implemeniran logike - boolean funkcije Na slici je prikazana paleta Boolean funkcija u kojoj se mogu nai osnovne logike funkcije: And, Or, Xor i druge (na slici) Ove funkcije se najee koriste za dobijanje uslova potrebnih za izvrenje delova programa Case struktura

Funkcije za rad sa nizovimaLabVIEW poseduje implemenirane funkcije koje omoguavaju rad sa jednodimenzionalnim i viedimenzionalnim nizovima Funkcije za rad sa nizovima: pretraivanje, indeksiranje, rotiranje, spajanje, promena dimenzija, dodavanje dimenzija, dodavanje ili brisanje elementa iz niza, transpozicija, pronalaenje minimalnog ili maksimalnog elementa, formiranje viedimenzionalnih struktura i druge Nizovi su skup elemenata istog tipa, koji su indeksirani. Najee se koriste jednodimenzionalni (vektori), dvodimenzionlni (tabele) Nizovi mogu biti formirani od gotovo svih tipova u LabVIEW: brojeva, stringova, boolean promenljivih, klastera. Elementima nizova se pristupa preko indeksa Nizovi u LabVIEW najee se koriste za smetanje vee koliine podataka pri merenjima, analizi i obradi signala

13

Funkcije za rad sa stringovimaLabVIEW poseduje veliki broj funkcija koje omoguavaju rad sa stringovima Stringovi se koriste za prikazivanje tekstualnih poruka, za prenos podataka izmeu instrumentata, smetanje podataka u fajlove i sl. Funkcije za rad sa stringovima omoguuju pretraivanje i zamenu karatkera unutar stringa, menjanje teksta, spajanje strigova, rotiranje, brisanje... String moe da se predstavi u numerikoj vrednosti i obrnuto. To je jedan od najeih naina korienja stringova u LabVIEW Da bi se podaci prikazali tekstualno ili u tabelarnoj formi koriste se iskljuivo stringovi Za prikaz numerikih nizova u tabelarnoj formi (spreadsheet) koristi se konverzija brojeva u string

Cluster tipovi podatakaClusteri predstavljaju tip podataka koji je sastavljen od skup elemenata razliitog tipa Klasateri su slini tipu record ili struct u tekstualnim programskim jezicima Formiraju se korienjem bundle konektora Skupljanjem elemenata razliitog tipa u jedan formira se record, koji je predstavljen samo jednom icom. Na taj nain se smanjuje broj ica u blok dijagramu i poveava peglednost grafikog koda Elementima unutar klastera prstupa se preko tipa. Mora se ceo klaster "rasformirati" (Unbundle) da bi se pristupilo elementu Elementima klasetera moe se pristupiti i po imenu

14

File I/O funkcijeZa snimanje podataka u fajl i iitavanje koriste se File I/O funkcije LabVIEW obezbeuje snimanje u tri formata: tekstualni, binarni i datalog. Tekstualni se najee koristi jer se moe itati iz drugih aplikacija Binarni format se koristi u sluaju da se eli memorisati velika koliina podata, recimo pri akviziciji Datalog format se koristi kada se eli formirati sloeniji format podataka, i on moe da se ita samo iz LabVIEW-a Ove funkcije obezbeuju otvaranje i zatvaranje fajlova, upisivanje u fajlove i iitavanje iz fajlova Takoe imaju podrku za rad sa podacima u tabelarnoj formi (spread-sheet format)

File I/O funkcijeTekstualni format se najee koristi jer se moe itati iz drugih aplikacija Datalog format se koristi kada se eli formirati sloeniji format podataka (record), i on moe da se ita samo iz LabVIEW-a Record se formira korienjem Cluster funkcija

15

Funkcije za komparacijuU funkcije za komparaciju spadaju standardne funkcije koje su podrane i u tekstualnim programskim jezicima To su: vee, manje, jednako, razliito, jednako nuli i druge Primena ovih funkcija je veoma esta pri konroli izvrenja toka programa Moe se vriti kompracija gotovo svih tipova podataka u LabVIEW: brojeva, stringova, booleana, nizova, veedimenzionalnih nizova, klastera...

Funkcije za kontrolu vremena i datumaU okviru LabVIEW postoje funkcije za kontrolu vremena i datuma Vremenski intervali se mogu proizvoljno zadavati. Najmanji interval je 1 ms, iako ovo vreme nije zagarantovano i uveliko je zavisno od zauzetosti porcesora (system dependent) Na istoj paleti se nalaze funkcije za rukovanje grekama Ovi podprogrami (subVI) obezbeuju dialoge sa ispisanim kodovima greke, u sluaju da se pojavi greka pri izvrenju programa

16