česky english Vítejte, dnes je čtvrtek 21. listopad 2024

Základy LabVIEW

DPS 1/2015 | Články
Autor: Ing. Rostislav Halaš, National Instruments

V první části našeho seriálu [1] jsme se seznámili se základními myšlenkami grafického programování a některými zajímavými aplikacemi. V druhé části seriálu se naučíme pracovat s vývojovým prostředím a vytvoříme první jednoduchý program. Naším jednoduchým programem bude kalkulátor, který umí provádět operace sčítání, odečítání, dělení a násobení na dvou číslech. Program je to velmi jednoduchý, ukáže ale dobře práci s LabVIEW a styl programování.

Na našem vývojovém PC budeme potřebovat jednak vývojové prostředí LabVIEW a také driver DAQmx pro komunikaci s měřicími kartami. Vývojové prostředí je možné stáhnout z webové stránky (www.ni.com/ downloads) jako 45denní zkušební verzi bez omezení funkcionality. Ze stejné stránky je možné stáhnout i driver DAQmx.

Nyní již předpokládáme, že máme na svém počítači nainstalované vývojové prostředí LabVIEW a pustíme se do vytváření prvního programu. Dále budeme programu v LabVIEW říkat VI (zkratka pro Virtuální Instrument).

Součet dvou čísel

V okamžiku, kdy nainstalujete a spustíte LabVIEW, mělo by se vám ukázat počáteční okno obr. 1. V tomto okně můžete jednak vidět poslední otevřené projekty, můžete vytvořit projekt nový nebo kliknout na některý z odkazů, který vás zavede na webové stránky technické podpory či podrobného tutorialu do Lab- VIEW. Nyní vytvoříme pouze jedno nové VI, které bude provádět součet dvou čísel. V úvodním okně klikněte na File > > New VI. V tom okamžiku se vám otevřou dvě okna, která tvoří každé VI. Jedno okno se jmenuje „Block Diagram“ a druhé „Front Panel“. Block Diagram má bílé pozadí a je to okno, v kterém budeme programovat a které definuje funkcionalitu našeho virtuálního přístroje. Druhé okno, jak už název napovídá, funguje jako čelní panel, tedy uživatelské rozhraní, pomocí kterého může uživatel ovládat aplikaci a vidět výsledky v podobě grafů či jiných indikátorů. Klikněte do okna Front Panel. V prvním kroku vytvoříme pro náš program uživatelské rozhraní. Pro naši kalkulačku budeme potřebovat dva ovládací prvky (Control) a jeden indikátor výsledku. Pojďme tedy umístit dva numerické „controly“ a jeden numerický indikátor na čelní panel tak, jako vidíme na obr. 2. Controly a indicatory naleznete tak, že kliknete pravým tlačítkem myši na volnou plochu čelního panelu. Tím se vám otevře paleta, z které můžete prvky vkládat. Prvky, které hledáme, se nacházejí v podpaletě Numeric. Pokud kliknete na daný „control“ či indikátor v paletě a potom kliknete na čelní panel, prvek se tam automaticky vloží.

lab 1,2

Na obr. 2 také vidíte, že už jsem si svoje prvky na čelním panelu přejmenoval. Toho jsem docílil tak, že jsem dvakrát kliknul na popisek. Tím pádem se popisek dostal do módu, v kterém jej mohu upravovat.

V případě jakéhokoliv programování je velmi důležitá dokumentace. Pokud bych tedy chtěl přidat na svůj čelní panel další popisek, jednoduše dvakrát kliknu kdekoliv na volnou plochu a začnu psát.

Zaměřme se teď na blokový diagram. Určitě jste už zjistili, že na vašem blokovém diagramu již máte tři bloky. Těmto blokům se říká terminály a slouží pro zapisování, čtení hodnot z uživatelského rozhraní do kódu. Také si můžete všimnout, že barva těchto bloků je oranžová. Oranžová proto, že datový typ mých prvků je číslo s plovoucí desetinnou čárkou typu double precision1. Datový typ můžete změnit tak, že kliknete na terminál a zvolíte Representation. Tím se vám otevře paleta, v které můžete změnit datový typ. V našem případě je datový typ double v pořádku, takže ho nebudeme měnit.

