Rychlokurz LabVIEW Ing. Petr Hošek TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Tento materiál vznikl v rámci projektu ESF CZ.1.07/2.2.00/07.0247, který je spolufinancován Evropským sociálním fondem a státním rozpočtem ČR
Měřící technika 2.0 vs. 1.0 Navigace/ GPS Hraní her PC/WWW/ E-mail PDA Telefon Displej s vysokým rozlišením Mp3 Fotoaparát 2
Měřící technika 1.0 tradiční přístup RLC metr Logický analyzátor Signálový generátor Programovatelný přepínač Spektrální analyzátor Zdroj DMM 3
Měřící technika 2.0 nový přístup - modulární programovatelný systém použitelný pro různá měření - menší rozměry - upgradovatelnost - real-time zobrazení dat v PC - uživatelem definované softwarové rozhraní dá se přizpůsobit - jednoduché přidat nové funkce (filtrování, FFT ) - LabVIEW, LabWindows CVI, Visual Studio +NIDAQmx 4
LabVIEW základy - Front panel (FP): grafický interface na který uživatel kliká, nastavuje, kroutí a zadává, čte, data se zobrazují - Block diagram (BD): vlastní program - Každému prvku na FP odpovídá prvek na BD - Vi = virtual instruments Controls: - zadání čísel, textu, nastavení hodnot, spínače, tlačítka Indicators: - zobrazení dat, výsledků výpočtů, grafy, LED Constants: - numerické, textové, boolean 5
LabVIEW palety 6
LabVIEW data flow - jednotlivé struktury/funkce v LV mají vstupy a výstupy - program se nevykonává sekvenčně jako u textových program. jazyků, ale dle data flow - data flow: koncept, kdy každá funkce se vykoná až když má definované všechny vstupy. Po provedení posílá data na své výstupy - pokud je přítomna chyba, není dovoleno spustit program Příklad 1: převod teploty ze C na F Má oba vstupy definované, vykoná se okamžitě a pošle data dál Nevykoná se, dokud nedostane data z násobení Nevykoná se, dokud nedostane data z dělení a Teplotu 7
LabVIEW základní datové typy Odlišují se barvou drátů a terminálů - Numerické: U8..U64, I8..I64, SGL, DBL, EXT, Complex - String - Boolean - Kombinované = Cluster (více datových typů v jednom jako record v Delphi nebo struct v C) - Pole: rozměr se odlišuje silou drátu 8
LabVIEW struktury Stejně jako v jiných programovacích jazycích: For, While, Case paleta Structures na Block diagramu Určuje počet iterací Iteruje dokud není splněna podmínka jeden nebo více subdiagramů, které se vykonají dle vstupní podmínky BOOLEAN NUMERIC ale i STRING, ENUM 9
LabVIEW zkratky, které se mohou hodit - ctrl+h nebo menu Help show Context Help. Zobrazí plovoucí nápovědu, která po ukázání na libovolnou funkci poskytne rychlou informaci o jejích vstupech/výstupech a o tom co funkce dělá - ctrl+e přepíná mezi FP a BD (nebo menu Window show Block Diagram/Front Panel ) - ctrl+b smaže všechny přerušené/nedokončené dráty 10
LabVIEW úkoly Příklad 2: Naprogramujte řešení kvadratické rovnice FP palety - numeric : sčítání, odčítání, dělení, negace, přetypování na Complex DBL (subpaleta Conversion) - structures: while loop BD palety - numeric : numeric control, numeric indicator - boolean: stop button 11
LabVIEW úkoly Příklad 2: řešení Wait aby nevytěžoval CPU na 100% Výstup jako CDB (pravým tlačítkem Representation CDB) Nutné přetypovat na CDB, jinak navazující oparace nebudou s komplexními čísly (subpaleta Conversion) 12
LabVIEW čemu se vyvarovat 1) Nekřižte dráty pokud nemusíte (Hrozí špageti kód!) 2) Vstupy nalevo a výstupy napravo! (Program se stane nečitelný) 13
LabVIEW sběr dat - Jak pracovat s měřící kartou? Musím jí říct co chci měřit a jak to chci měřit NI-DAQmx - NI-DAQmx - driver ke komunikaci s měřícími kartami od NI (přístup z LabVIEW, C++, Java ) - zaměnitelnost karet stejný program mi poběží na dvou zcela různých kartách (pokud nabízí kompatibilní hw) - simulované karty a celé skříně odladím si program na softwarové emulaci - Daq Assistant: expresní funkce zapouzdření low-level funkcí ke sběru dat do jednoduchého průvodcem - všechny expresní funkce dostupné pod paletou Express 14
LabVIEW úkoly Příklad 3: sběr dat z tenzometrického měření 1) Připojíme měřící kartu k PC a počkáme až ji Windows rozpozná 2) Správně naswitchujeme jumpery pro měření čtvrtmost/polomost/celý most a zesílení 3) Zvolíme si kanál ne kterém budeme měřit (levý konektor = AI0, pravý = AI1) AI0 AI1 15
LabVIEW úkoly Příklad 3: sběr dat z tenzometrického měření 4) Připravíme si Front Panel, který nám umožní a) nastavení napájecího napětí = knob nebo numeric control b) zobrazení naměřených dat = chart (paleta Graph) 5) Nejprve musíme nastavit napájecí napětí můstku, neboli musíme kartě říct, ať hodnotu příslušného AO nastaví na cca 3V Daq Assistant č.1 (najdeme v: Block diagram paleta Express Output) 16
LabVIEW úkoly Příklad 3: sběr dat z tenzometrického měření a) chceme generovat napětí b) vybereme naši kartu (USB-6009) a napájecí AO Generate signal Analog Output Voltage Dev X aoy* 17
LabVIEW úkoly Příklad 3: sběr dat z tenzometrického měření c) detaily generování napětí d) propojíme s našimi 3V - Range: 0-5V - Terminal: RSE - Generation mode: 1 Sample (chci aby nastavil 3V a držel je) 18
LabVIEW úkoly Příklad 3: sběr dat z tenzometrického měření 5) Musíme zajistit sběr dat z kanálu na kterém máme připojený můstek Daq Assistant č.2 (Block diagram Paleta Express Input) a) chceme měřit napětí b) vybereme odpovídající kanál Acquire signals Analog Input Voltage Dev X aiz* 19
LabVIEW úkoly Příklad 3: sběr dat z tenzometrického měření c) nastavíme detaily měření napětí - Range: ±10V - Terminal: RSE (diferenciální odečtení a zesílení dělá předzesilovač v prvním stupni krabičky) - Generation mode: Continuous Samples (chci měřit dokud nezastavím program) - Samples to Read: 100 (při Rate = 1kHz vyčte data 10x/sec) - Rate: 1kHz 20
LabVIEW úkoly Příklad 3: sběr dat z tenzometrického měření 6) Daq Assistant za vás doplní while smyčku pro kontinuální sběr dat 7) Připojte datový výstup do Chartu 8) Nyní musíme zajistit, aby se jako první nastavilo napájení můstku a až pak začal sběr dat pomůže nám data flow Připojíme error out z prvního Daq Assistantu do while smyčky. Ta se nezačne vykonávat dokovad nemá všechna vstupní data = dokovad nemá error out. Error out nese data až po vykonání prvního Daq Assistantu 21
LabVIEW úkoly Příklad 3: výsledek 22
LabVIEW úkoly Příklad 4: rozšiřte předchozí úlohu o zápis dat + indikaci překročení kritické hodnoty (třeba 5V) - použijte expresní funkce - kdo má, může zkusit filtrování signálu a FFT 23
LabVIEW úkoly Příklad 4: řešení Pozor pro FFT musíte v programu provést jisté změny, jinak nebude nic moc vidět jaké změny a proč? 24
Zdroje www.ni.com 25