You are on page 1of 84

Diplomskirad

______________________________________________________________________________________________________________

Saetak
Cilj diplomskog rada je upoznavanje sa osnovnim elementima LabVIEW programskog jezika za
kreiranjevirtualneinstrumentacijeiakvizicijompodatakakoristeiLabVIEWprogramskookruenjei
DAQ kartice. LabVIEW omoguava kreiranje korisnikih aplikacija za mjerenja, akviziciju podataka,
upravljanjeinstrumentima,pohranupodataka,kreiranjeizvjetajaimnogedrugeprimjene.
Obraeni su osnovni tipovi podataka i upravljanje tokom izvrenja programa. Posebna panja
poklonjena je programskim strukturama, tj. petljama, case, sekvencijalnim i event strukturama te
funkcijama i izvravanju MATLAB skripti. Nizovi i klasteri, kao i funkcije za rad sa njima opisani su
detaljno. Grafiki prikaz podataka, tj. grafikoni imaju znaajnu ulogu, stoga im je posveeno jedno
itavopoglavljeukojemsupodijeljeninatipoveGraphsiCharts.
Akvizicija podataka ili upravljanje akvizicionim karticama je jedna od najvrijednijih funkcija
programskog paketa LabVIEW, a u ovom diplomskom radu akcenat je na DAQ sistemima. Pored
navedenih tema panja je usmjerena i na funkcije za rad sa stringovima, te funkcijama za itanje i
pisanjerazliitihtipovapodatakaiziufajlove.Kodkontroleinstrumenatapredstavljenesudvijevrste
komunikacijeitoGPIB i komunikacija preko serijskog porta. Nije izostavljenanianalizapodataka u
kojojjesadranogenerisanjesignalaiobradasignala(Fourierovetransfomacije,prozorskefukcijei
filtriranje).Odnaprednihaplikacijaizdvojenjedaljinskiiliudaljeniprednjipanel(Remotefrontpanel).
Svejepropraenobrojnimprimjerimaislikama.
Na kraju rada uraen je i zadatak koji ima za cilj kreiranje virtuelne instrumentacije za mjerenje
temperatureprostorijeprekoDAQkarticakoristeisenzortemperature,tesnimanjeufajlizmjerenih
podatakaiitanjeistihizfajlova.

Diplomskirad
______________________________________________________________________________________________________________

Diplomskirad
______________________________________________________________________________________________________________

Abstract
Through this exam, we met with the basic elements of the LabVIEW programming language for
creatingvirtualinstrumentationandthedataacquisitionusingLabVIEWprogrammingenvironment
and the DAQ cards. The LabVIEW allows creating the users applications for measurement, data
acquisition, management instruments, data storage, creating statements and many other
applications. The study included basic data types and managing during program execution. Special
attention is given to program structures, i. e. loops, case, sequential and event structures and
functions and executing the MATLAB scripts. Arrays and clusters, as well as functions for working
withthemaredescribedindetail.Graphicalreviewofdata,i.e.graphsplaysanimportantrole,soit
tookanentirechapterinwhichtheyaredividedintotypesofGraphsandCharts.
Data acquisition or management of acquisition cards is one of the most valuable features of the
LabVIEWsoftwarepackage,andinthisexamDAQsystemhasbeenemphasized.Inadditiontothese
topics, the focus is on functions for working with strings, and functions for reading and writing
different types of data to and from files. When we talk about monitoring instruments, the two
followingtypesofcommunicationarerepresented,GPIBandcommunicationviaserialport.Itisnot
left out any data analysis which comprises signal generation and signal processing (Fouriers
transformations,windowfunctionsandfiltering).Amongadvancedapplications,thereisemphasized
theRemoteFrontPanel.
Abovementionedisfollowedbynumerousexamplesandfigures.
Asampleisgivenattheendofthisexam.Itaimstocreatevirtualinstrumentationsformeasuringthe
roomtemperatureviaDAQcardsusingatemperaturesensorandrecordingofmeasureddatatoa
fileandtheirreadingfromafile.

Diplomskirad
______________________________________________________________________________________________________________

Sadraj
SAETAK.......................................................................................................................................................... 2
ABSTRACT....................................................................................................................................................... 4
1.UVOD ............................................................................................................................................................ 8
2.ELEMENTIPROGRAMALABVIEW ....................................................................................................... 9
2.1.Prednjipanel(Frontpanel) .....................................................................................................................9
2.2.Blokdijagram(Blockdiagram)...............................................................................................................11
2.3.Upravljanjetokomizvrenjaprograma..................................................................................................13
2.4.Tipovipodataka ....................................................................................................................................13
2.5.ExpressVIevi .......................................................................................................................................16
2.6.SubVIevi ..............................................................................................................................................16
2.7.Primjer .................................................................................................................................................17

3.PROGRAMSKESTRUKTUREIFUNKCIJE ..........................................................................................18
3.1.Forpetlja(ForLoop)..............................................................................................................................18
3.2.Whilepetlja(WhileLoop) .....................................................................................................................19
3.3.Pristuppodacimaizprethodneitracije ..................................................................................................20
3.3.1.Shiftregistri ..........................................................................................................................................20
3.3.2.Feedbackvorovi..................................................................................................................................21
3.4.CaseStrukture(Casestructure) .............................................................................................................21
3.5.Sekvencijalnestrukture(Sequencestructure)........................................................................................23
3.5.1.Flatsekvence(Flatsequence) ...............................................................................................................23
3.5.2.Stackedsekvence(Stackedsequence) ..................................................................................................24
3.6.Eventstrukture(Eventstructure) ..........................................................................................................26
3.7.Vremenskefunkcije ..............................................................................................................................28
3.8.Matematikeformule ...........................................................................................................................29
3.9.vorovisvojstva(Propertynodes) .........................................................................................................30
3.10.Matlabskripte(Matlabscriptnodes)...................................................................................................31
3.11.Primjer ...............................................................................................................................................33

Diplomskirad
______________________________________________________________________________________________________________

4.NIZOVI(ARRAYS)IKLASTERI(CLUSTERS)....................................................................................35
4.1.Nizovi(Arrays) ......................................................................................................................................35
4.1.1.Vrstenizova..........................................................................................................................................35
4.1.1.1.Jednodimenzionalninizovi ............................................................................................................35
4.1.1.2.Viedimenzionalninizovi ...............................................................................................................36
4.1.2.Funkcijesanizovima .............................................................................................................................37
4.1.3.Polimorfizam ........................................................................................................................................38
4.2.Klasteri(Clusters)..................................................................................................................................38
4.2.1.Funkcijesaklasterima...........................................................................................................................39
4.3.Primjer .................................................................................................................................................40

5.GRAFIKONI:GRAPHSICHARTS .........................................................................................................42
5.1.Graphs..................................................................................................................................................42
5.2.Charts...................................................................................................................................................43

6.AKVIZICIJAPODATAKA ........................................................................................................................45
6.1.Tipovisignala........................................................................................................................................46
6.2.DAQsistem...........................................................................................................................................47
6.3.DAQVIorganizacija ..............................................................................................................................49

7.STRINGOVIIUPISIVANJE/ITANJEPODATAKAU/IZFAJLA.....................................................53
7.1.Funkcijezaradsastringovima...............................................................................................................54
7.2.Funkcijezaradsafajlovima...................................................................................................................55
7.3.Primjeri ................................................................................................................................................57
7.3.1.Primjer1...............................................................................................................................................57
7.3.2.Primjer2...............................................................................................................................................58

8.KONTROLAINSTRUMENATA ..............................................................................................................60
8.1.GPIB(GeneralPurposeInterfaceBus)....................................................................................................60
8.2.Komunikacijaprekoserijskogporta.......................................................................................................61
8.3.Instrumentdrajeveri(Instrumentdrivers) .............................................................................................62

9.ANALIZAPODATAKA.............................................................................................................................64
9.1.MatematikauLabVIEW ........................................................................................................................64
9.2.Generisanjesignala...............................................................................................................................67
9.2.1.Normaliziranafrekvencija.....................................................................................................................67
9.2.2.WaveiPatternVIevi............................................................................................................................ 67

Diplomskirad
______________________________________________________________________________________________________________

9.3.Obradasignala(Signalprocessing) ........................................................................................................68
9.3.1.Fourierovatransformacija ...................................................................................................................68
9.3.2.Prozorskefunkcije ................................................................................................................................69
9.3.3.Filteri ....................................................................................................................................................70
9.4.Primjeri ................................................................................................................................................72
9.4.1.Primjer1...............................................................................................................................................72
9.4.2.Primjer2...............................................................................................................................................72

10.NAPREDNEAPLIKACIJELABVIEWA..............................................................................................74
11.ZADATAK................................................................................................................................................76
11.1.Koritenaoprema ...............................................................................................................................76
11.2.Rjeenje..............................................................................................................................................78

12.ZAKLJUAK ............................................................................................................................................84
13.LITERATURA .........................................................................................................................................85

Diplomskirad
______________________________________________________________________________________________________________

1. UVOD
Najefikasnija tehnika za realizaciju programa PC baziranog mjernoupravljakog sistema je grafiko
programiranje. Dananji programski alati koji su zasnovani na konceptu grafikog programiranja
imaju mogunost razvoja programa za akviziciju podataka i upravljanje, te analizu podataka i
prezentaciju.LabVIEW (LaboratoryVirtual Instrument EnginerringWorkbench)predstavlja razvojno
okruenje za kreiranje programa u formi blok dijagrama koritenjem grafikih simbola. LabVIEW je
programskijezikoptenamjenekojisadrimnotvobibliotekafunkcijakojesupogodnezarjeavanje
razliitihzadataka.Prviputjerealizovan1986.godinezaupotrebeMacintoshoperativnogsistema. 1
Godinamaseproirioinaostaleplatforme.Vremenomserazvijao,dobijaonovefunkcijeirelativno
novi izgled. On predstavlja jedan moan i fleksibilan softver. Kreiran je od strane National
Instruments (NI) poznata kompanija koja kreira hardver (hardware) i softver (software) produkte
kojisuodpomoiininjerimainauci.NIkompanijaosnovanajeuAustinu,Texas.
Sa LabVIEWom vrimo projektovanje eljene virtuelne instrumentacije kreirajui grafiki korisniki
interfejsnaekranuraunara,koji:rukujeinstrumentacionimprogramom,kontrolieizabranihardver,
analizira prikupljenje podatke, te prikazuje rezultat. Pomou LabVIEWa kreira se front panel
korisniki interfejs, koji omoguava interaktivnu kontrolu izvravanja korisnikog softvera. Da bi se
specificirala funkcionalnost sistema, vri se intuitivno grafiko asembliranje dijagrama pomou
gotovih funkcionalnih blokova, to je ustvari prirodan nain ininjerskog predstavljanja sistema.
LabVIEW ima sve razvojne alate i mogunosti kao i standardni programski jezici: petlje, strukture,
grananja,alatezakonfiguraciju,kompajlerskeperformanseitd.Osimtogaonsadribibliotekekojesu
potrebne za akviziciju podataka pomou akvizicicionih kartica (u ovom slucaju DAQ kartica),
upravljanje instrumentacijom preko IEEE488, VXI, PXI, RS232, RS485 interfejsa, analizu podataka,
prezentaciju i memorisanje. LabVIEW posjeduje standardne funkcije razvojnog programa, tj.
postavljanje take prekida i pojedinanog koraka, koje se koriste pri razvoju programa za
sagledavanje toka odvijanja programa i jednostavnije otkrivanje greaka.2 LabVIEW koristi grafiki
programskijezikkojisezoveG.TrenutnoposljednjaverzijaLabVIEWajeLabVIEW2011,realizovana
uaugustu2011.godine.
Context Help kojeg nalazimo u LabVIEWu (u Help meniju) nam je od velikog znaaja. On nam
pojanjavaobjektenakojepokazujemomiem,njihovrad,ulogu,teterminale(ulazeiizlaze).

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.557

VujoDrndarevi,Personalniraunariusistemimamjerenjaiupravljanja,Akademskamisao,Beograd,2003;
str.369

Diplomskirad
______________________________________________________________________________________________________________

2. ELEMENTI PROGRAMA LabVIEW


ZaprogramkojijekreiranuLabVIEWufirmaNationalInstumentssugerienazivvirtuelniinstrument
(VI)3.VIjedobionazivupravozbog svogizgleda,organizacije i nainaradatoodgovaraklasinom
instrumentu.VIsesastojioddvadijela:prednjipanel(frontpanel)iblokdijagram(blockdiagram).
Interaktivankorisnikiinterfejs,ekvivalentanprogramskomkodujeprednjipanel.Onsimuliraprednji
panel fizikog instrumenta. Blok dijagram realizovan u LabVIEW grafikom okruenju prosljeuje
komandevirtuelnominsrumentu.
VIjeorganizovanhijerarhijskiimodularno.Moeimatiuloguglavnogprogramailibitipodprogram,
kaodioprogramailiveegpodprograma.VIkojijepodprogramdrugogVInazivasesubVIokojeme
bitirijeikasnije.HijerarhijskomimodularnomorganizacijomVIobezbijeenjekonceptmodularnog
programiranja. Komplikovani zadatak dijeli se na skup jednostavnih podzadataka to nam u
mnogomeolakavaposao.
VI i njegove komponente su analogni glavnim programima i subrutinama tekstualnih programskih
jezika.
SvakiVI,atakoisubVIimakonektoreiikonukojagasimbolizira,analaziseugornjemdesnomuglu.
Konektor je set terminala koji odgovaraju svojim kontrolama i indikatorima. Ikone mogu biti
tekstualne,grafikeilioboje,amoemoihieditovatiposvomukusu(EditIcon...ushortcutmeniju).

2.1.Prednjipanel(Frontpanel)
Prednji panel je kombinacija kontrola i indikatora. On moe sadravati: prekidae, potenciometre,
tastere, displeje i druge elemente za indikaciju i upravljanje. Podaci se unose pomou mia i
tastature,arezultatsedobijanaekranuPCa.
Kontrolesimulirajutipoveulaznihureajakojemoemonainakonvencionalniminstrumentima,kao
sto su prekidai, tasteri i sl. i osiguraju mehanizam prosljeivanja ulaza iz prednjeg panela ka
osnovnomblokdijagramu.Uzpomokontrolakorisnikuvijekmoedaznaukojemsestanjunalazi.

VujoDrndarevi,Personalniraunariusistemimamjerenjaiupravljanja,Akademskamisao,Beograd,2003;
str.370

Diplomskirad
______________________________________________________________________________________________________________

Sa druge strane indikatori osiguravaju mehanizam prikaza podataka porijeklom iz blok dijagrama
natragnafrontpanel.Oniukljuujurazliitevrstegrafovaiprikaza(tojeznaajnojersetielementi
nemorajudizajniratiposebno)tenumerike,booleanistringindikatore.
U paleti Controls moemo nai razliite vrste kontrola i indikatora, te lijepiti ih na prednji panel.
PaletaToolsigrauloguupomjeranju,poveavanjuibojenjuobjekata,teupisivanjulabela.
Frontpanelizgledaupravoovako:

