You are on page 1of 225

ELEKTRONSKI FAKULTET KATEDRA ZA MERENJA

Predmet: Raunarski mernoinformacioni sistemi u industriji - praktikum za vebe -

Ni 2007

Prvi deo Veza izmeu virtuelne instrumentacije i realnog sveta


Uvod Virtuelna instrumentacija je osnova moderne laboratorije. Virtuelni instrument se sastoji od kompjutera, softvera i modularnog hardvera; sve to kombinovano i konfigurisano u cilju oponaanja funkcije tradicionalne hardverske instrumentacije. On je takoe i ono to mi zovemo LabVIEW program. Poto je njihova funkcionalnost softverski definisana od strane korisnika, virtuelni instrumenti su izuzetno fleksibilni, moni (sposobni) i ekonomini. U ovom delu se objanjava komunikacija sa spoljanjim svetom (na primer, obavljanje merenja, prianje (razmena informacija) sa instrumentom, slanje podataka drugom raunaru) korienjem LabVIEW-a. Osnovni pojmovi: Akvizicija podataka (DAQ), Interfejs magistrala opte primene (GPIB), 488 standard Instituta inenjera elektrike i elektronike (IEEE), Serijski port, PXI, VXI, Internet mogunosti, Umreavanje, Deljena biblioteka i dinamika biblioteka (DLL), Kodni interfejs vor (CIN Code interface node), ActiveX i .NET, Alati. Korienje LabVIEW-a u realnom svetu Iako je LabVIEW veoma moan alat za simulaciju, najee se koristi za prikupljanje podataka iz spoljanjeg izvora i sadri mnoge ugraene VI specijalno za ovu svrhu. Na primer, LabVIEW moe rukovoditi ureajima plug-in akvizicije podataka, ili DAQ-om, koji mogu dobaviti ili generisati analogne i digitalne signale. DAQ ureaji i LabVIEW se mogu koristiti za monitoring temperature, slanje signala spoljanjem sistemu ili za odreivanje frekvencije nepoznatog signala. LabVIEW takoe omoguava prenos podataka preko Interfejs magistrale opte namene (GPIB), ili preko ugraenog USB-a u naem raunaru, Eterneta, Firewire (takoe poznat kao IEEE 1394), ili serijskog porta. GPIB se esto koristi za komunikaciju sa osciloskopima, skenerima i multimetrima, kao i za rukovoenje instrumentima sa udaljene lokacije. LabVIEW softver moe takoe kontrolisati sofisticirane VXI instrumentacione sisteme, Eternet bazirane ili USB bazirane instrumente. Kada imamo prikupljene ili primljene podatke, mi moemo koristiti mnoge VI za njihovu analizu u cilju obrade i manipulacije tim podacima. esto u okviru nekog instrumenta imamo potrebu da delimo podatke sa drugim aplikacijama ili raunarima. LabVIEW ima ugraene funkcije koje pojednostavljuju ovaj proces, koje podravaju nekoliko protokola umreavanja, spoljanje pozive postojeeg koda ili dinamikih biblioteka (DLL), kao i ActiveX automatizaciju. Evolucija LabVIEW-a Kompanija National Instruments poinje 1983. godine sa istraivanjem naina minimizacije vremena potrebnog za programiranje instrumentacionih sistema. Kao rezultat tih 1

napora nastaje koncept LabVIEW virtuelnog instrumenta sa prednjim panelom kao korisnikim interfejsom i novom metodologijom programiranja u vidu blok dijagrama. LabVIEW verzije 1 je realizovan 1986. godine samo za Macintosh. Mada Mac nije iroko korien za aplikacije merenja i instrumentacije, njegova grafika priroda se najbolje prilagodila LabVIEW tehnologiji dok je ne podre korieniji operativni sistemi. National Instruments je do 1990. godine potpuno promenio kod LabVIEW-a kombinujui novu tehnologiju softvera sa godinama korisnikog iskustva. Vanije je to je LabVIEW 2 imao kompajler koji ima brzine izvravanja VI poredljive sa programima kreiranim u C programskom jeziku. Kako su se pojavili drugi grafiki operativni sistemi, National Instruments je predstavio sada ve usavrenu LabVIEW tehnologiju za druge platforme: PC i radne stanice. 1992. godine oni predstavljaju LabVIEW za Windows i LabVIEW za Sun baziran na novoj portabilnoj arhitekturi. LabVIEW 3 stie 1993. godine za Macintosh, Windows i Sun operativne sisteme. LabVIEW 3 programi napisani na jednoj platformi mogu se pokrenuti na drugoj. Ova vieplatformska kompatibilnost daje korisnicima mogunost da izaberu platformu za razvoj poto oni mogu pokrenuti njihove VI na drugim platformama (zapazimo da je ovo bilo nekoliko godina pre pojave Java programskog jezika). 1994. godine lista LabVIEW podranih platformi je ukljuila Windows NT, Power Mac i HP radne stanice. 1995. godina nam je donela jednu adaptaciju za Windows 95. LabVIEW 4, realizovan 1996. godine, ima prilagodljivije okruenje za razvoj tako da korisnici mogu stvoriti svoj radni prostor da bi zadovoljili svoje navike u industriji, nivou iskustva i razvoju. Kao dodatak, LabVIEW 4 je doneo monije alate za editovanje i debagovanje za napredne instrumentacione sisteme, kao i OLE-bazirano povezivanje i alate za distribuirano izvravanje. LabVIEW 5 i 5.1 (1999. godine) je nastavio sa poboljanjima u razvojnim alatima uvoenjem ugraenog web servera, dinamikog programiranja i kontrole framework-a (VI server), integracije sa ActiveX i lakog deljenja podataka preko Interneta sa protokolom nazvanim DataSocket. Konano je implementirana i funkcija undo. 2000. godine LabVIEW 6 (ponekad nazvan 6i) je uveo podrku za Linux operativni sistem. Takoe uvodi novi komplet 3-D kontrola; odgovarajue za vreme kada je kompjuterska industrija otkrila da je stil dosta bitan. LabVIEW je dao impresivan napredak u obezbeenju lakog i intuitivnog interfejsa programiranja, kao i podrku za mnotvo naprednih tehnika programiranja, kao to je objektno-orijentisani razvoj, distribuirano raunanje, viestruka aktivnost (multithreading) itd. 2001. godine LabVIEW 6.1 uvodi programiranje orijentisano na dogaaj, udaljenu web kontrolu LabVIEW-a, udaljene prednje panele, VISA podrku za komunikaciju sa infracrvenim ureajima (IrDA) i druga poboljanja. Takoe 2001. godine je predstavljen LabVIEW Real-Time (LabVIEW RT) omoguujui VI razvijenim u LabVIEW da budu skinuti na RT Engine RT serije ureaja National Instruments-a i pokrenuti u realnom vremenu. 2003. godine LabVIEW 7.0 (ponekad nazvan 7 Express) uvodi nekoliko novih osobina za poetnike i napredne korisnike. Najzapaenija je Express tehnologija: skup alata dizajniranih za poetnike LabVIEW okruenja da bi brzo savladali tehnike pomou lako podeavajuih, lakih za korienje subVI i funkcija. Za naprednije korisnike, LabVIEW 7.0 proiruje funkcionalnost strukture dogaaja ukljuujui dogaaje definisane od strane korisnika kao i dinamiku registraciju dogaaja. Drugi dodaci ukljuuju Tree Control i SubPanel za kreiranje fleksibilnijih i monijih korisnikih interfejsa. Takoe u 2003.godini uvedeni su LabVIEW PDA i LabVIEW FPGA moduli. LabVIEW PDA modul omoguuje kreiranje LabVIEW programa koji se mogu pokrenuti na

PalmOS i PocketPC-u. LabVIEW FPGA omoguuje kreiranje LabVIEW programa koji se mogu pokrenuti na Field Programmable Gate Arrays (FPGA), FPGA ureaje National Instruments-a. 2004. godine LabVIEW 7.1 je doneo VISA podrku za komunikaciju sa Bluetooth ureajima, prirodnu kontrolu Radio dugmadima, Prozor za navigaciju i mnoge druge korisne mogunosti, ukljuujui razvoj Express tehnologije. 2005. godine LabVIEW 8 uvodi Project Explorer, radni prostor IDE stila koji omoguuje istraivaima da upravljaju razvojem virtuelnog instrumentacionog sistema. LabVIEW projekat moe sadrati VI, hardverske resurse i konfigurisanja, kao i pravila graenja i razmetaja. LabVIEW 8 takoe daje podrku za Project Library komponente, sitnice kao to su meniji na desnom kliku, drag-and-drop, prilagoene kontrole sa osobinom promene vremena. ta je akvizicija podataka? Akvizicija podataka, ili skraeno DAQ, je jednostavno proces merenja signala iz realnog sveta, kao to je napon, i prenos te informacije u kompjuter radi obrade, analize, smetanje ili druge manipulacije podacima. Slika 1.1 pokazuje komponente DAQ sistema. Fiziki fenomen predstavlja signale iz realnog sveta koje pokuavamo meriti, kao to je brzina, temperatura, vlanost, pritisak, protok, pH, start-stop, radioaktivnost, intenzitet svetlosti, i tako dalje. Koriste se senzori (ponekad nazvani merni pretvarai) za procenu fizikog fenomena i proizvodnju proporcionalnih elektrinih signala tom fenomenu. Na primer, termoparovi, tip senzora, konvertuju temperaturu u napon koji A/D (analognodigitalni) konvertor moe meriti. Drugi primeri senzora ukljuuju merne trake, merae protoka i pretvarae pritiska, koji mere pomeraje u materijalu usled naprezanja, brzinu protoka i pritisak, respektivno. U svakom sluaju, elektrini signal proizveden senzorom je u direktnoj vezi sa fenomenom koji obrauje.

Slika 1.1 DAQ sistem LabVIEW moe rukovoditi DAQ ureajima za itanje analognih ulaznih signala (A/D konverzija), generisanje analognih izlaznih signala (D/A konverzija), itanje i pisanje digitalnih signala, i manipulisanje brojaima na ploi za merenje frekvencije, generisanje impulsa, merenja kvadraturnim enkoderom, i tako dalje, za povezivanje sa pretvaraima. U sluaju analognog ulaza, podaci o naponu iz senzora idu u plug-in DAQ ureaje u raunaru, koji alju podatke u memoriju raunara za smetanje, obradu ili drugu manipulaciju. Moduli za kondicioniranje signala kondiciraju elektrine signale generisane pretvaraima tako da budu u obliku koji DAQ ureaji mogu prihvatiti. Na primer, elimo da izoliramo ulaz visokog napona kao na primer 120 VAC, greka bi dovela do pregorevanja 3

kartice i raunara. Moduli za kondicioniranje signala mogu raditi mnoge razliite tipove kondicioniranja: pojaavanje, linearizacija, filtriranje, izolacija, itd. Nee zahtevati sve aplikacije kondicioniranje signala, ali mnoge hoe, i treba obratiti panju na specifikacije da bi izbegli potencijalne otkaze. Dodatno, gubitak informacije moe biti ak i gori od gubitka opreme! um, nelinearnost, preoptereenje, izoblienje, itd. mogu beznadeno otetiti nae podatke, a LabVIEW ih nee sauvati. Kondicioniranje signala je esto opcionalno najbolje proveriti pre poetka.

Slika 1.2 NI obezbeuje mnoge tipove DAQ ureaja Da bi prikupili podatke u naoj laboratoriji korienjem pristupa virtuelne instrumentacije, potreban nam je DAQ ureaj, raunar konfigurisan softverom LabVIEW i DAQ drajverom i neki metod povezivanja naeg pretvaraa signala za DAQ ureaj, kao to je konektorska ploa, prototipska ploa, kabl ili ica. Moe nam takoe biti potrebna oprema za kondicioniranje signala, zavisno od specifikacija nae aplikacije. Na primer, ako elimo meriti temperaturu, bilo bi potrebno povezati senzor temperature na analogni ulazni kanal DAQ ureaja u naem raunaru (esto preko opreme za kondicioniranje signala, zavisno od senzora). Zatim koristimo DAQ VI LabVIEW-a za itanje kanala na kartici, prikazivanje temperature na ekranu, njeno snimanje u fajl i njena analiza na nain koji nam je potreban. ta je GPIB? Hewlett Packard je razvio Interfejs magistralu opte namene, ili GPIB, kasnih 1960-tih da olaka komunikaciju izmeu raunara i instrumenata. Magistrala je jednostavno sredstvo kojim raunari i instrumenti prenose podatke, a GPIB obezbeuje neophodnu specifikaciju i protokol za rukovoenje ove komunikacije. Institut inenjera elektrike i elektronike (IEEE) standardizuje GPIB 1975. godine i on postaje poznat kao IEEE 488 standard (GPIB = IEEE 488). Izvorna svrha GPIB-a je bila obezbeenje kompjuterske kontrole instrumenata za testiranje i merenje. Meutim, njegovo korienje je proireno za aplikacije u drugim oblastima, kao to je komunikacija izmeu dva raunara i kontrola multimetara, skenera i osciloskopa. GPIB je paralelna magistrala koju mnogi instrumenti koriste za komunikaciju. GPIB alje podatke u bajtovima (jedan bajt = osam bitova), a prenete poruke su esto kodirane kao nizovi ASCII karaktera. Na raunar moe vriti GPIB komunikaciju jedino ako ima GPIB karticu (ili spoljanji GPIB boks), kao to su one prikazane na slici 1.3 i sa odgovarajuim instaliranim drajverima. 4

Slika 1.3 GPIB kartice koje proizvodi NI Moemo povezati vie instrumenata i raunara na istu GPIB magistralu. Svaki ureaj, ukljuujui interfejs karticu raunara, mora imati jedinstvenu GPIB adresu izmeu 0 i 30, tako da izvor podataka i destinacije mogu biti specificirane ovim brojem. Adresa 0 je normalno dodeljena GPIB interfejs kartici. Instrumenti povezani za magistralu mogu koristiti adresu 1 do 30. GPIB ima jedan Kontroler, obino na raunar, koji kontrolie funkcije rukovoenja magistralom. Da bi preneli komande instrumenta i podatke magistralom, Kontroler adresira jednog Govornika (Talker) i jednog ili vie Sluaoca (Listener). Nizovi podataka se zatim alju preko magistrale od Govornika do Sluaoca. LabVIEW GPIB VI automatski odrauju adresiranje i mnoge druge funkcije rukovoenja magistralom, time nas spaavajui kompleksnijeg programiranja. Sledea ilustracija pokazuje tipini GPIB sistem (vidi sliku 1.4).

Slika 1.4 Tipini GPIB sistem koji sadri jedan ili vie instrumenata sa GPIB i jednu kontrolersku karticu GPIB-a Iako je korienje GPIB-a jedan nain dovoenja podataka u raunar, ono je fundamentalno razliito od izvoenja akvizicije podataka, ak iako se koriste kartice koje se ubacuju u raunar. Korienjem specijalnog protokola, GPIB pria sa drugim raunarom ili instrumentom u cilju dovoenja zahtevanih podataka od tog ureaja, dok akvizicija podataka ukljuuje povezivanja signala direktno u DAQ ureaj kompjutera. Da bi koristili GPIB kao deo naeg virtuelnog instrumentacionog sistema, potrebna nam je GPIB kartica ili spoljanji boks, GPIB kabl, LabVIEW i raunar, i IEEE-488 kompatibilan instrument sa kojim se komunicira (ili drugi raunar koji sadri GPIB karticu). Potrebno je takoe instalirati GPIB drajvere na naem raunaru shodno upustvima koja idu uz LabVIEW ili karticu.

Komunikacija korienjem serijskog porta Serijska komunikacija je drugo popularno sredstvo prenoenja podataka izmeu raunara i perifernog ureaja kao to je programabilni instrument (ili pak drugi raunar). LabVIEW moe vriti serijsku komunikaciju (standardi RS-232, RS-422 ili RS-485) korienjem ugraenih ili spolja prikaenih (na primer, USB serijski adapteri) serijskih portova na naem raunaru. Serijska komunikacija koristi predajnik za slanje podataka od jednog bita u trenutku preko jedne komunikacione linije ka prijemniku. Moe se koristiti ova metoda kada su brzine prenosa male ili kada moramo prenositi podatke na velikim daljinama. Staromodan serijski komunkacioni protokol, RS-232, je sporiji i manje pouzdan od GPIB, ali za njegovo izvoenje nije potrebna kartica u naem raunaru, na instrument ne mora da podrava IEEE 488 standard i mnogi ureaji i dalje rade sa RS-232. Slika 1.5 pokazuje tipini serijski komunikacioni sistem.

Slika 1.5 Tipini (RS-232) serijski sistem koji sadri jedan instrument koji podrava RS-232 povezan na raunar preko njegovog serijskog porta Serijska komunikacija je zgodna jer veina PC-a imaju jedan ili dva ugraena RS-232 serijska porta pomou kojih moemo slati i primati podatke bez kupovine bilo kakvog specijalnog hardvera. Neki noviji raunari nemaju ugraeni serijski port, ali je lako kupiti serijski adapter USB u RS-232 za cenu kotanja USB mia. Mada veina raunara danas ima ugraene USB (univerzalna serijska magistrala) portove, USB je kompleksniji protokol koji je orijentisan ka raunarskim periferijama, pre nego na komunikaciju sa naunim instrumentima. Serijska komunikacija (RS-232, RS-422 ili RS-485) je stara u poreenju sa USB, ali je jo uvek iroko koriena za mnoge industrijske ureaje. Mnogi GPIB instrumenti takoe imaju ugraene serijske portove. Meutim, za razliku od GPIB, RS-232 serijski port moe komunicirati sa samo jednim ureajem, to moe biti ograniavajue za neke aplikacije. Komunikacija preko serijskog porta je takoe spora i nema ugraene mogunosti provere greaka. Meutim, serijska komunikacija ima svoju primenu (ona je sigurno ekonomina) i LabVIEW serijska biblioteka sadri spremne funkcije za operacije preko serijskog porta. Aplikacije u realnom okruenju: Zato vrimo analizu Kada unesemo podatke u raunar, mi emo moda eleti da obradimo podatke na neki nain. Nekoliko od mnogih moguih aplikacija LabVIEW analize ukljuuju biomedicinsku obradu podataka, sinteza govora i prepoznavanje, obrada digitalnog audio signala i digitalnih slika. Vanost integrisanih biblioteka za analizu u laboratorijske stanice je oigledna: niz podataka sakupljenih naim DAQ ureajem ili GPIB instrumentom ne donosi uvek odmah

korisnu informaciju. esto je potrebno transformisati signal, otkloniti um, popraviti podatke oteene neispravnom opremom ili kompenzirati efekte okoline kao to su temperatura i vlanost. Slika 1.6 pokazuje podatke koji sadre um koji prekriva na signal od interesa.

Slika 1.6 Podaci koji sadre um Analizom i obradom digitalnih podataka, moemo ekstraktovati (izvaditi) korisnu informaciju iz uma i predstaviti je u razumljivijem obliku. Obraeni podaci sada vie lie kao oni prikazani na slici 1.7.

Slika 1.7 Podaci kojima je posle obrade otklonjen um LabVIEW metod programiranja preko blok dijagrama i irok set LabVIEW VI za analizu pojednostavljuje razvoj aplikacija analize. Sledei uzorak blok dijagrama ilustruje LabVIEW koncept programiranja (vidi sliku 1.8).

Slika 1.8 Blok dijagram koji pokazuje kako moemo obraivati niz podataka i prikazati rezultate u LabVIEW Zato to funkcije analize u LabVIEW nam nude popularne tehnike analize podataka preko zasebnih VI, moemo ih povezivati, kao to je prikazano na prethodnoj slici, da bi analizirali podatke. Umesto brige o detaljima implementacije za rutine analiza kao to je u veini programskih jezika, moemo se skoncentrisati na reavanju naih problema analize podataka. LabVIEW VI za analizu su dovoljno moni za eksperte prilikom izgradnje sofisticirane aplikacije analize korienjem digitalne obrade signala (DSP), digitalnih filtera, statistike ili numerike analize. U isto vreme oni su dovoljno jednostavni za novajlije koji vre sofisticirana izraunavanja. LabVIEW VI za analizu efikasno obrauju blokove informacija predstavljenih u digitalnom obliku. Oni pokrivaju sledee bitne oblasti obrade: Generisanje signala i uma, Spektralna analiza (FFT, snaga spektra, itd.), 7

Karakterizacija impulsa (vremenski parametri, prelazi, nivoi, itd.), Merenja amplitude/nivoa (DC/RMS, pik, itd.), Merenja distorzije (SINAD, THD, itd.), Nadgledanje signala (maska sa granicama, okidanje, itd.), Optimizacija/podeavanje krive, Interpolacija/ekstrapolacija, BLAS/LAPACK bazirana linearna algebra, Analiza taka po taka, Verovatnoa i statistika, Transformacije (Furijeova, Hilbertova, itd.), Frekventni i impulsni odziv, Detekcija pika/nivoa, Digitalno filtriranje, Ponovno odmeravanje/poravnavanje signala, Upotreba prozora, Obine diferencijalne jednaine, Integracija i diferenciranje, Reavanje polinomnih funkcija, Elementarne i specijalne funkcije. Malo rei o PXI i VXI Dve drugaije hardverske platforme sa kojima trebamo biti upoznati su PXI i VXI. PXI, akronim za compactPCI eXtensions for Instrumentation, definie modularnu hardversku platformu baziranu na Intel x86 procesoru (PC arhitektura) i CompactPCI magistrali (verzija PCI magistrale). Tipina konfiguracija ukljuuje PXI asiju (kao to je ona prikazana na slici 1.9), koja ima svoj PC raunar (nazvan kontroler) koji pokree Microsoft Windows i slotove za sve tipove mernih modula: analogni ulaz, obrada slike, kontrola pokreta, zvuk, releji, GPIB i VXI interfejsi, itd. Kompaktan i sa mogunou nadogradnje sistem predstavlja atraktivnu platformu za mnoge aplikacije. Slika 1.10 pokazuje PXI sistem u realnoj primeni. Kao dodatak standardnoj PXI konfiguraciji koju pokree Microsoft Windows na kontroleru, moemo koristiti verziju LabVIEW-a u realnom vremenu (LabVIEW RT) na kontroleru za robustniji sistem ili ak pokrenuti Linux (podrka za NI hardver koji radi sa Linux-om se stalno poboljava).

Slika 1.9 PXI asija sa kontrolerom i razliitim instaliranim IO karticama

Slika 1.10 PXI sistem VXI, akronim za VME eXtensions for Instrumentation, je drugi instrumentacioni standard za sisteme sa kartinim instrumentima. Prvi je predstavljen 1987. godine i baziran je na VMEbus (IEEE 1014) standardu, VXIbus je tehnoloki bolji i obino skuplji sistem nego PXI. VXI sadri matinu asiju sa slotovima koji dre modularne instrumente na plug-in karticama. Raznolikost instrumenata i veliina matine osnove je dostupna od mnogobrojnih prodavaca, a takoe mogu se koristiti VME moduli u VXI sistemima. VXI ima iroku paletu primena u tradicionalnom testiranju i merenjima i ATE (automatska test oprema) aplikacijama. VXI je takoe popularan u akviziciji podataka i analizama za istraivanja i aplikacije industrijske kontrole koje zahtevaju veliki broj kanala (stotine ili hiljade). VXIplug&play je naziv korien u sprezi sa VXI proizvodima koji imaju dodatne standardizovane osobine pored osnovnih specifikacija. VXIplug&play kompatibilni instrumenti ukljuuju standardizovani softver koji obezbeuje prednje panele, drajvere instrumenata i instalacione rutine da bi se u potpunosti iskoristila prednost sposobnosti instrumenta i uinio na programerski zadatak to je mogue lakim. LabVIEW softver za VXI je u potpunosti kompatibilan sa VXIplug&play specifikacijama. Povezivanje U nekim primenama, eleemo da delimo podatke sa drugim programima, lokalno ili u naoj lokalnoj mrei. U mnogim sluajevima, moemo poeleti da delimo podatke na Internetu i dozvoliti drugim ljudima da vide ili kontroliu na sistem preko Web-a. LabVIEW ima ugraene mogunosti (kao to su web server, alatke za web objavljivanje, email VI i mrene promenljive) i funkcije koje pojednostavljuju ovaj proces. Ovi VI olakavaju komunikaciju preko mree ili preko Interneta. LabVIEW moe koristiti NI Publish i Subscribe Protocol (NI-PSP) za deljenje podataka u mreama, pozivanje i kreiranje dinamikih biblioteka (DLL) ili spoljanjeg koda, i podrava ActiveX automatizaciju i .NET konstrukcije. Korienjem dodatnih modula i setova alatki, LabVIEW moe takoe komunicirati sa veinom SQL (structured query language) baza podataka, kao to su MySQL, PostgreSQL, Oracle, SQL Server i Access. Mrene promenljive mogu biti definisane u LabVIEW projektu i lako deljene u celokupnom distribuiranom mernom sistemu.

Internet povezivanje LabVIEW ima nekoliko ugraenih mogunosti koje ine veoma lakim proces deljenja VI-a i podataka preko Interneta. Korienjem LabVIEW web servera i Udaljenih panela, moemo omoguiti ljudima da vide i kontroliu na VI sa neke udaljenosti (bez dodatnog programiranja), kao to je prikazano na slici 1.11.

Slika 1.11 Slika prednjeg panela VI-a koja se vidi u Mozilla Firefox, generisana LabVIEW web serverom Pomou Enterprise Connectivity seta alatki moemo koristiti LabVIEW u okviru ftp i telnet-a u udaljenim sistemima, kao i obezbediti proirene mogunosti web servera. Mogunosti e-mail-a su ugraene u verziji LabVIEW Professional. Umreavanje Za nae potrebe, umreavanje se odnosi na komunikaciju izmeu vie procesa koji se obino (ali ne i neophodno) pokreu na odvojenim raunarima. Ova komunikacija se moe odvijati u zatvorenoj, lokalnoj raunarskoj mrei (LAN), ili preko Interneta. Glavna potreba za umreavanjem u softverskim aplikacijama je dozvoljavanje jednoj ili vie aplikacija korienje servisa druge aplikacije. Kao dodatak mogunosti LabVIEW-a to se tie web objavljivanja je korienje nekih funkcionalnosti umreavanja za komunikaciju sa drugim softverom ili drugim LabVIEW programom. Za komunikaciju izmeu procesa mora se koristiti zajedniki jezik komunikacije, odnosno protokol. LabVIEW podrava sledee protokole: NI Publish and Subscribe Protocol (NI-PSP) protokol National Instruments-a za deljenje podataka instrumentacije. Ima prednost to je veoma lak za upotrebu. Deljive promenljive koriste ovu tehnologiju. TCP/IP osnovni protokol za veinu mrea, ukljuujui Internet. UDP osnovni protokol, slian TCP/IP ali bez potvrivanja isporuke podataka. ActiveX i .NET ActiveX je tehnologija Microsoft-a koja definie arhitekturu baziranu na komponentama za pravljenje aplikacija koje mogu komunicirati meusobno. ActixeX se oslanja na prethodne tehnologije kao to je OLE. Sa ActiveX jedna aplikacija moe deliti deo 10

koda (komponenta) sa kompletno razliitom aplikacijom. Na primer, zato to je Microsoft Word ActiveX komponenta, moemo kontrolisati i ugraditi Word dokumenat unutar druge aplikacije koja se oslanja na ActiveX, kao to je LabVIEW VI. LabVIEW podrava ActiveX automatizaciju i moe sadrati ActiveX komponente. .NET framework je novija tehnologija dizajnirana od strane Microsoft-a za olakavanje razvoja aplikacija u visoko distribuiranoj sredini Interneta. U LabVIEW moemo se lako povezati sa ovom novom .NET tehnologijom preko .NET klijenta. Moemo kreirati primere .NET klasa i pozivati metode u cilju podeavanja i postizanja nekih osobina. Na ovaj nain korienje .NET u LabVIEW je slino korienju ActiveX automatizacije. Deljive biblioteke, DLL i CIN Za poveanje fleksibilnosti LabVIEW moe pozivati i kreirati spoljanje rutine koda (na primer, kod napisan u C++) kao deljive biblioteke i integrisati ove rutine u izvravanju programa. Deljiva biblioteka je biblioteka deljivih funkcija koje aplikacija moe povezati u toku izvravanja, umesto u toku kompajliranja. U Windows-u, deljive biblioteke se zovu biblioteke dinamikog linka (DLL). Moemo koristiti Call Library Function u LabVIEW za pozivanje deljive biblioteke. Moemo takoe podesiti da LabVIEW-u kompajlira njegove VI kao deljivu biblioteku koju drugi tipovi koda (na primer, C++) mogu koristiti. Deljive biblioteke na drugim (ne Windows) platformama nemaju ekstenziju .dll. Kao dodatak pozivanju deljivih biblioteka, LabVIEW moe takoe pozivati spoljanji kod korienjem specijalne strukture blok dijagrama zvane code interface node (CIN) za povezivanje konvencionalnog, tekstualnog koda sa VI. LabVIEW poziva kod kada se vor izvrava, proputajui ulazne podatke iz blok dijagrama tom kodu i vraajui podatke iz koda u blok dijagram. CIN se ponekad koristi kada se spoljanji kod ne uklapa valjano u strukturu deljive biblioteke. Takoe je vano zapamtiti da je CIN statiki povezan sa VI. CIN se ne moe menjati bez promene VI. (Ovo ne vai za deljive biblioteke, koje se jedino povezuju u toku izvravanja.) Takoe, VI koji koriste CIN nisu kompatibilni na razliitim platformama. Veina aplikacija nikada ne zahteva korienje CIN ili DLL. Mada LabVIEW kompajler moe obino generisati kod koji je dovoljno brz za veinu zadataka, CIN i DLL su korisni za neke zadatke koji su vremenski kritini, zahtevaju veliku manipulaciju podacima ili kada imamo ve napisan kod za neto. Korisni su za zadatke koje ne moemo direktno uraditi pomou blok dijagrama, kao to je pozivanje rutina operativnog sistema za ta ne postoje LabVIEW funkcije. Dodatni setovi alatki u LabVIEW Moemo koristiti sledee specijalne pridodate setove alatki u LabVIEW da bi poveali nau fleksibilnost i mogunosti. Neki od najvie korienih setova alatki su: Graditelj (builder) aplikacije, Set alatki za povezivanje, Set alatki za Internet, Set alatki za povezivanje baza podataka, SPC (statistika kontrola procesa) set alatki, Set alatki za analizu zvuka i vibracija, OpenG dodatak za LabVIEW, LabSQL, set alatki za besplatnu open source bazu podataka, LabVIEW Vision razvojni modul, Set alatki VI analizatora.

11

Drugi deo - Osnovni pojmovi o LabVIEW


Osnovni pojmovi: LabVIEW, NI Example Finder, G, Virtuelni instrument (VI), Protok podataka, Grafiki jezik, Prednji panel, Blok dijagram, Ikona, Konektor, Paleta sa alatima (toolbar), Hijerarhija. ta je LabVIEW i ta moe uiniti za nas? LabVIEW, skraenica za Laboratory Virtual Instrument Engineering Workbench, je programsko okruenje u kojem se programi kreiraju pomou grafike notacije (povezivanjem funkcionalnih vorova icama kroz koje protiu podaci); to ga razlikuje od tradicionalnih programskih jezika kao to su C, C++ ili Java, u kojima se programira tekstualno. On je interaktivni sistem za razvoj i izvravanje programa, projektovan za ljude kao to su naunici i inenjeri. LabVIEW razvojno okruenje radi na kompjuterima sa Windows, Mac ili Linux operativnim sistemom. Neki programi za koje bi trebalo sedmice ili meseci da bi se napisali korienjem konvencionalnih programskih jezika, mogu biti uraeni za nekoliko sati korienjem LabVIEW-a, zato to je on specifino projektovan za oblast merenja, analizu podataka i predstavljanje rezultata korisniku. Idealan je za simulacije, prezentaciju ideja, uopteno programiranje ili ak za uenje osnovnih koncepta programiranja. LabVIEW nudi vie fleksibilnosti od standardnih laboratorijskih instrumenata zato to je baziran na softveru. Mi, a ne proizvoa instrumenta, definiemo funkcionalnost instrumenta. Na kompjuter, ubaeni hardver i LabVIEW ine virtuelni instrument koji se kompletno moe konfigurisati u cilju ostvarenja naih zadataka. LabVIEW sadri biblioteke koda za specifinu primenu, kao to su za akviziciju podataka (DAQ), magistralu opte primene (GPIB - General Purpose Interface Bus) i serijsku kontrolu instrumenata, analizu podataka, prezentaciju podataka, smetanje podataka i komunikaciju preko Interneta. Protok podataka i grafiki programski jezik LabVIEW razvojno okruenje se razlikuje od standardnih C ili Java razvojnih sistema u jednom vanom aspektu: dok drugi sistemi programiranja koriste tekstualne jezike za kreiranje linija koda, LabVIEW koristi grafiki programski jezik, esto zvan "G", za kreiranje programa u slikovitom obliku nazvanom blok dijagram. Grafiko programiranje eliminie mnogo detalja sintakse vezanih za tekstualne jezike, kao to su stavljanje zareza i uglastih zagrada.

12

Slika 2.1 Korisniki interfejs

Slika 2.2 Grafiki kod Izvravanje u LabVIEW je bazirano na principu protoka podataka, po kome se funkcije izvravaju samo posle prihvatanja neophodnih podataka. Zbog ovih osobina, mi moemo nauiti LabVIEW ak i ako imamo malo ili nemamo iskustva sa programiranjem. Kako LabVIEW radi? LabVIEW program sadri jedan ili vie virtuelnih instrumenata (VI). Virtuelni instrumenti su tako nazvani jer njihovo pojavljivanje i rad esto imitira aktuelne fizike instrumente. VI ima tri glavna dela: prednji panel (front panel), blok dijagram (block diagram) i ikonu. Prednji panel je interaktivni korisniki interfejs VI-a, tako nazvan jer simulira prednji panel fizikog instrumenta. Prednji panel moe sadrati klizae, tastere, grafikone i mnoge druge kontrole (koje predstavljaju ulaze korisnika) i indikatore (koji predstvljaju izlaze

13

programa). Moemo unositi podatke korienjem mia i tastature i zatim posmatrati dobijene rezultate na ekranu.

Slika 2.3 Prednji panel VI-a Blok dijagram je izvorni kod VI-a, konstruisan u LabVIEW grafikom programskom jeziku, G. Blok dijagram je aktuelni program koji se izvrava. Komponente blok dijagrama su VI nieg nivoa, ugraene funkcije, konstante i strukture za kontrolu izvravanja programa. Mi crtamo ice u cilju povezivanja odgovarajuih objekata da bi definisali protok podataka izmeu njih. Objekti na prednjem panelu imaju odgovarajue terminale u blok dijagramu tako da podaci mogu prolaziti od korisnika ka programu i nazad do korisnika.

Slika 2.4 Blok dijagram VI-a Da bi koristili VI kao podprogram u blok dijagramu drugog VI, moramo imati ikonu sa konektorom. VI koji se koristi u okviru drugog VI se zove subVI i analogan je podprogramu. Ikona je slikovito predstavljanje VI i koristi se kao objekat u blok dijagramu drugog VI. Konektor VI je mehanizam koji se koristi za povezivanje podataka sa VI u okviru drugih blok dijagrama kada se VI koristi kao subVI. Slino kao parametri podprograma, konektor definie ulaze i izlaze VI-a.

Slika 2.5 Ikona (levo) i konektor (desno) VI-a

14

Virtuelni instrumenti su hijerarhijski i modularni. Mogu se koristiti kao programi najvieg nivoa ili kao podprogrami. Sa ovom arhitekturom, LabVIEW promovie koncept modularnog programiranja. Prvo, delimo aplikaciju na niz jednostavnih podzadataka. Potom gradimo VI za ostvarenje svakog podzadatka i zatim kombinujemo ove VI u blok dijagram najvieg nivoa da bi kompletirali neki vei (kompleksniji) zadatak. Modularno programiranje je pogodno jer se moe izvravati svaki subVI posebno, to olakava debagovanje. Dalje, mnogi subVI nieg nivoa esto izvravaju zadatke zajednike za nekoliko aplikacija i mogu se koristiti nezavisno od svake individualne aplikacije. Tabela 2.1 LabVIEW pojmovi i njihovi konvencionalni ekvivalenti LabVIEW Konvencionalni jezik VI program funkcija funkcija ili metoda subVI sabrutina, podprogram, objekat prednji panel korisniki interfejs blok dijagram kod programa G C, C++, Java, Pascal, BASIC, itd. Demonstracioni primeri Na poetku, da bi se dobila ideja kako LabVIEW radi, mogu se otvoriti i pokrenuti nekoliko postojeih LabVIEW programa. NI Example Finder LabVIEW sadri mnoge radne primere koji e nam pomoi u uenju optih tehnika programiranja i gledanju aplikacija koje ostvaruju opte ulazno/izlazne zadatke i zadatke koji se tiu obrade podataka. NI Example Finder je veoma korisna alatka koja e nam asistirati u traenju ovih primera. NI Example Finder se otvara odlaskom u Help meni i selektovanjem Find Examples...

Slika 2.6 NI Example Finder

15

Industry Applications folder sadri demonstracione i simulacione aplikacije, koje su idealne za poetak uenja LabVIEW-a. Postoji i Search tab za traenje po kljunoj rei. U Windows-u primerima se moe pristupiti direktno u LabVIEW instalacionom direktorijumu na putanji C:\Program Files\National Instruments\LabVIEW\examples Na primer, aplikacija The Temperature System Demo je locirana na putanji: C:\Program Files\National Instruments\LabVIEW\examples\apps\tempsys.llb\Temperature System Demo.vi Aktivnost 1-1: Temperature System Demo Otvoriti i pokrenuti VI koji se zove Temperature System Demo.vi pratei sledee korake: 1. Pokrenuti NI Example Finder. 2. U okviru Browse tab staviti da bude Browse according to: Task, i zatim nai folder "Industry Applications", u njemu podfolder "Analysis" i duplim klikom na "Temperature System Demo" otvoriti ga. 3. Videe se VI prikazan na slici 1.7.

Slika 2.7 Prednji panel Temperature System Demo.vi 4. Poeti sa izvravanjem VI-a klikom na Run dugme, locirano u paleti sa alatima koja se nalazi ispod menubar-a. Run dugme menja svoj izgled kako bi pokazalo da se VI izvrava. Druga dugmad na liniji sa alatima takoe mogu menjati izgled (ili nestati), jer se neka dugmad jedino mogu koristiti kada se VI izvrava (kao to je Abort dugme), a druga se mogu koristiti kada se VI ne izvrava (kao na primer ona koja se koriste za editovanje). Neaktivno run dugme Aktivno run dugme Abort dugme Abort dugme prekida izvravanje programa.

16

Temperature System Demo.vi simulira aplikaciju monitoringa temperature. VI generie merenja temperature i prikazuje ih na termometarskom indikatoru i na grafikonu. Mada su oitavanja simulirana u ovom primeru, moe se lako program modifikovati tako da se mere realne vrednosti. Update Period kliza kontrolie koliko brzo VI dobavlja nova temperaturna oitavanja. LabVIEW takoe iscrtava donju i gornju temperaturnu granicu na grafikonu; ove granice se mogu menjati korienjem Temperature Range obrtnih dugmadi. Ako je tekue oitavanje temperature izvan podeenog opsega, svetli LED dioda blizu termometra. VI nastavlja sa izvravanjem sve dok klikom ne postavimo Acquisition prekida na off. Takoe se moe ukljuivati i iskljuivati analiza podataka. Deo za statistiku (Statistics) pokazuje izraunatu srednju vrednost i standardnu devijaciju, dok Histogram prikazuje frekvenciju pojavljivanja svake vrednosti temperature. Menjanje vrednosti 5. Dok se VI izvrava kursor se menja u Operating tool kojom se mogu menjati vrednosti donje i gornje granice. Oznaavanje stare vrednosti se vri ili duplim klikom ili jednim klikom i prevlaenjem. Zatim se ukuca nova vrednost i klikne se na enter dugme, locirano do run dugmeta na paleti sa alatima. Takoe se mogu koristiti obrtni dugmii za promenu vrednosti granice. Operating tool 6. Update Period se menja postavljanjem Operating tool na kliza, zatim se klikom odvlai kliza na novu lokaciju. Takoe se moe pomou Operating tool kliknuti bilo gde na klizniku da bi kliza preao na tu lokaciju ili se moe uneti broj u digitalnom displeju klizaa. Enter dugme 7. Pokuati podesiti i druge kontrole na slian nain. 8. Zaustaviti VI klikom na prekida Acquisition. Ispitivanje blok dijagrama Blok dijagram predstavlja kompletnu LabVIEW aplikaciju. Ovde ne treba razumeti sve elemente blok dijagrama ve samo treba steknuti oseaj o prirodi blok dijagrama.

Slika 2.8 Blok dijagram Temperature System Demo.vi

17

9. Otvoriti blok dijagram za Temperature System Demo.vi izborom Window\Show Block Diagram ili preicom Ctrl + E. 10. Prouiti razliite objekte u prozoru dijagrama. 11. Otvoriti kontekstualni Help prozor izborom Show Context Help iz Help menija ili korienjem preice Ctrl + H. Pozicionirati kursor iznad razliitih objekata u blok dijagramu i posmatrati kako se menjaju opisi objekata u Help prozoru. Ako je objekat funkcija ili subVI Help prozor e dati opise ulaza i izlaza. Highlight Execution dugme 12. Pokrenuti izvravanje sa isticanjem detalja klikom na dugme Highlight Execution, tako da sijalica prelazi u aktivno stanje (svetli). Kada je ukljueno izvravanje sa isticanjem detalja, moemo posmatrati tok podataka kroz ice. Highlight Execution dugme (aktivno) Hijerarhija Snaga LabVIEW-a lei u hijerarhijskoj prirodi njegovih VI. Kada kreiramo VI moemo ga koristiti kao subVI u blok dijagramu VI-a vieg nivoa, a moemo imati onoliko nivoa hijerarhije koliko nam je potrebno. 13. Otvoriti Temperature Status subVI duplim klikom na njegovu ikonu. Temperature Status subVI Pojavljuje se prednji panel prikazan na slici 2.9.

Slika 2.9 Prednji panel Temperature Status subVI-a Ikona i konektor Ikona i konektor obezbeuju grafiko predstavljanje i definicije parametara potrebnih ako hoemo da koristimo VI kao sabrutinu ili funkciju u blok dijagramu drugih VI. Oni se nalaze u desnom gornjem uglu prozora prednjeg panela VI-a. Ikona grafiki predstavlja VI u blok dijagramu drugih VI, dok terminali konektora se koriste gde moramo povezati ulaze i izlaze. Ovi terminali su analogni parametrima sabrutina ili funkcije. Potreban je jedan terminal za svaku kontrolu ili indikator u prednjem panelu kroz koji elimo da 18

poaljemo podatke do VI-a. Ikona je iznad ablona konektora sve dok mi ne izaberemo da vidimo konektor.

Slika 2.10 Ikona i konektor ploa Temperature Status.vi Korienjem subVI mi pravimo modularne blok dijagrame kojima je lake rukovati. Ova modularnost ini VI lakim za odravanje, razumevanje i debagovanje. Sada pokreni VI najvieg nivoa tako da su istovremeno vidljivi i njegov prozor kao i prozor Temperature Status subVI-a. Zapaziti kako se vrednosti subVI-a menjaju svaki put kada se glavni program poziva na njega. 14. Selektovati Close iz File menija Temperature Status subVI-a. Nemoj pamtiti nikakve promene. 15. Selektovati Close iz File menija Temperature System Demo.vi i nemoj pamtiti nikakve promene. Aktivnost 1-2: Primer frekventnog odziva U ovom primeru se meri frekventni odziv nepoznate "crne kutije". Generator funkcija nam daje sinusoidalni ulaz za crnu kutiju (nagovetaj: sadri filter propusnik opsega, koji proputa samo odreene komponente signala). Digitalni multimetar meri izlazni napon crne kutije. Mada ovaj VI koristi subVI za simulaciju generatora funkcije i digitalnog multimetra, realni instrumenti se mogu lako povezati za realnu crnu kutiju kada bi dobili podatke iz realnog sveta. Tada bi mogli koristiti subVI za kontrolu akvizicije podataka, prenose GPIB, ili komunikaciju preko serijskog porta da bi dobili i slali realne podatke umesto to ih simuliramo. Treba otvoriti, pokrenuti i posmatrati VI u ovoj aktivnosti. 1. Pokrenuti NI Example Finder. 2. U okviru Browse tab staviti da bude Browse according to: Task, a zatim nai folder "Industry Applications", u njemu podfolder "Instrument Input and Output" i duplim klikom na "Frequency Response.vi" otvoriti ga. Ovaj primer se moe pronai u LabVIEW instalacionom direktorijumu na putanji examples\apps\freqresp.llb 3. Videemo VI prikazan na slici 2.11.

Slika 2.11 Prednji panel Frequency Response.vi 19

4. Pokrenuti VI klikom na run dugme. Moe se specificirati amplituda ulaznog sinusnog signala i broj koraka koji VI koristi pri nalaenju frekventnog odziva promenom kontrole Amplitude i kontrole Number of Steps, a zatim ponovo pokrenuti VI. Takoe se moe specificirati frekventna kriva unoenjem gornje i donje granice dugmiima Low Frequency i High Frequency. Eksperimentisati ovim kontrolama i posmatrati promene koje se javljaju na izlazu "crne kutije". Run dugme 5. Otvoriti i ispitati blok dijagram izborom Show diagram iz Window menija. 6. Zatvoriti VI selektovanjem Close u File meniju.

20

Trei deo LabVIEW okruenje


Uvod U ovom delu, ispitivae se LabVIEW VI i nauiti kako rade zajedno njegova tri dela: prednji panel, blok dijagram i ikona sa konektorom. Kada su sve tri komponente razvijene dobro, imamo VI koji moe da radi sam ili kao subVI u drugom programu. Nauie se LabVIEW okruenje: LabVIEW Project Explorer, klizei i skaui meniji, plivajue palete i podpalete, paleta sa alatima i kako koristiti pomo. Osnovni pojmovi: Kontrola, Indikator, ica, subVI, Express VI, Terminal, vor, Protok podataka, Skaui meniji, Paleta sa alatima, Paleta, Podpaleta, Help prozor. Prednji paneli Jednostavno reeno, prednji panel je prozor preko kojeg korisnik komunicira sa programom. Kada pokrenemo VI, moramo imati otvoren prednji panel tako da moemo unositi podatke u program koji se izvrava. Takoe emo uvideti da je prednji panel neophodan jer mi na njemu vidimo izlaze programa. Slika 3.1 prikazuje primer LabVIEW prednjeg panela.

Slika 3.1 LabVIEW prednji panel

21

Kontrole i indikatori Prednji panel je prvenstveno kombinacija kontrola i indikatora. Kontrole simuliraju tipine ulazne objekte koje moemo sresti kod konvencionalnog instrumenta, kao to su dugmii i prekidai. Kontrole omoguavaju korisniku da unosi vrednosti; one snabdevaju podacima blok dijagram VI-a. Indikatori pokazuju izlazne vrednosti dobijene programom. Razmotrimo sledea jednostavna razmiljanja o kontrolama i indikatorima: Kontrole = Ulazi za korisnike = Izvor podataka Indikatori = Izlazi za korisnike = Destinacije ili odvodni kanali podataka Smetamo kontrole i indikatore na prednji panel njihovim selektovanjem iz podpalete plivajueg prozora palete Controls i njihovim postavljanjem u eljenu taku. Kada je objekat u prednjem panelu moemo lako podeavati njegovu veliinu, oblik, poziciju, boju i druge osobine. Blok dijagrami Prozor blok dijagrama sadri grafiki izvorni kod LabVIEW VI-a. Blok dijagram LabVIEW-a, koji odgovara linijama teksta koje nalazimo u konvencionalnijem jeziku kao to je C ili BASIC, predstavlja aktuelni izvrni kod. Blok dijagram sastavljamo povezivanjem objekata koji obavljaju specifine funkcije. Jednostavan VI prikazan na slici 3.2 izraunava zbir dva broja. Njegov dijagram na slici 3.3 prikazuje primere terminala, vorova i ica.

Slika 3.2 Prednji panel Add.vi koji sadri kontrole za unoenje podataka i indikatore za prikazivanje podataka

Slika 3.3 Blok dijagram Add.vi koji sadri terminale, vorove i ice (funkcionalni izvorni kod)

22

Kada smestimo kontrolu ili indikator na prednji panel, LabVIEW automatski kreira odgovarajui terminal u blok dijagramu. Podeeno je da ne moemo izbrisati terminal u blok dijagramu koji pripada kontroli ili indikatoru. Terminal nestaje samo kada izbriemo njegovu odgovarajuu kontrolu ili indikator na prednjem panelu. Terminali kontrola imaju debelu ivicu i strelicu sa desne strane, dok terminali indikatora imaju tanku ivicu i strelicu sa leve strane. Moemo razmiljati o terminalima kao o ulaznim i izlaznim portovima u blok dijagramu, ili kao o izvorima i destinacijama. Podatak koji unesemo pomou Numeric Control 1 (prikazano na slici 3.4) naputa prednji panel i ulazi u blok dijagram preko terminala Numerical Control 1 u dijagramu. Podaci iz Numeric Control 1 prate icu i dolaze do ulaznog terminala Add funkcije. Kada su podaci dostupni na oba ulazna terminala Add funkcije, ona izvrava svoja interna izraunavanja, dajui novu vrednost podatka na njenom izlaznom terminalu. Izlazni podatak tee do terminala Numeric Indicator i odlazi u prednji panel, gde se prikazuje korisniku.

Slika 3.4 Blok dijagram sa terminalom kontrole (ulaz/izvor), terminalom indikatora (izlaz/odvodni kanal) i icom kroz koju teku podaci Prikazati terminale kao ikone Terminali blok dijagrama imaju opciju View As Icon (dostupna iz njihovog skaueg menija), koja omoguuje da izgledaju kao ikone. Terminal koji izgleda kao ikona je vei i sadri ikonu koja reflektuje tip terminala kontrole u prednjem panelu. Sa iskljuenom opcijom View As Icon, terminal e biti kompaktniji i vie preovlauje prikazivanje tipa podataka. Funkcionalnost je ista za oba sluaja. Slika 3.5 prikazuje terminale nekoliko razliitih kontrola prednjeg panela sa selektovanom opcijom View As Icon (prvi red) i sa deselektovanom opcijom (drugi red).

Slika 3.5 Terminali sa ukljuenom (prvi red) i iskljuenom (drugi red) opcijom View As Icon Ovo podeavanje je dostupno za svaki terminal na blok dijagramu. vorovi vor je samo elegantna re za elemenat izvravanja programa. vorovi su analogni stanjima, operatorima, funkcijama i podprogramima u standardnim programskim jezicima. Add i Substract funkcije predstavljaju jedan tip vora. Struktura je drugi tip vora. Strukture omoguavaju izvravanje koda ponavljanjem ili uslovno, slino petljama i uslovnim stanjima u tradicionalnim programskim jezicima. LabVIEW takoe ima specijalne vorove, nazvane Formula Nodes, koji su korisni za izraunavanje matematikih formula i izraza. Dodatno, LabVIEW ima veoma specijalizovane vorove nazvane Event Structures koji mogu loviti dogaaje koje definiu korisnik i prednji panel.

23

ice LabVIEW VI se spaja u celinu povezivanjem vorova i terminala pomou ica. ice su putanje podataka izmeu izvornih i destinacionih terminala; one isporuuju podatke od jednog izvornog terminala do jedan ili vie destinacionih terminala. Ako poveemo nijedan ili vie od jednog izvora icom, LabVIEW se ne slae sa naim postupkom i ica e se pojaviti kao prekinuta, poto ica moe imati samo jedan izvor podataka i vie odvodnih kanala podataka. Svaka ica ima razliitu boju, zavisno od tipa podataka koji protie kroz icu. Blok dijagram prikazan na slici 3.3 prikazuje stil ice za numeriku skalarnu vrednost kao tanku punu liniju. Grafik na slici 3.6 prikazuje nekoliko ica i odgovarajue tipove.

Slika 3.6 Osnovni stilovi ica koji se koriste u blok dijagramima Programiranje zasnovano na protoku podataka Zato to LabVIEW nije tekstualni jezik, njegov kod se ne moe izvravati linija po linija. Princip koji upravlja izvravanjem G programa se zove protok podataka. Prosto reeno, vor se izvrava samo kada stignu podaci na sve njegove ulazne terminale; vor snabdeva podacima sve njegove izlazne terminale kada zavri sa izvravanjem; a podaci prolaze odmah od izvora do destinacionih terminala. Princip protoka podataka se razlikuje znaajno od metode kontrolisanog protoka u toku izvravanja tekstualnog programa, u kojem se instrukcije izvravaju po redosledu kako su napisane. Ova razlika moe biti shvaena i kao odreeni napredak. Kako je tradicionalni tok izvravanja programa voen instrukcijama, izvravanje principom protoka podataka je voeno podacima ili zavisno od podataka. LabVIEW projekti LabVIEW projekti nam omoguavaju da organizujemo VI i druge LabVIEW fajlove kao i fajlove koji nisu LabVIEW, kao to je dokumentacija na primer. Kada memoriemo projekat, LabVIEW kreira projektni fajl (.lvproj). Pored pamenja informacija o fajlovima koje sadri projekat, projektni fajl pamti i konfiguraciju, izgradnju i razvoj projekta. Projekat nam nije potreban ako elimo kreirati jedan ili dva VI ili kada nas vie interesuje sakupljanje i analiza podataka. Prozor Project Explorer Prozor Project Explorer slui prilikom kreiranja i editovanja LaBVIEW projekata. Slika 3.7 prikazuje prazan projekat. Prazan projekat se moe kreirati selektovanjem File>>New... iz menija i izborom Empty Project u dijalog boksu.

Slika 3.7 Prozor Project Explorer koji prikazuje novi, prazan LabVIEW projekat 24

Projekat se pojavljuje kao drvo sa nekoliko ajtema. Prvi ajtem pokazuje ime projektnog fajla i sadri sve projektne ajteme. Sledei ajtem je My Computer, koji predstavlja lokalni raunar. Lokalni raunar je mesto gde e VI biti razvijani. Umesto njega moe biti LabVIEW RT kontroler, PDA i LabVIEW FPGA ureaj, a biramo desnim klikom na root projekta i selektovanjem New>>Targets and Devices iz menija. Ispod My Computer nalaze se Dependencies i Build Specifications. Dependencies su ajtemi koje VI zahteva u projektu. Build Specifications su pravila koja definiu kako e aplikacija biti razvijana. Palete sa alatima Project Explorer-a Project Explorer ima nekoliko paleta sa alatima koje nam omoguavaju lako izvravanje uobiajenih operacija. To su palete sa alatima Standard, Project, Build i Source Control, kao to je prikazano na slici 3.8 (respektivno, s leva na desno).

Slika 3.8 Palete sa alatima Project Explorer-a Moemo izabrati koja e paleta biti vidljiva iz View>>Toolbars menija ili desnim klikom na paletu i izborom eljene palete iz skaueg menija koji se pojavljuje (vidi sliku 3.9).

Slika 3.9 Skaui meni palete koji pokazuje koje palete su vidljive (ekirane) Dodavanje ajtema u projekat Moemo dodati ajteme u projekat, ispod My Computer. Moemo takoe kreirati foldere, za bolju organizaciju ajtema u projektu. Postoji nekoliko naina dodavanja ajtema u projekat. Skaui meni je verovatno najlaki nain dodavanja VI i kreiranja novih foldera, kao to je prikazano na slici 3.10.

Slika 3.10 Dodavanje novog VI-a u LabVIEW projekat iz skaueg menija My Computer-a u Project Explorer-u Moemo dodavati ajteme iz skaueg menija, ali najlaki nain je prevlaenjem ajtema ili direktorijuma iz diska u Project Explorer-u, kao to je prikazano na slici 3.11.

Slika 3.11 Prevlaenje i isputanje prilikom dodavanja VI u projekat 25

Folderi projekta Folderi projekta se koriste za organizaciju projektnih fajlova. Na primer, ako trebamo kreirati folder za subVI-e i drugi folder za projektnu dokumentaciju, kao to je prikazano na slici 3.12.

Slika 3.12 Project Explorer koji prikazuje foldere projekta koji se koriste za organizaciju projektnih fajlova Folderi projekta su virtuelni, to znai da oni nee uvek predstavljati foldere na disku. Uklanjanje ajtema iz projekta Ajtemi se mogu ukloniti iz projekta desnim klikom na ajtem u Project Explorer-u i selektovanjem Remove iz skaueg menija, kao to je prikazano na slici 3.13. Uklanjanje ajtema iz projekta ne brie odgovarajui ajtem na disku.

Slika 3.13 Uklanjanje ajtema iz projekta korienjem skaueg menija SubVI, ikona i konektor subVI se jednostavno odnosi na VI koji poziva drugi VI. Bilo koji VI se moe konfigurisati da radi kao subVI. Na primer, recimo da smo kreirali VI koji se zove Mean.vi koji rauna srednju vrednost niza. Moemo uvek pokrenuti Mean.vi iz njegovog prednjeg panela (pritiskom run dugmeta), ali moemo takoe konfigurisati Mean.vi tako da ga drugi VI mogu pozivati kao funkciju u njihovim blok dijagramima (oni pozivaju Mean.vi kao subVI). Kada na VI radi kao subVI njegove kontrole i indikatori primaju i vraaju podatke VI-u koji ga poziva. Ikona reprezentuje VI kao subVI u blok dijagramu drugog VI-a. Ikona moe ukljuiti slikovito predstavljanje ili mali tekstualni opis VI-a, ili kombinaciju oba. Konektor VI-a funkcionie vie kao lista parametara prilikom pozivanja funkcije u C ili Pascalu; terminali konektora deluju kao grafiki parametri za slanje podataka ka ili iz subVI. Svaki terminal odgovara sopstvenoj kontroli ili indikatoru na prednjem panelu. Za vreme pozivanja subVI, terminali ulaznih parametara se kopiraju na povezane kontrole, i subVI se izvrava. Po zavretku, vrednosti indikatora se kopiraju na terminale izlaznih parametara.

26

Slika 3.14 Ikona i konektor koji je ispod nje Svaki VI ima na poetku univerzalnu ikonu, koja je prikazana na mesto ikone u gornjem desnom uglu prozora panela i dijagrama. Univerzalna ikona je prikazana na slici 3.15.

Slika 3.15 Pozicija ikone VI-a u gornjem desnom uglu prednjeg panela VI-a Konektor VI-a je sakriven ispod ikone; njemu se pristupa izborom Show Connector iz padajueg menija ikone prednjeg panela. Kada prikaemo konektor po prvi put LabVIEW predlae ablon konektora koji ima 12 terminala (est sa leve strane kao ulazi i est sa desne strane kao izlazi). Poetno podeen (default) konektor je prikazan na slici 3.16. Moemo selektovati razliit ablon ako elimo, a moemo dodeliti do 28 terminala.

Slika 3.16 ablon konektora VI-a u gornjem desnom uglu prednjeg panela VI-a Aktivnost 3-1: VI za generisanje sluajnog broja Pokrenimo LabVIEW da bi kroz par koraka kreirali jednostavan LabVIEW VI koji generie sluajan broj i prikazuje njegovu vrednost na dijagramu. 1. Pokreni LabVIEW. 2. U poetnom dijalogu LabVIEW-a klikni Blank VI da bi kreirali novi blanko VI. Jedan prednji panel Untitled 1 VI-a e se pojaviti na ekranu. Odi do plivajue palete Controls i nai podpaletu Moder>>Graph, prikazanu na slici 3.17. Ako paleta Controls nije vidljiva selektuj View>>Controls Palette iz menija da bi je uinili vidljivom. Takoe, budi siguran da je aktivan prednji panel.

Slika 3.17 Modern>>Graph paleta koja prikazuje Waveform Chart i razliite druge grafikone i dijagrame 27

Na podpaleti Graph selektuj Waveform Chart klikom na njega miem. Positioning tool Videemo okvirnu liniju chart-a kada ga drimo kursorom, kao to je prikazano na slici 3.18. Pozicionirajmo kursor na eljeno mesto u prednjem panelu i kliknimo. Chart se pojavljuje na tom mestu kao to je pokazano na slici 3.19. Ako ga elimo pomeriti selektujmo Positioning tool iz palete alatki i onda vuemo chart na novu poziciju. Ako paleta alatki nije vidljiva selektujmo View>>Tools Palette iz menija.

Slika 3.18 Waveform Chart posle njegovog prevlaenja na prednji panel (a pre nego to je isputen)

Slika 3.19 Waveform Chart posle njegovog isputanja na prednji panel 3. Vratiti se u Modern podpaletu; otii do Boolean podpalete i izabrati Stop dugme (vidi sliku 3.20).

Slika 3.20 Modern>>Boolean paleta prikazuje Stop dugme i druge Boolean kontrole i indikatore Smestiti ga blizu chart-a, kao to je prikazano na slici 3.21.

28

Slika 3.21 Izgled prednjeg panela VI-a posle dodavanja Waveform Chart i Stop dugmeta 4. Sada promenimo opseg skale Y-ose chart-a od -10 do +10 u opseg od 0 do 1. Oznaimo broj 10 klikom i prevlaenjem ili duplim klikom na njega pomou Text Edit alatke. Sada ukucajmo 1.0 i kliknimo na enter dugme koje se pojavljuje u paleti sa alatima na vrhu prozora. Promenimo na slian nain i -10 u 0. Enter dugme 5. Preimo na blok dijagram selektovanjem Show Block Diagram iz menija Window. Trebamo videti dva terminala koji su ve tu, kao to je prikazano na slici 3.22.

Slika 3.22 Blok dijagram VI-a koji pokazuje terminale Stop dugmeta i Waveform Chart-a 6. Sada emo smestiti terminale unutar While Loop da bi ponavljali izvravanje segmenta naeg programa. Odimo na podpaletu Programming>>Structures plivajue palete Functions i selektujmo While Loop (vidi sliku 3.23). Budimo sigurni da je aktivan blok dijagram.

Slika 3.23 Programming>>Structures paleta prikazuje While Loop i druge LabVIEW strukture 29

Kursor e se promeniti u ikonu u vidu male petlje. Sada obuhvatimo terminale DBL i TF: kliknimo i drimo dugme mia dok vuemo kursor iz gornjeg levog ka donjem desnom uglu objekata koje elimo da obuhvatimo (vidi sliku 3.24).

Slika 3.24 Vuenje kursora mia u cilju smetanja While Loop na blok dijagramu oko regiona gde se nalazi kod Kada pustimo dugme mia isprekidana linija e se promeniti u okvir While Loop (vidi sliku 3.25). Ostaviti malo ekstra prostora unutar petlje.

Slika 3.25 While Loop koja sadri kod koji je obuhvaen prevuenim regionom 7. Odimo do palete Functions i selektujmo Random Number (0-1) iz podpalete Programming>>Numeric. Smestimo ga unutar While Loop. While Loop je specijalna LabVIEW struktura koja ponavlja kod unutar njenih granica dok uslovni terminal ne oita vrednost TRUE (kada je konfigurisan u Stop if True, pojavljuje se kao mali crveni stop znak ). Ekvivalentna je Do-While petlji u konvencionalnijem jeziku. Moe se uslovni terminal While Loop konfigurisati kao Continue if True (pojavljuje se kao mala zelena petlja ), iz njegovog skaueg menija ili klikom na njega pomou Operating alatke. 8. Pomou Positioning alatke uredimo objekte na dijagramu tako da izgleda kao blok dijagram na slici 3.26.

Slika 3.26 Blok dijagram posle smetanja funkcije Random Number (0-1) 9. Pomou Wiring alatke kliknimo jednom na ikonu Random Number (0-1), prevuimo mi do terminala Waveform Chart i kliknimo ponovo (vidi sliku 3.27). Wiring alatka

30

Slika 3.27 Blok dijagram koji prikazuje kako razvlaimo icu od Random Number (01) funkcije do terminala Waveform Chart Trebamo sada da imamo punu narandastu icu koja povezuje dve ikone kao to je prikazano na slici 3.28. Ako smo pogreili moemo selektovati icu ili deo ice pomou Positioning alatke i zatim pritisnuti <delete> dugme. Sada poveimo Boolean TF terminal za uslovni terminal While Loop.

Slika 3.28 Blok dijagram posle povezivanja icom 10. Spremimo se da pokrenemo VI. Prvo preimo na prednji panel selektovanjem Show Front Panel iz menija Window. Sada kliknimo na run dugme da bi pokrenuli VI. Videemo niz sluajnih brojeva nacrtanih kontinualno na grafiku (chart-u). Kada elimo da ga zaustavimo kliknimo stop Boolean dugme korienjem Operating alatke (vidi sliku 3.29).

Slika 3.29 Prednji panel posle pritiska run dugmeta

31

11. Kreirajmo direktorijum ili folder nazvan Ime i Prezime studenta na pogodnu lokaciju. Sauvajmo VI u naem folderu selektovanjem Save iz File menija i usmeravanjem na lokaciju za uvanje. Nazovimo ovaj VI kao Random Number.vi. Mrea za ravnanje objekata u prednjem panelu U prethodnom primeru, verovatno ste primetili linije mree na prednjem panelu VI-a i injenicu da se waveform chart i stop kontrola lepe za linije mree kako ih pokreemo miem oko njih. Ova mogunost je korisna za ravnanje objekata na prednjem panelu. Ako ne elimo ovu mogunost moemo je iskljuiti u LabVIEW Options dijalogu. (Slika 3.30 i 3.31 pokazuju prednji panel VI-a sa ukljuenom mogunou mree za ravnanje i iskljuenom.) Otvoriti options dijalog selektovanjem Tools>>Options... iz menija. Podesiti kategoriju Alignment Grid. Odavde moemo odabrati da pokaemo i sakrijemo linije mree i da ukljuimo i iskljuimo mreu za ravnanje.

Slika 3.30 VI sa ukljuenom opcijom mree za ravnanje

Slika 3.31 VI sa iskljuenom opcijom mree za ravnanje

32

Padajui meniji Imajmo na umu da su mogunosti LabVIEW-a mnoge i raznovrsne. LabVIEW ima dva glavna tipa menija: padajui i skaui. Moe biti korisno da gledate menije na raunaru kako ih nadalje objanjavamo i da moda malo eksperimentiete. Padajui meniji sadre mogunosti (naredbe) zajednike za mnoge aplikacije, kao to su Open, Save, Copy i Paste, i mnoge druge funkcije vezane samo za LabVIEW. Mnogi meniji imaju mogunost izbora korienja preice u vidu kombinacije tastera. Mogu se menjati preice menija u dijalogu Tools>>Options u sekciji Menu Shortcuts. File meni Padajui File meni (vidi sliku 3.32) sadri komande zajednike za mnoge aplikacije, kao to su Save i Print. Moemo takoe kreirati nove VI ili otvoriti neke postojee iz File menija. Dodatno moemo prikazati informacije o osobinama VI i istoriju razvoja iz ovog menija.

Slika 3.32 File meni Edit meni Pogledajmo Edit meni (vidi sliku 3.33). Ima neke univerzalne komande, kao to su Undo, Cut, Copy i Paste. Moemo takoe traiti objekte pomou Find i Replace...komande i uklanjati loe ice iz blok dijagrama.

Slika 3.33 Edit meni 33

View meni U meniju View (vidi sliku 3.34) videemo opcije za otvaranje paleta Controls, Functions i Tools ako su bile zatvorene. Takoe moemo prikazati listu greaka i videti hijerarhiju VI. Podmeni Browse Relationships sadri mogunosti za pojednostavljanje navigacije izmeu velikih grupa VI.

Slika 3.34 View meni Project meni Project meni (vidi sliku 3.35) omoguuje otvaranje LabVIEW projekta ili kreiranje novog projekta kao i rad na projektu kome aktivni VI pripada. Ako aktivni VI ne pripada nijednom LabVIEW projektu, samo e biti omoguene opcije Open Project i New Project.

Slika 3.35 Project meni Operate meni Moemo pokrenuti ili stopirati na program iz menija Operate (vidi sliku 3.36), mada obino koristimo dugmie palete sa alatima. Moemo takoe menjati inicijalne (default) vrednosti VI-a, kontrolisati mogunosti print and log at completion, prebacivati se iz moda run u edit mod.

Slika 3.36 Operate meni

34

Tools meni Meni Tools (vidi sliku 3.37) omoguava nam pristup ugraenim i dodatim alatima i servisima koji rade sa LabVIEW-om, kao to su Measurement & Automation Explorer, gde konfiguriemo nae DAQ ureaje ili Web Publishing Tool za kreiranje HTML stranica iz LabVIEW. Moemo videti i menjati mnotvo opcija u LabVIEW...

Slika 3.37 Tools meni Window meni Otvoriti meni Window (vidi sliku 3.38). Ovde moemo prelaziti izmeu prozora prednjeg panela i blok dijagrama, namestiti (tile) da ih vidimo istovremeno, prelaziti izmeu otvorenih VI.

Slika 3.38 Window meni Help meni Moemo prikazati, sakriti ili zakljuati sadraj prozora Context Help korienjem Help menija (vidi sliku 3.39). Moemo takoe pristupiti LabVIEW online informacijama i videti informacioni prozor About LabVIEW.

Slika 3.39 Help meni

35

Plivajue palete LabVIEW ima tri esto koriene plivajue palete koje moemo smestiti na pogodnom mestu na naem ekranu: palete Tools, Controls i Functions. Moemo ih pomerati klikom na njihov title bar i vuenjem. Palete Controls i Functions Paletu Controls (slika 3.40) emo dosta koristiti jer tu biramo kontrole i indikatore koje elimo na naem prednjem panelu. Verovatno emo paletu Functions koristiti ee, jer sadri funkcije i strukture koje se koriste za izgradnju VI-a.

Slika 3.40 Paleta Controls Paleta Controls je jedino vidljiva kada je aktivan prednji panel, dok je paleta Functions jedino vidljiva kada je aktivan blok dijagram. Obe palete sadre podpalete sa objektima. Da bi selektovali objekat u podpaleti kliknemo miem preko objekta i zatim kliknemo na prednji panel ili blok dijagram da bi ga smestili gde elimo. Imamo nekoliko kategorija podpaleta, kao to su Modern, System, Classic, Express, Addons, Favorites i druge. Kategorija Favorites, koja je prisutna samo u paleti Functions, omoguava nam da grupiemo objekte koje esto koristimo. To radimo tako to desnim klikom na objekat selektujemo Add Item to Favorites iz menija. Moemo izabrati kategorije koje elimo da se pojavljuju u paletama Controls ili Functions pritiskom na dugme View i zatim selektovanjem kategorija iz podmenija Always Visible Categories (vidi sliku 3.41).

Slika 3.41 Podmeni Always Visible Categories palete View dugmeta Meutim, mi moemo privremeno prikazati sve kategorije klikom na duplu strelicu usmerenu nanie na dnu palete, kao to je prikazano na slici 3.42. Moemo ponovo sakriti ove kategorije klikom na duplu strelicu usmerenu navie na dnu palete, kao to je prikazano na slici 3.43. 36

Slika 3.42 Paleta Functions sa jedino vidljivim kategorijama always visible

Slika 3.43 Paleta Functions sa vidljivim svim kategorijama Nain navigacije u paleti se moe promeniti izborom razliitog View formata palete. Pritiskom dugmeta View na vrhu palete e se otvoriti meni. U podmeniju View This Palette As moemo izabrati est razliitih View formata, kao to je prikazano na slici 3.44.

Slika 3.44 Podmeni View This Palette As menija View dugmeta prikazuje trenutno selektovan (ekiran) view format palete Sledei View formati su dostupni: Category (Standard) je prepodeeni View format. Category (Icons and Text), prikazan na slici 3.45, je slian Category (Standard), osim to se svako ime ajtema pojavljuje ispod njegove ikone.

Slika 3.45 View format palete Category (Icons and Text)

37

Icons, prikazan na slici 3.46, je format koji najvie lii na one u prethodnim verzijama LabVIEW-a. Svaka podpaleta i ajtem su predstavljeni ikonom. Kada miem preemo preko ajtema, njegovo ime se pojavljuje na vrhu palete.

Slika 3.46 View format palete Icons Icons and Text, prikazan na slici 3.47, je slian Icons, osim to se ime svakog ajtema pojavljuje direktno ispod njegove ikone.

Slika 3.47 View format palete Icons and Text Text, prikazan na slici 3.48, je minimalan. Ponaa se kao formati Icons i Icons and Text, gde klikom na podpaletu vrimo navigaciju ka toj podpaleti. Podpalete su predstavljene folderima sa imenima, a ajtemi su predstavljeni njihovim imenom.

Slika 3.48 View format palete Text Tree, prikazan na slici 3.49, je takoe minimalan, koji ima samo ikone foldera i imena ajtema. Meutim, ponaa se kao Category fomati, koji imaju hijerarhiju u vidu drveta.

Slika 3.49 View format palete Tree 38

View formati palete Icons, Icons and Text i Text imaju up dugme (vidi sliku 3.50) koje nas vraa na prethodnu paletu kada se pritisne. Moemo vriti pretragu za odreenim objektom u paleti klikom na ikonu Search.

Slika 3.50 Dugmii na vrhu svake palete se koriste za navigaciju i konfiguraciju Paleta alatki Alatka je specijalni radni mod kursora mia. Koristimo alatke da bi izvrili specifine funkcije rada i editovanja. Paleti alatki se pristupa (slika 3.51) iz menija View>>Tools Palette. Iz ove palete moemo selektovati i konfigurisati alatke.

Slika 3.51 Paleta alatki Automatic Tool Selection omoguuje automatski izbor najprikladnije alatke iz palete alatki, zavisno od lokacije naeg kursora u odnosu na objekat kojim manipuliemo. Moemo iskljuiti automatski izbor alatki klikom na dugme Automatic Tool Selection u paleti alatki (slika 3.51). Automatic Tool Selection Operating tool omoguuje nam promenu vrednosti kontrola i indikatora na prednjem panelu. Moemo raditi sa dugmiima, prekidaima i drugim objektima sa ovom alatkom. Kada je VI pokrenut ili u run modu ova alatka je jedino dostupna na prednjem panelu. Operating tool Positioning tool selektuje, pomera i menja dimenzije objekata. Positioning tool Labeling tool kreira i edituje labele teksta. Labeling tool Wiring tool povezuje objekte icom u blok dijagramu. Takoe se koristi za dodeljivanje kontrola i indikatora u prednjem panelu terminalima VI konektora. Wiring tool 39

Color tool boji objekte i pozadine omoguujui nam da biramo izmeu mnotva nijansi boja. Color tool Pop-up tool otvara skaui meni objekta kada kliknemo na objekat. Skauem meniju se moe pristupiti i desnim klikom mia. Pop-up tool Scroll tool omoguuje nam da klizimo po aktivnom prozoru. Sroll tool Breakpoint tool postavlja take prekida na dijagramu VI-a koje nam pomau da debagujemo na kod. One uzrokuju suspenziju izvrenja tako da moemo videti ta se dogaa i menjati ulazne vrednosti ako je potrebno. Breakpoint tool Probe tool kreira sonde na icama tako da moemo videti protok podataka kroz njih u toku rada VI-a. Probe tool Color Copy tool kopira boju sa postojeeg objekta koju zatim moemo koristiti za postavljanje na drugi objekat. Ova tehnika je korisna kada hoemo da dupliramo neku odreenu nijansu boje, a ne moemo da se setimo koja je tano. Color Copy tool Ako LabVIEW opcija Lock Automatic Tool Selection nije aktivna, moemo koristiti <tab> dugme za menjanje alatki umesto klika na paletu alatki. Toolbar Toolbar lociran pri vrhu LabVIEW prozora, sadri dugmie koje koristimo za kontrolu izvravanja VI-a, kao i opcije konfigurisanja teksta i komande za kontrolu poravnanja i distribucije objekata. Primetiti da toolbar ima nekoliko opcija vie u blok dijagramu nego u prednjem panelu, a neke opcije vezane za editovanje nestaju kada pokrenemo VI. Slika 3.52 Toolbar Run dugme Run dugme (aktivno) Run dugme (slomljeno) Run dugme, koje izgleda kao strela, poinje izvravanje VI-a kada kliknemo na njega. Ono menja izgled u aktivno stanje kada VI u toku izvravanja. Kada se VI ne moe kompajlirati run dugme se pojavljuje kao slomljeno. Kontinualno run dugme 40

Kontinualno run dugme omoguuje da se VI izvrava non-stop dok ne pritisnemo stop dugme. Abort dugme Abort dugme, lako prepoznatljivo jer lii na znak stop, postaje aktivno kada VI pone da se izvrava; inae nije aktivno, u senci je. Moemo kliknuti na ovo dugme da zaustavimo VI. Dugme za pauzu Dugme za pauzu pauzira VI tako da moemo koristiti jednokoranu opciju debagovanja kao to step into, step over i step out. Pritisnuti dugme za pauzu ponovo da bi nastavili sa izvravanjem. Dugme step into Dugme step over Dugme step out Jednokorana dugmeta Step into, Step over i Step out prisiljavaju VI da se izvrava korak po korak tako da se mogu uvideti i otklanjati problemi. Dugme za isticanje detalja prilikom izvravanja Dugme za isticanje detalja prilikom izvravanja uzrokuje da VI naglaava protok podataka na dijagramu. Kada je ukljueno mogu se videti trenutne vrednosti podataka na naem blok dijagramu koje se drugaije ne pojavljaju. Zadrane vrednosti ice Dugme za zadrane vrednosti ice uzrokuje da se vrednost koja protie kroz icu memorie poslednji put kada je VI izvren. Ovo je veoma korisno za debagovanje. Moemo videti zapamenu vrednost smetanjem sonde na icu. Dugme upozorenja Dugme upozorenja se pojavljuje ako smo konfigurisali VI da pokazuje upozorenja i ako imamo neka tekua upozorenja. Moemo pregledati upozorenja klikom na dugme. Upozorenja nisu greka; oni samo alarmiraju da radimo neto to moda nismo nameravali da radimo (na primer, ako postoje objekti na blok dijagramu koji su sakriveni iza drugih objekata i ne mogu se videti). Moemo menjati font, veliinu, stil, poravnanje i boju teksta u LabVIEW pomou dugmeta Text Settings (vidi sliku 3.53). Slika 3.53 Dugme Text Settings LabVIEW ima automatski mehanizam poravnanja da nam pomogne u rasporeivanju ikona. Selektujemo objekte koje elimo poravnati njihovim grupisanjem pomou Positioning tool, zatim odemo do dugmeta Align Objects u toolbar-u i izaberemo nain poravnanja. Ako elimo jednak razmak izmeu objekata koristimo dugme Distribute Objects na slian nain (slika 3.54). Slika 3.54 Dugmii Align Objects i Distribute Objects

41

Za promenu dimenzije vie objekata na istu veliinu, koristiti dugme Resize Object (vidi sliku 3.55). Moemo promeniti dimenziju do maksimalne visine i/ili irine, ili minimalne visine i/ili irine, ili moemo eksplicitno podesiti vrednosti irine i visine korienjem opcije Set Width and Height u podmeniju Resize Objects. Slika 3.55 Dugme Resize Objects Na slian nain LabVIEW omoguava nam da grupiemo objekte zajedno da bi ih tretirali kao jedna kontrola za svrhe grafikog editovanja, ili moemo specificirati koji objekat je ispred a koji iza. Ovo moemo raditi sa dugmetom Reorder Objects. Slika 3.56 Dugme Reorder Objects Skaui meniji Ovde emo razmatrati skaue menije koji se koriste ee od ostalih LabVIEW menija. Da bi otvorili skaui meni nekog objekta kliknemo na njega desnim klikom. Ili moemo kliknuti na objekat pop-up alatkom. Skaui meni e se pojaviti kao na slici 3.57. Opcije dostupne u skauem meniju zavise od vrste objekta i razlikovae se od sluaja da li je VI u edit ili run modu.

Slika 3.57 Skaui meni Osobine skaueg menija Mnogi ajtemi skaueg menija se ire u podmenije koji se zovu hijerarhijski meniji, oznaeni strelicom na desno (vidi sliku 3.58).

Slika 3.58 Podmeni skaueg menija Skaui meniji omoguavaju nam specificiranje mnogih osobina objekta. Opcije koje se pojavljuju u mnogim skauim menijima su prikazane na slici 3.59.

42

Slika 3.59 Skaui meni kontrole na prednjem panelu Vidljivi ajtemi (Visible items) Mnogi ajtemi imaju meni Visible Items pomou kojeg moemo prikazati ili sakriti odreene kozmetike osobine kao to su labele, kratki opisi, klizai ili terminali za oiavanje. Opcija koja se trenutno vidi je ekirana sa strane. Nai terminal i nai kontrolu/indikator (Find Terminal and Find Control/Indicator) Ako selektujemo Find Terminal iz skaueg menija prednjeg panela, LabVIEW e locirati i oznaiti njegov odgovarajui terminal u blok dijagramu. Ako selektujemo Find Control/Indicator u skauem meniju blok dijagrama, LabVIEW e prikazati njegov odgovarajui objekat u prednjem panelu. Preica za ovu funkciju je dupli klik. Promena u kontrolu i Promena u indikator (Change to Control and Change to Indicator) Selektovanjem Promena u kontrolu, moemo transformisati postojeu kontrolu (ulazni objekat) u indikator (izlazni objekat), ili obrnuto ako selektujemo Promena u indikator. Kada je objekat kontrola, njegov skaui meni sadri opciju Promena u indikator. Kada je indikator, skaui meni ima Promena u kontrolu. Opis i napomena (Description and Tip) Selektovanjem ove opcije omoguen nam je unos opisa i napomene. Opis e se pojaviti u Help prozoru za tu kontrolu, a napomena e se pojaviti kada stavimo kursor mia iznad kontrole. Kreiranje (Create) Opcija Kreiranje je lak nain za kreiranje vora, lokalne promenljive ili reference za dati objekat. Zamena (Replace) Opcija Zamena je veoma korisna. Daje nam pristup paletama Controls ili Functions (zavisno od toga da li smo u prednjem panelu ili blok dijagramu) i omoguuje nam da zamenimo objekat sa nekim koji izaberemo. Operacije sa podacima (Data Operations) Skaui meni Data Operations omoguuje nam manipulaciju sa podacima u kontroli ili indikatoru: Reinitialize to Default vraa objekat na njegove prepodeene vrednosti, dok Make Current Value Default postavlja kao prepodeenu vrednost podatak koji je trenutno postavljen. Koristiti Cut Data, Copy Data i Paste Data za uzimanje podataka iz ili stavljanje podataka u kontrolu ili indikator. Napredne opcije (Advanced) Napredne opcije u skauem meniju nam daju pristup manje korienim osobinama koje nam omoguavaju finije podeavanje pojavljivanja i ponaanja kontrole ili indikatora: Key Navigation... Koristiti Key Navigation za dodeljivanje kombinacije tastera na tastaturi nekom objektu na prednjem panelu. 43

Synchronous Display je opcija koja tera LabVIEW da osvei displej neke kontrole ili indikatora svaki put kad je njegova vrednost promenjena u blok dijagramu. Customize... nam daje Control Editor koji omoguava promenu grafikog izgleda kontrole. Hide Control/Indicator. Moemo izabrati ovu opciju da sakrijemo objekat prednjeg panela, kada ne elimo da korisnik vidi objekat na prednjem panelu, koji je i dalje potreban u dijagramu. Za povratak koristi se opcija Show Control/Indicator u skauem meniju terminala u blok dijagramu. Enable State omoguava podeavanje stanja kontrole izmeu ponuenih enabled, disabled ili disabled & grayed (kada elimo da se vidi kontrola ili indikator na prednjem panelu, ali ne elimo da je koristi korisnik). Osobine (Properties) Skaui meni Properties otvara dijalog koji omoguuje editovanje svih osobina koje su primenljive na neki objekat. Prozor Help Kontekstni help prozor Nudi neophodne informacije za funkcije, konstante, subVI, kontrole i indikatore. Za prikazivanje prozora treba izabrati Show Context Help iz menija Help. Moe se menjati veliina help prozora i on se moe pomerati bilo gde na ekranu (vidi sliku 3.60).

Slika 3.60 Prozor Help Kada drimo kursor iznad funkcije, subVI vora ili VI ikone, prozor Help prikazuje ikonu za funkciju ili subVI sa icama odgovarajuih tipova podataka povezanih za svaki terminal. Ulazne ice su usmeren ka levoj strani, a izlazne ice ka desnoj strani. Imena terminala se pojavljuju pored svake ice. Ako VI ima neki opis, on se takoe prikazuje. Lock dugme Za neke subVI ili funkcije, Help prozor e prikazivati imena zahtevanih ulaza boldovano, sa prepodeenim vrednostima u zagradama. U nekim sluajevima, prepodeene vrednosti se mogu iskoristiti i nije nam potrebna nikakva ica na ulazu. Moemo zakljuati prozor Help, tako da se njegov sadraj ne menja kada pomeramo mi, selektovanjem Lock Context Help u meniju Help ili pritiskom dugmeta Lock u prozoru Help. Za VI i funkcije sa velikim brojem ulaza i izlaza, prozor Help se moe poveati, jer LabVIEW nudi izbor izmeu jednostavnog ili detaljnog prozora, jednostavnim pritiskom tastera Simple/Detailed Help u levom donjem uglu prozora Help. Dugme Simple/Detailed Help

44

Online help Dugme Online Help Ponekad su potrebne detaljnije informacije o korienju VI ili funkcije, to nam omoguuje online help kojem moemo pristupiti izborom Context and Index... u meniju Help ili pritiskom dugmeta Online Help u prozoru Help. Express VI Express VI su specijalna vrsta LabVIEW funkcija. Razliite su od normalnih LabVIEW funkcija zato to, izmeu ostalih stvari, omoguuju nam definisanje ponaanja funkcija korienjem vizarda ili konfiguracionog dijaloga. Dizajnirane su da nam pomognu lake izvravanje zadataka testiranja, merenja i analize. Kadgod stavimo Express VI u blok dijagramu, LabVIEW odmah i automatski gradi LabVIEW kod nieg nivoa umesto nas. Neke funkcije Express VI ukljuuju korisnike dijaloge, vremenske funkcije, simulaciju signala, itanje fajlova i mnogo vie. Moe se posmatrati Express VI kao biblioteka reenja problema programiranja koji su zajedniki za mnoge aplikacije. Mogu se nai mnogi Express VI u kategoriji Express palete Functions, kao to je prikazano na slici 3.61.

Slika 3.61 Kategorija Express palete Functions Kada smestimo Express VI u blok dijagram, videemo dijalog boks koji omoguava konfiguraciju ponaanja Express VI. Moemo takoe otvoriti ovaj konfiguracioni dijalog boks duplim klikom na Express VI ili desnim klikom i izborom Properties iz skaueg menija. Probajmo ovo postavljanjem Time Delay Express VI, koji se nalazi u Express>>Execution Control podpaleti palete Functions, u blok dijagramu VI-a (vidi sliku 3.62).

Slika 3.62 Time Delay Express VI, koji se nalazi u paleti Express>>Execution Control 45

Odmah posle smetanja ovog Express VI-a u blok dijagram, konfiguracioni dijalog se otvara (prikazan na slici 3.63), omoguujui nam konfiguraciju vrednosti Time Delay (seconds).

Slika 3.63 Time Delay Express VI u blok dijagramu sa otvorenim konfiguracionim dijalogom Posle pritiska OK dugmeta, vrednost Time Delay (seconds) e biti primenjena na Express VI. Aktivnost 3-2: Virtuelni instrument za sabiranje brojeva U okviru ove aktivnosti vebaemo neke jednostavne primere da bi stekli oseaj o LabVIEW okruenju. 1. Otvoriti novi VI i prelaziti iz prednjeg panela na blok dijagram i obrnuto. 2. Promeniti veliinu prozora tako da istovremeno budu vidljivi i prednji panel i blok dijagram. 3. Postaviti na prednji panel numeriku kontrolu, string kontrolu i logiki indikator njihovim selektovanjem iz palete Controls. Da bi dobili numeriku kontrolu kliknimo na dugme Numeric u kategoriji Modern palete Controls i selektovati Numeric Control iz podpalete koja se pojavljuje (vidi sliku 3.64).

Slika 3.64 Modern>>Numeric paleta pokazuje Numeric Control kao i druge numerike kontrole i indikatore Zatim kliknemo miem na prednji panel na lokaciju gde elimo da se pojavi naa digitalna kontrola. Potom kreirajmo string kontrolu i logiki indikator na isti nain (vidi sliku 3.65). 46

Slika 3.65 Izgled prednjeg panela posle dodavanja numerike, string i logike kontrole Zapazimo kako LabVIEW kreira odgovarajue terminale na blok dijagramu. Takoe zapazimo da su terminali numerike kontrole brojeva sa pokretnom zapetom narandasti (celobrojni brojevi bi bili plavi), string su ruiasti i logiki su zeleni. Boje nam pomau u razlikovanju tipova podataka. 4. Desnim klikom na digitalnu numeriku kontrolu otvoriti skaui meni i selektovati Change to Indicator. Uoiti razlike koje se javljaju na prednjem panelu i na blok dijagramu. 5. Izaberimo Positioning tool iz palete alatki i njome selektujemo jedan objekat na prednjem panelu. Upotrebom tastera <delete> briemo objekat. Izbriimo sve objekte sa prednjeg panela. 6. Postavimo drugu digitalnu kontrolu sa podpalete Numeric palete Controls na prednji panel. Ukucajmo labelu kontrole kao Broj 1. Kopirajmo digitalnu kontrolu Broj 1 njenim selektovanjem sa Positioning tool i zatim izborom Edit>>Copy iz menija. Zatim deselektujemo Broj 1 i izaberemo Edit>>Paste iz menija. Nova kontrola se pojavljuje kao Broj 2. Kreirajmo digitalni indikator sa labelom N1+N2 i digitalni indikator sa labelom N1-N2. Korienjem Operating tool postavimo vrednost Broj 1 da bude 4.00 a vrednost Broj 2 da bude 3.00 (vidi sliku 3.66).

Slika 3.66 Prednji panel nakon dodavanja numerikih kontrola i indikatora i podeavanja vrednosti kontrola 7. Preimo na blok dijagram. Postavimo Add funkciju (funkcija sabiranja) iz podpalete Numeric palete Functions u blok dijagramu. Ponoviti postupak i postaviti Subtract funkciju (funkcija oduzimanja). 8. Desnim klikom na Add funkciju selektovati Visible Items>>Terminals opciju. Posmatrati kako su ureeni ulazni i izlazni terminali. Zatim vratiti na poetno stanje. 9. Postaviti Help prozor izborom Show Context Help komande iz menija Help. Pozicionirati kursor iznad Add funkcije i posmatrati Help prozor. 10. Moemo koristiti Positioning tool da rasporedimo neke od terminala kao to je prikazano na slici 3.67. Zatim iskoristimo Wiring alatku da poveemo terminale meusobno. Loa veza se brie selektovanjem pomou Positioning alatke i pritiskom tastera <delete>. Kliknimo jednom da zaponemo povezivanje, kliknimo jednom kad hoemo da napravimo koleno (novi segment) i kliknimo na destinaciju da zavrimo vezu.

47

Slika 3.67 Blok dijagram posle rasporeivanja terminala i funkcija i njihovog povezivanja 11. Vratimo se na prednji panel i otvorimo skaui prozor desnim klikom na ravan ikone. Selektujmo Show Connector iz menija (vidi sliku 3.68). Posmatrajmo konektor koji se pojavljuje. Konektor definie ulazne i izlazne parametre VI-a tako da ga moemo koristiti kao subVI. Moemo birati razliite ablone za na konektor zavisno od broja parametara koji nam je potreban.

Slika 3.68 Opcija Show Connector, dostupna iz skaueg menija ravni ikone Prikaimo ponovo ikonu selektovanjem Show Icon. Zapamtimo da je ikona samo slikovita predstava VI-a. 12. Pokrenimo VI klikom na Run dugme. Indikator N1+N2 treba naravno da prikae vrednost 7.00 a N1-N2 treba da bude 1.00. Menjajmo ulazne vrednosti i pratimo promene vrednosti indikatora. 13. Sauvajmo VI selektovanjem Save iz File menija. Nazovimo ga Add.vi i smestimo ga u na folder.

48

etvrti deo Osnovi LabVIEW programiranja


Osnovni pojmovi Dijalog za podeavanje opcija Numeriki tip kontrole Znakovni tip kontrole Logiki tip kontrole Path tip kontrole Ring kontrola Format i preciznost Numeriko predstavljanje Labela Opisni tekst (caption) Kreiranje VI-a Poto smo se upoznali sa osnovama LabVIEW okruenja sada emo razraditi tehnike graenja VI-a preko nekih jednostavnih primera. Smetanje ajtema na prednji panel Obino kreiranje programa poinje isputanjem kontrola i indikatora na prednji panel u cilju definisanja korisnikih ulaza i izlaza programa. Kako pokreemo kursor iznad palete Controls, videemo imena podpaleta i ajtema u opisnoj traci blizu pointera mia (kao to je prikazano tekstom String Control na slici 4.1).

Slika 4.1 Smetanje ajtema na prednji panel njegovim vuenjem sa palete Controls i njegovim isputanjem na prednji panel Iz palete mogu se vui i isputati kontrole, indikatori i dekoracije na prednji panel, kao to je prikazano na slici 4.1. Rad sa labelama ajtema Labele su blokovi teksta koji su imena specifinih komponenata na prednjem panelu i blok dijagramu. Objekat se pojavljuje u prozoru prednjeg panela sa prepodeenim imenom za labelu (npr. Numeric, String, itd.). Sve dok ne kliknemo miem negde drugde, tekst labele e biti selektovan i mi moemo promeniti ime labele unoenjem teksta sa tastature. Posle unoenja teksta u labelu, jedna od sledeih akcija kompletira unoenje: Pritiskom <enter> na numerikoj tastaturi. Klikom na dugme enter u paleti sa alatima. Klik negde izvan labele na prednjem panelu ili blok dijagramu. Pritiskom <shift-enter> ili <shift-return>. LabVIEW ima dva tipa labela: vlasnike labele i slobodne labele. Vlasnike labele pripadaju i kreu se sa odreenim objektom; one oznaavaju samo taj objekat. Kada kreiramo kontrolu ili indikator na prednjem panelu prati ga prepodeena vlasnika labela. Objekat prednjeg panela i odgovarajui terminal na blok dijagramu e imati istu vlasniku labelu.

49

Slobodna labela nije povezana sa nijednim pojedinanim objektom i moe biti kreirana i obrisana ili na prednjem panelu ili blok dijagramu. Moemo selektovati Visible Items>>Label iz pripadajueg skaueg menija objekta u cilju kreiranja ili promene labele koja nije trenutno vidljiva (vidi sliku 4.2). Labela koja reflektuje funkciju objekta u programu je odlian nain dokumentacije koda.

Slika 4.2 Opcija Visible Items>>Label iz skaueg menija Napomene (captions) Kao dodatak labelama, objekti prednjeg panela mogu imati napomenu. Napomena je neto nalik labeli sa nekim tekstom koji opisuje kontrolu ili indikator. Za unos napomene za kontrolu ili indikator, selektuje se Visible Items>>Captions iz skaueg menija (vidi sliku 4.3).

Slika 4.3 Opcija Visible Items>>Captions iz skaueg menija Nekada elimo da zadrimo labelu kratkom i konciznom; na primer, korienje Temperature kao labele kontrole ali korienje dueg opisa u formi napomene (This displays the current temperature in degrees Celcius). Vredno je napomenuti da se napomena moe menjati programski (dok se VI izvrava), dok labela ne moe. Kreiranje slobodnih labela Slobodne labele nisu prikaene za bilo kakav objekat, a mi ih moemo kreirati, pomerati ili izmetati nezavisno. Koriste se za oznaavanje panela i dijagrama. Da bi se kreirala slobodna labela, selektujemo Labeling alatku iz palete sa alatima i kliknemo bilo gde na praznom prostoru. Mali, uokviren boks se pojavljuje sa tekstualnim kursorom pri levoj margini spremnog za prihvatanje ukucanih podataka. Ukucavamo tekst koji elimo. Ako ne unesemo tekst labela nestaje kad kliknemo negde drugde.

50

Promena fonta, stila, veliine i boje teksta Moemo menjati atribute teksta u LabVIEW korienjem opcija iz dugmeta Text Settings. Selektujemo objekte pomou Positioning alatke ili selektujemo tekst alatkama Labeling ili Operating, zatim vrimo izbor iz Text Settings. Promene se primenjuju na selektovano. Ako nita nije oznaeno, promene se primenjuju na prepodeeni font. Ako selektujemo Font Dialog... iz menija, pojavljuje se dijalog boks; moemo vie atributa fonta u isto vreme korienjem dijalog boksa. Tehnike editovanja Kada imamo objekte u prozoru, eleemo da ih pomeramo naokolo, kopiramo ih, briemo ih, i tako dalje. Selektovanje objekata Moramo selektovati ajtem pre nego to ga moemo pomerati. Da bi selektovali neto, kliknimo dugmetom mia dok je Positioning alatka na objektu. Kada selektujemo objekat, LabVIEW okruuje objekat sa pokretnom isprekidanom linijom, prikazano na slici 4.4.

Slika 4.4 Selektovani objekat Da bi selektovali vie od jednog objekta koristimo <shift> - klik na svaki dodatni objekat. Drugi nain je razvlaenje pravougaonika oko objekata koje elimo selektovati. Kada smo selektovali eljene objekte moemo ih pomerati, kopirati ili brisati. Ne moemo selektovati objekat prednjeg panela i blok dijagrama u isto vreme. Pomeranje objekata Moemo pomerati objekat njegovim selektovanjem i vuenjem na eljenu lokaciju. Ako drimo taster <shift> i zatim vuemo objekat, LabVIEW ograniava smer kretanja horizontalno ili vertikalno. Strelicama moemo pomerati selektovani objekat malim preciznim inkrementima. Dupliranje objekata Moemo duplirati LabVIEW objekte posle njihovog selektovanja, tako to iz menija Edit, selektujemo opciju Copy, kliknemo kursorom gde elimo novi novi objekat, a zatim selektujemo opciju Paste. Takoe moemo duplirati objekat korienjem Positioning alatke i tastera <ctrl>. Brisanje objekata Da bi obrisali objekat selektujemo ga i zatim izaberemo Delete iz menija Edit ili pak pritiskom tastera <delete>. Ne moemo brisati komponente kontrole ili indikatora kao to su labele i digitalni displeji. Promena veliine objekata Moemo menjati veliinu veine objekata. Kada pomeramo Positioning alatku preko objekta iju veliinu menjamo, kvaice za promenu veliine se pojavljuju na uglovima i stranama objekta, kao na slici 4.5.

Slika 4.5 Kvaice za promenu veliine Ako drimo taster <shift> dok menjamo veliinu, objekat e menjati veliinu samo horizontalno, vertikalno ili u istim proporcijama u oba smera. Pomeranje, grupisanje i zakljuavanje objekata

51

Objekti mogu sedeti na vrhu i esto sakrivati druge objekte, ali LabVIEW ima nekoliko komandi u meniju Edit koji pomera objekte meusobno relativno. Moemo koristiti sledee opcije koje nalazimo u dugmetu Reorder (prikazano na slici 4.6) za promenu redosleda objekata: Move To Front pomera selektovani objekat na vrh steka objekata. Move Forward pomera selektovani objekat jednu poziciju navie u steku. Move To Back i Move Backward radi slino kao Move To Front i Move Forward osim da oni pomeraju ajteme nanie u steku.

Slika 4.6 Opcije dugmeta Reorder Na prednjem panelu moemo takoe grupisati dva ili vie objekata zajedno (vidi sliku 4.7). Ovo radimo selektovanjem objekata koje elimo grupisati i izborom Group iz dugmeta Reorder. Grupisanje objekata dovodi do toga da se oni ponaaju kao jedan objekat kada ih pomeramo, briemo ili im menjamo veliinu.

Slika 4.7 Dve kontrole koje su grupisane Zakljuavanje objekata e fiksirati veliinu i poziciju objekta tako da se ne moe menjati veliina, pomerati ili brisati. Bojenje objekata Moemo menjati boju veine LabVIEW objekata, koji ukljuuju kontrole, indikatore, pozadine prednjeg panela, labele i neke elemente blok dijagrama. Da bi promenili boju objekta ili pozadine prozora, kliknemo Color alatkom, pojavljuje se paleta sa slike 4.8.

Slika 4.8 Skaui prozor Color alatke Kako se kreemo miem kroz paletu objekat ili pozadina koju bojimo menja boju shodno poziciji kursora. Ako pustimo dugme mia objekat zadrava selektovanu boju. Selektovanjem dugmeta More Colors...( ) na paleti pojavljuje se dijalog boks za specificiranje tane vrednosti RGB ili HSL boje. Podeavanje boja Nekada je teko podesiti boju koju smo koristili, tada moemo duplirati boju jednog objekta i preneti je na drugi objekat bez korienja kolor palete. Moemo koristiti Color Copy alatku iz palete sa alatima da bi pokupili boju nekog objekta i iskoristili je za bojenje drugih

52

objekata. Ako selektujemo boks sa T iz kolor palete (u gornjem desnom uglu) objekat inimo transparentnim. Poravnanje i distribucija objekata Da bi poravnali objekte selektujemo ih sa Positioning alatkom, a zatim odemo do dugmeta Align i izaberemo eljeno ravnanje. Dugme Distribute radi slino da bi postavilo objekte razdvojene sa istim razmakom. Aktivnost 4-1: Vebanje editovanja U okviru ove aktivnosti vebaemo neke tehnike editovanja koje smo nauili. 1. Otvoriti Editing Exercise.vi koji se nalazi u folderu _______________. Prednji panel VI-a Editing Exercises sadri nekoliko LabVIEW objekta. Na cilj je promeniti prednji panel VI-a prikazan na slici 4.9.

2.

3.

4. 5. 6.

Slika 4.9 Prednji panel VI-a Editing Exercises.vi, koji emo editovati tokom ove aktivnosti Prvo emo promeniti poloaj digitalne kontrole. Korienjem Positioning tool kliknemo na digitalni objekat i odvuemo ga na drugu lokaciju. Primetimo da labela prati kontrolu. Sada, kliknemo na prazan prostor da deselektujemo kontrolu; zatim kliknemo na labelu i odvuemo je na drugu lokaciju. Primetimo da kontrola ne prati labelu. Promenimo mesto grupe od tri klizea prekidaa. Korienjem Positioning tool kliknemo na prazan prostor blizu tri prekidaa, drimo taster mia i povlaimo dok ne obuhvatimo sve prekidae u okviru pravougaonika za selektovanje. Kliknemo na selektovane prekidae i pomerimo ih na novu lokaciju. Izbriemo string kontrolu njenim selektovanjem sa Positioning alatkom i pritiskom tastera <delete> ili izborom Delete u meniju Edit. Duplirajmo free labelu. Drimo taster <control> i zatim kliknemo na free labelu i odvuemo duplikat na novu lokaciju. Promenimo stil fonta free labele. Selektujmo tekst korienjem Labeling alatke. Moemo to uraditi duplim klikom na tekst ili klikom i prevlaenjem kursora preko teksta. Modifikujmo selektovani tekst korienjem opcija iz Text Settings. Zatim sakrijmo boks oko labele desnim klikom na boks sa Color alatkom i izborom T (transparentno) iz palete boja.

53

7. Sada iskoristimo ponovo Font opcije da promenimo stil, veliinu i boju fonta teksta Yose na Waveform Graph. 8. Kreirajmo labelu za digitalni indikator. Desnim klikom na digitalni indikator izaberemo Visible Items>>Label iz skaueg menija. Ukucajmo Digital Indicator unutar boksa. Zatim pritisnemo <enter> na tastaturi, ili kliknemo na dugme enter na toolbar-u, ili kliknemo miem izvan labele. 9. Promenimo veliinu okrugle LED. Smestimo Positioning alatku preko ugla LED dok alatka ne postane kursor za promenu veliine. Kliknemo i povlaimo kursor izvan da bi poveali LED. Ako elimo da zadrimo tekui odnos horizontalne u odnosu na vertikalnu veliinu LED, drimo taster <shift> dok menjamo veliinu. 10. Promenimo boju okrugle LED. Korienjem Color alatke otvorimo skaui prozor na LED. Zatim izaberemo boju iz palete. Zatim kliknemo sa Operating alatkom na LED da promenimo njeno stanje na ON i zatim obojimo novo stanje. 11. Postavimo tri LED indikatora tako da su poravnjani horizontalno i na istom meusobnom rastojanju. Korienjem Positioning alatke kliknemo na otvoreni prostor blizu LED i razvuemo pravougaonik oko njih. Poravnamo ih horizontalno izborom Vertical Centers osa iz Align u toolbar-u. Zatim postavimo diode na jednakom meusobnom rastojanju izborom Horizontal Centers osa iz Distribute. Vertical Centers Axis Horizontal Centers Axis 12. Panel treba sada da izgleda kao to je prikazano na slici 4.10.

Slika 4.10 Prednji panel Editing Exercises.vi posle zavretka ove aktivnosti 13. Zatvorimo VI selektovanjem Close iz File menija. Nemojmo sauvati promene. Numerike kontrole i indikatori Numerika kontrola omoguuje unoenje numerikih vrednosti u VI; numeriki indikatori prikazuju numerike vrednosti koje elimo videti. LabVIEW ima mnogo tipova numerikih objekata: dugmad, slajderi, tankovi, termometri i, naravno, jednostavni digitalni displej. Da bi ih koristili selektujemo ih iz podpalete Modern>>Numeric palete Controls (vidi sliku 4.11). 54

Slika 4.11 Podpaleta Modern>>Numeric palete Controls Predstavljanje Izgled numerikih terminala u blok dijagramu zavisi od predstavljanja podataka. Razliito predstavljanje obezbeuje alternativne metode za memorisanje podataka, da bi pomoglo korienju memorije efektivnije. Razliito numeriko predstavljanje koristi razliit broj bajtova memorije za memorisanje podataka. Terminali u blok dijagramu su plavi za celobrojne podatke i narandasti za podatke sa pokretnom zapetom. Terminali sadre nekoliko slova koja opisuju tip podatka, kao to je DBL za podatke sa pokretnom zapetom duple preciznosti. Predstavljanje numerikih podataka dostupnih u LabVIEW je predstavljeno u tabeli 4.1, zajedno sa njihovom veliinom u bajtovima i slikom terminala digitalne kontrole. Tabela 4.1 Numeriko predstavljanje Predstavljanje Skraenica Terminal (Ikona) Terminal Veliina (u bajtovima)
byte unsigned byte word unsigned word long unsigned long quad I8 U8 I16 U16 I32 U32 I64 1 1 2 2 4 4 8

55

Predstavljanje Skraenica Terminal (Ikona) Terminal Veliina (u bajtovima)


unsigned quad single precision double precision extended precision complex single complex double complex extended U64 SGL DBL EXT CSG CDB CXT 8 4 8 10 8 16 20

Moemo menjati predstavljanje numerikih konstanti, kontrola i indikatora selektovanjem Representation>> iz skaueg menija objekta (slika 4.12).

Slika 4.12 Podmeni Representation numerikih tipova podataka Format i preciznost LabVIEW nam dozvoljava selektovanje da li je digitalni displej formatiran za numerike vrednosti ili za vreme i datum. Ako je numeriki moemo izabrati da li je notacija pokretna zapeta, nauna ili inenjerska. Ako je vremenski moemo izabrati apsolutno ili relativno vreme u sekundama. Moemo takoe birati preciznost displeja, to se odnosi na broj digita desno od decimalne take, od 0 do 20. Moemo specificirati format i preciznost selektovanjem Format & Precision... iz skaueg menija objekta. Pojavljuje se dijalog boks prikazan na slici 4.13. Ako elimo prikazati vreme i datum izabiramo Absolute Time iz liste i shodno tome se menja dijalog boks (slika 4.14).

56

Slika 4.13 Tab Format and Precision dijaloga Numeric Properties

Slika 4.14 Konfigurisanje numerikog displeja u prikazivanje apsolutnog vremena Provera numerikog opsega LabVIEW daje nam opciju da prinudimo ulazne podatke na odreeni validni opseg numerikih vrednosti i inkremente podataka. Na primer, elimo da omoguimo ulaz izmeu 0 i 100, u inkrementima veliine 2. Moemo podesiti opseg iz skaueg menija selektovanjem Data Range.... Iz dijalog boksa koji se pojavljuje (vidi sliku 4.15) moemo ostaviti prepodeeno predstavljanje ili moemo promeniti numeriko predstavljanje, ulazne maksimalne i minimalne vrednosti, podesiti inkremente koje elimo, i menjati prepodeene vrednosti za taj objekat.

57

Slika 4.15 Tab Data Range u dijalogu Numeric Properties Rings Rings su specijalni numeriki objekti koji povezuju neoznaene 16-bitne celobrojne podatke sa stringovima, slikama ili sa oba. Moemo ih nai u Modern>>Ring & Enum i Classic>>Classic Ring & Enum podpalete palete Controls. Oni su posebno korisni za selektovanje meusobno iskljuivih opcija kao to su modovi rada, funkcije kalkulatora, itd. Kada kreiramo ring, unosimo tekst ili stavljamo sliku u ring koji postaje povezan sa nekim brojem (0 za prvu tekst poruku, 1 za sledeu, itd.). Moemo videti ovaj broj (prikazan na slici 4.16) selektovanjem Visible Items>>Digital Display iz skaueg menija ring-a.

Slika 4.16 Ring kontrole Novi ring sadri jedan ajtem sa vrednou nula i prazan displej. Ako elimo da editujemo ajteme u ring-u, selektujemo Edit Items...iz skaueg menija i dijalog e se pojaviti, kao to je prikazano na slici 4.17.

Slika 4.17 Tab Edit Items dijaloga Ring Properties 58

Items u prethodnom dijalogu Ring Properties su linije teksta koje e se pojaviti u ring-u kao mogue opcije za korisnika. Values su numerike vrednosti koje e blok dijagram koristiti za svaki ajtem. Prepodeeno je da LabVIEW kreira sekvencijalne vrednosti (0, 1, 2, 3 ...) za svaki ajtem. Ako kliknemo na ring sa Operating alatkom, videemo listu svih moguih poruka ili slika, sa ekiranom tekuom, kao to je prikazano na slici 4.18.

Slika 4.18 Lista ring ajtema, koja se pojavljuje posle klika na ring sa Operating alatkom Logiki podaci (Boolean) Logiki podaci mogu imati jedno od dva stanja: true ili false. LabVIEW obezbeuje raznovrsne prekidae, LED diode, dugmad za nae logike kontrole i indikatore, sve dostupne iz podpaleta Modern>>Boolean i Classic>>Classic Boolean palete Controls (vidi sliku 4.19 i 4.20). Moemo menjati stanje logikog podatka klikom na njega sa Operating alatkom.

Slika 4.19 Modern logike kontrole

Slika 4.20 Classic logike kontrole 59

Logiki terminali se pojavljuju zeleni u blok dijagramu i sadre slova TF. Sa selektovanom opcijom View As Icon terminal e biti prikazan kao ikona koja reflektuje specifini tip logike kontrole ili indikatora, kao to je prikazano na slici 4.21.

Slika 4.21 Logike kontrole i indikatori (gore) sa terminalima (dole) u modu View As Icons Dugmad sa labelom LabVIEW ima tri dugmeta sa ugraenim tekst porukama: OK, Cancel i Stop dugmad. Mehanika akcija Logika kontrola ima opciju u skauem meniju nazvanu mehanika akcija, koja nam omoguuje definisanje kako se logika promenljiva ponaa kad kliknemo na nju. Strings String kontrole i indikatori prikazuju tekstualne podatke. Stringovi najee sadre podatke u ASCII formatu, standardni nain smetanja alfanumerikih podataka. String terminali i ice koje prenose string podatke pojavljuju se u blok dijagramu kao ljubiaste. Terminali sadre slova abc. Moemo nai stringove u podpaletama Modern>>String & Path i Classic>>Classic String & Path palete Controls, prikazane na slikama 4.22 i 4.23.

Slika 4.22 Moderne string kontrole

Slika 4.23 Klasine string kontrole 60

Skaui meni string kontrole sadri opcije: Enable Wrapping koja omoguuje da kada je tekst dui od string kontrole pree u novi red; Limit Single Line speava korisniku da doda vie linija teksta u string kontrolu. Paths Koristimo path kontrole i indikatore da prikaemo putanje do fajlova, foldera ili direktorijuma. Putanje su odvojene, tip podataka nezavisan od platforme specijalno za putanje fajlova, a njihovi terminali i ice se pojavljuju plaviasto-zeleno u blok dijagramu. Putanja je specificirana imenom drajva praenim direktorijumom ili imenima foldera i konano imenom fajla. U kompjuteru sa Windows operativnim sistemom direktorijum i ime fajla su odvojeni kosom crtom (\) (vidi sliku 4.24).

Slika 4.24 Path u Windows-u Dekoracije Moe se koristiti specijalna LabVIEW podpaleta Decorations palete Controls za poboljanje izgleda prednjeg panela. Aktivnost 4-2: Pravljenje termometra Izgradiemo jednostavan program koji simulira oitavanje temperature u stepenima Celzijusa, konvertuje vrednost u stepene Farenhajta i prikazuje obe vrednosti. 1. Otvoriti novi prednji panel. 2. Postavimo termometar na panelu njegovim selektovanjem u paleti Modern>>Numeric menija Controls. Kada postavimo termometar na panelu otkucajmo u njegovoj labeli Temperature_(deg F). 3. Da bi imali tanu vrednost koju pokazuje termometar izaberimo iz menija koji se pojavljuje desnim klikom opciju Visible Items >> Digital Display. 4. Sada postavimo numeriki indikator iz palete Modern >> Numeric na panel. Ukucajmo Reading (deg C) u labeli ovog indikatora. 5. Zapamtimo da moemo pomerati kontrole i indikatore pomou Positioning alatke i da ih razmestimo kako elimo. Prednji panel treba da izgleda kao na slici 4.25.

Slika 4.25 Prednji panel Thermometer.vi 6. Sauvajmo na VI kao Thermometer.vi. 7. Izgradimo blok dijagram prikazan na slici 4.26. Nekada moe biti korisno da vidimo istovremeno prednji panel i blok dijagram to se postie izborom opcije Tile Left and Right u meniju Windows. SubVI pod nazivom Demo Read Temperature.vi nalazimo u folderu Aktivnost 4.2. Blok dijagram treba da izgleda kao na slici 4.26.

61

Slika 4.26 Blok dijagram Thermometer.vi SubVI Demo Temperature read.vi daje oitavanja temperature, svaki put razliita u stepenima Celzijusa. Da bi ih konvertovali u Farenhajte koristimo formulu deg C 9 deg F = + 32 5 Da bi implementirali ovu formulu koristimo funkcije Multiply, Divide i Add iz palete Programming>>Numeric. Da bi kreirali numerike konstante (9, 5, 32) koristimo Numeric Consant u paleti Programming>>Numeric, kao to je pokazano na slici 4.27.

Slika 4.27 Numeric constant na paleti Numeric 8. Pokrenimo VI nekoliko puta klikom na run dugme. 9. Sauvajmo VI u naem folderu izborom Save iz menija File. Koristiemo ovaj VI kao subVI u kasnijim aktivnostima. Aktivnost 4-3: Poreenje dva broja Izgradimo VI koji poredi dva ulazna broja. Ako su jednaki pali se LED dioda na prednjem panelu. Nazovimo ga Comparison Practice.vi (vidi sliku 4.28).

Slika 4.28 Prednji panel Comparison Practice.vi

62

Aktivnost 4-4: Jednostavan digitron Izgradimo VI koji sabira, oduzima, mnoi i deli dva broja i prikazuje rezultat na prednjem panelu. Nazovimo ga Very Simple Calculator.vi. Prednji panel bi trebalo da izgleda kao na slici 4.29.

Slika 4.29 Prednji panel Very Simple Calculator.vi

63

Peti deo Osnovi LabVIEW programiranja (nastavak)


Uitavanje i memorisanje VI-a Moemo uitati VI selektovanjem Open iz menija File i zatim izborom VI-a iz dijalog boksa koji se pojavljuje. Dok se VI uitava moemo videti statusni prozor koji izlistava subVI koji se trenutno uitavaju i omoguuje nam ponitavanje procesa uitavanja. Moemo uitati VI i duplim klikom na njegovu ikonu. Memoriemo VI selektovanjem Save iz menija File ili korienjem preice na tastaturi <ctrl-S>. LabVIEW zatim otvara dijalog boks tako da moemo odabrati gde elimo da ga memoriemo. Zapazimo da * oznaava titlove VI-a koji su modifikovani ali jo uvek nisu sauvani (vidi sliku 5.1). Slika 5.1 Titl VI prozora sa * koja oznaava da VI ima nememorisane promene Imamo etiri opcije za memorisanje VI-a u meniju File. Selektujemo opciju Save kako bi memorisali novi VI i zatim specificirali ime za VI i njegovu destinaciju u hijerarhiji diska; ili koristimo ovu opciju da memoriemo promene postojeeg VI-a na prethodno specificiranoj lokaciji. Save All radi slino kao Save osim to se primenjuje na sve VI u memoriji koji imaju nememorisane promene. Save as... daje nam dijalog boks, prikazan na slici 5.2, u kojem biramo da li da kopiramo ili promenimo ime VI-a.

Slika 5.2 Dijalog Save As Kopiranje, koje kreira kopiju na disku, ima tri podopcije: Zamena kopije originalom. Ovo je tradicionalna Save As... operacija. Ona menja ime VI-a u memoriji i memorie kopiju VI-a na disk pod novim imenom. Svi VI koji su trenutno u memoriji i pozivaju se na stari VI sada ukazuju na novi VI. Kreiranje neotvorene kopije na disku. Ovo jednostavno kreira korpiju na disku. Ne otvara kopiju u memoriji. Otvara dodatnu kopiju. Ovo kreira kopiju na disku i zatim otvara kopiju. Za razliku od zamene kopije originalom, svi VI koji su trenutno u memoriji i pozivaju se na stari VI i dalje ukazuju na stari VI. Opcija Rename menja ime VI-a u memoriji i zatim pomera fajl na disk. Zapazimo da je originalni fajl izbrisan. Svi VI koji su trenutno u memoriji i pozivaju VI sada ukazuju na VI u njegovoj novoj lokaciji.

64

Save For Previous Version... daje dijalog boks, prikazan na slici 5.3, u kojem moemo izabrati da memoriemo VI i sve njegove komponente u prethodnu verziju LabVIEW-a.

Slika 5.3 Dijalog Save For Previous Version Revert Moemo koristiti Revert... opciju u meniju File da vratimo poslednje sauvanu verziju VI-a na kojoj smo radili. LLB LLB su specijalni LabVIEW fajlovi koji imaju iste sposobnosti uitavanja, memorisanja i otvaranja kao direktorijumi i folderi u LabVIEW okruenju. Moemo grupisati nekoliko VI-a zajedno i sauvati ih kao LLB, slino kao to smetamo fajlove u jedan zip fajl. LLB nude nekoliko prednosti i mnoge nedostatke; na primer, mogu sadrati samo LabVIEW tipove fajlova, ne podatke ili druge fajlove. Na operativni sistem vidi LLB fajlove kao jedan fajl i moemo pristupiti njihovom sadraju samo iz LabVIEW-a. LLB fajlovi su bili poznati kao LabVIEW Libraries pa stoga proizilazi ime i ekstenzija fajla .llb. Kreiramo LLB iz dijalog boksa Save ili Save As... klikom na dugme New LLB. Unesemo ime novog LLB u dijalog boksu koji se pojavljuje, prikazan na slici 5.4, i pripojimo ekstenziju .llb. Zatim kliknemo na dugme LLB i LLB fajl je kreiran.

Slika 5.4 Dijalog New LLB Kada jednom kreiramo LLB moemo memorisati VI u njega i pristupiti im preko LabVIEW-a slino kao direktorijum ili folderu, ali ne moemo videti individualne VI iz operativnog sistema.

Slika 5.5 LLB menader 65

Poto ne moemo to uraditi preko operativnog sistema, moramo koristiti LLB Manager za editovanje sadraja LLB-a. Moemo koristiti LLB menader (iz menija Tools) za jendostavno kopiranje, pormenu imena i brisanje fajlova unutar LLB-a. Moemo takoe koristiti ovu alatku za kreiranje novih LLB-a i direktorijuma i konvertovanje LLB u i iz direktorijuma. Moemo otvoriti VI iz LLB menadera duplim klikom na njih. Moemo takoe koristiti LLB menader za modifikaciju atributa Top Level VI-a koji su unutar LLB-a. Ako oznaimo VI kao Top Level, on e se uitati automatski kada otvorimo LLB fajl, kao to je prikazano na slici 5.5. Moemo imati vie od jednog Top Level VI-a u LLB fajlu. Tehnike debagovanja LabVIEW ima mnoge ugraene funkcije za debagovanje da bi nam pomogle prilikom razvoja VI-a. Popravljanje pokvarenog VI-a Pokvareni VI je VI koji se ne moe kompajlirati i izvravati. Run dugme se pojavljuje kao slomljena strelica koja indicira da VI ima problem. Ta bi saznali zato je VI pokvaren, kliknemo na slomljeno run dugme ili selektujemo Show Error List iz menija Windows. Pojavljuje se informacioni boks pod imenom Error List, koji izlistava sve greke VI-a. Moemo izabrati da vidimo listu greaka za drugi otvoreni VI korienjem ring-a menija na vrhu prozora. Da bi saznali vie o nekoj greci kliknemo na nju. Prozor Error List e prikazati vie informacija. Da lociramo neku greku u naem VI-u duplo kliknemo na greku u listi ili je oznaimo i pritisnemo dugme Show Error. LabVIEW daje odgovarajui prozor ispred i oznaava objekat koji uzrokuje greku (vidi sliku 5.6).

Slika 5.6 Dijalog Error List Upozorenja Dugme Warning Ako elimo ekstra pomo prilikom debagovanja, moemo izabrati Show Warnings u prozoru Error List klikom u odgovarajui boks. Upozorenje je neto to nije ilegalno i ne uzrokuje slomljenu run strelicu, ali neto to nema smisla u LabVIEW, kao to je terminal kontrole koji nije povezan za nita. Ako imamo ekirano Show Warnings i ako imamo neka upozorenja videemo dugme Warning u toolbar-u. Moemo kliknuti na dugme Warning da vidimo prozor Error List koji e opisati upozorenje.

66

Kretanje korak po korak kroz VI Za svrhe debagovanja nekada elimo da izvravamo blok dijagram vor po vor. vorovi obuhvataju subVI, funkcije, strukture, formule, CIN (code interface node) i property vorove. Da bi poeli koraanje kroz kod, moemo startovati VI klikom na jedno od dugmadi za kretanje korak po korak, pauzirati VI postavljanjem take prekida ili klikom na dugme Pause. Step dugme koje pritiskamo odreuje kako e sledei korak biti izvren. Pritisnimo Step Into dugme da izvrimo prvi korak subVI-a ili strukture. Pritisnimo Step Over dugme da izvrimo strukturu (sekvenca, petlja, itd.) ili subVI. Pritisnimo Step Out dugme da zavrimo izvravanje tekueg blok dijagrama, strukture ili VI-a. Izvravanje sa naglaavanjem detalja Nekada je dobro videti kako se tano kreu podaci i ta se deava s njima. U LabVIEW moemo videti animaciju izvravanja blok dijagrama. Da bi ukljuili ovaj mod kliknemo na dugme Execution Highlighting u toolbar-u. Kako podaci prolaze sa jednog vora na drugi, kretanje podataka je oznaeno takama koje se kreu du ica. Ovo naglaavanje znatno smanjuje performanse VI-a. Kliknimo jo jednom na dugme Execution Highlighting da preemo na normalan rad. Slika 5.7 prikazuje VI koji se izvrava sa naglaavanjem detalja.

Slika 5.7 Blok dijagram VI-a koji radi sa nglaavanjem detalja, gde vidimo take podataka koje teku kroz ice i vrednosti ica se pojavljuju u opisnim trakama Moemo koristiti naglaavanje u kombinaciji sa jednokoranim kretanjem da bi razumeli kako podaci teku kroz vorove. Postavljanje taaka prekida Take prekida ne prekidaju VI, ve one samo suspenduju njegovo izvravanje tako da ga moemo debagovati. Take prekida su pogodne kada elimo da ispitamo ulaze u VI, vor ili ice za vreme izvravanja. Kada dijagram doe do take prekida on aktivira dugme pause; moemo nastaviti sa jednokoranim izvravanjem, staviti sonde da vidimo podatke ica, menjati vrednosti u objektima prednjeg panela ili jednostavno nastaviti izvravanje pritiskom dugmeta Pause ili dugmeta Run. Da bi postavili taku prekida, kliknemo na objekat blok dijagrama pomou Breaking alatke iz palete alatki. Kliknemo jo jednom na objekat da oistimo taku prekida. Zavisno gde su smetene, take prekida se ponaaju razliito: Ako je taka prekida postavljena na blok dijagram, crvena ivica se pojavljuje oko dijagrama i pauza e se javiti kada se blok dijagram kompletira. Ako je taka prekida postavljena na vor, crvena ivica uokviruje vor i izvravanje se pauzira upravo pre izvravanja vora.

67

Ako je taka prekida postavljena na icu, crveni metak se pojavljuje na ici i svaka prikaena sonda e biti okruena crvenom ivicom. Pauza e se javiti posle prelaska podataka preko ice. Korienje sondi Koristiti sonde za proveru trenutnih vrednosti u VI-u koji se izvrava ali proizvodi neke neoekivane rezultate. Na primer, pretpostavimo da imamo dijagram sa nizom operacija, gde svaka od njih moe uzrokovati neispravne izlazne podatke. Da bi popravili to, moemo kreirati indikator da prikazuje meurezultate na ici ili moemo jednostavno koristiti sondu. Da bi pristupili sondi selektujemo Probe alatku iz palete i kliknemo kursorom na icu ili desnim klikom na icu izaberemo Probe. Displej sonde, koji je plivajui prozor, se prvo pojavljuje prazan ako se VI ne izvrava. Kada pokrenemo VI, displej sonde prikazuje vrednost koju nosi odgovarajua ica. Slika 5.8 prikazuje blok dijagram VI-a sa sondama smetenim na dve ice.

Slika 5.8 Blok dijagram sa sondama smetenim na dve ice Aktivnost 5-1: Debagovanje virtuelnog instrumenta U ovoj aktivnosti naiemo kvar i popraviti ga u jednom VI. Zatim emo vebati sa drugim mogunostima debagovanja kao to su izvravanje sa isticanjem detalja, jednokorani mod i sonda. 1. Otvoriti VI koji se zove Debug Exercise.vi. 2. Preimo na blok dijagram koji je prikazan na slici 5.9. Primetimo da je run strelica prelomljena. Moramo saznati zato i popraviti kvar da bi VI radio.

Slika 5.9 Blok dijagram Debug Exercise.vi, koji trebamo debagovati u okviru ove aktivnosti 3. Kliknimo na slomljenu strelicu run. Pojavie se dijalog boks Lista greaka koji opisuje greke u VI.

68

4. Kliknimo na greku Add: contains unwired or bad terminal. Prozor Lista greaka, prikazan na slici 5.10, e nam dati detaljniji opis greke. Duplim klikom na greku ili na Find dugme, LabVIEW e nam locirati gde se nalazi greka na blok dijagramu.

Slika 5.10 Dijalog Lista greaka koji prikazuje greke koje su prisutne u Debug Exercise.vi i spreavaju njegovo izvravanje 5. Nacrtajmo icu koja nedostaje. 6. Preimo na prednji panel i pokrenimo VI nekoliko puta. 7. Korienjem Tile komande u meniju Windows podesimo da vidimo istovremeno prednji panel i blok dijagram. Omoguimo izvravanje sa isticanjem detalja i pokrenimo VI u jednokoranom modu pritiskom odgovarajuih dugmadi u toolbar-u u blok dijagramu. 8. Kliknimo Step Over dugme svaki put kad elimo da izvrimo vor (ili kliknimo na Step Out dugme da zavrimo blok dijagram). Primetimo da se podaci pojavljuju na prednjem panelu kako koraamo kroz program. Prvo, VI generie sluajni broj i zatim ga mnoi sa 10.0. Konano, VI dodaje 100.0 rezultatu mnoenja. Zapamtimo da moemo izai iz jednokoranog moda i zavriti VI pritiskom Pause dugmeta. 9. Sada pokrenimo sondu desnim klikom na icu i selektovanjem Probe. 10. Koraajmo ponovo kroz VI i zapazimo kako sonda prikazuje podatke koje nosi odgovarajua ica, kao to je prikazano na slici 5.11.

Slika 5.11 Blok dijagram Debugged Exercise.vi 69

11. Iskljuimo izvravanje sa isticanjem detalja. 12. Sauvajmo na rad izborom Save As...opciju u meniju File i nazovimo VI Debugged Exercise.vi. 13. Zatvorimo VI izborom Close u File meniju. Kreiranje subVI-a Velika snaga LabVIEW-a lei u njegovoj modularnosti. Moemo graditi delove programa u vidu modula kreiranjem subVI-a. subVI je jednostavno VI koji koristi (ili se poziva na njega) drugi VI. subVI vor je analogon pozivu podprograma u glavnom programu. Slika 5.12 prikazuje kako blok dijagram Temperature System Demo.vi poziva nekoliko subVI-a.

Slika 5.12 SubVI su kao funkcije ili podprogrami koje poziva VI Blok dijagram moe sadrati nekoliko identinih subVI vora koji pozivaju isti subVI nekoliko puta. Moemo koristiti bilo koji VI kao subVI u blok dijagramu drugog VI-a, to omoguuje njegova ikona i konektor. Isputamo postojei VI na blok dijagramu da bi ga koristili kao subVI pomou Select a VI... dugmeta u paleti Functions (vidi sliku 5.13). Izbor ove opcije proizvodi fajl dijalog boks gde biramo bilo koji VI u sistemu; njegova ikona e se pojaviti na naem dijagramu.

Slika 5.13 Select a VI... dugme u paleti Functions VI ne moe pozvati sebe direktno, pozivanjem sebe kao subVI.

70

Kreiranje SubVI iz VI-a Da bi ovo uradili moramo dodeliti kontrole i indikatore VI-a terminalima na njegovoj konektorskoj ravni i moramo kreirati ikonu koja reprezentuje VI. Dizajniranje ikone Svaki subVI mora imati ikonu koja ga reprezentuje u blok dijagramu VI-a koji se poziva na njega; ikona je njegov grafiki simbol. Moemo kreirati ikonu selektovanjem Edit Icon iz skaueg menija na ravni ikone u gornjem desnom uglu prednjeg panela (vidi sliku 5.14).

Slika 5.14 Izbor Edit Icon...opcije iz ravni ikone VI-a, u cilju otvaranja dijaloga Icon Editor Takoe moemo pristupiti Icon Editor-u duplim klikom na ikonu. Pojavie se prozor Icon Editor, prikazan na slici 5.15. Koristimo njegove alatke da dizajniramo ikonu po naem ukusu.

Slika 5.15 Dijalog Icon Editor koji nam omoguuje editovanje ikone VI-a
Pencil Line Color Copy (Dropper) Fill (Fill Bucket) Rectangle Filled Rectangle Select Text Foreground/Background Crta i brie piksel po piksel. Pritisnuti <shift> da bi linije bile horizontalne, vertikalne i dijagonalne. Crta prave linije. Pritisnuti <shift> da bi linije bile horizontalne, vertikalne i dijagonalne. Kopira boju foreground sa jednog elementa u ikoni. Koristiti <shift> za selektovanje boje background sa ovom alatkom. Popunjava ogranienu oblast foreground bojom. Crta pravougaonik u foreground boji. Duplim klikom sa ovom alatkom uokvirujemo ikonu foreground bojom. Koristimo <shift> da bi imali kvadrat umesto pravougaonika. Crta pravougaonik uokviren foreground bojom i ispunjen background bojom. Selektuje oblast ikone radi pomeranja, kloniranja ili drugih promena. Duplim klikom ovom alatkom selektujemo sve piksele. Unosi tekst u dizajn ikone. Duplim klikom na ovu alaktu menjamo atribute fonta. Prikazuje tekue boje foreground i background. Kliknimo na svaku da bi dobili paletu iz koje moemo izabrati nove boje.

71

Tasteri desno od prozora za editovanje izvravaju sledee aktivnosti: OK memorie crte kao VI ikonu i vraa nas u prozor prednjeg panela. Cancel nas vraa u prozor prednjeg panela bez memorisanja bilo kakvih promena. Help otvara LabVIEW Help dokumentaciju za Icon Editor. Da bi kreirali baner na ikoni prvo otvorimo new VI i zatim otvorimo Icon Editor. 1. Duplim klikom Filled Rectangle alatkom da bi nacrtali ram u vidu crne linije oko bele pozadine, kao to je prikazano na slici 5.16.

Slika 5.16 Duplim klikom Filled Rectangle alatkom da bi kreirali prazno platno 2. Selektujmo Text alatku. Ako imamo Windows preporueno je koristiti font Small Fonts i veliinu fonta 8 point. Duplim klikom Text alatkom otvaramo dijalog Text Tool Font za izvrenje ove selekcije. Smestimo kursor bilo gde na ravni ikone i ukucajmo WIDGET (sva velika slova). Posle ukucavanja teksta promenimo poziciju teksta pritiskom na strelice na tastaturi (gore, dole, levo i desno) kao to je prikazano na slici 5.17.

Slika 5.17 Koristimo text alatku da bi ukucali tekst banera 3. Selektujmo Line alatku da bi nacrtali horizontalnu liniju ispod teksta, kao to je prikazano na slici 5.18.

Slika 5.18 Korienje Line alatke za crtanje horizontalne linije ispod teksta banera 4. Selektujmo Fill alatku i zatim izaberimo boju za pozadinu naeg banera. Boja treba da je kontrast na boju teksta banera. Sada ispunimo pozadinu bojom kao to je prikazano na slici 5.19.

72

Slika 5.19 Korienje Fill alatke za bojenje pozadine banera Dodeljivanje konektora Pre nego to moemo koristiti VI kao subVI moraemo dodeliti terminale konektora. Konektor je nain u LabVIEW za prenos podataka u i iz subVI-a, slino kao to moramo definisati parametre podprograma u konvencionalnom jeziku. Konektor dodeljuje kontrole i indikatore VI-a ulaznim i izlaznim terminalima. Da bi definisali konektor, desnim klikom na ikonu selektujemo Show Connector. LabVIEW prepodeeni konektor ima 12 terminala. Ako elimo neki drugi biramo ga iz menija Patterns, koji se dobija desnim klikom na konektor. Moemo takoe rotirati i preokrenuti konektor ako nema pogodnu orijentaciju, korienjem komandi u skauem meniju konektora. Preporuuje se korienje prepodeenog ablona konektora (koji ima 12 terminala) i korienje terminala sa leve strane za ulaze (kontrole) i terminala sa desne strane za izlaze (indikatore). Da bi dodelili terminal kontroli pratimo sledee korake: 1. Kliknimo na terminal u konektoru. Kursor se automatski menja u Wiring alatku, a terminal postaje crn, kao to je prikazano na slici 5.20.

Slika 5.20 VI sa selektovanim gornjim levim terminalom na konektoru za povezivanje sa kontrolom predjeg panela 2. Kliknimo na kontrolu ili indikator koji elimo da terminal predstavlja. Pokretna isprekidana linija uokviruje kontrolu ili indikator (vidi sliku 5.21).

Slika 5.21 VI sa povezanim gornjim levim terminalom konektora za kontrolu Number 1 73

3. Posle uspenog dodeljivanja kontrole ili indikatora terminalu konektora, on e se pojaviti kao narandast. Moemo takoe kreirati subVI konvertovanjem dela koda u postojeem VI-u. Pomou Positioning alatke selektujemo sekciju VI-a koju elimo da zamenimo sa subVI, izaberemo Create SubVI iz menija Edit i LabVIEW zamenjuje tu sekciju sa subVI. Dokumentovanje rada Vano je dokumentovati VI tako da drugi mogu razumeti i tako da ne zaboravimo zato smo neto uradili ili kako neto radi. Kreiranje opisa i napomena za pojedinane objekte Ako elimo da unesemo opis za LabVIEW objekat, kao to je kontrola, indikator, struktura ili funkcija izaberemo Description and Tip... iz skaueg menija objekta. Unesemo opis u dijalog boksu Description and Tip, prikazanom na slici 5.22, i kliknemo OK da memoriemo. Moemo takoe uneti napomenu u Tip boksu.

Slika 5.22 Dijalog Description and Tip LabVIEW prikazuje opisni tekst u prozoru Help kadgod preemo kursorom preko kontrole ili indikatora. Za strukture i funkcije u blok dijagramu, LabVIEW ne prikazuje opisni tekst u prozoru Help kad preemo kursorom preko strukture ili funkcije. Jedini nain da vidimo opis objekata blok dijagrama je iz dijalog boksa Description and Tip. Nekada je potrebno promeniti labelu objekta blok dijagrama da ima neto kao see description da bi indiciralo da ima jo dostupnih informacija. Slika 5.23 pokazuje primer ove korisne tehnike.

Slika 5.23 Korienje labele strukture za indiciranje da opis sadri dokumentaciju 74

Dokumentovanje VI-a u VI Properties LabVIEW takoe nudi jedan lak nain dokumentovanja celokupnog VI-a. Selektovanjem VI Properties... iz menija File i izborom dijaloga Documentation, kao to je prikazano na slici 5.24, prikazuje dijalog boks Documentation za tekui VI.

Slika 5.24 Dijalog VI Properties sa vidljivom kategorijom Documentation Moemo koristiti dijalog boks VI Properties da izvrimo sledee funkcije: Unos opisa VI-a u kategoriji Documentation. Kada koristimo VI kao subVI, prozor Help e prikazivati ovaj opis kada je kursor preko njegove ikone u blok dijagramu. Mogu se videti promene koje su nainjene na VI od zadnjeg memorisanja pritiskom Revision History... dugmeta u kategoriji General. Moe se videti putanja VI-a u kategoriji General. Moe se videti koliko memorije VI koristi u kategoriji Memory. A druge interesantne stvari su ostavljene za sekciju Advanced. Aktivnost 5-2: Kreiranje subVI-a za Thermometer VI Pretvoriemo Thermometer VI koji smo kreirali u subVI tako da ga moemo koristiti u dijagramu drugog VI-a. 1. Otvoriti Thermometer.vi. 2. Kreirajmo ikonu za VI. Otvorimo Icon Editor selektovanjem Edit Icon... iz skaueg menija ikone. Ikona se treba pojaviti u ravni ikone kao to je prikazano na slici 5.25.

Slika 5.25 Ravan ikone Thermometer.vi posle crtanja ikone 3. Kreirajmo konektor desnim klikom na ikonu i selektovanjem Show Connector. Poto imamo samo jedan indikator na prednjem panelu, konektoru je potreban samo jedan terminal. Desnim klikom na konektor izaberemo jedan terminal iz podmenija Patterns. Konektor se treba pojaviti kao beli boks, kao to je prikazano na slici 5.26.

Slika 5.26 Ravan konektora Thermometer.vi 4. Dodelimo terminal termometarskom indikatoru. Korienjem Wiring alatke kliknemo na terminal u konektoru, terminal e postati crn, a zatim klinemo na termometarski indikator. Pokretna isprekidana linija e uokviriti indikator.

75

5. Dokumentujmo indikator Temperature selektovanjem Description and Tip... iz njegovog skaueg menija. Ukucajmo opis kao to je prikazano i kliknimo OK kada zavrimo (vidimo sliku 5.27).

Slika 5.27 Dijalog Description and Tip koji se koristi za editovanje opisa i napomene za indikator Temperature 6. Dokumentujmo Thermometer.vi selektovanjem VI Properties...>>Documentation iz menija File ili selektovanjem VI Properties... iz skaueg menija ikone, i ukucavanjem opisa, kao to je prikazano na slici 5.28. Kliknimo OK.

Slika 5.28 Editovanje opisa VI-a Thermometer.vi u dijalogu VI Properties 7. Otvorimo prozor Help izborom Show Help iz menija Help. Kada preemo kursorom preko ikone videemo opis VI-a. 8. Memoriimo promene izborom Save iz menija File. Aktivnost 5-3: Nai srednju vrednost Kreirati subVI koji nalazi srednju vrednost tri ulazna broja i daje rezultat na izlazu (vidi sliku 5.29). Kreirati i ikonu i konektor za subVI. Memoriimo VI kao Find the Average.vi.

Slika 5.29 Prednji panel Find the Average.vi 76

Aktivnost 5-4: Deljenje nulom Izgradimo VI koji generie sluajni broj izmeu nule i deset, i zatim ga podelimo ulaznim brojem i prikaimo rezultat na prednjem panelu (vidi sliku 5.30). Ako je ulazni broj nula svetli LED dioda da oznai greku deljenje nulom. Memoriimo ovaj VI kao Divide by Zero.vi.

Slika 5.30 Prednji panel Divide by Zero.vi

77

esti deo Kontrolisanje izvravanja programa pomou struktura


Strukture, vaan tip vora, upravljaju tokom izvravanja koda u virtuelnom instrumentu, upravo kako to rade kontrolne strukture u standardnom programskom jeziku. Dve petlje Ako ste ikada programirali u bilo kojem programskom jeziku, verovatno ste eleli da se ponavlja izvravanje dela koda. LabVIEW nudi dve petlje da nam ovo olaka. Mogu se koristiti For ili While petlja za kontrolu ponavljanja operacija u VI. For petlja se izvrava specificirani broj puta, dok se While petlja izvrava dok je specificirani uslov true (ili false, zavisno kako je konfigurisana). Obe se nalaze u podpaleti Programming>>Structures palete Functions. For petlja For petlja izvrava kod unutar njenih granica, nazvan poddijagram, onoliki broj puta kolika je vrednost koju sadri brojaki terminal (count terminal). Moemo podesiti broja povezivanjem vrednosti izvan petlje za brojaki terminal. Ako poveemo nulu na brojaki terminal petlja se nee izvravati.

Slika 6.1 For petlja Iteracioni terminal (iteration terminal) sadri tekui broj zavrenih iteracija petlje: 0 za vreme prve iteracije, 1 za vreme druge iteracije i tako dalje, do N-1 (gde je N eljeni broj izvravanja petlje). For petlja je ekvivalentna sledeem pseudokodu: For i = 0 to N-1 Execute subdiagram While petlja While petlja izvrava poddijagram unutar njenih granica sve dok je logika vrednost povezana za njen uslovni terminal (condition terminal) TRUE, kao to je prikazano na slici 6.2. LabVIEW proverava vrednost uslovnog terminala na kraju svake iteracije. Ako je vrednost FALSE kree nova iteracija.

Slika 6.2 While petlja Iteracioni terminal while petlje se ponaa isto kao i kod for petlje. While petlja je ekvivalentna sledeem pseudokodu: Do Execute subdiagram While condition is FALSE (Until condition is TRUE) 78

Moemo promeniti stanje uslovnog terminala tako da se while petlja izvrava dok je vrednost uslovnog terminala FALSE, desnim klikom na uslovni terminal i izborom opcije Continue if True (vidi sliku 6.3).

Slika 6.3 While petlja sa uslovnim terminalom Continue if True While petlja sa slike 6.3 ekvivalentna je sledeem pseudokodu: Do Execute subdiagram While condition is NOT TRUE Smetanje objekata unutar strukture Kursor for petlje Kursor while petlje Kada selektujemo strukturu iz podpalete Programming>>Structures palete Functions, kursor se pojavljuje kao minijatura strukture koju smo selektovali. Zatim moem kliknuti bilo gde elimo da bude jedan ugao strukture i zatim vui miem da bi definisali granice strukture. Kada otpustimo taster mia struktura e se pojaviti. Kada smestimo strukturu u dijagram, moemo smetati druge objekte unutar nje ili njihovim prevlaenjem ili njihovim smetanjem unutar kada ih selektujemo iz palete Functions. Moemo menjati veliinu strukture vuenjem kvaica za promenu veliine koje su na ivici strukture pomou Positioning alatke. Ako pomeramo postojeu strukturu tako da se preklapa sa drugim objektom, preklopljeni objekat e biti vidljiv iznad ivice strukture. Ako vuemo postojeu strukturu kompletno preko drugog objekta, taj objekat e imati senku da bi upozorio da je iznad ili ispod a ne unutar strukture. Obe ove situacije su prikazane na slici 6.4.

Slika 6.4 SubVI koji nije unutar strukture, pliva iznad nje i skriva se ispod nje Sve strukture imaju osobinu nazvanu Auto Grow, koja ima dve veoma korisne karakteristike. Prvo, uzrokuje da se struktura automatski iri kada pomeramo objekat unutar strukture, ka pozicijama koje prelaze granice strukture. Drugo, ova osobina spreava da smanjimo strukturu na veliinu manju od objekata unutar nje. Kadgod elimo da uklonimo strukturu trebamo selektovati iz skaueg menija strukture Remove While Loop ili Remove For Loop. Ovako se uklanja struktura, a kod koji je bio u njoj ostaje. Podaci prolaze u i iz petlje preko malog boksa na ivici petlje koji je nazvan tunel. Ulazi u petlju moraju propustiti podatke u petlju pre nego to se petlja izvri. Izlazi petlje proputaju podatke samo kada petlja zavri sve iteracije. Shodno principu protoka podataka, moramo smestiti terminal unutar petlje ako elimo da se terminal osveava (update) na svakoj iteraciji petlje. Na primer, While petlja na slici 6.5 79

proverava svoju logiku kontrolu posle svake iteracije. Kada petlja oita vrednost TRUE zavrava sa radom.

Slika 6.5 Stop dugme unutar petlje (ita se vrednost u svakoj iteraciji) Ako smestimo terminal logike kontrole izvan While petlje, kao to je prikazano na slici 6.6, kreiramo beskonanu petlju ili petlju koja se izvrava samo jednom, zavisno od inicijalne vrednosti logike kontrole. LabVIEW oitava logiku vrednost pre nego to ue u petlju, a ne unutar petlje ili posle zavretka.

Slika 6.6 Stop dugme izvan petlje (ita se vrednost samo jednom, pre izvravanja petlje) Slino, Digital Indicator u petlji na slici 6.7 e se osveavati za vreme svake iteracije petlje. Digital Indicator u petlji na slici 6.8 e se osveiti samo jednom, posle zavretka petlje.

Slika 6.7 Indikator unutar petlje (osveen za vreme svake iteracije)

Slika 6.8 Indikator izvan petlje (osveen samo jednom, posle zavretka petlje) Aktivnost 6-1: Brojanje petlje U ovoj aktivnosti napraviemo For petlju koja prikazuje njen broja na chart-u koji je na prednjem panelu. Mi emo unositi Number of Iterations i petlja e brojati od nule do tog broja minus jedan, poto iteracije poinju brojanje od nule. Zatim emo napraviti while petlju koja broji dok je ne zaustavimo logikim prekidaem. 1. Kreirajmo novi panel selektovanjem New VI iz File menija. 2. Napravimo prednji panel i blok dijagram prikazan na slici 6.9 i 6.10. For petlja je locirana u podpaleti Programming>>Structures palete Functions.

80

Slika 6.9 Prednji panel VI-a koji emo izgraditi u okviru ove aktivnosti

3.

4. 5. 6.

Slika 6.10 Blok dijagram VI-a koji emo izgraditi u okviru ove aktivnosti Postavimo Waveform Chart iz podpalete Modern>>Graph palete Controls na na prednji panel. Nazovimo ga For Loop Count. Iskoristimo digitalnu kontrolu iz podpalete Programming>>Numeric za ulaz Number of Iterations. Desnim klikom na Waveform chart selektujmo AutoScale Y iz menija Y skale. Zatim desnim klikom na chart selektujmo Visible Items>>Digital Display. Unesimo broj u kontrolu Number of Iterations i pokrenimo VI. Zapazimo da digitalni indikator broji od 0 do N-1, a ne od 1 do N (gde je N broj koji smo uneli). Posle svakog izvrenja petlje chart prikazuje vrednost brojaa for petlje na Y osi u zavisnosti od vremenske X ose. Primetimo malu sivu taku prisutnu na spoju brojakog terminala i ice Number of Iterations. Zove se coercion taka. Desnim klikom na kontrolu Number of Iterations izaberimo I32 Long iz podpalete kako bi uinili da nestane. Moemo memorisati ovaj VI, ali ga vie neemo koristiti. Otvorimo novi prozor da probamo While petlju. Izgradimo VI prikazan na slikama 6.11 i 6.12. Zapamtimo da se Boolean pojavljuje na prednjem panelu u poziciji FALSE. Takoe, podesimo uslovni terminal While petlje na Continue if True.

Slika 6.11 Prednji panel VI-a koji emo izgraditi

Slika 6.12 Blok dijagram VI-a koji emo izgraditi

81

7. Prebacimo prekida na poziciju TRUE klikom na njega Operating alatkom i pokrenimo VI. Kada hoemo da stopiramo proces kliknimo na prekida da bi ga okrenuli na dole u poziciju FALSE. Loop Count e menjati vrednost za vreme svake iteracije petlje. 8. Sa prekidaem u FALSE poziciji, pokrenimo VI ponovo. Zapazimo da se While petlja izvrava jednom, ali samo jednom. Zapamtimo da petlja proverava uslovni terminal na kraju iteracije, tako da se uvek izvrava barem jedanput. 9. Odimo sada do blok dijagrama i pomerimo Loop Count indikator izvan petlje kao to je prikazano na slici 6.13. Kreira se tunel automatski kada ica naputa petlju.

Slika 6.13 VI posle pomeranja Loop Count indikatora izvan While petlje 10. Uverimo se da je prekida na poziciji TRUE i pokrenimo VI. Zapazimo da indikator menja vrednost samo posle prebacivanja prekidaa u poziciju FALSE i zavretka izvravanja petlje; sadri konanu vrednost brojaa iteracija. 11. Memoriimo VI i nazovimo ga Loop Count.vi. Coercion taka Coercion taka (ili taka prinude) je tako nazvana jer LabVIEW prinuuje jednu numeriku reprezentaciju da se prilagodi drugoj. Ako poveemo dva terminala razliitih numerikih reprezentacija LabVIEW konvertuje jednu reprezentaciju u drugu. U prethodnom primeru brojaki terminal ima 32-bitnu celobrojnu reprezentaciju dok Number of Iterations kontrola ima reprezentaciju realnog broja sa pokretnom zapetom duple preciznosti. U ovom sluaju LabVIEW konvertuje realni broj sa pokretnom zapetom duple preciznosti u celobrojni. Da bi to odradio LabVIEW pravi novu kopiju broja u memoriji, u odgovarajuoj reprezentaciji. Pomeraki (shift) registri Pomeraki registri dostupni za petlje While i For su specijalni tip promenljive koje se koriste da prenesu vrednosti iz jedne iteracije petlje u sledeu (vidi sliku 6.14). Oni su jedinstveni i neophodni za grafiku strukturu LabVIEW-a. Kreiramo pomeraki registar desnim klikom na levu ili desnu ivicu petlje i selektovanjem Add Shift Register iz skaueg menija.

Slika 6.14 Pomeraki registri Moemo konfigurisati pomeraki registar da pamti vrednosti iz nekoliko prethodnih iteracija, kao to je prikazano na slici 6.15, korisna osobina kada usrednjujemo vrednosti podataka prikupljenih u razliitim iteracijama. Da bi pristupili vrednosti iz prethodnih iteracija kreirajmo dodatne terminale desnim klikom na levi terminal i izborom Add Element iz skaueg menija. 82

Slika 6.15 While petlja koja ima jedan pomeraki registar sa vie elemenata levog terminala Moemo imati mnoge razliite pomerake registre koji memoriu mnoge razliite promenljive na istoj petlji. Jednostavno desnim klikom na ivicu petlje ih dodajemo dok ne imamo dovoljno parova. Levi terminal e uvek stajati paralelno sa njegovim desnim terminalom; ako pomeramo jedan, oba e se pomerati. Ne praviti konfuzionu greku vie promenljivih smetenih u vie pomerakih registara sa jednom promenljivom smetenom iz vie prethodnih iteracija u jedan pomeraki registar. Slika 6.16 prikazuje razliku.

Slika 6.16 (levo) Dve odvojene promenljive. (desno) Nekoliko vrednosti petlje jedne promenljive Slika 6.17 prikazuje razliku izmeu pomerakog registra i tunela.

Slika 6.17 Pomeraki registar i tunel, dva razliita naina prenosa podataka kroz zidove petlje Aktivnost 6-2: Primer sa pomerakim registrima Da bi uvideli kako rade pomeraki registri posmatraemo njihovo korienje pristupu vrednostima iz prethodnih iteracija petlje. 1. Napraviti prednji panel kao na slici 6.18.

Slika 6.18 Prednji panel Shift Register Example.vi 83

Prednji panel ima etiri digitalna indikatora. Current Count indikator e prikazivati tekuu vrednost brojaa petlje (povezan je za iteracioni terminal). Previous Count indikator e prikazivati vrednost brojaa petlje jednu iteraciju pre. Two Iterations Ago indikator e prikazivati vrednost od pre dve iteracije, i tako dalje (vidi sliku 6.19).

2.

3. 4. 5.

6.

Slika 6.19 Blok dijagram Otvoriti prozor blok dijagrama izborom Show Diagram iz menija Windows. Nula povezana za terminale levog pomerakog registra inicijalizuje elemente pomerakog registra na nulu. Na poetku sledee iteracije, stara Current Count vrednost e se pomeriti na prvi gornji terminal i postae Previous Count. Previous Count se pomera nanie u Two Iterations Ago, i tako dalje. Vremenska funkcija Wait (ms) govori petlji da eka 500 ms pre iteracije. Posle istraivanja blok dijagrama prikaimo istovremeno panel i dijagram izborom Tile Left and Right iz menija Windows. Ukljuimo izvravanje sa isticanjem detalja klikom na dugme Execution Highlighting. Pokrenimo VI i gledajmo kretanje podataka. Ako se podaci kreu suvie brzo zaustavimo VI i kliknimo na Step Into dugme da pokrenemo VI u jednokoranom modu. Posmatrajmo kako se menjaju vrednosti indikatora na prednjem panelu. Zapazimo da u svakoj iteraciji While petlje, VI premeta prethodne vrednosti kroz leve terminale pomerakog registra korienjem FIFO (first in, first out) algoritma. Svaka iteracija petlje poveava brojaki terminal povezan za desni terminal pomerakog registra, Current Count. Ova vrednost se premeta na levi terminal, Previous Count, na poetku sledee iteracije. Ostale vrednosti pomerakog registra na levom terminalu se pomeraju nanie. U ovom primeru, VI pamti samo tri zadnje vrednosti. Da bi pamtio vie vrednosti dodajmo vie elemenata levog terminala pomerakog registra desnim klikom i izborom Add Element. Zatvorimo VI bez memorisanja promena.

Posmatrajmo primer ilustrovan na slici 6.20. U petlji (A) kreiramo dinamiku sumu brojaa iteracija. Svaki put se nova suma memorie u pomerakom registru. Na kraju izvravanja petlje ukupna suma 45 se proputa do numerikog indikatora. U petlji (B) nemamo pomerake registre, tako da ne moemo sauvati vrednosti izmeu iteracija. Odnosno, sabiramo 0 sa tekuim i svaki put i samo e poslednja vrednost 9 izai iz petlje.

Slika 6.20 Dve petlje koje prikazuju razliku izmeu pomerakih registara (A) i tunela (B)

84

Da bi izbegli pojavu neoekivanih vrednosti trebamo uvek inicijalizovati pomerake registre sa odreenom vrednou, osim ako nemamo neki poseban razlog da ne inimo to, njenim povezivanjem za sve leve terminale pomerakog registra izvan petlje, kao to je prikazano u dve leve petlje na slici 6.21.

Slika 6.21 Dve petlje (leve i desne) susednih iteracija (gornja i donja) koje prikazuju efekat neinicijalizovanih pomerakih registara (desno) i inicijalizovanih pomerakih registara (levo) Feedback Node Uopteno, LabVIEW ne dozvoljava da formiramo krug u kome izlaz bloka koda se koristi kao ulaz istog bloka koda i kada uradimo takvo povezivanje ice e postati prekinute. Moemo videti primer kruga na slici 6.22. Krug je prekinut zbog pravila protoka podataka, koje kae da (1) vor se ne moe izvriti dok nema podatke na svim njegovim ulaznim terminalima i (2) podaci ne teku iz izlaznih terminala vora dok vor ne zavri izvravanje. Zato to krug koristi izlazne terminale kao izvor za ulazne terminale, podaci ne mogu tei ka ulaznim terminalima jer nee potei iz izlaznih terminala.

Slika 6.22 Krug, koji je prekinut jer ulaz zavisi od izlaza Meutim, ako smo unutar While ili For petlje moemo smestiti Feedback Node izmeu izlaznog terminala i ulaznog terminala i na kod e sada raditi. Moemo videti primer na slici 6.23. LabVIEW automatski postavlja Feedback Node u naem krugu, kada ga kreiramo i nalazimo se unutar While ili For petlje.

Slika 6.23 Feedback Node omoguava da krug radi Ulazni terminal Feedback Node-a je ekvivalentan desnom terminalu pomerakog registra, a izlazni terminal Feedback Node-a je ekvivalentan levom terminalu pomerakog registra. Za inicijalizaciju Feedback Node-a koristimo Initializer Terminal koji se moe prikazati ili 85

sakriti desnim klikom na Feedback Node i selektovanjem ili deselektovanjem opcije Initializer Terminal. Moe se lako Feedback Node konvertovati u pomeraki registar i obrnuto desnim klikom i izborom Replace with Shift Register, odnosno Replace with Feedback Node. Kod na slici 6.23 je ekvavilentan kodu na slici 6.24.

Slika 6.24 Pomeraki registar kreiran iz kruga (korienje osobine Replace with Shift Register) Zamena tunela pomerakim registrima vri se desnim klikom na tunel i selektovanjem Replace with Shift Register iz skaueg menija (slika 6.25).

Slika 6.25 Zamena ulaznih i izlaznih tunela sa pomerakim registrom Case struktura

Case selektorski terminal Case struktura je LabVIEW metoda uslovnog izvravanja, vrsta if-then-else naredbe. Moemo je nai u podpaleti Programming >>Structures palete Functions. Case struktura, prikazana na slici 6.26, ima dva ili vie poddijagrama ili sluajeva; samo se jedan od njih izvrava, zavisno od vrednosti, logike, numerike ili znakovne, koju poveemo za selektorski terminal.

Slika 6.26 Tri Case strukture sa njihovim poddijagramima Ako je Boolean vrednost povezana za selektorski terminal struktura ima dva sluajeva: FALSE i TRUE. 86

Ako je numeriki ili znakovni tip podatka povezan za selektor, struktura moe imati jedan do skoro neogranien broj sluajeva. Inicijalno dostupna su samo dva sluajeva, ali se lako mogu jo dodati. Moemo specificirati vie od jedne vrednosti za sluaj, odvojene zarezom, kao to je prikazano na slici. Case struktura mora imati sluajeve koji pokrivaju sve mogue vrednosti koje se mogu pojaviti na selektorski terminal ili e VI biti prekinut. Case struktura moe imati vie podijagrama, ali samo jedan moemo videti u trenutku. Klikom na strelice na vrhu strukture prikazujemo prethodni ili sledei poddijagram, respektivno. Ako poveemo broj sa pokretnom zapetom na selektor, LabVIEW ga konvertuje u I32 i normalno izbor sluajeva se primenjuje na konvertovanom broju. Za znakovne tipove podataka povezane za selektore sluaja, trebamo uvek specificirati vrednosti sluaja kao znakovi izmeu zagrada ( ). Podaci na svim ulaznim terminalima case strukture (tuneli i selektorski terminal) su dostupni za sve sluajeve. Ne zahteva se da sluajevi koriste ulazne podatke ili da daju izlazni podatak, ali ako bilo koji sluaj daje izlaznu vrednost tunelu, svi moraju dati izlaznu vrednost. Kada poveemo izlaz u jednom sluaju, mali beli tunel se pojavljuje na istoj lokaciji u svim sluajevima. Strelica run e biti slomljena sve dok ne poveemo podatke na ovaj izlazni tunel iz svakog sluaja, kada e tunel postati crn i strelica run e biti ponovo cela. Ako otvorimo skaui meni na granici case strukture, on e nam dati opcije Add Case After i Add Case Before tekueg sluaja (vidi sliku 6.27). Moemo takoe izabrati kopiranje trenutno vidljivog sluaja selektovanjem Duplicate Case. Moemo izbrisati tekui sluaj (i sve u njemu) izborom Remove Case.

Slika 6.27 Dodavanje sluaja u case strukturu pomou skaueg menija Dijalozi Funkcije dijaloga su dostupne iz palete Programming>>Dialog&User Interface (vidi sliku 6.28). LabVIEW obezbeuje za nas tri tipa skauih dijalog boksova: sa jednim, dva i tri tastera. U svakom sluaju moemo napisati poruku koja e se pojaviti u prozoru i specificirati labele tastera. Dijalog sa dva tastera vraa logiku vrednost, a dijalog sa tri tastera vraa numerisanu vrednost koja pokazuje koji je taster pritisnut. U svakom sluaju LabVIEW pauzira izvravanje sve dok korisnik ne odgovori na dijalog boks.

87

Slika 6.28 Dijalozi iz palete Dialog&User Interface Kao jedan primer, pretpostavimo da elimo da postavimo dijalog boks da bi potvrdili izbor korisnika pri kritinoj selekciji. U ovom primeru prikazanom na slici 6.29 i 6.30, dijalog boks je uveden kada korisnik pritiska dugme samounitenja kompjutera.

Slika 6.29 Prednji panel Dialog.vi, prikazuje dijalog sa dva tastera koji omoguuju korisniku da potvrdi akciju

Slika 6.30 Blok dijagram Dialog.vi, koji sadri funkciju Two Button Dialog koja se koristi za prikazivanje dijaloga Ekspres dijalozi: Display Message i Prompt User Najbri nain kreiranja dijaloga koji prikazuje poruku ili pita korisnika za informaciju je korienje ekspres VI-a Display Message i Prompt User. Slika 6.31 prikazuje kako je lako konfigurisati ekspres VI Display Message za jednostavno pitanje korisniku za Yes ili No.

88

Slika 6.31 Ekspres VI Display Message i njegov konfiguracioni dijalog Kada se pozove Display Message on e prikazati dijalog sa dva dugmeta (zato to smo ga konfigurisali kao Display second button), kao to je prikazan na slici 6.32.

Slika 6.32 Dijalog ekspres VI-a Display Message Za situacije kada elimo da korisnik unese podatke, kao to njegovo ime i lozinka, moemo koristiti ekspres VI Prompt User, prikazan na slici 6.33.

Slika 6.33 Ekspres VI Prompt User i njegov konfiguracioni dijalog Kada pozovemo ovaj VI, prikazae se dijalog (vidi sliku 6.34) koji sadri kontrole specificirane u sekciji Inputs konfiguracionog dijaloga, zajedno sa specificiranom tekstualnom porukom i dugmadima.

Slika 6.34 Dijalog ekspres VI-a Prompt User 89

Standardni dijalozi: dijalozi sa jednim, dva i tri dugmeta Postoje tri standardne funkcije dijaloga: One Button Dialog, Two Button Dialog i Three Button Dialog, prikazane na slikama 6.35 do 6.37. Slika 6.35 Dijalog sa jednim tasterom

Slika 6.36 Dijalog sa dva tastera

Slika 6.37 Dijalog sa tri tastera Dijalog sa jednim tasterom ostaje otvoren sve dok ne kliknemo taster OK, dok dijalog sa dva tastera ostaje sve dok ne kliknemo ili OK ili Cancel taster. Dijalog sa tri tastera ostaje otvoren sve dok ne kliknemo na jedan od tastera ili dok ne zatvorimo prozor i on nam govori koji od ova etiri dogaaja se javio. Moemo promeniti imena ovih tastera unoenjem znakova ime tastera u funkcije. Aktivnost 6-3: Kvadratni koren Ova aktivnost e nam dati malo prakse sa case strukturom i sa dijalog boksevima. Izgradiemo VI koji daje kvadratni koren pozitivnog ulaznog broja. Ako je ulazni broj negativan, skae dijalog boks i prikazuje greku. 1. Otvoriti novi panel. 2. Izgraditi prednji panel prikazan na slici 6.38.

Slika 6.38 Prednji panel koji emo izgraditi u toku ove aktivnosti Digitalna kontrola Number slui za unoenje ulaznog broja. Indikator Square Root Value e prikazati kvadratni koren broja. 3. Otvoriti prozor blok dijagrama. Izvriemo konstrukciju koda kao na slici 6.39 i 6.40.

Slika 6.39 Sluaj False

90

Slika 6.40 Sluaj True 4. Smestimo Case strukturu (podpaleta Programming>>Structures) u prozoru blok dijagrama. Funkcija Greater or Equal? daje na izlazu logiku vrednost, tako da Case struktura ostaje u njenoj Boolean formi. Zapamtimo da moemo videti samo jedan sluaj u trenutku, da promenimo sluaj kliknemo na strelice na vrhu ivice Case strukture. 5. Selektujmo druge objekte dijagrama i poveimo ih kao to je prikazano u predhodnoj ilustraciji. Funkcija Greater or Equal? Funkcija Greater or Equal? (podpaleta Programming>>Comparison) proverava da li je ulazni broj negativan. Daje na izlazu TRUE ako je ulazni broj vei li jednak nuli. Funkcija Square Root Funkcija Square Root (podpaleta Programming>>Numeric) daje kvadratni koren ulaznog broja. Numerika konstanta Numerika konstanta (podpaleta Programming>>Numeric) obezbeuje izlaz 99999.0 u sluaju greke i 0 kao osnovu za odreivanje da li je ulazni broj negativan. Funkcija dijaloga sa jednim tasterom Funkcija dijaloga sa jednim tasterom (meni Programming>>Dialog&User Interface) prikazuje dijalog boks koji sadri poruku Error...Negative Number. Znakovna konstanta Znakovna konstanta (podpaleta Programming>>String). Unesemo tekst unutar boksa pomou Operating ili Labeling alatke. U ovom vebanju VI e izvravati ili sluaj TRUE ili sluaj FALSE Case strukture. Ako je ulazni Number vei ili jednak nuli VI e izvravati sluaj TRUE koji daje na izlazu kvadratni koren broja. Ako je Number manji od nule sluaj FALSE daje na izlazu 99999.00 i prikazuje dijalog boks koji sadri poruku Error...Negative Number. 6. Vratimo se na prednji panel i pokrenimo VI. Probajmo sa brojevima veim od nule i sa manjim od nule. 7. Memoriimo i zatvorimo VI. Nazovimo ga Square Root.vi. Funkcija selektovanja (select function) U jednostavnim if-then-else sluajevima moemo nai da je pogodnije koristiti funkciju selektovanja koja radi slino kao Case struktura (vidi sliku 6.41).

91

Slika 6.41 Funkcija selektovanja Funkcija selektovanja se nalazi u podpaleti Programming>>Comparison palete Functions, daje na izlazu vrednost t ako je ulaz s TRUE i daje vrednost f ako je ulaz s FALSE. Ova funkcija moe odraditi prethodnu aktivnost skoro isto kao Case struktura uz izuzetak to neemo imati dijalog boks (vidi sliku 6.42).

Slika 6.42 Funkcija selektovanja iskoriena za uslovno prebacivanje izmeu dva mogua izlaza Flat ili Stacked sekvencna struktura Odreenje redosleda izvravanja programa ureenjem njegovih elemenata u neku sekvencu se zove kontrola toka. LabVIEW koristi sekvencnu strukturu za dobijanje kontrolisanog toka u okviru protoka podataka. Sekvencna struktura je ureeni set frejmova koji se izvravaju sekvencijalno. Sekvencna struktura izvrava frejm 0, praen frejmom 1, zatim frejmom 2, sve dok se ne izvri poslednji frejm. Jedino kada se i zadnji frejm zavri podaci naputaju strukturu. Postoje dva oblika sekvencne strukture: Flat sekvencna struktura i Stacked sekvencna struktura, prikazane na slikama 6.43 i 6.44, respektivno. Obe se mogu nai u podpaleti Programming>>Structures palete Functions. Dva tipa sekvencne strukture su skoro identina, imaju frejmove koji lie na frejmove filma. Razlika je u tome to frejmovi Flat sekvencne strukture su organizovani sekvencijalno jedan pored drugog, dok su frejmovi Stacked sekvencne strukture organizovani sekvencijalno u steku.

Slika 6.43 Flat sekvencna struktura

Slika 6.44 Stacked sekvencna struktura Nezavisno od izgleda oba tipa sekvencne strukture izvravaju kod na isti nain. Ustvari, lako moemo konvertovati jednu u drugu selektovanjem Replace with Stacked Sequence iz skaueg menija (da bi kovertovali Flat u Stacked) ili Replace with Flat Sequence (da bi konvertovali Stacked u Flat). Kao i Case struktura tako i Stacked sekvencna struktura ima jedan vidljiv frejm, tako da se moramo strelicama kretati kroz frejmove. Kada stavimo sekvencnu strukturu na blok dijagram ona ima samo jedan frejm, a novi frejmovi se kreiraju desnim klikom na ivicu strukture i selektovanjem Add Frame After ili Add Frame Before.

92

Postoje neki veoma vani razlozi zato je Flat sekvencna struktura bolji izbor od Stacked sekvencne strukture: Zato to su svi frejmovi Flat sekvencne strukture vidljivi moemo videti celokupan kod odjednom. Podaci prolaze izmeu frejmova Flat sekvencne strukture korienjem tunela, pre nego Sequence Locals. Sequence Locals su nepodobni zbog Teraju nas da krimo konvenciju programiranja protoka podataka sa leva na desno. Ne moemo jasno da vidimo koji frejm inicijalizuje Sequence Local. Oni tee da se umnoe jer mi uopteno koristimo vie Sequence Locals u Stacked sekvencnoj strukturi nego tunela u Flat sekvencnoj strukturi sa istim frejmovima koda.

Slika 6.45 Sequence Local se ne moe koristiti

Slika 6.46 Sequence Local je odvod podataka, u frejmu koji inicijalizuje njegovu vrednost

Slika 6.47 Sequence Local je izvor podataka, posle njegove inicijalizacije; moe se povezati za indikator

Slika 6.48 Sequence Local je izvor podataka, posle njegove inicijalizacije; ne moemo povezati ulaznu vrednost (drugi izvor) na njega Slike 6.49 i 6.50 prikazuju razliku izmeu Flat sekvencne strukture i Stacked sekvencne strukture. Lako je uoiti razlike.

Slika 6.49 Jednostavan primer korienja Flat sekvencne strukture

93

Slika 6.50 Ekvivalentna Stacked sekvencna struktura Vremenske funkcije Vremenske funkcije su veoma vane u LabVIEW i pomau nam pri merenju vremena, sinhronizovanju zadataka i omoguuju dovoljno vreme procesoru tako da petlje u naem VI nisu suvie brze da blokiraju CPU. Moemo nai LabVIEW vremenske funkcije u paleti Programming>>Timing, kao to je prikazano na slici 6.51.

Slika 6.51 Vremenska paleta Osnovne vremenske funkcije u LabVIEW su Wait (ms), Tick Count (ms) i Wait Until Next ms Multiple, locirane u podpaleti Programming>>Timing palete Functions. Wait (ms) uzrokuje da VI eka specificirani broj milisekundi pre nego to nastavi sa izvravanjem (vidi sliku 6.52). Slika 6.52 Wait (ms) Wait Until Next ms Multiple uzrokuje da LabVIEW eka dok se unutranji takt ne izjednai ili pree broj umnoaka milisekundi pre nego nastavi sa izvravanjem VI; korisna je 94

za uzrokujue petlje za izvravanje u specifiranim intervalima i sinhronizovanje aktivnosti (vidi sliku 6.53). Ove dve funkcije su sline ali ne identine. Na primer, Wait Until Next ms Multiple e verovatno ekati manje od specificiranog broja milisekundi u prvoj iteraciji petlje, zavisno od vrednosti asovnika kada startuje (tj., koliko dugo mu treba dok asovnik ne bude na sledeem umnoku i VI nastavlja). Slika 6.53 Wait Until Next ms Multiple Wait Until Next ms Multiple se uobiajeno koristi za sinhronizovanje jedne ili vie petlji zato to je njen tajming periodian, eka dok se ne pojavi specifino vreme. Wait (ms) se uobiajeno koristi za kreiranje pauze izmeu dogaaja, eka da protekne specificirano vreme. Tick Count (ms) daje vrednost unutranjeg sata naeg operativnog sistema u milisekundama; uobiajeno se koristi za raunanje proteklog vremena (vidi sliku 6.54). Slika 6.54 Tick Count (ms) Aktivnost 6-4: Izjednaavanje brojeva Ovde emo raditi sa sekvencnom strukturom i jednom od vremenskih funkcija. Izgradiemo VI koji rauna potrebno vreme za izjednaavanje ulaznog broja sa sluajno generisanim brojem. 1. Otvorimo novi prednji panel. 2. Izgradimo prednji panel prikazan na slici 6.55.

Slika 6.55 Prednji panel VI koji emo realizovati u okviru ove aktivnosti 3. Otvorimo prozor dijagrama i izgradimo blok dijagram prikazan na slici 6.56.

Slika 6.56 Blok dijagram VI koji emo izgraditi u toku ove aktivnosti 4. Postavimo Flat sekvencnu strukturu (paleta Programming>>Structures) u prozoru dijagrama. Trebamo izgraditi tri odvojena frejma Flat sekvencne strukture. Da bi kreirali nove frejmove desnim klikom na ivicu frejma izaberemo Add Frame After ili Add Frame Before iz skaueg menija. 5. Izgradimo ostatak dijagrama. Ovde se koriste neke nove funkcije.

95

6. Ukljuimo izvravanje sa isticanjem detalja koje usporava VI dovoljno da moemo videti trenutno generisan broj na prednjem panelu. Funkcija Zaokrui na najbliu vrednost Nalazi se u paleti Programming>>Comparison i ona zaokruuje sluajni broj izmeu 0 i 100 na najblii ceo broj. Funkcija Nije jednako? Funkcija Nije jednako? se nalazi u paleti Programming>>Comparison i ona poredi sluajni broj sa brojem specificiranim u prednjem panelu i daje na izlazu TRUE ako brojevi nisu jednaki; inae ova funkcija daje na izlazu FALSE. Inkrementna funkcija Inkrementna funkcija (Programming>>Numeric) dodaje jedan brojau petlje da bi se dobila vrednost Number of Iterations. U prvom frejmu (levo), funkcija Tick Count (ms) daje na izlazu vrednost unutranjeg sata u milisekundama. Ova vrednost se povezuje do zadnjeg frejma. U drugom frejmu (u sredini) VI izvrava While petlju sve dok se specificirani broj ne poklopi sa brojem na izlazu funkcije Random Number (0-1). U zadnjem frejmu (desno) Tick Count (ms) funkcija daje na izlazu novo vreme u milisekundama. VI oduzima staro vreme od novog vremena da bi izraunao proteklo vreme, i zatim ga deli sa 1000 da bi konvertovao milisekunde u sekunde. 7. Unesimo broj unutar Number to Match kontrole i pokrenimo VI. Kada hoemo da ubrzamo stvari, iskljuimo izvravanje sa isticanjem detalja. 8. Memoriimo ovaj VI kao Time to Match.vi i zatvorimo ga. Ekspres vremenske funkcije Kao dodatak osnovnim vremenskim funkcijama, LabVIEW takoe obezbeuje dve ekspres vremenske funkcije: Time Delay i Elapsed Time. Time Delay radi slino kao Wait (ms) osim to specificiramo vremensko kanjenje u sekundama (vidi sliku 6.57).

Slika 6.57 Ekspres VI Time Delay i njegov konfiguracioni dijalog Elapsed Time nam omoguuje proveru da li je specificirani iznos vremena protekao. Kada konfiguriemo ovu vremensku funkciju podeavamo proteklo vreme u sekundama. Kada pozivamo VI, logiki izlaz Time has Elapsed daje TRUE ako je specificirani iznos vremena protekao; inae daje FALSE (vidi sliku 6.58).

Slika 6.58 Ekspres VI Elapsed Time i njegov konfiguracioni dijalog 96

Formula node Ova struktura ne utie na tok programa. Formula node je boks promenljive veliine koji koristimo da unesemo algebarske formule direktno u blok dijagram. Ova mogunost je veoma korisna kada imamo da reimo neku dugu formulu. Na primer, posmatrajmo jednostavnu jednainu, y = x2 + x + 1. ak i za ovu jednostavnu formulu, ako je implementiramo korienjem regularnih LabVIEW aritmetikih funkcija, blok dijagram je malo tee pratiti nego tekstualne jednaine (vidi sliku 6.59).

Slika 6.59 Kod koji moemo konvertovati u formulu i staviti je unutar Formula Node, kao na slici 6.60 Moemo implementirati istu jednainu korienjem Formula Node, kao to je prikazano na slici 6.60.

Slika 6.60 Formula Node sadri jednainu dobijenu iz koda sa slike 6.59 Naiemo Formula Node u podpaleti Programming>>Structures palete Functions. Pomou Formula Node direktno unosimo formulu ili formule, da bi izbegli kreiranje kompleksnih delova blok dijagrama. Kreiramo ulazne i izlazne terminale Formula Node desnim klikom na ivicu i izborom Add Input ili Add Output iz skaueg menija. Zatim unosimo imena promenljivih u ulazne i izlazne terminale. Aktivnost 6-5: Korienje Formula Node Izgradiemo VI koji koristi Formula Node za izraunavanje jednaine y = sin(x) i prikazuje rezultate na grafiku. 1. Otvorimo novi panel. Selektujmo Waveform Graph iz podpalete Modern>>Graph palete Controls (vidi sliku 6.61). Nazovimo ga Graph.

Slika 6.61 Prednji panel VI koji emo izgraditi u toku ove aktivnosti 2. Izgradimo blok dijagram prikazan na slici 6.62.

97

Slika 6.62 Blok dijagram VI koji emo izgraditi u toku ove aktivnosti Pomou Formula Node direktno unosimo matematike formule. Kreirajmo ulazni terminal desnim klikom na ivicu i izborom Add Input iz skaueg menija; zatim kreirajmo izlazni terminal izborom Add Output iz skaueg menija. Zapamtimo da taka zarez (;) mora zavriti svaki izraz u Formula Node. Konstanta pi Konstanta je locirana u paleti Functions>>Programming>>Numeric>>Math and Scientific Constants. Za vreme svake iteracije VI mnoi vrednost iteracionog terminala sa /10. Rezultat mnoenja je povezan za Formula Node, koji rauna sinus rezultata. VI zatim smeta rezultat u niz na ivici For petlje. Posle zavretka izvravanja For petlje, VI iscrtava niz. 3. Vratimo se na prednji panel i pokrenimo VI. 4. Memoriimo VI pod imenom Formula Node Exercise.vi. Zatvorimo VI. Expression Node Expression Node je smeten u paleti Programming>>Numeric (vidi sliku 6.46) i on je u osnovi pojednostavljen Formula Node koji ima jedan neoznaen ulaz i jedan neoznaen izlaz.

Slika 6.46. Expression Node prikazan na blok dijagramu (levo) i u paleti Programming>>Numeric (desno). Slika 6.46 prikazuje Expression Node sa oznaenim delovima. Za razliku od Formula Node, ne moramo da dajemo imena ulaznim i izlaznim terminalima. Takoe, poto postoji jedan izraz, nema potrebe za taka zarezom na kraju izraza. Zapamtimo da moemo koristiti jednu promenljivu u Expression Node, za razliku od Formula Node, koji dozvoljava vie ulaznih i izlaznih promenljivih.

98

Aktivnost 6-6: Jednaine Izgradimo VI koji koristi Formula Node za raunanje sledeih jednaina: y1 = x3 + x2 + 5 y2 = (m*x) + b Koristimo jedan Formula Node za obe jednaine. (Zapamtimo da stavimo taka zarez (;) posle svake jednaine.). Nazovimo ga Equations.vi. Aktivnost 6-7: Kalkulator Izgradimo VI koji funkcionie kao kalkulator. Prednji panel treba da ima digitalne kontrole za unos dva broja i digitalni indikator za prikazivanje rezultata operacije (sabiranje, oduzimanje, mnoenje ili deljenje) koju VI primenjuje nad tim brojevima. Koristiti kliza za specifikovanje operacije koja e se izvriti (vidi sliku 6.47). Nazovimo ga Calculator.vi. Za dodavanje tekst markera na klizau, desnim klikom na tekst koji se nalazi do klizaa i selektovati Add Item After ili Add Item Before i zatim ukucati tekst.

Slika 6.47. Prednji panel Calculator.vi, koji emo izgraditi u toku ove aktivnosti. 99

Aktivnost 6-8: Kombinacija For i While petlje Korienjem samo While petlje izgradimo kombinaciju For petlja/While petlja koja se zaustavlja ili kada dostigne vrednost N (specificiranu preko kontrole na prednjem panelu) ili kada korisnik pritisne stop taster. Nazovimo ga Combo For-While Loop.vi. Moda treba koristiti funkciju Or. Takoe, zapamtimo da dok se izvrava petlja, LabVIEW ne osveava vrednosti indikatora i kontrola koje su izvan petlje. Stop taster mora da bude unutar petlje da bi pravilno funkcionisalo. Aktivnost 6-9: Displej dijaloga Napravimo VI koji ita vrednost prekidaa na prednjem panelu i zatim se izbacuje dijalog boks koji pokazuje da li je prekida on ili off. Nazovimo ga Dialog Display.vi.

100

Sedmi deo: Kompozitni podaci u LabVIEW - nizovi i klasteri


ta su nizovi? Do sada smo baratali samo sa skalarnim brojevima. LabVIEW niz je kolekcija elemenata podataka koji su svi istog tipa, isto kao i u tradicionalnim programskim jezicima. Jedan niz moe imati jednu ili vie dimenzija i do 231-1 elemenata po dimenziji. Podatak u nizu moe biti bilo kojeg tipa osim da je drugi niz, chart ili graph. Elementima niza se pristupa preko njihovih indeksa; indeks svakog elementa je u opsegu od 0 do N-1, gde je N ukupan broj elemenata u nizu. Jednodimenzionalni (1D) niz prikazan ovde ilustruje ovu strukturu. Primetimo da prvi elemenat ima indeks 0, drugi elemenat ima indeks 1, itd. Indeks 0 1 2 3 4 5 6 7 8 9 Niz od 10 elemenata 12 32 82 8.0 4.8 5.1 6.0 1.0 2.5 1.7 Uvideemo da se talasni oblici (i mnoge druge stvari) esto smetaju u nizove, gde svaka taka talasnog oblika je jedan element niza. Nizovi su takoe pogodni za smetanje podataka generisanih u petljama, gde svaka iteracija petlje generie jedan element niza. Kreiranje kontrola i indikatora nizova Potrebno je dva koraka da bi se napravile kontrole i indikatori za kompozitne tipove podataka kao to su nizovi i klasteri. Kreiramo kontrolu ili indikator niza kombinovanjem oklopa (ljuture) niza sa objektom podatka, koji moe biti numeriki, logiki, path ili znakovni. Oklop niza moemo nai u podpaleti Modern>>Array, Matrix&Cluster palete Controls (vidi sliku 7.1).

Slika 7.1 Oklop niza Da bi kreirali niz, odvuemo objekat podatka u prozor za prikazivanje elemenata niza. Prozor za prikazivanje elementa niza menja veliinu da bi se prilagodio njegovom novom tipu podatka, kao to je prikazano na slici 7.2, ali ostaje sivkast sve dok ne unesemo podatke u njega. Zapazimo da svi elementi niza moraju biti ili kontrole ili indikatori, ne kombinacija.

Slika 7.2 Prednji panel koji prikazuje jedan prazan oklop niza (A) i tri naseljena oklopa niza (B) Kada prvo postavimo oklop niza na prednji panel, njegov terminal na blok dijagramu je crn, karakteristika nedefinisanog tipa podatka. Terminal takoe sadri zagrade (kada nije ekirana opcija terminala View As Icon) ili ikonu niza (kada je ekirano View As Icon), prikazano u delu (A) slike 7.3, to je LabVIEW nain oznaavanja strukture niza. Kada dodelimo tip podatka nizu (smetanjem kontrole ili indikatora u njegovom prozoru za prikazivanje elemenata), tada terminal niza na blok dijagramu preuzima boju i oznake 100

njegovog novog tipa, kao u delu (B). Primetiemo da su ice niza deblje od ica koje nose jednu vrednost.

Slika 7.3 Blok dijagram koji prikazuje prazne (A) i naseljene (B) terminale oklopa niza Moemo unositi podatke u na niz im mu dodelimo tip podatka. Koristimo Labeling ili Operating alatku da ukucamo vrednosti. Ako elimo da promenimo veliinu elementa niza, kao to je prikazano na slici 7.4, koristimo Positioning alatku koja treba da se transformie u kvakice za promenu veliine kada je postavimo na ivici objekta. Ako elimo da prikaemo vie elemenata u isto vreme, kao to je prikazano na slici 7.5, kreimo Positioning alatku oko ivice oklopa niza sve dok se ne pojave kvakice oko oklopa niza. Sada emo imati vie elemenata vidljivih. Element najblii displeju indeksa uvek odgovara broju elementa koji je prikazan na tom displeju.

Slika 7.4 Promena veliine elementa niza

Slika 7.5 Promena veliine oklopa niza Moemo kreirati konstante niza u blok dijagramu upravo onako kako kreiramo numerike, logike ili znakovne konstante. Izbor Array Constant iz podpalete Array, palete Functions e nam dati oklop niza; zatim smestimo u njega odgovarajui tip podatka (obino drugu konstantu). Ova mogunost je korisna kada trebamo da inicijalizujemo pomerake registre ili obezbedimo tip podatka fajlu ili mrenoj funkciji. Ako elimo da izbriemo kontrolu, indikator ili konstantu niza podataka, desnim klikom na displej indeksa izaberemo Data Operations>>Empty Array. Ako elimo da ubacimo ili izbriemo element iz kontrole, indikatora ili konstante niza desnim klikom na elemenat niza izaberemo Data Operations>>Insert Element Before ili Data Operations>>Delete Element. Promena vrednosti u displeju indeksa omoguava nam da menjamo elemente niza koji su vidljivi u oklopu niza, ali je verovatno lake koristiti klizae (scrollbars), vidi sliku 7.6. Moemo ih uiniti vidljivim desnim klikom na oklop niza i izborom Visible Items>>Vertical Scrollbar ili Visible Items>>Horizontal Scrollbar iz menija.

101

Slika 7.6 Korienje klizaa Korienje autoindeksiranja For petlja i While petlja mogu indeksirati i akumulirati nizove na njihovim ivicama automatski i to po jedan novi element za svaku iteraciju petlje. Ova mogunost je nazvana autoindeksiranje. Vana injenica koju treba zapamtiti je da je autoindeksiranje ukljueno u prepodeavanju za For petlju, ali nije za While petlju. Slika 7.7 pokazuje autoindeksiranje niza na ivici For petlje. Svaka iteracija kreira sledei elemenat niza. Posle zavretka petlje, niz izlazi iz petlje ka indikatoru; nijedan od podataka niza nije dostupan dok se petlja ne zavri. Primetimo da ica postaje deblja poto se menja u tip ice za niz na ivici petlje.

Slika 7.7 Autoindeksiranje niza na ivici For petlje Ako moramo povezati skalarnu vrednost izvan For petlje bez kreiranja niza, moramo onemoguiti autoindeksiranje desnim klikom na tunel (simbol u obliku kvadrata sa [ ]) i izborom Disable Indexing iz skaueg menija (vidi sliku 7.8).

Slika 7.8 Izbor Disable Indexing iz skaueg menija tunela Na slici 7.9 autoindeksiranje je onemogueno i samo poslednja vrednost koju je dala na izlazu funkcija Random Number (0-1) prolazi izvan petlje. Primetimo da ica ostaje iste debljine posle naputanja petlje.

Slika 7.9 Izlazni tunel petlje sa onemoguenim autoindeksiranjem Autoindeksiranje se takoe primenjuje kada povezujemo nizove i petlju. Ako je indeksiranje ukljueno kao u petlji (A), petlja e indeksirati jedan elemenat iz niza u toku svake iteracije (primetimo kako je ica tanja unutar petlje). Ako je indeksiranje iskljueno kao u petlji (B), ceo niz prolazi u petlju odjednom (vidi sliku 7.10).

102

Slika 7.10 Ulazni tunel sa ukljuenim (A) i iskljuenim (B) autoindeksiranjem Kada ukljuimo autoindeksiranje niza koji ulazi u For petlju, LabVIEW automatski podeava broja na veliinu niza, stoga eliminie potrebu povezivanja vrednosti za brojaki terminal. Na slici 7.11 veliina niza, a ne vrednost povezana za brojaki terminal, odreuje broj iteracija For petlje.

Slika 7.11 For petlja koja se izvrava 10 puta Dvodimenzionalni nizovi Dvodimenzionalni ili 2D niz smeta elemente u obliku mree. Zahteva dva indeksa za lociranje elementa: indeks kolone i indeks reda, oba poinju od nule. Slika 7.12 prikazuje polje (niz) sa est kolona i etiri reda koje sadri est puta etiri elementa.

Slika 7.12 Polje sa est kolona i etiri reda koje sadri 24 elementa Moemo dodati dimenzije kontroli ili indikatoru niza desnim klikom na displej indeksa (ne na displej elementa) i izborom Add Dimension iz skaueg menija. Slika 7.13 prikazuje 2D niz digitalnih kontrola. Primetimo da sada imamo dva indeksa za specificiranje svakog elementa. Moemo koristiti Positioning alatku za proirenje displeja elemenata u dve dimenzije tako da moemo videti vie elemenata.

Slika 7.13 Digitalne kontrole 2D niza Moemo koristiti dve For petlje, jedna unutar druge, za kreiranje 2D niza ako ne elimo da ukucavamo vrednosti na prednjem panelu. Unutranja For petlja kreira red, a spoljanja For petlja smeta ove redove u kolone matrice. Ilustracija na slici 7.14 prikazuje dve For petlje koje kreiraju 2D niz sluajnih brojeva korienjem autoindeksiranja.

Slika 7.14 Dve For petlje koje kreiraju 2D niz pomou autoindeksiranja 103

Primetimo da je ica 2D niza deblja od ice 1D niza. Aktivnost 7-1: Izgradnja nizova pomou autoindeksiranja 1. Izgraditi prednji panel i blok dijagram VI-a kao to je prikazano na slici 7.15 i 7.16. Ovaj VI generie dva niza na prednjem panelu, korienjem For petlje za kreiranje 2D niza i While petlje za kreiranje 1D niza. For petlja se izvrava definisani broj puta dok moramo pritisnuti taster STOP da bi zaustavili While petlju ili e se ona sama zaustaviti posle 101 iteracija.

Slika 7.15 Prednji panel Building Arrays.vi 2. Primetimo kako ugnjedene For petlje kreiraju redove i kolone 2D niza na njihovim ivicama korienjem autoindeksiranja.

Slika 7.16 Blok dijagram Building Arrays.vi 3. Pre nego to moemo da dobijemo niz podataka izvan While petlje moramo desnim klikom na tunel koji sadri sluajni broj selektovati Enable Indexing. Ako bi selektovali Disable Indexing ica koja naputa petlju bi bila prekinuta. Ova petlja koristi logike funkcije da bi osigurala zaustavljanje ako korisnik ne pritisne taster STOP u dogledno vreme (101 iteracija). Zato se izvrava 101 puta, umesto 100 puta? Zapamtimo da While petlja proverava uslovni terminal na kraju svake iteracije. Na kraju 100-te iteracije, i je 99 (jer poinje od nule) to je manje od 100 i zato petlja nastavlja sa izvravanjem. Na kraju 101-ve iteracije broja nije vie manji od 100 i petlja se zaustavlja. 4. Pokrenimo VI. 5. Zatvorimo VI posle njegovog memorisanja pod imenom Building Arrays.vi. 104

Funkcije za manipulisanje nizovima LabVIEW ima mnoge funkcije za manipulisanje nizovima u podpaleti Programming>>Array palete Functions. Podpaleta Array je prikazana na slici 7.17.

Slika 7.17 Paleta Array Initialize Array e kreirati i inicijalizovati n-dimenzionalni niz sa vrednostima po naem izboru (vidi sliku 7.18). Moe se konfigurisati za vie dimenzija njegovim poveavanjem pomou Positioning alatke. Ova funkcija je korisna za dodeljivanje memorije za nizove odreenih veliina ili za inicijalizovanje pomerakih registara sa tipom podatka u vidu niza.

Slika 7.18 Initialize Array Na slici 7.19 Initialize Array pokazuje kako inicijalizovati jednodimenzionalni niz sa deset elemenata koji su brojevi duple preciznosti gde svaki elemenat niza sadri nulu.

Slika 7.19 Funkcija Initialize Array iskoriena za inicijalizaciju niza Array Size (slika 7.20) daje na izlazu broj elemenata ulaznog niza. Ako je ulazni niz ndimenzionalni, Array Size daje na izlazu jednodimenzionalno polje sa n elemenata gde svaki element sadri veliinu jedne od dimenzija niza. Slika 7.20 Array Size Slika 7.21 Array Size upotrebljeno za odreivanje duine 1D niza sa etiri elementa Zavisno od toga kako ga konfiguriemo, Build Array spaja ili kombinuje dva niza u jedan ili dodaje ekstra elemente u niz. Moemo poveati ovu funkciju da bi poveali broj ulaza. Build Array ima dva tipa ulaza, niz i element (vidi sliku 7.22).

105

Build Array

Slika 7.22 Build Array Na primer, funkcija Build Array prikazana na slici 7.23 je konfigurisana da spaja dva niza i jedan element u novi niz.

Slika 7.23 Build Array iskoriena za spajanje 1D niza, skalara i drugog 1D niza Ulaz funkcije Build Array se automatski prilagoava elementu ili nizu, zavisno od toga ta poveemo. Array Subset daje na izlazu deo niza poev od datog indeksa koji sadri dati broj elemenata (vidi sliku 7.24). Primetimo da indeks treeg elementa je dva jer indeks startuje od nule; tj., prvi element ima indeks nula (vidi sliku 7.25).

Slika 7.24 Array Subset

Slika 7.25 Array Subset iskorieno za dobijanje porcije od etiri elementa poev od indeksa dva Index Array (vidi sliku 7.26) pristupa pojedinanom elementu niza. Jedan primer funkcije Index Array koja pristupa treem elementu niza je prikazan na slici 7.27.

Slika 7.26 Index Array

Slika 7.27 Index Array iskorien za dobijanje treeg elementa 1D niza Moemo takoe koristiti ovu funkciju za izdvajanje reda, kolone ili skalarnog elementa jednog 2D niza. Da bi ekstraktovali skalarni element poveemo odgovarajue indekse reda i kolone. Da bi ekstraktovali red ili kolonu jednostavno ostavimo jedan od ulaza funkcije Index Array nepovezanim. Primetimo da simbol terminala indeksa se menja iz ispunjenog u prazan boks kada ga ostavimo nepovezanim. Ilustracija na slici 7.28 pokazuje kako ekstraktovati kolonu ili red iz 2D niza.

106

Slika 7.28 Ekstraktovanje kolone i reda iz 2D niza Delete From Array brie porciju niza poev od indeksa koji smo specificirali i koja sadri odgovarajui broj elemenata (vidi sliku 7.29). Slino funkciji Array Subset, Delete From Array daje na izlazu deo niza, ali takoe daje originalni niz minus izbrisana porcija (vidi sliku 7.30).

Slika 7.29 Delete From Array

Slika 7.30 Delete From Array iskoriena za brisanje porcije od tri elementa poev od indeksa dva Aktivnost 7-2: Akrobatika sa nizovima Ovde emo izgraditi VI koji spaja dva niza i zatim nalazi indeks elementa u sredini novog niza. 1. Napraviti prednji panel Array Exercise.vi kao na slici 7.31.

Slika 7.31 Prednji panel Array Exercise.vi Prednji panel sadri dva ulazna niza (svaki prikazuje tri elementa), dve digitalne kontrole i izlazni niz (koji prikazuje osam elemenata). VI spaja nizove i vrednosti kontrola u sledeu sekvencu u cilju kreiranja novog niza. Initial Array + Element 1 + Element 2 + Terminal Array 2. Napraviti blok dijagram Array Exercise.vi kao na slici 7.32.

Slika 7.32 Blok dijagram Array Exercise.vi

107

Iskoristiti Help prozor za nalaenje korektnih terminala na funkcijama. Build Array funkcija u ovom primeru spaja ulazne podatke i kreira novi niz. Menjamo veliinu funkcije, odnosno dodajemo broj ulaza pomou Positioning alatke. Index Array funkcija daje element iz sredine niza. LabVIEW gradi niz korienjem Build Array funkcije i zatim rauna indeks elementa na sredini niza nalaenjem duine niza i deljenjem sa dva i oduzimanjem jedinice. Poto niz ima paran broj elemenata srednji element e u stvari biti jedan od dva srednja elementa. 3. Vratiti se u prednji panel i pokrenuti VI. Probati sa nekoliko razliitih kombinacija brojeva. 4. Memorisati VI i zatvoriti ga. Polimorfizam Jo jedna korisna mogunost ili osobina LabVIEW aritmetikih funkcija (Add, Multiply, Divide, itd.) je polimorfizam. Polimorfizam znai da ulazi ovih funkcija mogu biti razliite veliine i reprezentacije. Na primer, moemo dodati skalar nizu ili sabrati dva niza. Slika 7.33 pokazuje neke od polimorfnih kombinacija Add funkcije.

Slika 7.33 Neke od polimorfnih kombinacija Add funkcije U prvoj kombinaciji, rezultat je skalarni broj. U drugoj kombinaciji, skalar se dodaje svakom elementu niza. U treoj kombinaciji, svaki elemenat jednog niza se sabira sa odgovarajuim elementom drugog niza. Ista Add funkcija se koristi u svim sluajevima, ali razliito funkcionie u svakom od njih. Na slici 7.34 svaka iteracija For petlje generie sluajni broj (vrednost izmeu 0 i 1) koji se smeta u nizu kreiranom na ivici petlje. Posle zavretka izvravanja petlje Multiply funkcija mnoi svaki elemenat u nizu faktorom skaliranja koji unesemo. Indikator niza na prednjem panelu zatim prikazuje skalirani niz.

Slika 7.34 Mnoenje 1D numerikog niza skalarnom numerikom vrednou Slika 7.35 pokazuje neke od moguih polimorfnih kombinacija Add funkcije.

108

Slika 7.35 Neke mogue polimorfne kombinacije Add funkcije Ako primenjujemo aritmetike funkcije nad dva niza sa razliitim brojem elemenata, rezultujui niz e biti veliine niza koji ima manji broj elemenata. Aktivnost 7-3: Polimorfizam Izgradiemo VI koji demonstrira polimorfizam na nizovima (vidi sliku 7.36).

1.

2. 3. 4.

Slika 7.36 Prednji panel VI-a koji emo kreirati tokom ove aktivnosti Otvoriti novi VI i kreirati prednji panel kao na slici 7.36. Prvo kreirati nizove. Pri tome se prvo uzima oklop (koljka) niza u koji se stavlja numeriki indikator. Da bi se videlo vie elemenata koristiti Positioning alatku za promenu veliine (elementi u 1D nizu mogu biti poreani horizontalno ili vertikalno). Posle kreiranja nizova selektovati Waveform Graph iz podpalete Graph. Ne zaboraviti kreiranje Scale kontrole. Izgraditi blok dijagram kao na slici 7.37.

5. 6. 7. 8.

Slika 7.37 Blok dijagram VI-a koji emo kreirati tokom ove aktivnosti Autoindeksiranje je predefinisano kao ukljueno u For petlji tako da se nizovi generiu automatski. Moemo pronai Add, Multiply i Random Number (0-1) u paleti Programming>>Numeric. Build Array poveamo korienjem Positioning alatke tako da ima etiri ulaza. Izlaz iz Build Array je 2D niz. Svaki ulazni niz postaje red, tako da 2D niz na izlazu ima etiri reda i deset kolona. Pokrenimo VI. Na grafiku emo videti svaki element niza u odnosu na njegov indeks za sva etiri niza odjednom: Array 1, Array 2, Array 1 * Scale i Array 1 + Array 2. Memoriimo VI kao Polymorphism Example.vi i zatvorimo ga. 109

Compound aritmetika Dok prethodni primer polimorfizma pokazuje kako sabrati i pomnoiti podatke razliitih veliina, compound aritmetika (vidi sliku 7.38) nam omoguuje rad sa vie od dva broja istovremeno. Compound aritmetika eliminie potrebu za umnoavanjem terminala Add, Multiply, AND, OR i XOR koji su nam potrebni za izvrenje ovih funkcija nad nekoliko broja odjednom.

Slika 7.38 (levo) Compound funkcija sabiranja i (desno) Compound And funkcija Compound aritmetike funkcije mogu da se nau u Numeric i Boolean podpaleti palete Functions. Moe se koristiti Positioning alatka za njihovo poveanje da bi se dobilo vie ulaza. Compound aritmetika funkcija ima jedan oblik, a mi je konfiguriemo da izvrava aritmetiku funkciju koju elimo. Za promenu funkcije (izbor je Add, Multiply, AND, OR ili XOR) desnim klikom na izlazni terminal izaberemo Change Modes. Selektujmo opciju Invert iz skaueg menija da promenimo znak numerikog ulaza ili izlaza ili logiku vrednost (iz FALSE u TRUE ili obrnuto), kao to je prikazano na slici 7.39. Mali krug na ulazu ili izlazu simbolizuje invertovanu vrednost.

Slika 7.39 Selektovanje opcije Invert iz skaueg menija jednog od terminala Compound aritmetike funkcije Opcija Invert ima razliit efekt zavisno od moda rada Compound aritmetike funkcije (selektovanog u podmeniju Change Mode u skauem meniju). Tabela 7.1 pokazuje efekat opcije Invert primenjenu na ulaz za svaki od modova rada Compound aritmetike funkcije. Tabela 7.1 Efekat invertovanog ulaza za svaki mod rada Compound aritmetike Mod Neinvertovani ulaz Invertovani ulaz Add sabira ulaz sabira (0 ulaz) Multiply mnoi ulaz Mnoi (1/ulaz) AND AND ulaz AND (NOT ulaz) OR OR ulaz OR (NOT ulaz) 110

XOR ulaz XOR (NOT ulaz) Kada se opcija Invert primeni na izlaz, funkcija je slina. Tabela 7.2 pokazuje efekat opcije invertovanja, primenjenu na izlaz, za svaki mod rada Compound aritmetike funkcije. Tabela 7.2 Efekat invertovanog izlaza za svaki mod rada Compound aritmetike Mod Neinvertovani izlaz Invertovani izlaz Add rezultat 0rezultat Multiply rezultat 1/rezultat AND rezultat NOT rezultat (NAND) OR rezultat NOT rezultat (NOR) XOR rezultat NOT rezultat (NOT XOR) Da bi ovo razjasnili to je mogue bolje, na slici 7.40 je prikazana kolekcija ekvivalentnih operacija.

XOR

Slika 7.40 Ekvivalentne standardne i operacije compound aritmetike (u kolonama) Jednostavniji primer korienja compound aritmetikog vora je prikazan na slici 7.41. Dve ekvivalentne operacije levo pokazuju kako moemo koristiti compound aritmetiki vor za kombinovano sabiranje i oduzimanje. Dve ekvivalentne operacije desno pokazuju kako moemo koristiti compound aritmetiki vor za kombinovano mnoenje i deljenje.

Slika 7.41 Ekvivalentne standardne i operacije compound aritmetike (u kolonama) Sve o klasterima Kao i niz, klaster je struktura podataka koja grupie podatke. Meutim za razliku od niza, klaster moe grupisati podatke razliitog tipa (npr., numerike, logike, itd.). Klaster se moe zamisliti kao sveanj ica, slian kao telefonski kabl. Svaka ica u kablu predstavlja razliiti element klastera. Poto klaster ima samo jednu icu u blok dijagramu (ak i kad nosi vie vrednosti razliitih tipova podataka), klasteri smanjuju prenatrpanost icama i broj konektorskih terminala koji su potrebni subVI. Zapaziemo da se klaster tip podataka pojavljuje esto kada dovodimo podatke na graph i chart. Slike 7.42 i 7.43 ilustruju koncepte spajanja elemenata podataka u klastere i razdvajanja elemenata podataka iz klastera.

111

Slika 7.42 Konceptualna ilustracija koja prikazuje spajanje elemenata podataka prilikom kreiranja klastera

Slika 7.43 Konceptualna ilustracija koja prikazuje razdvajanje elemenata podataka iz klastera Moemo pristupiti elementima klastera njihovim razdvajanjem i to svih odjednom ili indeksiranjem jednog od njih, zavisno od funkcije koju izaberemo; svaki metod ima svoje mesto primene (vidi sliku 7.43). Za razliku od nizova, koji mogu menjati veliinu dinamiki, klasteri imaju fiksnu veliinu ili fiksni broj ica. Moemo povezati terminale klastera sa icom samo ako su istog tipa; drugim reima, oba klastera moraju imati isti broj elemenata i odgovarajui elementi moraju se poklopiti i po tipu podatka i po redosledu. Princip polimorfizma primenjuje se na klastere kao i na nizove, sve dok se poklapaju tipovi podataka. esto emo videti klastere koji se koriste pri radu sa grekama. Slika 7.44 prikazuje klastere greaka, Error In.ctl i Error Out.ctl, koji se koriste u LabVIEW da prenesu snimljene greke izmeu vie VI-a u blok dijagramu. Ovi klasteri greaka se esto koriste pa se nalaze u podpaleti Modern>>Array, Matrix & Cluster palete Controls.

Slika 7.44 Prednji panel koji sadri klastere Error In i Error Out, koji se koriste za rad sa grekama Kreirajmo klaster smetanjem oklopa (koljke) klastera (podpaleta Modern>>Array, Matrix&Cluster palete Controls) na prednji panel. Zatim moemo smestiti bilo koji objekat prednjeg panela unutar klastera. Objekti unutar klastera moraju biti ili sve kontrole ili sve indikatori. Ne moemo kombinovati kontrole i indikatore unutar istog klastera, poto sam klaster mora biti jedno ili drugo. Klaster e biti kontrola ili indikator zavisno od prvog objekta koji ubacimo u njega. Veliinu klastera menjamo Positioning alatkom ako je potrebno. Slika 7.45 prikazuje klaster sa etiri kontrole.

112

Slika 7.45 Prednji panel sa klasterom koji sadri etiri kontrole Moemo kreirati konstante klastera u blok dijagramu na slian nain. Redosled u klasteru Elementi klastera imaju logiki redosled nezavisno od njihove pozicije unutar oklopa. Prvi element smeten u klasteru je nulti element, drugi je element jedan, itd. Ako izbriemo jedan element redosled se automatski podeava. Moramo zadrati trag o redosledu u klasteru ako elimo da ga poveemo za drugi klaster, redosled i tipovi podataka moraju biti identini. Takoe, ako odluimo da razdvojimo elemente klastera sve odjednom, eleemo da znamo koja vrednost odgovara kojem izlazu funkcije klastera. Promena redosleda u klasteru se vri desnim klikom na ivicu klastera i izborom Reorder Controls in Cluster...iz skaueg menija. Nova grupa dugmia se pojavljuje u toolbar-u i menja se izgled klastera, kao to je prikazano na slici 7.46.

Slika 7.46 Podeavanje redosleda elemenata klastera Beli boksevi na elementima pokazuju njihovo trenutno mesto u redosledu klastera. Crni boksevi pokazuju novo mesto. Klikom na element sa Cluster order kursorom podeavamo mesto elementa u redosledu klastera na broj prikazan u toolbar-u. Moemo ukucati novi broj u to polje pre nego kliknemo na objekat. Revert dugme OK dugme Ako ne elimo promene koje smo nainili, vratimo se na stari redosled klikom na dugme Revert. Kada imamo redosled koji elimo, podeavamo ga i vraamo se u prednji panel klikom na OK dugme.

113

Korienje klastera za slanje podataka ka i od SubVI Konektorska ravan VI-a moe imati maksimalno 28 terminala. Mi verovatno ne elimo da poaljemo informacije na svih 28 terminala kada pozivamo subVI, odnosno povezivanje moe biti veoma naporno i lako moemo da nainimo greku. Sprezanjem vie kontrola ili indikatora u klaster moemo koristiti jedan terminal i povezati ga da bi slali nekoliko vrednosti u ili od subVI. Moemo koristiti klastere za rad sa 28 terminala to je ogranienje konektora ili pojednostaviti povezivanje sa nekoliko terminala (koji su stoga vei i laki da se vide). Funkcija za sprezanje (Bundle Function) Funkcija za sprezanje (paleta Programming>>Cluster&Variant) sakuplja individualne komponente u novi klaster ili omoguuje premetanje elemenata u postojei klaster (vidi sliku 7.47). Moemo poveati broj ulaza razvlaenjem donje ivice funkcije pomou Positioning alatke. Kada poveemo svaki ulazni terminal, simbol koji reprezentuje tip podatka povezanog elementa se pojavljuje u praznom terminalu. Redosled u dobijenom klasteru e biti isti kao redosled ulaza u funkciji za sprezanje.

Slika 7.47 Bundle Premetanje elementa klastera Ako elimo da premestimo element u klasteru, poveimo klaster za srednji terminal funkcije za sprezanje (simboli za tipove podataka unutar klastera e se pojaviti na ulazima funkcije za sprezanje) i poveimo novu vrednost(i) elementa koji elimo da premestimo na odgovarajue ulaze. Trebamo da poveemo samo one terminale ije vrednosti elimo da promenimo (vidi sliku 7.48).

Slika 7.48 Premetanje elementa klastera korienjem funkcije za sprezanje Ralanjivanje (razdvajanje) klastera Funkcija za ralanjivanje (Unbundle function) Funkcija za ralanjivanje (paleta Programming>>Cluster&Variant) deli klaster na svaku od njegovih individualnih komponenata (vidi sliku 7.49). Izlazne komponente su ureene od vrha ka dnu i istom redosledu koji imamo u klasteru. Ako imaju isti tip podataka, redosled elemenata u klasteru je jedini nain njihovog izdvajanja. Kada poveemo ulazni klaster sa funkcijom za ralanjivanje, ona automatski menja veliinu da bi obuhvatila isti broj izlaza kao i broj elemenata u ulaznom klasteru i prethodno prazni izlazni terminali prihvataju simbole tipova podataka u klasteru.

Slika 7.49 Unbundle

114

Aktivnost 7-4: Rad sa klasterima Kreiraemo jedan klaster u ovoj aktivnosti, ralaniti ga i zatim ponovo sjediniti i prikazati vrednosti u drugom klasteru (vidi sliku 7.50).

1. 2. 3.

4. 5. 6.

Slika 7.50 Prednji panel VI-a koji emo kreirati u toku ove aktivnosti Otvorimo novi panel i smestimo oklop klastera na njega. Nazovimo ga Input Cluster. Poveajmo oklop. Postavimo digitalnu kontrolu, dva logika prekidaa i znakovnu kontrolu unutar oklopa Input Cluster. Sada kreirajmo Output Cluster kloniranjem Input Cluster. Zatim desnim klikom na objekat u klasteru (ili na ivici klastera) selektujemo Change to Indicator. Takoe promenimo labelu klastera. Takoe moemo kreirati Output Cluster na isti nain kako smo kreirali Input Cluster, korienjem indikatora umesto kontrola. Proverimo da Input Cluster i Output Cluster imaju isti redosled desnim klikom na svaki klaster i izborom Reorder Controls in Cluster... Konano, postavimo pravougaono stop dugme na prednji panel. Izgradimo blok dijagram kao na slici 7.51. Zapazimo da iako svaki klaster sadri etiri objekta, mi vidimo samo jedan terminal po klasteru na blok dijagramu. Uverimo se da je uslovni terminal While petlje postavljen na Stop If True.

Slika 7.51 Blok dijagram VI koji emo kreirati u toku ove aktivnosti 7. Vratimo se na prednji panel i pokrenimo VI. Unesimo razliite vrednosti u kontrolu klastera i posmatrajmo kako indikator klastera prati promene. Pritisnimo STOP dugme da zaustavimo izvravanje. 8. Memoriimo VI kao Cluster Exercise.vi. 9. Zatvorimo VI.

115

Sprezanje i ralanjivanje po imenu Ponekad nije potrebno spojiti ili ralaniti celokupni klaster ve trebamo raditi sa elementom ili dva. Moemo koristiti Bundle By Name i Unbundle By Name da uradimo to. Bundle By Name koje se nalazi u paleti Cluster, obraa se elementima po imenu umesto po poziciji (kao to Bundle radi). Za razliku od Bundle, moemo pristupiti samo elementima koji su nam potrebni. Meutim Bundle By Name ne moe kreirati nove klastere; moe premestiti jedan element u postojeem klasteru. Za razliku od Bundle, uvek moramo povezati srednji ulazni terminal Bundle By Name da bi rekli funkciji u koji klaster zameniti element (vidi sliku 7.52).

Slika 7.52 Bundle By Name Unbundle By Name, takoe locirano u Cluster paleti, daje na izlazu elemente ija imena specificiramo (vidi sliku 7.53).

Slika 7.53 Unbundle By Name Proverimo da svi elementi klastera imaju svoje labele kada koristimo Bundle By Name i Unbundle By Name funkcije. Na primer, ako elimo da zamenimo vrednost Boolean 2 u poslednjem vebanju, moemo koristiti Bundle By Name funkciju bez brige o redosledu ili veliini klastera, kao to je prikazano na slici 7.54.

Slika 7.54 Korienje Bundle By Name za zamenu vrednosti elementa klastera Boolean 2 Slino ako trebamo samo pristupiti vrednosti String, moemo koristiti Unbundle By Name funkciju.

Slika 7.55 Korienje Unbundle By Name za dobijanje vrednosti elementa klastera String im poveemo ulaz klastera funkcije Bundle By Name ili Unbundle By Name, ime prvog elementa u klasteru se pojavljuje u imenu ulaza ili izlaza. Da bi pristupili drugom elementu kliknimo na ime ulaza ili izlaza sa Operating ili Labeling alatkom. Treba da se vidi lista imena svih imenovanih elemenata klastera. Selektujmo na element iz liste i ime e se pojaviti u nazivu terminala. Ovoj listi se moe pristupiti i desnim klikom na ime i izborom Select Item>> (vidi sliku 7.56).

116

Slika 7.56 Korienje skaueg menija jednog izlaznog terminala funkcije Unbundle By Name za prikazivanje/modifikovanje terminala selektovanog elementa Aktivnost 7-5: Jo jedan primer upotrebe klastera U ovoj aktivnosti izgradiemo VI koji proverava da li vrednost digitalne kontrole Numeric 1 u ulaznom klasteru je vea ili jednaka nuli. Ako je manja od nule VI e uzeti apsolutnu vrednost svih kontrola. Ako je Numeric 1 vee ili jednako nuli, VI ne uzima apsolutnu vrednost bilo koje kontrole. Bez obzira na vrednost Numeric 1, VI mnoi sve vrednosti sa 0.5 i prikazuje rezultate u Output Cluster, demonstrirajui kako moemo koristiti polimorfizam sa klasterima (vidi sliku 7.57).

1. 2. 3. 4.

Slika 7.57 Prednji panel VI koji emo kreirati za vreme ove aktivnosti Otvoriti novi panel i postavimo oklop klastera. Nazovimo ga Input Cluster. Kreirajmo Numeric 1, Numeric 2 i Slide kontrole iz palete Programming>>Numeric. Kako ih selektujemo iz palete kliknimo na mesto unutar oklopa klastera. Trebamo ih poreati u specificiranom redosledu i dati im nazive. Sada kreirajmo Output Cluster na isti nain korienjem indikatora (vodei rauna o stavljanju elemenata u klaster u istom redosledu). Ili moemo klonirati Input Cluster i promeniti mu naziv. Izgradimo blok dijagram kao na slici 7.58.

117

Slika 7.58 Blok dijagram VI-a koji emo kreirati u toku ove aktivnosti Funkcija Unbundle By Name Ova funkcija ekstraktuje Numeric 1 iz Input Cluster tako da ga moemo uporediti sa nulom. Funkcija vee ili jednako od nule? Daje na izlazu TRUE ako je na ulazu nula ili pozitivni broj. Funkcija apsolutna vrednost Daje na izlazu ulazni broj ako je taj broj vei ili jednak od nule; ili daje na izlazu inverzan broj ulaznom broju ako je ulazni broj manji od nule. 5. Pokrenimo VI. Probajmo sa pozitivnim i negativnim vrednostima Numeric 1. 6. Memoriimo VI kao Cluster Comparison.vi. Konverzije izmeu nizova i klastera Nekada e biti pogodno da promenimo niz u klaster i obrnuto. Ovo je nekada korisno jer LabVIEW nudi mnogo vie funkcija za rad sa nizovima. Na primer, ako imamo klaster dugmadi na prednjem panelu i elimo da obrnemo redosled vrednosti dugmadi. Tada bi opcija Reverse 1D Array bila idealna, ali samo radi sa nizovima. Tada koristimo funkciju Cluster To Array za promenu klastera u niz, zatim iskoristimo funkciju Reverse 1D Array da okrenemo vrednosti, a zatim koristimo Array to Cluster da vratimo u klaster (vidi sliku 7.59 i 7.60). Slika 7.59 Array To Cluster Slika 7.60 Cluster To Array Cluster To Array konvertuje kluster od N elemenata istog tipa podataka u niz od N elemenata tog tipa. Indeks niza odgovara redosledu u klasteru. Ne moemo koristiti ovu funkciju na klasteru koji sadri nizove elemenata. Array To Cluster konvertuje 1D niz sa N elemenata u klaster sa N elemenata istog tipa podataka; mora se iz skaueg menija terminala Array To Cluster izabrati Cluster Size... da bi se specificirala veliina izlaznog klastera zato to klasteri ne podeavaju veliinu automatski kao nizovi. Obe funkcije su dosta korisne i mogu se nai u podpaleti Programming>>Array i Programming >> Cluster & Variant palete Functions. Modovi funkcije poreenja nizova i klastera

118

Neke funkcije poreenja imaju dva moda za poreenje nizova ili klastera podataka: mod Compare Aggregates i mod Compare Elements. Moemo selektovati mod koji elimo iz podmenija Comparison Mode skaueg menija (prikazano na slici 7.61).

Slika 7.61 Selektovanje moda poreenja polimorfne funkcije sabiranja U modu Compare Aggregate, funkcija poreenja daje jednu logiku vrednost koja je TRUE ako je TRUE za poreenje svih elemenata. U modu Compare Elements, funkcija poreenja daje niz ili klaster logikih vrednosti, koje su rezultat poreenja pojedinanih elemenata. Slika 7.62 prikazuje primer ova dva razliita moda poreenja sa funkcijom sabiranja.

Slika 7.62 Dva razliita moda polimorfne funkcije sabiranja: Compare Elements (levo) i Compare Aggregates (desno) Klasteri greaka i funkcije za rad sa grekama Tip podataka klaster greaka (error cluster) koji se moe nai u paleti Modern >> Array, Matrix & Cluster (Error In i Error Out, prikazano na slici 7.63) i moe se nai kao ulaz i izlaz mnogih VI i funkcija. Klaster greaka je specijalni tip podataka u LabVIEW koji se koristi za prenos informacija o grekama za vreme izvravanja LabVIEW koda. Trebamo razumeti kako se greke javljaju, kako raditi sa grekama.

Slika 7.63 Kontrole Error In i Error Out koje se nalaze u paleti Array, Matrix & Cluster Jednostavno reeno greka je dogaaj kada funkcija ili subVI ne moe kompletirati zahtev zbog toga to resursi nisu dostupni ili informacije (argumenti) koje dolaze do njih nisu validne.

119

Tip podataka Klaster greaka Klaster greaka (vidi sliku 7.64) sadri tri elementa: 1. status logika vrednost oznaava da li postoji greka (TRUE) ili ne postoji (FALSE). 2. code I32 celobrojni kod greke koji identifikuje greku. a. Pozitivni kodovi su greke. b. Negativni kodovi su upozorenja. c. Nula oznaava da nema greaka. 3. source znakovni podatak koji sadri opisnu informaciju o izvoru greaka.

Slika 7.64 Klaster greaka Prenoenje greaka Moemo koristiti klaster greaka za memorisanje informacije o grekama i koristimo tok podataka za prenos klastera greaka kroz blok dijagram. Kao to moemo videti na primeru prikazanom na slici 7.65, klaster greaka prolazi kroz blok dijagram povezivanjem sledee sekvence: 1. error in terminal kontrole je povezan sa Read From Measurement File subVI. 2. Read From Measurement File subVI je povezan sa Amplitude and Level Meausrements subVI. 3. Amplitude and Level Meausrements subVI je povezan sa error out terminalom indikatora.

Slika 7.65 Blok dijagram koji prikazuje kako se klaster greaka koristi za prenos greaka korienjem toka podataka Mnoge od LabVIEW funkcija i VI-a imaju terminale error in i error out. Slika 7.66 i 7.67 prikazuju ulaze i izlaze Read From Measurement File i Amplitude and Level Measurement sa istaknutim error in i error out.

Slika 7.66 Read From Measurement File

120

Slika 7.67 Amplitude and Level Measurements Generisanje i reakcija na greke u subVI Oekivano ponaanje funkcije i VI, to se tie generisanja i reakcije na greke, bi bilo: 1. Ako error in sadri greku (status = TRUE), ne radi nita dok ne poisti npr. a. zatvaranje fajlova. b. zatvaranje instrumenata ili drugih komunikacija. c. vraanje sistema u sigurno stanje (gaenje motora). 2. Ako se greka javlja unutar funkcije ili VI, funkcija treba da prosledi informaciju o greci preko error out terminala ukoliko ve ne proputa greku koju je primila preko error in terminala. Tada samo proputa prihvaenu greku sa error in na error out, nepromenjenu. Error Case struktura Error Case struktura ima klaster greke povezan za njen selektorski terminal. Kao to moemo videti na slici 7.68 case struktura omoguuje klasteru greaka povezivanje za njen selektorski terminal. Imena frejmova case strukture se menjaju u No Error i Error. U toku izvravanja ako klaster greaka ne sadri greke onda e se izvravati frejm No Error, odnosno ako sadri izvravae se frejm Error.

Slika 7.68 Error Case struktura koja sadri sluajeve Error i No Error Slika 7.69 prikazuje kako koristiti case strukturu za uslovno izvravanje funkcionalnog koda samo kada nema greaka.

Slika 7.69 Error Case struktura se koristi za izvravanje koda samo kada nema greaka 121

Spajanje greaka Nekada emo eleti da spojimo klastere greaka koji izlaze iz delova programa sa dolazeim strimom klastera greaka korienjem funkcije Merge Errors.vi, kao to je prikazano na slici 7.70.

Slika 7.70 Korienje Merge Errors.vi za kombinovanje nekoliko klastera greaka u jedan klaster greaka U primeru prikazanom na slici 7.71 vano je da dolazei strim greaka bude povezan za error in 1 tako da one imaju prioritet u odnosu na greke koje se javljaju unutar naeg subVI.

Slika 7.71 Merge Errors.vi Generisanje greaka u subVI Kada pozovemo subVI ili funkciju i ona generie greku, moemo ili pokuati ponovo ili odustati i proslediti greku. Za generisanje nove greke (npr., usled pogrenog ulaza koji dolazi iz pozvanog VI-a) trebamo koristiti Error Cluster From Error Code.vi za generisanje nove greke (vidi sliku 7.72).

Slika 7.72 Error Cluster From Error Code.vi Error Cluster From Error Code.vi iz palete Programming >> Dialog & User Interface konvertuje greku ili upozorenje u klaster greke. Na primer, slika 7.73 prikazuje kako moemo generisati greku u subVI kada je doveden nepravilni argument subVI-u. U ovom primeru raunamo kvadratni koren broja x. Ako je x negativno imaemo greku na izlazu (kod greke 1, koji oznaava greku argumenta) i prepodeeni izlazni podatak.

Slika 7.73 Raunanje kvadratnog korena 122

Prikazivanje poruke o greci korisniku Ako se greka ne moe obraditi prikazujemo poruku o greci korisniku. Slika 7.74 prikazuje greku koja je prola do Simple Error Handler.vi (Programming >> Dialog & User Interface) za prikazivanje dijaloga koji sadri informaciju o greci. U ovom konkretnom sluaju proputen je negativni broj subVI-u prikazanom na slici 7.73.

Slika 7.74 Prikazivanje greke korisniku Simple Error Handler.vi (Programming >> Dialog & User Interface) indicira da li se greka javila. Ako se javila ovaj VI daje opis greke i opcionalno prikazuje dijalog boks.

Slika 7.75 Simple Error Handler.vi Korienje Explain Error dijaloga Kada kontrola ili indikator klastera greaka sadri greku ili upozorenje, moemo nauiti vie o greci selektovanjem Explain Error iz skaueg menija klastera, kao to je prikazano na slici 7.76.

Slika 7.76 Selektovanje Explain Error iz skaueg menija klastera greke da bi se otvorio Explain Error dijalog (prikazan na slici 7.77)

Slika 7.77 Dijalog Explain Error koji prikazuje detaljnije objanjenje greke 123

Skoro je uvek dobra ideja proveriti greke unutar petlje, tako da moemo izai iz petlje ako se greka javi. Slika 7.78 prikazuje kako se ovo radi.

Slika 7.78 Provera greaka u While petlji radi izlaza iz petlje kada se javi greka Korienje pomerakih registara za prenos greaka kroz petlju Uvek koristiti pomerake registre (ne tunele) za prenos klastera greaka kroz zid petlje. Ovo je posebno vano za For petlju, kao to je prikazano na slici 7.79.

Slika 7.79 Korienje pomerakih registara za prenos greaka kroz petlju Aktivnost 7-6: Obrtanje redosleda Izgradimo VI koji obre redosled niza koji sadri 100 sluajnih brojeva. Na primer, niz[0] postaje niz[99], niz[1] postaje niz[98] itd. Nazovimo ga kao Reverse Random Array.vi. Aktivnost 7-7: Uzimanje podgrupe Izgradimo VI koji generie niz koji sadri 100 sluajnih brojeva i prikazuje porciju niza; na primer, od indeksa 10 do indeksa 50. Nazovimo ga kao Subset Random Array.vi. Koristimo Array Subset funkciju za ekstraktovanje porcije niza. Aktivnost 7-8: Kocka Izgradimo VI koji simulira bacanje kocke (mogue vrednosti od 1-6) i uva koji broj puta se kocka zaustavila na svakoj vrednosti. Ulaz je broj bacanja kockice, a izlazi obuhvataju (za svaku moguu vrednost) broj puta koji je kockica pala na datu vrednost. Nazovimo ga kao Die Roller.vi. Bie potrebno koristiti pomerake registre da bi se sauvale vrednosti iz jedne iteracije petlje za drugu iteraciju. Aktivnost 7-9: Mnoenje elemenata niza Izgradimo VI koji uzima ulazni 1D niz i zatim mnoi parove elemenata (poev od elemenata 0 i 1) i daje na izlazu rezultujue niz. Na primer, ulazni niz sa vrednostima 1, 23, 10, 5, 7, 11 e dati izlazni niz 23, 50, 77. Nazovimo ga kao Array Pair Multiplier.vi.

124

Osmi deo - Vizualizacija u LabVIEW-charts i graphs


Charts i graphs u LabVIEW nam omoguavaju prikazivanje podataka u grafikom obliku. Charts interaktivno iscrtavaju podatke, dodavanjem novih podataka starim tako da moemo videti trenutnu vrednost u kontekstu prethodnih podataka, u trenucima kada novi podaci postaju dostupni. Graphs iscrtavaju prethodno generisane nizove vrednosti u tradicionalnijem obliku, bez zadravanja prethodno generisanih podataka. Waveform charts Grafik (plot) je jednostavno grafiko prikazivanje vrednosti X u zavisnosti od vrednosti Y. esto, vrednosti Y na grafiku predstavljaju vrednosti podataka, dok vrednosti X predstavljaju vreme. Waveform chart, koji se nalazi u podpaleti Modern>>Graph palete Controls, je specijalni numeriki indikator koji moe prikazivati jedan ili vie grafika podataka. Najee korien unutar petlji, chart zadrava i prikazuje prethodno obraene podatke, dodaje nove podatke u trenutku kad oni postaju dostupni na displeju koji se konstantno osveava. Na chart-u, vrednosti Y predstavljaju nove podatke, a vrednosti X predstavljaju vreme (esto, svaka vrednost Y se generie u iteraciji petlje, tako da vrednost X predstavlja vreme za jednu petlju). LabVIEW ima samo jedan tip chart-a, ali chart ima tri razliita moda osveavanja za interaktivno prikazivanje podataka. Slika 8.1 pokazuje primer waveform chart sa vie grafika.

Slika 8.1 Waveform chart sa vie grafika Waveform chart ima tri moda osveavanja: strip chart mod, scope chart mod i sweep chart mod, prikazani na slici 8.2. Modovi osveavanja se mogu menjati desnim klikom na waveform chart i izborom jedne od opcija iz menija Advanced>>Update Mode>>.

Slika 8.2 Modovi osveavanja chart-a Strip chart ima klizei displej slian papirnom strip chart-u. Scope chart i sweep chart imaju povratne displejeve sline osciloskopu. Kod scope chart-a kada grafik pree desnu ivicu polja za iscrtavanje, grafik se brie i iscrtavanje poinje ponovo od leve ivice. Sweep

125

chart se ponaa slino kao scope chart, ali displej ne ostaje prazan kada podaci premae desnu ivicu. Umesto toga, pokretna vertikalna linija oznaava poetak novih podataka i pomera se preko displeja kako pristiu novi podaci. Scope chart i sweep chart rade znaajno bre od strip chart-a. Chart-ovi pretpostavljaju da X vrednosti uvek predstavljaju ravnomerno rasporeene take. Sa LabVIEW chart-ovima jedino obezbeujemo Y vrednost i ne specificiramo X vrednost. X vrednost se inkrementira automatski svaki put kada se nova Y vrednost dodaje chart-u. Za proizvoljne X vrednosti koristiti graph umesto chart-a. Chart prihvata waveform tip podataka, naravno pored numerikih skalara i nizova. Waveform tip podataka sadri vremenske informacije unutar njega (kao to je vremenski trenutak prve take podataka i vremenski razmak izmeu taaka). Chart e koristiti vremenske informacije za prikazivanje podataka to znai da se inicijalna X vrednost i razmak izmeu taaka mogu biti razliiti svaki put kad se podaci ispisuju na chart-u. Chart-ovi sa jednim grafikom Najednostavniji nain korienja chart-a je povezivanje skalarne vrednosti za terminal chart-a u blok djagramu, kao to je prikazano na slici 8.3. Jedna taka se dodaje prikazanom signalu u svakoj iteraciji petlje.

Slika 8.3 Chart sa jednim grafikom, osveava se jedna taka u trenutku Moemo takoe chart sa jednim grafikom osveavati sa vie taaka u trenutku, kao to je prikazano na slici 8.4, njihovim prosleivanjem u vidu niza vrednosti.

Slika 8.4 Chart sa jednim grafikom, osveavaju se vie taaka u trenutku Povezivanje chart-a sa vie grafika Waveform chart mogu takoe prikazivati vie od jednog grafika. Meutim, poto ne moemo povezati izvore iz vie blok dijagrama na jedan terminal chart-a, moramo prvo spojiti podatke zajedno korienjem Bundle funkcije (paleta Programming >> Cluster & Variant). Na slici 8.5 Bundle funkcija grupie izlaze tri razliita VI-a koji mere temperaturu u klaster tako da se mogu prikazati na waveform chart. Da bi poveali broj grafika, jednostavno poveajmo broj ulaznih terminala Bundle funkcije pomou Positioning alatke.

Slika 8.5 Grupisanje taaka podataka da bi se kreirao waveform chart sa vie grafika 126

Chart-ovi i graph-ovi su polimorfni, oni e prihvatiti nekoliko razliitih tipova podataka, omoguavajui nam da kreiramo jedan ili vie grafika. Prikazivanje digitalnog displeja Kao neki drugi numeriki indikatori, chart-ovi imaju opciju prikazivanja ili sakrivanja digitalnog displeja (desnim klikom na chart odemo na opciju Visible Items>>). Digitalni displej prikazuje zadnju vrednost koja je prikazana na chart-u. X kliza (scrollbar) Chart-ovi takoe imaju X kliza koji moemo prikazati ili sakriti iz skaueg menija Visible Items>>. Moemo koristiti kliza za prikazivanje starijih podataka koji se ne vide na chart-u. Brisanje chart-a Nekada se javlja kao potreba da se uklone svi prethodni podaci sa displeja chart-a. Selektujemo Data Operations >>Clear Chart iz skaueg menija chart-a da bi oistili chart. Nekada emo eleti da izvrimo operaciju Clear chart programski, na primer, kada prvi put pokreemo VI. Da bi ovo uradili moraemo da upiemo prazan niz u History Data kontroli chart-a, kao to je prikazano na slici 8.6.

Slika 8.6 Upisivanje u Waveform Chart History niza bez podataka da bi ga obrisali, pre prikupljanja novih podataka 1. Kreiranje vora desnim klikom na terminal Waveform chart-a i selektovanjem Create Property Node>>History Data. 2. Desnim klikom na vor History Data selektujemo Change to Write. 3. Desnim klikom na vor History Data selektujemo Create Constant da bi kreirali konstantu praznog niza koja je povezana za History osobinu chart-a. Stacked i overlaid grafici Ako imamo chart sa vie grafika, moemo birati da li e prikazivati sve grafike sa istom Y osom, zvani overlaid grafici; ili emo svakom grafiku dati svoju Y skalu, nazvan stacked grafik. Moemo selektovati stack grafike ili overlaid grafike iz skaueg menija chart-a. Slika 8.7 ilustruje razliku izmeu stacked i overlaid grafika.

Slika 8.7 Waveform chart u modu stack grafika (levo) i modu overlay grafika (desno)

127

Vie Y skala Ako imamo chart sa vie grafika, nekada emo eleti overlaid grafik koji ima razliite skale za svaki grafik; na primer, ako je Y opseg jednog grafika od -1 do +1 a drugog -100 do +100, bie teko videti oba bez posebnih skala za svaki. Vie skala za Y osu kreiramo desnim klikom na Y osu i selektovanjem Duplicate Scale. Posle dupliciranja skale moda emo eleti da je pomerimo na drugu stranu chart-a desnim klikom na skalu i selektovanjem Swap Sides. Da izbriemo Y skalu desnim klikom na skalu selektujemo Delete Scale. Slika 8.8 ilustruje dve Y skale na chart-u sa vie grafika, svaka na po jednoj strani chart-a.

Slika 8.8 Waveform Chart sa dve Y skale Duina istorije chart-a Podeeno je da waveform chart moe smestiti do 1,024 taaka podataka. Ako elimo da smestimo vie selektujemo Chart History Length... iz skaueg menija i specificiramo novu vrednost izmeu 10 i 2,147,483,647 taaka (realna granica moe biti manja, to zavisi od veliine RAM memorije). Promena veliine bafera ne menja broj podataka koji su prikazani na ekranu, promenom veliine chart-a prikazujemo vie ili manje podataka u trenutku. Meutim, poveanje veliine bafera poveava iznos podataka na koje se moemo vratiti klizaem. Aktivnost 8-1: Nadgledanje temperature Izgradiemo VI koji meri temperaturu i prikazuje rezultate merenja na waveform chart. 1. Otvorimo novi prednji panel. Kreiraemo panel prikazan na slici 8.9.

Slika 8.9 Prednji panel VI-a koji emo kreirati tokom ove aktivnosti 2. Postavimo vertikalni prekida (Modern>>Boolean paleta) u prozoru prednjeg panela. Nazovimo ga Enable. Koristiemo prekida da stopiramo akviziciju temperature.

128

3. Postavimo waveform chart (Modern>>Graph paleta) u prozoru panela. Nazovimo ga Temp History. Waveform chart e prikazivati temperaturu u realnom vremenu. 4. Waveform chart ima digitalni displej koji prikazuje zadnju vrednost. Desnim klikom na waveform chart izaberemo Visible Items>>Digital Display iz skaueg menija. 5. Poto temperaturni senzor meri sobnu temperaturu, podesimo skalu waveform chart-a tako da moemo videti temperaturu. Korienjem Labeling alatke duplim klikom na 10 na skali waveform chart-a, ukucamo 90, i kliknemo negde izvan. Na isti nain promenimo 10 u 70. 6. Otvorimo blok dijagram i izgradimo ga kao na slici 8.10.

Slika 8.10 Blok dijagram VI-a koji emo kreirati tokom ove aktivnosti 7. Smestimo While petlju u prozoru blok dijagrama. Desnim klikom na uslovni terminal While petlje selektujemo Continue if True. 8. Smestimo oba terminala unutar petlje. 9. Importujemo Thermometer subVI. Ovaj VI daje jedno merenje temperature iz temperaturnog senzora. Ubacujemo ga korienjem Select a VI...dugmeta u paleti Functions. 10. Poveimo blok dijagram kao na slici 8.10. 11. Vratimo se na prednji panel i ukljuimo vertikalni prekida klikom na njega Operating alatkom. Pokrenimo VI. 12. Da zaustavimo akviziciju kliknimo na vertikalni prekida. Ova akcija daje uslovnom terminalu petlje vrednost FALSE i petlja se zaustavlja. 13. Waveform chart ima bafer koji zadrava odreeni broj taaka posle njihovog nestajanja sa ekrana. Moemo prikazati kliza desnim klikom na waveform chart i selektovanjem Visible Items>>Scrollbar iz skaueg menija. Za pomeranje kroz waveform chart klikemo na strelicu u klizau. 14. Uverimo se da je prekida TRUE i pokrenimo ponovo VI. Ovaj put, pokuajmo da promenimo mod osveavanja chart-a. Iz skaueg menija izaberimo Update Mode>>Scope Chart. Primetimo razliku u izgledu displeja chart-a. Korienje mehanike akcije logikih prekidaa Sigurno smo primetili da svaki put kada pokrenemo ovaj VI, moramo prvo ukljuiti vertikalni Enable prekida pre klika na run dugme. Moemo modifikovati mehaniku akciju logike kontrole da bi promenili njeno ponaanje. LabVIEW nudi est mogua izbora za mehaniku akciju logike kontrole. Prebacuje kada je pritisnut (switch when pressed) Ova akcija menja vrednost kontrole svaki put kada kliknemo na kontrolu pomou Operating alatke. Na nju ne utie koliko esto VI oitava kontrolu. Prebacuje kada se odputa (switch when released) 129

Ova akcija menja vrednost kontrole samo kada se odputa dugme mia za vreme klika miom na kontrolu. Na nju ne utie koliko esto VI oitava kontrolu. Prebacuje dok se ne odpusti (switch until released) Ova akcija menja vrednost kontrole kada kliknemo na kontrolu. Zadrava novu vrednost dok ne odpustimo dugme mia, kada se kontrola vraa na poetnu vrednost. Akcija je slina kada pritisnemo zvono na vratima. Latch when pressed Ova akcija menja vrednost kontrole kada kliknemo na kontrolu. Zadrava novu vrednost dok ga VI ne oita jedanput, kada se kontrola vraa na njenu poetnu vrednost. Ova akcija se deava kada nastavimo ili ne sa pritiskom na dugme mia. Latch when released Ova akcija menja vrednost kontrole samo posle odputanja dugmeta mia. Kada VI oita vrednost jednom, kontrola se vraa na staru vrednost. Ova akcija garantuje najmanje jednu novu vrednost. Latch until released Ova akcija menja vrednost kontrole kada kliknemo na kontrolu. Zadrava vrednost sve dok VI ne oita jednom vrednost ili dok ne odpustimo dugme mia. 15. Modifikujmo vertikalni prekida tako da ne moramo da ukljuujemo prekida na stanje TRUE svaki put kada pokreemo VI. a. Prebacimo vertikalni prekida u on (TRUE). b. Iz skaueg menija prekidaa izaberimo Data Operations>>Make Current Value Default da bi uinili on poziciju predefinisanom. c. Iz skaueg menija prekidaa izaberimo Data Operations>>Latch When Pressed. 16. Pokrenimo VI. Kliknimo na vertikalni prekida da stopiramo akviziciju. Prekida se prebacuje u off poziciju kratko i zatim se automatski vraa u on posle oitavanja FALSE vrednosti od strane uslovnog terminala While petlje. Dodavanje vremenske funkcije Kada pokrenemo VI u ovoj aktivnosti While petlja se izvrava najbre koliko je mogue. Moda elimo da uzimamo podatke u odreenim intervalima, kao to je na primer jednom u sekundi ili jednom u minuti. Moemo kontrolisati vreme izvravanja petlje korienjem Wait Until Next ms Multiple funkcije. 17. Modifikujmo VI da uzima merenje temperature otprilike jednom svake pola sekunde ubacivanjem segmenta koda prikazanog na slici 8.11 u While petlju.

Slika 8.11 Wait Until Next ms Multiple Ova funkcija omoguava da je poetak izvravanja svake iteracije sinhronizovan na pola sekundu (500 ms). Ova funkcija e ekati dok broja tajmera ne premai specificiranu vrednost. 18. Pokrenimo VI. Probajmo sa razliitim vrednostima broja milisekundi. 130

19. Memoriimo i zatvorimo VI. Nazovimo ga Temperature Monitor.vi. Graph-ovi Za razliku od chart-ova, koji crtaju grafik interaktivno, graph-ovi iscrtavaju prethodno generisane nizove podataka odjednom; oni nemaju mogunost dodavanja novih vrednosti na prethodno generisane podatke. LabVIEW obezbeuje nekoliko tipova graph-ova za veu fleksibilnost: waveform graphs, XY graphs, intensity graphs, 3D graphs, digital waveform graphs i neki specijalizovani graph-ovi. Waveform graph-ovi i XY graph-ovi izgledaju identino na prednjem panelu VI-a ali imaju veoma razliitu funkcionalnost. Jedan primer graph-a sa nekoliko ukljuenih opcija je prikazan na slici 8.12.

Slika 8.12 Waveform graph sa nekoliko ukljuenih opcija Oba tipa graph-a se nalaze u podpaleti Modern>>Graph palete Controls. Waveform graph-ovi iscrtavaju funkcije jedne promenljive (samo jedna vrednost Y za svako X) sa podjednako rasporeenim takama, kao to su odmerci signala, signali promenljive amplitude. Waveform graph-ovi su idealni za iscrtavanje nizova podataka u kojima su take ravnomerno rasporeene. XY graph-ovi su opte primene, idealni za iscrtavanje podataka sa promenljivim vremenskim osnovama ili podataka sa nekoliko Y vrednosti za svaku X vrednost, kao to su kruni oblici. Waveform graph-ovi sa jednim grafikom Za osnovne graph-ove sa jednim grafikom moemo povezati niz Y vrednosti direktno za terminal waveform graph-a, kao to je prikazano na slici 8.13. Ovaj metod pretpostavlja da je inicijalna vrednost X nula, a delta X vrednost (tj., inkrement izmeu X vrednosti) je jedinica. Primetimo da se terminal graph-a u blok dijagramu prikazanom na slici 8.13 pojavljuje kao indikator niza (ako deselektujemo View as Icon iz skaueg menija).

Slika 8.13 Dovoenje 1D niza waveform graph-u kako bi prikazao jedan grafik sa vie taaka Ponekada emo eleti fleksibilnost promene vremenske baze graph-a. Na primer, poinjemo odmeravanje u trenutku drugaijem od inicijalnog X = 0 (ili X0 = 0), ili su odmerci odvojeni vie (ili manje) od jedinice, ili delta X = 1 (X=1). Da bi promenili vremensku bazu, spojimo vrednost X0, vrednost X i podatke niza u klaster; zatim poveimo klaster za graph. Primetimo na slici 8.14 da se terminal graph-a sada pojavljuje kao indikacija klastera. 131

Slika 8.14 Dovoenje klastera sa X0, dX i 1D nizom koji specificira vremenske informacije jednog grafika Waveform graph-ovi sa vie grafika Moemo prikazati vie od jednog grafika na waveform graph kreiranjem niza (ili 2D niza) od tipova podataka korienih u primerima sa jednim grafikom (vidi sliku 8.15). Primetimo kako terminali graph-a menjaju izgled zavisno od strukture podataka koji su povezani za njih (niz, klaster, niz klastera, itd.) i tipa podataka (I16, DBL, itd.).

Slika 8.15 Dovoenje 2D niza waveform graph-u koji prikazuje dva grafika (grafici su u redovima 2D niza a take su u kolonama) Slika 8.15 pretpostavlja da inicijalna vrednost X je 0 i delta X vrednost je 1 za oba niza. Build Array funkcija kreira 2D niz od dva 1D niza. Primetimo da ovaj 2D niz ima dva reda sa 100 kolona po redu. Predefinisano je da graph-ovi crtaju svaki red 2D niza kao odvojeni talasni oblik. Nekada je potrebno transponovati 2D niz za ta postoji funkcija Transpose 2D Array koja se nalazi u podpaleti Array. Na slici 8.16, vrednost X0 i vrednost X (ili delta X) za svaki niz je specificirana. Ovi X parametri ne moraju da budu isti za oba seta podataka.

Slika 8.16 Graenje niza od klastera sa jednim grafikom (X0, dX i Y niz) u cilju kreiranja vie grafika na graph-u Aktivnost 8-2: Prikazivanje sinusnog signala na waveform graph 1. Izgradiemo VI koji generie niz sinusnog talasa i prikazuje ga na waveform graph. Takoe emo modifikovati VI da iscrtava vie grafika (vidi sliku 8.17). 2. Smestimo koljku niza na prednji panel. Nazovimo je Waveform Array. Postavimo digitalni indikator unutar prozora Data Object koljke niza. 3. Postavimo waveform graph na prednji panel. Nazovimo ga Waveform Graph i poveajmo ga pomou Positioning alatke. Sakrijmo legendu desnim klikom na graph i selektovanjem Visible Items>>Plot Legend. 132

Iskljuimo autoskaliranje desnim klikom i izborom Y Scale>>AutoScale Y. Modifikujmo granice Y ose njihovim selektovanjem pomou Labeling alatke i unoenjem brojeva: za minimum -1.0 i za maksimum 1.0.

Slika 8.17 Prednji panel VI-a koji emo kreirati tokom ove aktivnosti 4. Izgradimo blok dijagram kao na slici 8.18.

Slika 8.18 Blok dijagram VI-a koji emo kreirati tokom ove aktivnosti Sinusna funkcija Sinusna funkcija (Mathematics >> Elementary & Special Functions >> Trigonometric Functions paleta) izraunava sin(x) i daje na izlazu jednu taku sinusnog signala.VI trai na ulazu skalarni indeks koji se oekuje u radijanima. U naem vebanju x ulaz se menja sa svakom iteracijom petlje. Svaka iteracija For petlje generie jednu taku signala i smeta je u waveform niz koji se kreira na ivici petlje. Kada petlja zavri sa izvravanjem, Bundle funkcija povezuje inicijalnu vrednost za X, delta vrednost za X i niz radi njihovog iscrtavanja na graph-u. 5. Vratimo se na prednji panel i pokrenimo VI. 6. Sada promenimo vrednost delta X na 0.5 i inicijalnu vrednost X na 20 i pokrenimo ponovo VI. Primetimo da sada graph prikazuje isto 100 taaka sa startnom vrednou 20 i delta X 0.5 za svaku taku (prikazano na X osi). 7. Razvuimo koljku niza pomou Positioning alatke tako da vidimo nekoliko elemenata, kao to je prikazano na slici 8.19. Ne zaboravimo da moemo videti bilo koji element niza jednostavno unoenjem indeksa tog elementa.

Slika 8.19 Waveform niz naeg prednjeg panela VI-a posle njegovog pokretanja U blok dijagramu sa slike 8.18, specificiramo inicijalno X i delta X za signal. esto, inicijalna vrednost X e biti nula i delta X e biti 1. U ovim sluajevima moemo

133

waveform niz povezati direktno na terminal waveform graph-a kao to je prikazano na slici 8.20.

Slika 8.20 Blok dijagram naeg VI-a posle kompletiranja koraka 8 8. Vratimo se na prozor blok dijagrama. Izbriimo Bundle funkciju i numeriku konstantu povezanu sa njom, zatim selektujmo Remove Broken Wires iz menija Edit ili iskoristimo preicu <control-B>. Zavrimo povezivanje blok dijagrama kao na slici 8.20. 9. Pokrenimo VI. Uoimo razlike. Graph-ovi sa vie grafika Moemo takoe kreirati waveform graph-ove sa vie grafika povezivanjem tipova podataka koji se normalno prosleuju do graph-a sa jednim grafikom, ali prvo do Build Array funkcije, a zatim do graph-a. 10. Kreirajmo blok dijagram kao na slici 8.21. Kosinusna funkcija Kosinusna funkcija (Mathematics >> Elementary & Special Functions >> Trigonometric Functions paleta) izraunava cos(x) i daje na izlazu jednu taku kosinusnog signala. VI trai na ulazu skalarni indeks koji se oekuje u radijanima. U naem vebanju x ulaz se menja sa svakom iteracijom petlje.

Slika 8.21 Na VI posle dodavanja dodatnog grafika 11. Prebacimo se na prednji panel. Pokrenimo VI. Primetimo dva signala na istom waveform graph-u. 12. Samo da bi videli ta e se desiti desnim klikom na graph izaberimo Transpose Array. 13. Memoriimo i zatvorimo VI. Nazovimo ga Graph Sine Array.vi. XY graph-ovi Waveform graph-ove smo koristili za iscrtavanje ravnomerno odmerenih signala. Meutim, ako odmeravamo u nejednakim intervalima ili ako prikazujemo matematike funkcije koje imaju vie vrednosti Y za istu vrednost X, moramo specificirati take korienjem njihovih (X, Y) koordinata. XY graph-ovi prikazuju razliite tipove podataka. XY graph sa jednim grafikom i njegov blok dijagram su prikazani na slikama 8.22 i 8.23.

134

Slika 8.22 Prednji panel sa XY graph-om koji prikazuje XY podatke

Slika 8.23 Blok dijagram koji generie XY podatke i prikazuje ih na XY graph Za jedan grafik, XY graph oekuje ulaz spregnutog X niza (gornji ulaz) i Y niza (donji ulaz). Bundle funkcija kombinuje nizove X i Y u klaster povezan za XY graph. Terminal XY graph-a sada se pojavljuje kao klaster indikator, kao to je prikazano na slici 8.23. Za XY graph sa vie grafika, jednostavno izgradimo niz klastera sa jednim grafikom (vrednosti niza X i Y), kao to je prikazano na slici 8.24.

Slika 8.24 Vie grafika (1D niz klastera sa jednim grafikom) Takoe moemo kreirati jedan grafik iz niza XY klastera sa parovima koordinata, kao to je prikazano na slici 8.25.

Slika 8.25 Niz XY parova koordinata jednog grafika Prikazivanje opcionalnih ravni u XY graph-u XY graph-ovi nam omoguavaju da prikaemo specijalne linije mree, nazvane ravni, njihovim selektovanjem iz skaueg podmenija Optional Plane. Moemo izabrati 135

Nikvistovu, Nikolasovu, S i Z ravan. Ove ravni su veoma korisne u Radio frekventnim (RF) analizama, kao i analizama zvuka i vibracija, gde se signali analiziraju u frekventnom domenu. Moemo prikazati ili sakriti Cartesian (XY) linije mree iz skaueg menija XY graph-a i izborom opcije Optional Plane>>Show Cartesian Lines. Slike 8.26 i 8.27 prikazuju XY graph sa vidljivom Nikvistovom i Z ravni.

Slika 8.26 XY graph sa vidljivom Nikvistovom ravni

Slika 8.27 XY graph sa vidljivom Z ravni

136

Komponente chart-a i graph-a 1 Legenda grafika 2 Kursor 3 Grid mark 4 Minor-grid mark 5 Paleta graph-a 6 Pokreta kursora 7 Legenda kursora 8 Legenda skale 9 X-skala 10 Y-skala 11 Labela

Slika 8.28 Elementi graph-a Chart-ovi i graph-ovi mogu automatski podeavati njihove horizontalne i vertikalne skale, tj. skale se prilagoavaju u cilju prikazivanja svih taaka na graph-u u najveoj rezoluciji. Moemo ukljuiti ovu mogunost autoskaliranja korienjem opcija AutoScale X i AutoScale Y iz menija X skale i Y skale. Meniji X i Y skale X i Y skala imaju podmenije opcija kao to je prikazano na slici 8.29.

Slika 8.29 Opcije podmenija X i Y skale graph-a Normalno, skale su podeene na taan opseg podataka kada primenimo operaciju autoskaliranja. Moemo koristiti opciju Loose Fit ako elimo da LabVIEW zaokrui skalu na lepe brojeve. Pomou loose fit brojevi se zaokruuju na umnoak inkrementa korienog za skalu. The Formatting...opcija daje nam dijalog boks Graph Properties sa aktivnim tabom Format and Precision, kao to je prikazano na slici 8.30. Ovde moemo konfigurisati numeriko formatiranje skale.

137

Slika 8.30 Format and Precision tab dijaloga Graph Properties

Slika 8.31 Scales tab dijaloga Graph Properties U Scales tabu dijalog boksa Graph Properties, kao to je prikazano na slici 8.31, moemo konfigurisati sledee opcije: Name je naziv ose. Show scale label ekiranje omoguava nam prikazivanje (ekirano) ili sakrivanje (deekirano) naziva ose. Log ekiranje omoguava nam selektovanje linearne (deekirano) ili logaritamske (ekirano) skale za displej podataka. 138

Inverted ekiranje omoguava nam definisanje da li su minimalne i maksimalne vrednosti ose na skali obrnute (ekirano) ili ne (deekirano). Koristiti Autoscale za ukljuivanje ili iskljuivanje opcije autoskaliranja. Ako je autoskaliranje iskljueno, moemo koristiti Minimum i Maximum za podeavanje opsega skale. Meni Scale Style and Colors omoguava nam selektovanje glavnih i sporednih oznaka za skalu ili njihovog izostavljanja. Ovaj meni nam takoe omoguava da selektujemo markere za date ose kao vidljive ili nevidljive. Grid Style and Colors omoguava nam izbor izmeu opcije bez pomonih linija samo na lokacijama glavnih oznaka ili opcije sa pomonim linijama i na glavnim i na sporednim oznakama. Moemo menjati boju pomonih linija. Moemo podesiti Offset, X vrednost od koje elimo startovati, i Multiplier, inkrement izmeu X vrednosti, u sekciji Scaling Factors.

Legenda skale Legenda skale nam omoguava kreiranje labela za X i Y skalu (ili za vie XY skala, ako imamo vie od jedne) i imamo lak pristup njihovom konfigurisanju. Legenda skale nam daje dugmie za skaliranje X i Y ose, promenu formata displeja i autoskaliranje. Desnim klikom na graph ili chart i izborom Visible Items>>Scale Legend e nam dati boks slian onom prikazanom na slici 8.32.

Slika 8.32 Legenda skale U okviru legende skale moemo ukucati imena naih skala. Moemo kliknuti na dugmie radi konfigurisanja istih opcija kao i u X/Y Scale formatting skauem prozoru koji smo opisali (vidi sliku 8.33). Ovo je samo laki nain pristupa informacijama.

Slika 8.33 Opcije skaueg menija dugmia legende skale Dugme za zakljuavanje skale Koristimo Operating alatku da kliknemo na dugme za zakljuavanje skale da ukljuimo autoskaliranje za svaku skalu, vidljivost skale, itd. Legenda grafika Chart-ovi i graph-ovi koriste predodreeni stil za svaki grafik ukoliko nemamo kreiran na stil za njega. Legenda grafika nam omoguava da nazovemo, obojimo, selektujemo stil linije i izaberemo stil taaka za svaki grafik. Prikazivanje i sakrivanje legende vri se korienjem opcije Visible Items>>Plot Legend iz skaueg menija. Moemo takoe specificirati ime svakog grafika u legendi. Jedan primer legende je prikazan na slici 8.34.

Slika 8.34 Legenda grafika 139

Kada selektujemo legendu grafika samo jedan grafik se pojavljuje u boksu. Moemo prikazati vie grafika razvlaenjem ugla legende pomou Positioning alatke. Posle podeavanja karakteristika grafika u legendi, grafik zadrava ta podeavanja, bez obzira da li je legenda vidljiva. Moemo menjati poziciju legende njenim vuenjem na novu lokaciju. Kada pomeramo chart ili graph i legenda se pomera zajedno s njima. Predodreeno je da je svaki grafik nazvan brojem, poev od nule. Moemo modifikovati ovu labelu ukucavanjem nove pomou Labeling alatke. Svaki grafik ima svoj meni za promenu grafika, linije, boje i stila taaka grafika. Moemo pristupiti ovom meniju klikom na legendu pomou Operating alatke. Opcija Common Plots omoguava nam lako konfigurisanje grafika u korienju bilo kog od est popularna stila, koji ukljuuju scatter, bar i fill to zero (vidi sliku 8.35). Opcije u ovoj podpaleti konfiguriu stilove taaka, linije i ispunjavanja graph-a u jednom koraku.

Slika 8.35 Podeavanje izgleda grafika izborom jednog od Common Plots u legendi grafika Opcija Color prikazuje paletu Color tako da moemo selektovati boju grafika. Boje grafika se mogu menjati u toku rada VI-a. Line Style i Line Width nude razliite tipove ablona i debljina linija grafika. Opcija Anti-Aliased ini da linija grafika bude glatkija i lepa. Opcija Bar Plots omoguava nam kreiranje bar grafika irina 100%, 75% ili 1%, ili horizontalno ili vertikalno. Fill Base Line opcija kontrolie osnovnu liniju barova; grafici ne moraju biti ispunjeni ili mogu biti ispunjeni do nule, negativne beskonanosti ili beskonanosti. Opcija Interpolation odreuje kako LabVIEW iscrtava linije izmeu taaka podataka (vidi sliku 8.36). Prva opcija ne crta bilo kakvu liniju, to je ini pogodnom za scatter grafik. Opcija pri dnu levo crta pravu liniju izmeu taaka. etvoro-korana opcija povezuje take sa linijama pod pravim uglom, to je korisno za histograme.

Slika 8.36 Izbor opcije Interpolation za definisanje kako e linije povezati take podataka na grafiku Opcija Point Style prikazuje razliite stilove taaka (bez, okrugle, kvadratne, ispunjene, itd.). X skala i Y skala su korisne za specificiranje grafika koji odgovara kojoj skali, kada imamo vie skala na naem chart-u ili graph-u. 140

Aktivnost 8-3: Korienje XY graph-a za iscrtavanje kruga Izgradiemo VI koji iscrtava krug. 1. Otvorimo novi prednji panel. Kreirajmo ga kao na slici 8.37.

2. 3. 4.

5.

Slika 8.37 Prednji panel VI-a koji emo kreirati tokom ove aktivnosti Postavimo XY graph na na prednji panel. Nazovimo ga XY Circle Graph. Poveajmo graph vuenjem ugla pomou Positioning alatke. Pokuajmo da napravimo region grafika priblino kvadratnim. Desnim klikom na graph selektujmo Visible Items>>Plot Legend. Poveajmo legendu sa leve strane i unesimo naziv Circle korienjem Labeling alatke. Desnim klikom na liniju u legendi selektujmo mali kvadrat iz palete Point Style. Zatim selektujmo novu boju grafika iz Color palete. Izgradimo blok dijagram prikazan na slici 8.38.

Slika 8.38 Blok dijagram VI-a koji emo kreirati tokom ove aktivnosti 6. Vratimo se na prednji panel i pokrenimo VI. Memoriimo ga kao Graph Circle.vi. Korienje palete graph-a Standardni mod rada Dugme za zumiranje Paleta graph-a je mali boks koji sadri alatke koji nam omoguavaju da klizimo po displeju (pan), fokusiramo se na specifinu oblast korienjem dugmia palete (zumiranje) i pomeramo kursor. Paleta, koja se moe uiniti vidljivom selektovanjem Graph Palette iz podmenija Visible Items skaueg menija chart-a ili graph-a, je prikazana na slici 8.39. Slika 8.39 Paleta graph-a Pan dugme 141

Preostala tri dugmeta omoguavaju nam kontrolu naina rada graph-a. Normalno, mi smo u standardnom modu, to znai da moemo kliknuti na kursore graph-a i da ih pomeramo okolo. Ako pritisnemo pan dugme menjamo mod gde moemo da klizimo po graph-u pomou pan kursora. Ako kliknemo na dugme za zumiranje dobijamo skaui meni koji nam omoguava izbor nekoliko metoda za zumiranje. Evo kako ove opcije zumiranja rade: Zumiranje pravougaonikom Vuemo kursor tako da nacrtamo pravougaonik oko oblasti koju elimo da zumiramo. Kada pustimo dugme mia, nae ose menjaju skale da bi prikazale selektovanu oblast. Zumiranje pravougaonikom po X osi Ovde je zumiranje ogranieno na X podatke (Y skala ostaje nepromenjena). Zumiranje pravougaonikom po Y osi Ovde je zumiranje ogranieno na Y podatke (X skala ostaje nepromenjena). Zoom to Fit Autoskalira sve X i Y skale na graph-u ili chart-u tako da graph prikae sve raspoloive podatke. Zumiranje oko take Ako drimo mi u specifinoj taki, graph e se kontinualno poveavati sve dok ne pustimo dugme mia. Smanjenje oko take Ako drimo mi u specifinoj taki, graph e se kontinualno smanjivati sve dok ne pustimo dugme mia. Kursori graph-a LabVIEW graph-ovi imaju kursore za oznaavanje taaka podataka na naem grafiku radi animacije naeg rada. Slika 8.40 prikazuje sliku graph-a sa vidljivim kursorima i legende kursora. Na chart-u nemamo kursore.

Slika 8.40 Kursori graph-a 142

Moemo videti paletu Cursor selektovanjem Visible Items>>Cursor Legend iz skaueg menija graph-a. Kada se legenda kursora prvi put pojavi ona je prazna. Desnim klikom na legendu kursora selektujemo mod iz menija Create Cursor>>. Sledei modovi kursora su dostupni: Slobodni mod omoguava da se kursor moe slobodno kretati unutar oblasti grafika, odnosno kursor nije zakljuan za taku grafika. Mod jednog grafika omoguava da se kursor moe kretati samo po takama grafika koje su povezane sa kursorom. Da poveemo kursor sa grafikom desnim klikom na legendu kursora i izborom eljenog grafika iz menija Snap To. Mod vie grafika je samo validan za graph-ove sa miksovanim signalom. Omoguava kursoru da se kree samo po takama u oblasti grafika. Kursor e dati vrednosti za specificiranu x vrednost za sve grafike sa kojima je kursor povezan. Da poveemo kursor sa grafikom desnim klikom na legendu kursora i izborom eljenog grafika iz menija Snap To. Ako elimo kursor razliitog moda, moramo prvo obrisati postojei kursor i zatim kreirati drugi kursor eljenog moda. Aktivni kursor (neaktivni) Graph moe imati onoliko kursora koliko elimo. Moemo nazvati kursor u prvoj koloni legende kursora. Sledea kolona pokazuje X poziciju, a sledea posle nje pokazuje Y poziciju. Aktivni kursor (aktivni) Kliknimo na romb aktivnog kursora levo od imena kursora da bi uinili kursor aktivnim i selektovanim za pomeranje. Vie od jednog kursora moe biti aktivno u isto vreme. Kontrola kretanja kursora Kada kliknemo na dugme u Kontroli kretanja kursora svi aktivni kursori se kreu. Moemo pomerati aktivne kursore gore, dole, levo i desno. Moemo vui kursor oko graph-a pomou Operating alatke. Ako vuemo taku presecanja moemo pomerati kursor u svim smerovima. Ako vuemo horizontalne ili vertikalne linije kursora moemo vui samo vertikalno ili horizontalno. Da bi obrisali kursor desnim klikom na labelu kursora u legendi kursora izaberimo Delete Cursor. Oznaavanja (annotations) graph-a Oznaavanja graph-a su korisna za isticanje podataka od interesa na graph-u. Oznaavanje se pojavljuje kao strelica sa natpisom koja se koristi za opisivanje osobina podataka, kao to je prikazano na slici 8.41.

Slika 8.41 Oznaavanja graph-a 143

Moemo kreirati i modifikovati oznaavanja interaktivno miem. Kada VI radi, moemo kreirati oznaavanje selektovanjem Create Annotation iz skaueg menija graph-a. Selektovanje Create Annotation e otvoriti dijalog Create Annotation koji se koristi za definisanje nove labele oznaavanja (Annotation Name) i nekih osnovnih osobina, kao to je prikazano na slici 8.42.

Slika 8.42 Dijalog za kreiranje oznaavanja Kursor oznaavanja Oznaavanje ima tri dela: labelu, strelicu i kursor. Desnim klikom na kursor oznaavanja obezbeujemo pristup opcijama za editovanje osobina oznaavanja, kao i njegovog brisanja. Labela oznaavanja se moe pomerati klikom na nju i njenim vuenjem na novu lokaciju. Takoe moemo pomerati kursor oznaavanja, zavisno od podeavanja njegove osobine Lock Style. Stil zakljuavanja moe biti jedan od sledeih: Slobodan omoguava kretanje kursora oznaavanja bilo gde na graph-u. Snap to All Plots omoguava kursoru oznaavanja kretanje do bilo koje take na bilo kom grafiku. Snap to One Plot omoguava kursoru oznaavanja kretanje do bilo koje take na grafiku specificiranom u Locked Plot. Brisanje oznaavanja vri se izborom opcije Delete Annotation iz skaueg menija kursora oznaavanja. Moemo takoe obrisati sva oznaavanja na graph-u selektovanjem Delete All Annotations opcije iz skaueg menija graph-a.

144

Aktivnost 8-4: Analiza temperature Izgradiemo VI koji meri temperaturu priblino svake 0.25 sekunde u 10 sekundi. Za vreme akvizicije VI prikazuje merenja u realnom vremenu na waveform chart. Posle zavretka akvizicije, VI iscrtava podatke na graph i izraunava minimalnu, maksimalnu i srednju vrednost temperature. 1. Otvorimo novi prednji panel i izgradimo VI kao na slici 8.43.

Slika 8.43 Prednji panel VI-a koji emo kreirati tokom ove aktivnosti 2. Promenimo skalu chart-a tako da je opseg od 70.0 do 90.0. Takoe uverimo se da je ukljueno autoskaliranje za obe ose graph-a. 3. U legendi grafika korienjem Labeling alatke ukucaj Temp kao to je prikazano. Desnim klikom na Temp grafik u legendi promenimo stil taaka u male kvadratie. Obojimo grafik kako elimo. Temperature chart prikazuje temperaturu koju merimo. Posle zavretka akvizicije, VI iscrtava podatke u Temp Graph. Mean, Max i Min digitalni indikatori prikazivae srednju, maksimalnu i minimalnu temperaturu, respektivno. 4. Izgradimo blok dijagram kao na slici 8.44.

Slika 8.44 Blok dijagram VI-a koji emo kreirati tokom ove aktivnosti 145

Funkcija Array Max & Min Ova funkcija (Programming>>Array paleta) daje na izlazu maksimalnu i minimalnu vrednost u nizu; u ovom sluaju, maksimalnu i minimalnu temperaturu izmerenu za vreme akvizicije. Mean.vi Ovaj VI (Mathematics>>Probability and Statistics paleta) daje na izlazu srednju vrednost merenja temperature. For petlja se izvrava 40 puta. Funkcija Wait Until Next ms Mupltiple uzrokuje da se svaka iteracija javlja priblino svakih 250ms. VI smeta merenja temperature u niz koji se kreira na ivici For petlje korienjem autoindeksiranja. Posle zavretka izvravanja For petlje niz prolazi do raznih vorova. Funkcija Array Max & Min daje na izlazu maksimalnu i minimalnu temperaturu. Mean.vi daje na izlazu srednju vrednost merene temperature. Vratimo se na prednji panel i pokrenimo VI. Korienjem legende skale promenimo preciznost tako da graph prikazuje tri decimalna mesta na Y skali. Korienjem palete graph-a kliknimo na dugme za zumiranje i zumirajmo grafik. Desnim klikom na graph selektujmo Visible Items>>Cursor Legend. Desnim klikom na legendu kursora selektujmo Create Cursor>>Free da bi kreirali slobodan kursor, kao to je prikazano na slici 8.45.

5.

6. 7. 8. 9.

Slika 8.45 Kreiranje slobodnog kursora iz skaueg menija legende kursora Koristimo Operating alatku za vuenje kursora po graph-u; obratimo panju kako se X i Y vrednosti u displeju kursora menjaju. Koristimo i kontrolu za pomeranje kursora da pomeramo kursor. Kreirajmo drugi kursor i uinimo ga aktivnim. Promenimo boju jednog kursora desnim klikom na labelu kursora u legendi kursora i selektovanjem boje iz podmenija Attributes>>Color. Kreirajmo kursor koji se lepi za take podataka grafika selektovanjem Create Cursor>>Single-Plot. 10. Zatvorimo i memoriimo VI. Nazovimo ga Temperature Analysis.vi. Time stamps (vremenski odlivci), waveforms (talasni oblici) i dinamiki podaci esto, podaci koje elimo analizirati i obraditi su funkcija vremena. Na primer, moda elimo da pratimo varijaciju temperature u toku dana ili kako vibracioni talas izgleda kada se iscrta u zavisnosti od vremena. LabVIEW ima neke specijalne tipove podataka koji olakavaju potencijalnom korisniku analizu ili predstavljanje ovog tipa podataka na grafik. To su time stamp, waveform i dinamiki podaci. Time stamps se koriste da upamte vremensku informaciju u talasnom obliku i viestruki talasni oblici se mogu memorisati dinamikim podatkom.

146

Time stamp Time stamp je tip podatka koji memorie apsolutnu vrednost datuma/vremena, kao to je vreme prikupljanja podataka, sa veoma velikom preciznou (19 digita preciznosti svaki i u celoj sekundi i u frakciji sekunde). Numerika kontrola moe takoe memorisati i prikazati vrednosti time stamp, ali numerika kontrola dri samo relativnu veliinu. Kontrola time stamp dri apsolutnu veliinu. Kontrola time stamp je prikazana na slici 8.46.

Slika 8.46 Kontrola time stamp Time stamp nije samo veoma precizan nain memorisanja informacije o apsolutnom vremenu; kontrola time stamp je veoma korisna za posmatranje i editovanje vrednosti time stamp. Kontrola time stamp se moe nai u podpaleti Modern>>Numeric palete Controls. Moemo editovati vrednost time stamp klikom na porciju vremena koju elimo promeniti i zatim koristiti strelice za poveanje i smanjenje vrednosti. Ili moemo ukucati vrednost. Moemo iz skaueg menija time stamp kontrole selektovati Data Operations>>Set Time to Now da podesimo vrednost time stamp na trenutni datum i vreme. Dugme Date/Time Browse Kliknimo na dugme Time/Date Browse da prikaemo dijalog boks Set Time and Date, prikazan na slici 8.47.

Slika 8.47 Dijalog Set Time and Date Moemo takoe desnim klikom na time stamp kontrole, indikatore i konstante selektovati Data Operations>>Set Time and Date iz menija da bi se prikazao dijalog Set Time and Date. esto emo eleti da izvrimo vremenska izraunavanja. Na primer, kod prikazan na slici 8.48 prikazuje kako izraunati relativno vreme izmeu dva time stamp korienjem funkcije oduzimanja.

Slika 8.48 Izraunavanje relativnog vremena oduzimanjem time stamp Operacija dodavanja relativnog vremena time stamp-u moe se odraditi funkcijom sabiranja, kao to je prikazano na slici 8.49. 147

Slika 8.49 Dodavanje relativnog vremena time stamp-u Kao to vidimo na prethodnoj slici, time stamp i numeriki tipovi podataka su blisko povezani, a postoje primeri kada e biti potrebno da ih konvertujemo meusobno. Koristiti funkciju To Double Precision Float (dostupna u paleti Programming >> Numeric >> Conversion) za konverziju time stamp u DBL (vidi sliku 8.50). Koristiti To Time Stamp (takoe dostupna u paleti Programming >> Numeric >> Conversion, ali lake dostupna u paleti Programming >> Timing) za konverziju numerikog podatka u time stamp (vidi sliku 8.51). Slika 8.50 To Double Precision Float Slika 8.51 To Time Stamp Waveforms (talasni oblici) U mnogim inenjerskim i naunim aplikacijama, veina podataka sa kojima se radi je kolekcija vrednosti koje variraju u vremenu. Na primer, audio signali su vrednosti pritiska u zavisnosti od vremena; EKG je napon u zavisnosti od vremena; digitalni signali koje koriste raunari su binarni abloni u zavisnosti od vremena. LabVIEW obezbeuje pogodan nain za organizaciju i rad sa ovim tipom vremenski promenljivog podatka preko waveform tip podatka. Waveform tip podatka omoguuje memorisanje ne samo glavnih vrednosti podataka, ve takoe i time stamp-a za trenutak kada je prva taka prikupljena, vremensko kanjenje izmeu svake take podataka i beleki o podacima. Moemo dodati, oduzeti i vriti mnoge druge operacije direktno na waveform. Moemo kreirati kontrole Waveform i Digital Waveform na prednjem panelu iz I/O palete (vidi sliku 8.52 i sliku 8.54). Odgovarajue reprezentacije u blok dijagramu su braon/narandaste za waveform terminal i zelene za digital waveform terminal (vidi sliku 8.53 i sliku 8.55).

Slika 8.52 Kontrola waveform

Slika 8.53 Terminal waveform

Slika 8.54 Kontrola digital waveform 148

Slika 8.55 Terminal digital waveform Simbol analog waveform LabVIEW koristi razliite simbole za analogne i digitalne talasne oblike. Simbol analognog talasnog oblika lii na mali sinusni talas, a simbol digitalnog talasnog oblika lii na mali pravougaoni talas. Videemo ove simbole na waveform funkcijama, VI ikonama i drugde. Simbol digital waveform Waveform tip podataka se moe posmatrati kao specijalni tip klastera koji sadri etiri komponente, nazvane Y, t0, dt i Atributi: Y: Ova komponenta je podatak koji varira sa vremenom. Za analogni waveform, to je 1-D niz taaka numerikih podataka, koje mogu biti jedna taka ili drugi waveform, zavisno od operacije. Reprezentacija analognog 1-D niza je DBL. Diskretni signali (signali koji obino imaju samo dva stanja, kao to je true ili false, 0 ili 5V, on ili off, itd.) se zovu digitalni signali. Za njih koristimo digitalni waveform. Za digitalni waveform, Y komponenta je digitalni podatak, koji je drugi specijalni tip podatka koji je u obliku tabele binarnih vrednosti gde su kolone digitalne linije a redovi su susedne vrednosti. t0: Ova komponenta je time stamp vrednost koja reprezentuje vreme (shodno sistemskom asovniku) kada je uzeta prva taka Y niza. dt: t ili delta-t je skalarna vrednost koja predstavlja vreme izmeu taaka podataka u Y nizu. Atribut: Prepodeeno je sakrivanje ove komponente (moe se videti iz skaueg prozora i selektovanjem Visible Items >> Attribute). Na slici 8.52 waveform kontrola pokazuje da je prva taka waveform-a startovala u 07:21:19 PM, Nov. 10, 2006, a vreme izmeu taaka je 0.5 s. Waveform ima nekoliko prednosti u odnosu na niz: Prisustvo t0. Bez t0 ne bismo znali kada je podatak uzet. Lake prikazivanje grafika. Waveform podatak samo treba povezati za graph. Lake prikazivanje vie grafika na graph-u. Korienjem waveform tipa podataka, samo povezujemo 1-D niz waveform-a za graph da bi smo imali vie grafika. Waveform funkcije U paleti Functions naiemo celu paletu posveenu manipulaciji waveform podacima, nazvanoj Waveform (vidi sliku 8.56).

Slika 8.56 Paleta Waveform 149

Funkcije Get Waveform Components i Build Waveforms se koriste za dobijanje i podeavanje komponenata analognih, digitalnih talasnih oblika i digitalnih podataka. Get Waveform Components daje komponente talasnog oblika koje specificiramo, a specificiramo ih desnim klikom i selektovanjem Add Element i kreiranjem indikatora. Ova funkcija je proirljiva.

Slika 8.57 Get Waveform Components Funkcija Build Waveform gradi talasne oblike ili modifikuje postojee. Ako ne poveemo nita na ulazu waveform, funkcija Build Waveform kreira novi talasni oblik na osnovu komponenata koje unesemo. Ako poveemo talas na ulaz waveform, talasni oblik se modifikuje na osnovu komponenata koje unesemo. Ova funkcija je proirljiva.

Slika 8.58 Build Waveform Ove dve funkcije su polimorfne i mogu raditi sa analognim, digitalnim talasnim oblicima i digitalnim podacima. Paleta Waveform takoe ima podpalete sa mnogo korisnih funkcija i operacija koje moemo primeniti na talasne oblike. VI u paleti Analog Waveform se koriste za primenu aritmetikih i funkcija poreenja na talasne oblike, kao to su sabiranje, oduzimanje, mnoenje, nalaenje maksimalne i minimalne vrednosti, itd. (vidi sliku 8.59). Zapazimo da kod veine operacija sa talasnim oblicima koje ukljuuju dva ili vie talasna oblika, ti talasni oblici moraju imati istu vrednost dt.

Slika 8.59 Paleta Analog Waveform Paleta Analog Waveform >> Waveform Generation nam omoguuje generisanje razliitih tipova signala sa jednom ili vie frekvencija, signala generatora funkcije i signala uma (vidi sliku 8.60). Na primer, moemo generisati sinusni talas i specificirati njegovu amplitudu, frekvenciju itd.

Slika 8.60 Paleta Waveform Generation

150

Paleta Analog Waveform >> Waveform Measurements omoguuje obavljanje uobiajenih merenja u vremenskom i frekventnom domenu kao to su DC, RMS, frekvencija/amplituda/faza signala, harmonijska distorzija, SINAD i merenja usrednjenog FFT (vidi sliku 8.61).

Slika 8.61 Paleta Waveform Measurements Paleta Digital Waveform omoguava obavljanje operacija nad digitalnim talasnim oblicima i digitalnim podacima, kao to su pretraga za digitalnim ablonom, kompresovanje i dekompresovanje digitalnih signala, itd. (vidi sliku 8.62).

Slika 8.62 Paleta Digital Waveform Paleta Digital Waveform >> Digital Conversion omoguuje konvertovanje u i od digitalnih podataka (vidi sliku 8.63).

Slika 8.63 Paleta Digital Conversion Funkcije u Waveform File I/O omoguuju upisivanje waveform podataka i itanje waveform podataka iz fajlova (vidi sliku 8.64).

Slika 8.64 Paleta Waveform File I/O

151

Aktivnost 8-5: Generisanje i prikazivanje na grafu talasnog oblika U ovoj aktivnosti generisaemo sinusni talasni oblik, podesiti njegovo inicijalno time stamp na tekue vreme i iscrtati ga na chart-u. 1. Otvoriti novi prednji panel. 2. Na prednjem panelu smestiti dial (iz numerike palete), chart i waveform indikator. Stavimo za dial labelu frequency, promenimo njegovu maksimalnu vrednost i podesimo 1 digit preciznosti (iz skaueg menija Format and Precision), tako da izgleda kao na slici 8.65.

Slika 8.65 Prednji panel VI-a 3. Izgradimo blok dijagram tako da generie sinusni signal i prikazuje ga. Funkcije za generisanje talasnog oblika ne obezbeuju vrednost za t0 komponentu talasnog oblika, tako da koristimo Build Waveform da podesimo t0 na trenutno vreme. Sine Waveform.vi generie talasni oblik koji je sinusni sa nultim time stamp (00:00:00.000 PM, MM/DD/YYYY ili pono GMT 1/1/1904). Vidi sliku 8.66.

Slika 8.66 Sine Waveform.vi Get Date/Time in Seconds daje tekue vreme i datum sistema, kao time stamp (vidi sliku 8.67). Slika 8.67 Get Date/Time in Seconds Ova funkcija na omoguava modifikovanje komponenata talasnog oblika; u ovoj aktivnosti, samo t0 (vidi sliku 8.68).

Slika 8.68 Build waveform Blok dijagram treba da izgleda kao na slici 8.69.

152

Slika 8.69 Blok dijagram napravljenog VI-a 4. Pokrenimo i testirajmo VI na razliitim frekvencijama. 5. Memoriimo VI kao Waveform Exercise.vi. Digitalni podaci Digitalni talasni oblici su specijalan tip podataka za Y komponentu: tabela binarnih stanja (binarne vrednosti mogu biti ili 0 ili 1). Kolone u tabeli su digitalne linije, a redovi su susedne vrednosti. Moemo kreirati kontrolu Digital Data na prednjem panelu iz palete I/O (slika 8.70). Odgovarajua reprezentacija na blok dijagramu je zeleni terminal (slika 8.71).

Slika 8.70 Kontrola Digital Data

Slika 8.71 Terminal Digital Data Simbol Digital Data Da bi lake konvertovali u i iz digitalnih podataka koristimo VI locirane u paleti Programming >> Waveform >> Digital Waveform >> Digital Conversion (prikazana na slici 8.72). Ovi VI nam omoguuju konverziju digitalnih podataka u i iz logikih nizova i celobrojnih nizova, kao i importovanje digitalnih podataka iz spreadsheet stringa.

Slika 8.72 Paleta Digital Conversion Grafovi digitalnih talasnih oblika Za prikazivanje digitalnih talasnih oblika, koristiti digital waveform graph (iz Modern >> Graph) kao to je prikazano na slici 8.73.

153

Slika 8.73 Graf digitalnog talasnog oblika Dinamiki podatak Ekspres VI za analizu, obradu, manipulisanje i generisanje signala koristi specijalan tip podatka, nazvan dinamiki podatak, za prenos signala. Dinamiki podatak je jednostavno jedan ili vie kanala talasnih oblika, ili moemo misliti o dinamikom podatku kao o nizu analognih talasnih oblika. Meutim, dinamiki podatak je veoma pametan, jer ini veoma olakanim izvravanje operacija kao to je spajanje signala u jednu icu. Na primer, moemo povezati dinamiki podatak direktno za drugi dinamiki podatak, a LabVIEW e automatski ubaciti funkciju Merge Signals za kombinovanje dva signala u jednu icu, kao to je prikazano na slici 8.74 i 8.75.

Slika 8.74 Povezivanje dinamikog podatka sa icom postojeeg dinamikog podatka (pre)

Slika 8.75 Povezivanje dinamikog podatka sa icom postojeeg dinamikog podatka (posle) Ako pogledamo na grafu na spojeni signal, prikazano na slici 8.76, moemo videti da dobijeni spojeni signal sadri i sinusni i testerasti signal.

Slika 8.76 Graf koji prikazuje dva grafika dinamikih podataka 154

Osnovne funkcije za manipulaciju dinamikim podatkom se mogu nai u paleti Express >> Signal Manipulation, prikazanoj na slici 8.77. Ovde emo nai funkcije za spajanje, deljenje i selektovanje signala, kao i To DDT i From DDT funkcije, koje se koriste za konverziju u i iz tradicionalnih LabVIEW tipova podataka kao to su talasni oblici, nizovi i skalari.

Slika 8.77 Paleta Signal Manipulation Grafovi sa miksovanim signalom Kada imamo i analogne i digitalne signale koje elimo prikazati zajedno na nain da se vide vremenske zavisnosti izmeu dva, koristiti graf sa miksovanim signalom, koji se moe nai u paleti Modern >> Graph palete Controls (vidi sliku 8.78).

Slika 8.78 Mixed signal graph Ovaj graf prihvata klaster bilo kojih elemenata koje moemo povezati za waveform graph, XY graph ili digital graph, kao to je prikazano na slici 8.79.

155

Slika 8.79 Graenje grafa sa miksovanim signalom spajanjem vie tipova podataka Iscrtae sve ove elemente na jedno ili vie polja. Moemo dodavati polja (plot arrea) u skauem meniju postojeeg polja selektovanjem Add Plot Area. Slino moemo ukloniti polje selektovanjem Remove Plot Area. Plot legenda grafa sa miksovanim signalom je u obliku drveta, koje ima labele plot-a i atribute displeja grupisane. Ne moemo imati analogne i digitalne podatke u istoj grupi. LabVIEW e postaviti dva polja ako imamo i analogne i digitalne podatke (vidi sliku 8.80).

Slika 8.80 Delovi grafa sa miskovanim signalom Multi-plot kursor Graf sa miksovanim signalom ima specijalni kursor koji je nazvan multi-plot mod (ovaj mod kursora je dostupan samo za graf sa miskovanim signalom). Ovaj tip kursora moe prikazati Y vrednosti vie grafika za istu vrednost X. Da bi kreirali multi-plot kursor desnim klikom na legendu kursora izaberemo Create Cursor >> Multi-Plot, kao to je prikazano na slici 8.81. Da bi prikazivao Y vrednosti grafika, kursor mora biti konfigurisan da nadgleda grafik, selektovanjem imena grafika iz skaueg menija labele kursora u Watch podmeniju. Za nadgledanje svih grafika, selektujemo Watch >> All Plots iz skaueg menija labele kursora (vidi sliku 8.82).

Slika 8.81 Kreiranje multi-plot kursora 156

Slika 8.82 Nadgledanje grafika Kada smo kreirali multi-plot kursor, moemo menjati njegovu X vrednost uzimanjem vertikalne linije kursora i njenim pomeranjem horizontalno (ili korienjem pomeraa kursora). Posmatrati kako kursor izvetava Y vrednosti svakog grafika koji se posmatra, kao to je prikazano na slici 8.83.

Slika 8.83 Multi-plot kursor Eksportovanje slika grafova i chart-ova esto emo eleti sliku iscrtanih podataka na grafu za izvetaj ili prezentaciju. LabVIEW ovo olakava desnim klikom na graf ili chart i selektovanjem Export Simplified Image iz menija (ova opcija e se pojaviti u podmeniju Data Operations >> kada je VI u modu editovanja). Iz dijaloga Export Simplified Image (prikazan na slici 8.84), moemo izabrati da memoriemo sliku na disku u jedan od nekoliko formata ili sauvati sliku u klipbordu za stavljanje u drugi dokument.

Slika 8.84 Dijalog Export Simplified Image 157

Aktivnost 8-6: Ogranienje temperature Izgraditi VI koji kontinualno meri temperaturu jednom u sekundi i prikazuje temperaturu na chart-u u scop modu. Ako temperatura pree preko donje ili gornje eljene granice, VI pali LED na prednjem panelu. Chart treba iscrtavati temperaturu, kao i donju i gornju granicu temperature. Trebamo biti u mogunosti da podeavamo granice na prednjem panelu. Prednji panel treba da je slian kao na slici 8.85. Nazovimo ga Temperature Limit.vi.

Slika 8.85 Prednji panel Temperature Limit.vi Aktivnost 8-7: Maksimalne i minimalne granice temperature Modifikujmo prethodni VI da prikazuje maksimalne i minimalne vrednosti putanje temperature. Nazovimo ga Temp Limit (max-min).vi. Aktivnost 8-8: Crtanje sluajnih nizova Izgradimo VI koji generie 2D niz (tri reda puta deset kolona) koji sadri sluajne brojeve. Posle generisanja niza, indeksiraj svaki red i iscrtaj ga na njegov graf. Prednji panel treba da sadri tri grafa. Nazovimo ga Extract 2D Array.vi.

158

Deveti deo Rad sa znakovnim podacima i fajlovima


Upoznavanje sa znakovnim podacima Znakovni podaci su jednostavno kolekcija ASCII karaktera. esto moemo koristiti znakovne podatke za neto vie od obinih tekstualnih poruka. Na primer, pri kontroli instrumenata, prenosimo numerike podatke kao nizove karaktera. Ovi nizovi se zatim konvertuju u brojeve radi dalje obrade podataka. U mnogim VI-ima za I/O fajlova numerike vrednosti se prvo konvertuju u znakovne podatke pre nego to se memoriu u fajl. Izbor naina prikazivanja Kontrole i indikatori znakovnih podataka imaju nekoliko opcija koje mogu biti korisne. Na primer, moemo prikazati i prihvatiti karaktere koji se normalno ne mogu prikazati, kao to su backspace (taster za brisanje jednog slova), prenos kursora na poetak reda i tabulatori. Ako izaberemo \ Codes Display (umesto normalnog displeja) iz skaueg menija znakovnog podatka, karakteri koji se ne mogu prikazati se pojavljuju kao obrnuta kosa crta (\) praena heksadecimalnom vrednou ASCII karaktera. Tabela 9.1 prikazuje znaenje raznih \ kodova. Tabela 9.1 LabVIEW \ kodovi Kod LabVIEW implementacija \00 \FF Heksadecimalna vrednost 8-bitnog karaktera; alfanumeriki karakteri moraju biti velika slova \b \f \n \r \t \s \\ Brisanje jednog slova (ASCII BS, ekvivalentno \08) Formfeed (ASCII FF, ekvivalentno \0C) Nova linija (ASCII LF, ekvivalentno \0A) Povratak (ASCII CR, ekvivalentno \0D) Tabulator (ASCII HT, ekvivalentno \09) Razmak (ekvivalentno \20) Obrnuta kosa crta (ASCII \, ekvivalentno \5C)

Moraju se koristiti velika slova za heksadecimalne karaktere i mala slova za specijalne karaktere, kao to su formfeed i brisanje jednog slova. LabVIEW interpretira sekvencu \BFare ako heksadecimalno BF praeno reju are, dok LabVIEW interpretira \bFare i \bfare kao brisanje jednog slova praeno reima Fare i fare. Znakovni podatak prikazan na slici 9.1 prikazuje kod sa obrnutom kosom crtom za novu liniju u modu normalnog displeja.

Slika 9.1 Kontrola znakovnog podatka u modu normalnog displeja Posle prelaska na \ Codes Display, znakovni podatak prikazuje razmake koje je uneo korisnik (vidi sliku 9.2).

Slika 9.2 Znakovni podatak u modu \ Codes Display 159

Podaci u znakovnom podatku se ne menjaju sa promenom moda displeja, samo se menja prikazivanje odreenih karaktera. Mod \ Codes Display je veoma koristan za debagovanje programa i za specificiranje karaktera koji se ne mogu prikazati a koriste se kod instrumenata, serijskog porta i drugih ureaja. Znakovni podaci takoe imaju opciju Password displeja, koja dovodi do toga da kontrola i indikator znakovnog podatka prikazuje * za svaki uneeni karakter, tako da drugi ne moe videti ta se kuca. Mada prednji panel prikazuje samo niz ****, blok dijagram oitava aktuelne podatke u nizu. Oigledno, ovaj displej je koristan ako trebamo programski zatititi lozinkom ceo ili deo VI-a. Slika 9.3 i 9.4 prikazuje prednji panel i blok dijagram VI-a koji prenosi podatke iz kontrole znakovnog podatka u modu Password displeja u indikator znakovnog podatka u modu normalnog displeja.

Slika 9.3 Kontrola znakovnog podatka u modu Password displeja (levo) i indikator znakovnog podatka u modu normalnog displeja (desno) koji prikazuju isti niz podataka

Slika 9.4 Blok dijagram koji prikazuje da kontrola znakovnog podatka prenosi podatke, nepromenjene, ka indikatoru znakovnog podatka Ako se znakovni podatak eli videti kao heksadecimalni karakteri umesto kao alfanumeriki karakteri, koristiti opciju Hex displeja. Slika 9.5 prikazuje isti znakovni podatak prikazan u etiri opcije displeja: normalni, \, Password i Hex.

Slika 9.5 Isti znakovni podatak prikazan u svakom od etiri moda displeja Znakovni podaci u jednoj liniji Kada se kontrola znakovnog podatka koristi kao boks za unoenje teksta u korisnikom interfejsu VI-a, esto je poeljno da ograniimo znakovni podatak na jednu liniju. Kada korisnik pritisne <enter> zavrava sa unosom teksta. Da bi ovo omoguili selektujemo opciju Limit to Single Line u skauem meniju znakovnog podatka. Istovremeno osveavanje i kucanje Normalno, kontrola znakovnog podatka ne menja vrednost njenog terminala u blok dijagramu dok se ne zavri kucanje. Ako elimo da se vrednost osveava u trenutku kucanja, desnim klikom na kontrolu znakovnog podatka se selektuje Update Value While Typing.

160

Tabele Tabela je specijalna struktura koja prikazuje dvo-dimenzionalno (2D) polje znakovnih podataka. Moe se nai u podpaleti Lists & Table palete Controls. Tabela je prikazana na slici 9.6.

Slika 9.6 Tabela kao tip kontrole Tabela ima zaglavlja reda i kolone koja se mogu prikazati ili sakriti. Moemo uneti tekst u zaglavlju korienjem Labeling ili Operating alatke. Indeksni displej tabele pokazuje koja elija je vidljiva u gornjem levom uglu tabele. Liste Postoje dva tipa listi u LabVIEW: lista (listbox) i lista sa vie kolona (multi-column listbox), iz palete List & Table. Kontrola tipa liste izgleda slino kao tabela, ali se ponaa drugaije u toku izvravanja. Za vreme moda editovanja moemo ukucati bilo koji tekst u listu. Kada pokrenemo VI, lista se ponaa kao meni viestrukog izbora u kome mi moemo kliknuti na bilo koji red da bi ga selektovali. Vrednost liste je broj reda koji je selektovan (ili niz brojeva reda, ako je lista tako konfigurisana da omoguuje selekciju vie redova preko opcija Selection Mode >> 0 or More Items ili Selection Mode >> 1 or More Items skaueg menija). Ovo se razlikuje od kontrole tipa tabele ija vrednost je 2D polje znakovnih podataka. Slika 9.7 prikazuje listu sa vie kolona.

Slika 9.7 Lista sa vie kolona Liste su korisne kada elimo da prezentujemo podatke (ili u jednoj ili u vie kolona) korisniku, a elimo da oni izaberu jedan ili vie ajtema. Korienje funkcija znakovnih podataka Kao i kod nizova, znakovni podaci mogu biti korisniji kada koristimo ugraene funkcije koje obezbeuje LabVIEW. 161

String Length daje broj karaktera u datom znakovnom podatku (vidi sliku 9.8).

Slika 9.8 String Length Concatenate Strings spaja sve ulazne znakovne podatke u jedan izlazni znakovni podatak (vidi sliku 9.9).

Slika 9.9 Concatenate Strings Kada je prvi put smetamo u blok dijagram, ova funkcija ima dva ulaza. Moemo joj menjati veliinu pomou Positioning alatke (kao to je prikazano na slici 9.10) da bi se poveao broj ulaza.

Slika 9.10 Korienje funkcije Concatenate Strings za graenje niza iz njegovih delova Moemo takoe povezati jednodimenzionalni (1D) niz znakovnih podataka kao ulaz; izlaz e biti jedan znakovni podatak koji sadri spojene znakovne podatke u nizu (vidi sliku 9.11).

Slika 9.11 Korienje funkcije Concatenate Strings za graenje niza od znakovnog podatka i niza znakovnih podataka U mnogim sluajevima moramo konvertovati znakovne podatke u brojeve ili brojeve u znakovne podatke. Format Into String i Scan From String funkcije imaju ove mogunosti.

Slika 9.12 Format Into String Jednostavno reeno, Format Into String formatira znakovne, path, brojake, time stamp, logike ili numerike podatke kao tekstualne. Slika 9.13 prikazuje funkciju Format Into String koja konvertuje broj sa pokretnom zapetom 1.28 u 6-bajtni znakovni podatak 1.2800.

Slika 9.13 Korienje funkcije Format Into String za formatiranje numerikih podataka sa pokretnom zapetom Format Into String formatira ulazni argument (koji je u numerikom formatu) u znakovni podatak, shodno specifikaciji formata na ulazu format string. Funkcija dodaje novi konvertovani znakovni podatak ulazu povezanom na initial string, ako postoji, a daje rezultat na izlazu resulting string. Sledea tabela daje neke primere ponaanja funkcije Format Into 162

String. Tabela 9.2 prikazuje dobijene znakovne podatke na izlazu za razliite kombinacije ulaza. Tabela 9.2 Dobijeni znakovni podaci na izlazu za date ulaze u funkciju Format Into String Inicijalni znakovni podatak prazno score= prazno prazno Format String score=%2d%% %2d%% level=%7.2eV %5.3f Broj 87 87 0.03642 5.67 N Dobijeni znakovni podatak score=87% score=87% level=3.64E-2V 5.670 N

Karakter % zapoinje specifikaciju formatiranja. U specifikaciji %number1.number2, number1 specificira irinu polja dobijenog znakovnog podatka, a number 2 specificira preciznost (tj., broj digita posle decimalne take). Moemo menjati veliinu Format Into String funkcije kako bi konvertovala vie vrednosti u jedan znakovni podatak istovremeno. Get Date/Time String (koja se nalazi u paleti Programming>>Timing) daje na izlazu znakovni podatak datuma, koji sadri datum specificiran time stamp ulazom, i znakovni podatak vremena, koji sadri vreme specificirano time stamp ulazom (vidi sliku 9.14). Ova funkcija je korisna za vremenski stamping podataka.

Slika 9.14 Get Date/Time String Format Date/Time String (koja se nalazi u paleti Programming>>Timing) formatira time stamp vrednost ili numeriku vrednost u vremenski format koji specificiramo korienjem kodova vremenskog formata u ulazu time format string (vidi sliku 9.15).

Slika 9.15 Format Date/Time String Kodovi vremenskog formata koje koristi funkcija Format Date/Time String su prikazani u tabeli 9.3. Tabela 9.3 Kodovi vremenskog formata za funkciju Format Date/Time String
Kod vremenskog formata %a %b %c %d %H %I %m %M %p %S %x %X %y %Y %<digit>u (e.g. %3u) Znaenje skraena imena dana (npr., "Sat") skraena imena meseca (npr., "Feb") lokalni datum/vreme dan predstavljen sa dva digita as, 24-asovni sat as, 12-asovni sat broj meseca predstavljen sa dva digita (npr., "03") minuta oznaka za pre o posle podne (npr., "AM" ili "PM") sekunda lokalni datum lokalno vreme godina u okviru veka (npr., "08") godina koja obuhvata vek (npr., "2008") frakcionalne sekunde sa preciznou digita (e.g., ".456")

163

Aktivnost 9-1: Konstrukcija znakovnog podatka Izgradiemo VI koji konvertuje broj u znakovni podatak i spaja taj znakovni podatak sa drugim znakovnim podacima u cilju formiranja jednog izlaznog znakovnog podatka. 1. Izgraditi prednji panel kao na slici 9.16.

Slika 9.16 Prednji panel VI-a VI e spojiti ulaze iz dve kontrole znakovnih podataka i iz digitalne kontrole u jedan izlazni znakovni podatak, koji se prikazuje u indikatoru znakovnog podatka. Digitalni indikator e prikazati duinu znakovnog podatka. 2. Izgraditi blok dijagram predstavljen na slici 9.17.

Slika 9.17 Blok dijagram VI-a Format Into String funkcija konvertuje broj koji specificiramo u digitalnoj kontroli Number u znakovni podatak sa frakcionalnim formatom i sa preciznou od etiri digita. Concatenate Strings funkcija kombinuje sve ulazne znakovne podatke u jedan izlazni znakovni podatak. Da bi se poveao broj ulaza, poveamo ikonu Positioning alatkom. String Length funkcija daje broj karaktera u znakovnom podatku. 3. Vratiti se na prednji panel i ukucati tekst unutar dve kontrole znakovnih podataka i broj unutar digitalne kontrole. Pokreni VI. 4. Memorisati i zatvoriti VI. Nazvati ga Build String.vi. Funkcije ralanjivanja Nekada je potrebno ralaniti znakovne podatke ili ih konvertovati u brojeve. String Subset pristupa pojedinanoj sekciji znakovnog podatka. Daje deo znakovnog podatka koji poinje od definisanog offset-a i sadri definisani broj karaktera. Ofset prvog karaktera je nula (vidi sliku 9.18). Slika 9.19 prikazuje primer kako se String Subset moe iskoristiti za izdvajanje dela znakovnog podatka.

Slika 9.18 String Subset

164

Slika 9.19 Funkcija String Subset iskoriena za izdvajanje dela ulaznog znakovnog podatka Scan From String konvertuje znakovni podatak koji sadri validne numerike karaktere (0 do 9, +, -, e, E) u numeriki podatak (vidi sliku 9.20). Ova funkcija poinje skeniranje ulaznog znakovnog podatka na inicijalnoj lokaciji za pretraivanje i konvertuje podatke shodno specifikacijama na ulazu format string. Moe se promeniti veliina Scan From String da bi konvertovala vie vrednosti istovremeno.

Slika 9.20 Scan From String U primeru prikazanom na slici 9.21 Scan From String konvertuje znakovni podatak VOLTS DC + 1.28E + 2 u broj 128.00. Poinje skeniranje na osmom karakteru znakovnog podatka (koji je + u ovom sluaju)

Slika 9.21 Funkcija Scan From String iskoriena za ekstraktovanje numerikog podatka sa pokretnom zapetom iz ulaznog znakovnog podatka Obe funkcije i Format Into String i Scan From String imaju interfejs Edit Scan String koji moemo koristiti za kreiranje formata znakovnog podatka. U ovom dijalog boksu moemo specificirati format, preciznost, tip podatka i irinu konvertovane vrednosti. Duplim klikom na funkciju ili iz skaueg menija izabiramo Edit Format String da bi pristupili dijalog boksu Edit Scan String ili Edit Format String (vidi sliku 9.22).

Slika 9.22 Dijalog Edit Scan String Posle kreiranja formata znakovnog podatka i klikom na dugme Create String, dijalog boks kreira konstantu znakovnog podatka i povezuje je na ulaz format string.

165

Pretraga za poklapanjem ablona Match Pattern funkcija se koristi za pretragu za datim ablonom karaktera u znakovnom podatku (vidi sliku 9.23). Ona pretrauje za i daje na izlazu znakovni podatak koje se poklapa. Match Pattern trai regularno izraavanje (ili ablon) u znakovnom podatku poev od ofseta; ako nae poklapanje, deli znakovni podatak na tri znakovna podatka. Ako nema poklapanja, match substring je prazno, a offset past match je podeeno na -1.

Slika 9.23 Match Pattern Regularno izraavanje je znakovni podatak koji koristi specijalnu sintaksu za opis seta znakovnih podataka koji se poklapaju sa ablonom (vidi sliku 9.24).

Slika 9.24 Match Pattern se koristi za nalaenje ablona u ulaznom znakovnom podatku Aktivnost 9-2: Ralanjivanje znakovnog podatka Kreirati VI koji ralanjuje dugaki znakovni podatak uzimanjem porcije znakovnog podatka i konvertovanjem numerikih karaktera u numeriku vrednost. 1. Izgraditi prednji panel kao na slici 9.25.

Slika 9.25 Prednji panel VI-a 2. Postaviti kontrolu znakovnih podataka Password da prikazuje zvezdice selektovanjem Password Display iz skaueg menija. 3. Kreirati blok dijagram kao na slici 9.26. Funkcija String Subset izdvaja porciju date duine iz ulaznog znakovnog podatka, shodno specificiranom ofsetu. Funkcija Scan From String konvertuje znakovni podatak koji sadri validne numerike karaktere u broj. Funkcija Match Pattern poredi ulaznu lozinku korisnika sa datom lozinkom. Ako postoji poklapanje prikazuje se na displeju, ako nema, indikator ostaje prazan. Funkcija Empty String/Path? daje logiko TRUE ako detektuje prazan znakovni podatak na izlazu match substring funkcije Match Pattern. 166

Funkcija String Length daje broj karaktera u spojenom znakovnom podatku.

Slika 9.26 Blok dijagram VI-a 4. Pokrenuti VI. 5. Zatvoriti i memorisati VI pod imenom Parse String.vi. Ulaz/izlaz fajlova Operacije ulaza i izlaza fajlova (I/O) itaju informacije iz fajla i upisuju informacije u fajl. Funkcije su locirane u podpaleti Programming >> File I/O palete Functions. Ekspresno pisanje i itanje fajlova Za brzo i interaktivno konfigurisanje operacija sa fajlovima podataka u LabVIEW moemo koristiti Write To Measurement File i Read From Measurement File ekpresne VI, prikazane na slikama 9.27 i 9.28.

Slika 9.27 Write To Measurement File

Slika 9.28 Read From Measurement File Ovi VI prenose podatke kao dinamiki tip podataka. Da bi se konfigurisali, posle njihovog smetanja na blok dijagramu, otvoriti konfiguracioni dijalog duplim klikom na subVI ili selektovanjem Properties iz skaueg menija. U Write To Measurement File konfiguracionom dijalogu (prikazanom na slici 9.29) specificiramo kako e fajl biti formatiran i koji e podaci biti smeteni u njemu. 167

Slika 9.29 Konfiguracioni dijalog Write To Measurement File U Read From Measurement File konfiguracionom dijalogu (prikazanom na slici 9.30) moemo specificirati format podataka koje trebamo oitati.

Slika 9.30 Konfiguracioni dijalog Read From Measurement File itanje i pisanje spreadsheet fajlova Write To Spreadsheet File funkcija konvertuje 2D ili 1D niz brojeva jednostruke preciznosti u tekstualni znakovni podatak i zatim upisuje znakovni podatak u novi fajl ili dodaje znakovni podatak postojeem fajlu. Podaci se mogu opciono transponovati.

Slika 9.31 Write To Spreadsheet File

168

Read From Spreadsheet File ita specificirani broj linija ili redova iz numerikog tekstualnog fajla, poev od specificiranog ofseta i konvertuje podatke u 2D niz brojeva jednostruke preciznosti (vidi sliku 9.32). Niz se moe transponovati.

Slika 9.32 Read From Spreadsheet File Aktivnost 9-3: Upisivanje u spreadsheet fajl Modifikovaemo postojei VI da bi sauvali podatke u novi fajl u ASCII formatu. 1. Otvoriti Graph Sine Array.vi koji generie dva niza podataka i iscrtava ih na grafiku. 2. Otvoriti blok dijagram i modifikovati ga dodavanjem koda koji je uokviren kao na slici 9.33.

Slika 9.33 Blok dijagram Graph Sine Array.vi sa modifikacijama koje emo izvriti Write To Spreadsheet File konvertuje 2D niz u spreadsheet znakovni podatak i upisuje ga u fajl. Ako ime nije specificirano izaie skaui dijalog boks za unoenje imena fajla. Logika konstanta kontrolie da li je 2D niz transponovan ili nije pre nego to je upisan u fajl. 3. Vratiti se na prednji panel i pokrenuti VI. Posle generisanja nizova podataka, pojavljuje se dijalog boks za unoenje imena i putanje fajla. 4. Memorisati VI pod imenom Graph Sine Array to File.vi. 5. Pomou nekog tekst editora otvoriti spreadsheet fajl. Trebaju se videti dve kolone sa po 100 elemenata. Aktivnost 9-4: itanje spreadsheet fajla Kreiraemo VI koji ita podatke iz fajla koji je stvoren u prethodnoj aktivnosti i iscrtati ih na grafu. 1. Otvoriti novi VI i staviti graf na prednjem panelu. Ukljuiti autoskaliranje. 2. Kreirati blok dijagram prikazan na slici 9.34. Iskoristiti Read From Spreadsheet File funkciju za uzimanje podataka i iscrtati ih na grafu.

Slika 9.34 Prednji panel i blok dijagram VI-a 169

3. Korienjem TRUE logike konstante moramo transponovati niz kada ga oitamo, zato to grafovi crtaju podatke po redovima, a podaci su smeteni u fajlu po kolonama. 4. Pokrenuti VI. Pojavie se dijalog boks za nalaenje fajla. Selektujemo fajl koji smo kreirali u prethodnoj aktivnosti. 5. Memoriimo VI kao Read File.vi. Jo funkcija za itanje i upisivanje u fajl itanje i upisivanje tekstualnih fajlova Ako elimo da oitamo ili upiemo tekstualni fajl, moemo koristiti LabVIEW funkcije iz palete Programming >> File I/O Write To Text File i Read From Text File. Koristiti funkciju Write To Text File (prikazanu na slici 9.35) za upisivanje znakovnog podatka u fajl, a funkciju Read From Text File (prikazanu na slici 9.36) za itanje znakovnog podatka iz fajla.

Slika 9.35 Write To Text File

Slika 9.36 Read From Text File Ulazi file u funkcije Write To Text File i Read From Text File su path tipovi podataka. Kada pozivamo funkcije Write To Text File i Read From Text File vie puta (u while petlji, na primer), one e pamtiti gde su stale. U sluaju funkcije Write To Text File, svaki put kada upisuje niz karaktera ona ih dodaje poslednje upisanom nizu karaktera. U sluaju funkcije Read From Text File, kada oita neki broj karaktera (odreen brojakim ulazom) ona e zatim nastaviti sa itanjem tog niza karaktera od mesta gde je stala. itanje i upisivanje binarnih fajlova Binarni fajlovi su efikasni za memorisanje velikih koliina netekstualnih podataka jer, generalno, zauzimaju mnogo manje prostora na disku od tekstualnih fajlova. Na primer, smetanje broja 3.14159265358979 u binarni fajl zauzima osam bajta (kao broj dvostruke preciznosti), dok e u tekstualnom fajlu zauzeti 16 bajta (jedan bajt za svaki karakter). Ali s druge strane, ne moemo lako otvoriti binarni fajl drugom aplikacijom (kao to je Word ili Excel) poto ove aplikacije neznaju kako su podaci formatirani. Kada napiemo binarni fajl sa LabVIEW, generalno emo koristiti LabVIEW da oitamo taj fajl. Funkcija Write To Binary File je veoma laka za korienje i radi slino kao funkcija Write To Text File, osim to moemo povezati na ulazu podatke bilo kog tipa (vidi sliku 9.37).

Slika 9.37 Write To Binary File Funkcija Read From Binary File je takoe laka za korienje, a slina je funkciji Read From Text File, osim to funkciji Read From Binary File moramo rei koji tip podataka je

170

memorisan u fajlu koji treba da oita (vidi sliku 9.38). To se radi povezivanjem pravog tipa podataka na ulazu data type.

Slika 9.38 Read From Binary File Aktivnost 9-5: itanje tekstualnog fajla Kreiraemo VI koji oitava sadraj tekstualnog fajla i prikazuje ga u indikatoru znakovnog podatka, veliinu fajla u numerikom indikatoru. 1. Na prednjem panelu staviti kontrolu za unoenje putanje fajla, a izlaz iz fajla prikazati na indikatoru znakovnog podatka. Staviti i digitalni indikator za prikazivanje veliine fajla. 2. Izgraditi blok dijagram kao na slici 9.39.

Slika 9.39 Blok dijagram VI-a Funkcija Read From Text File daje na izlazu sadraj tekstualnog fajla u obliku znakovnog podatka. Funkcija Simple Error Handler prikazuje dijalog ako postoji greka u nekoj od File I/O funkcija. 3. Vratiti se u prednji panel i uneti putanju do tekstualnog fajla. 4. Pokrenuti VI i posmatrati sadraj fajla u indikatoru znakovnog podatka. 5. Memorisati VI pod imenom Read Text File.vi. Aktivnost 9-6: Upisivanje i oitavanje binarnih fajlova Ovde emo izgraditi VI koji upisuje binarni fajl, a zatim drugi VI koji oitava ove binarne fajlove. 1. Kreirajmo VI koji upisuje binarni fajl. Izgraditi prednji panel kao na slici 9.40, sa jednim chart-om i jednim nizom brojeva.

Slika 9.40 Prednji panel 171

2. Izgraditi blok dijagram kao na slici 9.41.

Slika 9.41 Blok dijagram Write To Binary File Stvoriemo binarne podatke generisanjem niza taaka koje predstavljaju sinusni signal. Da bi ovo uradili koristiemo funkciju koja se zove Sine Wave.vi iz palete Programming >> Signal Processing >> Signal Generation. 3. Memorisati VI pod imenom Write To Binary File.vi. Pokrenimo VI da bi ga testirali. Trebamo videti iscrtane podatke i treba da izae dijalog za memorisanje fajla. Nazvati fajl My Data.dat. Funkcija Sine Wave.vi generie niz koji sadri sinusni signal (vidi sliku 9.42).

Slika 9.42 Sine Wave.vi 4. Izgradimo VI koji oitava binarni fajl koji smo upravo kreirali. Kreirajmo prednji panel i blok dijagram kao na slikama 9.43 i 9.44.

Slika 9.43 Prednji panel Read From Binary File.vi

Slika 9.44 Blok dijagram Read From Binary File.vi 172

5. U blok dijagramu koristiti funkciju Read From Binary File iz palete Programming >> File I/O. Mora se povezati ulaz data type. Poto znamo da je fajl kreiran kao niz DBL, kreiramo konstantu niza u blok dijagramu tipa DBL. Da bi kreirali konstantu niza tipa niz podataka DBL tipa: a. Iz palete Programming >> Array izaberemo Array Constant. b. Iz palete Programming >> Numeric izaberemo Numeric Constant i stavimo je unutar boksa niza. c. Sada imamo niz, ali prepodeeni tip numerikih podataka je celobrojni I32. Desnim klikom na numeriku konstantu unutar niza selektujemo Representation >> DBL. 6. Memoriimo VI pod imenom Read From Binary File.vi i pokrenimo ga. Aktivnost 9-7: Temperature i time stamps Izgraditi VI koji uzima 50 oitavanja temperature unutar petlje, jednom na 0.25 sekunde, i iscrtava svako na chart-u. Takoe konvertuje svako oitavanje u znakovni podatak i zatim spaja taj znakovni podatak sa tab karakterom, time stamp-om i karakterom za kraj linije. VI upisuje sve ove podatke u fajl. Memorisati ga pod imenom Temperature Log.vi. Koristiti konstante Tab i End of Line iz palete String. Koristiti funkciju Concatenate Strings za spajanje znakovnih podataka. Koristiti Write Characters To File za memorisanje podataka. Mogu se upisivati podaci u fajlu linija po linija, ali je mnogo bre i efikasnije prikupljanje svih podataka u jedan veliki znakovni podatak korienjem pomerakih registara i Concatenate Strings, a zatim njihovo upisivanje u fajl. Fajl se moe pogledati korienjem bilo kog programa za obradu teksta, a treba da izgleda ovako: 78.9 79.0 79.0 11 : 34 : 38 11 : 34 : 39 11 : 34 : 50

Aktivnost 9-8: Veba sa spreadsheet fajlovima Izgraditi VI koji generie 2D niz (tri reda puta 100 kolona) sluajnih brojeva i upisuje transponovane podatke u spreadsheet fajl (vidi sliku 9.45). (Memoriimo fajl sa ekstenzijom .csv tako da se moe otvoriti nekom spreadsheet aplikacijom.) Fajl treba da sadri zaglavlje za svaku kolonu kao to je prikazano. Koristiti funkcije iz paleta Programming >> String i Programming >> File I/O. Memorisati ga pod imenom Spreadsheet Exercise.vi.

Slika 9.45 Podaci generisani u ovoj aktivnosti, prikazani u spreadsheet aplikaciji 173

Deseti deo Generisanje i merenje parametara signala


Kako povezati raunar sa realnim svetom Zavisno od aplikacije nama je potrebna neka procedura dovoenja podataka u raunar. Obino su mogua nekoliko reenja, ali najbolje reenje obino zavisi od ustupaka koje moramo nainiti. Pre kupovine hardvera mora se analizirati i razumeti tip signala koji emo meriti (u nekim sluajevima, kao to je serijska komunikacija, moda nam nee biti potreban dodatni hardver). Jedna od prvih stvari oko koje moramo odluiti je da li emo prilikom projektovanja akvizicionog sistema koristiti tradicionalne eksterne instrumente, kao to je multimetar. Da li elimo da fiziki instrument obavlja neki deo akvizicije i obrade podataka ili elimo da kreiramo LabVIEW virtuelni instrument koji e sve odraivati preko plug-in DAQ kartica?

Slika 10.1 Povezivanje raunara sa realnim svetom korienjem hardvera za akviziciju podataka injenice kao to su cena, fleksibilnost, vremensko planiranje, e takoe igrati znaajnu ulogu prilikom odluivanja. Na primer, ako elimo oitavati neke niskonaponske podatke, moemo koristiti jednostavan plug-in DAQ ureaj. Moemo kreirati VI koji je veoma specifian za nau aplikaciju i tano onakav kakav nam treba. Uopteno govorei, mnogo je jeftinije kupiti plug-in DAQ ureaj neko klasian instrument. S druge strane, ako ve imamo neki instrument (multimetar, na primer) bie jeftinije da koristimo njega za merenje napona i da aljemo podatke u raunar preko komunikacionog porta. Sa jednim DAQ ureajem moemo kreirati onoliko virtuelnih instrumenata koliko nam je potrebno. Kada elimo da vrimo nadogradnju plug-in ureaja ili njegovo prebacivanje na drugu platformu moda neemo morati da menjamo nita u blok dijagramu. Signali Signal je jednostavno bilo koja fizika veliina ije varijacije amplitude sa vremenom (ili nekog drugog parametra) nose korisnu informaciju. Tajming Vreme je esto najkritiniji aspekat kod veine merenja. Da li mi eleli da posmatramo kako se menja temperatura motora sa vremenom, ili da vidimo kako izgleda filtrirani audio signal, ili da zatvorimo neke ventile kada smea gasova premai njen optimalni odnos, vreme je odluujui faktor pri akviziciji i kontroli podataka. elimo znati ne samo ta se deava, ve i kada. Tajming je vaan prilikom projektovanja softvera za akviziciju podataka iz nekoliko razloga. Prvo, treba zakljuiti kako podesiti brzinu odmeravanja ili koliko esto raunar vri neko merenje. Drugo, treba biti spreman priliko dodele vremena procesora drugim zadacima kao to su I/O fajlova. 174

Ako trebamo samo oitavati podatke jednom ili dva puta u sekundi ili sporije, nee nam trebati neka preterana tanost tajminga izmeu uzoraka, moemo koristiti LabVIEW vremenske funkcije za direktno kontrolisanje brzine odmeravanja iz naeg programa, stavljanjem wait funkcije u VI koji uzima jednu taku, na primer, u petlji. Za preciznije aplikacije ili AC signale, pustiemo da hardver i softver niskog nivoa podesi brzinu odmeravanja konfigurisanjem merenja shodno tome na DAQ ureaju. Klasifikacija signala Ako elimo da obavimo neko merenje, hardver koji koristimo za kondicioniranje signala ili DAQ ureaj koji meri signal direktno, zahteva da prvo konvertujemo veliinu u elektrini signal, kao to je napon ili struja. Merni pretvara obavlja ovu konverziju. Na primer, ako elimo da merimo temperaturu, moramo nekako temperaturu predstaviti kao napon koji DAQ ureaj moe oitati. Postoje raznovrsni merni pretvarai temperature koji koriste neke fizike osobine toplote i materijala da konvertuju temperaturu u elektrini signal. Kada je fizika veliina u formi elektrinog signala, moemo onda obraivati signale radi ekstraktovanja neke korisne informacije koja se nalazi u jednom ili vie parametara: stanju, brzini, nivou, obliku i frekventnom sadraju (vidi sliku 10.2).

Slika 10.2 DAQ sistem konvertuje signal u informaciju koju softver moe iskoristiti Svi signali su analogni signali koji se menjaju sa vremenom. Meutim, da bi diskutovali o metodama merenja signala, trebamo prvo klasifikovati signale u jedan od pet tipova signala. Signal klasifikujemo po nainu kako nosi korisnu informaciju. Prvo, moemo klasifikovati bilo koji signal kao analogni i digitalni. Digitalni, ili binarni, signal ima samo dva mogua diskretna nivoa: visoki (on) nivo i niski (off) nivo. Analogni signal, s druge strane, sadri informaciju u kontinualnim promenama signala u vremenu. Slika 10.3 prikazuje hijerarhiju klasifikacije signala.

Slika 10.3 Hijerarhija klasifikacije signala Ininjeri esto klasifikuju digitalne signale u dodatna dva tipa, a analogne signale u dodatna tri tipa. Dva tipa digitalnog signala su on-off signal i signal u vidu povorke impulsa. Tri tipa analognog signala su DC signal, signal u vremenskom domenu (ili AC) i signal u frekventnom domenu. Dva digitalna i tri analogna tipa signala su jedinstveni u nainu noenja informacije.

175

Digitalni signali Prvi tip digitalnog signala je on-off signal, ili signal stanja. Signal stanja nosi informaciju u digitalnom stanju signala. Stoga, merni hardver koji obrauje ovaj tip signala je jednostavno detektor digitalnog stanja. Izlaz prekidaa TTL logike je primer digitalnog on-off signala. Drugi primer je stanje LED diode, kao to je prikazano na slici 10.4.

Slika 10.4 Primer on-off digitalnog signala Drugi tip digitalnog signala je povorka impulsa, ili signal brzine. Ovaj signal sadri niz prelaza izmeu stanja. Informacija je sadrana u broju prelaza izmeu stanja koji se javlja, odnosno brzini kojom se prelazi javljaju, ili vremenu izmeu jednog ili vie prelaza izmeu stanja. Izlazni signal optikog enkodera montiranog na osovinu motora je primer digitalnog signala u formi povorke impulsa, kao to je prikazano na slici 10.5. U nekim sluajevima, ureaji zahtevaju digitalni ulaz za rad. Na primer, step motor zahteva povorku digitalnih impulsa kao ulaz radi kontrole brzine i pozicije motora.

Slika 10.5 Primer digitalnog signala u obliku povorke impulsa Signali analognog nivoa Analogni DC, ili signali nivoa su statiki ili sa sporim promenama analogni signali. Najvanija karakteristika signala nivoa je da nivo, ili amplituda, signala u datom trenutku nosi informaciju od interesa. Poto se analogni DC signal menja sporo, tanost izmerenog nivoa je

176

bitnija od vremena kada vrimo merenje. Plug-in DAQ ureaj koji meri DC signale radi kao analogno-digitalni konvertor (ADC), koji konvertuje analogni elektrini signal u digitalnu vrednost kako bi je raunar interpretirao. Kao to je prikazano na slici 10.6, uobiajeni primeri DC signala obuhvataju temperaturu, napon baterije, pritisak i statiko optereenje. U svakom sluaju, DAQ sistem nadgleda signal i daje vrednost koja pokazuje amplitudu signala u tom trenutku. Stoga, ovi signali se esto prikazuju na displeju LabVIEW indikatora.

Slika 10.6 Primeri analognih signala nivoa DAQ sistem treba da se usredsredi na sledee specifikacije kada meri analogne DC signale: Visoka tanost/rezolucija tano merenje nivoa signala Mali propusni opseg odmeravanje signala malim brzinama (softverski tajming treba da bude dovoljan). Analogni signali u vremenskom domenu Analogni signali u vremenskom domenu se razlikuju od drugih signala u tome da nose korisnu informaciju ne samo u nivou signala ve i u tome kako taj nivo varira u vremenu. Kada merimo oblik signala interesuje nas neka karakteristika talasnog oblika, kao to je nagib, lokacije i oblici pikova, itd. Da bi merili oblik signala u vremenskom domenu moramo precizno definisati sekvencu uzimanja pojedinanih merenja amplitude ili taaka. Ova merenja moraju biti uzeta brzinom koja e adekvatno reprodukovati oblik talasa. Takoe, serija merenja treba da startuje u pravo vreme da bi bila zagarantovana obrada korisnog deo signala. Stoga, plug-in DAQ ureaj koji meri signale u vremenskom domenu sadri AD konvertor, takt odmeravanja i triger. Takt odmeravanja rukovodi svakom analogno-digitalnom konverzijom. Da bi osigurali da je eljeni deo signala obraen, triger poinje merenje u pravo vreme shodno nekom od spoljanjih uslova. Postoji neogranien broj razliitih signala u vremenskom domenu, od kojih su nekoliko prikazani na slici 10.7. Ono to im je zajedniko je da im je oblik talasa (nivo u zavisnosti od vremena) glavna osobina koja nas interesuje.

Slika 10.7 Primeri oblika signala u vremenskom domenu 177

DAQ sistem treba da se usredsredi na sledee specifikacije kada obrauje analogne signale u vremenskom domenu: Vee irine opsega. Odmeravanje signala na veim brzinama. Taan takt odmeravanja. Odmeravanje signala u preciznim intervalima (potreban hardverski tajming). Okidanje. Startovanje merenja u precizno vreme. Analogni signali u frekventnom domenu Analogni signali u frekventnom domenu su slini signalima u vremenskom domenu jer nose informaciju u promeni signala u vremenu. Meutim, informacija ekstraktovana iz signala u frekventnom domenu je bazirana na frekventnom sadraju signala, nasuprot obliku signala. Kao kod signala u vremenskom domenu, DAQ ureaj koji meri signale u frekventnom domenu mora obuhvatiti AD konvertor, takt odmeravanja i triger za precizno merenje talasa. Moemo vriti ovaj tip obrade digitalnog signala (DSP) korienjem aplikacionog softvera ili specijalnog DSP hardvera dizajniranog za brzu i efikasnu analizu signala. DAQ sistem treba da ostvari sledee specifikacije prilikom obrade analognih signala u frekventnom domenu: Vee irine opsega. Odmeravanje signala veim brzinama. Maksimalna frekvencija koju moemo detektovati e uvek biti manja od polovine frekvencije odmeravanja. Taan takt odmeravanja. Odmeravanje signala u preciznim trenucima (potreban hardverski tajming). Okidanje. Startovanje merenja u precizno vreme. Funkcije analize. Konvertovanje vremenske u frekventnu informaciju. Slika 10.8 prikazuje nekoliko primera signala u frekventnom domenu. Mada moemo analizirati bilo koji signal u frekventnom domenu, neki signali i polja primene su pogodni posebno za ovaj tip analize. Ta polja su govor, akustika, geofiziki signali, vibracije i prenosne funkcije sistema.

Slika 10.8 Primeri merenja frekventnog sadraja signala Jedan signal pet mernih perspektiva Pet klasifikacija signala prezentovanih u ovoj sekciji nisu meusobno iskljuive. Pojedinani signal moe nositi vie od jedan tip informacije. Stoga se signal moe klasifikovati u vie od jednog tipa signala i stoga ga moemo obraivati na vie naina. Moemo koristiti jednostavnije merne tehnike kod digitalnih on-off signala, povorke impulsa

178

i DC signala poto su oni samo jednostavniji sluajevi analognih signala u vremenskom domenu. Moemo meriti isti signal sa razliitim tipovima sistema, koji se kreu od jednostavnih ureaja sa digitalnim ulazom do sofisticiranih sistema sa frekvencijskom analizom. Merna tehnika koju izaberemo zavisi od informacije koju elimo da ekstraktujemo iz signala. Pogledati sliku 10.9. Demonstrira kako jedna povorka naponskih impulsa obezbeuje informacije za sve pet klase signala.

Slika 10.9 Pet naina merenja istog signala Aktivnost 10-1: Klasifikovanje signala Klasifikovati sledee signale u jedan od pet tipova signala opisanih ranije iz perspektive akvizicije podataka. U nekim sluajevima signal moe imati vie od jedne klasifikacije. Izabrati tip u koji se signal najbolje uklapa. Q1: 1. Analogni DC 2. Analogni AC 3. Digitalni on/off 4. Digitalni impulsni/brojaki 5. Frekventni 12345 12345 12345 12345 12345 12345 12345 12345 12345 12345 12345 Naponski nivo baterije Stanje releja Podaci paralelnog porta PC-a za vreme tampanja um u obliku glia u izvoru napajanja Prenosna funkcija digitalnog filtra Protok podataka preko Interneta Spoljanja relativna vlanost RPM motora automobila za vreme vonje po gradu EEG (modani talasi) Govor preko mikrofona Apsolutni pritisak u cilindru motora

179

Merni pretvarai Kada podeavamo DAQ sistem, zapamtimo da sve to elimo meriti mora postati elektrini napon ili struja. Fenomen koji merimo kao to je temperatura, sila, zvuk, svetlost, vlanost, itd. konvertujemo u elektrini signal korienjem mernog pretvaraa. Tabela 10.1 prikazuje neke uobiajene merne pretvarae koji se koriste za konverziju fizikog fenomena u mernu veliinu. Tabela 10.1 Fiziki fenomeni i merni pretvarai koji se koriste za njihovo merenje
Fenomen Temperatura Svetlost Zvuk Sila i pritisak Pozicija (pomeraj) Protok tenosti pH Merni pretvara Termoparovi Otporni temperaturni detektori (RTD) Termistori Integrisani senzori Fotosenzori u obliku vakumske cevi Fotoprovodne elije Mikrofoni Merne trake Piezoelektrini pretvarai Optereene elije Potenciometri LVDT Optiki enkoderi Indukcioni merai protoka Rotirajui merai protoka Ultrazvuni merai protoka pH elektrode

Kondicioniranje signala Poto je elektrini um prisutan svuda oko nas: um od 60 Hz koji dolazi od AC napajanja i osvetljenja; RF um koji dolazi od fluorescentnog svetla, mobilnih telefona, mikrotalasa, elektrinih motora itd. Dok ne stigne signal do DAQ ureaja on moe na svom putu prikupiti toliko uma ili moe imati toliko drugih problema da merenje postaje beskorisno. Obino se mora vriti neki tip kondicioniranja analognih signala koji reprezentuju fizike fenomene. Kondicioniranje je u stvari manipulacija signalom kako bi se pripremio za digitalizaciju u DAQ ureaju. Signal treba da stigne to je mogue istiji od uma, unutar naponskog (obino 5 ili 0 do 10 V) i strujnog (obino 20 mA) opsega DAQ ureaja, sa dovoljno preciznosti za odreenu aplikaciju. Ostale specifinosti zavise od upotrebljenog senzora. Na primer, kondicioniranje audio signala iz mikrofona moe obuhvatiti nita vie do pravilnog uzemljenja sistema i obino korienja niskopropusnog filtra. S druge strane, ako elimo meriti jonizacione nivoe u plazma komori pri 800 V a ne elimo da sprimo raunar, moramo obezbediti kompleksnija kola koja ukljuuju izolacione pojaavae.

Slika 10.10 SCXI asija sa nekoliko modula za kondicioniranje signala

180

Za signale koji zahtevaju specijalno kondicioniranje ili za sisteme koji imaju mnogo signala, National Instruments je namenio SCXI (Signal Conditioning eXtensions for Instrumentation). SCXI sistemi, kao to su oni prikazani na slikama 10.10 i 10.11, imaju asiju u koju se mogu ubacivati modularne jedinice kako bi se izgradio sistem. Ove modularne jedinice obuhvataju analogne ulazne multipleksere, analogne izlazne ureaje, module za kondicioniranje signala iz termoparova itd.

Slika 10.11 SCXI sistemi se esto koriste u okviru industrijskih mernih ormana za aplikacije sa mnogo kanala Neki uobiajeni tipovi kondicioniranja signala su: Pojaanje Pobuivanje mernog pretvaraa Linearizacija Izolacija Filtriranje Kondicioniranje signala nam omoguuje povezivanje senzora i signala iz njega sa DAQ ureajem u raunaru, kao to je prikazano na slici 10.12.

Slika 10.12 Kondicioniranje signala za razliite tipove mernih pretvaraa i signala

181

Uzemljavanje Neke fizike veliine su apsolutne, ako masa na primer, ali napon nije definitivno apsolutan; uvek zahteva neku referentu veliinu. Odnosno on predstavlja potencijalnu razliku izmeu dva tela. Jedno od tela se obino bira da bude referentno i dodeljuje mu se 0 V. Tako da kada govorimo o 3.47 V to ne znai nita sve dok ne znamo u odnosu na koju referencu. esto referenca nije specificirana, poto je ona najee uzemljenje. Uzemljenje zemlje je potencijal tla ispod naih nogu. Veina elektrinih utikaa ima vezu sa uzemljenjem zemlje, koje se povezuje u elektrinom sistemu zgrade radi sigurnosti. Mnogi instrumenti su takoe povezani sa ovim uzemljenjem, tako da esto ujemo termin uzemljenje sistema. Glavni razlog postojanja ovog uzemljenja je sigurnost, a ne zbog referentnog potencijala. Odnosno, kada govorimo o referentnom naponu ne mislimo na uzemljenje zemlje ili uzemljenje radi sigurnosti i zatite. Referentno uzemljenje je obino referentni potencijal koji nas interesuje. Ovo uzemljenje moe, a ne mora biti povezano sa uzemljenjem zemlje. Cilj je da instrumenti, ureaji i izvori signala obezbede referencu (negativni terminal, zajedniki terminal, itd.) koja daje znaenje naponima koje merimo. Simboli uzemljenja su prikazani na slici 10.13.

Slika 10.13 Simboli uzemljenja DAQ ureaji u raunaru takoe oekuju da merimo napon u odnosu na neku referencu. Koju referencu treba da koristi DAQ ureaj? Imamo izbor, koji e zavisiti od izvora signala koji se povezuje. Signali se mogu klasifikovati i dve kategorije: Uzemljeni Plivajui Uzemljeni izvor signala Uzemljeni izvor je onaj u kojem su naponski signali referentni u odnosu na uzemljenje sistema, kao to je na primer zemaljsko ili uzemljenje zgrade. Poto koriste uzemljenje sistema, oni dele zajedniko uzemljenje sa DAQ ureajem. Uobiajeni primeri uzemljenih izvora signala su ureaji koji se povezuju sa uzemljenjem zgrade preko zidnih utinica, kao to su generatori signala i razna napajanja (vidi sliku 10.14).

Slika 10.14 Uzemljeni izvori signala

182

Plivajui izvori signala Plivajui izvor signala je izvor u kojem naponski signal nije referentan u odnosu na bilo koje zajedniko uzemljenje, kao to je na primer zemaljsko ili uzemljenje zgrade. Neki uobiajeni primeri plivajueg signala su baterije, termoparovi, transformatori i izolacioni pojaavai. Primetimo, kao to je prikazano na slici 10.15, da nijedan terminal izvora nije povezan sa uzemljenjem elektrine utinice. Stoga, svaki terminal je nezavistan u odnosu na uzemljenje sistema.

Slika 10.15 Plivajui izvor signala Merenje naponskih razlika Da bi merili signal, moemo skoro uvek konfigurisati DAQ ureaj da obavlja merenja koja spadaju u jednu od tri kategorije: Diferencijalna Referentna sa jednim krajem Nereferentna sa jednim krajem Diferencijalni merni sistem U diferencijalnom mernom sistemu, nijedan ulaz nije povezan sa fiksnom referencom kao to je zemaljska ili uzemljenje zgrade. Veina DAQ ureaja sa instrumentacionim pojaavaima mogu biti konfigurisani kao diferencijalni merni sistemi. Slika 10.16 prikazuje osmo-kanalni diferencijalni merni sistem koji se koristi u E-seriji DAQ ureaja. Analogni multiplekseri poveavaju broj mernih kanala koji i dalje koriste jedan instrumentacioni pojaava. Za ovaj ureaj, pin oznaen sa AIGND (analogno ulazno uzemljenje) je uzemljenje mernog sistema, kao to je prikazano na slici 10.16.

Slika 10.16 Diferencijalni merni sistem Vredno je zapaziti da SCXI sistemi uvek koriste popularni diferencijalni merni sistem, dok nam veina plug-in DAQ ureaja daje izbor. Idealni diferencijalni merni sistem ita samo potencijalnu razliku izmeu njegova dva terminala: ulaza (+) i (-) (vidi sliku 10.17). Bilo koji napon koji je prisutan na ulazima

183

instrumentacionog pojaavaa u odnosu na uzemljenje pojaavaa se tretira kao zajedniki napon. Idealni diferencijalni merni sistem kompletno potiskuje (ne meri) zajedniki napon. Praktini ureaji, meutim, imaju ogranienu sposobnost potiskivanja zajednikog napona. Ovo moe dovesti do, ne samo merne greke, ve i do mogueg oteenja komponenata u DAQ ureaju. Faktor potiskivanja zajednikog napona odreuje kvalitet DAQ ureaja, koji radi u diferencijalnom modu, da potiskuje zajedniki napon.

Slika 10.17 Idealni diferencijalni merni sistem Merimo zajedniki napon, Vcm, u odnosu na uzemljenje DAQ ureaja, i raunamo ga korienjem formule: V + +V Vcm = 2 gde je: V+ = napon na neinvertujuem terminalu mernog sistema u odnosu na uzemljenje instrumentacionog pojaavaa V- = napon na invertujuem terminalu mernog sistema u odnosu na uzemljenje instrumentacionog pojaavaa

Referentni merni sistem sa jednim krajem Referentni merni sistem sa jednim krajem, takoe poznat kao uzemljeni merni sistem, je slian uzemljenom izvoru signala u tome da se merenje obavlja u odnosu na uzemljenje zemlje. Slika 10.18 oslikava 16-kanalni RSE merni sistem.

Slika 10.18 Referentni merni sistem sa jednim krajem (RSE)

NRSE merni sistem DAQ ureaji esto koriste varijantu RSE merne tehnike, poznate kao nereferentni merni sistem sa jednim krajem (NRSE). U NRSE mernom sistemu, sva merenja se obavljaju u odnosu na zajedniko referentno uzemljenje, ali napon na ovoj referenci moe varirati zavisno od uzemljenja mernog sistema. Slika 10.19 oslikava NRSE merni sistem gde je AISENSE zajednika referenca za obavljanje merenja i AIGND je uzemljenje sistema.
184

Slika 10.19 Nereferentni merni sistem sa jednim krajem (NRSE) Merni sistem je definisan nainom konfigurisanja DAQ ureaja. Veina ureaja iz National Instruments moe biti konfigurisana za diferencijalno, RSE ili NRSE merenje preko odgovarajueg softvera (koji se zove NI-MAX). Neki od starijih ureaja se takoe mogu konfigurisati na samoj ploici postavljanjem odgovarajuih dampera. Kada se konfigurie pojedinani DAQ ureaj za odreeni tip mernog sistema, svi ulazni kanali e pratiti taj tip merenja. Uopteni vodi prilikom odluivanja koji merni sistem izabrati je da se uzemljeni izvori signala mere diferencijalnim ili NRSE sistemom, a plivajui izvori RSE sistemom. Hazard prilikom korienja RSE sistema u sluaju uzemljenih izvora signala je u stvaranju uzemljivakih petlja koje su izvor mernih greaka. Slino, korienje diferencijalnog ili NRSE sistema za merenje plivajueg izvora dovodi do pojave nepoeljnih struja, koje dovode do toga da ulazni opseg izae iz opsega DAQ ureaja. Slika 10.20 daje pregled mernih konfiguracija za svaki tip signala. Uzemljeni izvori signala: instrumenti sa neizoliranim izlazima Plivajui izvori signala: termoparovi, baterije, kondicioneri signala sa izoliranim izlazima

Slika 10.20 Merne konfiguracije za svaki tip signala Odmeravanje, aliasing

Brzina odmeravanja odreuje brzinu rada analogno-digitalnog konvertora (ADC). Svaki uzorak podatka (oznaen pravougaonikom) na signalu prikazanom na slici 10.21 reprezentuje jednu analogno-digitalnu konverziju. Ako DAQ sistem vri jednu AD konverziju svake pola sekunde, brzina odmeravanja je 2 odmeraka/sekundi, ili 2 Hz.

185

Slika 10.21 Aktuelni signal i odmereni signal sa takama koje reprezentuju digitalizovane/odmerene vrednosti Kada brzina odmeravanja nije dovoljna, javlja se aliasing koji je lako uoiti (vidi sliku 10.22). Ako odmeravamo 8.5 puta sporije (krugovi na signalu) rekonstruisani signal ne lii na original.

Slika 10.22 Aliasing signala uzrokovan neadekvatnim odmeravanjem Aliasing uvodi frekvencije koje ne postoje u originalnom signalu, a uklanja neke koje su postojale i tako ozbiljno izobliuje signal. Da bi se aliasing izbegao primenjuje se Nikvistova teorema po kojoj frekvencija odmeravanja mora biti dva puta vea od maksimalne frekventne komponente u signalu. Ako neznamo koja je frekventna komponenta maksimalna moramo filtrirati signal kako bi uklonili neke nepoeljne visoke frekvencije. Izbor i konfigurisanje DAQ mernog hardvera Izbor hardvera

Kada znamo koji tip signala elimo meriti i/ili generisati, vreme je za izbor DAQ ureaja, kao to su oni prikazani na slici 10.23. National Instruments nudi irok izbor raznih DAQ ureaja sa dobrim izborom magistrala, platformi, performansi, funkcionalnosti i cene.

Slika 10.23 DAQ ureaji

186

Da bi se izabrao najbolji hardver za sistem, moraju se dobro razumeti zahtevi sistema (npr., koliko ulaza, koliko izlaza). Sledea lista moe biti korisna prilikom odreivanja hardvera: Koji tip operativnog sistema koristimo (Windows, Linux, Mac OS)? Koji tip magistrale ili konektora je dostupan (PCI, PC-Card za laptopove, USB, itd.)? Koliko analognih ulaza je potrebno (pomnoeno sa 2 ako su nam potrebni diferencijalni ulazi)? Koliko analognih izlaza je potrebno? Da li su analogni ulazi naponski, strujni ili oba? Koji su njihovi opsezi? Koliko digitalnih ulaza i izlaza je potrebno? Da li su potrebni brojaki ili tajming signali? Koliko? Da li neki od analognih I/O signala zahteva specijalno kondicioniranje signala (npr., temperatura, pritisak ili naprezanje)? Da li e neki od analognih I/O signala premaiti 10 V ili 20 mA? Kolika je minimalna zahtevana brzina odmeravanja od strane bilo kog kanala? Kolika je minimalna brzina skeniranja za sve kanale? Kolika je potrebna preciznost ili rezolucija (12-bita, 16-bita ili 24-bita)? Portabilnost, robustnost, izolacija, cena? Uraunavanje potreba u budunosti (ekspanzija, novi DAQ sistemi, itd.)? Odgovorom na ova pitanja, biemo u boljoj poziciji prilikom izbora pogodnog DAQ ureaja. Popularni National Instruments ureaji su multifunkcionalni ureaji M serije. Multifunkcionalni DAQ ureaj kao to su ureaji M serije obezbeuju analogne ulaze, analogne izlaze, digitalne I/O i esto najmanje jedan broja/tajmer, to ih ini pogodnim za iroki dijapazon aplikacija (vidi sliku 10.24).

Slika 10.24 Multifunkcionalni National Instruments DAQ ureaj M serije Analogni ulaz multifunkcionalnog ureaja sadri AD konvertor i elektroniku koja obuhvata analogni multiplekser, instrumentacioni pojaava i kolo odmeri-pamti. Aktivnost 10-2: Analiza mernog sistema

Treba specificirati potrebne informacije. Dati odgovor na pitanja za svaki scenario: 1. 2. 3. 4. 5. Koji tip signala treba meriti? Koji tip merenja (obrade) signala preporuuje? Koja treba da bude brzina odmeravanja signala? ta je Nikvistova frekvencija? Da li je potrebno kondicioniranje signala? Ako jeste, koje? Koji hardver izabrati za taj sistem?

187

A.

B.

Profesor Dragan Radenkovi, laboratorija za biomedicinu, eli da obradi signale srca iz oveka. On eli da meri elektrokardiograme iz dva subjekta istovremeno. Svaki subjekt ima etiri elektrode povezane za njegovo telo na razliitim mestima. Cilj je meriti u realnom vremenu potencijal izmeu svake od tri elektrode, a etvrtu elektrodu oznaiti kao referentnu. Vodovi iz elektroda do DAQ sistema nemaju izolaciju ili uzemljivaki oklop. Maksimalni iznos detalja koji se oekuju u talasnom obliku su segmenti duine 2 ms. Signali su unutar opsega od 0.024 mV. Ms. Aynard eli da meri kako se otpornost fleksibilnog materijala menja usled naprezanja i visokih temperatura. Da bi to uradila, ona ima specijalnu komoru sa mainom koja izvija i isteza materijal u ravnomernim vremenskim intervalima. Komora takoe funkcionie kao pe sa kontrolom temperature. Ona eli da posmatra u realnom vremenu (unutar 1/10 s) kako se otpornost svaka od 48 komada ovog materijala menja unutar komore. Otpornost se meri primenom poznatog napona na svaki komad i merenjem struje. Temperatura komore se nadgleda termoparom. Maina za naprezanje se ukljuuje releom. Konano, broj ciklusa maine za naprezanje treba takoe meriti.
Instaliranje drajvera DAQ ureaja

Svi ureaji sa kojima raunar komunicira koriste drajvere, kodove niskog nivoa koji omoguuju povezivanje ureaja i njegovo korienje. Svi DAQ ureaji dolaze sa drajverima koji se kolektivno nazivaju NI-DAQmx. NI-DAQmx se odmah instaliraju kada instaliramo LabVIEW. Izmeu NI-DAQmx i LabVIEW-a, postoji modul nazvan MAX (Measurement & Automation Explorer). MAX je Windows interfejsni softver koji nam daje pristup svim ureajima National Instruments (bilo da su DAQ, GPIB, VXI itd.). MAX je uglavnom koristan za konfigurisanje i testiranje hardvera. Ovo je veoma korisno uraditi pre pristupa hardveru u LabVIEW. MAX se instalira kad instaliramo LabVIEW; preica je na desktopu (vidi sliku 10.25).

Slika 10.25 Preica za Measurement & Automation Slika 10.26 prikazuje konceptualnu vezu izmeu NI-DAQmx ureaja, NI-DAQmx-a, MAX-a, LabVIEW-a i korisnika.

Slika 10.26 Konceptualne veze koje povezuju korisnika i DAQ ureaje

188

Measurement & Automation Explorer (MAX)

MAX, prikazan na slici 10.27, se uglavnom koristi za konfigurisanje i testiranje hardvera National Instruments, ali nudi i druge funkcionalnosti kao to je proveravanje da li imamo instaliranu zadnju verziju NI-DAQmx.

Slika 10.27 MAX prozor za konfigurisanje NI-DAQmx

NI-DAQmx je drajver za DAQ ureaje firme National Instruments. NI-DAQmx zamenjuju starije tradicionalne NI-DAQ i obezbeuju sledea poboljanja u odnosu na tradicionalni NI-DAQ: Poboljani model stanja Drajvere koji paralelno mogu koristiti vie procesa Robustnost u izuzetnim uslovima Pojednostavljena sinhronizacija Smanjena prenatrpanost LabVIEW dijagrama Blagi prelaz sa lakog ka naprednijem programiranju Da bi proverili da li je NI-DAQmx instaliran odemo na My System >> Software u MAX konfiguracionom panelu. Naemo NI-DAQmx i selektujemo ga miem. Ovo e prikazati informacije o verziji NI-DAQmx softvera u tabu Attributes, kao to je prikazano na slici 10.28. Kategorija softver u MAX panelu prikazuje sve trenutno instalirane verzije National Instruments softvera. Ikona za svaki softverski paket je takoe preica koju moemo koristiti za pokretanje softvera. Na primer, desnim klikom na ikonu LabVIEW 8.0 i izborom Launch LabVIEW 8.0 moemo pokrenuti LabVIEW. Kategorija softver takoe obuhvata Software Update Wizard za proveru da li je National Instruments softver zadnja verzija. Desnim klikom na ikonu kategorije softver i selektovanjem Get Software Updates pokreemo Software Update Wizard (vidi sliku 10.29). 189

Slika 10.28 Provera da li je instaliran NI-DAQmx

Slika 10.29 Provera za softverskim update-ovima u MAX Konfigurisanje NI-DAQmx ureaja u MAX-u

Ako nemamo povezan NI-DAQmx ureaj sa raunarom, trebamo znati da NI-DAQmx podrava simulaciju ureaja. Odemo na kategoriju My System >> Devices and Interfaces >> NI-DAQmx ureaji u MAX-u. Ispod nje trebamo videti listu svih fizikih i simuliranih NIDAQmx ureaja povezanih sa naim sistemom (kao to je prikazano na slici 10.30).

Slika 10.30 NI-DAQmx ureaji u MAX-u, prikazuje fizike i simulirane ureaje povezane sa naim sistemom Kao dodatak NI-DAQmx ureajima, kategorija Devices and Interfaces prikazuje bilo koji trenutno instalirani i detektovani National Instruments hardver, kao to su plug-in DAQ ureaji, SCXI i PXI asije, GPIB kontroleri, itd. Devices and Interfaces takoe obuhvata module za konfigurisanje i testiranje ureaja. Desni klik na instalirani NI-DAQmx ureaj otvara skaui meni koji nam nudi opcije: samotestiranja, test panela, resetovanje ureaja, kreiranje zadataka, TEDS konfigurisanje, promenu imena, brisanje, raspored pinova ureaja, osobine ureaja i samokalibracije. Opcija samotestiranja pokree kratak test resursa ureaja, a zatim formira poruku sa rezultatima testiranja. Prozor test panela (prikazan na slici 10.31) se koristi za testiranje funkcionalnosti analognog ulaza, analognog izlaza, digitalnih I/O i brojaa naeg DAQ ureaja. Ovo je veoma korisno za reavanje problema, jer nam omoguuje testiranje funkcionalnosti naeg ureaja direktno pomou NI-DAQmx. Ako ureaj ne radi u test panelu, on nee raditi ni u LabVIEW. Opcija za resetovanje ureaja izvrava hardversko rebutovanje ureaja. Resetovanje prekida sve tekue zadatke i vraa ureaj na prepodeene vrednosti. Opcija za kreiranje zadatka kreira NI-DAQmx zadatak.

190

Slika 10.31 Prozor test panela Opcija za TEDS konfigurisanje omoguuje konfigurisanje TEDS senzora povezanih za na DAQ ureaj. TEDS se pridrava Transducer Electronic Data Sheets i sa IEEE standardom (IEEE 1451.4) za pametne senzore koji memoriu sopstvene kalibracione podatke i mogu komunicirati sa raunarom. Opcija za promenu imena omoguuje promenu imena koje emo koristiti za adresiranje ureaja u LabVIEW. Prepodeena imena su Dev.1, Dev.2 itd. Opcija brisanja e biti onemoguena za plug & play fizike ureaje, ali e biti mogua za simulirane ureaje. Opcija za raspored pinova otvara pomonu dokumentaciju terminala NI-DAQmx ureaja, koja prikazuje brojeve pinova za povezane fizike signale ka i iz DAQ ureaja (vidi sliku 10.32).

Slika 10.32 Raspored pinova ureaja, kao to prikazuje pomona dokumentacija terminala NI-DAQmx ureaja

191

Panel Properties omoguuje konfigurisanje dodatnih opcija specifinih za neki ureaj kao to su napajanja, dodatna oprema, RTSI konfiguracija itd. Opcija samokalibracije pokree samokalibraciju na ureaje koji podravaju samokalibraciju. NI-DAQmx simulirani ureaji NI-DAQmx omoguuje dodavanje simuliranih ureaja u sistem, njihovo konfigurisanje i testiranje u MAX i dobavljanje podataka iz njih u LabVIEW. Da bi kreirali NI-DAQmx simulirani ureaj, sledimo sledee korake u MAX: 1. Desnim klikom na NI-DAQmx Devices (nalazi se ispod Devices and Interfaces) selektujemo Create New NI DAQmx Device... >> NI-DAQmx Simulated Device iz skaueg menija, kao to je prikazano na slici 10.33.

Slika 10.33 Kreiranje NI-DAQmx simuliranog ureaja u MAX-u 2. U dijalog boksu Choose Device (vidi sliku 10.34) naemo ureaj koji elimo simulirati i pritisnemo OK dugme. Ureaji su organizovani po familijama.

Slika 10.34 Dijalog Choose Device, koji omoguuje specificiranje tipa simuliranog ureaja Ako niste sigurni koji tip simuliranog ureaja treba kreirati, izaberite ureaj opte namene sa mnogo razliitih I/O. Na primer, DAQ ureaj 6221 M serije ima 16 analognih ulaza, dva analogna izlaza, 24 digitalnih I/O linija, dva brojaa/tajmera. U MAX-u, ikone za simulirane NI-DAQmx ureaje su ute, a za fizike (realne) ureaje su zelene. Da bi uklonili NI-DAQmx simulirani ureaj, desnim klikom na ureaj izaberemo Delete iz skaueg menija. Konfigurisanje akvizicije podataka

Sada emo govoriti o tome kako konfigurisati NI-DAQmx skale, NI-DAQmx virtuelne kanale i NI-DAQmx zadatke u MAX-u. Ovo su kljune komponente da bi se obavilo merenje u LabVIEW. Skala definie skaliranje informacije koja se moe koristiti od strane virtuelnih kanala, virtuelni kanali definiu merenja i sastoje se od jednog ili vie DAQ kanala, a zadatak definie informacije o tajmingu, okidanju i veliini uzorka prilikom dobavljanja podataka iz virtuelnih kanala. NI-DAQmx skaliranje Skala definie informacije skaliranja koje se mogu upotrebiti od strane virtuelnih kanala. Ovo je ponekad neophodno ili korisno posebno za senzore koji nisu linearni ili kada elimo da oitamo aktuelne jedinice direktno umesto upotrebom konverzije napona ili struje u eljenu jedinicu, kao to je temperatura. Svaka skala moe imati svoje ime i opis da bi nam pomoglo prilikom njene identifikacije (vidi sliku 10.35). Skala moe biti jedan od etiri tipa: linearna, tipa mape, polinomna ili u obliku tabele: 192

Linearna skala koja koristi formulu y = mx + b. Tipa mape linearna skala kada korisnici unose parove XY koordinata umesto unoenja vrednosti za m i b. Polinomna skala koja koristi formulu y = a0 + a1*x + a2*x2 + ... + anxn. Tabelarna skala gde unosimo vrednost reda i odgovarajuu skaliranu vrednost u formi tabele.

Slika 10.35 NI-DAQmx skaliranje u MAX-u

NI-DAQmx virtuelni kanali Virtuelni kanali definiu realna merenja koja se sastoje iz jednog ili vie DAQ kanala (terminali na DAQ ureaju) zajedno sa drugim informacijama o samom kanalu: opseg, konfigurisanje terminala i skaliranje, odnosno one koje se koriste za formatiranje podataka. Veina DAQ ureaja jednostavno mere ili generiu elektrine napone ili struje (analogne napone izmeu -10 V i +10 V, analogne struje izmeu 20 mA i 40 mA, digitalne napone koji su ili 0 V ili +5 V, itd.). Meutim, kada elimo da merimo fiziki fenomen kao to je temperatura, vlanost, brzina vetra, moramo konvertovati jedan ili vie elektrinih signala, koji su izmereni naim DAQ ureajima, u realno merenje. Mi naravno ne moramo koristiti virtuelne kanale. U LabVIEW aplikaciji moemo se obratiti kanalu ureaja preko njegovog broja (0, 1, 2, ...). Ali njihovo konfigurisanje prvo preko virtuelnih kanala u MAX-u je pogodno jer moemo koristiti u LabVIEW prednjem panelu ili blok dijagramu DAQmx Global Channel ring koji nam nudi imena svih virtuelnih kanala i mi moemo ak automatski generisati LabVIEW VI iz DAQmx Global Channel (vidi sliku 10.36).

Slika 10.36 Dodeljivanje DAQmx globalnog kanala ringu DAQmx Global Channel u prednjem panelu naeg VI-a Da bi kreirali virtuelni kanal, desnim klikom na ikonu Data Neighborhood u MAX-u izaberemo Create New.... Selektujemo NI-DAQmx globalni virtuelni kanal i kliknemo Next. Ovo nas vodi kroz korake za podeavanje virtuelnog kanala (vidi sliku 10.37).

Podeavanje naponskog ulaza i izlaza Kada konfiguriemo virtuelne kanale koji koriste analogne I/O, vano je razumeti neke od parametara koji kontroliu rad AD konvertora i DA konvertora. U skoro svim ureajima, konfiguriemo ova podeavanja u virtuelnom kanalu ili panelu za podeavanje zadatka. Vrste podeavanja koja moemo uraditi ukljuuju parametre kao to su opseg, ulazni mod, referenca i polarnost; na primer, kod veine ureaja M serije, moemo podesiti sledee: Opseg ulaza ADC-a Unipolarni od 0 V do +10 V Bipolarni 5 V Bipolarni 10 V (prepodeeno) Mod ulaza ADC-a Uzemljeni referentni sa jednim krajem Nereferentni sa jednim krajem Diferencijalni (prepodeeni) 193

Referenca DAC-a Polarnost DAC-a

Interna (prepodeena) Eksterna Unipolarni binarni mod Bipolarni mod sa (prepodeeni)

dvojinim

komplementom

Slika 10.37 Dijalog Create New...

NI-DAQmx zadaci Ponekad kada vrimo merenje, moraemo da koordiniemo oitavanje podataka iz jedan ili vie kanala sa vremenskim i okidnim dogaajima. NI-DAQmx zadatak (task) je kolekcija jednog ili vie virtuelnih kanala zajedno sa tajmingom, okidanjem i drugim osobinama. Konceptualno, zadatak predstavlja merenje ili generisanje onoga to elimo uraditi. Na primer, zadatak nam omoguuje specificiranje da li elimo da merimo 1 uzorak, merimo N uzoraka, ili da merimo kontinualno (korienjem bafera za smetanje podataka). Zadatak nam takoe omoguuje da specificiramo brzinu odmeravanja, izvor takta i okidae zadatka. Kada jednom definiemo zadatak, moemo jednostavno startovati zadatak, oitavati potrebne podatke i zaustaviti zadatak unutar LabVIEW.
Reenja aktivnosti 10-1

A1: 1, 3, 4, 2, 5, 4, 1, 2, 2, 2, 1
10-2

A.

B.

1. Analogni AC signali, male amplitude, plivajui. 2. Diferencijalno merenje (zbog malih amplituda ka uzemljenju). 3. Nikvistova frekvencija = fn = 1/(2 ms) = 1/(210-3 ms) = 500 Hz. Odmeravati frekvencijom mnogo viom od 1000 Hz, na primer sa 5 kHz. 4. Da. Pojaanje (mala amplituda signala), izolacija (sigurnost) i moda antialiasing filtriranje (zbog uma) se zahteva. 5. Bilo koji ureaj serije M e odraditi ovo. 1. Analogni DC ulaz (oitavanje otpornosti, termopara), analogni DC izlaz (naponsko napajanje), digitalni on/off izlaz (relej za pokretanje maine), digitalni brojaki ulaz (za brojanje ciklusa maine). 2. Referentno merenje sa jednim krajem (RSE). 3. Sva merenja su DC. 10Hz bi trebalo da bude dobra frekvencija odmeravanja. 4. Da, konverzija termopara. 5. SCXI sistem, zbog velikog broja kanala i potrebnog specijalnog kondicioniranja. 194

Jedanaesti deo Akvizicija podataka u LabVIEW


Objanjenje analognih i digitalnih I/O Paleta Measurement I/O>>DAQmx Data Acquisition (vidi sliku 11.1) sadri VI-e i druge alate koji su nam potrebni za akviziciju podataka.

Slika 11.1 Paleta DAQmx Data Acquisition Prvo trebamo razumeti povezivanje izmeu LabVIEW i DAQ ureaja, kao i neke osnovne koncepte pri radu sa analognim i digitalnim I/O. Korienje DAQ asistenta DAQ asistent je ekspresni VI koji kreira, edituje i pokree zadatke korienjem NIDAQmx. Moemo pronai DAQ asistent (vidi sliku 11.2) u paleti Measurement I/O>>DAQmx Data Acquisition palete Functions.

Slika 11.2 DAQ asistent kao jedan ekspresni VI Kada se prvi put otvara konfiguracioni dijalog ovog ekspresnog VI-a (njegovim postavljanjem u blok dijagramu, na primer), dijalog nas vodi kroz proces selektovanja mernog signala (ulaz) ili generisanja signala (izlaz) (prikazano na slici 11.3).

Slika 11.3 Konfiguracioni dijalog DAQ asistenta kada kreiramo novi zadatak Ovaj dijalog (vidi sliku 11.3) se koristi za kreiranje novih NI-DAQmx zadataka i dostupan je iz nekoliko lokacija u LabVIEW i MAX-u. U ovom dijalogu moemo izabrati bilo koji tip merenja i generisanja signala koji podrava NI-DAQmx. Posle zavretka selektovanja tipa merenja i kanala, otvara se stranica za konfigurisanje zadatka.

195

Slika 11.4 Konfiguracioni dijalog DAQ asistenta kada konfiguriemo zadatak Posle pritiska OK dugmeta videemo poruku koja prikazuje progres dok LabVIEW gradi VI. Kada se zavri, videemo da sada postoji terminal data za oitavanje ili upisivanje signala, kao to je prikazano na slici 11.5. Ovaj terminal podataka je dinamiki tip podatka. Moe sadrati skalare i talasne oblike kompatibilne sa bilo kojim I/O tipom koji DAQ asistent podrava.

Slika 11.5 DAQ asistent sa vidljivim terminalom podataka Aktivnost 11-1: Analogni ulaz 1. Povezati naponski izvor, kao to je generator funkcije ili baterija, na kanal 0 naeg DAQ ureaja. Trebamo biti sigurni da li da konfiguriemo ureaj za diferencijalna ili merenja sa jednim krajem. Ako koristimo simulirani NI-DAQmx ureaj imaemo simuliran sinusni signal na analognim ulaznim kanalima. 2. Otvoriti novi VI i smestiti DAQ asistent (paleta Measurement I/O>>NI-DAQmx Data Acquisition) u blok dijagramu.

196

3. U konfiguracionom dijalogu DAQ asistenta izaberemo Analog Input>>Voltage tip merenja (vidi sliku 11.6).

Slika 11.6 Konfiguriimo zadatak za naponski analogni ulaz iz konfiguracionog dijaloga DAQ asistenta 4. Selektujmo fiziki kanal ai0 i pritisnimo dugme Finish (vidi sliku 11.7).

Slika 11.7 Selektujmo fiziki kanal zadatka merenja 5. Na tabu Task Timing, selektujmo Acquisition Mode of 1 Sample (on demand). Ovo e konfigurisati zadatak da daje na izlazu jednu vrednost merenja svaki put kada pozovemo DAQ asistent (vidi sliku 11.8).

Slika 11.8 Konfigurisanje tajminga zadatka acquisition mode as 1 sample (on demand) 6. Pritisnimo OK dugme da bi zatvorili konfiguracioni dijalog prozor. LabVIEW e sada izgraditi VI. 7. Izgraditi prednji panel i blok dijagram kao na slikama 11.9 i 11.10.

Slika 11.9 Prednji panel

Slika 11.10 Blok dijagram 197

Konverzija iz dinamikih podataka 8. Memoriimo VI pod imenom Quick Analog In.vi. 9. Pokrenimo VI i zaustavimo ga posle nekoliko sekundi. Analogni I/O termini i definicije Videemo kako se radi sa analognim podacima kada prelazimo sa DAQ ureaja na softver, kao i nekoliko razmatranja to se tie obrade podataka. Slika 11.11 prikazuje vezu izmeu analognog fizikog signala i LabVIEW-a.

Slika 11.11 Putanja signala u LabVIEW DAQ aplikaciji Kao to vidimo na slici 11.11, iniciranje DAQ operacije ukljuuje LabVIEW NIDAQmx koji povezuje hardver sa LabVIEW softverom. DAQ ureaji koriste bafere na ploici (nazvani FIFO) i RAM bafere kao meuprostor za smetanje podataka. Dve vane karakteristike pomau prilikom klasifikacije tipa analogne DAQ operacije koju izvravamo: Da li koristimo bafer. Da li koristimo spoljanji triger za start, stop ili sinhronizaciju rada. Baferi Bafer, u ovom kontekstu, je memorijski prostor u PC-u (ne FIFO na kartici) rezervisan za podatke koji borave tu privremeno pre njihovog smetanja negde drugde. Na primer, moemo eleti da obradimo nekoliko hiljada odmeraka podataka u jednoj sekundi. Bilo bi teko prikazati na grafu sve te podatke u istoj sekundi. Ali ako DAQ ureaj smeta podatke u memorijski bafer, moemo tu prvo smestiti podatke, a zatim ih kasnije pripremiti za prikazivanje ili analizu. Ako DAQ ureaj ima DMA osobinu, operacije sa analognim ulazom imaju bru hardversku putanju ka RAM-u raunara, to znai da se podaci mogu direktno smestiti u memoriju raunara. Kada ne bi koristili bafer morali bi da obradimo (prikazali na graf, memorisali na disk, analizirali itd.) po jednu taku podatka u trenutku, jer ne bi imali prostor za smetanje nekoliko taaka podataka. Koristimo baferovani I/O kada Moramo da obradimo ili generiemo mnogo odmeraka brzinom koja je vea od neophodne praktine za prikazivanje na displeju, memorisanje na hard disku ili analiziranje u realnom vremenu.

198

Moramo da obradimo ili generiemo AC podatke (>10 odmeraka/sekundi) kontinualno i da budemo sposobni da vrimo analizu ili prikazivanje nekih podataka. Period odmeravanja mora biti precizan i uniforman. Koristimo nebaferovani I/O kada Grupa podataka je mala i kratka (na primer, obrada jedne take podataka iz svakog od dva kanala svake sekunde). Moramo da smanjimo zauzee memorije. Trigerovanje (okidanje) Trigerovanje se odnosi na bilo koji metod za inicijalizovanje, zavravanje ili sinhronizovanje DAQ dogaaja. Triger je obino digitalni ili analogni signal ije stanje se analizira da bi se odredio smer delovanja. U fizikim instrumentima kao to je osciloskop, na primer, moemo jednostavno koristiti triger da bi rekli osciloskopu da eka dogaaj koji smo specificirali kao to je napon koji premauje odreeni nivo ili digitalni triger ulaz koji menja stanje, pre iscrtavanja putanje signala. Softversko trigerovanje je najlaki i najintuitivniji nain da to uradimo. Kontroliemo triger direktno softverski, kao to je na primer logika kontrola na prednjem panelu za start/stop akvizicije podataka. Hardversko trigerovanje koristi elektroniku u DAQ ureaju da brine o trigerima, dodajui vie preciznosti. Hardversko trigerovanje moe biti dalje podeljeno na eksterno i interno trigerovanje. Primer internog trigera je programiranje DAQ ureaja da da na izlazu digitalni impuls kada analogni kanal premai odreeni naponski nivo. Svi National Instruments ureaji imaju pin za spoljanji triger, koji je digitalni ulaz koji se koristi za trigerovanje. Mnogi instrumenti obezbeuju digitalni izlaz koji se koristi specijalno za trigerovanje nekih drugih ureaja ili instrumenata: u ovom sluaju, DAQ ureaja. Koristiti softversko trigerovanje kada Korisnik mora da ima eksplicitnu kontrolu nad svim DAQ operacijama i Tajming dogaaja (kao to je kada operacija analognog ulaza poinje) ne mora da bude veoma precizan. Koristiti hardversko trigerovanje kada Tajming DAQ dogaaja mora biti veoma precizan, elimo da redukujemo softver (na primer, while petlja koja nadgleda pojavljivanje nekog dogaaja moe biti eliminisana), ili DAQ dogaaji moraju biti sinhronizovani sa spoljanjim ureajem. Aktivnost 11-2: Baferovani analogni ulaz Prethodno, mi smo koristili while petlju za kontinualnu obradu vie taaka. Sada emo videti kako moemo izbei korienje while petlje programiranjem hardvera da obradi set taaka pri odreenoj brzini odmeravanja. 1. Poveimo etiri DC ili naponskih izvora male frekvencije na kanale 0-3. Ako nemamo ovoliko izvora moemo povezati jedan za sve kanale ili formirati otpornu mreu da promenimo amplitudu napona na svakom kanalu. Ako koristimo simulirani NI-DAQmx ureaj imaemo sinusni signal od 10Hz na analognim ulazima. 2. Otvorimo novi VI i postavimo DAQ asistent u blok dijagramu. 3. U konfiguracionom dijalogu DAQ asistenta izaberemo Analog Input>>Voltage tip merenja (vidi sliku 11.12). 4. Selektujmo fizike kanale ai0 do ai3 i zatim pritisnimo dugme Finish (vidi sliku 11.13).

199

Slika 11.12 Konfigurisanje zadatka za tip naponskog analognog ulaza

Slika 11.13 Selektovanje vie fizikih kanala za na merni zadatak 5. U Task Timing tabu selektujemo akvizicioni mod sa N odmeraka. Zadatak e tako biti konfigurisan da daje vie izmerenih vrednosti za svaki kanal. U istom tabu, selektujemo Samples To Read and Rate (Hz). Ovo odreuje koliko taaka podataka se obrauje i brzina kojom se obrauju, svaki put kada pozovemo DAQ asistent (vidi sliku 11.14).

Slika 11.14 Konfigurisanje tajming moda akvizicije zadatka i podeavanje takta 6. Pritisnimo OK dugme da bi zatvorili konfiguracioni dijalog. LabVIEW e izgraditi VI. 7. Izgraditi prednji panel i blok dijagram kao na slici 11.15 i 11.16.

Slika 11.15 Prednji panel 8. Memoriimo VI pod imenom Buffered Analog In.vi. 9. Pokrenimo VI jednom i posmatrajmo graf.

200

Slika 11.16 Blok dijagram 10. DAQ asistent je ekspresni VI. Moemo ga konvertovati u tradicionalni LabVIEW kod. Desnim klikom na DAQ asistent u blok dijagramu selektujmo Generate NI-DAQmx Code iz skaueg menija. 11. VIdeemo LabVIEW kod generisan u blok dijagramu. Konverzija koda e generisati novi graf pod imenom data, tako da trebamo izbrisati Voltage Graph koji smo kreirali ranije u prednjem panelu. Sa <ctrl>-B briemo nepovezane ice. Blok dijagram e izgledati kao na slici 11.17.

Slika 11.17 Baferovani analogni konvertovani kod za DAQ asistent 12. DAQ asistent je zamenjen sa nekim VI-ima iz palete DAQmx. Digitalni I/O termini i definicije Digitalna linija je ekvivalent analognom kanalu: putanja na kojoj je jedan digitalni signal. Digitalne linije su obino ili ulazne linije ili izlazne linije, ali ponekad mogu biti bidirekcionalne. Kod veine DAQ ureaja, digitalne linije moraju biti konfigurisane kao ulaz ili izlaz. Port je kolekcija digitalnih linija koje su konfigurisane u istom smeru i mogu se koristiti u isto vreme. Broj digitalnih linija u svakom portu zavisi od DAQ ureaja, ali se veina portova sastoji od etiri ili osam linija. Na primer, multifunkcionalni ureaj moe imati osam digitalnih linija, koje se konfiguriu kao jedan osmolinijski port, dva etvorolinijska porta ili ak osam jednolinijska porta. Portovi se specificiraju kao digitalni kanali, upravo kao analogni kanali. Slika 11.18 prikazuje konceptualne veze izmeu digitalnih portova i digitalnih linija u tipinom DAQ ureaju.

Slika 11.18 Digitalni portovi i linije u tipinom DAQ ureaju 201

irina porta je broj linija u portu. Stanje se odnosi na jedno od dva mogua sluajeva za digitalnu liniju: logiko TRUE (isto kao logika 1 ili on) ili logiko FALSE (isto kao logika 0 ili off). ablon je sekvenca digitalnih stanja, esto izraen kao binarni broj, koji opisuje stanje svake linije u portu. Na primer, etvorolinijski port moe biti podeen sa ablonom 1101, to znai da su prva, trea i etvrta linija TRUE, a druga linija FALSE. Ovaj ablon se moe konvertovati iz binarnog ekvivalenta u decimalni broj 13. National Instruments DAQ ureaji koriste TTL pozitivnu logiku, to znai da je logika nula negde u opsegu od 0 do 0.8 V; a logika jedinica je izmeu 2.2 V i 5.5 V. Aktivnost 11-3: Oitavanje digitalnih ulaza Iskoristiemo DAQ asistent da oitamo digitalne linije naeg DAQ ureaja. 1. Poveimo etiri digitalna signala (0 ili 5 volti DC) na port 0, linije 0-3. Ako koristimo simulirani NI-DAQmx ureaj imaemo simulirani digitalni signal na digitalnom ulazu simuliranog ureaja. 2. Otvorimo novi VI i smestimo DAQ asistent u blok dijagramu. 3. U konfiguracionom dijalogu izaberemo Digital I/O>>Line Input tip merenja (vidi sliku 11.19).

Slika 11.19 Konfigurisanje zadatka tako da ima digitalni ulaz 4. Selektujmo DAQ ureaj i kanale port0/line0 do port0/line3 i pritisnimo dugme Finish (vidi sliku 11.20).

Slika 11.20 Selektovanje fizikog kanala za merni zadatak 5. U Task Timing tabu selektujemo akvizicioni mod sa 1 odmerkom (na zahtev). Zadatak e davati na izlazu jednu izmerenu vrednost svaki put kada pozovemo DAQ asistent (vidi sliku 11.21).

Slika 11.21 Konfigurisanje tajminga akvizicije u zadatku kao 1 odmerak (na zahtev) 6. Pritisnimo dugme OK da zatvorimo DAQ asistent. LabVIEW e sada izgraditi VI. 7. Izgradimo prednji panel i blok dijagram kao na slikama 11.22 i 11.23. Funkcija za konverziju logikog niza u broj

202

Funkcija za konverziju logikog niza u broj (nalazi se u paleti Programming>>Boolean) konvertuje logiki niz u 32-bitni neoznaeni broj interpretiranjem niza kao binarne reprezentacije celog broja.

Slika 11.22 Prednji panel

Slika 11.23 Blok dijagram 8. Memoriimo VI pod imenom Read Digital Inputs.vi. 9. Pokrenimo VI i posmatrajmo promenu stanja LED dioda. NI-DAQmx zadaci Zadaci su kljuni za obavljanje nekog merenja u NI-DAQmx. Zadatak je kolekcija jednog ili vie virtuelnih kanala sa osobinama tajminga, trigerovanja itd. Konceptualno, zadatak reprezentuje merenje (akviziciju ulaznog signala) ili generisanje (generisanje izlaznog signala) koje elimo obaviti. Svi kanali u zadatku moraju biti istog tipa, kao to su analogni ulaz ili brojaki izlaz. Sa nekim ureajima, moemo obuhvatiti kanale iz vie ureaja u zadatku. Da bi izvrili merenje ili generisanje pomou zadatka, pratiemo sledee korake: 1. Kreirati ili uitati zadatak. Moemo kreirati zadatke interaktivno pomou DAQ asistenta ili programski. 2. Konfigurisati kanal, tajming i trigerovanje ako je neophodno. 3. Opcionalno, izvriti razne prelaze stanja u zadatku kako bi pripremili zadatak da izvri specifinu operaciju. 4. Oitati ili upisati odmerke. 5. Oistiti zadatak. Zavisno od aplikacije, moemo ponoviti korake od 2 do 4. Na primer, posle oitavanja ili upisivanja odmeraka, moemo rekonfigurisati virtuelni kanal, tajming ili trigerovanje, a zatim oitati ili upisati dodatne odmerke po novoj konfiguraciji.

203

Kreiranje NI-DAQmx zadataka u MAX-u Da bi kreirali NI-DAQmx zadatak u MAX-u, desnim klikom na Data Neighborhood u konfiguracionom drvetu selektujemo Create New... iz skaueg menija (vidi sliku 11.24).

Slika 11.24 Pokretanje Create New... dijaloga iz vora Data Neighborhood u MAX-u U rezultujuem dijalogu, selektujemo NI-DAQmx Task i pritisnemo dugme Next (vidi sliku 11.25).

Slika 11.25 Selektovanje NI-DAQmx Task iz dijaloga Create New... Selektujmo tip merenja (vidi sliku 11.26).

Slika 11.25 Dijalog Create New... koji prikazuje mogue tipove merenja za zadatak Selektujemo jedan ili vie fizikih kanala iz liste ureaja i fizikih kanala koji podravaju tip merenja koji smo selektovali, a zatim pritisnemo dugme Next (vidi sliku 11.27).

Slika 11.27 Selektovanje jednog ili vie fizikih kanala za merni zadatak 204

Editujemo ime zadatka i pritisnemo dugme Finish (vidi sliku 11.28).

Slika 11.28 Imenovanje novog NI-DAQmx zadatka Novi zadatak e se pojaviti ispod My System>>Data Neighborhood>>NI-DAQmx Tasks u konfiguracionom drvetu MAX-a (vidi sliku 11.29). Kliknimo na zadatak da bi videli konfiguracioni dijalog zadatka. Moemo sada konfigurisati i testirati specifinu funkcionalnost zadatka.

Slika 11.29 Konfiguracioni dijalog novog zadatka u MAX-u Rad sa NI-DAQmx zadacima u LabVIEW Kako pristupiti zadacima koje smo kreirali pomou MAX-a u okviru LabVIEW-a? Jednostavno postavimo konstantu DAQmx Task Name (koja se nalazi u paleti Measurement I/O>>DAQmx Data Acquisition) u blok dijagram, kao to je prikazano na slici 11.30.

Slika 11.30 Smetanje konstante DAQmx Task Name u blok dijagram 205

Korienjem Operating alatke moemo selektovati NI-DAQmx zadatak koji smo kreirali u MAX-u, klikom na konstantu DAQmx Task Name, kao to je prikazano na slici 11.31.

Slika 11.31 Selektovanje NI-DAQmx zadatka, kreiranog u MAX-u, iz konstante DAQmx Task Name Ako elimo da kreiramo novi NI-DAQmx zadatak u MAX-u, selektujmo Browse... opciju u DAQmx Task Name i zatim izaberimo Create New... >>Max Task (vidi sliku 11.32).

Slika 11.32 Kreiranje novog zadatka iz dijaloga Browse... konstante DAQmx Task Name Generisanje koda iz MAX DAQmx zadataka Slika 11.33 prikazuje Generate Code >> opcije koje su dostupne iz konstante DAQmx Task Name. Tabela 11.1 sadri opise svake od ovih opcija generisanja kodova. Slika 11.34 prikazuje Configuration and Example kod generisan iz analognog izlaza NI-DAQmx zadatka.

Slika 11.33 Generate Code >> skaui podmeni konstante DAQmx Task Name koji prikazuje opcije za generisanje LabVIEW koda iz NI-DAQmx zadatka

Slika 11.34 Configuration and Example kod generisan iz analognog izlaza NI-DAQmx zadatka 206

Tabela 11.1 Opisi generisanja koda Generisani kod Opis Example


Generie sav neophodan kod za pokretanje zadatka ili kanala, kao to je VI potrebni za oitavanje ili upisivanje odmeraka, zatim VI za startovanje i stopiranje zadatka, petlji i grafova. Izaberimo ovu opciju ako je zadatak ili kanal specifian za na sistem, a da ne koristimo zadatak ili kanal u drugim sistemima. Generie kod povezan sa konfiguracijom. LabVIEW zamenjuje I/O konstantu i kontrolu sa subVI koji sadri VI i vorove koji se koriste za kreiranje i konfigurisanje kanala, konfiguraciju tajminga i konfiguraciju trigerovanja koji se koriste u zadatku ili kanalu. Selektujmo ovu opciju ako nam je potrebna portabilna konfiguracija koju moemo pomeriti na drugi sistem. Generie configuration and example kod za zadatak i kanal u jednom koraku. Zamenjuje konstantu DAQmx Task sa DAQ asistentom. Slino, moemo konvertovati DAQ asistent u konstantu DAQmx Task.

Configuration Configuration and Example Convert to Express VI

Korienje NI-DAQmx zadataka u LabVIEW Korienje NI-DAQmx zadataka u LabVIEW je veoma lako, sastoji se iz sledeih koraka: 1. Kreiranje zadatka (ili pozivanje MAX DAQmx zadatka). 2. Startovanje zadatka. 3. Oitavanje ili upisivanje, i ponavljanje ako je neophodno. 4. Stopiranje zadatka. 5. ienje zadatka. Skoro sve NI-DAQmx aplikacije e biti logiki organizovane poput one na slici 11.35.

Slika 11.35 Blok dijagram koji prikazuje logiku organizaciju NI-DAQmx aplikacija Dobro je znati da Neemo uvek imati startovanje zadatka. Operacije Read ili Write e obino automatski startovati zadatak. Ne moramo stopirati zadatak pre ienja. Operacija ienja e stopirati zadatak ako se on izvrava. Tako da e NI-DAQmx aplikacija vie izgledati kao na slici 11.36.

Slika 11.36 Blok dijagram koji prikazuje logiku organizaciju NI-DAQmx aplikacija koje ne pozivaju operacije startovanja i stopiranja zadatka 207

Mnogi od DAQmx VI su polimorfni i omoguuju nam izbor specifine instance koja se uklapa sa zadatkom koji elimo izvriti. Vrimo izbor korienjem polimorfnog VI selektora, prikazanog na slikama 11.37 do 11.40.

Slika 11.37 Zadatak za kreiranje analognog ulaza

Slika 11.38 itanje analognog ulaza

Slika 11.39 Zadatak za kreiranje digitalnog izlaza

Slika 11.40 Pisanje digitalnog izlaza Ako kreiramo zadatak sa analognim ulazom, onda moemo jedino pozvati operaciju analognog oitavanja kao to je prikazano na slikama 11.37 i 11.38. Ako kreiramo zadatak sa digitalnim izlazom, onda moramo konfigurisati funkciju upisivanja kao digitalno upisivanje, kao to je prikazano na slikama 11.39 i 11.40. Funkcija DAQmx Create Virtual Channel: kreiranje zadataka Prvi korak prilikom korienja NI-DAQmx u LabVIEW je kreiranje zadataka. Novi zadatak moemo kreirati programski, korienjem DAQmx funkcije za kreiranje virtuelnog kanala (paleta Measurement I/O>>DAQmx Data Acquisition). DAQmx za kreiranje virtuelnog kanala kreira virtuelni kanal ili grupu virtuelnih kanala i dodaje ih zadatku. Instance ovog polimorfnog VI-a odgovaraju I/O tipu kanala, kao to je analogni ulaz, digitalni izlaz ili brojaki izlaz; merenju ili generisanju koje se izvrava, kao to je merenje temperature, generisanje napona ili brojanje dogaaja; i u nekim sluajevima, senzoru koji se koristi, kao to je termopar ili RTD za merenje temperature.

208

Slika 11.41 DAQmx za kreiranje virtuelnog kanala Ako koristimo ovaj VI unutar petlje bez specificiranja ulaza task in, NI-DAQmx kreira novi zadatak u svakoj iteraciji petlje. Koristiti VI DAQmx Clear Task u petlji kada zavrimo sa zadatkom da bi izbegli bespotrebno zauzimanje memorije. DAQmx za kreiranje virtuelnog kanala ima mnogo stvari koje ne vidimo, kao na primer: Ako se task in ostavi nepovezan, novi zadatak e biti kreiran. Tako, kao dodatak kreiranju virtuelnog kanala, DAQmx za kreiranje virtuelnog kanala moe kreirati novi zadatak. Ovaj metod se esto koristi. Kao dodatak kreiranju novog virtuelnog kanala iz fizikih kanala, novi virtuelni kanal se dodaje zadatku. DAQmx Start Task: pokretanje zadatka Pre nego to moemo oitavati ili upisivati u zadatku, moramo ga startovati. U nekim sluajevima, jednostavno pozivanje DAQmx Read ili DAQmx Write e startovati zadatak automatski. Meutim, generalno je najbolje koristiti DAQmx Start Task. DAQmx Start Task (paleta Measurement I/O>>DAQmx Data Acquisition) podeava zadatak u izvrno stanje da bi se poelo sa merenjem ili generisanjem.

Slika 11.42 DAQmx Start Task Ako ne koristimo DAQmx Start Task i DAQmx Stop Task kada koristimo DAQmx Read ili DAQmx Write vie puta, kao na primer u petlji, zadatak startuje i zavrava se svaki put. Neprestano startovanje i stopiranje zadatka smanjuje performanse aplikacije. Upisivanje i oitavanje: merenje i generisanje DAQmx Read i DAQmx Write su polimorfni VI i imaju preko 40 lanova svaki. Koristiti polimorfni VI selektor, kao to je prikazano na slici 11.43, za selektovanje specifinog tipa merenja ili generisanja; ali je kirtino izabrati korektan tip koji se uklapa sa tipom mernog zadatka koji smo konfigurisali.

Slika 11.43 Opcije polimorfnog VI selektora DAQmx Read, koje se koriste za konfigurisanje moda rada VI-a Izlazi i ulazi VI-a se menjaju zavisno od izabranog tipa merenja i generisanja. DAQmx Read (paleta Measurement I/O>>DAQmx Data Acquisition) oitava odmerke iz zadatka ili virtuelnih kanala koje specificiramo. Instance ovog polimorfnog VI-a specificiraju koji format odmeraka daje, da li oitava jedan ili vie odmeraka odjednom, i da li oitava jedan ili vie kanala.

Slika 11.44 DAQmx Read 209

DAQmx Write (paleta Measurement I/O>>DAQmx Data Acquisition) upisuje odmerke u zadatak ili virtuelne kanale koje specificiramo. Instance ovog polimorfnog VI-a specificiraju koji format odmeraka se upisuje, da li se upisuje jedan ili vie odmeraka i da li se upisuje u jedan ili vie kanala.

Slika 11.45 DAQmx Write DAQmx Stop Task Posle zavretka korienja mernog ili zadatka generisanja, eleemo da ga zaustavimo (korienjem DAQmx za stopiranje zadatka), da bi ga mogli kasnije startovati. DAQmx Stop Task (paleta Measurement I/O>>DAQmx Data Acquisition) stopira zadatak i vraa ga u stanje pre startovanja.

Slika 11.46 DAQmx Stop Task DAQmx Clear Task Kada zavrimo sa korienjem zadatka, koristimo DAQmx za ienje zadatka da bi oslobodili resurse koje je zadatak rezervisao. DAQmx Clear Task (paleta Measurement I/O>>DAQmx Data Acquisition) isti zadatak. Pre ienja, ovaj VI stopira zadatak, ako je neophodno, i oslobaa resurse koje je zadatak rezervisao. Posle toga ne moemo koristiti zadatak, jedino ako ga ponovo kreiramo. Slika 11.47 DAQmx Clear Task Aktivnost 11-4: Upisivanje digitalne linije Kreiraemo VI koji podeava stanje jedne digitalne linije korienjem DAQmx VI-a. 1. Izgraditi prednji panel kao na slici 11.48.

Slika 11.48 Prednji panel Uverimo se da je logika promenljiva line state konfigurisana, preko njenog skaueg menija, kao Mechanical Action>>Switch When Released. Kontrola digital line u prednjem panelu je DAQmx Physical Channel (paleta Modern>>I/O>> DAQmx Name Controls). Prepodeeno je da e DAQmx fizikog kanala kontrola jedino prikazivati analogne ulazne kanale. Desnim klikom na nju selektovati I/O Name Filtering da se otvori dijalog Filter Names (vidi sliku 11.49). Podesiti I/O Type u Digital Output i Port/Line Filtering to Lines Only.

210

Slika 11.49 Dijalog Filter Names za konfigurisanje DAQmx kontrole, indikatora i konstante fizikog kanala 2. Izgraditi blok dijagram prikazan na slici 11.50.

Slika 11.50 Blok dijagram 3. Konfigurisati DAQmx Create Virtual da bi kreirali zadatak sa digitalnim izlazom podeavanjem polimorfnog VI selektora u Digital Output. 4. Konfigurisati DAQmx Write da upisuje jednu vrednost u jednu digitalnu liniju podeavanjem polimorfnog VI selektora u Digital >>Single Channel >>Single Sample >> Boolean (1 line). 5. Memorisati VI pod imenom Write to Digital Line.vi. Konfigurisati digital line u prednjem panelu i pokrenuti VI. Menjajmo stanje i itajmo napon na liniji digitalnog izlaza. Pratimo promene izmeu 0 VDC i +5 VDC. Aktivnost 11-5: Upisivanje kontinualnog analognog talasnog oblika Kreiraemo VI koji upisuje kontinualni analogni talasni oblik u analogni izlaz. Upisivaemo jednu taku u trenutku, iterativno, u while petlji. 1. Izgraditi prednji panel kao na slici 11.51.

Slika 11.51 Prednji panel 211

Kontrola analog output channel u prednjem panelu je DAQmx Physical Channel (paleta Modern>>I/O>> DAQmx Name Controls). Prepodeeno je da e DAQmx fizikog kanala kontrola jedino prikazivati analogne ulazne kanale. Desnim klikom na nju selektovati I/O Name Filtering da se otvori dijalog Filter Names. Podesiti I/O Type u Analog Output. Ovo e uzrokovati da lista fizikih kanala bude ograniena na analogne izlazne linije (vidi sliku 11.52).

Slika 11.52 Dijalog Filter Names 2. Izgraditi blok dijagram prikazan na slici 11.53.

Slika 11.53 Blok dijagram 3. Konfigurisati DAQmx Create Virtual da bi kreirali zadatak sa analognim naponskim izlazom podeavanjem polimorfnog VI selektora u Analog Output>>Voltage. Podesiti minimalne i maksimalne vrednosti na 0 i 5 V. 4. Konfigurisati DAQmx Write da upisuje jednu vrednost u jednu analognu izlaznu liniju podeavanjem polimorfnog VI selektora u Analog >>Single Channel >>Single Sample >> DBL. 5. Memorisati VI pod imenom Write Continuous Analog Waveform.vi. Konfigurisati analog output channel u prednjem panelu i pokrenuti VI. Menjajmo napon na analognoj izlaznoj liniji. Pratimo ciklus sinusnog signala izmeu 0 VDC i +5 VDC.

212

Napredna akvizicija podataka Ovde emo razmatrati napredne scenarije u akviziciji podataka, kao to je tajming i okidanje, kontinualna akvizicija podataka, smetanje podataka na disk i brojaki dogaaji. DAQmx tajming i DAQmx trigerovanje Moemo konfigurisati tajming i opcije trigerovanja pre startovanja upotrebe zadatka. U ovom sluaju, nae NI-DAQmx aplikacije e biti logiki organizovane poput one na slici 11.54.

Slika 11.54 Blok dijagram koji prikazuje logiku organizaciju tipine NI-DAQmx aplikacije I DAQmx tajming i DAQmx triger su polimorfni VI-i. Posle njihovog smetanja u blok dijagramu, koristimo polimorfni VI selektor za izbor specifine instance.

Slika 11.55 DAQmx tajming

Slika 11.56 DAQmx triger DAQmx tajming (paleta Measurement I/O>>DAQmx Data Acquisition) konfigurie broj odmeraka koji obraujemo ili generiemo i kreira bafer kada je potreban. Instance ovog polimorfnog VI-a odgovaraju tipu tajminga koji koristimo u zadatku. DAQmx tajming osobine ukljuuju sve tajming opcije koje obuhvata ovaj VI i dodatne tajming opcije. DAQmx triger (paleta Measurement I/O>>DAQmx Data Acquisition) konfigurie okidanje u zadatku. Instance ovog polimorfnog VI-a se odnose na triger i tip trigera koji treba konfigurisati. DAQmx triger osobine ukljuuju sve triger opcije koje obuhvata ovaj VI i dodatne triger opcije. Aktivnost 11-6: Trigerovana akvizicija podataka korienjem zadataka Nauiemo kako da koristimo DAQmx tajming i DAQmx triger VI za obradu baferovanog analognog ulaznog signala kada se okida digitalnom linijom. Svaki put kada se okidanje javi, oitaemo obraene podatke i prikazati ih na grafu. Koristiemo VI koji je kreiran u aktivnosti 11-4 za generisanje signala okidanja potrebnog za obradu podataka i VI kreiran u aktivnosti 11-5 za generisanje analognog signala koji e biti obraivan. 1. Izgraditi prednji panel kao na slici 11.57. DAQmx kontrola fizikog kanala 213

Slika 11.57 Prednji panel Kontrola physical channels na prednjem panelu je DAQmx fiziki kanal (nalazi se u paleti Modern>>I/O>>DAQmx). 2. Izgraditi blok dijagram prikazan na slici 11.58. Svi DAQmx VI koji se koriste u ovoj aktivnosti se nalaze u paleti Measurement I/O>>DAQmx Data Acquisition, osim DAQmx Control Task, koji se nalazi paleti Measurement I/O>>DAQmx Data Acquisition>>DAQmx Advanced Task Options. DAQmx Control Task

Slika 11.58 Blok dijagram 3. Konfigurisati DAQmx Create Virtual Channel tako da kreira zadatak sa analognim ulaznim naponom podeavanjem polimorfnog VI selektora na Analog Input>>Voltage. 4. Konfigurisati zadatak za konanu akviziciju prvo podeavanjem polimorfnog VI selektora DAQmx tajminga na Sample Clock (Analog/Counter/Digital) i zatim podeavanjem ulaza moda odmeravanja na Finite Samples (konane odmerke). Moemo kreirati ring konstantu moda odmeravanja desnim klikom na ulaz moda odmeravanja i selektovanjem Create>>Constant iz skaueg menija. 5. Konfigurisati zadatak za Digital Edge start trigerovanja podeavanjem VI selektora DAQmx trigera na Start>>Digital Edge. 6. Konfigurisati DAQmx Read da daje 1D DBL niz u jednom kanalu podeavanjem njegovog polimorfnog VI selektora na Analog>>Single Channel>>Multiple Samples>>1D DBL. DAQmx Read 214

7. Omoguiti obustavljanje akvizicije smetanjem DAQmx Control Task (koji se nalazi u paleti Measurement I/O>>DAQmx Data Acquisition>>DAQmx Advanced Task Options) u donjoj petlji i postavljanjem ulaza action na abort. Moemo kreirati action ring konstantu desnim klikom na ulaz i selektovanjem Create>>Constant iz skaueg menija. Nekada su greke korisne! Na primer, u ovoj aktivnosti, gornja petlja e nastaviti sa izvravanjem dok se ne javi greka (zapazimo da je klaster greke povezan sa uslovnim terminalom gornje petlje, koja je podeena na Stop if True). Mi emo namerno generisati greku koja se javlja u gornjoj petlji pozivanjem DAQmx Control Task (u donjoj petlji) sa obustavljanjem akcije. Kada je DAQmx Read obustavljen, generisae kod greke -88710, to u osnovi znai operacija oitavanja je zaustavljena, jer je zadatak obustavljen. Poto se greka -88710 oekuje (na nain izlaska iz petlje), ne elimo prikazivati ovu greku krajnjem korisniku. General Error Handler se koristi da poniti tu specificiranu greku (i samo tu greku). 8. Iskoristiti General Error Handler (koji se nalazi u paleti Programming>>Dialog and User Interface) za filtriranje koda greke -88710, podeavanjem tipa dijaloga u no dialog, izuzetu akciju u no action i izuzeti kod u -88710. 9. Iskoristiti Merge Errors (koji se nalazi u paleti Programming>>Dialog and User Interface) za kombinovanje klastera greaka gornje i donje petlje. Ovo e osigurati registrovanje greke ako se javi u bilo kojoj petlji. 10. Memorisati VI pod imenom Triggered Buffered Analog.vi. 11. Pre nego to pokrenemo VI moramo povezati signale. Koristiti listu za povezivanje signala u tabeli 11.2. Tabela 11.2 Povezivanje signala Opis Ulaz Izlaz Povezati analogni izlazni kanal 0 sa dev1/ai0 dev1/ao0 analogni ulaznim kanalom 0. Povezati dev1/ai4 dev1/gnd referentni kanal sa uzemljenjem. Povezati port 0 linije 0 digitalni izlaz sa dev1/pfi0 dev1/port0/line0 programabilnim funkcijskim ulazom (PFI) linije okidanja 0. 12. Otvoriti Write to Digital Line.vi koji smo kreirali u aktivnosti 11-4. Koristiemo ovaj VI za generisanje signala koji okida analogni zadatak oitavanja. 13. Otvoriti Write Continuous Waveform.vi koji smo kreirali u aktivnosti 11-5. Koristiemo ovaj VI za generisanje analognog signala koji emo obraivati. 14. Konfigurisati parametre akvizicije u prednjem panelu (izvor, tajming i triger) i pokrenuti VI. Prebaciti logiku promenljivu digital output u Write to Digital Line.vi u TRUE. Viekanalna akvizicija Ovo je dobar trenutak da se istakne razlika izmeu brzine skeniranja i brzine odmeravanja: Brzina odmeravanja se odnosi na to koliko esto merenje treba biti uraeno za pojedinani kanal podataka. Brzina skeniranja se odnosi na to koliko esto akviziciona kartica odmerava sve kanale. U DAQ karticama, obino govorimo o podeavanju brzine skeniranja. Veinu vremena brzina skeniranja = brzini odmeravanja. Meutim, to nije uvek tako, a postoji jedno vano ogranienje viekanalnog I/O.

215

Ako podesimo visoku brzinu skeniranja za vie kanala i posmatramo podatke iz svakog kanala u vremenu (ne preko vrednosti niza indeksa), primetiemo neprekidno fazno kanjenje izmeu kanala. Zato? Veina DAQ ureaja mogu obavljati jednu AD konverziju u trenutku. Podaci na ulaznim kanalima se digitizuju sekvencijalno jedan kanal u trenutku. Kanjenje, nazvano meukanalno kanjenje (naslikano na slici 11.59), nastaje izmeu odmeraka kanala.

Slika 11.59 Meukanalno kanjenje Prepodeeno je da meukanalno kanjenje bude to je mogue manje, ali je veoma zavisno od DAQ ureaja. Nekoliko DAQ ureaja, kao to su ureaji S serije National Instruments, podrava istovremeno odmeravanje kanala. Ostali ureaji podravaju ili intervalno skeniranje ili kruno skeniranje (naslikano na slici 11.60). Ureaji koji podravaju intervalno skeniranje imaju mnogo manje meukanalno kanjenje od onih koji koriste kruno skeniranje.

Slika 11.60 Intervalno skeniranje (levo) i kruno skeniranje (desno) Kod DC i signala niske frekvencije, fazno kanjenje prilikom skeniranja nije problem. Meukanalno kanjenje moe biti utoliko manje od perioda skeniranja kada DAQ ureaj vri virtuelno istovremeno odmeravanje svakog kanala: na primer, meukanalno kanjenje moe biti u opsegu mikrosekundi, a brzina odmeravanja moe biti 1 skeniranje po sekundi. Meutim, pri viim frekvencijama, kanjenje moe biti dosta primetno i moe predstavljati merni problem ako zavisimo od sinhronizacije signala. Kontinualna akvizicija podataka Kontinualna akvizicija podataka, ili akvizicija podataka u realnom vremenu, daje podatke akvizicije koja je u progresu bez prekidanja akvizicije. Ovaj pristup obino ukljuuje emu cirkularnog bafera, kao to je prikazano na slici 11.61. Specificiramo veliinu velikog cirkularnog bafera. DAQ ureaj sakuplja podatke i smeta ih u ovaj bafer. Kada je bafer pun, DAQ ureaj poinje da upisuje podatke na poetku bafera (upisivanjem preko prethodno 216

smetenih podataka, bez obzira da li su ili nisu oitani od strane LabVIEW-a). Ovaj proces se nastavlja sve dok sistem ne obradi specificirani broj odmeraka, LabVIEW oisti operaciju ili dok se ne javi greka. Kontinualna akvizicija podataka je korisna za aplikacije kao to je smetanje podataka na disk i prikazivanje podataka u realnom vremenu.

Slika 11.61 Cirkularni bafer Aktivnost 11-7: Kontinualna akvizicija Kreirati VI koji vri kontinualnu akviziciju konfigurisanjem NI-DAQmx za obradu i smetanje podataka u cirkularni bafer. Oitavaemo podatke sa izlaza cirkularnog bafera kada postanu dostupni i prikazati ih na chart-u. Potvrdiemo da oitavamo podatke dovoljno brzo (a da bafer nije prenatrpan, to uzrokuje gubitak podataka) proverom da li je iznos dostupnih podataka manji od veliine cirkularnog bafera. 1. Izgraditi prednji panel kao na slici 11.62.

Slika 11.62 Prednji panel Uverimo se da koristimo chart umesto graf jer elimo da prikaemo sve podatke koje smo oitali, ne samo podatke koje smo oitali svaki put kada smo proitali podatke iz cirkularnog bafera. Kontrola physical channels to read na prednjem panelu je DAQmx fiziki kanal (koji se nalazi u paleti Modern>>I/O>>DAQmx Name Controls). 2. Izgraditi blok dijagram kao na slici 11.63. Svi DAQmx VI koji se koriste u ovoj aktivnosti se mogu nai u paleti Measurement I/O>>DAQmx Data Acquisition.

217

Slika 11.63 Blok dijagram 3. Konfigurisati DAQmx Create Virtual da kreira zadatak sa analognim naponskim ulazom podeavanjem polimorfnog VI selektora na Analog Input>>Voltage. 4. Konfigurisati DAQmx tajminga tako da podesi zadatak u kontinualni akvizicioni mod podeavanjem polimorfnog VI selektora u Sample Clock (Analog/Counter/Digital) i podeavanjem ulaza moda odmeravanja u Continuous Samples. 5. Konfigurisati DAQmx Read Property Node da oitava atribut Status>>Available Samples Per Channel. Ova osobina nam govori broj odmeraka koji je u cirkularnom baferu. Doveemo ovu vrednost u DAQmx Read, u cilju oitavanja svih dostupnih podataka u baferu. DAQmx Read Property Node DAQmx Read Property Node (paleta Measurement I/O>>DAQmx Data Acquisition) je vor sa preselektovanom DAQmx Read klasom (vidi sliku 11.64). Desnim klikom na vor i izborom Select Filter iz menija da bi ostvarili da vor prikazuje samo osobine podrane pojedinanim ureajem instaliranim u sistemu ili podranim od strane svih ureaja instaliranih u sistemu.

Slika 11.64 DAQmx Read Property vor 6. Konfigurisati DAQmx Read da oita podatke kao 2D niz (kanali su u redovima, a odmerci su u kolonama) podeavanjem polimorfnog VI selektora u Analog>>Multiple Channels>>Multiple Samples>>2D DBL. 7. Memoriimo VI pod imenom Continuous Acquisition.vi. Sada konfiguriimo parametre akvizicije u prednjem panelu i pokrenimo VI. Zapazimo da brzina petlje mora biti dovoljno brza da se bafer ne prepuni. Podesimo Buffer Read Loop Rate tako da je vreme svakog ciklusa petlje manje od vremena koje je potrebno da napuni bafer. Moemo izraunati vreme koje mu je potrebno da napuni bafer korienjem sledee jednaine: Vreme za punjenje bafera = Veliina bafera/Brzina odmeravanja VI kontinualne akvizicije koji smo upravo kreirali je dizajniran da se izvrava kontinualno, ili zauvek. Da bi ostvarili ovo, a da ne ostanemo bez memorije, bafer fiksne duine se dodeljuje, puni odmercima podataka od poetka do kraja, a zatim se podaci na poetku prekrivaju drugim podacima kada se bafer ponovo puni. Kao primer, pretpostavimo da se VI izvrava sa veliinom bafera 10, a brzina odmeravanja je jednom u sekundi. Slede slike kako se bafer puni podacima: Pre pokretanja VI-a, bafer je prazan:

218

Posle jedne sekunde, jedan odmerak je ubaen: Posle devet sekundi, bafer je skoro pun: Posle dvanaest sekundi, bafer se napunio i novi podaci poinju da prekrivaju stare: Zato nam je potreban indikator Samples in Buffer (Scan Backlog)? Dosta je koristan da bi smo znali da li LabVIEW odrava oitavanje podataka. Ako se bafer puni bre nego to mi moemo uzeti podatke poeemo da gubimo neke od podataka, jer e doi do preklapanja. Upisivanje podataka u fajl Ve smo imali vebanja sa slanjem podataka u spreadsheet fajl. U ovim vebanjima, LabVIEW konvertuje podatke u spreadsheet fajl i memorie ih u ASCII fajl posle zavretka akvizicije. Drugaiji i nekad efikasniji pristup je upisivanje malih delova podataka na hard disk dok je akvizicija u progresu. Ovaj tip I/O fajla se zove streaming (tok). Prednost ovog pristupa je da je bri, tako da moemo izvravati aplikacije kontinualne akvizicije i imati memorisane kopije svih obraenih podataka. Drugi razlog za stream podataka u fajl je da ako vrimo akviziciju podataka kontinualno pri vrlo velikim brzinama u dugom vremenskom periodu, ostaemo bez memorije. Osim ako brzina podataka nije veoma mala (na primer, manja od 10 odmeraka/sec), moraemo da vrimo stream u binarni, ne ASCII fajl. Binarni fajlovi su manje veliine i omoguuju upisivanje podataka kompaktnije nego to je mogue tekstualnim fajlovima. Kod kontinualnih aplikacija, brzina kojom LabVIEW moe obraditi podatke iz akvizicionog bafera i zatim ih smestiti na disk je najvanija. Moramo biti sposobni da oitamo i smestimo podatke dovoljno brzo tako da DAQ ureaj ne pokuava da prekrije neoitane podatke u cirkularnom baferu. Da bi poveali efikasnost oitavanja podataka iz bafera, trebamo izbegavati izvravanje drugih funkcija, kao to su funkcije analize, dok je akvizicija u toku. Takoe, moemo konfigurisati DAQmx Read da daje na izlazu red binarnih podataka a ne naponske podatke (selektovanjem jedan od modova podataka u redu u opciji More>>Raw>> iz polimorfnog VI selektora). Ovo poveava efikasnost dobavljanja kao i streaming podataka. Kada konfiguriemo DAQmx Read da proizvodi samo binarne podatke, moe vratiti podatke baferu bre nego da smo koristili talasni oblik ili naponski mod. Jedan nedostatak oitavanja i streaming binarnih podataka je da korisnici drugih aplikacija ne mogu lako oitati fajl. Aktivnost 11-8: Streaming podataka u fajl U ovoj aktivnosti modifikovaemo Continuous Acquisition.vi, koji smo kreirali u aktivnosti 11-7, tako da vri streaming podataka u fajl. 1. Otvoriti Continuous Acquisition.vi koji smo kreirali i memoriimo kopiju pod imenom Continuous Acquisition to File.vi. 2. Modifikujmo VI tako da prednji panel i blok dijagram izgledaju kao na slici 11.65 i 11.66. U ovoj aktivnosti koristiemo funkciju Write to Binary File (iz palete Programming>>File I/O). 3. Iskoristimo funkciju Max & Min da izaberemo maksimum ili minimum od dostupnih taaka, kao broj podataka koji e biti oitan sa DAQmx Read. Ovo e omoguiti softveru da se pokree efikasno. Max & Min

219

Slika 11.65 Prednji panel

Slika 11.66 Blok dijagram 4. Testirajte prekoraenje bafera poreenjem da li je veliina bafera manja ili jednaka od dostupnih taaka podataka u baferu. Ako se javi prekoraenje izai iz while petlje. 5. Pokrenuti VI nekoliko sekundi. Sada smo izvrili streaming podataka u fajl. Da bi videli upisane podatke na disku, koristimo primer VI Read Streamed Data File.vi, prikazan na slikama 11.67 i 11.68.

Slika 11.67 Prednji panel VI-a za oitavanje podataka

Slika 11.68 Blok dijagram VI-a za oitavanje podataka 220

Pokrenimo ovaj VI, izaberimo ime fajla koje smo koristili u prethodnom VI-u. Frekvencija brojanja i dogaaji Kao to znamo, digitalni signali mogu biti off ili on, 0 ili 1, true ili false. Digitalni signali mogu imati mnotvo vremenskih i karakteristika dogaaja. Na primer, koliko puta digitalna linija menja stanje, kojom brzinom se menja stanje, koliko je vremena bila u off stanje, a koliko u on stanje. Postoji specijalan tip hardvera za kondicioniranje signala koji obrauje i generie digitalne signale i signale dogaaja: zove se broja (ili broja/tajmer). Broja je ASIC (Application Specific Integrated Circuit) kompjuterski ip koji je dizajniran za merenje i generisanje digitalnog tajminga i dogaaja. Skoro svaka multifunkcionalna DAQ kartica ima jedan ili dva brojaa. Merenje digitalnih dogaaja i tajming sa brojaima Tabela 11.3 prikazuje uobiajena merenja sa brojaem, a neka su ilustrovana na slici 11.69. Tabela 11.3 Tipovi brojakih merenja Merenje Opis Brojanje ivica Broj impulsa (rastue ili padajue ivice) koji se javljaju. Perioda Vreme izmeu impulsa. Frekvencija Brzina kojom se impulsi javljaju (1/perioda). irina impulsa Vreme za koje je impuls aktivan. Poluperioda Vreme za koje je impuls ili aktivan ili neaktivan. Odvajanje dve ivice Vremensko kanjenje izmeu ivice impulsa dva signala.

Slika 11.69 Tipovi brojakih merenja Aktivnost 11-9: Brojanje digitalnih impulsa Videemo kako je jednostavno brojanje impulsa sa NI-DAQmx u LabVIEW. Za ovu aktivnost pokrenuemo simulirani NI-DAQmx ureaj, a fiziki NI-DAQmx ureaj koji ima najmanje jedan brojaki kanal nam je potreban za brojanje impulsa. 1. Otvorimo novi VI. 2. Izgradimo prednji panel i blok dijagram kao to je prikazano na slikama 11.70 i 11.71. Svi DAQmx VI koje koristimo u ovom primeru se mogu nai u paleti Measurement >> DAQmx) 3. Posle smetanja DAQmx Create Virtual Channel u blok dijagramu, selektujmo Counter Input >> Count Edges instancu iz polimorfnog VI selektora, kao to je prikazano na slici 11.72. 4. Kreirati kontrole counter, edge, count direction i initial count u prednjem panelu desnim klikom na odogovarajui ulazni terminal DAQmx Create Virtual Channel i selektovanjem Create >> Control iz skaueg menija.

221

Slika 11.70 Prednji panel

Slika 11.71 Blok dijagram

Slika 11.72 Selektovanje Counter Input>>Count Edges za DAQmx Create Virtual Channel 5. Posle smetanja DAQmx Read u blok dijagram, selektujmo instancu Counter>>Single Sample>>U32 iz polimorfnog VI selektora, kao to je prikazano na slici 11.73.

Slika 11.73 Selektovanje Counter>>Single Sample>>U32 za DAQmx Read 6. Memoriimo VI pod imenom Count Input Pulses.vi. 7. Pokrenimo VI. Da bi generisali impulse jedan kraj ice poveimo za terminal uzemljenja (GND) DAQ ureaja, a drugi kraj za terminal PFI0. Generisanje digitalnih impulsa brojaima Brojai takoe omoguuju generisanje izlaznih signala sa vremenskim karakteristikama koje definiemo, a koje broja moe meriti. Tabela 11.4 sadri osnovne parametre podeavanja za generisanje signala korienjem brojaa, od kojih su neki prikazani na slici 11.74.

222

Tabela 11.4 Opisi parametara za podeavanje impulsa Podeavanje impulsa Opis High vreme Vreme kada impuls ima vei nivo, u sekundama. Low vreme Vreme kada impuls ima manji nivo, u sekundama. Inicijalno kanjenje Vreme pre poetka generisanja impulsa. Stanje praznog hoda Polarnost generisanog signala: High. Terminal je na viem stanju prilikom odmora. Impulsi pomeraju terminal u nie stanje. Low. Terminal je na niem stanju prilikom odmora. Impulsi pomeraju terminal u vie stanje.

Slika 11.74 Ilustracija podeavanja parametara impulsa Moemo takoe specificirati koliko impulsa elimo generisati ili da li elimo generisati impulse zauvek (ili dok ne zaustavimo NI-DAQmx zadatak za generisanje). Ovo se zove mod generisanja, a mogue opcije su opisane u tabeli 11.5. Tabela 11.5 Modovi generisanja signala brojaem Mod generisanja Opis 1 impuls Jedan impuls. N impulsa Povorka od N uzastopnih impulsa. Specificiramo broj generisanih impulsa. Kontinualni impulsi Povorka kontinualnih impulsa. Aktivnost 11-10: Generisanje digitalnih impulsa Eksperimentii i pokuaj da kreira VI koji generie 1 impuls, drugi koji generie N impulsa i sledei koji generie kontinualne digitalne impulse. (Koristiti tip zadatka Digital Output>>Counter Output.) Povezati brojaki izlaz koji koristimo za ovu aktivnost sa brojakim ulazom koji imamo u prethodnoj aktivnosti, da bi brojali impulse koje generiemo.

223

You might also like