Pojďme nyní vložit funkci, která sečte dvě čísla. Klikněte kdekoliv na blokovém diagram pravým tlačítkem myši. Otevře se vám paleta funkcí, ve které vyberete subpaletu Programming » Numeric»Add a kliknete kdekoliv na blokový diagram. Klikněte na funkci Add a přetáhněte ji mezi terminály vstupu a výstupu. Kliknutím a tažení uspořádejte blokový diagram jako na obr. 3. Stále nám ale chybí propojení vstupů a výstupů s funkcí sčítání. To provedete tak, že se kurzorem myši postavíte nad výstup vstupního terminálu (malý trojúhelníček na pravé straně). Tím se vám ikona kurzoru změní na špulku s drátem. To znamená, že máte automaticky nastaven nástroj pro propojování. Teď jednoduše stačí kliknout na daný vstup a kliknout na jeden ze vstupů funkce Add. Bloky se automaticky propojí a znamená to, že se data předají z čelního panelu do blokového diagramu a pošlou se na vstup funkce Add. Stejným způsobem propojíte i druhý vstup a výstup funkce Add, propojíte tak i výstupní terminál. Celý kód bude vypadat jako na obr. 3.

lab 3

Gratuluji! Právě jste vytvořili svůj první program.

Nezbývá, než program otestovat tím, že jej spustíme. Nejprve klikněte na čelní panel a nastavte hodnoty, které chcete sečíst. Nyní klikněte v panelu nástrojů na bílou šipku, tím se naše VI jednou spustí a vykoná instrukce dle blokového diagramu. V našem případě vidíme, že jsme opravdu dostali součet našich dvou čísel.

Větvení programu

V dalším kroku rozšíříme funkcionalitu tak, že přidáme odečítání, násobení a dělení. Pro tuto funkcionalitu použijeme Case strukturu. Tuto strukturu naleznete v podstatě ve všech programovacích jazycích. Jedná se o to, že máme několik paralelních větví programu a rozhodujeme se, která větev se vykoná na základě nějaké podmínky. V našem případě podmínkou bude nastavení ovládacího prvku na čelním panelu. Pokud tedy uživatel nastaví dělení, kalkulačka provede pouze dělení zadaných čísel. Klikneme tedy na blokový diagram pravým tlačítkem, otevřeme paletu funkcí a vybereme Programming » Structores » Case Structure. Nyní je třeba Case strukturu vložit kolem funkce Add, kterou už máme implementovánu. To provedeme tak, že klikneme levým tlačítkem na jeden roh, kam chceme Case strukturu umístit, držíme levé tlačítko myši a roztahujeme strukturu na požadovanou velikost a v okamžiku, kdy tlačítko pustíme, vytvoří se obdélníkový rám, který definuje Case strukturu.

lab 4

Možná jste si všimli, že šipka pro spuštění VI je „zlomená“. To znamená, že je ve vašem kódu chyba, kvůli které nelze program spustit. Chyba je způsobena tím, že jsme nepřipojili žádnou hodnotu na výběrový vstup Case struktury (vstup s ikonou otazníku). Tímto vstupem definujeme, která z větví kódu se má vykonat. Jelikož máme pouze 4 možnosti – plus, mínus, děleno a násobeno, použijeme výčtový typ, který bude definovat všechny přípustné možnosti, které uživatel může zadat. Přepneme se tedy na čelní panel a pravým kliknutím otevřeme paletu prvků. Ze subpalety Modern >> Ring&Enum vybereme prvek Enum. Kliknutím na čelní panel jej vložíme na příslušné místo. Klikněte na prvek Enum pravým tlačítkem a vyberte Edit Items. Dostanete se do okna, kde můžete specifikovat položky výčtového typu. Klikněte na tlačítko Insert a napište Add. Udělejte totéž znova a napište Subtract. Stejným způsobem vytvořte položky Multiply a Divide.