Slika2.1.Prednjipanel,Controlspaleta,Toolspaleta
Na slici 2.2. vidimo primjer prednjeg ili front panela sistema za mjerenje, prikaz i analizu
temperature.Jasnoseuoavajurazliitekontroleiindikatori.

10

Diplomskirad
______________________________________________________________________________________________________________

Slika2.2.Primjerprednjegpanelasistemmjerenjatemperature

2.2.Blokdijagram(Blockdiagram)
Blok dijagram je izvorni kod za virtuelni instrument (source code). Blok dijagram se dobija
povezivanjemobjekatakojialju/primajupodatke,obavljajuspecifinefunkcije,teupravljajutokom
izvrenja programa. On predstavlja grafiki metod rjeavanja postavljenog zadatka. Blok dijagram
odgovaralinijamakodauprogramskimjezicimabaziranimnatekstu.
Komponenteblokdijagramapripadajujednojodtriklaseobjekata:4

vorovi(nodes)programskiizvrnielementi

Prikljuci (terminals) izlazi kroz koje podaci prolaze izmeu blok dijagrama i prednjeg
panelaiizmeuvorovablokdijagrama

Veze(wires)stazepodatakaizmeuterminala

Blokdijagramizgledakaonasliciispod:

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.58

11

Diplomskirad
______________________________________________________________________________________________________________

Slika2.3.Blokdijagram,Functionspaleta,Toolspaleta

Slika2.4.Primjerblokdijagramakojimnoi,uporeujeisabirabrojeve
Naslici2.4.vidimoprimjerblokdijagramakojimnoibrojeveAiBtedajeproizvod,porediAiBte
akosujednakipaliLED,sabiraAiBtedajenjihovusumu.
Kada se postavi upravljaki ili indikacioni element na prednju plou, tj. prednji panel, LabVIEW
automatski postavlja i odgovarajui prikljuak na prozor blok dijagrama. Prikljuak moemo
posmatratikaopar registara, priemuje jedan ulazni,a drugi izlazniregistar.Podaci koji se unose
prekoupravljakihelemenataAiBnaputajuprednjuplouprekoodgovarajuihprikljuakaivodese
naulazneprikljukefunkcijaadd,equalimultiply,tj.sabiranje,poreenjedalijejednakoimnoenje
respektivno.Rezultatiizraunavanjasesaovihfunkcijaprebacujunaizlazneprikljukeiusmjeravaju
sekaprikljucimaindikacionihelemenata,tj.dovodenaprednjuplougdjeseiprikazuju.

12

Diplomskirad
______________________________________________________________________________________________________________

vorovipredstavljajuelementeprogramakojimaodgovarajukomande,iskazi,funkcijeipodprogrami
kodprogramanastalihkoritenjemnekogodtekstualnihprogramskihjezika.Uovomsluajuvorovi
sufunkcijeadd,equalimultiply.Inae,osimmatematikihfunkcija,drugitipvorovasuprogramske
strukture. Programska struktura, po analogiji sa programskom petljom ili case statement kod
klasinogprograma,izvravaprogramciklinoiliuzuslovuzavisnostikojajeupitanju.
Veza predstavlja put podataka izmeu izvora i odredita. Razliiti tipovi podataka predstavljaju se
razliitimtipovimalinija.Usluajuloegoienjadobijamoispresijacanuvezu,kojaizgledaovako:

Slika2.5.Primjernepravilnogoienja
(BooleantippodatkanemoemosabratisaNumerictipom
crvenixiispresjecanavezaukazujunaloeoienje)

2.3.Upravljanjetokomizvrenjaprograma
Upravljanjetokomizvrenjaprogramaostvarujeseprincipomtokapodatakatj.dataflow.Toznaida
vor izvrava odreenu operaciju tek onda kada su dostupni podaci na svim ulaznim prikljucima.
vor daje podatke na izlazu kada zavri operaciju, a podaci se istog trenutka prenose od izvora do
odredita. Vidimo da se ovaj princip znatno razlikuje od principa upravljanja tokom izvravanja
tekstualnih programa, gdje se komande izvravaju onim redoslijedom kako su napisane, tj. odozgo
prema dole. Za praenje podataka i njihovog toka kroz blok dijagram LabVIEW posjeduje opciju
HighlightExecution.

2.4.Tipovipodataka
LabVIEW raspolae sa razliitim tipovima podataka,kao to su: signed integers, unsigned integers,
realfloatingpoint,complexfloatingpoint,boolean,string,itd.
Izgorenavedenogslijedidasebrojevimoguprikazatikaointegers(byte[I8],word[I16],long[I32])
ilifloatingpointbrojevi(single,doubleiliextendedprecision).Razliititipovipodatakaoznaenisu
razliitim bojama, to nam dosta olakava povezivanje objekata. Ne moemo povezati dva objekta
kodkojihtipovinisukompatibilni(tosmovevidjelinaslici2.5.).Npr.Numericcontrolkodkojegje

13

Diplomskirad
______________________________________________________________________________________________________________

okvir narandasti, sa malom naznakom DBL znai da je to Real FloatingPoint Double i moemo ga
povezatisamosaistimtipom,tj.satipompodatkakojitakoerimanarandastiokvir.Vezaizmedju
njihenaravnobitinarandasta,tooznaavakojitippodatkaputujekroznju.
Moguajeiautomatskakonverzijatipovapodataka,toseoznaavakaomalicrvenikruinaulazuu
indikatorgdjesevrikonverzija.Naslici2.6.jetojasnovidljivo.

Slika2.6.Automatskakonverzijatipovapodataka

Gdjeautomatskakonverzijanijemoguaidaljepostojekonvertori,kojibimogliposluitisvrsi.Onisu
prikazaninasliciispod:

Slika2.7.Funkcijezakonverzijutipovapodataka

UtabelamaispodjasnovidimokojetipovepodatakaimamoikakosuoznaeniuLabVIEWu,takoer
ivezeijabojaiizgledoznaavatippodatkakojiputujekroznju:

14

Diplomskirad
______________________________________________________________________________________________________________

Tabela2.1.TipovipodatakauLabVIEWu,njihoveoznakeiboje

Tabela2.2.Tipovioienja,izglediboje

Numericovavrstapodatkasadricijelibroj(Integers)ilibrojsapokretnimzarezom(FloatingPoint).
Quadintegerbrojeviimaju64bita.
Integers prikazuje cijeli broj, bilo pozitivan ili negativan. Koristimo unsigned podatke kada
znamodasuupitanjupozitivnibrojevi
Floating point brojevi reprezentuju frakcione (razlomake, brojevi sa decimalnim zarezom)
brojeve
Complex numbers reprezentuju kompleksne brojeve koji se sastoje iz dva dijela koja su
povezanazajednoumemoriji.Prvidiojerealandokjedrugidioimaginaran.
BooleanovavrstapodatkasadrilogikekombinacijeTRUE/FALSE,OR,AND,NOT..
Stringsadrisamoalfanumerikeznakove

15

Diplomskirad
______________________________________________________________________________________________________________

Dinamikipodaciasociranisusasignalomiatributimakojipruajuinformacijeosignalukaotosu
imesignalailivrijemeidatumprikupljanjapodataka
U submeniju Representation moemo pronai razliite reprezentacije kontrola i indikatora
ukljuujui 32bit single precision, 64bit double precision, signed integer 8bit itd. Reprezentacija
kontrolaiindikatoraustvarinamgovoriomemorijikojubrojzauzima.Nasliciispodvidimokakoto
izgledazaNumerictippodatka:

Slika2.8.ReprezentacijakontrolaiindikatorauLabVIEWu

2.5.ExpressVIevi
U relativno novijim verzijama LabVIEW (od LabVIEW 7) razvio se novi element nazvan Express VI.
ExpressVIevisuvorovikojizahtijevajuminimalnooienje,jersekonfiguriupomoudialogboxa.
BlokdijagrammoeimatiVIeve(subVI)iExpressVIevekaoelemente.DuplikliknaExpressVIotvara
dialog box preko kojeg vrimo konfiguraciju tog Expressa. Kroz rad emo se upoznati sa nekim od
ExpressVIevakojeposjedujeLabVIEW.

2.6.SubVIevi
SubVIjesamostalanVIkojijepozvanoddrugogVIa,tj.subVIjekoritenu blokdijagramuVIana
najviojrazini.Analoganjesubrutinamautekstualnimprogramskimjezicima.Nemakonanogbroja
subVIevakojisemogupozvatiizglavnogVIa.SubVIjeuinkovitatehnikauprogramiranjukojanam
doputaponovnokoritenjeistogkodaurazliitimsituacijama.
Moemo ga kreirati od nekog cijelog VIa ili od selektovanog dijela VIa (selektovati odreene
komponenteVIaipostavitiihusubVI).

16

Diplomskirad
______________________________________________________________________________________________________________

KadakreiramonovisubVI odpostojeegVIa, moramopoetioddefinisanja ulaza i izlaza subVIa i


tekondamoemopovezivatisubVIpravilno.

2.7.Primjer
Na slici ispod imamo jednostavan primjer oduzimanja dva cijela broja (Numeric 1 i Numeric 2),
njihovodijeljenjesa10zatimispitivanjedalijerezultatpozitivanbroj,tj.veiilijednaknuli.
RezultatseprikazujenainidkatoruNumerictipa(Rezultat),adiodatipabooleansepaliakojerezultat
pozitivan(TRUE),akojerezultatnegativan(FALSE)ondajeugaena.
SubVIjekreirannadvanaina:
Samo od jednog dijela VIa koji je oznaen napravljen je subVI (Edit >> Create SubVI) to
nakontogaizgledakaonazadnjojslicidesno.
OdcijelogVIa(Untitled1)ureenjemnjegoveikone,tj.prikazivanjemkonektorakaonaslici
ispod idodjeljivanjem ulaza iizlaza konektorima(2 ulazaNumeric tipa i 2izlaza od kojih je
jedanNumerictipa,adrugiBooleantipa).Konektorisusadaobojeniodgovarajuimbojamau
zavisnosti od tipa podatka. Nakon spremanja VIa moemo ga u bilo kojem drugom VIu
upotrijebitikaotovidimonaslici.

Slika2.11.PrimjersatipovimapodatakaikreiranjemSubVIanadvanaina

17

Diplomskirad
______________________________________________________________________________________________________________

3. PROGRAMSKE STRUKTURE I FUNKCIJE


Strukture reguliu tok izvrenja VIa. One predstavljaju poseban tip vora. Izvravaju se automatski
kada se na ulazu pojave podaci. Imamo pet struktura u LabVIEW: For petlja, While petlja ,Case
struktura,tesekvence(FlatiStacked).5OsimovihstrukturaimamojonaprednijeEventstrukture.
Kada se obave operacije koje su uokvirene strukturom podaci se alju na izlaz. Ulazni i izlazni
prikljuciuokvirustrukturegeneriuseautomatskikadavezapresjeeokvirstruktureinazivajuse
tuneli(tunels).6Osimtunelastrukturemoguimatiidrugeprikljuke.Uokvirublokdijagramamogu
sekoristitimatematikeformule(formulanode),tevorovisvojstva(propertynodes).
OsimtogaLabVIEWdozvoljavaiupotrebuMATLABskripti.

3.1.Forpetlja(ForLoop)
For petlja koristi se za upravljanje operacijama koje se ponavljaju. Ona omoguava da se dijagram
obuhvaenovomstrukturomizvriodreenbrojputa.BrojponavljanjapetjljeoznaenjesaN(count
terminal)idodjeljujemusenekavrijednost.Vrijednostmusemoedodijelitidirektno,povezivanjem
vrijednostikojasenalaziizvanpetljesaprikljukomNiliimplicitnoprekoautoindeksiranja.Prikljuak
iteracijesadrirednibrojiteracijei(iterationterminal),takoda0oznaavaprvuiteraciju,1drugu
iteracijuitddoN1tooznaavaNtuiteraciju.
INiipredstavljajulongintegersarangomod0do2321.MoemospojitifloatingpointbrojnaN,ali
onebitizaokruennacijelibroj,tj.akospojimofloatingpointilidoublesaNoneseautomatski
konvertovatiulonginteger.
Ako na prikljuak N spojimo 0 petlja se nee izvriti. Veliina petlje i mjesto se moe mijenjati
koritenjemToolspalete,atakoeripozicijai.ForpetljupronalazimoupaletiFunctions.

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.175

VujoDrndarevi,Personalniraunariusistemimamjerenjaiupravljanja,Akademskamisao,Beograd,2003;
str.373

18

Diplomskirad
______________________________________________________________________________________________________________

Slika3.1.Forpetlja(ForLoop)

3.2.Whilepetlja(WhileLoop)
WhilepetljasekaoiForpetljakoristizaupravljanjeoperacijamakojeseponavljaju.Razlikaizmeu
njihjeutometoseForpetljaizvritanoodreenbrojputa,dokseWhilepetljaizvravasvedokje
postavljeni uslov zadovoljen. While petlja je analogna sa Do petljom ili RepeatUntil petljom u
tradicionalnim,tj.tekstualnimprogramskimjezicima.Ovapetljasadridvaprikljukatj.prikljuakza
uslov (conditional terminal) i kao For petlja prikljuak broja iteracije i (iteration terminal).
Upravljanje petljom vri se povezivanjem binarnog broja sa prikljukom za uslov. Na kraju svake
iteracijeprovjeravasevrijednostbrojakojijepovezansaprikljukomzauslov,tonamgovoridase
While petlja mora izvriti najmanje jedan puta. Prikljuak za uslov je boolean varijabla (TRUE ili
FALSE).MoemobiratidalielimodasepetljaobavljadokjeuslovTRUEiliFALSE.Prikljuakrednog
brojaiimaistuulogukaoiuForpetlji.
KaoForpetljaiWhilepetljamoemijenjatisvojedimenzijeipozicijuuzpomoToolspalete.Prikljuci
naravnomogumijenjatipoziciju.
Ako bi postavili Boolean kontrolu izvan petlje i spojili je sa prikljukom za uslov dobili bi ili
beskonanu petlju li petlju koja se izvri samo jednom u zavisnosti od boolean kontrole (TRUE
beskonana petlja, FALSE petlja koja se izvri samo jednom). While petlju pronalazimo u paleti
Functions.

Slika3.2.Whilepetlja(WhileLoop)

19

Diplomskirad
______________________________________________________________________________________________________________

3.3.Pristuppodacimaizprethodneitracije
Kod programiranja sa petljama veoma esto trebamo pristup podacima iz prethodnih iteracija.
Postojedvanainazapristuptimpodacima,atosushiftregistri(shiftregisters)ifeedbackvorovi
(feedbacknode).7

