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.
© Copyright 2024