Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
UNIVERZITET U BEOGRADU
ELEKTROTEHNIČKI FAKULTET
Praktikum iz merno-
akvizicionih sistema
Doc. dr Milica Janković[email protected]
Marija Novičić, dipl. inž[email protected]
http://automatika.etf.rs/http://bmit.etf.rs/
Doc. dr Marko Barjaktarović[email protected]
Petar Atanasijević, dipl. inž[email protected]
http://nobel.etf.bg.ac.rs/
Event struktura
Razlika između prozivanja (polling) i događajem rukovođenog programiranja (Event Driven Programming) – štedi se prostor u Block Diagram-u – procesor odgovara na sve događaje,
bez gubitaka
U jednoj while petlji staviti samo jednu Event strukturu!
1
3
2
1. Konfigurisani događaji (Event)2. Izvori događaja (Event)3. Događaji (Event)
Notify tip događaja – akcija korisnika se već izvršila
Filter tip događaja – korisnik je izvršio akciju, i LabView odlučuje kako će reagovati na nju.
Ako korisnik pokuša da zatvori prozor – neće uspeti!
Creating and Leveraging Data Structures
Nizovi - Arrays
• Služe za grupisanje podataka istog tipa.
• Podaci u nizovima mogu biti Numeric, Boolean, Path, String, Waveform i Cluster.
• Pristupanje pojedinačnom elementu niza se vrši na osnovu indeksa.
• Indeksiranje elemenata počinje od nule.
Ubacivanje elementa u Array shell.
Indeks prvog prikazanog elementa (elementa koji se nalazi u gornjem levom uglu niza).
Element čija je vrednost 5 je element sa indeksom 1. Element sa indeksom 0 nije prikazan.
Dimenzije nizova
• Nizovi mogu biti 1D i 2D.
• 2D nizovi su analogni tabelama. Elementi niza se indeksiraju korišćenjem indeksa reda i kolone.
• Moguće je dodati i više dimenzija nizovima.
• 1D nizove u LabVIEW okruženju karakteriše deblja linija od linije koja propagira skalarne vrednosti.
• 2D nizovi u LabVIEW-u poseduju dupliranu liniju koja prikazuje propagaciju vrednosti na block diagram-u.
Indeksi reda i kolone prvog prikazanog elementa (elementa koji se nalazi u gornjem levom uglu niza.
Inicijalizacija nizova
• Nizove je neophodno inicijalizovati. Broj redova i kolona neinicijalizovanog niza je nula.
Inicijalizovan niz sa dva reda i tri kolone.
Neinicijalizovan niz.
Neinicijalizovani elementi su sive boje. Njihova vrednost nije nulaveć ne postoje kao elementi.
Često korišćene funkcije za manipulaciju sa nizovima
Polimorfizam
• Sposobnost VI-jeva i funkcija da se automatski prilagode kako bi prihvatili različite tipove ulaznih podataka.
• Funkcije u LabVIEW-u mogu biti polimorfne do različitih nivoa.
• Funkcije za izvršavanje aritmetičkih operacija su polimorfne!
Operacije nad nizovima i skalarima!
Auto-indeksiranje
• Pogodno ga je koristiti ukoliko je neophodno kreiranje nizova ili Graph-ova, ili ukoliko je neophodno izvršiti operaciju nad svakim pojedinačnim elementom niza.
Tunel sa auto-indeksiranjem (niz)
Tunel bez auto-indeksiranja (samo poslednja vrednost)
Uslovno auto-indeksiranje:Samo elementi kojizadovoljavaju uslov se šalju kroz tunel!
Kreiranje 2D niza korišćenjem dve ugnežđene Forpetlje.
• Ukoliko je ulazni tunel For petlje auto-indeksiran, nije potrebno povezivati vrednost na N terminal kojim se inače određuje broj iteracija For petlje.
• U tom slučaju će se For petlja izvršiti onoliko puta koliko ima elemenata u nizu. Iz ulaznog tunela je u svakoj iteraciji dostupan element niza čiji indeks odgovara trenutnoj vrednosti iteracionog terminala.
• U slučaju istovremenog povezivanja više nizova na For petlju preko ulaznih tunela sa auto-indeksiranjem i/ili vrednosti na N terminal For petlje, broj iteracija For petlje se određuje na osnovu najstrožijeg uslova. To znači da će se For petlja izvršiti najmanji mogući broj puta.
Chart-ovi i Graph-ovi:Upisivanje vrednosti
• Upisivanje u Graph nakon generisanja niza:
• Upisivanje u Chart vrednost po vrednost:
Klasteri - Clusters
• Koriste se kada je neophodnogrupisanje elemenata različitogtipa.
• Analogni su sa record ili struct iz tekstualnih programskih jezika.
• Fiksne su veličine.
• Uglavnom su obeleženi roze bojom na block diagram-u, osim u posebnim slučajevima kada je boja klastera braon.
Prikaz klastera na front panel-u.
Prikaz klastera na block diagram-u.
Redosled elemnata u klasteru
• Elementi klastera poseduju tačno određen redosled.
• Redosled je moguće menjati desnim klikom miša na klaster i izborom opcije Reorder Controls In Cluster.
• Moguće je i prilagoditi veličinu klastera na front panel-u veličini njegovih elemenata, desnim klikom na klaster kontrolu i izborom opcije AutoSizing.
Pristupanje ili izmene elemenata klastera• Funkcije Unbundle i Unbundle By Name:
• Unbundle koristimo ukoliko makar neki element klastera ne poseduje ime.
• Unbundle By Name koristimo ukoliko svi elementi poseduju imena. Možemo pristupiti vrednostima pojedinačnih elemenata na osnovu njihovog imena, a ne redosleda u klasteru.
• Funkcije Bundle i Bundle By Name:
• Bundle koristimo ukoliko makar neki element klastera ne poseduje ime.
• Bundle By Name koristimo ukoliko svi elementi poseduju imena. Možemo pristupiti vrednostima pojedinačnih elemenata na osnovu njihovog imena, a ne redosleda u klasteru.
• Kod ovih funkcija je neophodno povezati i ulazni klaster na odgovarajući ulaz.
Tipičan primer klastera u LabVIEW-u: Error Clusters
• Sastoje se iz tri elementa:
1. Status
2. Code
3. Source
Primer: Zaustavljanje izvršavanja Whilepetlje u slučaju greške.
Multi-plot Graph-ovi/Chart-ovi i XY Graph-ovi
• Bundle funkcija se često koristi kako bi se oformili Multi-plot Chart-ovi ili XY Graph. Ulaz XY Graph-a je klaster dva 1D niza, od kojih prvi predstavlja vrednosti X ose, dok drugi predstavlja vrednosti na Y osi.
• Funkcija Build Array se koristi kada je potrebno napraviti Multi-plot Waveform Graph.