3.3.1.Shiftregistri
ShiftregistriprenosevrijednostiizprethodneiteracijeForiliWhilepetljeusljedeuiteraciju.Sastoje
se od dva terminala koji se nalaze na obrubu petlje. Dodaju se na petlju desnim klikom na obrub
zatimAddshiftregisterushortcutmeniju.Moguzadravatibilokojitippodatkaukljuujuibrojani,
boolean,stringsiarrays,alipodatkovnavezaterminalasvakogregistramorabitiistogtipa.
Moemo konfigurisati shift registar da uva podatke vie prethodnih iteracija. Opcija Add Element
takoerushortcutmenijunampruatumogunost.
Shiftregistarseinicijalizirasakonstantomilikontrolomnalijevomterminaluizvanpetlje.Usluaju
da ne izvrimo inicijalizaciju shift registar e automatski imati poetnu vrijednost koja je ustvari
konanavrijednostodprethodnogizvrenjatepetlje.

Slika3.3.Forpetlja:shiftregistarzapamenjejedneprethodnevrijednosti,shiftregistarzapamenjetri
prethodnevrijednosti;Whilepetlja:shiftregistarzapamenjejedneprethodnevrijednosti,shiftregistarza
pamenjetriprethodnevrijednosti

Jednostavanprimjerpetljesaibezshiftregistranajboljeilustrujeznaajshiftregistra:

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.188

20

Diplomskirad
______________________________________________________________________________________________________________

Slika3.4.Primjersabiranjaupotrebomforpetljesaibezshiftregistra

3.3.2.Feedbackvorovi
Kao i shift registar, feedback vor sprema podatke kada petlja zavri iteraciju, te alje vrijednost
sljedeoj. im postavimo feedback vor u petlju automatski se pojavljuje terminal za inicijalizaciju
kojemtrebamododijelitivrijednost(naslici3.5.oznaenosainicijalizacija).
U sluaju da ne izvrimo inicijalizaciju, svaki put kada pokrenemo VI inicijalna vrijednost feedback
vorajeposljednjavrijednostodprethodnogizvrenjapetljeilizadanavijednostdatogtipapodatka
akosepetljanijeizvravalaprije.
Feedbackvormoemopostavitiposlijegranetunela(kaonaslici3.5.),prijegranetunela,amoemo
gaizamjenitishiftregistrom.

Slika3.5.Feedbackvor

3.4.CaseStrukture(Casestructure)
Case struktura sadri dva ili vie poddijagrama (subdijagrama) ili cases od kojih je samo jedan
dijagramaktivan,tj.samosejedanizvravakadaseizvravastruktura.8

VujoDrndarevi,Personalniraunariusistemimamjerenjaiupravljanja,Akademskamisao,Beograd,2003;
str.373

21

Diplomskirad
______________________________________________________________________________________________________________

Poddijagrami lie na pil karti, od kojih je samo jedna aktivna. Izbor poddijagrama vri se preko
prikljuka koji se zove selektor prikljuak (selector terminal). Selektor labela (Selector label) se
nalazinavrhuobrubadijagrama.SelektorprikljuaksemoepozicioniratibilogdjenaobrubuCase
strukture. Selektor labela automatski se mijenja u zavisnosti koji je tip podatka spojen na selektor.
OnasetakoermoemijenjatidirektnokoritenjemToolspalete.

Slika3.6.Casestruktura

Dijagramidentifikatormoebitirazliitogtipa:boolean,string,numericisl.Usluajudajesaselektor
prikljukom povezan binarni broj, struktura e da sadri dva poddijagrama koji odgovaraju TRUE ili
FALSEstanjima.Akosaselektorprikljukompoveemocijelibrojutomsluajumoese vriti izbor
poddijagramaurasponuod0do2151.

Slika3.7.Casestruktura:naselektorpovezanbinarnibroj;naselektorpovezancijelibroj

Selektor vrijednost se specificira kao samostalna vrijednost, kao lista ili kao rang vrijednosti. Lista
vrijednostiseodvajazarezima,kaonpr:10,0,8,12,6.tosetieranga,onsespecificiranasljedee
naine: npr. 20..40, to indicira sve brojeve od 20 do 40; ..10, to indicira sve brojeve manje ili
jednake0;10..,toindicirasvebrojeveveeilijednake10.
Floatingpointbrojevenemoemokoristitiuselektorlabeli.Usluajudapoveemofloatingpointtip
naselektorprikljuak,tipebitizaokruennanajbliiinteger.

22

Diplomskirad
______________________________________________________________________________________________________________

Subdijagrame moemo dodavati i brisati sa Add Case i Delete This Case. Moemo i duplicirati
subdijagramesaDuplicateCase.Ponekadimamopotrebupreureditiredoslijedsubdijagrama,toje
svakakomogueuzpomoRearrangeCasesizshortcutmenija.
Case struktura je analogna sa If...then...else... izjavama u tekstualnim programskim jezicima. Case
strukturaudrugimprogramskimjezicimaneizvravanijedanpoddijagramakojepoddijagramizvan
zadatogranga,aliuLabVIEWusemoraukljuitidefaultpoddijagramkojiobraujevrijednostiizvan
rangailieksplicitnonavestilistasvihmoguihvrijednosti.
Podacinasvimulazima(tuneliiselektorprikljuak)sudostupniusvimpoddijagramima.Subdijagrami
nemorajukoristitiulaznepodatkeilidavatiizlaznepodatke,aliakojebaremjedanpoddijagramdao
izlaznipodatak,ondasvipoddijagramimorajudavatiizlaznipodatak.
Bijeliprikljuakoslikavapogrenooienje.

3.5.Sekvencijalnestrukture(Sequencestructure)
Sekvencijalne strukture kao i Case strukture sadre dva ili vie poddijagrama. Kod sekvencijalnih
struktura poddijagrami se izvraju sekvencijalno, po emu su i dobile naziv. Poddijagrami izgledaju
kaokomadiifilmsketrake.
Sekvencijalna struktura se koristi za upravljanje redoslijedom izvravanja vorova kada je on
znaajan,aneuslovaljavagatokpodataka.
Imajudvijeklasesekvencijalnihstruktura:flatsekvence(flatsequence)istackedsekvence(Stacked
sequence).
Iako su sekvencijalne strukture ponekad jako korisne ne treba ih upotrebljavati esto, jer sakrivaju
dijeloveprogramaimoguloeuticatinaperformanseI/Oureaja,tj.spreavatiihdaobavljajuvie
operacijaistovremeno.

3.5.1.Flatsekvence(Flatsequence)
Flat strukture imaju specifian tok podataka. Okviri se izvravaju redom. Kao i kod case struktura
mogueje dodavanje, dupliciranje i brisanje sasa Add Frame,DuplicateFrame, Delete This Frame.
Podaci prolaze izmeu okvira uz pomo ve spominjanih tunela. Naputaju trenutni okvir tek po
njegovomzavretkuiprelazeusljedei.
Flatsekvencekoristimozbogboljedokumentacijeblokdijagrama.

23

Diplomskirad
______________________________________________________________________________________________________________

Slika3.8.Flatsekvence

Naslici3.9.imamojednostavanprimjerFlatsekvencesadvaokvira.Numericbrojeviseuprvom
okvirusabirajuiraunasenjihvzbir(Numeric4),dokseudrugomokviruporede(dalijeNumeric2
veiilijednakNumeric3)iakojerezultatporeenjaTRUEpaliseLED(Boolean).Flatsekvencanam
diktiradaseizvriprvoprviokvir,tj.saberubrojevi.Teknakonizvrenjaprvogokvirakreeizvrenje
drugogokvira,tj.poreenjebrojevaipaljenjeodnosnogaenjeLEDindikatora.

Slika3.9.JednostavanprimjerFlatsekvencesadvaokvira

3.5.2.Stackedsekvence(Stackedsequence)
Kod Stacked sekvencijalnih struktura programski kod koji elimo da se izvri prvi stavljamo unutar
okvira (frame) 0 (0..x), drugi unutar okvira 1 (0..x), itd. Interval (0..x) je rang okvira u stacked
sekvenci.Tekkadasezadnjiokvirizvripodacinaputajustrukturu.
Kao i kod Case strukture samo je jedan okvir vidljiv u datom trenutku. Okvire moemo kreirati,
dupliciratiibrisatijednakokaokodcasestrukturesaAddFrame,DuplicateFrame,DeleteThisFrame
respektivno.
UodnosunaCasestrukturekodkojihimamojedanizlazzasvakipoddijagram,kodStackedsekvence
izlaznitunelimasamojedanizvorpodataka.Izlazmoemonapravitinabilokojemokviru,aliizlazni
podataknaputaStackedsekvencutekkadaseizvresviokviri.
PodacinaulazutunelasudostupnisvimokvirimakaoikodCasestuktura.

24

Diplomskirad
______________________________________________________________________________________________________________

Dabipodaciprelaziliizjednogokviraudrugiokvirmoramokreiratitzv.lokale(Sequencelocals)na
granicamaokvira.Podacikojisuspojeninalokaleodreenogokviradostupnisuusljedeimokvirima.
KreirajuseuzpomoAddSequenceLocal,auklanjajusaRemoveizshortcutmenijaimogumijenjati
svoju poziciju. Na poetku su predstavljeni malim utim kvadratiem. Povezivanjem podataka sa
njima u kvadratiu se pojavljuje strelica. Njen smjer odreuje nam dostupnost, tj. ako je strelica
usmjerena prema vani to je izlazni podatak i ne moe se upotrebljavati u tom okviru, a ako je
strelicausmjerenaunutratojeulaznipodatakimoeseupotrebljavatiutomokviru,toznaida
podacinisudostupniuokviruukojemjelokalkreiran.
Stackedsekvencenajviekoristimozauvanjemjestanablokdijagramu.

Slika3.10.Stackedsekvence

Na primjeru sa slike 3.11. imamo stacked sekvencu sa dva okvira. U prvom se generiu random
brojevi,dokseudrugomtajrandombrojsabirasavrijednostiPiidobijamorezultat.
Naistojslicijenaznaenlokalipostepenikoraciprirjeavanjuovogzadatka.

25

Diplomskirad
______________________________________________________________________________________________________________

Slika3.11.Jednostavanprimjerstackedsekvencesadvaokvira

3.6.Eventstrukture(Eventstructure)
Kod event struktura korisnik direktno u interakciji sa objektima na prednjem panelu odreuje
izvrenjeprograma.Ovojekorisnojerdoputaodreenimaplikacijamadaspavajudoksenetone
dogodinakorisnikominterfejsu.
Dogaajseizazivaakcijomkorisnika,tj.programekadasedesiodreendogaajnataodgovara
odreenom akcijom, zatim eka sljedei dogaaj. Kako e program odgovoriti zavisi od koda
napisanogzatajdogaaj.EventstrukturumoemopronaiupaletiFunctions.
Ova struktura se sastoji od tri glavna dijela, a to su: event selektor (event selector), terminal
(Timeoutterminal)ieventvorpodataka(Eventdatanode).9
Terminalsekoistidaspecificirabrojmilisekundikadaeventstrukturaekadogaaj.Vrijednost1
pridruenaterminaluindiciradasetajmout(timeout)nedesi.Eventvorpodatakanalazisesalijeve
idesnestraneokviraeventstruktureiidentificirapodatkekojeLabVIEWvraakadasenekidogaaj
dogodi. Event selektor je labela na vrhu event strukture koja prikazuje koji sluaj je trenutno
selektiran.
ZadodjeludogaajaodreenojakcijitunamjeEditEventsHandledbyThosCase...ushortcutmeniju
na obrubu strukture, dok je za pravljenje novog dogaaja u pripravnosti opcija Add Event Case
takoeriztogshortcutmenija.

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.552

26

Diplomskirad
______________________________________________________________________________________________________________

Slika3.12.Eventstruktura(Eventstructure)

Na jednostavnom primjeru ispod vidimo funkcionalnost event strukture. Klikom na button OK


izvravasesluaj[0],iizbacujesedijalogEventstruktura(jerjetaakcijadodijeljenatomdogaaju,
to vidimo na slici ispod), dok se klikom na button STOP izvrava sluaj [1] gdje se zavrava petlja,
samimtimiprogram(takoerdodijeljendogaaj).

Slika3.13.Jednostavanprimjerkoritenjaeventstrukture

27

Diplomskirad
______________________________________________________________________________________________________________

3.7.Vremenskefunkcije
Pomou vremenskih funkcija moemo dobiti podatak o tekuem vremenu, proteklom vremenu ili
onemoguiti operacija na odreeno vrijeme. Kod veine vremenskih funkcija osnovna jedinica je
milisekunda(ms).
U vremenske funkcije u LabVIEW ubrajaju se: Tick Count, Wait, Wait Until Next ms Multiple, Get
Data/timeStringitd.

Slika3.14.VremenskefunkcijeuLabVIEW

Tick Count funkcija daje podatak o vremenu, izraen u milisekundama, koje je prolo od momenta
ukljuenja.Maksimalnaduinavremenskogintervalaiznosi2321.
Funkcija Waitzadravaizvravanje funkcijeza specifiranibrojms.Funkcija dajepodatakosadraju
milisekundnogtajmerapoistekuzadatogintervalaekanja.
FunkcijaWaitUntilNextmsMultiplemoeupravljatibrzinomizvravanjaprogramskihstrukturaFor
Loop i While Loop. Period izvravanja programske petlje definie numerika konstanta koja se
povezujesaikonomWaitUntilNextmsMultiple.Onjebrojnojednakvrijednostikonstanteizraene
umilisekundama.
Funkcija Get Data/Time String daje u obliku odgovarajuih nizova podatke o datumu i tekuem
vremenuspecificiranomprekobrojasekundiproteklihod12:00GMT1.januara1904.godine.10

10

VujoDrndarevi,Personalniraunariusistemimamjerenjaiupravljanja,Akademskamisao,Beograd,2003;
str.374

28

Diplomskirad
______________________________________________________________________________________________________________

3.8.Matematikeformule
U LabVIEWu moemo koristiti i matematike formule za koje imamo poseban blok nazvan vor
formule (formula node). Komplikovane blok dijagrame uz pomo vora formule moemo znatno
pojednostavitiuemuseogledanjihovznaaj.
Formulasepieunutaruokvirenogpravougaonika,tj.unutarvoraformule.Moramokreiratiulazei
izlaze na okviru vora formule sa Add Input i Add Output iz shortcut menija. Nikako ne smijemo
zaboravitiunijetinazivvarijableutemalepravouganikekojipredstavljajuulazeiizlaze,toznaida
sevarijablemorajudeklarisati.
vor formule koristi istu sintaksu kao i tekstualni programski jezici.11 U sluaju da elimo napisati
komentar unutar koda koristimo /*komentar*/. Posebna panja mora se obratiti na velika i mala
slova,jersuimenavarijablicasesensitive.Svakiredkodazavravasa;.