lab 5

Nyní se přepneme zpátky na blokový diagram. Stejným způsobem jako minule můžeme propojit terminál našeho výčtového typu na výběrový vstup Case struktury. Pokud toto uděláte, kód, který jsme vytvořili pro sčítání, nebude vložený ve správné větvi programu. Chceme, aby se v případě, že uživatel nastaví na čelním panelu funkci sčítání, vykonala větev programu „Add“ a vykonala se funkce sčítání. Proto klikněte pravým tlačítkem kdekoliv na rám Case struktury a zvolte Swap Diagram With Case >> Add.

Nyní můžeme implementovat funkci násobení. Klikněte na horní část Case struktury, tím se vám rozbalí roletová nabídka s názvy jednotlivých větví programu. Klikněte na Multiply. Tím se přepnete do větve násobení, kde musíte naprogramovat jeho funkci. Pravým kliknutím na volnou část blokového diagramu vyberte z palety funkcí subpaletu Numeric a z ní funkci Multiply. Tuto funkci vložte dovnitř Case struktury. Propojte vstupy a výstupy funkce násobení.

Stejným způsobem vytvořte funkce dělení a odečítání. V okamžiku, kdy toto uděláte, je váš program připraven na spuštění. Přepněte se na čelní panel, zadejte čísla, na kterých chcete provádět operaci a kliknutím na ovládací prvek výčtového typu vyberte operaci, která se má provést. Klikněte na šipku pro spuštění vašeho programu. Otestujte funkčnost různých matematických operací.

Kalkulačka nám sice funguje, ale pro uživatele asi nebude úplně příjemné po zadání nových hodnot vždy spustit vykonávání kódu. Problém je ten, že náš kód proběhne vždy jen jednou. Abychom dosáhli kontinuálního běhu, můžeme použít smyčku.

lab 6

Smyčky v LabVIEW

Aby náš program běžel kontinuálně, použijeme smyčku while. Tato smyčka vykonává cyklicky část kódu do té doby, dokud není splněna nějaká podmínka. V našem případě tato podmínka bude stisknutí tlačítka STOP na čelním panelu. To způsobí ukončení našeho VI.

Otevřeme tedy paletu funkcí a vybereme Programming >> Structures z této subpalety zvolíme položku While Loop. Nyní klikneme levým tlačítkem na levou horní část blokového diagramu, který chceme uzavřít do smyčky, a tažením roztáhneme smyčku na potřebnou velikost tak, aby obsahovala veškerý kód. Můžete si všimnout, že šipka pro spuštění je zlomená. Je to z toho důvodu, že na While smyčku není přivedena žádná podmínka. Přepneme se tedy na čelní panel a vytvoříme nové tlačítko pro zastavení VI. Klikneme pravým tlačítkem na čelní panel a z palety prvků vybereme Boolean > > STOP button. Kliknutím na volnou plochu čelního panelu tlačítko vložíme. Nyní se můžeme přepnout zpět na blokový diagram a připojit terminál STOP tlačítka na podmiňovací vstup while smyčky (červené kolečko v zeleném čtverci).

Váš kód by měl vypadat jako na obr. 7.

lab 7

Nyní můžeme náš kód spustit. Vidíme, že funguje naprosto stejným způsobem, akorát kód není třeba neustále spouštět a vykonává se cyklicky do té doby, než uživatel stiskne tlačítko STOP.

V rámci dnešního dílu jsme tedy vytvořili funkční jednoduchý kalkulátor. V příštím díle se podíváme na měření dat s multifunkční měřicí kartou.

 

Literatura:

[1] DPS Elektronika od A do Z č. 4/2014