19
UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET Praktikum iz merno - akviz i cionih sistema Doc. dr Milica Janković piperski @etf.rs Marija Novičić, dipl. inž. novicic @etf.rs http://automatika.etf.rs/ http://bmit.etf.rs/ Doc. dr Marko Barjaktarović [email protected] Petar Atanasijević, dipl. inž. petarat @etf.rs http://nobel.etf.bg.ac.rs/

Praktikum iz merno- akvizicionih sistema

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Praktikum iz merno- akvizicionih sistema

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/

Page 2: Praktikum iz merno- akvizicionih sistema

Event struktura

Page 3: Praktikum iz merno- akvizicionih sistema

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)

Page 4: Praktikum iz merno- akvizicionih sistema

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!

Page 5: Praktikum iz merno- akvizicionih sistema

Creating and Leveraging Data Structures

Page 6: Praktikum iz merno- akvizicionih sistema

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.

Page 7: Praktikum iz merno- akvizicionih sistema

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.

Page 8: Praktikum iz merno- akvizicionih sistema

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.

Page 9: Praktikum iz merno- akvizicionih sistema

Često korišćene funkcije za manipulaciju sa nizovima

Page 10: Praktikum iz merno- akvizicionih sistema

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!

Page 11: Praktikum iz merno- akvizicionih sistema

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)

Page 12: Praktikum iz merno- akvizicionih sistema

Uslovno auto-indeksiranje:Samo elementi kojizadovoljavaju uslov se šalju kroz tunel!

Kreiranje 2D niza korišćenjem dve ugnežđene Forpetlje.

Page 13: Praktikum iz merno- akvizicionih sistema

• 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.

Page 14: Praktikum iz merno- akvizicionih sistema

Chart-ovi i Graph-ovi:Upisivanje vrednosti

• Upisivanje u Graph nakon generisanja niza:

• Upisivanje u Chart vrednost po vrednost:

Page 15: Praktikum iz merno- akvizicionih sistema

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.

Page 16: Praktikum iz merno- akvizicionih sistema

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.

Page 17: Praktikum iz merno- akvizicionih sistema

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.

Page 18: Praktikum iz merno- akvizicionih sistema

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.

Page 19: Praktikum iz merno- akvizicionih sistema

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.