Slika3.15.vorformule

Nadonjojslicipokazanjeprimjerraunanjax=sin(y)+5*(q+12):

11

BNEnotacija(BackusNaurForm)

29

Diplomskirad
______________________________________________________________________________________________________________

Slika3.16.Primjerraunanjaizrazax=sin(y)+5*(q+12)

3.9.vorovisvojstva(Propertynodes)
Ponekadsunampotrebnenekepromjenenaprednjempanelukaoodgovornaodreeneulaze.
Kao primjer moemo uzeti da kada korisnik upie pogrean password zasvijetli dioda i sl. Ovu
funkcionalnost aktiviramo u LabVIEWu koristei vorove svojstva (property nodes). vor sa
svojstvom kreiramo desnim klikom mia na objekat kojem elimo da dodijelimo svojstvo zatim na
Create >> Property Node. Vidimo da imamo mnogo opcija kao to je Blinking, Value, Visible...
Moemokreirativiesvojstava,tj.vorovasvojstvanajednomobjektupomouAddElement.
Svakivorimajedanterminal(Read/Write).
Na jednostavnom primjeru ispod vidimo kako je vor svojstva (Visible) dodijeljen Numeric kontroli.
vor ima write terminal sa kojim je povezana boolean kontrola. Kada je boolean kontrola FALSE
Numerickontrolanijevidljiva,akadajebooleankontrolaTRUENumerickontrolajeponovovidljiva.

Slika3.17.Jednostavanprimjervorasvojstva(Propertynode)

30

Diplomskirad
______________________________________________________________________________________________________________

3.10.Matlabskripte(Matlabscriptnodes)
U LabVIEWu osim vor formula imamo i vor skripte (script node) koje nam omoguavaju
izvravanjeMATLAB12koda.MATLABvorskriptenalazimouFunctionspaleti.Slinokaostrukturei
onmoeimatirazliitedimenzijeipoziciju.Nanjegovomvrhunalazisetekstkojinaspodsjeadase
radioMATLABskripti.DabikoristiliMATLABskriptemoramoimatiMATLABinstalirannaraunaru
jer vor skripte poziva MATLAB skript server za izvrenje MATLAB skripte. Savjetuje se da se
programski kod pokrene u MATLABu prije nego se importuje u vor skripte. Import se obavlja
pomouImport...izshortcutmenija.
Kao i kod vora formule i ovdje moramo dodati ulaze i izlaze i deklarisati ih na isti nain. MATLAB
skriptumoemospremitikaotekstualnifajl,tj.eksportovatijesaExport...izshortcutmenija.MATLAB
fajlovipokonvencijiimenovanjaimaju.mekstenziju.
LabVIEWkoristiActiveXtehnologiju13zaiplemenacijuMATLABskripti,stogasuonedostupnesamo
naWindowsplatformi.14
LabVIEW moe da prepozna MATLAB tipove podataka. U tabeli ispod su dati LabVIEW tipovi
podatakainjihovikorespodentniMATLABtipovipodataka:

12

Popularaninteraktivanprogramznaajanzanaukuiniinjerstvo.Sluizarjeavanjematematikihproblema,
teizraunavanjeisimulacijutojevezanozaobradusignala,upravljanje,regulacijuiidentifikacijusistema.Prva
verzijapojavilasekrajem1970.godine.Od1984.godine.MATLABpostajedostupankaokomercijalniproizvod
tvrtkeMathWorks.
13

ActiveXtehnologijakojujeizumioMicrosoft1996.godine.Dajefunkcionalnostbrojnimsoftverskim
aplikacijama.

14

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.215

31

Diplomskirad
______________________________________________________________________________________________________________

Tabela3.1.Tipovipodataka:LabVIEWMATLAB

Na primjeru sa slike 3.18. vidimo MATLAB skriptu koja izvrava kratki MATLAB kod za x=10 to
predstavljabrojelemenatakojiseiscrtaju,tj.X.Funkcijarandbirarandomtj.nasuminebrojeve,
dokihfunkcijaplotiscrtaje.VidimodaplotkoristiMATLABgrafiku.
Erroroutispisujegrekunafrontpaneluakojeima.

Slika3.18.PrimjerMATLABskripte

32

Diplomskirad
______________________________________________________________________________________________________________

3.11.Primjer
Slijedi primjer upotrebe razliitih tipova podataka, for i while petlje, case strukture, aritmetikih i
vremenskihfunkcija.
Naprednjempaneluvidimorazliiteobjekte.UpoljeUnosbrojaunosimojedanbrojod1do10.U
zavisnostikojicasepoddijagramelimodaseobavipalimo/gasimoPrekida.
Ako je prekida upaljen obavlja se True poddijagram, a na prednjem panelu to je lijevi dio. Ulazna
vrijednostulaziuwhilepetljukojaseobavljasvedoknekliknemoSTOPnaprednjempanelu.Onase
mnoisarandombrojemisvakesekunde(tojeregulisanosavremenskomfunkcijomTimeDelay)taj
proizvodseprikazujenaTanku(spremniku)prednjegpanelainumerikomindikatoruispod.
Usuprotnom,tj.akojeprekidaiskljuenobavljaseFalsepoddijagramcase strukture,tojedesni
dionaprednjempanelu.UlaznavrijednostsedijelisaPi,zatimtavrijednostulaziuforpetljukojase
obavi 10 puta, a pritom se svake sekunde sabrana sa random brojem prikae na Gauge (mjerilu)
prednjegpanelainumerikomindikatoruispod.

33

Diplomskirad
______________________________________________________________________________________________________________

Slika3.19.Primjerupotrebepetlji,struktura,aritmetikihivremenskihfunkcija,terazliitihtipovapodataka

34

Diplomskirad
______________________________________________________________________________________________________________

4. NIZOVI (ARRAYS) I KLASTERI (CLUSTERS)


4.1.Nizovi(Arrays)
ULabVIEWunizoviigrajuznaajnuulogu.Predstavljajugrupupodatakaistogtipa.Veliinanizamoe
biti promjenljiva. Nizovi su korisni za organizaciju podataka. Takoer, uz njihovu pomo moemo
predstavljatimatrice,tonamjeunekimproblemimaizuzetnovano.Izprethodnonavedenogslijedi
zakljuakdanizovimoguimatijednu,dvijeiliviedimenzija.
Maksimalan broj elemenata po dimenziji je 231. Maksimalan broj elemenata zavisi od dostupne
memorije15.Elementimanizapristupamoprekoindeksakojisenalazeuranguod0don1,gdjejen
brojelemenataunizu. Nizmoemoprikazivati igrafiki.PronalazimoihuControlspaleti.Kadaniz
postavimo na prednji panel on je jednodimenzionalni niz. U njega moramo postaviti eljenu
(Numeric,Stringislino)kontolu/indikatordabidobiliniztogtipa.Npr.akounizpostavimoNumeric
ControltajnizpostajekontrolaNumerictipa.

4.1.1.Vrstenizova
4.1.1.1.Jednodimenzionalninizovi
Kodjednodimenzionalnihnizovaprvielementimaindeks0,drugielementimaindeks1,itd.Petlje
ForiWhilemogusamedakreirajuniz.Svakomnarednomiteraciomdodajesenovielementnizu,to
namgovoridakolikoimaiteracijapetljetolikoimaielemenataniza.

Slika4.1.JednodimenzionalninizoviStringiNumerictipa

15

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.238

35

Diplomskirad
______________________________________________________________________________________________________________

4.1.1.2.Viedimenzionalninizovi
Viedimenzionalni nizovi moraju imati vie od jednog indeksa da bi se njihovim elementima moglo
pristupiti.Dvodimenzionalninizoviimajudvaindeksaito:prvikojioznaavaredidrugikojioznaava
kolonu.Trodimenzionalniimajutriindeksa,etverodimenzionalninizovietiriindeksaitd.Dimenzije
dodajemo sa Add Dimension iz shortcut menija. I viedimenzionalni nizovi mogu se kreirati
automatskipomoupetlji.

Slika4.2.2Dniznaprednjempaneluiblokdijagramu

2Dnizkreiraseautomatskipomouugnjedenepetlje:

Slika4.3.Primjerautomatskogkreiranjanumerikognizasaforugnjedenompetljom,
12elemenata,4x3,randombrojevi

36

Diplomskirad
______________________________________________________________________________________________________________

Akojetunelpetljeobojen(bojomtipapodatkakojiprolazikroznjega)toznaidajeonemogueno
indeksiranje (DisableIndexing). Utom sluaju na izlazuiztunelaimamosamo jednuvrijednost, tj.
vrijednostizposljednjeiteracije.
Akojetunelpetljeoznaenkaomalikvadratisasimbolomniza[]kojijeobojenuskladusatipom
podatkakojiprolazikroznjega(Npr.Double)indeksiranjejeomogueno(EnableIndexing).Utom
sluajuizlazjenekinizvrijednosti,tj.vrijednostiizsvakeiteracije.
Omoguavanje i onemoguavanje indeksiranja vri se desnim klikom mia na kanal, te biranjem
DisableIndexing/EnableIndexingizshortcutmenija.
Naslici4.4.jejednostavanprimjerkojiilustrujeprethodnoreeno.

Slika4.4.Omoguavanjeionemoguavanjeindeksiranjatunelapetlje

4.1.2.Funkcijesanizovima
Paleta Functions sadri mnotvo funkcija za rad sa nizovima neke od njih su: Initialize Array, Array
Size,ArraySubset,BuildArray,IndexArray,...

Slika4.5.FunkcijesanizovimauLabVIEW

Funkcija Initialize Array sam joj naziv kae inicijalizira niz. Ona kreira ndimenzionalni niz i puni ga
vrijednostima koje su specificirane. Funkcija Initialize Array koju direktno (sa drag and drop)
postavimo na blok dijagram ima samo jednu dimenziju, tj. stvara 1D niz. Naravno, te dimenzije se
mogumijenjati,tj.dodavatiioduzimatisaAddDimensioniRemoveDimension.

37

Diplomskirad
______________________________________________________________________________________________________________

ArraySizefunkcijavraabrojelemenataunijetihuniz.Akojenizviedimenzionalni,npr.2Dniz,onda
vraabrojredovaibrojkolona.
ArraySubsetvraapodskupnizaelemenatapoeviodnaznaenogindeksaiuzimajuiodreenbroj
elemenata.
BuildArrayfunkcija,samjojnazivkae,formiranizodviedrugihnizovailiskalara.
IndexArrayfunkcijavripristupodreenom(eljenom)elementuniza.

4.1.3.Polimorfizam
Polimorfizam(Polymorphism)jesposobnostpojedinihLabVIEWfunkcija(kaotosuAdd,Multiplyi
Divide)daprihvatajuulazerazliitihdimenzijaiprikaza.16
Naprimjer,zbirskalarauLabVIEWdajenamtakoerskalar;zbirskalarainizadajenamnizkojiima
broj elemenata kao i niz koji sabiramo, s' tim da je vrijednost elemenata poveana za vrijednost
skalara;akosaberemodvanizasvakakodanamjerezultatnizitosabrojemelemenatamanjegniza.

4.2.Klasteri(Clusters)
Klasteri grupiu podatke kao i nizovi, ali imaju dvije znaajne razlike. Jedna razlika je u tome to
klasteri mogu grupisati podatke razliitog tipa, recimo klaster moe sadravati razliite kontrole
(numeric, string i sl.) i knob. Druga razlika je to klasteri imaju fiksnu veliinu. Ogranienje kod
klasterajedasviobjektimorajubitiilikontroleiliindikatori.Akouklasterubacimoprviobjekatkojije
kontrola,automatskisusviostaliobjektikontrole.
Klaster je u blok dijagramu prikazan sa samo jednim objektom koji ima jedan terminal (cluster
terminal),tonamodgovarazboglakegipreglednijeguvezivanjaelemenatanablokdijagramu.
Vidimo da klasteri ustvari sami za sebe predstavljaju poseban tip podatka. Terminale klastera
moemo povezati, ali samo ako imaju isti tip, isti red elemenata i isti broj elemenata. Klasteri su
analognistrukturama(struct)utekstualnimprogramskimjezicima.
Ikodklasterakaokodnizovamogujepolimorfizam,alisvedokklasteriimajuistibrojelemenataito
poredanihistimredoslijedom.

16

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.257

38

Diplomskirad
______________________________________________________________________________________________________________

Elementiklasteraseredajuuzavisnostikadasudodatiuklaster.Prviobjekatpostavljenuklasterje
element0itakomujeoznaenalabela,drugiobjekatjeelement1,itd.Redobjekatauklasteruje
bitan zbog funkcija koje se nad njima upotrebljavaju. Naravno, redoslijed elemenata je mogue
promijenitiuzpomoReorderControlsinClusterizshortcutmenija.

KlasteremoemonauupaletiControls.

Slika4.6.Klaster:naprednjempaneluiblokdijagramu

4.2.1.Funkcijesaklasterima
KaokodnizovaiklasteriimajumnogofunkcijakojemoemonauupaletiFunctions.Nekeodnjihsu
BundlefunkcijainjojsuprotnaUnbundlefunkcija.
Takoer,moemoupotrebljavatiaritmetikefunkcijesaklasterima.

Slika4.7.FunkcijesaklasterimauLabVIEW

Bundle funkcija to u prevodu sa engleskog jezika znai snop sastavlja pojedinane elemente u
jedan novi klaster. Kada Bundle funkciju postavimo na blok dijagram ona ima dva ulaza na lijevoj

39

Diplomskirad
______________________________________________________________________________________________________________

strani.Naravno,brojulazamoemopoveavati/smanjivatipopotrebi,alizatosvakiodulazamorabiti
iskoriten,tj.povezan.
PotrebnojeobratitipanjudajeredelemenatauklasteruistikaoredulazauBundlefunkciji(odozgo
kadole).
Unbundle funkcija je suprotna Bundle funkciji, to znai da ona ekstrahuje pojedinane
komponenteklastera.SlinoBundlefunkcijiUnbundlefunkcijakadasepostavinablokdijagramima
dvaizlazanadesnojstrani,s'timdasetajbrojmoepoveavati/smanjivati.
RedizlazauUnbundlefunkciji(odozgokadole)jeistikaoredelemenatauklasteru.

4.3.Primjer
Sljedeiprimjerprikazujeulogunizova,klasteratefunkcijasanizovimaiklasterima.
Forpetljapravinizsluajnih(random)brojevakojisenaprednjempaneluprikazujukaoNizsluajnih
brojeva. Unoenjem eljenog indeksa elementa (index eljenog elementa) iz niza se izdvaja taj
elementuzpomo IndexArrayfunkcije.FunkcijaArraySizedajenambrojelemenata unizutona
prednjem panelu prikazujemo preko knoba, dok funkcija Array Subset izdvaja odreen broj
elemenataniza(duina)odnekogindeksa(odindexa)iprikazujeihunizuIzdvojenielementi.
Vidimo da imamo dva klastera Ulaz i Izlaz koji objedinjuju kontrole i indikatore respektivno.
NeophodnojekoristitiBundleiUnbundlefunkcijedabipraviliiliparcijalisaliklastere.

