Stručný úvod Ing. Petr Kropík, zredigoval (a poděkování zaslouží) Ing. Pavel Štekl, PhD. 4.12.2007 LabView - přednášky na ni.com/academic (zde vlevo kliknout na training) - jsou zde zdrojové texty, animace a další studijní materiály - ni.com/czech česká příručka - ni.com/trylabview demo verze - grafické programování - metoda dvou oken v šedém s provádí návrh designu virtuálního přístroje, v bílém okně v pozadí se vytváří algoritmus programu - využívá virtuální přístroje (Virtual Instrument) - z principu paralelní programování - moduly, smyčky běží rovnou (pseudo)paralelně omezení na možnosti grafického zpracování informací na možnosti MS Windows - vznik v roce 1986 pro MacIntosh (bylo potřeba grafické rozhraní, na PC byl jen DOS ) Vývojové prostředí LabView - grafické prostředí - kompilátor Integrované HW platormy - testovací zařízení modelové zdroje signálů generátor, čítač - řídící jednotka komunikuje s PC nebo je uvnitř PC, obsahuje sběrnice a kartu s generátoy signálu, čítači a podobně. - měřicí karty různé provedení, nejčastěji PCI, ale už i express - stolní počítač, notebook, PDA, PXI počítač (standard průmyslových PC) Měřicí karty - reálná měřicí karta (měří reálné signály z prostředí napětí, teplotu..)
- karta simulovaná programem (virtuální zdroje kmitočtu, signálu ) - běžná zvuková karta (umožňuje měření v určitém pásmu do 48 khz) MAX pomocný program, výběr ovladačů, jak reálných, tak simulovaných karet. LabView Přípona programů -.vi (odvozeno od Virtual Instrument) - okno blokového diagramu samotný program (algoritmus) - okno čelního panelu grafické rozhraní programu pro uživatele tlačítka, grafy, "kroutíky" (otočná tlačítka) (tj. ovládací prvky), indikátory (zobrazovací prvky) atd. - vytvoření funkce (modré okno) pomocí DAQ asistenta, nastavuji např. co měřím, frekvenci atp. (často pro opakované nebo složitější funkce) - následné propojení výstupu se zobrazovacím modulem a je to (problematika numerické kompatibility, případně vektorového provedení časové základny je zde řešena jinak, graficky pouze vizuální kontrola drát je různě barevný a má různou tloušťku různá čísla a formáty) - propojovací body modulů se nazývají terminály (jsou vstupní i výstupní, lze je předefinovat podle potřeby a dokonce i měnit již definované). - použití pravého tl. myši v obou oknech nabídky prvků (objeví se nástrojové toolbox nebo funkční function paletky). Řízení běhu programu v LabView - Dataflow Programming řízení tokem dat - co může, vykonává paralelně (s ohledem na možnosti systému) - řízeno tokem dat z výstupů, přes drátky na vstupy (možnost indexace a tunelování skrz okraje smyček a dalších struktur logické) Techniky ladění - symbol žárovičky grafické odlaďování přenos hodnoty po drátku - krokování po funkcích - sledování proměnných obsah "drátku" nazýváme je sondy (probe) - umístění breakpointu na drátek (umožní stopnout běh akce)
Základní elementy jazyka Smyčky - while podmínkově řízený (podmínka condition musí být obsloužena) má terminál stop (červený terč vpravo dole). Tam lze připojit např. stop tlačítko v praxi zdroj signálu boolean (true/false) není-li připojeno tlačítko, program nejede (vrací chybu prasklá šedá šipka v menu po poklepu výpis chyby, zde např.: condition terminal not wired) dále terminál i obsahuje kolikrát smyčka proběhla, pozor, počítá od nuly (index modré i je možné dále využít pro indexování nebo další výpočty). - for terminál n tam připojím kolikrát má proběhnout (řídící proměnná cyklu, běží od 0, tj. pro 5 opakování běží cyklus od 0 do 4 dle indikace počtu běhů) vstup indexu počtu běhů lze i z venkovního prostředí Typy funkcí - Exprex VIs: základní funkce (modré obdélníky-okna), dialogové nastavení, které lze vyvolat dvojklikem (nová implementace) - Standardní VIs: nemají dialogové nastavení, dvojklikem lze zobrazit zdrojový kód (obsahují nejstarší funkce) - Funkce: funkce napsané v C apod., sčítání, odčítání atp., základní stavební kameny LabView, práce se soubory Druhy funkcí - vstupy/výstupy (fyzická reprezentace tlačítek, kroutíků a osciloskopů) - analýza dat (filtry, FFT, spektrální analýza, diskrétní filtry ale i generátory signálů, virtuální zdroje šumu a speciálních signálů apod ) - ukládání práce se soubory (včetně indexace a formátu) Pozn.: Tools -> BuildExecutable vytváří spustitelné aplikace - výkon srovnatelný s programy v C (dle výrobce)
Podprogramy SubVI - pro zpřehlednění blokového schématu (když se grafika moc rozrůstá) - dva způsoby vytvoření SubVI - zevnitř přes pravé tl. myši na lištu dám zobrazit přehled "šablon" konektorů, vyberu vhodný (s vhodným počtem vstupů), zapojím vstupy a výstupy (co půjde ven a co bere dovnitř) a mám vnitřek nového VI, mohu upravit ikonu (logické, ale poměrně pracné) - zvenku v BlockDiagramu označím bloky co mají přijít do nového SubVI a potom z menu (roletky) vyberu Create SubVI nebo, v případě, že daná funkce již vnitřní podprogram obsahuje vyberu možnost modifikace této funkce pomocí Sub node VI setup. - vlastní SubVI lze uložit do adresáře LabView\VI\userlib a najdu jej potom v User Libraries Analýza - v LabView je několik set analytických funkcí - např. filtry (analogové, tónové, akustické, digitální atd..) - při prvním otevření (u expresních funkcí) vidím někdy od programátora zadaná vzorová data, po prvním spuštění už v editaci vidím data ostrá, šikovné pro úpravu parametrů Větvení programu v LabView - struktury pro větvení mají rozhodovací terminál boolean s hodnotou true/false tj. ekvivalent příkazu if. - lze též variantu s rozhodovacím terminálem typu více hodnot jako switchcase vybírá z více variant - existuje i jednodušší varianta pro rozhodování mezi dvěma libovolnými hodnotami Čtení a zápis -.lvm textový soubor s naměřenými daty - tdm binární formát pro ukládání dat úspornější než textový
- tdms novější verze - funkce pro ukládání souborů modul má různé parametry cesta, zda se ptát uživatele na název souboru a cestu, formát ukládaného souboru - obdobně pro čtení - lze si udělat i vlastní formát - na stránkách ni.com jsou ke stažení importní filtry Použití polí - umístíme "tunel" na hranici bloku a zapnu indexování získám (po skončení funkce) pole s nastřádanými výstupními hodnotami lze využít pro přesun indexovaných hodnot po skončení procesu (v příklady uvedeného cyklu) lze tak generovat i indexované pole (vektory) hodnot s matematickou hodnotou - pokud indexování nezapnu, získám jen poslední hodnotu Spolupráce s MATLABem - buď volá MATLAB (ten musí být nainstalován) - nebo zpracovává jako skript, bez MATLABu, stejná syntaxe, v posledních verzích LabView podpora základních funkcí MATLABu a Simulinku, nejsou podp. hlavně funkce pro grafy (LabView si je dělá samo) - MathScriptWindow jednoduchý editor scriptů ála MATLAB - kompatibilita s Matlabem jde i po linii grafiky, mnoho příkazů a funkcí je kompatibilní s grafickými ekvivalenty Matlabu. Datové typy - kde se dělá konverze (sama) označuje šedou tečkou - barva drátku značí datový typ - tenký drátek jedna hodnota se přenáší - tlustší drátek přenáší se pole, vícerozměrná pole ještě tlustší - poměrně nově v LabView též matice, včetně maticových operací. Pole násobí po prvcích, matice maticově (matice jako objekt zavedeny teprve ve verzi 8, předtím řešeny jinak) Numerické typy - Boolean
- Double Precision Number - Integer Number - Complex Number - atd. viz prezentace - nejvýše je Cluster - pro konverzi mezi některými těmito typy je třeba použít konverzní objekty.