Ústav automatizace a informatiky Fakulta strojního inženýrství Vysoké učení technické v Brně Přednáška č. 8 z předmětu Zpracování informací Ing. Radek Poliščuk, Ph.D. Tato publikace vznikla jako součást projektu CZ.04.1.03/3.2.15.2/0285 Inovace VŠ oborů strojního zaměření, který je spolufinancován evropským sociálním fondem a státním rozpočtem České republiky 1/19
Ohlédnutí... V procesu měření a získávání informací je možné identifikovat následující fáze: fáze sběru surových dat a řízení technologického procesu zásuvné multifunkční karty, přímo snímající signály senzorů měřící přístroje vybavené komunikačním rozhraním (RS 232,...) PLC (programovatelné logické automaty) a průmyslové I/O systémy fáze analýzy naměřených dat digitální zpracování signálu (přepočty veličin, archivace dat) digitální filtrace (potlačení impulzního a náhodného rušení,...) statistika (výpočty efektivních hodnot, mediánů, regresní analýzy...) operace s poli (maticové operace, konvoluční analýzy, zpracování obrazu,..)... fáze prezentace naměřených a analyzovaných dat grafické uživatelské rozhraní (grafy, tabulky, interaktivní aplikace...) síťové aplikace (online protokoly, grafika) souborové a tiskové výstupy (protokoly, prezentace, ) Používané aplikace mohou být vzhledem k těmto fázím specializované (např. komunikace) a nebo mohou zasahovat do více fází současně (např. DB aplikace + tabulkové editory)... 2/19
Ohlédnutí... Aplikace pro práci s daty mohou být uzavřené (binární kód, specializované programy bez možnosti uživatelských změn) s přiloženým zdrojovým kódem (možnost úprav pro běžné uživatele velmi obtížné) Vývojová prostředí pro PLC (grafické metody i programovací jazyky) Basic / Visual Basic / VBA / Visual Basic.NET Pascal / Object Pascal / ST C/C++ / C#.NET / PHP Matlab,... řešení postavená na některé interaktivní platformě: tabulkové editory (vč. komponent pro sběr dat NI Excel Measure) CASE* systémy s možností vizuálního programování HP VEE, Keithley Test Point (grafické programování, Windows) Control Panel/Control Web (Alcor Zlín, pro DOS/Windows) NI LabWindows for DOS/LabWindows CVI - textově orientovaný návrh NI LabVIEW - grafické programování pro různé platformy(apple/win/linux) * CASE = Computer Aided Software Engineering 3/19
Obsah přednášky Přednáška 8 LabVIEW co je LabVIEW použití LabVIEW vizuální programování MathScript a DLL generátor signálů vizualizace a export výsledků 4/19
Co je LabVIEW? Laboratory Virtual Instrument Engineering Workbench RAD vývojové prostředí od firmy National Instruments pracující s grafickým programovacím jazykem G OOP systém pro sběr, analýzu a vizualizaci dat (Windows, MacOS X a Linux) programy = Virtuální měřicí přístroje (Virtual Instruments, VI) programový kód v podobě grafického blokového schématu (jazyk G ) řešení úlohy na základě toku dat, ve směru od zdroje přes jednotlivé komponenty možnost kombinace vizuálního programu s MathScriptem (MATLAB) schopnost exportu VI ve formě DLL komponent a používání DLL třetích stran Realita DATA Informační systém Informace Příjemce 5/19
Použití LabVIEW Získávání dat Data Acquisition Device (USB, PCI/PXI) PLC s příslušnými ovladači Zvuková karta (analogový In/Out) Simulované (SW simulace dat) Analýza dat logické a matematické zpracování získaných signálů (program v G ) Prezentace dat grafy a přehledy export dat do souborů senzory zvuková karta 6/19
Vizuální programování LabVIEW C, Object Pascal, matlab... * does not include code to generate UI 7/19
Aplikace = Virtuální přístroj Virtual Instrument = VI Front Panel = Uživatelské rozhraní (GUI), Ovládací prvky = Vstupy (přepínače, posuvné stupnice...) Indikátory = Výstupy (grafy, kontrolky/led, tabulky, ) Block Diagram = Grafický kód bloky zobrazují jednotlivé komponenty data jsou mezi objekty přenášena virtuálními dráty operace s daty s pomocí logických a numerických operátorů možnost seskupování komponent přístrojů do cyklicky opakovaných bloků, sekvencí, větvení... virtuální přístroje mají hierarchickou modulární strukturu. 8/19
Front panel = GUI Panel nástrojů Ikona Nápověda Tabulka Legenda Graf Numerický ovládací prvek Logický ovládací prvek Numerický indikátor Logický indikátor STOP tlačítko 9/19
Block diagram = propojení Panel nástrojů Funkce dělení SubVI Terminál grafu Dráty (tok dat) While Loop (smyčka) Numerická konstanta Funkce časovače Terminál logického ovladače 10/19
Pracovní nástroje Výběr změna pozice popisovač ovladač spojovač scrooling propojovač výběr barvy dle objektu pop-up menu paleta komponent spojovač - space bar sonda barva breakpoint run stop Svítí-li žárovka: LabVIEW trasuje svoji činnost v blokovém schématu výběr - single click výběr - double click krokování výběr - triple click nastavení textu pauza Opakované spuštění 11/19
Signály a datové typy logické (boolean) celočíselné (integer), výčtové (enumeration) spojité (floating point) a komplexní pole a struktury (cluster) variantní/polymorfní řetězcové (string) 12/19
Programové struktury Signál probíhá paralelně po všech platných větvcích (rámcích): Sekvence (složena z navazujících rámců) vynucení posloupnosti provádění příkazů. rámce sekvence se provádějí popořadě (0, 1, 2 ) (aktivní je vždy jen jeden rámec) Vstup i výstup do rámce jediným tunelem (každý vstup ale může vést do více bloků) Přepínač (case) Větvení programu, dle podmínky do dvou či více větví Terminál pro připojení testovací podmínky For-loop cyklus pro známý počet opakování Automatická indexace vstupního/výstupního kanálu [i] frekvenci cyklu lze ovlivnit vložením bloku Wait Until Next ms Multiple. While-loop cyklus běží dokud JE SPLNĚNA řídící podmínka Event rámec je vykonán při určité události 13/19
Sekvence (Sequence) I přes výhody paralelního zpracování (nezávislost,...), některé typy operací bývá výhodné rozčlenit do skupin, které na sebe postupně navazují a tvoří tak SEKVENCI (paleta Programming Structures) sekvence je složena z více navazujících rámců/snímků Flat Sequence (pohled na filmový pás ) Stacked Sequence (pohled na vybraný snímek) Timed Sequence (speciální sekvence s pevnou snímkovou frekvencí) k přechodu do dalšího rámce dojde až po dokončení všech větví v daném rámci Vstupní parametry je možné zadávat tunelem (vstup může vést do více snímků): 14/19
Větvení kódu (Case) Program lze zvoleným řídícím signálem větvit do dvou či více větví: Definuje se programový rámec typu Přepínač (Case, Programming/Structures) přepínání se při každém průchodu provádí na základě hodnoty signálu, přivedeného na terminál přepínače? (True/False, index výčtu, hodnota, text...) větve je možné přidávat a mazat (Add Case Before/After, Duplicate, Delete) všechny varianty řídícího signálu musí být ošetřeny, jinak VI není možné spustit je-li řídící proměnná mimo výčet, lze definovat výchozí (Default) větev. 15/19
Smyčky (Loop) Je-li nutné určitou činnost vícekrát opakovat, je výhodné ji vložit do smyčky (Loop) Smyčka obsahuje automatické počítadlo průchodů [i] možné využít jako řídící proměnnou For-loop cyklu frekvenci cyklu lze ovlivnit vložením časovače Wait Until Next ms Multiple. Smyčka běží, dokud ukončovací podmínka nenabude zvolenou hodnotu (T/F) Počítadlo Časovač Ukončit? 16/19
Události (Events) Event = rámec který je vykonán jen při určité GUI události (typicky např. při změně uživ. zadávaných parametrů)...aplikace takto funguje efektivněji, není nutné neustále opakovat zbytečné operace (princip funkce GUI aplikací) 17/19
Interakce s uživatelem Je-li nutné přitáhnout pozornost uživatele, je někdy možné použít Modální dialog: typicky pro dotaz na určité hodnoty možno použít i jako vstupní prvek pro potvrzení T/F POZOR: dokud je modální dialog/výzva zobrazena, NENÍ MOŽNÉ manipulovat se zbytkem aplikace. Modální dialogy je proto nevhodné používat u časově kritických operací ( Kde je to OK?!! ) nepoužívat v hlavní smyčce, má-li přístroj bežet v kontinuálním režimu (riziko zacyklení) 18/19
podprogramy a funkce Pro zpřehlednění schématu se dodané a odladěné kusy kódu zapouzdřují : uživatelské programy (VI) i podprogramy (SubVI s) mají block diagram i front panel. express VI: interaktivní VI konfigurovatelným dialogovým oknem funkce: operátory v LabVIEW (nemá front panel ani block diagram) Funkce Express VI Standardní VI 19/19
MathScript Tam kde vizuální programování nestačí: možnost použití kódu MathScript, vyvinutého v prostředích MATLAB a GNU Octave nativní interpretr a editor MathScript uvnitř LabVIEW (instalace Matlab/Octave není nutná), cca 650 vestavěných funkcí, bez toolboxů (nejde tedy o náhradu ani o integraci originálu) možnost importu DLL 20/19
Generování signálu Při ladění aplikace se hodí nástroje pro generování a filtraci signálu: skupina nástrojů: VI Expres, VI, Funkce možnost náhrady reálného zdroje dat VI Express Classic VI 21/19
Vizualizace výsledků Grafy jsou vizuální komponenty, určené k přehlednému zobrazení polí naměřených hodnot: Chart = osciloskop, který vůči dané časové základně zobrazuje získané vzorky Graph = prostý graf hodnot jedné a nebo více jednorozměrných funkcí (pole se zobrazí jako více funkcí) XY Graph = zobrazení parametrických funkcí 22/19
Vizualizace výsledků Pohled na řídící panel je možné doplnit o: událostmi řízené 3D animace 3D scény definované jako obrázkové VI řízení polohy, velikosti a barvy entit import objektů z formátů VRML, STL, ASE HW akcelerace zobrazování (OpenGL) 23/19
Souborové operace Jsou li zpracovávané signály ve formě matice/clusteru, je možný jejich export/import: Write/Read Spreadsheet: tabulkový formát (CSV) Write/Read Measurement LVM: textový protokol TDMS: binární formát (rychlé, malý objem) TDM: dtto, XML hlavička Report: tiskový/html výstup DIAdem Report: XLS protokol (kontingenční tabulky, OLAP...) 24/19
Export výsledků - TDMS Získaná data je možné ukládat ve formě TDMS souborů Vestavěné komponenty manipulaci s daty TDM Data Model & File TDM Streaming VIs Data Storage VIs DataPlugins DIAdem DataFinder (pro dolování dat) TDM je možné importovat do Excelu (importní filtr na www.ni.com/tdm) TDM je možné streamovat pro vzdálené zpracování 25/19
Tipy pro návrh aplikací Front Panel: Block Diagram: ovládací prvky rozumně pojmenujte co nejkompaktnější schéma všude jen použitelné výchozí hodnoty pojmenujte I/O kanály bloků - stručně! komponenty by se neměly překrývat používejte Description and comments logické/atraktivní rozmístění ovladačů signály nechte téct zleva doprava čitelné fonty a barvy, jednotný styl. zarovnávejte paralelní přístroje texty čitelné bez rolování (Size to Text) nepřekrývejte vodiče komponentami prostor mezi komponentami (font DPI) ošetřujte chybové stavy (signál Error) cesty nezadávejte řetězcem ale příslušnou komponentou (Path) opatrně se sekvencemi, raději Flat View nastavte limity numerických přístrojů doplňte popisky a tipy k přístrojům jako přepínač používat ENUM uvnitř bloků používejte raději lokální proměnné než přímo GUI komponenty tam kde jde použít vodič, nepoužívejte lokální proměnné (kopírování dat zdržuje). často používaným operacím přiřaďte klávesové zkratky 26/19
Další informace Tento dokument vychází z podkladů na: www.ni.com : http://www.ni.com/czech - česká příručka k LabVIEW http://www.ni.com/trylabview - online demoverze http://www.ni.com/labview http://www.ni.com/automatedtest http://www.ni.com/measurementfundamentals uai.fme.vutbr.cz : http://uai.fme.vutbr.cz/main.php?page=lab&index=faq/labview http://uai.fme.vutbr.cz/main.php?page=lab&index=a1-713/vyuka/kurzlabview 27/19