40

Diplomskirad
______________________________________________________________________________________________________________

Slika4.8.Primjerupotrebenizova,klastera,tefunkcijasanizovimaiklasterima

41

Diplomskirad
______________________________________________________________________________________________________________

5. GRAFIKONI: GRAPHS I CHARTS


IakosuiGraphsiChartsgrafikoni,oniserazlikuju.Graphssekoristizaprikazunaprijedgenerisanog
nizapodataka,doksechartskoristizaprikazpodatakadodavanjemnovihpodatakanavepostojei
plot. Znai, kljuna razlika izmeu Graphs i Charts je to prvi prikazuju postojei niz podataka
odjednom,dokdrugiupisujunovipodatakimonpostanedostupan.
Graphs i charts imaju svojstvo editovanja i prilagoavanja plotova, to moemo nau u shortcut
menijudijagrama(skaliranjeosa,ubacivanjelegende,promjenebojaplotova,...).

5.1.Graphs
Graphsprikazujuviepodatakaodjednom(npr.array).UpaletiControlsmoemonaiposebnuvrstu
indikatoragraph.Onprikazujejedaniliviepodatakaniza.Chartgraficiimajumemoriju,tj.pamte
zadatukoliinutaakabezobziradalijeprikazujuutomtrenutku.
Imamorazliitetipovegraphova:waveformgraph,XYgraph,...WaveformgraphiXYgraph
izgledajuisto,aliimajunekefunkcionalnerazlikeiprimajurazliitetipoveulaznihpodataka.
Waveformgraphjeidealanzaispisivanjenizovapodatakasaravnomjernomraspodjelom.
Ako elimo vie od jedne krivulje na istom graphu pridruujemo 2D niz podataka. U sluaju da su
podacizadatiukolonamanikakonesmijemozaboravitidatransponujemotajnizpodatakauzpomo
TransposeArray.

Slika5.1.Primjerispisadesetrandombrojevanawaveformgraph

42

Diplomskirad
______________________________________________________________________________________________________________

XYgraphjeopenamjene.Prikladanjezaispisivanjepodatakanepravilneraspodjeleilizaispisdvije
ovisnevarijable(ovisnejednaodrugoj).Jojednaodprednostimujetojeprilagodljivuispisivanju
kadasuzadatetakeuzpomokoordinata(x,y).Unjemumoemoiscrtavatielipse,kruniceislino.

Slika5.2.XYgraph

5.2.Charts
Kaotojereenochartsgrafikonisekoristezaprikazpodatakadodavanjemnovihpodatakanave
postojei plot. Charts dodaju na plot taku po taku. U paleti Controls moemo nai jo jednu
posebnu vrstu indikatora waveform chart. Kod ovog indikatora imamo tri razliita moda za
interaktivnoprikazivanjepodatakaito:stripchart,scopechartisweepchart.Modmoemoizabrati
izshortcutmenijadatogdijagrama.Malesurazlikeizmeumodova.Waveformchartmoeprikazatii
vie od jednog podatka odnosno plota (Npr. Moe prikazati podatke temperature i neki niz cijelih
brojeva).
Zaprikazjednogplotaspojimoskalardirektnonawaveformchart,azaprikazvieplotovakoristimo
Bundle funkciju kojom objedinimo podatke koje elimo prikazati. Ako elimo sakupljati i prikazivati
podatke u odreenim trenucima uiniti emo to uz pomo vremenske funkcije Wait Until Next ms
Multiple.
Strip chart svakim dolaskom novog podatka pomjera itav plot u lijevo, to znai da stari podaci
odlazesaplota,azadnjipodatakseupisujenakrajplota(tj.desnasrana).
U odnosuna strip chartostaladva moda (scopechartisweep chart)lie na osciloskop i znatno su
bri.Kadaseiscrtacijelidisplej,tajplotsebrie,anovevrijednostipodatakaseunosenasamom
poetkudispleja,tj.poinjeodlijevestrane.

43

Diplomskirad
______________________________________________________________________________________________________________

Sweepchartserazlikujeodscopechartautometoprijebrisanjaplota,anakoniscrtavanjacijelog
displejapokretnacrvenavertikalnalinijaoznaavapoetaknovogpodatkaipomjerasepodispleju(s'
lijevanadesno)dodavanjemnovihpodataka.

Slika5.3.PrimjerprikazarandombrojevauzWaveformChart:
stripchart,scopechart,sweepchart;prikazivanjepodatkasvakesekunde

44

Diplomskirad
______________________________________________________________________________________________________________

6. AKVIZICIJA PODATAKA
JednaodnajvrijednijihfunkcijaprogramskogpaketaLabVIEWjeupravljanjeakvizicionimkarticama
zadirektnopovezivanjenaISA iliPCI zajedniku magistraluPCa.17Nakarticizaakvizicijupodataka
nalaze se razne funkcije koje omoguavaju akviziciju i generisanje signala. Koju emo akvizicijsku
karticuupotrijebitizavisiodproblemakojegrjeavamo.NaraspolaganjusunamkakokarticeNItakoi
ostalihproizvoaa,jermnogiuzsvojeproizvodenudeVIilirazvojnialatzaizraduVIevazaLabVIEW.
Zapoetakmoramoizvritikonfigurisanjeakvizicionoupravljakekarticekojukoristimo.
Prije nego to kompjuterski bazirani VI instrument moe mjeriti fiziki signal iz vanjskog okruenja,
senzor ili pretvornik (transducer) mora konvertovati taj signal u elektrini signal bilo naponski ili
strujni.18 Signali su obino nisko naponski i osjetljivi na um, tako da ih moramo pojaati i filtrirati
prijekonverzijeudigitalnisignal.
Ovdje ostajemo fokusirani na DAQ sistem. DAQ sistem ima: senzore i pretvarae, ureaj za
kondicioniranje (signal conditioning) i konverziju signala, komunikacijske interfejse, softver za
prikupljanje podataka, manipulaciju podataka, unos i prikaz podataka kao i upravljanje DAQ
sistemom.PostojedvijeopcijeDAQsistema:19

17

VujoDrndarevi,Personalniraunariusistemimamjerenjaiupravljanja,Akademskamisao,Beograd,2003;
str.377
18

AdnanSalihbegovi,Specialnamjerenja,ElektrotehnikifakultetSarajevo,Septembar2003,str.225

19

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.326

45

Diplomskirad
______________________________________________________________________________________________________________

Slika6.1.TipoviDAQsistema

6.1.Tipovisignala
Pojamsignalasusreemojakoesto.Ulaznisignalikodinputoutputreprezentacijedjelujunasistem
dabiproizveoizlaznesignale.Signaljefizikikvantitetkojijefunkcijanezavisnevarijable(vrijeme)i
sadri informaciju o prirodnoj pojavi.20 Fiziki signal se mora konvertovati u elektrini signal prije
koritenja od strane ureaja za kondicioniranje signala i DAQ hardvera. Iz signala moemo izvui
informaciju,kojasemoepodijelitinapettipova:state,rate,level,shape,frequencycontent.Tipovi
signalasuprikazaninasliciispod:21

Slika6.2.Tipovisignala

Signalemoemopodijelitina:

digitalne(OnOfftojestateiPulseTraintojerate)

20

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.327

21

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.329

46

Diplomskirad
______________________________________________________________________________________________________________

analogne (DC to je level, TimeDomain to je shape, FrequencyDomain to je frequency


content)

Digitalnisignaliimajusamodvijemoguevrijednostiito0ili1.
Analogni DC signali su statiki signali koji prenose informaciju u razini ili amplitudi signala u
odreenom trenutku (temperatura, napon baterije, ...). TimeDomain signali se razlikuju od ostalih
jer prenose informacije u razini signala, gdje se razina mijenja sa vremenom. Oni prenose i
informacije kao to su: vrh magnitude, vrijeme vrhova, nagib, oblik vrhova i sl. FrequencyDomain
signali su slini TimeDomain signalima jer prenose informaciju na nain da signal varira sa
vremenom, ali informacija noena u njima se temelji na frekvencijskom sadraju. DAQ sistem koji
mjeri ova dva posljednja signala ima ADC (Analog to Digital Conversion) komponentu, sat
uzorkovanja(sampleclock)iokidailitriger(trigger).

Signal ponekad moe nositi vie od jednog tipa informacije, tj. ovih pet tipova informacija nisu
meusobnoiskljuive.

6.2.DAQsistem
Konverzija fizikog signala u elektrini vri se preko pretvornika ili transducera. U njih spadaju
termoparovi,termistori,potenciometri,integriranikrunisenzoriitd.
Uureajezakondicioniranjesignala(SignalConditioning)ulaziiizlazielektrinisignal.Oviureaji
mogu biti izvedeni i softverski. LabVIEW osigurava nekoliko VIeva u tu svrhu. Najee vrste
kondicioniranjasignalasu:22

pretvornik uzbude Neki transduceri zahtijevaju vanjski napon/struju za uzbudu njihovih


strujnihkrugova

linearizacijaKodnekihtransducerageneriesenelinearnisignal,kojisemoralinearizovati

izolacija Ponekad signal sadri recimo velike iljke napona, to bi moglo nanijeti tetu
raunaruiliovjekustogasevriizolacija

filtriranje Signal esto u sebi sadri um, pa je potrebno njegovo filtriranje. Neke DAQ
karticeimajuusebiugraenefiltere.

22

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.337

47

Diplomskirad
______________________________________________________________________________________________________________

pojaanjeOvojenaeitipkondicioniranjasignala.SignalsepojaavapomouDAQkartice
ili pomou vanjskog ureaja za kondicioniranje koji se postavi blizu izvora signala (zbog
uma).

Izvorisignalasepojavljujuudvaoblika:

uzemljeni izvori signala imaju napone koji se referenciraju u odnosu na zemlju, ili
uzemljenjeobjekta(Npr.izvorikojiseprikljuujunautinicuuzgradi)

plivajui(floating)izvorisignalasadresignal,kojinijepovezansaapsolutnomreferencom,
kaotojeuzemljenjeilimasa(baterije,termoelementi,transformatori,izolacionapojaalai
instrumentikojiimajuplivajueizlaze)23

Slika6.3.Izvorisignala

NekapitanjakojatrebarijeitiprijeizboraDAQmjernogdijelasistemasu:rezolucijaADkonvertora,
opseg uredjaja i opseg signala. Broj bita koji se koristi da predstavi analogni signal odereuje
rezolucijuADkonvertora.OpsegureajaseodnosinamaksimalniiminimalninivosignalakojiADC
moedigitalizirati.Opsegsignalasumaksimalneiminimalnevrijednostisignalakojegmjerimo.
KodveineDAQureajapostojetrinainakonfigurisanjaureajadakonvertujesignal:

diferencijalni

referenciranijednostruki(ReferencedSingleEndedRSE)

nereferenciranijednostruki(NRSE)

23

AdnanSalihbegovi,Specialnamjerenja,ElektrotehnikifakultetSarajevo,Septembar2003,str.258

48

Diplomskirad
______________________________________________________________________________________________________________

Slika6.4.Mjernisistemi

Koddiferencijalnogmjernogsistema,nemapotrebedasepovezujebilokojiulaznafiksnureferencu
(uzemljenje ili masa signala). Ovaj sistem se preferira poto on potiskuje zajedniki signal i napone
zbograzliitihpotencijalamasaizvorasignalaimjernogsistema.
Referencirani jednostruki mjerni sistem se koristi da mjeri plivajui signal, poto on ne potiskuje
naponezbograzliitihpotencijalamasaizvoraimjernogsistemabuduidamjerisignalsasenzorau
odnosunauzemljenjeDAQureaja.Prednostuodnosunadiferencijalnisistemmujejedinotoima
veibrojkanala.
Ovajsistemmjerenjaseprimjenjujeusljedeimsluajevima:

ulaznisignalisuvisokeamplitude

kratkikablovikojiseprostirukrozokruenjebezuma

svisignalisaulazaimajuzajednikureferencu(AIGNDreferencamjernogureaja)

Kod nereferenciranog jednostrukog mjernog sistema, sva mjerenja se vre u odnosu na zajedniku
referencu,potosusviulaznisignaliveuzemljeni.

6.3.DAQVIorganizacija
NIDAQmx je poboljana varijanta predhodnih NIDAQova, ukljuujui i tradicionalni NIDAQ
(Traditional NIDAQ). Njena prednost ogleda se u koritenju DAQ asistenta (DAQ Assistant) za
konfiguraciju kanala i mjerenih taskova (zadataka). NIDAQmx je specijalni tip VIeva nazvani

49

Diplomskirad
______________________________________________________________________________________________________________

polimorfni VIevi (Polymorphic). Rezultat je skup VIeva koji se mogu adaptirati razliitim DAQ
funkcionalnostima(analogniulaz,analogniizlaz,digitalniulaz,digitalniizlaz).
LabVIEWnampomaedadefiniemokojisignalisukonektovaninakojekanalenaakvizicionojkartici,
te da ih lake poveemo i kombinujemo u taksove iz ega slijedi da je NIDAQmx task kolekcija
jednogiliviekanala(channels),tajmera(timing),trigera(triggers)isl.

Na ulazni prikljuak device povezuje se broj dodjeljen kartici tokom konfiguracije, dok se preko
ulaznog prikljuka channel definie redni broj ulaznog kanala. Umjesto broja kanala moe da se
koristikanalkojijekonfigurisanpomouprogramaDAQChannelWizard,priemujedovoljnonavesti
samonjegovoime.
Za konfiguraciju parametara kartica i kanala u Windows operativnom sistemu koristi se MAX
(Measurement&AutomationExplorer).
AkokonfiguriemoNIDAQmxtaskkoristeiDAQasistenta,tajtaskjelokalaninemoemogakoristiti
u drugim aplikacijama. Da bi to omoguili koristimo DAQ asistenta da generiemo NIDAQmx Task
Namekontrolu.NakontogataskmoebitispremljenuMAXikoritenudrugimaplikacijama.Naslici
ispodvidimoizgledDAQasistentaiDAQmxfunkcija:

Slika6.5.DAQasistentiDAQmxfunkcije

Analogni ulaz se koristi da izvri konverziju analognog signala u digitalni (ADC). U DAQ asistentu
izaberemoeljenianalogniulaz(napon,temperatura,struja,...).
Veoma vaan korak u konfiguraciji DAQmx taska je konfiguracija tajminga (timing) i trigera
(triggering).

tosetajmingatierijejeobrojuuzorakazaprikupljanje.Imamotriopcije:

50

Diplomskirad
______________________________________________________________________________________________________________

