Labview-tietokoneharjoitus

Labview-tietokoneharjoitus
Tämän harjoituksen tavoitteena on:


Opettaa Labview:n perustyökaluja mittausten tekemiseen.
Havainnollistaa, miten Labview:ssa kerätty tieto voidaan tallentaa myöhempää analyysiä varten.
Harjoituksessa on kursiivilla merkattuja kysymyksiä, joiden vastaukset tulee täyttää erilliseen
vastauslomakkeeseen.
1. Kevyt laskeutuminen Labview:n maailmaan.
Aloitetaan harjoitus leppoisasti pienellä videolla. Siinä esitellään Daq Assistant, jonka avulla voidaan kerätä
tietoa mittalaitteen kautta tietoa suoraan Labview:n. Sinun tulisi tässä vaiheessa olla ladannut Daq mx,
josta Daq Assistantin löytää. Daq Assistantia tullaa käyttämään myöhemmissä harjoituksissa. Videon löydät
tästä osoitteesta: https://www.youtube.com/watch?v=s12ZGGlfyJc.
Avaa seuraavaksi zip-kansiossa tullut fotoharjoitus.vi-tiedosto. Daq Assistantin sijasta tässä harjoituksessa
”saamme analogista signaalia” Simulate Signal -blokista. Signaali on fotoresistorilta saatavaa dataa. Blokki
jäljittelee Daq Assistantia siten, että näytteen ottotaajuus on 2 kHz ja näytteitä tulee jatkuvasti (continuos
samples) 200 näytteen ryppäissä.
Aloitetaan tutkimalla, miltä data näyttää, eli lisätään Waveform Chart. Löydät sen joko Controls Palletesta
tai klikkaamalla hiiren oikealla Front Panelista. Säädä Chartin aika-akselia: klikkaa Chartia hiiren oikealla,
valitse Properties -> Scales -> Time (X-axis) -> Minimum = 0, Maximum = 0,1.
Kuva 1. Säädetään kuvaajan aika-akselia.
Klikkaa ylälaidasta Window ja show Block diagram. Yhdistä Simulate Signal -laatikosta saatava signaali
äskettäin luotuu Waveform Chartiin. Mene seuraavaksi Front Panel-lehdelle ja klikkaa ylälaidasta Run, niin
näet miltä signaali näyttää.
Nyt silmukka pyörii niin nopeasti kuin tietokoneen prosessori antaa myöden. Lisätään viivettä siten, että
silmukka pyörii ”oikeaan aikaan” signaalin suhteen. Eli jos signaalia kerätään 2 kHz:n taajuudella aina 200
näytettä kerralla, niin silmukan pitäisi pyöriä 0,1 sekunnin välein. Etsi Functions Palette:sta Wait Until Next
ms Multiple, lisää se silmukkaasi ja aseta siihen sopiva vakioluku ohjaukseksi (Numeric constant, 0,1
sekuntia millisekunteina inputiksi). Miltä signaali näyttää nyt, jos ajat ohjelmaa?
Kuva 2. Viivefunktion etsiminen.
Kysymys 1. Kuinka suuri viive täytyy asettaa, jotta silmukka pyörii oikeassa ajassa?
2. Datan tallentaminen Arrayhyn
Seuraavaksi pilkotaan signaalista jännite ja aika ja laitetaan ne tallentumaan arrayhyn. Etsi Array-palikka ja
lisää Front Panel:iin. Seuraavaksi etsi Numerical Indicator ja lisää se Array:n sisään. Lisää Array:n
dimensioita vetämällä indikaattori-laatikkoa alaspäin. Tämän jälkeen kasvata Arrayta esim. 10x10
kokoiseksi vetämällä oikeasta alakulmasta.
Kuva 3. Numerical Indicator-palikan lisääminen Array-palikan sisään.
Avaa Block Diagram. Lisää Get Waveform Components -funktio silmukaan ja yhdistä signaali siihen.
Havaitaan, että nyt täytyy tehdä tyyppimuunnos. Lisää Convert from Dynamic Data -blokki signaalien väliin
ja aseta Resulting Data Type:ksi Single Waveform. Tämän jälkeen laajenna Get Waveform Components -
palkkia vetämällä alalaidasta, niin että näkyviin tulee kaksi attributes palkkia. Klikkaa niitä, ja vaihda
ulostuloiksi t0 ja dt.
Lisätään vielä For-silmukka, jonka avulla saadaan jännitteen mittapisteitä vastaava määrä ajan
mittapisteiteitä. For-silmukan jälkeen yhdistetään aika- ja jännitetieto Build Array-blokilla yhdeksi Arrayksi.
Block Diagramissa pitäisi olla ylimääräinen Array, jonka loit Front Panelissa. Huomaa vielä, että t0 täytyy
muuntaa aikaleima-tyypistä doubleksi (to double precision float). Lopputuloksen pitäisi olla kuvan 4
mukainen.
Kuva 4. Labview-malli datan tuomiseksi Arrayhyn.
Aja taas ohjelmaa.
Kysymys 2. Miltä Array näyttää?




