HARJOITUSTYÖ: LabVIEW, Valokennoportti Tarvittavat laitteet: PC Labview NI USB-6008 tiedonkeruukortti (kuva 1) Vernier Photogate (HSVPG, kuva 2) Smart Pulley Attachment (HSSPA, kuva 2) RJ-11 kaapeli (toinen pää vapaa, kuva 2) Elektroniikkaruuvimeisseli (taltta) Kuva 1. USB-6008 tiedonkeruukortti ja liitäntäkaapeli Kuva 2. Valokennoportti, väkipyörä, RJ-11 kaapeli ja väkipyörän kiinnitystappi Anturin kytkentä ja alkuvalmistelut Liitä tiedonkeruukortti PC:n vapaaseen USB porttiin (NI-MAX tunnistaa laitteen automaattisesti) Käynnistä Labview Liitä RJ-11 kaapeli valokennoportin liittimeen
Harjoitustyö: LabVIEW, Valokennoportti 2 (8) Käytettäessä valmista (Harmaan värinen) RJ-11 kaapelia kytke johdot USB-6008 tiedonkeruukortin seuraavalla tavalla: Anturin toimintaperiaate: Vihreä (3), GND Punainen (4), Analog Input 0+ joku muu AI-kanava Musta (5), +5V Valokennon tulossignaali on ~0V, kun IR-säde ei pääse detektorille. Valokennon tulossignaali on ~4V, kun IR-säde pääsee detektorille. Ruuvaa väkipyörä kiinnitystapilla valokennoporttiin siten, että väkipyörä leikkaa IR-valon kulkureitin. Punainen ledi ilmaisee pääseekö IR-valo kulkemaan vapaasti. Anturi on toimintavalmis Tehtävä: a) Liitä valokennoanturi tiedonkeruukortin välityksellä PC:hen ja tee LabVIEW:llä ohjelma, joka laskee ledin vilkkumiskerrat ja väkipyörän pyörimät kokonaiset kierrokset. b) Muokkaa ohjelmaa siten että saat laskettua ledin vilkkumistaajuuden c) Keksi uusi mittaus ja tee sitä varten LabVIEW-ohjelma Vinkkejä tehtävän a) yhteen ratkaisumalliin: - Help valikosta hyödyllisiä apuvälineitä ovat Show context help, Find Examples ja Search the LabVIEW help - Show context help näyttää tummennettuna mitkä kytkennät ovat pakollisia virtuaali-instrumentissa. Tarvittaessa voidaan klikata lisätietoja 1. Vaihe: Mittausta varten luodaan virtuaalinen kanava Labview ympäristöön - Block diagram: Measurement I/O NI-DAQmx - Ketju menee seuraavasti: Luodaan kanava, Aloitetaan tehtävä, Luetaan arvo, Lopetetaan tehtävä, Tyhjennetään kanava, Käsitellään mahdolliset virheet. - Create channel virtuaali-instrumentti, valitse mitaustavaksi AI voltage, klikkaa oikealla hiiren napilla physical channels create control - Read virtuaali-instrumentti, valitse mittaustavaksi Analog DBL 1channel 1 sample, klikkaa oikealla hiiren napilla data create indicator - Kytke task ja error linjat - Voit testata mittauksen toimivuuden
Harjoitustyö: LabVIEW, Valokennoportti 3 (8) Kuva 3. Tehtävän a) 1. vaiheen jälkeinen tilanne. 2. Vaihe: Muokataan koodia, jotta saadaan luettua useampia arvoja - Block diagram: Programming Structures While loop - Kehystä While loop:lla Read virtuaali-instrumentti - Klikkaa oikealla hiiren napilla While loop:n keskeytys toimintoa oikealla ala nurkassa create control - Voit testata mittauksen toimivuuden. Mittaus lopetetaan juuri luodusta STOP napista 3. Vaihe: Tästä eteenpäin tehtävän a) suorittamiseen voi olla useampiakin ratkaisumalleja seuraavassa eräs niistä. Toiminnan kuvaus lyhyesti: Väkipyörässä on aukkojen ja esteiden lukumäärä yhteensä 20 kpl. Eli kun anturilta luettava arvo on vaihtunut 20 kertaa niin väkipyörä on pyörähtänyt yhden kierroksen. Luetaan peräkkäisiä arvoja anturilta, jos arvot ovat erisuuret lisätään laskurin arvoa yhdellä ja suoritetaan tarvittavat laskutoimitukset. - Pyöristetään mittausdata lähimpään kokonaislukuun. Block diagram: Liitä pyöristys Read instrumentin data ulostuloon Programming Numeric Round to nearest - Edellinen mittausarvo säilyy ohjelman muistissa siirtorekisterin avulla. Block diagram: Vie pyöristetty arvo While loop:n oikeaan reunaan. Klikkaa oikealla hiiren napilla luotua Loop tunnel :ia Replace with shift register ja vie siirtorekisteri While loop :n vasempaan reunaan. - Verrataan peräkkäisten silmukan suoritusten aikana mitattuja arvoja. Block diagram: Luodaan vertailuoperaattori Programming Comparison Not equal? Vie 1. kohdan pyöristetty arvo ja vasemmanpuoleisen siirtorekisterin ulostulo vertailuoperaattorille. - Tehdään yksinkertainen laskuri laskemaan kuinka monta kertaa peräkkäinen mittausarvo vaihtuu. Block diagram: Luodaan case rakenne Programming Structures Case Structure joka toimii edelllisessä kohdassa luodun vetartailuoperaattorin tuloksen perusteella. Kytke vertailuoperaattori ja case selector - Tee lisäysfunktio true vaihtoehdon sisälle Programming Numeric Increment. Vie sen arvo Case rakenteen läpi While loop:n oikeaan reunaan. Klikkaa oikealla hiiren napilla luotua Loop tunnel :ia Replace with shift register ja vie siirtorekisteri While loop :n vasempaan reunaan. - Alusta edellisessä kohdassa luotu vasen siirtorekisteri arvolla 0. Klikkaa oikealla hiiren napilla siirtorekisteriä Create Constant. Vie tämän siirtorekisterin arvo Case (true) rakenteen sisälle ja liitä se lisäysfunktioon. - Vaihda Case (false). Kytke siirtorekisterin arvo kulkemaan case rakenteen läpi.
Kuva 4. Tehtävä a) 3. Vaiheen jälkeinen tilanne
4. Vaihe: Erilaisia laskutoimituksia laskurin arvolla. - Kierrosten lukumäärä saadaan laskettua laskurin arvo jaettuna 20. Block diagram: Luo jakolaskuoperaattori Programming Numeric Divide. Kytke laskurin ulostulo case rakenteen ulkopuolella operaattoriin. Klikkaa oikealla hiiren napilla jakolaskuoperaattorin alempaa syötettä Create Constant. Jaa arvo 20:llä. Luo numeronäyttö tulokselle. Klikkaa oikealla hiiren napilla jakolaskuoperaattorin ulostuloa Create Indicator. - Väkipyörän kehän kulkema matka saadaan laskettua kehän pituuden ja kokonaisten kierrosten tulona, kaavalla. Väkipyörän säde on 2.5 cm. Luodaan tulo-operaattori Programming Numeric Multiply. Klikkaa oikealla hiiren napilla tulo-operaattorin syötettä Create Constant 2.5. Luodaan vakio Programming Numeric Math constants ja liitetään se tulo-operaattoriin. Luodaan vielä toinen tulo-operaattori johon kytketään äskeisen laskutoimituksen tulos ja kokonaiset kierrokset. Luodaan vielä tälle tulo-operaattorille numeronäyttö
Kuva 5. Block diagram labview koodista, joka laskee ledien vilkkumiskerrat ja väkipyörän kokonaiset kierrokset.
Vinkkejä tehtävän b) yhteen ratkaisumalliin: Toiminnan kuvaus lyhyesti: Lasketaan yhden sekunnin aikana kertyvät signaalin muutokset. Käytetään hyödyksi tehtävän a) koodia. - Poista edellisessä tehtävässä luodut laskutoimitusoperaattorit - Vaihda While loop For loop :ksi Klikkaa oikealla hiiren napilla While loop :n reunaa replace with for loop. Poista Stop nappi. - Suoritetaan For loop sekunnin sykleissä. Luo For loop: in sisälle millisekuntilaskuri Programming Timing Wait Until Next ms Multiple. Aseta millisekuntilaskurin syötteeksi 1 ms. Määritä For Loop :in suorituskerroiksi N = 1000. - Käytä Esimerkkihakua ja etsi puskurimuistisovellus. Help Find Examples Search. Kirjoita hakusanaksi Buffer. Valitse ja aukaise esimerkkien joukosta Smart Buffer Example. Kopioi Smart Buffer (DBL).vi omaan ohjelmaasi. - Kehystä For Loop uudella While silmukalla ja luo silmukalle lopetusnappi. - Sijoita kopioimasi Smart Buffer While silmukan ulkopuolelle ja alusta puskuri tyhjäksi. Klikkaa oikealla hiirennapilla smart buffer instrumenttia mode create constant empty. - Kopioi toinen Smart Buffer For silmukan sisälle. Alusta puskuri write toiminnolla ja kytke Case rakenteen läpi kulkeva data puskurin new element sisäänmenoon. - Kopioi kolmas Smart Buffer While silmukan sisälle. Alusta puskuri Read toiminnolla ja luo indikaattori lukeaksesi puskurin viimeisimmän arvon.
Labview-ohjelma tehtävään b) Kuva 6. Block diagram LabVIEW koodista, joka laskee ledin vilkkumistaajuuden.