jedan uzorak (Acquire 1 Sample) NIDAQmx prikupi jednu vrijednost sa ulaznog kanala i
odmavraaovuvrijednost
N uzoraka (Acquire N Samples) Za prikupljanje vie uzoraka najbolje je koristiti hardver
tajming.Ovajmetodzapoljavabafer(buffer)umemorijiraunarazaprikupljanjepodataka.
Moemosakupljativieuzorakazajedankanaliliviekanala.
kontinualno prikupljanje (Acquire Continuously) Ako elimo gledati, procesirati, upisivati
skupuzorakakojisuprikupljeniondatrebamokontinualnoprikupljanjeuzoraka(kontinualno
uzorkovanje).
Svaka NIDAQmx akcija treba neki pokreta odnosno stimulans. U LabVIEWu to su trigeri. Postoje
start trigeri i referentni trigeri. Prvi pokreu akviziciju podataka i imamo tri tipa: analog edge,
analog window i digital edge, dok drugi uspostavljaju referentnu taku u skupu ulaznih uzoraka,
kojih takoer imamo tri tipa: analog edge, analog window i digital edge. Prikupljeni podaci prije
referentne take zovu se prettrigger data, a poslije referentne take posttrigger data. Sve ovo su
primjeri hardverskih trigera. Ako ne konfiguriemo hardverski triger, DAQ task e poeti nakon
pokretanja(run).Ovosenazivasoftverskitriger.
Analogniizlazisekoristezaizvravanjedigitalnoanalognekonverzije(DAC).Konfiguracijaseizvrava
istokaokodanalognogulaza.Kodtajmingatakoerimamotriopcijeito:
generisanjejednoguzorka(Generate1Sample)akojerazinasignalanajbitnija
generisanjeNuzoraka(GenerateNSamples)akoelimogeneriratikonanovrijemerazliitih
signala,kaotojeACsinewave
kontinualnogeneriranje(GenerateContinuously)akoelimokontinualnigeneriranisignal.
Analogniizlaziimajusamostarttrigereito:analogedge,analogwindowidigitaledge.

DigitalniulaziiizlazinaDAQureajimasastojeseoddijelovakojigeneriuiliprihvatajubinarnisignal.
Digitalnelinijegrupisanesuuportovesapo4ili8linijapoportu.Obinosusve linijeunutaristog
porta ili ulazne ili izlazne linije. Moemo koristiti digitalne linije u DAQ ureajima za prikupljanje
digitalnihvrijednostibaziranihnasoftverskomtajmingu.

51

Diplomskirad
______________________________________________________________________________________________________________

52

Diplomskirad
______________________________________________________________________________________________________________

7. STRINGOVI I UPISIVANJE/ITANJE PODATAKA U/IZ FAJLA


String je ustvari sekvenca karaktera. Stringovi se esto koriste u ASCII tekst porukama, dok se u
LabVIEWkoristeizaspremanjenumerikihpodataka,gdjesubrojeviprijespemanjaufajlnadisku
konvertovani u stringove, te kod formiranja instrumentacionih VIeva da prenesemo numerike
podatkekaonizkarakteraazatimkonvertujemoovenizoveubrojeve.
StringovisemogunaiupaletiControls.Odkontrolatusu:StringCtrl,TextRing,MenuRingiFile
Path Ctrl. A od indikatora: String Indicator, Table i File Path Ind. U stringove spada i Combo Box.
PozicijaiveliinaimsesvakakomoemijenjatiuzpomoToolspalete.Imamomogunostupotrebe
scrollbaradabiminimiziraliveliinustringanaprednjempanelu.Akojeopcijanedostupnamoramo
poveativertikalnudimenzijuprozora.
Moemokonfigurisatistringkontroleiindikatorezarazliitetipoveprikaza,npr.passwords,'\'iHex.
Prikaz passwords ne pie karaktere na displeju ve zvjezdice radi zatite. esto trebamo prikazati i
prihvatiti neprikazive karaktere, tada koristimo '\' prikaz. Za prikaz ASCII koda u heksadecimalnoj
notacijikoristimohex.
NajednostavnomprimjeruispodvidimodaRing(TextiMenu)imabrojanevrijednostiitoonekoje
suimdodijeljenepriunoenjustringova.Ringstringovisedijelenanekolikodijelova,s'timdajesvaki
stringreprezentiranbrojem.Prvije0,drugije1,...
Tablicu podataka (Table) dobijemo konvertovanjem signala (amplituda svakog signala i vrijeme
podatakazasvakutakuusignalu).

53

Diplomskirad
______________________________________________________________________________________________________________

Slika7.1.Razliitevrstestringova

OperacijeFileinputiFileoutput(FileI/O)koristesezapohranuidohvatpodatakasadiska.
Oveoperacijegeneralnoukljuuju3osnovnakoraka:24

Otvaranjepostojeegfajlailikreiranjenovogfajla

Pisanjeuiliitanjeizfajla

Zatvaranjefajla

7.1.Funkcijezaradsastringovima
LabVIEW prua mnotvo funkcija sa stringovima. Funkcije za rad sa stringovima omoguuju
pretraivanje i zamjenu karaktera unutar stringa, spajanje strigova, rotiranje, brisanje, mijenjanje
teksta,...
Neke od njih su: Format Into String, String Length, Scan From String, Match Pattern, Build Text
ExpressVIitd.

24

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.410

54

Diplomskirad
______________________________________________________________________________________________________________

Slika7.2.FunkcijesastringovimauLabVIEW

FormatIntoStringfunkcijakonvertujebrojustring,spajaiformatiralanovestringaistringovedase
formirajedinstvenizlaznistring.
StringLengthsamjojnazivkaejefunkcijakojaodreujeduinustringa.
ScanFromStringfunkcijakojaskenirastringikonvertujenumerikekaraktereubrojeve.
Match Pattern funkcija trai izraz u stringu, poevi od naznaenog ofseta. U sluaju da pronae
odgovarajui izraz dijeli string na tri substringa i to: prvi substring prije odgovarajueg izraza,
substringkojijeustvariodgovarajuiizrazisubstringposlijeodgovarajuegizraza.25
BuildTextExpressVIkonvertujenumerikevrijednostiustringove.AkoulaznijestringovajExpress
VI konvertuje ulaz u string na temelju konfiguracije Express VI koja se pri samom dodavanju ovog
ExpressVIatrai.

7.2.Funkcijezaradsafajlovima
U LabVIEWu postoje razliite funkcije za rad sa fajlovima. Neke od njih slue za pisanje ili itanje
podataka u/iz fajlova, dok druge slue za kreiranje fajlova tipa tabele, memorisanje podataka u
binarnomformatuislino.
Podacikojisememoriumogubitiujednomodsljedeihformata:26

NizbajtaPodaci,ijajeosnovnajedinicabajt,mogubitiistogilirazliitogtipa.Ovajformat
pruamogunostdasepodacikoristeiudrugomsoftverskompaketu,naprimjeruprogramu
zaradsatabelamailiuprogramuzaobraduteksta.

25

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.402

26

VujoDrndarevi,Personalniraunariusistemimamjerenjaiupravljanja,Akademskamisao,Beograd,2003;
str.375

55

Diplomskirad
______________________________________________________________________________________________________________

DatalogfajlPodacisuubinarnomformatuiovakvefajlovemoekoristitisamoLabVIEW

Niz binarnih bajta Odlikuje se velikom kompaktnou i brzinom memorisanja podataka.


Podaci se najprije konvertuju u binarni niz i mora se znati koji tip podataka se memorie
odnosnouva.

SaFileI/Omoramodefinisatiputanjuzafajl.Toinimokreiranjemkontrolefilepath.
Neke od funkcija su: Write to Text File, Read from Text File, Write To Spreadsheet File, Read From
SpreadsheetFile,WritetoBinaryFile,ReadfromBinaryFile,...

Slika7.3.FunkcijezaradsafajlovimauLabVIEW

WritetoTextFilefunkcijakojasluizaupisivanjestringovakarakterailinizovastringovakaolinijau
fajl.
ReadfromTextFileitaspecificiranbrojkarakteraililinijaizodreenogfajla.
WriteToSpreadsheetFilekonvertuje1Dili2Dniz(SGL)brojevautekstualnistringiupisujestringu
novifajlilidodajestringnavepostojeifajl.
Read From Spreadsheet File ita specificiran broj linija ili redova iz numerikog tekstualnog fajla,
poeviodspecificiranogkarakteraofsetaikonvertujepodataku2Dnizbrojeva(SGL).
WritetoBinaryFilefunkcijapiebinarnepodatkeunovifajl,dodajepodatkeuvepostojeifajlili
zamjenjujesadrajefajla.
ReadfromBinaryFileitabinarnepodatkeizfajlaivraaihustring.
WriteTo/ReadFromMeasurementFilesudvaExpressVIakojisekoristezaitanje/pisanje.lvm27
fajlova. To su tab razgranieni tekstualni fajlovi koji mogu biti otvoreni u aplikacijama za rad sa
proraunskimtablicama(kaoMicrosoftExcel)iliuaplikacijamazaradsatekstom(kaotojerecimo

27

.lvmLabVIEWmeasurementdatafiles

56

Diplomskirad
______________________________________________________________________________________________________________

Notepad). .lvm fajlovi ukljuuju informacije o podacima kao to su datum i vrijeme generisanja
podataka.Kadaplaniramodaspremimopodatkeufajl(npr.podatkekojesmodobilimjerenjemuz
pomo DAQkartica) moramo imati uvidukoja aplikacija ekoristitite podatke i spremiti ihu tom
formatu. Pri samom postavljanju Write To/Read From Measurement File trebamo izvriti njegovu
konfiguracijuudialogboxukojiseautomatskipojavi.
Na primjeru ispod vidimo pisanje u fajl test.lvm simuliranog sinusnog signala, te itanje iz njega i
prikaz:

Slika7.4.JednostavanprimjerkoritenjaWriteTo/ReadFromMeasurementFile

Jednavrloestaaplikacijakojasluizapohranjivanjepodatakaufilejedaformatiratekstfiletakoda
ga moemo otvoriti u spreadsheetu (proraunske tablice). U veini spreadsheetova tabovi
razdjeljuju kolone, a EOL (End of line, kraj linije teksta) karakteri razdjeljuju redove, kako je to
pokazanonanarednojslici:28

Slika7.5.Razdjeljivanjekolonairedovakodspreadsheetova

7.3.Primjeri
7.3.1.Primjer1
Uovomprimjerukoritenesutrifunkcijesastringovima.FunkcijaFormatIntoStringkonvertujedani
godinaustringi spajasamjesecitosveujedan stringdatum.Usluajudanastanegrekaonase

28

AdnanSalihbegovi,Specialnamjerenja,ElektrotehnikifakultetSarajevo,Septembar2003,str.94

57

Diplomskirad
______________________________________________________________________________________________________________

prikazujenaerrorklasteruerrorout.FunkcijaStringLengthodreujeduinustringadatumiprikazuje
brojkaraktera(ukupnaduinastringa).Koritenisuklasteriradiboljeorganizacijeivieprostora.
Novoformirani string datum upisuje se u tekst fajl Text_file ija je putanja naznaena u file (use
dialog)uzpomofunkcijezaradsafajlovimaWritetoTextFile,tovidimonaslici7.6.
U drugom djelu ovog primjera, takoer koritenjem klastera, funkcija Match Pattern podijelila je
stringnatripodstringaito:prvipodstringinistringdotraenogizraza(traeniizraz),drugipodstring
inisamtajizraz,doktreipodstringinistringnakontraenogizraza.Traeniizrazsepoinjetraiti
odnaznaenogofseta(ofset).

Slika7.6.Primjer1saupotrebomstringova,klastera,funkcijasastringovimaifunkcijezaradsafajlovima

7.3.2.Primjer2
Ovaj primjer je sloeniji od prethodnog, jer su u njemu upotrijebljeni stringovi, for petlja, shift
registar,aritmetikeoperacije,funkcijezaradsastringovimaifunkcijezaradsafajlovima.
UComboBoxu(ulaznistring)izaberemoeljenistring,uovomsluajutoje2009.FunkcijaScanFrom
Stringkonvertujenumerikekaraktereubrojeve,toinimodabimoglivritimatematikeoperacije.
Ulazimouforpetlju.Konvertovanibrojmnoimosasluajnimbrojem.Rezultatpretvaramoustring

58

Diplomskirad
______________________________________________________________________________________________________________

preko funkcije Format Into String (zaokruujemo broj na drugu decimalu) i upisujemo u fajl
pomnoenibrojpomoufukcijeWritetoTextFile.Petljaseobavi10puta,toznaidaemoimati10
sluajnih brojeva i 10 pomnoenih brojeva. Shift registar slui da izrauna sumu svih pomnoenih
brojevakojasepomoufunkcijezaradsafajlovimaFormatIntoFileupisujeufajlsuma.10sluajnih
brojevakojisemnoeupisujuseufajl(kojimoebitiitxtiexcel,tovidimonasliciispod)sluajni
brojevi pomou Write To Spreadsheet File.vi. Naravno, 1D niz sluajnih brojeva moramo
transponovatidabibiliposlaganiuspravnokaonaslici.
Drugi dio zadatka radi jednostavno itanje tekstualnog fajla za citanje pomou funkcije Read from
TextFileiprikazujesadrajnaprednjempanelu(tekstizfajla).
Sadrajfajlovaiizgledprednjegpanelanakonzavretkaprogramavidimonasliciispod.

Slika7.7.Primjer2saupotrebomstringova,petlje,shiftregistra,matematikihoperacija,funkcijazaradsa
stringovimaifunkcijazaradsafajlovima

59

Diplomskirad
______________________________________________________________________________________________________________

8. KONTROLA INSTRUMENATA
LabVIEW moe da komunicira sa vanjskim ureajima. Kao to je ve spomenuto, moemo koristiti
DAQ kartice za itanje i generisanje anlognih ulaza, analognih izlaza i digitalnih signala. Osim toga
moemo kontrolisati i vanjske instrumente (voltmetar, osciloskop i sl.) i to preko GPIB busaa
(GeneralPurposeInterfaceBus),prekoserijskogportaidrugihhardverskihstandarda.
MAXsekoristizadetekcijuinstrumenataiinstalacijuinstrumentdrajvera.
ULabVIEWuimamoinstrumentI/Oasistenta(InstrumentI/OAssistant).TojeExpressVIkojimoe
biti upotrijebljen za uspostavljanje komunikacije izmeu instrumenata. Moemo komunicirati sa
instrumentimakoristeiserijski,EthernetiliGPIBinterfejs.

8.1.GPIB(GeneralPurposeInterfaceBus)
GPIBstandardrazviojeHewlettPackardukasnim1960im.29Terminbuskoristisezasredstvokojim
raunariiinstrumentiprenosepodatke.GPIBnosidvatipaporuka:

Devicedependentporukesadreinformacijeoureajukaotosumjerenirezultati,status
maineisl.estosezovudatamessages.

