4.12.2007 Stručný úvod Ing. Petr Kropík, zredigoval (a poděkování zaslouží) Ing. Pavel Štekl, PhD.
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.