Aika-arvot ovat ensimmäisellä rivillä ja jännitearvot toisella rivillä.
Aika-arvot ovat toisella rivillä ja jännitearvot ensimmäisellä rivillä.
Aika-arvot ovat ensimmäisellä sarakkeella ja jännitearvot toisella sarakkeella.
Aika-arvot ovat toisella sarakkeella ja jännitearvot ensimmäisellä sarakkeella.
Kysymys 3. Mikä vaikutus Y-muuttujan yhdistämisellä For-silmukkaan on?




Y:n avulla määritetään, kuinka monta kertaa silmukka suoritetaan.
Ei mitään.
Jännitearvoja tarvitaan aika-arvojen laskemisessa.
Y:n indeksi muuttuu For-silmukan mukana.
3. Datan tallentaminen tiedostoon
Lopuksi määritetään signaalin tallentaminen taulukkomuotoiseen tiedostoon (CSV-tiedosto). Lisää
silmukkaasi Write To Spreadsheet File.vi (Labview versiossa 2015 tätä ei ole, yhtä hyvin toimii Write
Delimited Spreadsheet VI) klikkaa sitä hiiren oikealla ja avaa Help. Määritetään kaikkien inputien arvot.
Data halutaan ulos pystyvektoreina, joten asetetaan transpose? -sisäänmenoksi constant ja True. Lisäksi
halutaan, että data tallennettaan aina samaan tiedostoon vanhan tiedon jatkeeksi, joten myös append to
file? -kohtaan voi lisätä saman operaattorin. Määritetään tallennettava tiedosto aluksi
Open/Create/Replace File -blokin avulla. Klikkaa blokin operation-kohdasta hiiren oikealla, valitse create ja
constant. Valitse create or replace. Näin voidaan ajon aluksi joko korvata vanha tiedosto tai määrittää uusi.
Vedetään tästä blokista refnum to path -palikan kautta silmukassa olevaan Write to Spreadsheet -palikan
file path:in sisääntuloksi.
Asetetaan sarake-erottimeksi (delimeter) puolipiste, ja tallennusformaatiksi float neljällä desimaalilla.
Lopuksi asetetaan ohjelma päättymään tietyn ajan kuluttua. Tässä tapauksessa halutaan 10 sekunnin näyte,
eli lopetetaan ohjelma, kun while-silmukan laskuri saa arvon 99 (ajetaan sata kierrosta). Lopullinen malli on
esitetty kuvassa 5.
Kuva 5. Lopullinen Labview-malli.
Aja vielä kertaalleen malli ja nimeä tallennettava tiedosto .csv-loppuliitteellä. Tarvitset tätä tiedostoa
Matlab-harjoituksessa.