Interfaceporukeupravljajubusemsamostalnoiobavljujuzadatketipainicijalizacijebusa,
adresiranjaureajaisl.estosezovucommandmessages.

MoemoimatimnogoGPIBureajakonektovanihnaistiGPIB.Postojedvijekonfiguracije:linearnai
zvjezdasta.GPIBsistemiprikazanisunasljedeojslici:

Slika8.1.GPIBsistemi(linearnaizvjezdastakonfiguracija)

29

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.436

60

Diplomskirad
______________________________________________________________________________________________________________

GPIBureajisugrupisaniutrikategorije:

Talkersaljupodatke

Listenersprimajupodatke

Controllersupravljajuprotokominformacija

GPIBureajimoguistovremenospadatiuviekategorija.Moemoimativiecontrollera,alijesamo
jedanaktivan.Aktivnikontrolersenazivacontrollerincharge(CIC).SaGPIBinstrumentimatakoer
moemo komunicirati koristei TCP/IP mreu. GPIB dohvata 16 signal linija i 8 uzemljenja linija. Na
slici8.2.vidimoGPIBkonektor:

Slika8.2.GPIBkonektor

8.2.Komunikacijaprekoserijskogporta
Serijskakomunikacija(Npr.RS232)jejojedannainprenosapodatakaizmeuraunarailiizmeu
raunara i perifernog ureaja. Za razliku od GPIB, serijski port moe komunicirati samo sa jednim
ureajem, vrlo je spor i manje je pouzdan. Bez obzira na to serijska komunikacija ima i svoje
prednosti jer ne moramo imati specijalnu karticu u naem raunaru i instrumenti se ne moraju
prilagoavati GPIB standardu. Tipian primjer sistema serijske komunikacije i konektore vidimo na
donjimslikama:

61

Diplomskirad
______________________________________________________________________________________________________________

Slika8.3.Sistemserijskekomunikacije

Slika8.4.Konektorisistemaserijskekomunikacije

8.3.Instrumentdrajeveri(Instrumentdrivers)
Instrumentdrajverjediosoftverakojikontrolieodreenureaj.LabVIEWosiguravamnogoVIeva
kojisemoguiskoristitizarazvojinstrumentdrajverazaodreenhardver.
Ovi VIevi mogu biti grupisani u tri kategorije:30standardne VISA I/O funkcije, tradicionalne GPIB
funkcijeifunkcijekomunikacijeserijskimportom.
VISA je jedinstvena biblioteka za kontrolu GPIB, VXI31, i drugih tipova instrumenata. Koristei VISA
funkcije moemo konstruisati jedinstven VI kao instrument drajver, koji kontrolira specifian tip
instrumenta, preko nekoliko razliitih I/O medija. Instrument drajveri koji koriste VISA funkcije,

30

RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,2004,str.453

31

VXIbusjebrzorazvijajuaplatformazainstrumentacionesisteme.

62

Diplomskirad
______________________________________________________________________________________________________________

hvataju aktivnosti specifine za dati instrument, a ne za komunikacioni medij, to otvara


mogunostizaviestrukokoritenjeinstrumentdrajveraunizurazliitihprograma.
Sadanji instrument drajveri koriste VISA funkcije, a budunost je u instrument drajverima
univerzalnimzasve.OvinoviinstrumentdrajverisezovuIVI(InterchangeableVirtualInstruments)
drajveri i imaju potporu od IVI Fundation. lanovi IVI Fondation vjeruju da e IVI drajveri donijeti
znaajnuuteduvremenainovca.

63

Diplomskirad
______________________________________________________________________________________________________________

9. ANALIZA PODATAKA
Prikupljenipodaci,poredkorisneinformacijesadreum,aestosuizoblieniuslijednesavrenosti
mjernopretvarake opreme i digitalizatora signala ili uslijed nepovoljnog uticaja okoline, promjene
temperature, vlanosti i drugih razloga.32 Pribavljanje korisnih informacija iz prikupljenih podataka
ostvarujemopogodnomprimjenomsavremenihtehnikaobradeianalizedigitalnihpodataka.
LabVIEWsadrimnogeVIevedostupnezaanalizusignala,sistema,funkcijaisistemajednaina.
KakoizataseupotrebljavajusviVIevimoemonajboljevidjetikoritenjemContextHelpa(izopcije
Help).
Functions paleta ima Signal Analysis Express paletu, koja sadri razliite Express VIeve kao to su:
CurveFitting,SimulateSignals,Spectral,Filterisl.

Slika9.1.PaletaSignalAnalysis

9.1.MatematikauLabVIEW
Zakljuujemo da LabVIEW osigurava vane VIeve koji su posveeni rjeavanju sistema linearnih
jednaina.Tagranamatematikenazivaselinearnaalgebra.Uovugranusesvakakoubrajairadsa
matricama.

32

VujoDrndarevi,Personalniraunariusistemimamjerenjaiupravljanja,Akademskamisao,Beograd,2003;
str.377

64

Diplomskirad
______________________________________________________________________________________________________________

Slika9.2.LinearnaalgebrauLabVIEW

Proces fitovanja (izgradnje) krivulje (curve fitting) esta je tehnika u nauci, ininjerstvu, medicini i
slino.Koritenjemovogprocesadigitalnipodacimogubitireprezentiranikaokontinualnimodel.
LabVIEW ima znatan broj algoritama za fitovanje krivulje ukljuujui: Linear Fit, Exponential Fit,
GeneralPolinomialFit,GeneralLinearFitiNolinearLevengerMerquardFit.

Slika9.3.LabVIEWVIevizafitovanjekrivulje

U stvarnom svijetu vrlo esto susreemo normalnu (ili Gaussian) distribuciju koja je na slici 9.4.
prikazana matematiki i grafiki. U LabVIEWu moemo eksperimentisati sa normalnom
distribucijom.

Slika9.4.Normalnaraspodjela(gaussian)

65

Diplomskirad
______________________________________________________________________________________________________________

Curve Fiting Express kojeg pronalazimo u Signal Analysis paleti se mora konfigurisati pri samom
postavljanjunablokdijagram.Onukljuujelinearfit,quadraticfit,splinefittepolynomialfit.Ulazu
blokjesignal,dokjeizlazizblokapodeensignal.
FormulaParsingpaletukoristimozaprevoenjeulaznihstringovauformule,transformacijuformula
unumerikiproraunivraanjerezultata.

Slika9.5.PaletaFormulaParsinguLabVIEWu

LabVIEWrjeavalinearneinelinearnediferencijalnejednaine(ODEs)koristeeVIevezarjeavanje
diferencijalnihjednainaprvogiviegreda.SvakiVIevkoristirazliitmetodrjeavanjadiferencijalnih
jednaina (Eulerov metod, RungeKutta metod, CashKarp metod i sl.) Koji emo metod koristiti
zavisiodredadiferencijalnejednaine.
VIeve sa Eulerovim metodom (ODE Euler Method VI) koristimo umjereno i samo kod veoma
jednostavnih diferencijalnihjednaina. Najee biramo RungeKuttametod(ODE RungeKutta 4th
Order)u sluaju datrebamo jednake intervale ili CashKarp metod (ODE CashKarp 5thOrderVI) u
sluajudanaszanimaglobalnorjeenjeibrzoizraunavanje.

Slika9.6.DiferencijalnejednaineuLabVIEW

VIevi za pronalaenje nula funkcije sadrani su u paleti Zeros, dok su VIevi za integraciju,
diferencijacijuiostalaraunanjasadraniupaletiCalculus.

66

Diplomskirad
______________________________________________________________________________________________________________

Slika9.7.PaletaZeros;paletaCalculus

9.2.Generisanjesignala
Kada nam signal iz realnog svijeta nije dostupan moemo koristiti LabVIEW za generisanje signala.
Ponekad nam treba signal sa tanim karakteristikama (magnituda, frekvencija, faza, itd). U tom
sluajugeneratorisignalauLabVIEWimajuznaajnuulogu.

9.2.1.Normaliziranafrekvencija
U digitalnom svijetu esto koristimo takozvanu normaliziranu frekvenciju (normalized frequency,
digitalfrequency)kojaseizraunava:

JedinicazaanalognufrekvencijujeHz(ciklusposekundi),ajedinicazafrekvencijuuzorkovanjakoja
seoznaavasafsjeuzorakposekundi.Nyquistovafrekvencijajefs/2.
VIevi koji koriste frekvencije date u normaliziranim jedinicama su: Sine Wave, Square Wave,
SawtoothWave,TriangleWave,ArbitraryWaveiChirpPattern.KadakoristimooveVIevetrebatie
konvertovatijedinicefrekvencijedateuproblemuujedinicenormaliziranefrekvencijeciklus/sampl.

9.2.2.WaveiPatternVIevi
Osnovna razlika izmeu operacija Wave i Pattern je da li poseban VI prati fazu svog generisanog
signalainterno.WaveVIevipratefazuinterno,dokPatternVIevine.
WaveVIevioperiusanormaliziranomfrekvencijomijedinicomciklus/sempl.JediniPatternVIkoji
koristinormaliziranejedinicejeChripPatternVI.

67

Diplomskirad
______________________________________________________________________________________________________________

Slika9.8.SignalGenerationVIevi(wave,pattern)

SimulateSignalExpresskojegmoemopronaiuSignalAnalysispaletisimulirasinusoidu(sinewave),
kvadratnisignal(squarewave),trokutastisignal(triangularwave),pilastisignal(sawtoothwave),te
signal uma (noise signal). Pri njegovom samom postavljanju na blok dijagram zahtijeva se
konfiguracijaputemkojemoemomijenjatiobliksignala,frekvenciju,amplituduisl.

9.3.Obradasignala(Signalprocessing)
tosetieobradesignalanajvanijejeobratitipozornostnaFourierovutransformaciju,prozorske
funkcijeifiltere.

9.3.1.Fourierovatransformacija
Diskretna Fourierova tranformacija (DFT) pripada u podruje Fourierove analize. Ona kao takva
prebacujefunkcijuizjednedomeneudrugu,npr.izvremenskeufrekvencijskudomenu.
Ulazna funkcija DFTa mora biti definisana diskretnim vrijednostima i analizira se na ogranienom
intervalu. Obzirom da je ulazna funkcija konana sekvenca realnih i kompleksnih brojeva, DFT je
idealnazaprocesiranjeinformacijapohranjenihuraunaru.

Slika9.9.DFT

Frquencydomainrepezentacijajeuvijekkompleksnaisadridvatipainformacijeamplituduifazu.

68

Diplomskirad
______________________________________________________________________________________________________________

Za realne signale (x[i]), kao to su oni koji se dobiju iz DAQ ureaja DFT je simetrina. Magnituda
signala X [k] je paran signal (funkcija), tj. simetrina u odnosu na vertikalnu osu (y). Faza (X[k]) je
neparansignal(funkcija),tj.simetrinajeuodnosunakoordinatnipoetak.
|X[k]|=|x[nk]|
faza(X[k])=faza(x[nk])

Slika9.10.Simetrijasignala

Osim DFT imamo i FFT, tj. brzu Fourierovu transformaciju. FFT je algoritam koji zbog posebnog
oblikamatriceFnsmanjujebrojoperacijamnoenjanapriblino5nlog2n.

ULabVIEWuimamofunkcijezaizraunavanjeFFT,inverzneFFTislino.

Slika9.11.TransformacijeuLabVIEW(Transforms)

9.3.2.Prozorskefunkcije
Radi popravljanja frekvencijskih karakteristika DFT, uzorci ulaznog siganla se obino mnoe sa
uzorcimateinskeiliprozorskefunkcijew[n].Ulaznafunkcijapostaje:y[n]=w[n]x[n].Uoavamodaje
DFT kruna konvolucija ulaznog signala X[k] i prozorske funkcije W[k]. Postoje razliite vrste

69

Diplomskirad
______________________________________________________________________________________________________________

prozorskih funkcija: pravougaona, trougaona, prozorske funkcije kosinusnog (sinusnog) tipa


(Hanning,Hamming,Blackman,...)iostale.OvefunkcijedostupnesuuLabVIEWuupaletiFunctions.

Slika9.12.ProzorskefunkcijeuLabVIEW(Windows)

OsimnavedenihfunkcijaLabVIEWsadriiSpectralMeasurementsExpressVI(SignalAnalysispaleta)
koji ukljuuje izbor mjerenog tipa (magnituda, snaga i slino) i prozorske funkcije (Hanning,
Hamming,BlackmanHarrisiLowSidelobes).

9.3.3.Filteri
Filteri selektivno mijenjaju vremenski oblik, amplitudnofrekvencijsku i/ili faznofrekvencijsku
karakteristiku ulaznog signala. Postoje dva tipa filtera: analogni i digitalni. U ovom djelu emo
obratitipanjunadigitalnefiltere.
Digitalni filter jematematiki algoritamimplementiranuhardverui/ili softverukojiradisaulaznim
digitalnim signalom i daje izlazni digitalni signal prema definisanom algoritmu filtriranja. Imaju niz
prednosti u odnosu na analogne filtere, to ne znai da nemaju i neke nedostatke. Znaaj ovih
nedostatakabivavremenomminimizirannovimtehnologijma.

Slika9.13.Digitalnisignalifilter

Digitalnifilterisedijelenadvijeklase:

filterisaneogranienimodzivomIIR(Butterworth,Chebyshev,InverseChebyshev,Elliptic,
Bessel)

70

Diplomskirad
______________________________________________________________________________________________________________

filteri sa konanim odzivom FIR (Windowed, opimalni filteri bazirani na ParksMcClellan


algoritmu: Equiripple Lowpass, Equiripple Highpass, Equiripple Bandpass, Equiripple
Bandstop)

Jojednapodjelafilterajena:

lowpassfiltere(Proputajuniskefrekvencijetj.frekvencijedofc)

highpassfiltere(Proputajuvisokefrekvencijetj.frekvencijeiznadfc)

bandpassfiltere(proputajufrekvencijeizodreenogintervalatj.frekvencijeizmeufc1i
fc2)

bandstopfiltere(zaustavljajufrekvencijeizodreenogintervalatj.proputajufrekvencije
manjeodfc1ifrekvencijeveeodfc2)

Slika9.14.Tipovifiltera:idealnifilteri(lijevonaslici),realnifilteri(desnonaslici)

ULabVIEWufilteremoemonauupaletiFunctions.OsimpaleteFilterskojasadrirazliitefiltere
imamo i Filter Express VI koji se nalazi u predhodno spomenutoj Signal Analysis paleti, ije opcije
ukljuujulowpass,highpass,bandpass,bandstopismoothing.

71

Diplomskirad
______________________________________________________________________________________________________________

Slika9.15.Paletasafilterima(Filters)

9.4.Primjeri
9.4.1.Primjer1
U primjeru sa slike 9.16. generator signala Sine wave.vi generie sinusni signal (signal). Vidimo da
moemo mijenjati frekvenciju signala, frekvenciju semplovanja i broj samplova pomou kontrola.
Signalprolazikrozprozore(HammingoviBlackmanov)teseprikazujenjegovizglednakonprolaska
krozjedanikrozdrugi.
Osim toga signal ulazi u FFT.vi, to predstavlja brzu Fourierovu transformaciju. Ovaj FFT e izvriti
FFTrutinuakojeveliinaulaznesekvencesnagaod2,aakonijeondasezoveuinkovitaDFTrutina.
Complex To Polar razdvaja kompleksni broj na magnitudu i fazu. Na kraju dobijamo grafik spektra
(Spektar).

9.4.2.Primjer2
Uprimjeru2(Slika9.17.)predstavljenisurazliitifilteri(Chebyshev,BesseliButterworth)kojifiltriraju
sinusnisignalsauniformnimbijelimumomkojidolaziizSimulateSignalExpressVIaividimogana
grafikonuSignal.VidimoinjegovBarGraf,teminimum(Minimum)imaksimum(Maximum)signala.
Potrebinisunamikonvertoridinamikogtipapodatka(ConvertfromDynamicData).

72

Diplomskirad
______________________________________________________________________________________________________________

Slika9.16.Primjersagrafikonima,signalgeneratorima,FFTiprozorima

Slika9.17.Primjersafilterima,BarGraphom,konvertorimadinamikogtipaihistogram+.vi

73

Diplomskirad
______________________________________________________________________________________________________________

10. NAPREDNE APLIKACIJE LabVIEW-A


LabVIEWjejedanveomamoanalat,teporednavedenih,tj.osnovnihfunkcijaimarazvijeneibrojne
napredneaplikacije.Jednaodnjihjedaljinskiiliudaljeniprednjipanel(Remotefrontpanel).
LabVIEWVImoemogledati ikontrolisatiudaljenouzpomo Webbrowsera.Ovatehnologijanam
doputadakreiramoVInajednomraunaru,anakonparkorakamoemogavidjetiipokrenutina
udaljenomraunaruuzpomoWebbrowserakaotojeInternetExploreriliNetscape.
NakonkreiranjaVIaklikomnaWebPublishingToolizToolsmenijamoemovidjetiizgleddokumenta
kojiebitinaWebbrowseru,dodatitekst,komentarislino.
Nakon spremanja na disk (.htm faj u www direktoriju) sa Save to Disk dobijemo URL dokumenta.
KlikomnaStartWebServertajURLotvaramouWebbrowseru.
Na slici 10.1. vidimo izgled primjera iz poglavlja 4 u Internet Exploreru. Vidljivo je da je mogue
pokrenutiprogramidaonpravilnoradi.

Slika10.1.VIuWebbrowseru(InternetExplorer)

74

Diplomskirad
______________________________________________________________________________________________________________

75

Diplomskirad
______________________________________________________________________________________________________________

11. ZADATAK
ZadatakjekreiranjevirtualneinstrumentacijezamjerenjetemperatureprostorijekoristeiLabVIEW,
DAQkarticuisenzortemperature.

11.1.Koritenaoprema
Opremakoritenauzadatku:

DAQ(DataAcquisition)karticaNIcDAQ9172

termoparKtip

NIcDAQ9172jeakvizicionakarticaproizvedenaodstraneNationalInstrumentsa.Kakojojsamnaziv
kaesluizaakvizicijupodataka.Izgledakaonaslici11.1.

Slika11.1.NIcDAQ9172

Vidimo da se ova akviziciona kartica sastoji od I/O modula koji obavljaju razliite funkcije i koje
moemododavatiiuklanjatiuzavisnostikojinammodulitrebaju.Nanjujemoguespojitidoosam
modula. Nakon instaliranja kartice MAX vidi module koji su na kartici i njihova imena, te tako
moemostvaratikanalekojisuvezanizaodereenmodul.
Karticaimaprikljuakzanapajanje,teUSBprikljuakuzpomokojegsespajasaraunaromnakojem
senalaziodgovarajuisoftver.

Termoparilitermoelementjenajeeupotrebljavanisenzorzamjerenjetemperature.Sastojiseod
dvijeiceodrazliitihmetalaililegura,kojesuspojenenajednomkraju.

76

Diplomskirad
______________________________________________________________________________________________________________

Princip rada termopara se zasniva na termoelektrinom efektu, koji je otkrio Thomas Johann
Seebeck 1921. godine, te se zato naziva jo i Seebeckov efekat. Termoelektrini efekat je pojava
naponapriizlaganjuprovodnika(npr.metala)temperaturnomgradijentu.Kadasespojdvametalana
termoparuizloitemperaturnomgradijentu,dolazidorazlikepotencijalanaotvorenomkrajukola.
U industrijskim standardima se upotrebljvaju odreene kombinacije metala, zbog pouzdanosti
mjerenja,trokova,stabilnosti,itd.tonamgovoridaimamorazliitetipovetermoparova.
Prvobitnanamjenatermoparovabilajemjerenjevisokihtemperatura5001000C.Idanasjenjihov
znaajnajveiumjerenjutihtemperatura,alijeprimjenauspjenoproirenainanisketemperature
od1K,padovisokihdo4000C.33
U zadatku je koriten K tip termopara. Tip K je veoma popularan u mnogim oblastima industrije.
Napravljen je od legure Nikl + Aluminijum (Alumel) i Nikl + Hrom (Hromel). Njegova tanost je u
opesguod3Cizmeu0Ci+400C,i0.75%izmeu+400Ci1100C.Ovajtiptermoparasekoristi
i van ovog opsega, npr. 200C, ali tada tanost nije specificirana. Iznad 1100C primjeuju se
odstupanja: nia oitavanja pri porastu temperature i neto via oitavanja pri opadanju
temperature.
KadasukrajeviprovodnikanarazliitimtemperaturamaT1>T2imeunjihnastajetoplotnitokod
toplijeg prema hladnijem kraju. Prenos toplote je usko povezan sa kretanjem slobodnih elektrona.
Njihovakoncentracijaipripadnipotencijalsuneravnomjernorasporeeniduprovodnikapasejavlja
struja.Istovremenosejavljaistrujazbogtemperaturnoggradijenta.Buduidanijezatvorenonikakvo
vanjskoelektrinokolostrujakrozprovodnikjenula.Naponkojinastajekaorezultattoplotnerazlike
T1T2izmeukrajevaposmatranogprovodnikanazivasetermoelektrininapon.
TermoparKtipavidimonaslici11.2.

Slika11.2.TermoparKtip

33

DrMladenPopovi,Senzoriimerenja,etvrtoizdanje,Zavodzaudbenikeinastavnasredstva,Srpsko
Sarajevo,2004

77

Diplomskirad
______________________________________________________________________________________________________________

11.2.Rjeenje
Na slici 11.3. vidljivo je da je termopar K tipa spojen na odgovarajui modul (NI 9211) akvizicione
karticeNIcDAQ9172(uzpomomaloice).

Slika11.3.NIcDAQ9172itermopar

Modul NI 9211 koristi se za spajanje termoparova na akvizicionu karticu. Mogu se spojiti ukupno
etiritermopara.UovomzadatkutermoparjespojennaTC0,tj.TC0+iTC0,odnosno0i1terminale
+itermopararespektivno.

Slika11.4.NI9211

Kada nam je hardver uredno spojen kreiramo kanal uz pomo MAXa koji e prihvatati podatke sa
termoparakojije spojenna modul NI 9211kaonaslici iznad idodjelimomu task.SpomenutiDAQ
asistentigraznaajnuulogu.Izaberemotiptermopara,minimalnuimaksimalnuvrijednostpodataka,
jedinicumjerenjaislino.

78

Diplomskirad
______________________________________________________________________________________________________________

Slika11.5.DAQasistent

Blokdijagramovogzadatkaprikazanjenasliciispod:

Slika11.6.Blokdijagramzadatka

Nablokdijagramuvidimodasukoritenerazliitekontrole,indikatori,funkcijetesubVIevi.
Imamodvacasepoddijagrama(pisanjeufajliitanjeizfajla).

79

Diplomskirad
______________________________________________________________________________________________________________

PoddijagramPisanjeufajlvrijednostidobiveneodSubVIaThermometer.vi,kojesuNumerictipa,
pretvarauStringiupisujeufajlsvakesekundetoregulieTimeDelay.Temperaturajezaokruena
nadrugudecimalu.Trenutnoizmjerenatemperaturaseprikazujenaprednjempanelu,aosimtoga
izmjerenetemperatureseucrtajuiugrafikon.Vrijednosttrenutnetemperatureseispitujeiu
zavisnostidalijeonavea/manjaodgornje/donjegraninetemperaturepojavljujeseodgovarajui
blinkajuistringindikator.
Nakonprekidawhilepetljevriseanalizaizmjerenihtemperaturatesecrtabargraphtemperaturai
ispisujeminimalnaimaksimalnaizmjerenatemperatura.
Nablokdijagramupostojeifunkcijekojepoboljajupreglednostuitanihpodataka,tj.dodajudatum,
vrijemeiostalo.
Poddijagramitanjeizfajlaiitavaodabranifajlinjegovsadrajprikazujenastringindikatoru.
RadiboljepreglednostiblokdijagramaupotrebljavanisuklasteritesubVIevi.
Blok dijagram i prednji panel SubVIa Thermometer.vi prikazani su na slici 11.7. gdje vidimo da
vrijednostitemperaturadobijamopomoukonfigurisanogDAQasistentatedamoemobiratidalie
temperaturabitiprikazanaucelzijusimaC(podefaultu)iliufarenhajtimaF.

Slika11.7.Thermometer.vi

PretvaranjeCuFrealizovanojejednostavnommatematikom,tojenaslici11.8.ividljivo.
KoritenisugotoviVIevizaBarGraph(ArrayToBarGraph.vi),teminimalnuimaksimalnuvrijednost
(histogram+.vi).

80

Diplomskirad
______________________________________________________________________________________________________________

Slika11.8.ConvertCtoF.vi,ArrayToBarGraph.vi,histogram+.vi

Prednjipanelzadatkaprikazanjenaslici11.9.

Slika11.9.Prednjipanelzadatka

81

Diplomskirad
______________________________________________________________________________________________________________

Vidimo da na front panelu moemo da biramo da li emo pisati u fajl ili itati iz fajla (Izbor:
(pisanje/itanje u fajl)) kojeg unosimo u string fajl. Takoer moemo birati donju (donja granina
temperaturauovomsluaju25C)igornjugraninutemperaturu(gornjagraninatemperaturau
ovomsluaju30C).
Vidimodasumoguatriscenarija(Slika11.10.):
kadajetemperaturaizmeu25i30C
kadajetemperaturaiznad30C(postajevidljivindikatorTemperaturavisokakojiblinka)
kadajetemperaturaispod25C(postajevidljivindikatorTemperaturaniskakojiblinka)

Slika11.10.Svatrimoguascenarijaprimjerenjutemperature

Trenutna temperatura prikazuje se na termometru i u digitalnom displeju ispod. Temperature se


kakojevereenoucrtajuugrafikon(Temperature).
Datum, vrijeme i trenutna temperatura u datoj sekundi ispisuju se u string indikatoru desno svaki
sekund. Mjerenje i upisivanje temperature u fajl se moe prekinuti sa STOP buttonom. Nakon
prekidaiscrtavasebargraphpredhodnoizmjerenihtemperaturateseispisujenajmanja(Minimalna
temperatura)inajvea(Maksimalnatemperatura)izmjerenatemperatura.

82

Diplomskirad
______________________________________________________________________________________________________________

Slika11.11.Analizaiprikaz

Ovetemperaturesuzatimupisaneufajl(tekstualni,excelisl.),odakleihmoemoitati.

Slika11.12.Zapisiufajlovimaiitanjeizfajla

83

Diplomskirad
______________________________________________________________________________________________________________

12. ZAKLJUAK
Kroz ovaj diplomski rad zakljueno je da LabVIEW programsko okruenje posjeduje veliki broj
ugraenih grafikih elemenata (funkcija) koje omoguavaju programeru da sa veoma malo
programiranjakreiravrlokomplikovaneaplikacijezamjerenje,testiranje,obradusignala,upravljanje
i mnoge druge namjene. Upravo zbog te potrebe za ostvarenjem velikog broja razliitih
funkcionalnosti,LabVIEWprogramskijezikpodravaradsavelikimbrojemrazliitihtipovapodataka,
koristi standardne i nestandardne strukture za upravljanje toka programa, posjeduje veliki broj
grafikihelemenatazaunosiprikazpodatakaislino.
LabVIEW je veoma moan i fleksibilan alat sa mnogim mogunostima, koje ne mogu biti sve
obraene u ovom diplomskom radu. Prednosti su mu: lako povezivanje sa hardverom, kompilacija
koda, velika biblioteka funkcija za akviziciju podataka, modularni karakter LabVIEW koda koji nam
omoguavakoritenjekodabezpromjeneiparalelnoprogramiranje.
LabVIEWimamnogobrojneprimjeneuininjerstvuinauci.Vanamujeulogautestiranjuimjerenju,
industrijskojautomatizacijiianalizipodataka.KaoprimjermoeseuzetiupotrebaLabVIEWauNASA
laboratorijamanaMarsroverimazamjerenjepozicijeitemperaturerovera,snagenjegovebaterijei
slino.
LabVIEWjeuvlasnitvufirmeNationalInstruments,teuodnosunaostaleprogramskejezikekaoto
suC,FORTRANislino,LabVIEWnijeodreenodstranetreihosobakaotosuANSI,IEEE,ISOitd.

84

Diplomskirad
______________________________________________________________________________________________________________

13. LITERATURA

1. RobertH.Bishop,LearningwithLabVIEW7Express,PranticeHall,UpperSaddleRiver,NY,
2004
2. VujoDrndarevi,Personalniraunariusistemimamjerenjaiupravljanja,Akademskamisao,
Beograd,2003
3. AdnanSalihbegovi,Specialnamjerenja,ElektrotehnikifakultetSarajevo,Septembar2003
4. Dr.Sci.HimzoBajri,Obradadigitalnihsignala,JUUniverzitetuTuzli,Tuzla,2003
5. DrMladenPopovi,Senzoriimerenja,etvrtoizdanje,Zavodzaudbenikeinastavna
sredstva,SrpskoSarajevo,2004
6. http://www.scribd.com/doc/15962632/LabVIEWDataTypesConversionsBetweenThese
Types
7. http://en.wikipedia.org/wiki/LabVIEW
8. http://zone.ni.com/reference/enXX/help/371361E
01/lvanlsconcepts/discrete_fourier_transform/
9. http://www.ni.com/labview/whatis/
10. http://www.ed.rs/ed/tekstovi/principi/tipovi_termoparova.htm
11. http://bs.wikipedia.org/wiki/Termopar
12. SoftverskipaketLabVIEW(2009,2010)idokumentacija

85

You might also like