Programování v LabVIEW v příkladech
Lenka Kretschmerová Jaroslav Vlach
Liberec 2014
Programování v LabVIEW v příkladech
Ing. Lenka Kretschmerová, Ph.D. Ing. Jaroslav Vlach, Ph.D.
___________________________________________________ Recenzent: Ing. Josef Havlíček © Lenka Kretschmerová, Jaroslav Vlach ISBN 978-80-7494-167-2
„Imagination is more important than knowledge“ „Představivost je důležitější než znalost“
Albert Einstein
Tento materiál vznikl v rámci projektu ESF CZ.1.07/2.2.00/28.0050
Modernizace didaktických metod a inovace výuky technických předmětů, který je spolufinancován Evropským sociálním fondem a státním rozpočtem ČR.
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Předmluva Skripta Programování v LabVIEW v příkladech jsou určena především pro studenty Technické univerzity v Liberci, případně pro všechny, které popisovaná problematika zajímá. Z mnoha důvodů se nejedná nej dná o vyčerpávající popis problematiky, nezabýváme se speciálními případy použití ani složitějšími návrhy systémů pro řízení, simulaci a zpracování obrazu, zvuku a signálů obecně. Skriptum je určeno především pro studenty Fakulty strojní, Fakulty mechatroniky, informatiky a mezioborových zioborových studií, Textilní fakulty a Ústavu zdravotnických studií st jako jedna z forem podpory výuky předmětů zaměřených na základy programování v LabVIEW (např. předmětů Základy měření, Číslicové měřicí systémy na FMIMS, předmětu Měření elektrických a neelektrických veličin na ÚZS), dále pro studenty využívající program ram LabVIEW pro zpracování signálů, obrazu či simulace (např. ( Počítačové měřicí systémy a zpracování dat pro FS, Experimentální techniky pro FMIMS) a pro studenty všech fakult TUL používající pro zpracování zpraco svých závěrečných prací (bakalářských, magisterských magistersk i doktorských) software LabVIEW pro řízení experimentů a zpracování dat. Osobní zvídavosti nechceme bránit, ale kompletní text není v celé své šíři určen všem studentům, každý z předmětů využívá různě velkou podmnožinu celého textu.
4
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obsah Slovníček některých pojmůů a zkratek ................................................................ ........................................................ 8 Způsoby ovládání programu................................................................................................ ................................ ....................................... 9 Typografické konvence ................................................................................................ ................................ .............................................. 9 Stručně z historie LabVIEW ................................................................................................ ................................ .................................... 10 1.1. Vznik LabVIEW ...................................................................................... ................................ ...................... 10 1.2. Vývoj LabVIEW ...................................................................................... ................................ ...................... 10 2.
Princip vývojového prostředí prostř LabVIEW ................................................................ .......................................... 16 2.1. LabVIEW – nástroj virtuální instrumentace................................ instrumentace............................................... 16 3.
Popis vývojového prostředí LabVIEW ....................................................... ....................... 17
3.1. Spuštění programu LabVIEW ................................................................ .................................. 17 3.1.1. Úvodní obrazovka LabVIEW .............................................................. .............................. 17 3.1.2. Zdroje informací a příklad ................................................................ ................................. 19 3.1.3. Uživatelské rozhraní ................................................................ ......................................... 20 3.2. Čelní panel (Front Panel) ................................................................ ........................................ 22 3.2.1. Obrazovka čelního panelu ................................................................ ................................. 22 3.2.2. Nástrojová lišta čelního panelu.......................................................... .......................... 25 3.2.3. Prvky čelního panelu ................................................................ ........................................ 26 3.3. Blokový diagram (Block Diagram)............................................................ ............................ 27 3.3.1. Obrazovka blokového diagramu ........................................................ ........................ 27 3.3.2. Nástrojová lišta blokového diagramu ................................................. ................................ 29 3.3.3. Prvky blokového diagramu ................................................................ ................................ 31 3.3.4. Ikona a konektor VI ................................................................ ......................................... 32 3.4. Palety ................................................................................................ ................................ .................................... 34 3.4.1. Paleta Tools ................................................................ ..................................................................................... 34 3.4.2. Paleta Controls ................................................................ ................................................ 35 3.4.3. Paleta Functions ................................................................ .............................................. 42 3.5. Vytvoření voření prvního virtuálního přístroje (VI) .............................................. ................................ 51 3.5.1. Úvodní kroky pro vytvoření VI ........................................................... ........................... 51 3.5.2. Vytvoření čelního panelu VI .............................................................. .............................. 52 3.5.3. Vytvoření blokového diagramu VI...................................................... ...................... 53 3.6. Datový tok (Data Flow) ................................................................ .......................................... 57 3.6.1. Jednoduchý VI s datovým tokem ...................................................... ...................... 58 3.6.2. Datové typy spojů ................................................................ ............................................ 60 4.
Programové struktury ................................................................................................ ................................ ....................................... 64 4.1. Smyčka For (For Loop) ................................................................ ..................................... 65 4.2.
Smyčka While Loop ................................................................ .......................................... 69 5
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
4.3.
Posuvný ný registr a zpětnovazební uzel ................................................ ................................ 75
4.3.1. Posuvný registr (Shift Register) ......................................................... ......................... 76 4.3.2. Zpětnovazební uzel (Feedback Node) ................................................ ................................ 79 4.4.
Struktura Case ................................................................ ................................................. 80
4.5.
Změny vlastností prvků ................................................................ .................................... 87
4.5.1. Lokální proměnná ................................................................ ............................................ 87 4.5.2. Property Node ................................................................ ................................................. 88 4.5.3. Invoke Node ................................................................ .................................................................................... 89 4.5.4. Globální proměnné ................................................................ ........................................... 89
5.
4.6.
Struktury Sequence ................................................................ .......................................... 89
4.7.
Struktura uktura Formula Node a MATLAB Script .......................................... ................................ 94
Práce se SubVI ................................................................................................ ................................ ................................................. 98 5.2. Ikona a konektor ................................................................ .................................................................................... 98 5.2.1. Editace tace ikony a konektoru................................................................ konektoru ................................. 98 5.2.2. Přiřazení terminálů ovládacím a zobrazovacím prvkům ......................101 5.3. Vytvoření SubVI ................................................................ ....................................................................................102 5.3.1. Vytvoření voření SubVI z VI ................................................................ .......................................102 5.3.2. Vytvoření SubVI výběrem části jiného VI .......................................... ................................ 103 5.4. Okno hierarchie VI (VI Hierarchy) .......................................................... ..........................106 5.5. Nastavení některých vlastností SubVI (priorita, reentrantnost) .................106
6.
Řetězce, pole a klastry ................................................................................................ ................................ .................................... 109 6.1. Řetězec (String) ................................................................ ....................................................................................109 6.1.1. Příklady klady práce s řetězci ................................................................ ....................................111 6.1.2. Příklady převodu řetězce na jiný datový typ a naopak .......................112 6.2. Pole (Array) .......................................................................................... ................................ ..........................113 6.2.1. Vložení pole do VI ................................................................ ...........................................114 6.2.2. Vícerozměrná pole ................................................................ ..........................................114 6.2.3. Funkce pro práce s polem................................................................ polem ................................115 6.3. Klastr (Cluster)...................................................................................... ................................ ......................116 6.3.1. Příklady klady klastrů ................................................................ ...............................................116 6.3.2. Funkce pro práce s klastrem ............................................................ ............................117
7.
Práce se soubory vstupu/výstupu (File I/O) ................................................................ ................................... 118 7.1. Funkce pro práci se souborem ............................................................... ...............................118 7.2. Příklad zápisu dat do souboru ................................................................ ................................119 7.3. Příklad čtení dat ze souboru ................................................................ ...................................121
8.
Grafické zobrazovače ................................................................................................ ................................ ..................................... 122 8.1. Základní typy grafických zobrazovačů ..................................................... .....................122 6
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
8.1.1. Zobrazovač Waveform Chart ............................................................ ............................123 8.1.2. Zobrazovač Waveform Graph ........................................................... ...........................124 8.1.3. Zobrazovač XY Graph ................................................................ ......................................125 8.2. Volba parametrů grafických zobrazovačů ................................................ ................................ 126 8.3. Export obrázků z grafických zobrazovačů ................................................ ................................ 128 9.
Některé které další funkce LabVIEW ................................................................ ..................................................... 130 9.1. Funkce pro zvuk ................................................................ ....................................................................................130 9.2. Funkce pro zobrazování a grafiku ........................................................... ...........................131
10. Pořizování izování dat (Data Acquision – DAQ) ................................................................ .................................... 135 Závěr................................................................ ................................................................................................ ....................................... 137 Příloha A – Přehled některých ěkterých klávesových zkratek zkra .............................................................. .............................. 138 Literatura ................................................................................................................................ ................................ ................................ 141
7
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Slovníček některých pojmů a zkratek block diagram CPU (Central Processor Unit)
blokový diagram centrální procesorová jednotka
DAQ (Data AcQuisition) DSP (Digital Signal Processing)
zpracování, získávání dat, údajů zpracování číslicových dat
FPGA (Field Programmable Gate Array) front panel GPIB (General Purpose Interface Bus) klastr label LabVIEW (Laboratory Virtual Instruments Engineering Workbench) LV modální pixel SubVI PAC (Programmable Automation
programovatelné logické pole čelní panel druh přístrojové sběrnice (viz např. [12]) z angl. cluster – seskupení, trs popisek laboratorní pracoviště virtuálních přístrojů viz LabVIEW přizpůsobený, podle způsobu z angl. picture element – prvek obrazu podprogram řídicí automat, řídicí systém
Controller) PC (Personal Computer) PLC (Programmable Logic Controller) ŘS USB (Universal Serial Bus) VI (Virtual Instrument) 1D, 2D, 3D
osobní počítač logický automat, řídicí systém řídicí systém druh přístrojové sběrnice (viz např. [12]) virtuální (zdánlivý) přístroj 1-, 2-, 3-rozměrný (-dimenzionální) dimenzionální)
8
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Způsoby ovládání programu klik (kliknutí)
dvojklik kliknutí pravého tlačítka pop-up menu pull-down menu
předpokládá se běžná funkce myši (tzn. pro praváky) krátký stisk levého tlačítka myši v souvislosti s ukázáním kurzoru (šipky, ručky apod.) na zvolený objekt menu apod. dvojitý krátký stisk levého tlačítka myši vyvolání menu při kliknutí na objekt rozbalovací ací (roletové) menu (nabídka) roletové menu (nabídka)
Typografické konvence označení postupu při volbě položek menu nebo přechodu mezi dialogovými okny, Např. postup File»Page Setup»Options navede do rozbalovacího menu File,, dále pak ke zvolení položky Page Setup a na konec k výběru Options v dialogovém okně. tučně označení položky, položky, která musí být vybrána nebo na kterou musí uživatel kliknout – např. položka v menu nebo nabídka v dialogovém okně. Takto jsou také psána jména parametrů, ovládacích prvků a knoflíků na čelním panelu, názvy dialogových oken, sekcí v dialogových oknech, názvy menu a palet. kurzíva označení proměnných, zvýraznění, křížový odkaz nebo úvod k důležitému postupu. Takto je rovněž psán text, který musíme nahradit hodnotou nebo slovem popsaného významu. Takto je psána i poznámka, je-li je li třeba odlišit postup pro starší verzi LabVIEW. monospace tímto neproporcionálním písmem upozorňujeme na text nebo znaky, které se zadávají z klávesnice, části programového kódu a názvy náz disků, cest, složek a souborů. monospace tučně tučný čný neproporcionální text upozorňuje upozor na programem zobrazované zprávy a hlášení . »
9
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Stručně z historie LabVIEW 1.1.Vznik LabVIEW Za vznik programovacího prostředí LabVIEW lze brát rok 1983, kdy firma National instruments (NI) uvedla na trh desku pro rozhraní GPIB. Tuto firmu založili v roce 1976 James Truchard (často označovaný jako Dr. T), Jeffrey Kodosky a William Nowlin, kdy pracovali na aplikacích sonaru pro americké námořnictvo na Texaské univerzitě iverzitě (University of Texas) v Austinu. Dr. T přizval k řešení vhodného připojení testovacího zařízení k minipočítači DEC PDP-11 11 své kolegy a výsledkem jejich společného výzkumu byla myšlenka „virtuální instrumentace“. Za opravdového „otce LabVIEW“ je považován považován Jeffrey (Jeff) Kodosky (obr. 1.1), který započal vývoj grafického vývojového nástroje dovedeného postupně k vysoké míře dokonalosti právě u systému LabVIEW. Výchozím předpokladem byla představa, aby technik, který je schopen zapsat své poznatky a požadavky do blokového diagramu, mohl intuitivně zapsat podobně i program. Vzniklo tak vývojové prostředí (původně pro počítače Apple Macintosh), které místo klasického textového programování umožňuje tvořit programy v grafické interpretaci, intuitivně a samozřejmě amozřejmě tak i rychleji. Program obsahuje různé funkce, reprezentované ikonkami, které lze vzájemně spojovat virtuálními vodiči a výsledky pak vykreslovat např. do grafů. Grafický programovací jazyk, na kterém je založeno LabVIEW, podnítil rozvoj a všeobecné cné rozšíření virtuální instrumentace a zpřístupnil automatizovanou instrumentaci všem technikům.
Obr. 1.1 Jeffrey Kodosky – „otec LabVIEW“ (převzato z www.ni.com) www.ni.com
1.2.Vývoj LabVIEW Na úspěšné cestě systému LabVIEW do laboratoří a vývojových pracovišť se podílela kromě jeho „otce“ J. Kodoskyho a jeho kolegů též řada studentů Texaské univerzity v Austinu a dalších vývojářů. Zde uvedeme jen hlavní body vývoje na časové ose:
10
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
1976 •
•
trojice talentovaných podnikatelů z Austinu James Truchard, Jeff Kodosky a Bill Nowlin se rozhodla odstartovat revoluci v oblasti využití počítače pro měření a zakládá značku National Instruments (NI), v garáži J. Trucharda (pozdějšího prezidenta firmy NI) v Austinu začínají práce pr na prvním výrobku.
1977 • •
NI oznamuje svůj první výrobek pro využití počítače s rozhraním GPIB pro vědeckou instrumentaci, vedení firmy NI se stěhuje z garáže do kanceláře s plochou 28 m2,
1979 •
James Truchard se stává zaměstnancem firmy NI na plný úvazek. úvaze
1980 • • •
Jeff Kodosky se stává zaměstnancem firmy NI na plný úvazek, navržena první verze loga firmy NI s orlem, centrála firmy se stěhuje do budovy s plochou 465 m2.
1982 •
centrála firmy se stěhuje do nově postavené budovy s plochou téměř 1000 m2.
1983 • •
NI oznamuje uvedení prvního zařízení pro použití s PC, Jeff Kodosky začíná pracovat na LabVIEW.
1986 • •
NI oznamuje uvedení grafického vývojového prostředí LabVIEW, NI zaměstnává stého zaměstnance.
1987 • •
NI uvádí na trh LabWindows Version 1.0 for DOS, NI uvádí na trh první zařízení typu plug-in plug in data acquisition (DAQ) pro počítače Apple Macintosh.
1988 •
NI oznamuje uvedení prvních výrobků pro VXI a MXI 11
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
•
NI oznamuje své první karty „plug-in „plug in DAQ“ pro počítače IBM PC.
1990 • •
NI uvádí na trh LabVIEW Version 2.0 a LabWindows LabWindows Version 2.0, centrála firmy se stěhuje do zařízení o rozloze 12 650 m2.
1992 •
NI oznamuje uvedení LabVIEW for Windows pro PC a UNIX Workstation.
1993 •
NI uvedla na trh LabWindows/CVI
1994 • •
NI se rozhodla pro stavbu firemního kampusu o rozloze 72 akrů (asi 28 ha) v Austinu, NI spouští provoz svých webových stránek www.natinst.com jako přirozeného rozšíření svého obchodního modelu a informačního zdroje pro inženýry a vědce.
1995 •
NI dokončuje stavbu budovy A plánovaného kampusu o rozloze 13 000 m2.
1996 • • •
programový produkt Lookout se začíná prosazovat automatizaci s použitím počítačů PC, Programový modul BridgeVIEW pro komunikaci v síti zvyšuje výkon LabVIEW v průmyslové automatizaci, NI oznamuje uvedení produktů pro pro zpracování obrazu.
1997 • • •
PXI se stává otevřeným standardem v oblasti modulárních průmyslových automatizačních aplikací založených na počítačových systémech, NI si osvojuje produkty pro řízení pohybu, produkt FieldPoint získává uplatnění v aplikacích sběru dat v náročných průmyslových prostředích.
1998 • •
NI dokončuje stavbu budovy B kampusu s rozlohou téměř 22 000 m2, NI uvádí LabVIEW Version 5.0.
12
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
1999 • • •
NI uvádí na trh produkt MXI-3 MXI 3 pro oblast řízení pomocí systémů PXI/CompactPCI, pro stabilní ní a spolehlivé aplikace náročných průmyslových podmínkách se používá LabVIEW Real-Time Real Module, NI mění jméno svých webových stránek na www.ni.com.
2000 • • •
NI uvádí Measurement Studio, integrovaný nástroj pro Microsoft Visual C++, Visual Basic a uživatele LabWindows/CVI, otevřena pobočka NI pro Českou republiku a Slovenskou republiku, NI začíná stavět budovu C svého kampusu o rozloze více než 34 400 m2.
2001 • •
NI uvádí na trh 18-pozicové pozicové zařízení PXI pro měřicí a automatizační aplikace, NI uvádí své první výrobky PXI pro přesné zvukové a vibrační měření.
2002 • • •
NI začíná prodávat produkt Compact FieldPoint jako platformu pro malé, náročné a inteligentní aplikace LabVIEW v průmyslovém prostředí, NI otevírá svůj výrobní závod v Maďarsku, NI uvádí LabVIEW 6.1.
2003 • •
po čtyřletém úsilí NI uvádí LabVIEW 7 Express s významným zjednodušením tvorby aplikací, NI oznamuje uvedení Compact Vision System, průmyslového systému pro zpracování obrazu.
2004 • • • • •
NI oznamuje uvedení LabVIEW 7.1, NII oznamuje uvedení systému CompactRIO, nové platformy pro řízení založené na technologii rekonfigurovatelných vstupů/výstupů (RIO), NI oznamuje uvedení produktu SignalExpress, interaktivního programového prostředí pro sběr, měření a zpracování signálů, NI rozšiřuje řadu produktů pro zpracování dat (data acquisition – DAQ) označovanou jako M Series, NI rozšiřuje výrobkovou řadu modulárních prvků PXI o digitizér s rychlostí 200 MS/s a generátor používající novou architekturu.
13
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
2005 • •
NI uvádí na trh nové karty využívající sběrnici PCI Express, NI uvádí novou verzi LabVIEW 8.
2006 • • •
NI uvádí na trh nový malý a levný modulární systém CompactDAQ, NI nabízí Measurement Studio 8 pro vytváření webových k vzdálenému monitorování a řízení aplikací, NI slaví 30 let společnosti a 20 let uvedení systému LabVIEW.
stránek
2007 •
NI představuje novou verzi grafického vývojového prostředí LabVIEW 8.5, která obsahuje nový modul LabVIEW Statechart (stavové grafy), vylepšené nástroje v modulu LabVIEW FPGA a unikátní vylepšení v oblasti programování v reálném čase a pro využití vícejádrových procesorů.
2008 •
NI představuje ředstavuje novou verzi grafického vývojového prostředí LabVIEW 8.6 s dalším vylepšením.
2009 •
na trh uvedena další verze grafického vývojového prostředí LabVIEW 2009, od tohoto roku jsou verze ze číslovány rokem uvedení.
2011 •
v roce 25. výročí uvedení první verze je uvedena na trh nová verze LabVIEW 2011
2014 •
v srpnu uvedena (zatím) poslední verze LabVIEW 2014.
Programové vybavení LabVIEW je velkým hráčem v oblasti testování testov a měření, průmyslové automatizace a analýzy dat. Důkazem pro to může být např. (podle [L0]) skutečnost, že vědci z NASA Jet Propulsion Laboratory použili právě LabVIEW pro analýzu a zobrazení dat (teploty, polohy, polohy, stavu baterií a monitorování celkového stavu) z terénního vozítka Mars Pathfinder Sojourner jezdícího po povrchu planety Mars.
14
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Lze očekávat, že nadčasový grafický způsob programování bude v dalších generacích dále rozvíjen. Ukazuje se totiž, že platforma LabVIEW1, přirozeně vhodná pro návrh vícevláknových ícevláknových paralelních aplikací, usnadňuje vývoj aplikací pro procesory s více jádry, stejně jako aplikací založených na FPGA, a to díky svému intuitivnímu způsobu zápisu paralelních datových toků. Dále bude rozvíjen způsob grafické technologie pro zlepšení šení reprezentace komponent aplikace a jejich spojení a pro vylepšení podpory v případě více cílových systémů. Dalšímu vývoji bude podroben i modul LabVIEW System Diagram, aby uživatelé měli možnost používat LabVIEW jako „spustitelnou tabuli“ s různými stupni stupni abstrakce a specifikovat tak chování i konfiguraci. Na konferenci NI Week zazněla z úst otce LabVIEW Jeffa Kodoskyho vizionářská slova: „Svět je paralelní. Vždycky děláme více věcí současně, jako například chůze a žvýkání žvýkačky. Tak proč se omezujeme omezujeme na sekvenční myšlení při psaní počítačových programů? Zatímco se zbytek odvětví potýká se zaváděním strojů s procesory s více jádry, vy, programátoři v LabVIEW, můžete prostě pokračovat v tom, co jste dělali vždy, a užívat si tak výhod systémů s více jádry.“ já
1
www.ni.com/labview
15
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
2. Princip rincip vývojového prostředí LabVIEW 2.1.LabVIEW – nástroj virtuální instrumentace Programovací a vývojové prostředí LabVIEW (z angl. Laboratory Virtual Instruments Engineering Workbench) čili „laboratorní pracoviště virtuálních přístrojů“, strojů“, někdy též LV, je produktem americké firmy National Instruments (NI), která je průkopníkem a v současné době největším výrobcem v oblasti virtuální instrumentace, technické disciplíny, která zažívá veliký rozvoj v oblasti vývoje, výzkumu, zkumu, školství a průmyslu. Prostředí LabVIEW, někdy nazývané též jako G-jazyk G jazyk (tedy „grafický“ jazyk), je vhodné nejen k programování systémů pro měření a analýzu signálů, řízení a vizualizaci technologických procesů různé složitosti, ale také k programování složitých systémů, jako je třeba robot. V poslední době je doplňováno dalšími moduly ovládajícími biomedicínskou techniku a další velmi specializovaná zařízení v oblasti kamerových systémů a řízení náročných experimentů celosvětového významu (např. CERN ERN apod.) S určitou nadsázkou lze říci, že prostředí LabVIEW nemá omezení své použitelnosti. Hlavním cílem virtuální instrumentace je nahradit dočasně nebo i trvale prostorově, finančně a mnohdy i časově náročné využití technických prostředků (hardware) řešením virtuálním (zdánlivým) za přispění programových prostředků (software) a zejména pak využitím nadstandardně řešenými grafickými a vizuálními prostředky zprostředkovat konečnému uživateli maximální názornost a přehlednost celého procesu. Toto řešení umožňuje rychlé navrhování nových aplikací i provádění specifických změn v konfiguraci pouhou změnou programu se mění celý proces (řízení, regulace, měření apod.), apod.), což je u realizace skutečnými nástroji za pomoci reálných součástek často velice nákladné nebo n přímo nemožné. Pojem virtuální instrumentace se promítnul i do označení souborů, resp. programů, se kterými budeme v LabVIEW pracovat a které se nazývají virtuální instrumenty (přístroje), ve zkratce VI. Toto označení se objevuje rovněž v příponě souboru, soub resp. programu – např. First_program.vi. First_program.vi V dalším textu budeme používat často pojmy VI, soubor a program (příp. aplikace) pro popis téhož.
16
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
3. Popis vývojového prostředí LabVIEW V této kapitole je popsán postup spuštění programu LabVIEW, popis základních částí vývojového prostředí a seznámení se základnímu prvky, které tvoří výsledný program (virtuální přístroj).
3.1.Spuštění uštění programu LabVIEW 3.1.1. Úvodní obrazovka LabVIEW Po spuštění programu LabVIEW se zobrazí úvodní obrazovka Getting Started s navigačními dialogovými okny pro práci se soubory a pro hledání dalších informací informac a zdrojů pro práci (viz obr. 3.1). 3 Tato obrazovka zmizí, jakmile z ní přejdeme na další funkci nebo se otevře další okno. Do úvodní obrazovky se vždy vrátíme po zavření všech ech upravovaných programů. Úvodní obrazovku lze v případě potřeby otevřít také volbou View»Getting Started Window. Window
Obr. 3.1 3 Úvodní obrazovka LabVIEW 13 SP1
Poznámka: Úvodní obrazovka starší verze LabVIEW 11 SP1 je jednodušší (viz obr. 3.2). Nyní si popíšeme základní části úvodní obrazovky LabVIEW podle obr. 2.1. V pravém okně Open Existing je seznam naposled otevřených projektů VI, pokud chceme upravovat či pokračovat v tvorbě nějakého z nich, lze ho jednoduše vybrat. Volbou v pull-down down menu Show lze e tyto projekty vyselektovat podle jejich typu a zobrazit jen požadovaný typ. Kliknutím na Open existing se otevře standardní okno 17
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
výběru souboru pro Windows, na které je každý uživatel PC zvyklý. Tímto způsobem lze dohledat soubor, který nebyl na používaném používaném PC nikdy zpracováván.
Obr. 3.2 3 Úvodní obrazovka LabVIEW 11 SP1 Levé okno Create Project nabízí otevření nového objektu. Na výběr je z prostého programu Blank VI,, prázdného projektu Blank Project nebo je možno zvolit některou z nabízených šablon či vzorových programů pro různé typy zařízení společnosti National Instrument. Všechny jednou zvolené objekty se jako předvýběr objevují v okně pod volbou kompletního výběru (obdobně jako programy v pravém okně). Spodní část úvodní obrazovky nabízí dále volbu Find Drivers and Add-ons, Add která otevře další okno s výběrem, zda chcete chcete najít a instalovat ovládací prvky pro zařízení – Find NI Device Drivers, Drivers, nebo použít implementovaný vyhledávač ovladače pro instalaci připojeného reálného zařízení – Connect to Insruments a nebo vyhledat a instalovat doplňky k rozšíření funkcionality LabVIEW – Find LabVIEW adds-ons. adds Druhou volbou je Community and Support, Support, který umožňuje vstup na komunitní diskusní fórum nebo vstup na stránky s nabídkami spolupráce při řešení problémů probl anebo možnost zaslání dotazu technické podpoře NI. Poslední možností je Welcome to LabVIEW,, kde najdete jednoduché výukové nápovědy a přehled, co je nového v ovládání LV13 oproti verzi předešlé (LV12).
18
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Poznámka: Rozložení úvodní obrazovky starší verze LabVIEW 11 SP1 je graficky jiné, ale obsah je téměř identický. V levé světlejší části se nachází volba nového objektu – New - Blak VI, Empty Project, Project VI from Template a výběr More nebo otevření již existujícího programu Open, Open kde je zobrazen seznam naposledy edy používaných programů, seznam je doplněn volbou Brose... Pravá tmavší část obsahuje všechny ostatní volby: Latest from ni.com – LabVIEW News, LabVIEW in Action, Action Example programs, Trainig Resources; Resources Online Support – Discussion Forum, Forum Code Shaling, KnowledgeBase geBase, Request Support; Hepl – Getting Started with LabVIEW, List od All New Featueres. Featueres. Posledními položkami úvodní obrazovky jsou vyhledávače Find Examples, Find Instruments Drivers a Find LabVIEW Add-ons. Úvodní obrazovka LabVIEW je (podobně jako všechny další obrazovky kromě navigačních oken) vybavena ještě „klasickým“ základním menu (File, Operate, Tools, Help)) na horní liště, což umožňuje pracovat s programem i uživatelům zvyklým na prostředí starších verzí ve a jsou zde zpřístupněny nejběžnější operace a příkazy společné pro všechna okna příslušející pogramu.
3.1.2. Zdroje informací a příklad Významná pozornost v prostředí programu LabVIEW je věnována pomoci uživatelům a programátorům. Tato skutečnost má velkou velkou přednost zejména v situaci, kdy programátor hledá pro svůj problém určitý způsob řešení pomocí prostředků a možností LabVIEW. Lab VIEW nám dává dvě možnosti hledání příkladů. Oproti O starším verzím (viz obr. 3.2.) .2.) v současné době již není na úvodní obrazovce obrazo přímý odkaz do archivu vzorových příkladů. příkladů. Do verze LV9 byl odkaz nasměrován do archivu příkladů v našem počítači, do verze LV12 pak byl nasměrován do internetového arcivu příkladů na stránkách
. Archiv příkladů je součástí i LabVIEW 13. Pro jeho vyvolání použijeme oužijeme volbu Help na horní liště úvodní stránky. Otevře se pull-down pull down menu ve kterém vybereme položku Find Examples. V nově otevřeném okně NI Find Examples můžeme vyhledat příklady, které jsou uloženy v našem počítači offline – níže bude uveden uv příklad, ale můžeme přejít i na stránku volbou Visit ni.com for more examples, examples která erá nám otevře stránku na obr. 3.3. 3 Na tuto stránku se dá přejít i volbou v Community and Support » NI Discusion Forum, která otevře webovou stránku s otevřeným fórem. rem. Klikem na výběr Komunita (skutečně v českém jazyce, pokud jste připojeni k internetu v ČR) se zobrazí podokno s výběrem, kde zvolíte zvol poslední položku Procházet všechny komunitní zdroje. zdroje V části Ask je volba Find an Example Program,, která vás přesměruje přesměruj na stránku s příklady (viz obr. 3.3). Při hledání příkladu doporučujeme nechat jako volbu jazyka English/čeština. Vyhledávat se dá podle mnoha parametrů. Vraťme se ještě příkladem říkladem k vyhledávání offline příkladů v okně NI Find Examples. Vyhledávat lze buď podle typu úlohy (Task)) nebo podle adresářové struktury (Directory Structure). ). Zvolíme tedy způsob vyhledávání podle typu úlohy (Task) ( a 19
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
budeme hledat třeba úlohu generování časového průběhu funkce. funkce Zvolíme tedy složku Analyzing and Processing ocessing Signals. Signals. V rozbalené podsložce vybereme další podložku Signal and Noise Generation a v ní potom soubor s příkladem řešení Function Waveform with FM.vi. FM Ukážeme-lili na zvolený soubor, v okně Information se zobrazí stručná chrakteristika vybraneného souboru VI a v okně Requirements případné požadavky na jeho použití. Pokud některé příklady otevíráme častěji nebo je příklad zajímavý, je možné uložit si ho do oblíbených Add to Favorites,, čímž odpadne jejich vyhledávání ve struktuře. Vybraný program otevřeme dvojklikem levým tlačítkem myši. myši
Poznámka: U starších verzí LV (do verze LV9) LV9 byl odkaz z úvodní stránky veden do této složky příkladů.
Obr. 3.3 3 Webová stránka s příklady < http://search.ni.com/nisearch/app/main/p/ap/tech/lang/cs/pg/1/sn/catnav:ex/ http://search.ni.com/nisearch/app/main/p/ap/tech/lang/cs/pg/1/sn/catnav:ex/…>
3.1.3. Uživatelské rozhraní Uživatelské rozhraní programu v LabVIEW mívá obvykle podobu čelního ovládacího panelu určitého měřicího přístroje. To je také jeden z důvodů, proč se program v LabVIEW nazývá pojmem zdánlivý (virtuální) přístroj – VI (Virtual Virtual Instrument). Nyní již víme z příkladu v předchozí kapitole, že každé ka VI se e skládá ze dvou sdružených (asociovaných) oken: z uživatelského rozhraní, kterému se v terminologii LabVIEW říká čelní panel (angl. Front Panel), a z blokového diagramu (angl. Block Diagram), který je zdrojovým kódem VI. Při otevření konkrétního programu z archivu příkladů nebo vlastního programu se nám vždy otevře pouze čelní panel (Front Front Panel). Panel Block Diagram otevřeme volbou Window » Show Block Diagram nebo klávesovou zkratkou Ctrl+E.. Tato klávesová zkratka slouží i pro přepínání aktivního okna mezi 20
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Frontt Panelem a Block Diagramem. Zavřít (klikem na křížek v pravém horním rohu) rohu lze pouze Block Diagram, zavřením čelního panelu (Front Panelu) se uzavře celý program – způsoby ukládání a zavírání budou popsány dále Programování nového VI můžeme zahájit po spuštění spuštění LabVIEW a zobrazení zob úvodní obrazovky z obr. 3.1 .1 například volbou Blank VI (v základním menu File»New VI, příp. po stisku Ctrl+N nebo volbou Blank VI v levém okně Create Project). Project Objeví se prázdný čelní panel (Front Panel) a prázdný blokový diagram (Block Diagram) s prozatímním názvem Untitled1. Pokud otevřeme vybraný program z archivu uvedený výše,, zobrazí se nám čelní panel (Front Panel) vybraného programu Function Waveform with wi FM.vi (viz obr. 3.4). Na Čelním panelu jsou 3 záložky – Introduction obsahuje návod k ovládání, Input Signals obsahuje grafické zobrazení vstupních signálů a FM Modulated Signal zobrazuje grafy výstupní simulace. Tlačítkem Run na horní liště (jednoduchá šipka) nyní můžeme program spustit, případně tlačítkem STOP v pravém dolním rohu můžeme program zastavit. Nedoporučujeme pro vypínání programů používat tlačítko Abort Execution na horní liště, toto tlačítko používejte jen při nejvyšší nej nouzi, způsobí totiž ukončení programu bez korektního uzavření všech programovacích struktur. Především u externích připojených zařízení pak zůstávají některé vstupy a výstupy ve stavech, které nejsou žádané (spuštěné sirény, zapnuté ohřevy atp.).
Obr. 3.3 Čelní elní panel programu Function Waveform with FM.vi FM Po spuštění programu vidíme, že program začne vykonávat svoji činnost – v okénku Waveform (to je zobrazovací okénko podobné obrazovce osciloskopu na druhé a třetí 21
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
záložce))) se rozeběhne zobrazování zobrazování generovaného průběhu signálu (pro výchozí nastavení to je sinusovka). V levé části čelního panelu můžeme vstupní signály měnit. Nyní můžeme současným stisknutím tlačítek Ctrl+E přejít na zobrazení druhé obrazovky – blokového diagramu programu, který zobrazuje zobrazuje obsah aplikace v kódu LabVIEW. Blokový diagram programu Function Waveform with FM.vi FM je znázorněn na obr. 3.5 .5 (v pozadí je patrný asociovaný čelní panel nám již známý z obr. 3.4).
Obr. 3.5 .5 Blokový diagram programu Function Waveform with FM.vi FM (v popředí) ředí)
Poznámka: V Příloze A je uveden souhrn klávesových zkratek používaných při programování v prostředí LabVIEW pro urychlení práce.
3.2.Čelní panel (Front Panel) 3.2.1. Obrazovka čelního panelu Čelní panel tvoří uživatelské rozhraní zvolené aplikace a určuje její vzhled a chování. Přes jeho objekty (ovládací a indikační prvky) lze řídit běh aplikace, zadávat parametry a získávat informace o zpracovaných výsledcích. výsled Veškeré objekty je možné libovolně měnit a upravovat, programově nastavovat, automatick automaticky přizpůsobovat velikosti obrazovky po kliknutí pravého tlačítka myši v menu prvku (vyvoláme ho klikem pravého tlačítka myši) volbou položky Scale Object With Pane, Pane resp. nastavovat velikost obrazovky v závislosti na rozlišení (File ( » VI Properties » Category - Window Size). Size V tomto menu se dá i nastavit přizpůsobení všech objektů, ale pouze u jednovrstvých čelních panelů. Možné jsou samozřejmě i další volby. 22
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Na ploše lze pracovat jak s vlastními prvky, tak (a to zejména zpočátku) s poměrně širokou škálou álou prvků, které jsou součástí samotného vývojového prostředí. Vizuální prvky se dělí z funkčního hlediska na základní skupiny - vstupy (Input), výstupy (Output) a tlačítka (Button). Vstupy a výstupy mohou být textové, v podobě proužkového diagramu (progressbar) (progressbar) či například mohou mít vzhled otočného knoflíku (u vstupu) nebo ručičkového ukazatele (u výstupu). Za zmínku také stojí jednoduše nastavitelné zobrazení posloupností výstupních hodnot v podobě různých grafů,, kterým je věnována samostatná podkapitola. podkapitol Tlačítka mají ve vývojovém prostředí LabVIEW mnoho různých podob. Celé prostředí tedy umožňuje tvořit uživatelsky velmi příjemné aplikace. V režimu běhu programu je možné jednotlivá tlačítka ovládat, nastavovat vstupní hodnoty aplikace a sledovat výstupy py virtuálního přístroje. Na čelní panel lze importovat grafické objekty z jiných aplikací pro použití jako pozadí, vzhled jednotlivých prvků apod. Je možné též použít menu Edit»Import Picture to Clipboard.. Vytvoření volného místa mezi určitými prvky se provádí p stisknutím klávesy Ctrl a označením prostoru levým tlačítkem myši. To je vhodné v případě, kdy nechceme přesouvat každý prvek samostatně. Dále je možné vkládat (po úvodním dvojkliku na vhodném prázdném místě) volný text, měnit jeho font apod. Při vložení ložení prvku na čelní panel se u něho objeví popisek (Label), ), který slouží k jeho pojmenování. Doporučuje se vždy objekty pojmenovávat, protože tímto jménem je prvek zastoupen rovněžž v blokovém diagramu a při práci s proměnnými. Rozměry většiny objektů lze lze měnit nástrojem šipky. Stisknutím tlačítka a tažením se změní rozměr v požadovaném směru. Pomocí klávesy Shift lze měnit rozměry proporcionálně v obou směrech. Tento styl ovládání velikosti každý jistě zná z běžné práce s okny ve Windows. Na obrazovce čelního elního panelu tedy uživatel vytváří vnější vzhled aplikace – umisťuje ovládací prvky, definuje jejich polohu, chování i vzhled. Konkrétní prvek pro čelní panel se vybírá z nabídky palety Controls po kliknutí levého tlačítka myši. Na obr. 3.6 .6 je zobrazen čelní če panel nového VI (s výchozím názvem Untitled 1) s otevřenou paletou Controls s prvky pro vstup, výstup či další zpracování nebo zobrazení. Po najetí kurzoru na okénko malou šipkou v pravém horním rohu lze přejít do palety podrobnější nabídky (zde je rozvinuta rozvinuta nabídka u okénka Express). Na zvolený prvek klikneme levým tlačítkem myši, čímž se nám šipka kurzoru změní v ručičku. Kurzor (ručičku) pohybem myš přesuneme na požadované místo umístění objektu a opětovným klikem levým tlačítkem myši objekt umístíme na čelní panel. Jak již bylo uvedeno výše, klikem pravého tlačítka myši se otevře menu prvku, které umožňuje jeho nastavení podle požadavků programátora nebo klienta. V zobrazeném
23
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 3.6 .6 Čelní Č panel s otevřenou knihovnou Controls Menu jsou sdruženy často používané volby urychlující volbu dalších prvků nebo záměnu prvku za jiný, pokud jsme si volbu rozmysleli. Obdobně lze vstupní základní prvky změnit na výstupní a naopak a využít tak ve větší šíři design připravených prvků. Součástíí menu prvku jsou i nejčastěji měněné vlastnosti prvku. Pokud chceme všechny vlastnosti zobrazit najednou nebo změnit vlastnost, která není v menu prvku uvedena, zvolíme Properties. Properties Zde můžeme v jednotlivých záložkách měnit velikost prvku přesně definovaným m rozměrem, rozměre zvolit barvu prvku či písma, písma ke grafickému zobrazovači (např. teploměru nebo nádrži) přidružit numerickou hodnotu, měnit nastavení datového typu,, limity vstupů hodnot (to je vhodné především při p číselných vstupů) a lze i nastavit co se provede při překročení těchto limitů. Pokud se u nabídky menu šipka, rozbalí se při najetí myši na tuto položku další menu. Na obr. 3.7 .7 a) je menu pro numerický vstup (control) „Knob“, „Knob“, na obr. 3.7 3 b) je menu pro světelnou indikaci výstupu typu Boolean. V tomto menu u je šedá nabídka Machanical Action,, ta je aktivní u vstupů tohoto typu, kterými jsou nejčastěji tlačítka, a definuje se jí jeho funkce. Druhá položka v obou menu Find slouží k nalezení příslušného prvku v Blokovém diagramu a to buď přímo základní prvek – Find Terminal nebo i lokální proměnné či předefinované vlastnosti tohoto prvku. prvku Program se přepne do Blokového diagramu a obrysy prvku se černě rozblikají. Tuto možnost oceníte v případě, řípadě, kdy budete dohledávat prvek v rozsáhlejším programu. programu 24
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Vhodnou volbou ovládacích, zobrazovacích a dalších prvků na čelním panelu lze vytvořit uživatelsky příjemnou a přehlednou aplikaci (tj. VI). V režimu běhu programu (po spuštění VI) je možné aplikaci ovládat, nastavovat hodnoty parametrů a sledovat výstupy VI. V programu lze také nastavit změny viditelnosti či polohy některých ovládacích prvků např. podle parametrů výstupů.
a)
b)
Obr. 3.7 .7 Menu pro typ a) Numeric ; b) Boolean 3.2.2. Nástrojová lišta čelního panelu Hlavní prvky pro ovládání a indikaci stavu čelního panelu panelu se nacházejí na nástrojové liště – viz obr. 3.8.. Všechny prvky mají funkci tlačítka a současně indikátoru pro zobrazení zvoleného stavu. Z nástrojové lišty lze spustit program VI stiskem tlačítka Run (šipka). Tím se spustí jeden cyklus programu. Pokud máme v úmyslu odzkoušet nepřetržitý běh programu, stiskneme tlačítko Run Continously (dvě šipky ve smyčce). Obrazec příslušného tlačítka se po přechodu do zvoleného stavu změní.
Obr. 3.8 Nástrojová lišta čelního panelu
25
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Vykonávání programu lze pozastavit stiskem tlačítka Pause (tlačítko změní barvu na dva červené proužky), dalším stiskem tlačítka lze program znovu spustit (Continue). ( Je-lili program spuštěn, zvýrazní se tlačítko Abort Execution. Stiskem tohoto tlačítka se program zastaví,, dojte však k tzv. „tvrdému“ stopu, kde nejsou korektně uzavřeny prováděné smyčky a komunikační protokoly, jak již bylo uvedeno u příkladu z archivu. Indikační ndikační prvky se při tomto ukončení nastaví staví do výchozího stavu. stav Je-li v programu syntaktická chyba (chyba v kompilaci), změní se obrazec tlačítka Run do stavu Broken Run (přerušená šipka) a není tak umožněno program s chybou spustit. Stiskem levého tlačítka se zobrazí obrazovka Error list s popisem chyby a stiskem tlačítka Show Error se nám zvýrazní chyba v blokovém diagramu. V další části lišty se nachází tlačítko lačítko pro nastavení velikosti a tvaru zobrazovaného textu v popisu prvků čelního panelu. Stiskem velké plochy tlačítka lze volit velikost a typ písma, stiskem malé šipky vpravo přejdeme do roletového menu, v němž lze volit další funkce pro změnu parametrů textu. Další čtyři tlačítka jsou určena pro práci s objekty umístěnými na čelním panelu obdobně jako v grafických programech. programech Najdeme zde zarovnání doleva, doprava, na střed a tlačítko pro změnu vrstvy umístění grafického prvku. Zcela vpravo se nachází tlačítko pro spuštění kontextové nápovědy (Help). Po stisku tohoto tlačítka se zobrazí okno Context Help s informacemi o objektu LabVIEW, se kterým zrovna pracujeme (na který právě ukazuje šipka kurzoru). Dalším stiskem tlačítka se okno nápovědy zavře. 3.2.3. Prvky čelního panelu Čelní panel je tvořen grafickými objekty, objekty, které jsou určeny pro řízení a ovládání VI a pro indikaci výstupů.. Jedná se tedy o ovládací a zobrazovací prvky. Ovládací prvky představují vstupní zařízení, podobně jako na skutečném přístroji nalezneme knoflíky, přepínače či tlačítka a jiná zařízení umožňující zadávat data a informace do programu. Zobrazovací prvky zase realizují výstupní zařízení pro přenos dat a informací z programu na čelní panel. Ovládací a zobrazovací prvky se na čelní panel umisťují výběrem v paletě knihovních prvků Controls a přetažením konkrétního prvku na plochu čelního panelu. Paletu Controls zobrazíme kliknutím pravého tlačítka myši na ploše čelního panelu, panelu prvek vybereme z příslušné nabídky kliknutím levého tlačítka myši na prvek a přetažením na plochu (kurzor ve tvaru šipky šipky se změní na ručku), kde jej umístíme. Velikost, Velikost vlastnosti a polohu prvku můžeme nyní měnit způsobem, který již byl popsán výše. Základní skupiny obsahu palety Controls jsou popsány v kapitole 3.6.2.
26
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
3.3. Blokový diagram (Block Diagram) 3.3.1. Obrazovka blokového blo diagramu Okno blokového diagramu je druhým sdruženým oknem každé aplikace. V okně blokového diagramu se definuje posloupnost vyhodnocení jednotlivých složek programu – samotný algoritmus programu, jejich propojení a parametry. Každá komponenta obsahuje huje vstupní a/nebo a výstupní připojovací body. Jednotlivé připojovací body lze propojit s prvky na panelu pomocí propojovacího nástroje (wiring tool). Připojovací body každého prvku se zobrazí po najetí myši na jeho tělo obdobně jako reaguje Context Con Help.. Pokud ho máme otevřený, zobrazí se v nápovědě, definice propojovacích bodů včetně případných přednastavených hodnot a/nebo jednotek. Přednastavení se používá u většiny složitějších prvků a jednotky u prvků s definicí veličiny (čas, frekvence, napětí atp.). atp. Typ proměnné, která je na připojovacím bodě očekávána (připojovacím bodem vysílána dál) je definována barvou bodu. Přehled typů proměnných, proměnných, které definuje barva a síla (typ) spoje mezi propojovacími body je zobrazen na obr. 3.9. Každý prvek umístěný na čelním panelu má svůj obraz na obrazovce v blokovém diagramu označený stejným jménem (Label)
skalár
1D pole
2D pole
Obr. 3.9 3 Značení typů proměnných silou čar (modrá – celé číslo, oranžová – desetinné číslo) Mezi zobrazením oken čelního panelu (Front Panel) a blokového diagramu (Block Diagram) lze přecházet např. stiskem Ctrl+E. Na obrazovce blokového diagramu uživatel definuje vlastní algoritmus programu, tedy propojení prvků z čelního panelu pane s parametry a strukturami. Na obr. 3.10 je zobrazeno blokový diagramu nového VI (opět s názvem Untitled 1) s otevřenou paletou Functions,, která obsahuje nástroje pro práci se vstupními parametry čelního panelu, simulační struktury, komunikační prvky, programové ogramové struktury a další zpracování vstupů a zobrazení výstupů.
27
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 3.10 Blokový diagram s otevřenou enou knihovnou Functions Po najetí kurzoru na okénko malou šipkou v pravém horním rohu lze přejít do palety podrobnější nabídky (zde je např. rozvinuta nabídka u okénka Express). Express Prvek si vybereme kliknutím knutím myši a potom ho umístíme na ploše čelního panelu. Každý prvek blokového diagramu agramu má nadefinovány vstupní a výstupní připojovací body. Tyto body lze propojit s dalšími prvky pomocí propojovacího nástroje (wiring tool), tedy propojovacího vodiče. Myš ve fázi propojování mění svou podobu na špulku drátu. Kliknutím pravým tlačítkem myči se zobrazí menu nastavení kontaktního bodu, kliknutím levého tlačítka myši začne propojování. Ukončení se provede opětovným kliknutím levým tlačítkem na další připojovací bod stejného typu. Blokový diagram agram se vytváří z následujících prvků: • z vytvořených Terminálů vstupních a výstupních prvků čelního panelu (viz předchozí podkapitola), • z prvků palety knihovních prvků Functions, • z konstant zadaných z knihovny Functions, • z vytvořených globální či lokální proměnnou v módu pro čtení či zápis k již vytvořeným ořeným terminálům, terminálům • z odkazů na vlastnosti Terminálů a dalších prvků - Property Notes. Propojení mezi objektem čelního panelu a jeho terminálem v blokovém diagramu lze zjistit poklepáním na terminál, nebo vybráním položky Find Terminal/Indicator/Control z jeho menu. 28
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
3.3.2. Nástrojová lišta blokového diagramu Hlavní prvky pro ovládání a indikaci stavu blokového diagramu se nacházejí v nástrojové liště – viz obr. 3.11. 3.1 . Obdobně jako u nástrojové lišty čelního panelu mají všechny prvky funkci tlačítka a současně indikátoru pro zobrazení zvoleného stavu. Většina tlačítek nástrojové lišty blokového diagramu má shodnou funkci s tlačítky nástrojové lišty čelního panelu (Run, ( Run Continously,, Pause a Abort Execution, tlačítko pro nastavení velikosti a tvaru zobrazovaného textu v popisu prvků, čtyři tlačítka pro práci s objekty a tlačítko pro spuštění kontextové nápovědy). Shodné je i jejich chování a změny jejich tvaru. Oproti čelnímu panelu je zde ještě pro práci s objekty jekty doplněno tlačítko Clean Up Diagram,, které optimalizuje rozložení objektů v blokovém diagramu. Je zde předdefinované řazení prvků podle toku dat z leva doprava, proto doporučujeme používat toto tlačítko s rozvahou. Rozdíl je v účinnosti pouze pro blokový diagram. V nástrojové liště blokového diagramu se se nachází pět dalších tlačítek
Obr. 3..11 Nástrojová lišta blokového diagramu Tato tlačítka jsou určena pro pomoc při ladění programu (debugging). Při odlaďování programů v LabVIEW lze využít možnosti možnosti ladění „krok po kroku“, resp. uzel po uzlu (node to node). Uzlem je chápán základní výkonný prvek, jako je funkce, unkce, struktura (smyčka apod.) nebo SubVI Stiskem tlačítka se symbolem žárovky (Highlight (Highlight Execution) Execution se při běhu programu zobrazí datový tok (data (d flow) v blokovém diagramu. Po stisku tlačítka se symbol pohaslé žárovičky změní na rozsvícenou žárovičku. Běh programu se sice zpomalí, avšak programátor může po spuštění programu sledovat tok dat a jejich okamžitou hodnotu. Všechny objekty zmatní a jen provedené se zvýrazněn ýraznění, okamžité hodnoty jsou znázorněny na odpovídajících výstupech; jednotlivé datové cesty signálu jsou znázorněny pohybujícími se kuličkami v barvě odpovídajícího datového typu. Dalším stiskem tlačítka se průběh vykonávání programu vrátí do základního režimu a symbol žárovičky se opět změní na pohaslou. V průběhu toku dat se také okamžitě ukazuje, kde dochází k chybám případně kolizím. Pokud chcete sledovat tok dat v celém programu, je vhodné snížit počet opakování v cyklech. Stiskem tlačítka se symbolem zkušební sondy (Retain (Retain Wire Values) Values lze po umístění zkušební sondy (Probe) do cesty toku dat zobrazit konkrétní okamžitou hodnotu procházející datovým vodičem. Po stisku tlačítka se symbol zkušební sondy zvětší. Sondu lze nasadit it na libovolný datový vodič buď nástrojem sondy z palety Tools (viz. podkapitola apitola 3.4.1), 3.4.1) nebo kliknout pravým tlačítkem myši na vodiči vybrat volbu Probe z jeho roletového menu. Na datovém vodiči se objeví žluté okénko s číslem, které označuje pořadí vložené vložené sondy. Současně se otevře okno Probe Watch Window (viz viz obr. 3.12) pro řízení sond. Zde de jsou po spuštění programu 29
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
uváděny okamžité hodnoty na sondách včetně časového indikátoru poslední hodnoty. V horní liště je tlačítko pro zobrazení vybraných sond v nově ově otevřeném okně, dále tlačítko pro označení všech sond, tlačítko pro odstranění vybraných sond a tlačítko pro zobrazení/skrytí displeje označených sond (Probe Display) Zavřením tohoto okna se všechny vložené sondy vymažou z paměti programu i jejich označení ozna z blokového diagramu. Použitá čísla použitých sond si program ale pamatuje a při dalším použití sondy volí další číslo.
Obr. 3.12 3.1 Okno Probe Watch Window Pro odlaďování pomocí krokování lze s výhodou použít tří dalších tlačítek: Step Into, Step Over a Step Out – tlačítka jsou postupně z leva na obr. 3.13.
Obr. 3.13 Tlačítka Step Into, Step Over a Step Out Použítím tlačítka Start tart single steping (Step Into) se spustí vykonání jednoho uzlu, který se současně zvýrazní. zvýra Stiskem tlačítka Start single gle Steping (Step ( Over) se spouští celý uzel (struktura nebo SubVI) jako jeden krok v další hlavní funkci. Stisk tlačítka Step Out krokování vypne.
30
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
3.3.3. Prvky blokového diagramu Grafické objekty, ze kterých je složen blokový diagram, tvoří zdrojový kód programu VI v LabVIEW. Blokový diagram se často podobá vývojovému diagramu a odpovídá tedy řádkům zdrojového kódy textových programovacích jazyků. Ve skutečnosti je blokový diagram přímo spustitelným kódem, který LabVIEW přímo překládá již během tvorby s možností zpětné vazby při vzniku chyby, kterou může být třeba spojení neslučitelných datových typů. Blokový diagram je tvořen vzájemně propojenými grafickými objekty s určitou funkcí. Blokový diagram se skládá ze tří základních typů objektů: • uzel • terminál • spoj Uzel (Node) je objektem pro vykonání programu. V textových programovacích jazycích jim odpovídají příkazy, funkce a podprogramy. V LabVIEW rozlišuje tři typy uzlů: funkce, SubVI (VI použité jako podprogram v jiném VI) a struktura. Jsou to např. funkce sčítání, ání, násobení a porovnání dvou čísel. Uzly typu struktura jsou určeny k řízení běhu programu (např. smyčka For, While apod.). Terminál (Terminal) je jakousi branou pro průchod dat mezi čelním panelem a blokovým diagramem. Odpovídá parametru nebo konstantě v textovém programovacím jazyku. Terminály Terminály se dělí na zdrojové (source) resp. ovládací (control), což jsou počátky datových cest spojené s uzly, globálními či lokálními proměnnými v módu čtení a koncové (destination) resp. indikační (indicator), což jsou konce datových cest s pojené s indikačními ími prvky, globálními či lokálními proměnnými v módu pro zápis. Spoj (Whire) vytváří cestu dat mezi terminály a uzly a odpovídá proměnným v textovém programovacím jazyku. Protože se blokový diagram skládá z různých typů objektů, mohou být i spoje různých rů typů v závislosti na datovém typu (číselné, binární, znakové řetězce apod.). Rozlišení typů spoje je v LabVIEW v závislosti na datovém typu řešeno barvou a typem čáry. Základní barevné rozlišení spojů je uvedeno v tab. 3.1. Tab. 3.1 .1 Základní datové typy spojů spoj Datový typ spoje Barva čáry celočíselný (Integer) modrá číselný s pohyblivou čárkou (Floating point) oranžová binární (dvojkový, Boolean) zelená znakový řetězec (String) růžovofialová K vytváření spojů mezi objekty blokového diagramu slouží propojovací nástroj (wiring tool), který je reprezentován symbolem symbol cívky s drátem (viz obr. 3.16 16). Tento nástroj se nachází na paletě Tools, které je věnována část 3.4.1. 31
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Začátek spoje vytvoříme klikem levého tlačítka myši v podobě cívky s drátem na vstupní nebo výstupní pin objektu a tažením, ukončení se provede opět kliknutím myši na žádaný výstupní/vstupní pin objektu. Spoje lze vést vždy vodorovně nebo svisle, směr vedení lze měnit stiskem mezerníku, kde zlom zlom není zafixovaný na jednom místě nebo klikem levého tlačítka myši. Tím vytvoříme již zafixovaný zlom s přesně definovanou pozicí. Vymazání všech nedokončených spojů se provádí stiskem Ctrl+B.. Musíme však dát pozor, abychom takto nevymazali i spoje, které ve výřezu na obrazovce nevidíme. Tomu se vyhneme tak, že si označíme část programu, kde chceme přerušené spoje vymazat a teprve pak stiskneme Ctrl+B. Vymažou se jen přerušené spoje, které byly označeny. K vrácení (odvolání nebo zrušení) poslední operace ope stiskneme Ctrl+Z. Ctrl+Z Potřebujeme-li v určitém místě panelu vytvořit prostor pro další objekty, označíme plánovanou oblast po stisknutí Ctrl a táhneme levým tlačítkem myši. Původně obsazená část se přesune a vznikne tak prázdné místo pro vložení nového obsahu. Veškeré spoje i objekty v původně obsazené oblasti zůstanou zachovány. Do dříve vytvořeného spoje lze také snadno vložit další uzel – funkci nebo SubVI. Kliknutím pravého tlačítka myši na spoj v místě, kde chceme vložení uskutečnit, zobrazíme pop-menu, v něm vybereme položku Insert a následně vybereme požadovanou funkci či SubVI. 3.3.4. Ikona a konektor VI Ikona a konektor VI se nachází v pravém horním rohu čelního panelu a blokového diagramu VI. Ikona je grafický symbol reprezentující VI při další práci. prác Každé VI lze použít jako SubVI v jiné aplikaci (v jiném programu VI) a ikona jen v něm bude reprezentovat. Aby bylo možno ikonu propojit s programem jiného blokového diagramu, potřebujeme, aby měla vstupní a výstupní piny. K tomu slouží konektor (mřížka (mřížk před ikonou).. Konektor je souborem vstupních/výstupních pinů (terminálů) pro připojení SubVI. Ikonu lze editovat kliknutím pravého tlačítka myši v místě ikony VI a volbou položky ve vyvolaném menu VI Properties se otevře okno pro nastavení vlastností VI V (lze vyvolat též stiskem Ctrl+I nebo ze základního menu postupem File»VI Properties), na obr. 3.14 je vidět toto okno s rozbaleným menu vlastností, které lze nastavit,, zobrazena je volba zabezpečení (Protection). (Protection) Druhou nabídkou je Edit Icon – otevře se okno pro vytváření a editace ikony VI (32 x 32 bodů) o editaci ikony VI více v kapitole 4.1.1 a na obr. 4.1).
32
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 3.14 3.1 Okno s rozbaleným menu vlastností VI Kliknutím pravého tlačítka myši na konektor se zobrazí menu (viz obr. 3.15), 3.1 které kromě již výše jmenovaného nastavení vlastností VI, nabízí možnosti pro připojení či odpojení terminálu vstupu/výstupu k některému okénku mřížky definující rozložení kontaktů. Nabídka Patterns nabídne další menu s jiným rozložením mřížky. Tím je možno o přizpůsobit průchody SubVI podle požadovaného počtu vstupů/výstupů či podle představ programátora.
Obr. 3.15 3.1 Menu pro vytvoření Konektoru SubVI Tvorbu u konektoru a připojování vstupů/výstupů je na příkladu ukázáno v kapitole 4.1.1, která se tvorbě SubVI věnuje podrobněji. 33
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
3.4.Palety V předchozím textu jsme několikrát zmínili různé palety příslušející jednotlivým částem programu LabVIEW. Palety jsou grafické panely obsahující různé nástroje a objekty pro vytváření a použití VI, programů a aplikací v LabVIEW. abVIEW. V LabVIEW lze rozlišit tři druhy palet: • • •
paleta nástrojů (Tools Tools), paleta ovládacích a indikačních prvků (Controls) ( ) pro čelní panel, paleta funkcí (Functions Functions) pro blokový diagram. 3.4.1. Paleta Tools
Pro práci při tvorbě VI má LabVIEW vytvořen speciální režim práce s kursorem myši. Jeho pomocí si lze práci poměrně usnadnit, avšak za předpokladu, že se s tímto nástrojem naučíme pracovat, což může začínajícím programátorům připadat nepříjemné, protože ovládání vyžaduje poměrně velmi jemnou práci s kurzorem myši s použitím jejích tlačítek. Paletu nástrojů Tools vyvoláme např. postupem v základním menu View»Tools Palette,, nebo současným stiskem tlačítka Shift a pravého tlačítka myši. Na ploše čelního panelu nebo blokového diagramu se objeví panel nástrojů (viz (v obr. 3.16).
Obr. 3.16 Paleta Tools Je-lili zvolen režim automatické volby nástrojů (prosvětlené tlačítko je v horní části panelu a povolení tohoto stavu je indikováno zelným okénkem), LabVIEW automaticky nabízí při pohybu kurzoru nad objektem odpovídající nástroj. Pokud je z nějakého důvodu výhodnější automatickou volbu nástrojů zakázat, provedeme to kliknutím na zelené tlačítko, které zhasne. Po volbě konkrétního nástroje z nabídky palety rovněž zelené tlačítko zhasne. Tato volba je vhodná, pokud po je ve velké blízkosti několik možností nástroje a při malém pohybu myši dochází k přeměně nástroje.
34
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Nástroje palety Tools (od horního levého rohu): rohu • zelené prosvětlené tlačítko – automatická volba nástrojů, • ručka – operační nástroj pro změnu hodnot a textů, • šipka – vybírá objekty, mění jejich velikost a polohu, • písmeno – změna textu a popisů, • cívka – propojovací nástroj (wiring tool) pro vkládání datových vodičů, • menu – nastavení rychlé volby menu pro objekt, • dlaň – posouvání okna, • stop – vkládání bodu přerušení, • sonda – vkládání zkušební sondy na datový vodič, • kapátko – kopírování zvolené barvy do nástroje štětec, • štětec – volba barev prvků, kde se volí barva ohraničení a vnitřní plochy. Nástroj šipka se nad konkrétním objektem může změnit např. v dvojitou šipku pro možnost změny rozměrů objektu, na pravoúhlý roh pro změnu počtu prvků některých objektů nebo v kruhové šipky pro změnu délky nebo otočení u kruhových stupnic. 3.4.2. Paleta Controls Paleta Controls je součástí čelního panelu a slouží slo k vytváření áření uživatelského rozhraní. Zobrazíme ji tedy pouze z čelního panelu postupem View»Controls Palette, tím se nám okno palety Controls zobrazí zo trvale. Okno kno lze přesouvat pomocí myši nebo zavřít kliknutím na křížek v pravém horním rohu. Řadě programátorů spíše sp vyhovuje dočasné zobrazení palety, které vyvoláme klikem pravého tlačítka myši do plochy čelního panelu. Tato paleta zmizí klikem levého tlačítka myši opět do prostoru čelního panelu. Pokud si chceme nějakou část palety nebo celou paletu zobrazit trvale, trval stačí kliknout na ikonku špendlíku pro nástěnky. Tím se paleta zafixuje v podobě okna. Paleta obsahuje řadu položek, kde jsou sdruženy základní skupiny prvků podle designu resp. podle nejčastěji používaných typů grafického zpracování pro dané téma. Nabídka bídka prvků se liší podle verze a nainstalovaných knihoven. Paleta Controls (viz obr. 3.17) 3.1 se skládá z ikon, které reprezentují další sub palety s objekty pro vytváření čelního panelu. Jedná se o různá tlačítka, knoflíky, přepínače, prvky pro zadávání vstupních hodnot, indikátory, zobrazovače, měřiče a další řídicí (vstupní), resp. indikační (výstupní) prvky. Protože konkrétních prvků je poměrně velké množství, jsou v paletě knihovních prvků členěny na sub panely, panely jejichž výběr je velice snadný – při umístění kurzoru nad ikonu sub panelu (případně po stisku ikony) se otevře tento sub panel a v něm potom můžeme konkrétní prvek vybrat kliknutím levého o tlačítka myši, myši, tím se kurzor změní na ručičku, čárkovaně jsou naznačeny prostorové hranice vybraného prvku, předtím myši vybereme místo na čelním panelu a dalším klikem levého tlačítka myši prvek umístíme. Pokud prvek přesahuje na plochu jiného již umístěného umístěného prvku, umístí se ve vyšší grafické vrstvě tedy nad již vložený prvek, pro další editaci slouží tlačítka nástrojové listy - viz popis tlačítek pro práci s grafikou v kapitole 3.2.2. Na obr. 3.18 je uveden jako příklad zobrazena sub paleta Modern, Modern kde jsou pod grafickým zobrazením uveden popis skupiny prvků. Prvky jsou do skupin řazeny podle základních datových typů resp. 35
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
podle možností použití, pro které jsou vytvořeny nejtypičtější vstupní a výstupní datové prvky.
Obr. 3.17 Paleta Controls
Obr. 3.18 Sub paleta Modern Hodnotu každého prvku z palety Control lze měnit různými způsoby, např. dvojklikem na číslici display zčerná a lze z klávesnice nastavit jinou hodnotu, stiskem šipek i hodnoty se mění její veličina o definovaný krok (nejčastěji 1), některé prvky mají výběrové menu, dvoupolohové prvky se dají přepnout klikem myši na objekt apod. Každý prvek má své charakteristické menu. menu V další části si představíme základní skupiny předpřipravených řídicích a zobrazovacích prvků, které nám LabVIEW W na paletě Controls v jednotlivých skupinách nabízí a představíme si i charakteristická menu těchto skupin. skupin 36
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Numeric V této skupině najdeme grafické i čistě numerické prvky pro zadávání vstupních číselných hodnot nebo zobrazování číselných hodnot výstupních. ch. Menu nastavení jejich vlastností je na obr. 3.7 a). Výhodou grafických prvků, které jsou od uživatelů často žádány je možnost zobrazení i přesné numerické hodnoty jednoduchou volbu v položce Properties. U numerických n ých prvků je vždy potřeba zkontrolovat přednastavený datový typ a případně typ změnit na námi požadovaný v záložce Data Type (viz obr 3.19).. Nejčastěji je přednastaven datový typ Double Precision. Precision Na obr. 3.19 je zobrazeno nastavení mezních hodnot a kroku pro vstupní numerickou hodnotu. Nastavené minimum na hodnotu 0 a volba korekce způsobí, že pokud uživatel nastaví hodnotu zápornou, automaticky se nastaví hodnota 0. Korekce u kroku dává na výběr, jakým způsobem má být vložená hodnota upravena – v tomto případě bylo zvoleno zaokrouhlení na nejbližší hodnotu. V záložce Appearance Ap lze u grafických prvků (nádrž, teploměr apod.) možno zvolit současné zobrazení numerické hodnoty v podobě čísla zaškrtnutím zaškrtnut nabídka Show digital display(s). display(s)
Obr. 3.19 Vlastnosti numerických prvků prvk – nastavení limit pro číselnou hodnotu
37
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Boolean Skupina Boolean sdružuje různá tlačítka a ledky pro volbu resp. detekci stavů procesu (True/Falce) – datový typ Boolean. Boolean U vkládaných tlačítek doporučujeme vždy zkontrolovat volbu mechanické akce – funkce tlačítka (Mechanical Mechanical Action), Action protože nabízená tlačítka mají jako jak základní nastavenou různou mechanickou akci. akci Na obr. 3.20 20 je pro zvolený prvek zobrazeno grafické menu volby volby mechanické mech akce – zvolený typ je zvýrazněn modře. LabVIEW nabízí následující funkce tlačítka (od ( horního levého rohu): ): • Switch When Pressed – změní hodnotu stlačením • Switch When Released – změní hodnotu při uvolnění • Switch Until Released – změní hodnotu na dobu stlačení, • Latch When Pressed – stiskem se jeho stav zablokuje až do přečtení programem, • Latch When Released – po stisknutí a následném uvolnění se jeho stav zablokuje až do přečtení programem, • Latch Until Released – po stisknutí se jeho stav zablokuje, dokud nebude stisk uvolněn a stav tlačítka přečten programem. Prvky s činností typu Latch se vždy po akci vrací do základního tvaru.
Obr. 3.20 20 Volba mechanické akce (funkce) tlačítka
38
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Menu ledky je zobrazeno na obr. 3.7 b), při volbě položky Properties je v záložce Apperance možno měnit velikost, barvu ve stavu On/Off, zvolit zobrazení textu k jednotlivým stavům včetně barvy textu. Array, Matrix & Cluster Skupina Pole, matice a klastry klastry obsahuje prvky daných typů. Pojem matic je všem známý a je zde veden jen jako matice dvourozměrné, polem pole sdružuje vstupy a výstupy tvořené 1D i 2D soubory hodnot stejného datového typu, klastr pak obsahuje sdružení polí různých velikostí i různých datových typů např. pole typu Integer, Boolean, obrázky atd. Vkládání těchto prvků do čelního panelu je mnohem jednodušší z blokového lokového diagramu a proto se mu budeme věnovat až později. String & Path Vstupní a výstupní prvky tvořené znaky (string) jsou sdruženy v této skupině. Jsou k nim ještě přidruženy prvky pro zadávání a zobrazování umístění souborů. Pokud se podíváme na menu prvku typu String na obr. 3.21,, najdeme zde i možnost zvolit typ zobrazení, í, kde jako základní je nastaveno Normal Display,, které lze změnit na hexadecimální nebo display pro heslo (tečky místo znaků). znaků). Volba Limit to Single Line nedovolí uživateli použít klávesu Enter pro řádkování, což je vhodné např. pro zadávání přístupového hesla nebo dalších druhů vstupních dat. Volbou Path vložíme prvek pro vložení/zobrazení cesty k souboru. V základním nastavení se vedle okna pro vepsání cesty objeví i tlačítko pro vyhledání souboru v adresáři PC. V menu při volbě Properties lze toto tlačítko tlačítko vypnout a nechat zadání cesty k souboru na uživateli bez možnosti prohledávání adresářů PC. Ring & Enum V této skupině najdeme prvky pro tvorbu různých typů vstupních uživatelských menu. Všechny tyto prvky mají jednu věc společnou, na straně uživatele uživate se snažíme o co nejsrozumitelnější popis výběru, na straně vstupu do programu si většina programátorů pak volí nejčastěji místo textových popisů jen celá čísla, která se používají pro rozhodování a další akce v procesu běhu programu. Pro všechny typy těchto chto prvků je nejprve potřeba výběr uživateli nadefinovat. K tomu slouží položka Edit Items – viz obr. 3.22 a), po jejím výběru se zobrazí okno pro tvorbu uživatelského menu obr. 3.22 b). Zaškrtnuté okénka u Sequential values zajišťuje souslednost čísel ve sloupečku Values.. Pokud zaškrtnutí zrušíme, můžeme měnit hodnoty i ve sloupečku Values – hodnoty, které jsou posílány do blokového diagramu, u všech prvků v této skupině to musí být vždy datový typ celá čísla. Pokud chceme do programu použít typ string, musíme použít Combo Box ze skupiny String & Path.. Definice uživatelského výběru (Items) je identická jako u prvku Ring, jen na straně Valuess je datový typ string, který může být identický s popisem pro uživatele (Items) při zaškrtnutém políčku u volby Values match Items nebo odlišný, pokud zaškrtnutí zrušíme. 39
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 3.21 Menu pro vstup typu String
a) menu prvku Ring b) tvorba uživatelského telského menu Obr. 3.22 Tvorbu uživatelského menu 40
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Graph Skupina Graph obsahuje mnoho předpřipravených grafů pro zobrazování dat a to jak v průběhu běhu programu tak i až po jeho dokončení. Grafům se dále budeme věnovat podrobněji, protože nastavení jejich vlastností je trochu rozsáhlejší a je pro něj potřeba již znát další možnosti a vlastnosti struktur v programové části LabVIEW. I/O Skupina sdružuje vstupy pro různé sběrnice nejčastěji nejč používané při práci v LabVIEW, dále různé předpřipravené vstupy a výstupy pro zařízení firmy NI, která budou zmíněna dále. Pro obecnější použití zde najdeme vstup pro VISA sběrnici VISA resourse name,, který nám po vložení na Front Panel po otevření zobrazí všechny aktivní I/O porty ty použitelné pro řízení externích připojených zařízení. Po otevření menu prvku je pomocí položky Select VISA Class možno nastavit, které typy zařízení nebo sběrnice má být hledán, hledán, což je vhodné použít, pokud chceme uživateli omezit přístup k portům počítače.. Na obr. 3.23 je klikem na šipku prvku zobrazen výčet aktivních I/O portů jednoho PC. Volba Refresh provede znovunačtení a zobrazení aktuálního stavu. Pro zobrazení zařízení je potřeba, aby bylo aktivní, což znamená, že musí být většinou fyzicky zapnuto. zapnuto Výběrem z nabídky se zvolí port, na kterém bude probíhat komunikace s externím zařízením.
Obr. 3.23 Aktivní I/O porty na PC Decorations Dekorace obsahují ve všech skupinách hlavního menu grafické resp. geometrické prvky vhodné pro dotváření uživatelského uživatel rozhraní. Práce s nimi je podobná práci s grafickým prostředím Malování nebo ve Photoshopu. Prvky se dají barvit, nanášet na ně textury a také je pomocí 4 tlačítek pro práci s grafikou na horní liště rovnat a vrstvit. Než přejdeme k Blokovému diagramu, chceme ještě připomenout, že každý prvek (mimo skupiny Decoration) vložený na Front Panel z palety Controls zároveň vytvoří svůj odpovídající Terminál v Blokovém diagramu.. Některé prvky Front Panelu lze vytvořit i z Blokového Bloko diagramu,, jak to již bylo zmíněno u skupiny Array, Matrix & Clusters. Clusters Tímto způsobem se ale vytvoří jeden předdefinovaný typ prvku z dané skupiny, který je pak možno dále upravovat nebo nahrazovat pomocí menu vlastností. 41
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
3.4.3. Paleta Functions Paleta Functions je vázána na blokový diagram. Zobrazíme ji obdobně jako paletu Controls. Zobrazíme ji pouze z blokového diagramu postupem View»Functions Palette,, tím se okno palety Functions zobrazí trvale. Okno lze přesouvat pomocí myši nebo zavřít kliknutím utím na křížek v pravém horním rohu. Řadě programátorů spíše vyhovuje dočasné zobrazení palety, které vyvoláme klikem pravého tlačítka myši do plochy blokového diagramu. Tato paleta zmizí klikem levého tlačítka myši opět do prostoru blokového diagramu. Pokud Pokud si chceme nějakou část palety nebo celou paletu zobrazit trvale, stačí kliknout na ikonku špendlíku pro nástěnky. Tím se paleta zafixuje v podobě okna. Nabídka prvků se liší podle verze a nainstalovaných knihoven. Zde stručně popíšeme některé základní prvky pro tvorbu blokového diagramu ve verzi licence Basic. Paleta Functions (viz obr. 3.24) 3.24) se skládá (obdobně jako paleta Controls) rozdělena podle použití na mnoho subpalet. Menu každé sub palety je tvořeno ikonami, které reprezentují další sub palety s objekty pro vytváření blokového diagramu. Jedná se o různé funkce a všemožné „životně důležité prvky“ pro VI. Práce s paletou Functions je velice podobná práci s paletou Controls popsanou výše, proto si již jen popíšeme pop základní obsah sub palet.
Obr. 3.24 Paleta Functions
42
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Programing Subpaleta obsahuje ikony skupin prvků, které jsou při vytváření VI používány nejčastěji, najdeme zde struktury, funkce pro různé datové typy, časování apod. Této sub paletě budeme věnovat vlastní kapitolu. Konkrétní obsah grafických ikon skupin prvků je zobrazen na obr. 3.25.
Obr. 3.25 Sub paleta Programing
Measurement I/O V sub paletě jsou obsaženy skupiny ovládacích prvků všech externích zařízení firmy National Instruments pro měření včetně ovládacích prvků některých sběrnic (CAN) ( a konfigurace systému (Systém Configuration)Configuration) Některým zařízením jsou věnovány kapitoly v závěru knihy.
Obr. 3.26 Sub paleta Measurement I/O 43
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Instrument I/O Ovládací prvky externích zařízení ostatních výrobců včetně ovládací prvků prv pro další komunikační sběrnice PC a externí komunikační sběrnice najdeme v sub paletě Instrument I/O – viz obr. 3..26.
Obr. 3.26 Sub paleta Instrument I/O Skupina ovládacích prvků (Instr ( Drivers)) pro externí zařízení obsahuje doinstalované ovladače zařízení. Součástí základní instalace jsou pouze ovladače pro multimetr Agilent 34410. Skupina IVI Class Drivers obsahuje ovladače zařízení skupiny IVI. Expresní funkci Instr I/O Assistants můžeme použít pro komunikaci založenou na zprávách a graficky analyzovat odpovědi zařízení. Funkce koordinuje jednotlivé kroky komunikace a lze ji použít i pro ověření komunikace s externím zařízením. Tímto způsobem lze například komunikovat s přístrojem, který používá sériový Ethernet nebo GPIB. Skupiny VISA, GPIB, Seriál obsahují ovladače pro uvedené sběrnice. Podrobnějšímu popisu komunikac omunikace s externím zařízením bude popsáno v pokračování těchto skript.
Obr. 3.27 Sub paleta Mathematics 44
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Vision and Motion Do této sub palety se instalují všechny ovladače pro kamerové systémy a systémy řídící pohyb od National Instruments. Použití kamerových systémů patří mezi dokupované knihovní funkce, proto se jim nebudeme podrobněji věnovat. Mathematics Skupiny matematických funkcí, konstant a procesů jsou zobrazeny na obr. 3.27. 3.27 • Numeric na obr. 2.28 obsahuje základní numerické funkce, obecné číselné konstanty různých datových typů, typů, náhodné číslo a další vnořené skupiny: Conversion je věnováno prvkům určeným konverzi typů, Complex obsahuje prvky pro práci s komplexními čísly, Math & Scientific Constants Cons obsahuje konstanty jako je Pí, e, gravitační konstanta, ln(2), Planckova konstanta apod.
Obr. 3.28 Skupina Numeric •
Elementary & Special Function sdružuje skupiny základních a speciálních funkcí jako jsou Goniometrické funkce, exponenciální funkce, hyperbolické funkce, funkce diskrétní matematiky (faktoriál, permutace) a různé typy dalších funkcí.
Obr. 3.29 Skupina Elementary & Special Function 45
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
•
Linear Algebra sdružuje funkce pro práci s řadami a poli včetně vnořené skupiny Matrix pro práci s maticemi viz obr. 3.30. .30. Jednotlivé funkce nebudeme blíže vysvětlovat, pro vysvětlení práce funkce je ve všech případech (i u dalších skupin) vhodné použít nápovědu (Context Help), kterou zobrazíme současným stiskem Ctrl+H. Ctrl+H
Obr. 3.30 Skupina Linear Algebra •
Fitting sdružuje funkce pro výpočet analytického popisu vložených křivek souborem dvoudimenzionálních dat – viz obr. 3.31.. Funkce je výhodné použít pro hodnocení výsledků měření, kde jsou naměřená data prokládána nějakou zvolenou křivkou závislostí Y = fce (X). Na Na výběr máme z lineární, exponenciální, logaritmické, polynomiální závislosti a dalších předvolených závislostí. Vybrat se dá i metoda výpočtu.
Obr. 3.31 Skupina Fitting •
Interpolation & Extrapolation sdružuje funkce pro 1D a 2D interpolaci včetně Fourierovy ierovy interpolace. 46
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
• •
Integration & Differentiation obsahuje funkce pro výpočet určitého i neurčitého integrálu i derivace funkce, volit lze i metodu integrace. Polynomial obsahuje funkce věnované výpočtům s polynomy. polynomy
Ostatní vnořené skupiny se věnují speciálním a méně často používaným druhům výpočtů. Signal Processing Zpracování signálů je věnována sub paleta Signal processing na obr. 3.32. Najdeme zde skupinu funkcí věnovaných generování signálů, signálů, filtraci, operacím se signály spektrální analýze.
Obr. 3.32 Sub paleta Signal Processing Data Communication Sub paleta Data Communication obsahuje skupiny prvků věnované nastavování a předávání dat mezi aplikacemi VI a k jejich synchronizaci – viz obr. 3.33
Obr. 3.33 Sub paleta Data Communication
47
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Control Design & Simulation Dynamickým modelům systémů, systémů jejich vytváření (návrhům), analýze, simulaci a implementaci je věnována sub paleta Control Design & Simulation. Simulation Knihovny pro tyto aktivity je nutno dokoupit a doinstalovat, nejsou součástí základní instalace. Express Všechny expresní funkce jsou obsaženy v sub paletě Express.. Jsou zde rozděleny do skupin podle nejčastějšího použití. Expresní funkce jsou označeny modrou barvou pozadí a jsou vytvořeny pro programátory, aby jim usnadnili práci prác např. expresní funkce pro tvorbu XY grafů, expresní funkce pro ukládání naměřených (vypočítaných) dat do zvoleného typu souboru.
Obr. 3.34 Sub paleta Express •
Input obsahuje expresní funkce pro shromažďování dat, získávání a simulování signálů z předem definovaných h zařízení nebo obecně. Je zde také expresní funkce pro čtení dat ze souboru, jak je vidět na obr. 3.35. Vnořená skupina Instrument Drivers obsahuje ovladače pro zařízení dalších firem, jak již bylo zmíněno v části věnované sub paletě Instrument nstrument I/O
Obr. 3.35 Skupina Input •
Signal Analysis sdružuje expresní funkce vytvořené pro provádění měření a analýzu křivek (např. FFT), funkce pro generování křivek a pro analýzu a zpracování signálů – viz obr. 3.36.
48
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 3.36 Skupina Signál Analyse •
Output,, jak je vidět na obr. 3.37, 3.3 obsahuje expresní funkce unkce pro ukládání dat do souborů (dá se zvolit typ souboru), pro generování zpráv, výstupních signálů, posílání zpráv uživatelům a stejně jako u skupiny Input je sem vnořena skupina ovladačů pro externí zařízení (Instrument Instrument Drivers). Drivers
Obr. 3.37 Skupina Output •
Signal Manipulation sdružuje expresní funkce pro práci se signály signály$ (např. korekce, vymazání hodnoty ze signálu, slučování signálů apod.) a pro provádění konverze dat – viz obr. 3.38.
Obr. 3.38 Skupina Signal Manipulation •
Execution Control obsahuje struktury a expresní funkce pro řízení a časování programů – viz obr. 3.39. Struktura While Loop má již předdefinované ukončovací tlačítko STOP (strukturám se věnuje kapitola 4). Expresní funkce Time Delay Dela určuje, o kolik sekund se odloží spuštění volané VI, expresní funkce Elapsed Time udává čas, který uplynul od určeného času zahájení měření času. 49
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 3.39 Skupina Execution Control •
Arithmetic & Comparison sdružuje expresní funkce pro provádění aritmetických funkcí a porovnání. Skupina obsahuje i vnořené skupiny Math, Numeric, Boolean a Comparison.
•
Adonns je určeno pro lokální skupiny modulů a toolkitů, které si může uživatel do LabVIEW nainstalovat.
•
Favorities umožňuje vytvořit si vlastní sub paletu nejčastěji používaných skupin prvků.
•
Select a VI otevře vyhledávací okno adresáře, které (obdobně obdobně jako Browse button) slouží pro nalezení vlastního SubVI a jeho vložení do vytvářeného VI.
•
FPGA Interface obsahuje funkce funkce a vnořené skupiny prvků pro rozhraní FPGA.
•
MINDSTORMS Robotics je doinstalovaná sub paleta se skupinami ovladačů pro řízení robotů Lego MindStorms – viz obr. 3.40. Od verze LabVIEW verze 2013 SP1 je ovladač společný pro roboty NXT a EV3, starší verze LabVIEW umožňují instalaci ovladačů jen pro roboty NXT. Skupina Programing obsahuje další vnořené skupiny řídicích funkcí a struktur, které je možno použít k nahrání ání do robota, skupina I/O obsahuje ovladače pro řízení motorů a ovládání senzorů a dalších akčních prvků robota, skupina Behaviors obsahuje vzorové programy pro ovládání robota.
Obr. 3.40 Sub paleta MINDSTORM Robotics Nabídku dostupných funkcí v základní instalaci je možné dále rozšiřovat dokoupením a doinstalováním speciálních programových balíků balíků (Toolkit, Toolset). Některé knihovny je možno stáhnout a doinstalovat zadarmo – např. knihovna ovládacích modulů pro MINDSTORS Robotics (poslední sub paleta na obr. 3.24). 3.24 Některé skupiny prvků se dají najít v několika sub paletách,, je jen na programátorovi, kterou cestu k prvku zvolí. 50
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
3.5.Vytvoření prvního virtuálního přístroje (VI) Nyní budeme předpokládat, dat, že po prostudování předchozích předchozích kapitol máme dostatek d základních informací k tomu, abychom mohli vytvořit náš první virtuální přístroj pří (virtual instrument – VI). Projdeme si společně postup jeho tvorby krok po kroku. 3.5.1. Úvodní kroky pro vytvoření VI Důležitým krokem pro zahájení práce na vytvoření VI je pokud možno přesná definice zadání úlohy, kterou má VI řešit. Nechť je zadání pro naši úvodní úlohu toto: • • • •
zadat dvě čísla A a B určit součet čísel A + B určit součin čísel A * B porovnat čísla A > B, a pokud je A větší než B rozsvítit LED
Důležitou částí zadání bývá požadovaný (nebo předpokládaný) vzhled čelního panelu, tedy uživatelského rozhraní. Budeme dbát na přehlednost a snadné ovládání, často intuitivní. Na obr. 3.41 je zobrazen čelní panel budoucího VI, který obsahuje dva číselné ovladače ladače pro zadání čísel A a B, dva číselné zobrazovače pro zobrazení výsledku A+B, resp. A*B, a kulatý zobrazovač LED pro indikaci výsledku porovnání A > B. Každý prvek čelního panelu je pro snadnou orientaci opatřen popiskem (Label).
Obr. 3.41 Čelní panel našeho prvního VI Stejně jako vývoj většiny „sofistikovaných“ (tedy důmyslných a dobře propracovaných) počítačových programů je i vytváření programů, resp. virtuálních instrumentů (VI), v LabVIEW jistou formou umění, kterému je třeba se stále učit a zdokonalovat je s cílem získávat svůj vlastní styl a „rukopis“. Následující kroky tvorby VI jsou tak vlastně jen jednou z možností tvorby VI.
51
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
3.5.2. Vytvoření čelního panelu VI Nyní si ukážeme, jak jsme čelní panel s ovládacími a indikačními prvky, jehož výsledná edná podoba je na obr. 3.41, vytvořili. 1. Spustíme LabVIEW, objeví se nám úvodní okno (viz obr. 3.1), v němž otevřeme prázdný VI postupem File»New VI nebo Create Project»Blank VI nebo přímo volbou Blank VI.. Zobrazí se dvojice oken – prázdný čelní panel (Front Panel) a pod ním prázdný blokový diagram (Block Diagram) s prozatímním názvem Untitled 1.
Pokud bychom nyní VI uložili, jméno souboru nesoucího informace o vytvářeném VI by bylo Untitled 1.vi. Většinou ou se budeme snažit jménem souboru vystihnout princip nebo funkci s cílem snadněji jej později identifikovat a nalézt. Náš program uložíme volnou File»Save a nazveme ho První_VI. 2. Nyní vložíme do čelního panelu ovládací prvky (Controls) a indikační prvky (Indicators). Na obr. 3.42 je znázorněn postup vložení numerického ovládacího prvku Control. Kliknutím na pravé tlačítko myši vyvoláme paletu Controls,, zde (např. v sub paletě Modern)) vybereme složku číselných ovladačů (Numeric eric) a v ní vybereme kliknutím levým tlačítkem myši na zvolený prvek Numeric Control – modře se orámuje viz obr. 3.42 a), myš přetáhneme na čelní panel, panel, kde se nám zobrazují čárkovaně hranice prvku – viz obr. 3.42 b) a kliknutím levého tlačítka myši ho vložíme na plochu čelního panelu – obr. 3.42 c). Po vložení prvku zůstal černě zvýrazněn název prvku (Label), z klávesnice je možné okamžitě text změnit – v našem případě na A jak je vidět na obr. 3.42 d). Tím je prvek vložen do čelního panelu VI. Současně s vložením prvku na čelní panel se s nám v blokovém diagramu zobrazil Terminál prvku se stejným označením,, jak je vidět na obr. 3.43.
a)
b)
c)
d)
Obr. 3.42 Postup umístění prvků na čelní panel 3. Pokud na editaci popisku popis Label zapomeneme nebo ji chceme me změnit, můžeme si text znovu zvýraznit dvojklikem na oblast textu nebo Label změnit pomocí položky Properties v menu prvku. 52
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 3.43 Terminál vloženého prvku v blokovém diagramu 4. Stejným postupem vložíme druhý Numeric Control s názvem B a volnou Numeric eric Indikator pak výsledky součtu a součinu. Ze skupiny Boolean pak vybereme LED a označíme ji podle předlohy a změníme její velikost jedním ze způsobů, které byly popsány v kapitole věnované Paletě Controls. Podklad je vytvořen ze skupiny Decoration. Protože Protože jsme ho vložili jako poslední, posle je potřeba předefinovat jeho vrstvu v rámci grafiky pomocí tlačítka Reorder na liště čelního panelu Váš výsledný čelní panel by měl obsahově a podobou odpovídat zadání. 3.5.3. Vytvoření tvoření blokového diagramu VI Po vložení všech prvků na čelní panel se vytvořily jim příslušné terminály v blokovém diagramu. Přepnutím do blokového diagramu (např. volbou Window»Show Window Block Diagram nebo stiskem Ctrl+E) uvidíme blokový diagram v podobě, jež je zobrazena na obr. 3.44.
Obr. 3.44 Blokový diagram po vložení prvků prvk na čelní elní panel 1. Nyní vložíme do blokového diagramu prvky (uzly) realizující funkce podle zadání. Kliknutím na pravé tlačítko myši vyvoláme paletu Functions, zde (např. v sub paletě Programming) vybereme skupinu s aritmetickými funkcemi Numeric,, a v ní prvek algebraického sčítání Add. Add Kliknutím na zvolený prvek Add,, který se po výběru modře orámuje, orámuje, jak jsme jsm to již poznali při volbě prvku čelního panelu – obr. 3.45 a). Táhnutím áhnutím myši jej vložíme na plochu blokového o diagramu a na vhodném místě znovu klikneme na levé tlačítko myši. Tím je prvek vložen do VI - viz obr. 3.45 b). Tímto postupem vložíme do blokového diagramu rovněž funkci násobení (Multiply Multiply). Po vložení prvního uzlu (funkce) se tlačítko Run na liště (šipka) změnila z bílé na přeškrtnutou List Errors, která indikuje, že v programu je nějaká chyba, která brání spuštění nebo varování. Popis Error listu je na konci postupu tvorby prvního VI. 53
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 3.44 Postup vkládání prvku do blokového diagramu 2. Nyní vložíme ložíme do blokového diagramu další uzel – funkci komparace (porovnání). Kliknutím na pravé tlačítko myši vyvoláme paletu Functions, zde (např. v sub paletě Programming) vybereme skupinu Comparison a z ní vybereme funkci Greater?. Greater? Postup vkládání funkcí porovnání je identický s vkládáním numerických funkcí. Chceme-li Chceme li získat informace o vybírané funkci, můžeme aktivovat kontextovou nápovědu postupem Help»Show »Show Context Help, příp. stiskem Ctrl+H. Ctrl+H
Obr. 3.45 Přidání řidání idání funkce Greater? do blokového diagramu 3. Řídicí a indikační terminály, které jsme do VI vložili prostřednictvím čelního panelu, mají své popisky již definované. Popisky (Label) uzlů (funkcí, SubVI nebo struktur) vkládaných do VI z blokového diagramu, tj. prvků, které se nezobrazují na čelním panelu, panelu, musíme (pokud tak chceme učinit) zviditelnit. Kliknutím na pravé tlačítko myši v blízkosti zvoleného prvku vyvoláme pop-up pop menu prvku, v něm zvolíme položku Visible Items a následně kliknutím na levé tlačítko myši zaškrtneme položku Label.. Tím se nám zviditelní z popisek u zvoleného uzlu. Tento postup je zobrazen na obr. 3.46. Při volbě položky Properties je možno v záložce Apperance popisek (Label) změnit.
54
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 3.46 Zobrazení popisku uzlu (funkce) 4. Nyní můžeme provést propojení terminálů za pomoci propojovacího nástroje (wiring tool) - cívka,, který vyvoláme (pokud není zvolena automatická volba nástroje) z palety nástrojů Tools v základním menu postupem View»Tools Palette,, nebo současným stiskem tlačítka Shift a pravého tlačítka myši. Přiblížením kurzoru rzoru ve tvaru cívky s drátem k uzlu se zviditelní jeho připojovací terminály, malé políčko u nejbližšího terminálu začne blikat – viz obr. 3.47. Pokud pracujeme v automatickém režimu, kurzor myši se nám při přiblížení k připojovacímu pinu v cívku sám změní. Kliknutím na levé tlačítko myši v místě výchozího terminálu (pinu) začneme táhnout spoj k cílovému pinu terminálu, kde spoj ukončíme dalším kliknutím levého tlačítka myši. Při zvýraznění pinu uzlu (funkce) se ve žlutém okně zobrazí jeho označení, v našem případě x. Pokud chceme spoj zalomit, v místě zlomu klikneme levým tlačítkem myši. Je-lili třeba spoj odbočit, pak přiblížíme propojovací nástroj k místu odbočení ze stávajícího spoje, klikneme na levé tlačítko myši a táhneme spoj k cílovému terminálu. Postup Pos propojení ní terminálu a uzlu je zobrazen na obr. 3.48:: a) počátek tažení spoje; b) spoj před ukončením; c) vytvořený spoj. spoj
Obr. 3.47 Zviditelnění Zviditeln terminálů uzlu
a) b) c) Obr. 3.48 Postup propojování terminálů blokového diagramu 55
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
5. Nyní stejným postupem propojíme ostatní spoje. Výsledný blokový diagram je na obr. 3.49.
Obr. 3.49 Výsledný blokový diagram 6. Je-lili celý VI hotov, můžeme jej uložit pod konkrétním názvem ve shodě se zásadami pro použitý operační systém. Volbou File»Save, zadáním jména souboru a správného místa (adresáře) pro uložení. Náš první VI nazveme jménem souboru např. První_VI.vi a uložíme stiskem tlačítka OK. 7. Nyní přepneme na zobrazení čelního panelu (postupem Windows»Show Front Panel nebo Ctrl+E) a můžeme vytvořenýý VI vyzkoušet. Stiskem tlačítka Run na liště (resp. postupem Operate»Run nebo stiskem Ctrl+R) vytvořený VI spustíme. Pokud jsme nechali hodnoty A a B ve výchozí hodnotě (tj. 0), zobrazovač LED se nerozsvítí,, neboť A=B (obě hodnoty jsou stejné). Pomocí tlačítek číselných ovladačů nebo přímo dvojklikem na číslo uvnitř číselných ovladačů nyní změníme hodnoty čísel A a B (např. A = 6, B = 5), a znovu stiskneme tlačítko Run. Výsledkem by mělo být zobrazení výsledků výsled A+B = 11 a A*B = 30, 30 zobrazovač LED se rozsvítí. Ukončíme-lili experimentování a práci s vytvořeným VI, uzavřeme VI volbou File»Close nebo stiskem Ctrl+W nebo zavřením čelního panelu stiskem tlačítka jako okno ve Windows,, vrátíme se do úvodní obrazovky - viz obr. 3.1, samozřejmě pokud jsme předtím neotevřeli jiný VI. Uložený soubor se nám zobrazí v nabídce pravé části úvodní obrazovky jako rychlá předvolba otevření již vytvořených souborů. Po prvním vložení uzlu (funkce) se tlačítko Run na obou nástrojových nástrojových lištách změnilo v tlačítko List Errors – přerušená šipka (jak bylo popsáno v bodě 1. tvorby VI). Klikem levého tlačítka myši na tlačítko se zobrazí okno Error list se seznamem chyb a varování. Okno lze vyvolat také postupem View»Error list,, případně stiskem st Ctrl+L. V okně ně je možno zapnout nebo nebo vypnout zobrazení varování volbou Show Warnings. Varování nebrání spuštění programu. V programu LabVIEW se rozlišují dvě úrovně chyb v programu jak je vidět i na obr. 3.50: • výstraha (Warning) – chyba, která však nemusí emusí znamenat nemožnost spuštění programu, • chyba (Error) – chyba při kompilaci programu, při které není možno program spustit 56
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 3.50 50 Seznam chyb a varování (Error list) před p dokončením ením vytvářeného vytvá VI Zvolení chyby nebo varování zobrazí ve spodním okně Details popis problému (chyby či varování)) a kliknutí na tlačítko Show Error přenese programátora zpět do blokového diagramu a terminál nebo uzel, kterého chyba týká, se černě zvýrazní a zůstane označený (černou přerušovanou pohybující se čarou jsou označeny jeho hranice). Tlačítkem Close okno zavřeme, lze opět použít i klasické zavírání oken
3.6.Datový tok (Data Flow) Vykonávání programu v LabVIEW je řízeno datovým tokem a nikoli lineárním vykonáváním řádků ů kódu, jak je obvyklé u textových programovacích jazyků (tzv. řízený tok, angl. control flow), kde jsou jednotlivé části programu řazeny sekvenčně. Datový tok tak jednoznačně určuje směr provádění programu. Zpracování informace v jednotlivých uzlech blokového blokového diagramu se provede tehdy, jsou-li jsou na všech jeho vstupech informace potřebné k jeho provedení. Po ukončení zpracování má uzel na výstupu definované informace, které se pošlou dále. Pokud je informací na výstupu více, jsou aktivně poslány dále až ve chvíli, ch kdy jsou kompletní. V textových programovacích jazycích se pro práci s konkrétními hodnotami používají programové proměnné (variables), které je před prvním použitím, tzn. obvykle na začátku programu, nutné deklarovat, tedy definovat jejich název a vlastnosti. Určitou obdobou v prostředí LabVIEW je datový tok reprezentovaný datovým spojem, kterým 57
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
je přenos dat realizován. Funkce a VI automaticky alokují paměť pro data a nejsou-li nejsou již data používána, přiřazená paměť je uvolněna. Jsou-li Jsou li přidána nová data d do pole nebo řetězce, automaticky se přiřazená paměť zvětší. Některé prvky si paměť uchovávají, ale u těch si to zdůrazníme, až se jim budeme věnovat v dalším popisu.
3.6.1. Jednoduchý VI s datovým tokem Na ukázku datového toku si vytvoříme VI. Tento VI bude ude převádět hodnotu teploty v jednotkách notkách stupňů Celsia (°C) na hodnotu teploty v jednotkách stupňů Fahrenheita (°F). Matematický zápis přepočtu má podobu lineární rovnice typu y = a.x + b, konkrétně
t°F = l,8 . t°C + 32 kde
t°F je hodnota teploty ve oF, t°C je hodnota teploty ve oC,
a my tuto rovnici nyní přepíšeme do grafického kódu LabVIEW. 1. Otevřeme si novou VI například volnou Blank VI v levém okně úvodní obrazovky. 2. Na plochu čelního panelu vložíme číselný vstup a číselný indikátor z palety Controls a hned po jejich vložení je přejmenujeme podle obr. 3.51.
Obr. 3.51 Popisky vstupu a indikátoru na čelním elním panelu VI 3. Nyní přepneme na obrazovku blokového diagramu (Ctrl+E) ( ) a vložíme vl funkci násobení (z palety Functions vybereme sub paletu Modern, Modern v ní potom skupinu Numeric a v ní funkci násobení Multiply). Kliknutím na tento prvek jej vybereme a táhnutím myši vložíme na plochu blokového diagramu, kde znovu klikneme. Následně propojíme propojíme řídicí terminál (označený Teplota [st. C]) s jedním z terminálů funkce násobení. K druhému terminálu připojíme konstantu (tj. realizujeme násobení konstantou 1,8 vyplývající z úvodního převodního vztahu). Kliknutím na pravé tlačítko myši v místě terminálu funkce
58
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
násobení Multiply vyvoláme pop-up menu a postupem Create»Constant vložíme číselnou konstantu. Tento postup je naznačen na obr. 3.52.
Obr. 3.52 Postup vložení konstanty
Poznámka 1: Výchozí hodnota vložené konstanty je 0, takže před dalším pokračováním musíme její hodnotu (postupem již dříve popsaným) změnit na požadovanou hodnotu 1,8. Poznámka 2: Přestože nám VI nedetekuje žádnou chybu (tlačítko Run je beze změny), při zobrazení Error listu (Ctrl+L) nám program napoví, že není připojen terminál výstupu Teplota [st. F], F] což je pouhé varování. Nezapojení výstupu funkce násobení není detekováno ani jako chyba ani jako varování. 4. Do blokového diagramu vložíme funkci sčítání (Add) ( ) obdobným postupem popsaným výše, na jeden jeho terminál připojíme (aditivní) konstantu 32 a všechny terminály propojíme do podoby znázorněné ve výřezu blokového diagramu na obr. 3.53. Na závěr VI uložíme postupem File»Save, příp. File»Save as,, zadáním jména jm souboru Prevod_C_na_F.vi a adresáře pro uložení a nakonec stiskem tlačítka OK.
Obr. 3.53 3 Blokový diagram Prevod C na F.vi 5. Zůstaneme u zobrazení blokového diagramu (pokud máme zobrazen čelní panel, potom stiskem Ctrl+E přejdeme na zobrazení blokového diagramu) a klikneme likneme levým tlačítkem myši na tlačítko se symbolem žárovky (Highlight ( Execution) na nástrojové liště blokového blokového diagramu. Symbol pohaslé žárovky se po stisku změní na symbol rozsvícené žárovky. Nyní stiskem tlačítka Run (resp. stiskem Ctrl+R) Ctrl+R) spustíme program a můžeme pozorovat datový tok po 59
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
spojích znázorněný v podobě tekoucích kuliček.. Je například patrné, že číslo 32 na vstupu funkce sčítání čeká, až se dokončí předchozí funkce násobení a teprve potom pokračuje vykonávání programu. 3.6.2. Datové typy spojů Různé objekty čelního panelu resp. jejich vstupy nebo výstupy jsou vzájemně propojeny různými datovými toky různých typů. Objekty resp. piny objektů různých, vzájemně neslučitelných, datových typů nelze vzájemně propojovat. Např. tlačítko je v blokovém diagramu označeno zeleným rámečkem, což odpovídá (dle tab. 3.1) binárnímu datovému typu (Boolean). Může být tedy spojeno spojem zelené barvy s dalším vstupem indikátoru (prvku) s rámečkem zelené barvy. Knoflík (otočný prvek, který umožňuje plynulé lé nastavování hodnot) je zase označen oranžovým rámečkem, což značí číselný datový typ s pohyblivou čárkou (Floating point) a může být propojen spojem oranžové barvy se vstupem prvku, který je označen rámečkem oranžové barvy nebo modré barvy, která značí prvky celočíselného typu. Na vstupu se pouze objeví červená tečka, která značí změnu datového typu. LabVIEW desetinné číslo zaokrouhlí na celé číslo. Naopak nelze oranžově označený knoflík připojit na vstup zelené barvy.
Poznámka: Spoje jsou označeny stejnou stejnou barvou, jakou jsou označeny připojovací terminály. Spoje však navíc určují šířkou spoje typ proměnné – skalár, D pole a D pole viz, obr. 3.9. Číselné datové typy Numeric) se dělí na typy, které uchovávají pouze celočíselné Číselné datové typy (Numeric hodnoty (Integer, Fixed-point), point), a na typy pro reálná čísla (Floating-point). (Floating V aplikacích je vhodné rozlišovat konkrétní typ a nastavit jejich formát předem tam, kde je jasné, s jakými daty bude VI pracovat. pracovat. Tím se u výpočtů (postprocesingu) většího objemu dat sníží doba výpočtů, převodů mezi číselnými datovými typy t a nadměrná alokace paměti. Nastavení formátu a přesnosti čísel se nastavuje pomocí pop-up up menu prvku na čelním panelu i pomocí pop-up pop menu terminálu rminálu tohoto prvku v blokovém diagramu. Položka Representation rozbalí menu s možnostmi datových typů. Ty jsou zde uvedeny jen zkratkami a symboly. Pro určitý typ terminálu lze nastavit jen některé typy formátů čísel datového toku.
a) u prvku b) u terminálu Obr. 3.544 Volba datového typu pomocí pop-up menu 60
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
LabVIEW pracuje s těmito datovými typy formátů čísel (Numeric): • EXT – datový typ s pohyblivou čárkou s rozšířenou přesností (extended(extended precision), • DBL – datový typ s pohyblivou čárkou s dvojitou přesností (double-precision), (double • SGL – datový typ s pohyblivou čárkou s jednoduchou přesností (single(single precision), • FXP – datový typ s pevnou čárkou (fixed-point), (fixed • I64 – datový typ celočíselný 63 bitů se znaménkem (quad (quad signed integer), • I32 – datový typ celočíselný 31 bitů se znaménkem (long signed integer), • I16 – datový typ celočíselný 15 bitů se znaménkem (word signed integer), • I8 – datový typ celočíselný 8 bitů se znaménkem (byte signed integer), • U64 – datový typ celočíselný eločíselný 64 bitů bez znaménka (quad unsigned integer), • U32 – datový typ celočíselný 32 bitů bez znaménka (long unsigned integer), • U16 – datový typ celočíselný 16 bitů bez znaménka (word unsigned integer), • U8 – datový typ celočíselný 8 bitů bez znaménka (byte (byte unsigned integer), • CXT – datový typ komplexní s rozšířenou přesností (complex extendedextended precision), • CDB – datový typ komplexní s dvojitou přesností (complex double-precision), double • CSG – datový typ komplexní s jednoduchou přesností (complex singlesingle precision). V tab. 3.2 je uveden přehled datových formátů čísel (Numeric) a jejich základních vlastností převzaté z manuálu LabVIEW. Tabulka 3.2: Přehled ehled vlastností datových formátů formát čísel (Numeric) Datový typ EXT
Velikost [bit] 128
Des. místa 15 - 33
DBL
64
15
SGL
32
6
FXP I64
64 64
18
I32 116 18 U64 U32 U16 U8 CXT CDB CSG
32 16 8 64 32 16 8 256 128 64
9 4 2 18 9 4 2 15 - 33 15 6
Rozsah min. kladné číslo: 6,48 . 10-4966 max. kladné číslo: 1,19 . 10+4932 min. záporné číslo: - 6 , 4 8 . 1 0 -4966 max. záporné číslo: - 1,19 . 10+4932 min. kladné číslo: 4,94 . 10-324 max. kladné číslo: 1,79 . 10+308 min. záporné číslo: - 4 , 94 . 10+324 max. záporné číslo: -1,79 . 10+308 min. kladné číslo: 1,40 . 10-45 max. kladné číslo: 3,40 . 10+38 min. záporné číslo: -1,40 . 10-45 max. záporné číslo: -3,40 . 10+38 dle nastavení
min. záporné číslo: –1 . 1019 max. kladné číslo: 1 . 1019 -2147483648 až 2147483647 (= 231) -32768 až 32767 (= 215) -128 až 127 (= 27)
0 až 1 . 1019 0 až 4294967295 (= 232) 0 až 65535 (= 216) 0 až 255 (= 28) jako u EXT, pro Re a Im část jako u DBL, pro Re a Im část jako u SGL, pro Re a Im část
61
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Při běžném nastavování se nejvíce používá formát čísel DBL především v případech, kdy je důležité ukládání do paměti a nechceme-li nechceme li dopustit přetečení rozsahu čísla. EXT formát se používá, jen pokud je to nezbytně nutné. Datový typ Boolean Datový typ Boolean může nabývat pouze dvou hodnot: False (nepravda) nebo True (pravda). a). Hodnota typu Boolean je výsledkem všech logických výrazů. Datový typ Waveform Datový typ Waveform je speciální formát (tzv. cluster – klastr) pro data z časové oblasti, který obsahuje tyto významné body: t0 – start time (t0) – čas začátku (první bod) průběhu, který se používá k synchronizaci vykreslování více průběhů do grafu nebo k určování zpoždění mezi jednotlivými průběhy, dt – delta t – časový interval mezi jednotlivými po sobě jdoucími body průběhu, který se dá zadat i v položce Propertier, Y – Waveform data – 1D pole čísel formátu DBL. Použití tohoto datového typu je velice jednoduché, protože funkce, VI a zobrazovací objekty (např. Waveform Chart) mají implementovánu funkci polymorfismu – což znamená, že jejich vstupy a výstupy se automaticky automatic přizpůsobují sobují typu vstupních dat. Datový typ Variant Datový typ Variant nepředstavuje konkrétní datový typ, může obsahovat kterýkoli jiný datový typ. Obsahuje atributy, jako je např. název a jednotka měřícího kanálu, kanálu text a další typy.. Funkce pro práci práci s těmito daty jsou v knihovně Functions»Advanced»Data Data Manipulation»Variant. Manipulation . Jakákoliv data z LabVIEW se dají zkonvertovat do typu Variant a pak s nimi lze libovolné pracovat. Příklad: Zkonvertujeme-lili data typu String do typu Variant, tato data pak obsahují text a informaci, že data jsou typu String. Typ Variant se používá tam, kde je nutné pracovat s daty nezávisle na jejich typu. Atributy se přidávají vají k další identifikaci datového typu Variant.. S proměnnou typu Variant lze provádět všechny operace, které jsou povoleny s jednotlivými datovými typy. String, Array a Cluster Datové typy String (řetězec), Array (pole) a Cluster (klastr) budou podrobněji popsány v kapitole 6.
62
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Přiřazení fyzikální jednotky ednotky Objektům Numeric Control a Indicator, který má datový typ s plovoucí desetinnou čárkou (DBL), lze na čelním panelu přiřadit fyzikální jednotku,, pokud reprezentuje fyzikální veličinu2. Jednotka je samostatně samostatně zobrazena vedle prvku. Typ jednotky se určí volbou v pop-up up menu objektu postupným postup výběrem Visible Items»Unit Items Label. Fyzikální jednotky se dají zadat jen pomocí jejich standardních značek, znač jako např. m, ft, s, kg, Hz apod. Pokud se rozhodneme svázat s hodnotou jednotku tímto postupem, musíme si dát pozor na následující vlastnosti LabVIEW: • Objektům Numeric Control a Indicator je možno na čelním panelu pomocí v pop-up položkou Visible Items»Radix Items (radix = kořen, základ) podle typu objektu zvolit číselný základ – desítkový, hexadecimální, decimální, oktalový nebo binární, příp. v tzv. SI notaci, která pracuje p s předponami jednotek. • Pokud má objekt definovanou konkrétní fyzikální jednotku, můžeme k němu připojit jen takový objekt, který má jednotku s ním slučitelnou nebo vypočítatelnou. LabVIEW důsledně hlídá hlídá vzájemnou shodu typů jednotek. jedno • Některé VI a funkce nkce neumí s fyzikálními jednotkami ami pracovat. Např. funkce inkrementace (zvětšení o jedničku) se musí nahradit klasickým přičtením, protože funkce inkrementace neví, má-lili zvětšení provést o 1 metr, m 1 milimetr nebo 1 kilometr atd.
2
Jednotky nelze používat ve Formula Nodes.
63
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
4. Programové ramové struktury Složka Structures obsahuje programovací struktury, tedy obdobu příkazů s větvením či cyklů,, které jsou čtenářům jistě známy z programování v jazyku C++, Delfi nebo dalších textových programovacích jazyků. Stejně jako v těchto programech řídí průběh vykonávání programu. V této části se seznámíme pouze s těmi nejpoužívanějšími strukturami: • smyčka For (For For Loop) Loop – vytvoření programového cyklu s předem známým počtem opakování, • smyčka While (While While Loop) Loop – vytvoření ření programového cyklu s opakováním v závislosti na splnění určité podmínky, • struktura Case – podmíněný příkaz nebo přepínač pro větvení vykonávání algoritmu, • Flat Sequence – jedna z možností zajištění sekvenčnosti provádění funkcí (užívá se zejména tehdy, tehdy, pokud není sekvenčnost zajištěna principem datového toku), • Formula Node – možnost efektivního způsobu zadání matematického vzorce. • MATLAB Script – možnost zadat část analýzy či výpočtu v programu MATLAB. Struktura se vkládá do blokového diagramu vytvářeného VI z palety Functions po vyvolání sub palety Programming»Structures (celá nabídka struktur je znázorněna na obr 4.1), případně ze sub palety Express»Execution Control (některé často používané struktury), struktury), struktury pro vkládání vzorců najdeme také v nabídce Mathematics»Scripts Scripts&Formulas.
Obr. 4.1 Paleta pro výběr výb programových struktur
64
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Po vybrání požadované struktury se tvar kurzoru změní na čtvereček s malým symbolem zvolené struktury, který lze při podržení podržení levého tlačítka myši roztáhnout na požadovanou velikost na plochu blokového diagramu. Data se přivádějí do struktury nebo se ze struktury odvádějí datovým spojem přes tzv. vstupní nebo výstupní tunel. Ve výstupním tunelu je hodnota k dispozici až po provedení posledního rámce nebo cyklu struktury. Vstupnímu tunelu lze povolit indexování, mód (typ) výstupního tunelu t je pro jednotlivé struktury přednastaven, lze ho ale změnit podle požadavku programátora. Na výběr je poslední hodnota (Last ( Value), indexace (Indexing Indexing), která se využívá při práci se strukturovanými datovými typy (pole), a zřetězení řetězení (Concatenating)., ( které je možno použít při práci s řetězci. 4.1. Smyčka For (For Loop) Jedna z nejúčinnějších věcí, které může počítač vykonávat je dělat stejné operace znovu a znovu, dokud není dosaženo požadovaného stavu. U smyčky myčky For (For Loop) je tímto stavem pevně stanovený počet opakování – např. získání 100 vzorků z nějakého senzoru. Smyčka For vykonává N krát opakování kódu nacházejícího se uvnitř smyčky (tzv. sub diagram). ). Číslo N se zadává prostřednictvím počítacího terminálu (levý horní roh smyčky) jako konstanta nebo má počet cyklů možnost zadat uživatel pomocí uživatelského rozhraní rozhr (např. Front Panel»Numeric»Numeric Numeric Control), Control informaci o aktuálním počtu dosud vykonaných cyklů i (v rozsahu i = 0 až N – 1) poskytuje iterační terminál,, který se vždy při vytvoření smyčky objeví v levém dolním rohu- viz obr. 4.2.
Obr. 4.2 Smyčka For Loop Hodnoty čísel N a i jsou ve formátu I32 v rozsahu 0 až 231 - 1. Hodnota ve formátu s plovoucí čárkou přivedená na terminál N je zaokrouhlena a převedena na formát I32. Přivede-li se na vstup N hodnota 0, cyklus se neprovede. Výstupní tunel je pro všechny typy proměnných přednastaven do módu indexace (Indexing), ), předpokládá se vytváření pole hodnot. Pokud potřebujeme u některé výstupní hodnoty ze smyčky pouze poslední hodnotu, je potřeba mód tunelu změnit. Provedení této změny si ukážeme u příkladu.
65
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Pokud chceme umožnit předčasné ukončení smyčky For, máme možnost vložit do ní podmínkový terminál resp. ukončovací podmínka, kterou si vysvětlíme více v kapitole 4.2 (Conditional Conditional Terminal). Terminal). Kliknutím pravého tlačítka myši na pravý okraj smyčky For se nám zobrazí pop-up menu s možnostmi nastavení vlastností smyčky For, kde vybereme Conditional Terminal – viz obr. 4.3.
Obr. 4.3 Vložení podmínkového terminálu do smyčky ky For Loop Tento terminál se objeví v pravém dolním rohu a u symbolu N v levém horním rohu r se objevil jeho obraz – obr. 4.4. Podmínkový terminál se při každém opakování smyčky vyhodnotí (dle postupu datového toku). Při splnění zadané podmínky smyčku předčasně ukončí tj. před dosažením požadovaného počtu opakování. Této možnosti využíváme např. ř. pro bezpečnostní ochranu v provozu při dosažení nějakých kritických hodnot nebo při nutné odstávce můžeme umožnit obsluze ukončení tlačítkem.
Obr. 4.4 Smyčka Smyč For Loops podmiňovacím ovacím terminálem V pop-up menu smyčky For je i možnost záměny na smyčku While While (Replace ( with While Loop), ), kterou si představíme dále. Pokud chceme smyčku odstranit, máme na výběr dvě možnosti. Pokud smyčku označíme (např. kliknutím na okraj) a stiskneme na klávesnici tlačítko Delete, odstraníme smyčku včetně celého sub diagramu uvnitř smyčky. Pokud chceme jen odstranit smyčku, ale obsah sub diagramu ponechat, vybereme z menu vlastností 66
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Remote For Loop.. Tato volba smaže smyčku, ale vnitřní strukturu sub diagramu ponechá, pouze rozpojí vše napojené na vstupní a výstupní tunely a terminály. t Se smyčkou zmizí také číslo N, iterační a případně i podmínkový terminál. Volbu Add Shift Register si vysvětlíme v kapitole 4.3.1. Nyní si na příkladu ukážeme postup vytvoření programu se smyčkou For pro vygenerování 100 náhodných čísel. 1. Vytvoříme prázdné VI např. výběrem File»New VI. 2. Chceme generovat náhodná čísla, proto do blokového diagramu vložíme funkci Random Numeric z palety Programing»Numeric.. Indikátor, který nám vybraná čísla bude zobrazovat na uživatelském rozhraní, rozhraní vytvoříme nejrychleji ne kliknutím pravého tlačítka myši na výstup funkce Random Numeric N a volbou Create»Indicator.. Na obrázku 4.5 vidíme současný vzhled uživatelského rozhraní i obsah blokové diagramu.
Obr. 4.5 4. Generování náhodného čísla 3. Nyní vytvoříme smyčku For. Vybereme ji v nabídce Programing»Strucures Programing» kliknutím m levého tlačítka myši, myši myš umístíme do prostoru vlevo nad připravené generování náhodného čísla, klikneme na pravé tlačítko myši, myš přesuneme na pravou stranu pod připravený program. p Poté opět klikneme na pravé tlačítko myši. Tím ím se vytvoří smyčka – jak je vidět na obr. 4.6 a). Na vstup čísla N vytvoříme konstantu (obdobně jako indikátor v bodě 2, jen zvolím Constant), ), kterou nadefinujeme na hodnotu 100 – viz obr. 4.6b). 4.6b)
a) krok 1
b) krok 2
Obr. 4.6 Smyčka Smy Loop s generováním náhodného čísla 4. Pokud si teď spustíte program, bude vykonán v řádu několika milisekund. Na uživatelském rozhraní budete schopni rozeznat jen poslední vygenerovanou hodnotu. 5. Abychom byli schopni sledovat děj, můžeme si ho např. zpomalit stiskem žárovky v horní liště blokového diagramu. Tuto možnost má pouze 67
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
programátor, funkce je určena pouze pro ladění programu, jak bylo již vysvětleno v kapitole 2. 6. Pokud kud chceme, aby průběh generování mohl sledovat i uživatel, můžeme průběh smyčky zpomalit. Do těla smyčky vložíme funkci Wait (Programing»Timing Timing), ), která způsobí čekání po nastavenou dobu v milisekundách. Na vstup přivedeme hodnotu 1000 – obr. 4.7. Jedna smyčka sm tedy bude trvat přibližně 1 sekundu a celý program cca 100 sekund.
Obr. 4.7 4. Rozšíření smyčky o časové zpoždění 7. V tomto případě se nám může hodit použití předčasného ukončení, aby uživatel mohl generování ukončit sám. Do smyčky vložíme podmínkový terminál (viz obr. 4.3) a k němu připojíme tlačítko. Pokud využijeme stejný postup jako v bodě 2 s volbou Control,, vytvoří se nám na uživatelském rozhraní automaticky tlačítko STOP se správnou mechanickou akcí. Na obr. 4.8 vidíme konečný vzhled uživatelského uživatelského rozhraní i blokového diagramu.
Obr. 4.8 Konečný čný ný program zobrazení generovaných náhodných čísel 8. Program je kompletní a můžeme hotový program vyzkoušet.
Poznámka 1:: Při tvorbě programu je nutno mít na zřeteli, že průběh programu i v subdiagramu řídí datový tok a ne umístění bloků v rámci prostoru smyčky. Poznámka 2: Rychlé vytváření terminálu konstant nebo prvků vstupu (control) ( nebo výstupu (indicator)) lze provést kliknutí pravým tlačítkem myši na daném pinu vstupu nebo výstupu terminálu nebo uzlu u a volbou Create v pop-up pop menu. Tímto postupem lze vložit jako vstupní hodnotu konstantu (konkrétní hodnotu) – volbou 68
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Constant,, vstupní ovládací prvek (pro vstup hodnoty z uživatelského rozhraní) rozhraní – volbou Control,, nebo zobrazovač/indikátor (výstupní hodnotu) hod – volbou Indicator. 4.2. Smyčka While Loop Struktura While Loop (smyčka While)) se používá pro vytvoření opakování algoritmu ve VI po dobu podle zadané ukončovací podmínky (datového typu Boolean), viz obr. 4.5. Cyklus může být ukončen tehdy, je-li je li stav ukončovací podmínky přivedený na vstup podmínkového terminálu podle předchozího nastavení buď True (pro nastavení Stop If True) True – viz obr. 4.5 a), nebo False (pro nastavení Continue if True) – viz obr. 4.5 b). Nastavení se volí v pop-up pop up menu vyvolaném kliknutím knutím pravého tlačítka na podmínkový terminál a zaškrtnutím příslušné podmínky. Protože VI čeká na splnění podmínky na konci proběhnutí každého každého cyklu, provede se kód ve smyčce vždy minimálně jedenkrát. Aktuální počet dosud vykonaných cyklů i poskytuje iterační terminál stejně, jako tomu bylo ve smyčce For.
a) Stop if True
b) Continue if True
Obr. 4.9 Smyčka ka While (While Loop) – nastavení podmínkového terminálu Pop-up up menu smyčky While je na obr. 4.10. Položka Remote While Loop je identická s položkou Remote u smyčky For Fo Loop – vymaže smyčku a zachová její sub diagram (program uvnitř smyčky) Pop-up up menu obsahuje reciproční záměnu za smyčku For Loop.
69
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. br. 4.10 Pop-up Pop menu smyčky While (While Loop) Přímo v pop-up menu je pro smyčku While i nabídka záměny za Timed Loop (časem řízenou smyčku), té se v této knize ale věnovat nebudeme, patří do vyšších programovacích struktur. V pop-up menu můžeme volit funkci podmínkového terminálu zaškrtnutím Stop if True nebo Continue if True ue. Volbu Add Shift Register si vysvětlíme v kapitole 4.3.1. Nyní si s využitím smyčky While vytvoříme program pro sčítání čísel, které se bude opakovat tak dlouho, dokud nebude stisknuto tlačítko STOP. 1. Vytvoříme prázdné VI např. výběrem File»New VI. 2. Nyní zvolíme opačný postup tvorby programu než v příkladu v kapitole 4.1 – nejprve si do blokového diagramu vložíme smyčku. Z palety Functions»Programming»Structures vybereme strukturu While kliknutím pravého tlačítka myši na While Loop. Myš se nám změnila na ikonu smyčku while, přeneseme ji na plochu p blokového diagramu, kurzor myši umístíme, umístíme kde chceme mít levý horní roh smyčky, klikneme na pravé tlačítko myši, přesuneme myš na polohu pravého dolního rohu smyčky a opět klikneme na pravé tlačítko myši. Na ploše blokového diagramu by se měla vytvořit smyčka jako je na obr. 4.9 a). 3. Na vstup podmínkového terminálu umístíme tlačítko STOP pomocí pomo pop-up menu terminálu Create»Control Create» obr. 4.11.
70
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. br. 4.11 Smyčka Smy While – ukončení stiskem tlačítka tka STOP V řadě případů budeme na vstup podmínkového terminálu připojovat tlačítko STOP, v tom případě nám práci urychlí vložení smyčky While z palety Functions»Express»Exec Control. Control. V tomto případě se přeskočí podoba z obr. 4.9 a) a vytvoří se rovnou podoba pod smyčky podle obr. 4.11. 4. Do plochy smyčky While vložíme funkci funkci sčítání z palety Functions»Programming»Structures a indikátor hodnoty výsledku stejně jako vstupní hodnoty vložíme např. pomocí pop-up pop up menu terminálů funkce Add jak bylo shrnuto v poznámce 2 za příkladem v kapitole 4.1. Pokud budeme vkládat vstupní a výstupní hodnoty v uživatelském rozhraní (např. Controls»Modern»Numeric jejich terminály se náhodně umístí v blokovém Controls»Modern»Numeric), diagramu. Musíme je následně přesunout do smyčky While a propojit s funkcí Add. Je vždy na výběru programátora, zda je pro něj výhodnější náhodné umístění terminálů v blokovém diagramu nebo v uživatelském rozhraní. 5. Výsledný program v blokovém diagramu je na obr. 4.12,, po jeho spuštění spuštěn se budou opakovaně sčítat čísla X a Y a uživatel má možnost je v průběhu chodu programu měnit (šipkami nebo zápisem).
Obr. br. 4.11 Opakované sčítání s dvou čísel Zastavme se ještě chvilku u chodu tohoto programu a vysvětleme si podrobněji některé detaily umístění a funkce programu. programu • Pokud program spustíte a zkontrolujete si vytížení procesoru (CPU) Vašeho počítače zjistíte, že pouhé sčítání dvou čísel vytěžuje procesor na cca 80 – 90%. Této hodnoty dosáhnete bez ohledu na kvalitu počítače a počet jader procesoru. LabVIEW je vytvořeno tak, že se snaží vytěžovat procesor co 71
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
nejvíce a zrychluje tak průběh jednotlivých smyček. Proto tam, kde nepoužíváte přesnou časovou synchronizaci, synchronizaci doporučujeme dávat do všech typů ypů smyček (a především smyček While) drobné zpoždění pro práci CPU na pozadí. Tuto funkci jsme použili i pro zpomalení smyčky For Loop v kapitole 4.1. Pokud si vytvořený program doplníte o funkci Wait (Programing»Timing Programing»Timing), se vstupní hodnotou pouhé 1 ms, dojde d k uvolnění CPU a jeho vytížení klesne na minimum.
Obr. br. 4.12 Opakované sčítání s dvou čísel s uvolnění ní CPU •
Umístění číselných vstupů x a y uvnitř smyčky umožňuje jejich změnu v průběhu vykonávání smyčky. Smyčka v každém běhu načítá jejich hodnotu znovu. ovu. Pokud bychom umístili jedno nebo obě hodnoty mimo tělo smyčky, program by načetl hodnotu/y jen při vstupu datového toku do smyčky a pak je pro každé opakování bude brát jako konstantu a jejich změna nebude mít na průběh sčítání vliv. Pokud přesuneme číselný č vstup x vně smyčky, vytvoří se na hranici smyčky oranžový čtvereček – tunel (datový typ Integer). Intege Pokud nyní stisknete tlačítko Run, program se rozběhne a výsledná hodnota součtu bude ovlivněna pouze změnou hodnoty y. Při změně pouze hodnoty x se výsledný součet nezmění. Takový program je na obr. 4.13 a jeho funkci si můžete vyzkoušet.
Obr. br. 4.13 Sčítání S s umístěním hodnoty x vněě smyčky smyč •
Umístíme-lili tlačítko STOP (připojené k podmínkovému terminálu) vně smyčky While, při vytvoření datového spoje (jde o spoj binárního datového typu – 72
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
tedy zelené barvy) se na hranici smyčky vytvoří zelený čtvereček – tunel (viz obr. 4.14). ). Pokud nyní stiskneme stiskne tlačítko Run,, program se rozběhne, avšak stiskem tlačítka STOP na čelním panelu jej nelze zastavit. Důvodem je skutečnost, že LabVIEW pracuje na principu datového toku a datové vstupy smyčky se tedy přečtou ve chvíli jejího spuštění. Pokud tedy před spuštěním spu programu je na vstupu smyčky (tj. v místě tunelu) stav FALSE (tj. tlačítko STOP není stisknuté), smyčka se stále vykonává a lze ji zastavit jen „násilně“ stiskem tlačítka Abort Execution. Execution. Jiná situace nastane, jestliže před spuštěním programu (tj. před před tím, než stiskneme tlačítko Run) stiskneme tlačítko STOP na čelním panelu. Tak se vlastně již před spuštěním programu na vstupu podmínkového terminálu nachází hodnota TRUE a v okamžiku spuštění se tento sttav av vyhodnotí a smyčka již dále nepokračuje. Smyčka se v takovém případě provede pouze jednou.
Obr. 4.14 Sčítání čítání s umístěním tlačítka STOP mimo tělo ělo smyčky smyč Ukažme si ještě jeden příklad pro využití smyčky While a několika poznámek v předchozích příkladech. Máme vytvořit simulaci napouštění nádrže. Čerpadlo má vydatnost 2 litry za sekundu. Nádrž má objem 200 litrů. Simulaci lze ukončit stiskem tlačítka STOP nebo naplněním nádrže.. Zobrazování hodnoty nádrže je v intervalu 1 sekunda. Před začátkem programu je možno zadat počáteční hodnotu v nádrži. 1. Nejprve si na panelu uživatelského rozhraní vytvoříme simulovanou nádrž. Lze pro ni použít Tank v nabídce palety Controls»Modern»Numeric. Controls»Modern»Numeric Zobrazíme si z pop-menu menu Properties a ke grafickému panelu zobrazíme jeho číselnou hodnotu zaškrtnutím Show digital display(s).. Maximální hodnotu nastavíme na 200 a Label přejmenujeme na Nadrz. 2. Ještě nastavíme počáteční hodnotu nádrže např. Numeric Control z palety Controls»Modern»Numeric přejmenujeme na Pocatecni hodnota nadrze. Controls»Modern»Numeric, 3. Přepneme se do blokového diagramu (Ctrl+E) ( ) a vytvoříme smyčku While z palety Functions»Express»Exec Control, Control, oba terminály z bodu 1 a 2 umístíme do těla smyčky, smyčky, terminál Pocatecni hodnota nadrze vlevo před smyčku.. Přepneme se zpět na uživatelské rozhraní (Ctrl+E (Ctrl+E) a vhodně přemístíme tlačítko lačítko STOP. ST Vytvořené uživatelské rozhraní je na obr. 4.15 a blokového diagramu na obr. 2.16.
73
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. br. 4.15Uživatelské rozhraní simulace plnění plnění nádrže
Obr. br. 4.16 Blokový diagram simulace plnění pln nádrže po bodu 3
4. K načítání hodnoty nádrže využijeme hodnotu i (iterace) smyčky While. Ta se mění s počtem ukončených cyklů od 0. Pokud opakování smyčky zpomalíme na 1 sekundu, budeme jednoduše zobrazovat hodnotu nádrže v požadovaném intervalu. Do těla smyčky proto doplníme doplníme Wait z palety Functions»Program mming»Timing se vstupem 1000 ms – obr. 4.17.
Obr. br. 4.17 Blokový diagram simulace plnění pln ní nádrže po bodu 4
74
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
5. Po spuštění programu budeme k hodnotě počátečního stavu přičítat hodnotu iterace vynásobenou dvěma, tím dosáhneme postupného napouštění nádrže. Program doplníme o funkci sčítání a násobení. Doplníme propojení mezi jednotlivými terminály – obr. 4.18
Obr. br. 4.18 Blokový diagram simulace plnění pln ní nádrže po bodu 5 6. V tuto chvíli program simuluje napouštění nádrže, ale ještě ještě není zohledněna naplněnost nádrže. Abychom zohlednili množství vody v nádrži, rozpojíme spoj mezi tlačítkem STOP a podmínkovým terminálem. Vložíme porovnání (rovnost) a budeme vyhodnocovat rovnost výstupu ze součtu s maximální hodnotou (v našem případě s hodnotou 200). Obě hodnoty Boolean pak logicky sečteme (OR) a výstup připojíme k podmínkovému terminálu – obr. 4.19.
Obr. br. 4.19 Blokový diagram simulace plnění pln ní nádrže 7. Všechny podmínky zadání jsou splněny a výsledný program na obr. 4.19 považujeme pro tuto chvíli za hotový. V kapitole 4.3 se k němu ještě vrátíme. 4.3. Posuvný registr a zpětnovazební uzel Při programování smyček For nebo While často potřebujeme přístup k datům z předchozího cyklu (předchozí iterace). Při programování lze k tomu využít dvou nástrojů: posuvný registr (Shift Shift Register) Register a zpětnovazební uzel (Feedback Feedback Node). Node
75
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
4.3.1. Posuvný registr (Shift Register) Posuvný registr přenáší hodnoty z jednoho kroku iterace (kroku cyklu) smyčky For nebo While do následujícího. Jedná se tedy o zvláštní lokální proměnnou, která předá do ní přivedenou výstupní hodnotu na konci jednoho cyklu (iterace) jako vstupní hodnotu v dalším cyklu (iteraci). Posuvný registr vytvoříme s pomocí pup-up up menu (obr. 4.3 pro For Loop a 4.10 pro While Loop), výběrem položky Add Shift Register.. Na obrysu smyčky se tak vytvoří levý vstupní a pravý výstupní terminál posuvného registru (Shift Shift Register). Register Je-li třeba, lze dříve vytvořený posuvný registr smazat tím, že na něj klikneme a pak stiskneme tlačítko Delete. Jedna smyčka může ůže mít více Shift registrů. registrů Vytvořený posuvný registr je typově nedefinovaný, zobrazí se jako žlutě zbarvený – obr. 4.20. Datový typ (a tím i barvu datového typu) přijme až propojením s terminálem uvnitř smyčky. Vstupní i výstupní terminál posuvného registru registru se chová jako pár, proto se posunutím jednoho na jedné straně smyčky posune stejně i druhý terminál.
Obr. br. 4.20 Vytvořený Vytvo nepřipojený Shift Register Posuvný registr je nutno inicializovat, tj. přivést na jeho vstupní (levý) terminál zvenčí hodnotu tu již pro první cyklus („nultý“ iterační krok). Při dalším cyklu je vstupem hodnota z posledního průběhu cyklu (resp. při předchozím spuštění VI). Na to je potřeba si dát pozor a na inicializaci pro první cyklus smyčky nezapomínat. Iteraci je potřeba provést vést až po definici datového typu registru. Průchod dat po sobě jdoucími cykly smyčky While s použitím posuvného registru je znázorněn na obr. 4.21. 4. U smyčky For je průchod dat identický.
Obr. br. 4.21 Tok dat pomocí posuvného registru Ukážeme si jednoduchý příklad pro použití posuvného registru. Máme vytvořit program, který bude počítat součet čísel od 1 do 10. 76
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
1. Začneme vytvořením nového VI (Blank ( VI) a do blokového diagramu vložíme smyčku For. smyčky a výběrem Add Shift 2. Nyní vytvoříme posuvný registr kliknutím na okraj smyčky Register z pop-up up menu. 3. Z palety Functions»Progra »Programming»Timing vložíme do smyčky For funkci součtu, k jednomu vstupnímu terminálu součtu připojíme terminál iterace i a k druhému vstupnímu terminálu součtu připojíme vstupní terminál posuvného po registru. V tuto chvíli ještě nemá posuvný registr nadefinovaný typ proměnné, proto se neděste rozpojeného spoje mezi vstupním terminálem posuvného registru a vstupem funkce součtu – obr. 4.22.
O 4.22 Připojení vstupů funkce součtu Obr. 4. Výstupní terminál součtu připojíme k výstupnímu terminálu posuvného registru,, tím dojde k nadefinování datového typy a oba terminály termin posuvného registru zmodrají – obr. 4.23
O 4.23 Připojení vstupů funkce součtu Obr. 5. Pro správnou funkci programu musíme ještě ještě inicializovat vstupní terminál posuvného registru vytvořením konstanty 0 a musíme určit počet opakování cyklu. Protože máme sčítat čísla do 10 a i bude rovno 10 při jedenáctém opakování smyčky, vložíme do N hodnotu 11 – obr. 4.24.
Obr. br. 4.24 Inicializace posuvného registru a nastavení N 6. Ještě zbývá vložit výstupní indikátor pro zobrazení výsledku součtu. Ten připojíme za smyčku k výstupu z posuvného registru. Součet se zobrazí po skončení smyčky. Výsledný program je na obr. 4.25. 77
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 4.25 Součet čísel od 1 do 10 V příkladu jste si mohli všimnout, že barva terminálu (při jeho vytvoření žlutá) se přizpůsobí datovému typu, s nímž posuvný registr pracuje. Proto lze např. na vstup připojit konstantu (tedy hodnotu pro inicializaci) teprve poté, až je definován datový typ, tzn. k terminálu nejprve musíme připojit datový spoj uvnitř nitř smyčky (viz body 3 a 4 příkladu). Kdybychom chtěli vytvořit program pro výpočet číselného faktoriálu 10!, nešlo by jen nahradit součet součinem v předchozím programu,, ale bylo by nutno k iteraci i přičítat jedničku a teprve pak ji vkládat do součinu, Hodnota N by pak byla byl pouze 10. Konečný program je na obr. 2.26.
Obr. 4.26 Výpočet faktoriálu 10! Pokud budeme k výpočtu uvnitř smyčky potřebovat hodnotu zapsanou do posuvného registru nejen z předchozího iteračního kroku, ale z většího počtu předchozích kroků, lze využítt možnost vložení prvků k posuvnému registru,, jak je naznačeno na obr. 4.27 a).. Kliknutím pravého tlačítka myši na obrys smyčky v místě vstupního terminálu posuvného registru se zobrazí pop-up pop menu a v něm vybereme položku Add Element.. Přidáme tím jeden prvek pr k posuvnému registru, který nese hodnotu vždy o jeden krok zpět. Při odebrání prvku zvolíme položku Remove Element, Element případně Remove All (při odebrání všech elementů). Na obr. 2.27 b) je naznačeno, jak jsou prvky posuvného registru řazeny. Každý prvek je je nutné také inicializovat.
78
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
a) přidání idání dalšího prvku Shift registru b) řazení prvků ů Shift registru Obr. br. 4.27 Elementy posuvného registru Pokud se pokusíte vytvořit další prvek u výstupního terminálu posuvného registru, vytvoří se opět u vstupního terminálu. Pokud je potřeba použít předchozí prvek do dalšího programu po ukončení smyčky, je nutno ho vyvést jako samostatnou hodnotu pomocí výstupního tunelu jak je vidět na obr. 2.28.
Obr. br. 4.28 Výstup Výst kroku n-1 ze smyčky 4.3.2. Zpětnovazební uzel (Feedback Node) V případech, kdy chceme uložit data získaná v jednom kroku iterace (kroku cyklu) a použít je v kroku následujícím uvnitř jedné smyčky nebo jednoho VI, lze použít zpětnovazební uzel (Feedback Node). Stejně jako posuvný registr je i zpětnovazební uzel nutno před spuštěním VI inicializovat, tedy nastavit jeho výchozí hodnotu prostřednictvím inicializačního terminálu. Vraťme se nyní k příkladu použití posuvného registru z obr. 4.26). Klikneme-li Klikneme nyní pravým tlačítkem na terminál posuvného registru, můžeme v zobrazeném pop-up pop menu zvolit položku Replace with Feedback Node. Node. Tím nahradíme použití posuvného registru uvnitř smyčky zpětnovazebním uzlem uzlem a struktura blokového diagramu se změní do podoby z obr. 4.29 a), po připojení konečné hodnoty přes tunel (nutno změnit mód tunelu na Last Value) k indikátoru získáme výsledný program, který je na obr. 2.29 b). b)
79
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
a) krok 1
b) krok 2
Obr. 4.29 Náhrada posuvného registru zpětnovazebním zp tnovazebním uzlem Výchozí (inicializační) hodnota zpětnovazebního uzlu se přivádí na incializační terminál. Šipka v symbolu zpětnovazebního uzlu potom ukazuje směr datového toku, tj. směr dat plynoucích z jednoho kroku ke kroku následujícímu. Je-li Je třeba směr datového toku změnit (to znamená změnit směr toku dat uložených v předchozím kroku), lze kliknout pravým tlačítkem na ikonu uzlu a v pop-up pop up menu zvolit položku Change Direction (změna směru).
4.4. Struktura Case Mnohokrát, když vyvíjíme počítačový program, musíme činit rozhodnutí a provést jednu sadu kódu, pokud je splněna podmínka, podmínka a další soubor kódu v případě, že podmínka je nepravdivá. Tím dochází k větvení programu podle různých podmínek. V běžných h textových programovacích jazycích jsou to příkazy typu If, Then, Else, které fungují jako přepínače toku dat. V LabVIEW jsou všechny tyto příkazy nahrazeny strukturou Case. Obsluha každé podmínky je potom řešena v samostatném sub diagramu – rámci (frame).. Volba konkrétního rámce se provádí řídicím signálem přivedeným na vstupní výběrový terminál (tzv. selektor). Je-li řídicím signálem logický datový typ (Boolean), ( ), jsou rámce automaticky označeny jako True a False – obr. 4.30. 4.30
Obr. 4.30 4. Struktura Case typ Boolean U signálu dalších typů (číselný, znakový) jsou rámce označeny celými čísly počínaje nulou, resp. znakovými hodnotami a jeden rámec musí být vždy definován jako výchozí (Default) tj. jako rámec, který se provede, pokud podmínce na selektoru nebude odpovídat ídat žádný definovaný rámec – obr. 4.31.
80
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 4.31 4. Struktura Cases číselným selektorem Obrys struktury Case vložíme obdobně jako obrys struktur For či While. Z palety Functions»Programming»Structures (obr. 4.1) klikneme na ikonu Case Structure a kurzor,, který se změnil na čtvereček se symbolem otazníku, vytvoříme obrys struktury. Základní variantou je dvouhodnotová logická struktura (typu Boolean) s dvěma rámci – s jedním pro hodnotu log. 0 (False)) a s druhým pro hodnotu log. 1 (True), ), jak je znázorněno na obr. 4.30. V horní části každého rámce se nachází pole s popiskem selektoru (Selector Label). Přechod z jednoho rámce struktury lze provádět kliknutím na šipku doprava na rámec pro další hodnotu vzestupného pořadí (tlačítko inkrementu), ), resp. na šipku doleva na rámec pro další hodnotu sestupného pořadí (tlačítko dekrementu). dekrementu V daném rámci obsažený algoritmus se vykoná jen tehdy, je-li je li na výběrovém vstupu (selektoru) přítomna hodnota deklarovaná v popisku selektoru rámce. Jedna z hodnot může být deklarována jako výchozí (Default Default), ), jak je znázorněno na příkladu na obr. 4.31. 4. Bez této hodnoty bude u číselných a znakových vstupů hlášena chyba – místo bílé šipky Run přeškrtnutá šedá šipka obsahující Error List. Kliknutím na šipku dolů rozbalíme rozbal pop-up up menu struktury Case, které umožňuje práci s jednotlivými rámci Case – obr. 3.32
81
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 4.32 Pop-up Pop menu Case struktury Menu obsahuje mnoho položek, vysvětleme si jen ty nejčastěji používané, používané některé nejsou na obr. 4.32 zobrazeny (zobrazují se jen možnosti, které lze u dané Case použít): • Remove Case Structure – smaže strukturu, obsah rámců bude zachován, zachován • Add Case After – vloží nový rámec před za otevřený rámec, • Add Case Before – vloží nový rámec před právě otevřený rámec, • Duplicate This Case – vytvoří kopii rámce a zařadí ji za právě otevřený rámec k další úpravě – zobrazena zůstane kopie, • Delete This Case – smaže právě otevřený rámec, • Rearange Cases… – umožňuje měnit pořadí rámců, • Show Case – umožňuje přepínání mezi rámci stejně jako kliknutí levého tlačítka myši na šipku dolů, • Add Case For Every Value – načte všechny názvy vstupů ze selektoru a vytvoří pro ně rámce, • Make This The Default Case – označí otevřený rámec jako výchozí (Default). Připojíme-li na výběrový vstup (selektor) jiný datový typ (např. číselný), barva selektoru původně zelená (předpokládá se logický datový typ) se změní na jinou odpovídající datovému typu (např. na modrou nebo oranžovou) a počet vytvořených rámců musí odpovídat všem variantám konkrétních datových hodnot, které kter se budou na výběrovém vstupu při běhu programu vyskytovat. Na obr. 4.35 4. je uveden příklad 82
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
struktury Case pro číselné hodnoty na selektoru v rozsahu 0 až 3. Takže např. v rámci s popiskem 2 se vytvoří programová obsluha pro případ, kdy je na selektor přivedena edena číselná hodnota 2, v rámci s popiskem 3 se vytvoří programová obsluha pro případ, kdy je na selektor přivedena číselná hodnota 3 atd. Vytvořme si příklad, který ukazuje změnu textu popisu programu na uživatelském prostředí podle hodnoty číselného vstupu na selektoru. 1. Na uživatelském rozhraní nového VI si vytvoříme pro simulaci číselný vstup např. z palety Controls»Modern»Numeric, Controls , který nadefinujeme na datový typ U32 (v blokovém diagramu bude mít modrou barvu) a textový výstup (indikátor) např. z palety pal Controls»Modern»String&Path.. 2. Přepneme se do blokového diagramu (Ctrl+E), ( ), mezi oba prvky vložíme Case strukturu a na její selektor přivedeme číselný vstup – obr. 4.33, tím se True a False změnilo na 0, Default a 1.
Obr. 4.33 Připojení číselného selektoru 3. Počet rámců (frame) potřebujeme podle zadání zvýšit ještě o 2 a 3. To provedeme pomocí pop-up pop up menu, které rozbalíme kliknutím na šipku dolů vedle názvu rámce – viz obr. 4.32 a zvolíme dvakrát Add Case After. Nyní máme připraveny 4 rámce s názvem 0, Default ; 1 ; 2 ; 3. 4. Do rámce 0, Default vložíme z palety Functions»Programming»String konstantu typu string do které vepíšeme „Chyba programu“ a spojíme ji s výstupní hodnotou Stav chodu – obr. 4.34. Jak je vidět, výstupní tunel je orámovaný barevně podle podle datového typu, ale je prázdný. Toto označení značí, že ostatní rámce nemají tento výstupní tunel definovaný. Dokud tak neučiníme, program bude hlásit chybu a nepůjde spustit.
Obr. 4.34 Nastavení rámce 0, default 5. Postupně přepínáme mezi rámci 1 ; 2 ; 3 a definuje konstantu, kterou připojíme ke společnému výstupu, jak je zobrazeno na obr. 4.35 a), b) a c). Teprve po definici posledního rámce (rámec 3) je výstupní tunel vyplněn barvou, což indikuje, že všechny rámce nají tento výstupní tunel nadefinovaný. 83
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 4.35 4.35 Definice výstupního tunelu Case struktury 6. Abychom mohli program vyzkoušet, dáme celou Case strukturu ještě do smyčky While, kterou budeme ukončovat stiskem tlačítka STOP a nezapomeneme na časové zpoždění např. 1000 ms. Obr. 4.36
a) uživatelské prostředí edí Obr. 4.36 Konečný program
b) blokový diagram
Nyní si v přehledu popíšeme zadávání hodnot selektoru pro vykonání rámce: • Pokud je třeba, aby se program v daném rámci vykonal pro určité hodnoty přivedené na selektor, běžně se v popisku uvede jedna hodnota (viz např. obr. 4.35). • Pokud se má program v jednom rámci vykonat pro více hodnot přivedeným na selektor, uvede se v popisku seznam těchto hodnot oddělených čárkou (např. 4, 6, 7 nebo 0,, Default = jakákoliv jiná nedefinovaná hodnota – obr. 4.34). • Má-lili se program v daném rámci vykonat pro určitý rozsah hodnot, potom se do popisku zapíše hodnota dolní a horní meze (uzavřeného) intervalu s dvěma tečkami mezi nimi (např. pro interval <20, 30> se napíše 20..30). • Má-lili se program v daném rámci vykonat pro hodnotu menší nebo rovnu zadanému číslu, resp. větší nebo rovnu zadanému číslu, zapíše se tato hodnota s dvěma tečkami před číslem, resp. za číslem (např. zápis ..10 reprezentuje všechny hodnoty hodnoty menší nebo rovny než je 10, zápis 100.. reprezentuje všechny hodnoty větší nebo rovny 100). Tento zápisy lze také vzájemně kombinovat.
84
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Dále si uvedeme několik příkladů s využitím struktury Case: oužití logické struktury Case (tj. s binárním řídicím signálem na Příklad 1: Použití selektoru) s využitím datových tunelů. Naším úkolem bude provádět výpočet součtu nebo rozdílu dvou čísel X a Y přivedených ze dvou číselných vstupů na dva vstupní datové tunely. Volba typu výpočtu výpočtu se bude provádět páčkovým přepínačem přivedeným na selektor. Podle nastavení páčkového přepínače se v rámci struktury Case s popiskem True vypočte součet čísel X+Y, v rámci s popiskem False potom rozdíl čísel X-Y.. Výsledek z obou rámců je přiveden přes řes výstupní tunel na číslicový zobrazovač (indikátor) výsledku. 1. Na plochu uživatelského rozhraní umístíme páčkový přepínač (např. z palety Controls»Express»Buttons&Switches»Toggle Switch), Switch dva číselné vstupy (např. z palety Controls»Express»Numeric Controls) Controls a číselný indikátor (např. z palety Controls »Express»Numeric Indicators). Indicators Polohy páčkového přepínače označíme textovými popiskami (dvojklikem na plochu postupně vložíme popisky s textem Sčítání a Odčítání a ty potom umístíme do krajních poloh páčkového čkového přepínače). Popisky u číselných vstupů a indikátorů upravíme podle obr. 4.37. 4.3 2. Potom přepneme na zobrazení blokového diagramu (Ctrl+E (Ctrl+E) a upravíme rozmístění dosud vložených prvků. Z palety Functions»Express»Exec Controls»Case Structure vložíme obryss struktury Case. Do rámce True vložíme funkci sčítání Add (Functions»Programming Programming»Numeric) a propojíme datové spoje. Nakonec přepneme do rámce False, vložíme obdobně funkci odčítání Substract tract a dokončíme datové propojení.
Obr. 4.37 Příklad íklad použití struktury st Case pro sčítání a odčítání čítání dvou čísel Příklad 2: Další příklad využití struktury Case je uveden na obr. 4.18. Zde je naším úkolem provádět dělení dvou čísel X (dělenec) a Y (dělitel) a při dělení nulou bude výsledek kladné nekonečno. nekonečno 1. Obdobně jako v předchozím příkladu jsou čísla X a Y přivedena ze dvou číselných vstupů na dva vstupní datové tunely do rámců struktury struktur Case. 2. Tentokrát využijeme vstupní selektor pro vyhodnocení případu, kdy dělitel Y má hodnotu rovnu nule, v tom případě nabývá výsledek výsledek dělení X/Y hodnoty nekonečna +∞. Na vstup selektoru je přiveden logický signál vytvořený z logické funkce ≠0 (různé (různé od nuly), na jejíž vstup je přivedena přive číselná hodnota dělitele Y. Je-lili hodnota čísla Y různá od nuly, bude na výstupu 85
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
logické funkce ≠0 logická hodnota True a vykonává se rámec označený ozna popiskem True. Je-lili zadána hodnota čísla Y = 0, bude na výstupu logické funkce ≠0 logická hodnota False a vykonává se rámec označený ozna popiskem False. 3. Datové spoje z číselných ovladačů X a Y jsou přivedeny přivedeny přes datové tunely do rámce True, kde je vložena funkce dělení Divide a její výstup je přiveden datovým spojem přes výstupní datový tunel na číselný indikátor označený popiskem Vysledek X/Y. X/Y 4. V rámci False nepřipojíme vstupní datové tunely (v tuto chvíli nás nezajímá jimi přenášená hodnota) a na výstupní tunel přivedeme konstantu nesoucí hodnotu „kladného nekonečna“ (+Inf) tak, že na vstup tunelu (na vnitřní straně rámce False) klikneme pravým tlačítkem a v pop-up pop up menu zvolíme Numeric Palette»+Inf. Palette»+Inf Do rámce mce ještě vložíme funkci (subVI) Beep.vi, která při vyvolání vygeneruje krátký zvukový signál. Vložení provedeme postupnou volbou Functions»Programming»Graphics&Sound»Beep.vi – obr. 4.38.
Obr. 4.38 Struktur truktura Case pro dělení čísel s obsloužením dělení ělení nulou Příklad 3: Často je při tvorbě programu potřeba, aby se uživatel rozhodoval podle jemu známých popisů. Ukážeme si příklad využití struktury Case pro tvorbu kalkulačky pro základní funkce sčítání, odčítání, násobení a dělení. 1. Vytvoříme si nové VI a na uživatelském rozhraní si vytvoříme číselné vstupy X a Y, výstup s názvem Vypocet a z palety Controls»Ring&Enum Enum vstup Enum a nadefinujeme si vstupy Items textově – sčítání, odčítání, násobení a dělení. 2. Přepneme na zobrazení blokového diagramu (Ctrl+E) ( ) a upravíme rozmístění dosud vložených prvků. Na a ploše blokového diagramu vytvoříme Case strukturu.. Na selektor připojíme vstup Enum. První dva rámce se nám automaticky přejmenují. 3. Z výběru pop-up up menu u názvů rámce (šipka dolů) vybereme položku Add Case For Every Value, Value, které nám vytvoří všechny rámce pro nastavené hodnoty volby vstupu Enum (Items) najednou. 4. Do každého rámce vložíme příslušnou funkce, do rámce pro dělení můžeme vytvořit program s ošetřením dělení nulou ou a současně ošetření kladné a záporné hodnoty X při dělení nulou. nulou 5. Na obrázku 4.39. je zobrazen program pro uvedený příklad při volbě dělení a zadané hodnotě Y = 0 a X < 0 (záporné číslo).
86
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 4.39 Struktura Case pro příklad p 3 4.5. Změny vlastností prvků V průběhu konání programu je někdy nutno změnit vlastnosti prvků v různých částech VI. Nejčastěji měníme hodnotu číselných nebo logických hodnot. Pro přenastavení hodnoty nebo použití hodnoty v jednom VI použijeme lokální proměnnou. 4.5.1. Lokální proměnná Lokální okální proměnnou určitého prvku vytvoříme zobrazením pop-up pop up menu prvku a volbu Create»Local Variable Na obr. 4.40 a) je zobrazeno pop--up menu ledky (proměnné typu Boolean), lokální proměnná a její pop-up pop up menu je zobrazena na obr. 4.40 b).
a) Vytvoření ení lokální proměnné prom
b) Pop-up up menu lokální proměnné prom
Obr. 4.40 Lokální proměnná 87
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Z pop-up up menu lokální proměnné nejčastěji používáme následující volby: • Select Item – umožňuje u měnit, kterou proměnnou lokální proměnná zastupuje, • Change To Read – mění vstupní charakter lokální proměnné na výstupní, • Change To Write . mění výstupní charakter lokální proměnné na vstupní. Lokální proměnnou můžeme vytvořit volbou Local Variable z palety Functions»Programming» g»Structures.. Takto vytvořená lokální proměnná není definovaná, je potřeba ji přiradit proměnnou pomocí pop-up pop up menu volbou Select Item a výběrem z nabízeného seznamu proměnných. proměnných Použití lokální proměnné si ukážeme v příkladu 2 v následující kapitole. 4.5.2. Property Node
Obr. 4.41 pop-up pop menu s výběrem Property Node Funkce Property Node („uzel vlastností“) slouží k získávání informací nebo zadávání vlastností prvku uživatelského rozhraní (čelního panelu) nebo VI. Tímto způsobem 88
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
můžeme například při běhu programu posouvat prvek na čelním panelu, do programu vložit popisek prvku (label) a dále s ním pracovat apod. Až doposud jsme tyto parametry nastavovali jen při zadávání takovýchto takových prvků s pomocí volby Properties nebo v pop-up up menu prvku. Nastavení většiny parametrů lze číst (Read) i nastavovat (Write). Na obr. 4.41 je u ledky ukázán výběr možností různých vlastností. Volbou vlastnosti vytvoříme na straně blokového diagramu uzel Property Node s názvem vybrané vlastnosti a dále s ním můžeme pracovat jako s každou jinou funkcí. Počet používaných vlastností lze dále měnit roztažením obrysu terminálu. U některých vlastností lze potom měnit typ pro čtení (Read) na typ pro zápis (Write) či naopak stejně jako tomu je u lokálních proměnných. Nebudeme se tu věnovat podrobněji popisu těchto vlastností,, je na každém uživateli, aby si seznam prošel a použil, co bude pro jeho program vhodné. Často Č se třeba používá hodnota velikosti (Size), nebo u číselných či grafických prvků prvk maximální a minimální hodnota, nebo poloha (hodnota polohy horního pravého rohu prvku). 4.5.3. Invoke Node Funkce Invoke Node („vyvolávací uzel“) dále rozšiřuje možnosti nastavování prvku nebo VI volbou metody nebo akce spojené s daným prvkem nebo VI. Konkrétní metoda nebo akce se volí obdobným způsobem jako Property Node z pop-up pop menu Create»Invoke Node a následně volbou metody nebo akce. 4.5.4. Globální proměnné Pokud chceme nějakou proměnnou používat ve více VI, pak ji definujeme jako globální proměnnou. Takové proměnné bychom měli užívat s rozvahou, pro jednodušší programy nejsou potřeba, ale pro použití v projektech, které sdružují sdruž více VI, které si předávají hodnoty mezi sebou. Podrobnější vysvětlení využití globálních proměnných bude obsahovat druhý díl – Programování v LabVIEW v příkladech II – externí zařízení 4.6. Struktury Sequence Tyto struktury umožňují sekvenční (postupné) vykonávání jednotlivých částí programu (sub diagramů), ), Sekvenci tvoří po sobě jdoucí sled jednotlivých snímků (nebo také rámců – angl. frames) v pořadí zleva doprava (podobně jako ve filmu), příp. podle čísla v popisku rámce. Data jsou na výstupu sekvence přístupná až po provedení posledního rámce. V zásadě existují dvě třídy struktur Sequence: základní (plošná) sekvence (Flat Sequence), která má i vzhled filmového pásu – obr. 4.42 a), a vrstvená sekvence (Stacked Sequence), která připomíná strukturu Case – obr. 4.42 b).
89
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
a) Flat Sequence
b) Stacked Sequence
Obr. 4.42 Struktury Sequence se dvěma rámci Plošná sekvence – Flat Sequence (obr. 4.42 a) se skládá z jednotlivých rámců (snímků), které jsou vykonávány v pořadí zleva doprava. Tento typ nešetří místem blokového diagramu, je však (při (při menším počtu rámců) přehledný a často se používá při ladění programu. Vrstvená sekvence – Stacked Sequence (obr. 4.42 b) zobrazuje pouze jeden rámec podle výběru v popisku v horní části rámce, přičemž rámce jsou vykonávány vy podle svého pořadového čísla od 0. V označení rámce je v závorce uveden interval celkového počtu rámců. Toto zobrazení je úsporné z hlediska místa na ploše blokového diagramu, vyžaduje však prohledávání rámců při jejich editaci. Často se tento typ rámce používá po odladění programu – Flat sekvence se na tento úspornější typ převede. Jak jsme již popsali v kapitole 3.6, programovací prostředí LabVIEW je založeno především na principu řízení datového toku (angl. data flow), na rozdíl od textově orientovaných ntovaných programovacích jazyků (např. Delphi a C++), ), u nichž se jednotlivé příkazy vykonávají v pořadí, v jakém jsou zapsány v programu, tedy principu nazývaném řízený tok (angl. control flow). Je-li Je pak v prostředí LabVIEW třeba použít principu řízeného toku, je výhodné použít právě sekvenci, která umožní definovat pořadí vykonávání jednotlivých uzlů. Každý rámec sekvence se vykoná tehdy a jen tehdy, když jsou platná všechna data na vstupech do rámce. Kliknutím pravého tlačítka na pravý, resp. levý okraj rámce vyvoláme pop-up pop menu, z něhož lze volit funkce pro práci s rámci sekvence (obr. 4.43): • Remote Sequence – smaže sekvenci, ale ponechá obsahy rámců, • Replace with Stacked Sequence – provede záměnu typů sekvencí, sekvencí • Add Frame After – přidáme rámec následující (vpravo), • Add Frame Before – přidáme rámec předchozí (vlevo), • Delete This Frame – rámec, kde jsme vyvolali pop-up up menu smaže, • Insert Frame – vloží rámec mezi dva rámce, • Merge Frame – spojí dva rámce do jednoho (zruší jejich oddělující hranici). hranici) Poslední dvě volby se zobrazí jen v pop-up up menu vyvolané na dělící hranici mezi dvěma sekvencemi.
90
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 4.43 Menu pro práci s rámcem struktury Flat Sequence
Data se mezi rámci struktury struktury Flat Sequence přenášejí prostřednictvím datového tunelu.. Data se přenesou do následujícího rámce až po vykonání všech částí programu v rámci předcházejícím. předcházejícím. Každý vstupní tunel sekvence může mít jen jeden zdroj. Výstupní tunel ze sekvence do dalších částí programu může mít i každý rámec. Takový výstupní tunel vytvoříme na horním nebo dolním okraji rámce. Stejně tak je možno přes tyto hranice do rámce posílat skrz vstupní tunely další hodnoty, které jsou pro zpracování obsahu rámce rám potřeba. Využití sekvence si ukážeme na příkladech: Příklad 1: Naším úkolem je zjistit dobu vygenerování určitého počtu náhodných čísel. 1. V novém VI vytvoříme ytvoříme celkem tři rámce struktury Flat Sequence. 2. V prvním rámci zjistíme čas spuštění celé sekvence (použijeme časovač Tick Count ze sub palety Functions»Programming»Timing, Functions»Programming»Timing který vrací hodnotu systémového času počítače v milisekundách). 3. Ve e druhém rámci vygenerujeme např. 10 000 000 náhodných ých čísel (pomocí (pom smyčky For a generátoru Random). Random 4. V posledním rámci vypočteme z rozdílu času spuštění a dokončení dobu vykonání sekvence (opět použijeme funkci časovače Tick Count). Count Rozdíl hodnot z prvního a třetího rámce zobrazíme číselným ným zobrazovačem. Na obr. 4.43 je e zobrazen výřez z blokového diagramu vzniklého VI.
91
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 4.44 Příklad íklad aplikace struktury Flat Sequence - čas as generování var. 1 Časový údaj z časovače v prvním rámci je vyveden datovým spojem přes výstupní tunel vně sekvence a přiveden do rozdílu umístněného za sekvencí. Vlastnosti sekvence nám umožní řídit datový tok a současně díky postupnému vykonání jednotlivých rámců tak vypočítat dobu. Na obr. 4.44 je zobrazen výřez jen jednoho z mnoha možností tvorby zadaného VI. Např. rozdíl a indikátor „Doba Do generovani“ mohou být umístěny uvnitř třetí sekvence – viz obr. 4.45.
Obr. 4.45 Příklad íklad aplikace struktury Flat Sequence - čas as generování var. 2 Příklad 2: Vytvoříme simulaci chodu semaforu pro chodce. Červená barva bude svítit 5 sekund a zelená 2 sekundy, před ukončením programu obě ledky zhasnou. 1. Vytvoříme si nové VI a na uživatelském panelu a vytvoříme dvě ledky – červenou a zelenou a umístíme je jako u semaforu – obr. 4.46 6 a). 2. Přepneme na plochu blokového diagramu (Ctrl+E) ( ) a zde vytvoříme Flat sekvenci se 3 rámci. Oba terminály ledek umístíme do prvního rámce a vstupní terminál červené ledky propojíme s konstantou True a vstupní terminál zelené ledky s konstantou False. Aby rámec trval 5 sekund, vložíme funkci Wait s konstantou 5000. 3. Pro obě proměnné měnné LED vytvoříme lokální proměnné, které vložíme do druhého rámce a na jejich vstup dámě opačné konstanty. Pro funkci Wait nastavíme konstantu 2000. 4. Do posledního rámce vložíme již jen lokální proměnnou pro zelenou LED a nastavíme ji na hodnotu False. Výsledné V VI je na obr. 4.46 b).
Nyní si ukážeme názorně význam vrstvené sekvence (Stacked Stacked Sequence). Sequence Kliknutím pravého tlačítka na okraj rámce struktury z obr. 4.45 vyvoláme pop-up pop menu (viz obr. 4.43) a zde zvolíme funkci Replace with Stacked Sequence. Sequence 92
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
a) Čelní panel
b) blokový diagram Obr. 4.46 4.4 VI pro semafor pro chodce
Program vytvořený pomocí Flat Sequence (plošné sekvence) se změní Stacked Sequence (vrstvené sekvence), tedy do jednoho rámce rámce struktury popiskem. Jednotlivé rámce (je jich stejný počet jako v původním můžeme listovat pomocí tlačítek s šipkami. Jednotlivé rámce jsou na obr. 4.47.
do podoby opatřeného programu) znázorněny
Obr. 4.47 Příklad Příklad aplikace struktury Stacked Sequence Nyní bude zajímavé porovnat obě podoby téhož programu. Je patrné, že vlastní obsah rámců (tedy funkce uvnitř rámce) se nezměnil, změnil se však způsob přenosu dat mezi rámci. Ve vrstvené sekvenci data neprochází z jednoho rámce do dalšího přes datový tunel (ten by zde byl graficky nerealizovatelný), ale prostřednictvím připojovacího terminálu na okraji rámce – tzv. lokální proměnné. proměnné Šipka v připojovacím terminálu lokální proměnné znázorňuje směr toku dat. Lokální proměnná je přístupná ve všech následujících následu h rámcích programové struktury.
93
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
• •
•
V prvním rámci (má číslo 0) je aktivní pouze první lokální proměnná, proměnná která je nastavena na hodnotu času z prvního rámce a šipka ukazuje, že je pro tento rámec výstupní. Ve druhém rámci je již uvedený lokální proměnná předefinovaná předefinovaná jako vstupní a vedle je vytvořena další lokální proměnná, která přesouvá data skrz rámec. Dá se říct,, že tato proměnná je zbytečná, je zde jen pozůstatkem Flat sekvence. Třetí rámec pak má obě lokální proměnné definovány jako vstupní.
Lokální proměnnou roměnnou lze do sekvence přidat z pop-up pop up menu vyvolaném na obrysu rámce volbou Add Sequence Local, Local, případně ji odebrat kliknutím pravého tlačítka a následně volbou Remove. Kdybychom chtěli vytvořenou Stacked sekvenci optimalizovat, provedeme provedem vymazání druhé lokální proměnné a vstup první lokální proměnné použijeme ve třetím rámci přímo – obr. 4.48.
Obr. 4.48 Příklad íklad aplikace optimalizované struktury Stacked Sequence 4.7. Struktura Formula Node a MATLAB Script Tato struktura („vzorcový uzel“) uzel“) umožňuje vložit do programu algebraický výraz bez nutnosti realizovat ho v grafické podobě. Je nutno však mít na paměti, že běh aplikace s touto strukturou bude pomalejší. Formula Node je tvořena rámcem (samozřejmě s možností volby jeho velikosti), do něhož se přímo zapíše výraz (vzorec, rovnice) nebo několik výrazů, každý zakončený znakem ; (středník). Ukážeme si rozdíl zápisu výrazu y = x - e sin x, což je rovnice známá z astrodynamiky jako Keplerova rovnice a kde e (tzv. numerická excentricita) excentricita je číslo 94
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
v intervalu <0; 1>. Pokud zapíšeme výpočet rovnice „klasickým“ grafickým postupem, dostaneme blokový diagram podle obr. 4.49 a). Pokud využijeme strukturu Formula Node, výsledkem je zápis podle obr. 4.49 b).
a) „klasický“ způsob ůsob zápisu
b) zápis pomocí Formula Form Node
Obr. 4.49 49 Příklad aplikace struktury Formula Node Při zápisu výrazu se používají algebraické operátory (např. +, -,, *, / apod.), funkce (sin, cos apod.), ale i logické operátory (!, ? apod.). Seznam a popis možných operátorů a funkcí lze najít v nápovědě (Help»Show Help»Show Context Help). Help Do rámce je možné též zapsat text komentáře uzavřený mezi znaky /* a */. Vstupy do struktury Formula Node musí být pojmenovány shodně se jmény proměnných použitých ve vzorcích a výstupy ze struktury musí být pojmenovány shodně se jmény funkčních hodnot použitých ve vzorcích (proměnná, které se přiřazuje hodnota výrazu vpravo od rovnítka). Vstupy a výstupy se vkládají na obrys rámce struktury Formula Nodes z pop-up pop menu vyvolaného kliknutím pravého tlačítka na obrysu struktury. Zde lze volit příkazy: • Add Input – přidání vstupu, • Add Output – přidání výstupu, • Change To Output – změna vstupu na výstup, • Change To Input – změna výstupu na vstup, • Remove – odstranění vstupu nebo ne výstupu. Příklad 1 : Nyní uvedeme příklad postupu postupu tvorby struktury Formula Node. Node Předpokládejme, že máme za úkol vytvořit VI, který bude počítat algebraický výraz z = x/y, kde y = (a.x + b)2. Je zřejmé, že pro výpočet je důležitou podmínkou y ≠ 0, tedy aby výraz ve jmenovateli byl různý od nuly (nulou dělit nelze). Algoritmus výpočtu lze zapsat fragmentem kódu v textovém programovacím jazyce: if (y ≠ 0) then z = x/y else z = +∞ end if
95
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Zápis hovoří o tom, že pro y ≠ 0 bude za funkční hodnotu z dosazena výpočtem hodnota podílu z = x/y a pro y = 0 bude za funkční hodnotu z dosazena hodnota +∞ (kladné nekonečno). 1. Na nové VI v blokovém diagramu vložíme strukturu Formula Note z palety Functions»Programming»Structures a zapíšeme do ní použité vzorce. vzor První výraz je určen pro výpočet hodnoty dočasné proměnné y a druhý výraz algebraicko-logickým logickým zápisem definuje výpočet funkční hodnoty z. Pomocí pop-up up menu, které zobrazíme kliknutím na levou nebo pravou hranici Formula Note, pomocí Add Input vytvoříme me vstupy (na levé straně) a s pomocí Add Output výstupy (na pravé straně) – obr. 4.50 a). 2. Na obr. 4.50 b) je struktura Formula Node N s nadefinovanými vstupy a výstupy ve shodě s použitými proměnnými. proměnnými
a) pop-up up menu pro definování b)Nadefinované Nadefinované vstupy a výstupy vstupů a výstupů Obr. 4.50 50 Příklad íklad postupu tvorby struktury Formula Node 3. Vytvořené vstupy a výstupy Formula Note propojíme s vstupními hodnotami (Control),, konstantami a výstupními indikátory. V našem případě na vstup x připojíme číselnýý vstup a na vstupy a a b přivedeme konstanty (a = 2 a b = 10). Na vstup proměnné oměnné inf přivedeme konstantu nesoucí hodnotu „kladného nekonečna“ (+∞) ∞) tak, že na vstup klikneme pravým tlačítkem a v pop-up pop menu zvolíme Numeric Palette»+Inf. Palette Na výstupy připojíme číselné indikátory. Výsledné vytvořené VI VI pomocí struktury Formula Node je znázorněno na obr. 4.51. 4.5 4. Nyní můžeme VI spustit a vyzkoušet, že správně počítá. Při správném sestavení po zadání vstupní hodnoty x = 0 dostaneme výsledky y = -10 a z = 0. Zadáme-li x = 6, dostaneme y = 2 a z = 1,5 a vložíme-li x = 5, dostaneme výsledky y = 0 a z = inf.
96
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 4.51 Výslední VI pro Formula Node Na obr. 4.52 je znázorněn způsob zápisu algebraicko-logického algebraicko logického výrazu z příkladu uvedeného na obr. 4.51.
Obr. 4.52 Popis výrazu z=(y!=0)?x/y**2:inf; z příkladu íkladu na obr. 4.50 4.5 Obdobně jako jsme používali Formula Node je možno použít i strukturu MATLAB script pro vkládání části programů v jazyce MATLAB. Tuto strukturu lze použít pouze tehdy, když je v počítači nainstalován MATLAB. Práce se strukturou MATLAB script je identická s prací se strukturou Formula Node. Vkládaný skript je pouze v jazyce MATLAB. Vstupy a výstupy se vkládají na hranice skriptu identicky. MATLAB script můžeme vložit do blokového blokového diagramu například z palety Functions»Mathematics Mathematics»Script&Formulas.. Vkládání vstupů a výstupů pro MATLAB skript je identické s vkladem vstupů a výstupů pro strukturu Formula Node. Na obr. 4.53 je prázdné okno skriptu pro MATLAB. Tento skript je možno použít pou jen pokud je na počítači platná licence pro program Matlab.
Obr. 4.53 4. Struktura pro MATLAB skript 97
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
5. Práce se SubVI Při vytváření složitějších VI, je vhodné rozdělit budoucí výslednou aplikaci (to znamená blokový diagram) do několika menších bloků, z nichž každý řeší určitou část budoucí aplikace. Hlavním důvodem je přehlednost a snazší odladění aplikace. Blok tvořící určitou dílčí část budoucího budoucíh VI budeme nazývat SubVI (analogie podprogramu u textových programovacích jazyků). Často bude výhodné a přehledné, vytvoříme-li vytvoř zvláštní SubVI pro jednotlivé kroky zpracování aplikace: nastavení, nastavení, analýzu dat, zobrazování výsledků, ukládání na disk, čtení z dat ze souboru, komunikaci s vnějším zařízením, práci s chybovými hlášeními apod. nebo pro opakovaně prováděné aktivity (nejčastěji výpočty) Vytvořená SubVI lze potom včetně ikony a konektoru použít jako stavební kámen v jiném VI.
5.2.Ikona a konektor SubVI je (podobně jako další funkce a uzly) reprezentován v blokovém diagramu ikonou VI a konektorem s terminály pro připojení k dalším uzlům VI, ve kterém je SubVI použit. Pro vysvětlení tvorby ikony a konektoru VI si vytvoříme velmi jednoduchý příklad podle odle následujícího zadání: Ze zadané hodnoty X spočtěte její mocninu, odmocninu a negovanou hodnotu 1. Vytvoříme čelní panel s jedním numerickým vstupem a třemi numerickými výstupy (indikátory). U vstupu je kvůli odmocnině vhodné nastavit limit pro zadávané hodnoty pouze na hodnoty kladné včetně nuly (pozorný čtenář jistě již ví, že toto nastavení je ukázáno na obr. 3.19). 2. V blokovém diagramu vložíme ze skupiny Numeric (např. ze sub palety Programming)) funkci mocnin, odmocniny a negace. Tím je VI vytvořeno v a již je potřeba ho pouze uložit na disk např. pod názvem Math.vi. Math.vi 5.2.1. Editace ikony a konektoru Každé VI má v pravém horním rohu čelního panelu a blokového diagramu svoji ikonu. Standardní ikonou je logo LabVIEW s uvedením pořadového čísla počtu otevření daného VI. Kliknutím liknutím na pravé tlačítko myši v místě ikony VI se objeví pop-up up menu, z něhož po volbě Edit icon… přejdeme do okna pro editaci ikony (Icon (Icon Editor) Editor – viz obr. 5.1. V tomto okně lze provádět editaci jednoduchého obrázku v rastru 32 x 32 bodů (pixelů), lů), který se nakonec stane novou ikonou VI nebo SubVI.. Pomocí nástrojů z nástrojové palety v pravé části obrazovky můžeme pracovat s jednotlivými ednotlivými body na ploše ikony tj. kreslit body a čáry v různých barvách,, vytvářet obrazce volbou grafických ikon nástrojů. Podrobný popis ikon nástrojů není uveden, protože je shodný s obdobnými ikonami dalších grafických editorů (např. Malování apod.). apod.) V levé části okna jsou 4 záložky:
98
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
• • • •
Templates obsahuje šablony, které je možno použít, Icon text umožňuje vložení textu do ikony, je možno zvolit řádek, font, barvu i velikost textu. Zaškrtnutím lze text vycentrovat, Glyphs obsahuje grafické ikony (obrázky) rozdělené do kategorií pro snadnější hledání, které lze do vytvářené ikony programu vložit, Layers slouží k ovládání vrstev vytvářené ikony VI.
Obr. 5.1 Okno pro editaci ikony VI (Icon Editor)
Konektor ikony VI, který definuje vstupy a výstupy dat VI, je důležitý zejména pro takový VI, který budeme později používat jako SubVI v jiném VI. Konektor Kon lze editovat kliknutím pravého tlačítka myši na konektor v obrazovce čelního panelu (viz např. obr. 3.15). Volbou Patterns se zobrazí nabídka různých tvarů konektoru, přičemž platí zásada: terminály vlevo jsou určeny pro vstupy, terminály vpravo jsou jsou určeny pro výstupy. Zvolme si příklad, že naše VI má 1 vstup a 3 výstupy, zvolíme tedy tvar konektoru tomu odpovídající, avšak v nabídce je opačného provedení (vlevo jsou tři políčka pro vstupy a vpravo jedno políčko pro výstup). Zvolený konektor je před pře potvrzením volby orámován modře jak je vidět na obr. 5.2. Nyní můžeme opětným kliknutím pravého tlačítka myši na konektor znovu vyvolat pop-up pop up menu a zvolit některou z položek pro editaci konektoru a jeho políček: • Add Terminal – rozdělí políčko, na které ukazujeme kurzorem, a umožní tak přidat jeden terminál, • Remove Terminal – sníží počet políček a tak sníží počet terminálů o jeden, • Patterns – zobrazení nabídky tvarů konektorů (viz výše a obr. 3.7), • Rotate 90 Degrees – rotace konektoru o 90 stupňů,
99
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
• • •
Flip Horizontal – překlopení konektoru kolem svislé osy (horizontální překlopení), Flip Vertical – překlopen konektoru kolem vodorovné osy (vertikální překlopení), Disconnect All Terminals – odpojení všech dosud nadefinovaných spojů k terminálům.
Obr. 5.2 5 Volba konektoru a jeho změna
Poznámka: Maximální počet terminálů pro SubVI je 28. V našem případě musíme tedy zvolený konektor z nabídky horizontálně překlopit volbou Flip Horizontal do správné polohy (viz opět obr. 5.3) a již se můžeme věnovat připojení terminálů.
Obr. 5.3 Čelní elní panel VI s vytvořenou enou ikonou a konektorem pro zvolený příklad p 100
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
5.2.2. Přiřazení terminálů ovládacím a zobrazovacím prvkům Ovládací a zobrazovací prvky čelního panelu přiřazujeme terminálům (tj. konkrétním políčkům) konektoru oru použitím propojovacího nástroje (wiring tool), tj. kurzorem tvaru cívky s drátem. Dále postupujeme v několika krocích: 1. Klikneme na příslušný terminál (políčko konektoru) propojovacím nástrojem (cívkou s drátem), který chceme připojit, a tento se označí (bílá barva políčka se změní na černou) – obr. 5.4 a).
a)
b) Obr. 5.4 5 Postup připojení konektoru
c)
2. Nyní klikneme na ovládací nebo zobrazovací prvek na čelním panelu, který chceme připojit na terminál zvolený v předchozím kroku, kroku, a ten se tak označí čárkovaným rámečkem. Políčko terminálu změní barvu na tmavší odstín barvy podle datového typu odpovídající připojenému objektu – obr. 4.4 b). 3. Kurzor přemístíme na volnou plochu čelního panelu a klikneme levým tlačítkem myši. Čárkovaný Čárkovaný rámeček označující zvolený prvek zmizí a terminál změní svoji barvu na světlý odstín barvy datového typu odpovídající připojenému objektu – obr. 4.4 c). Zobrazovací prvky reprezentující výstupní hodnoty VI mají v konektoru silně orámované políčko. Výsledná Výs podoba čelního panelu je na obr. 4.5. 4. Vytvořené VI můžeme vyzkoušet stiskem tlačítka Run Continuously. Continuously Za běhu programu můžeme při této volbě měnit hodnotu X a sledovat výsledky matematických funkcí, Ukončení programu provedeme stiskem tlačítka Abort Execution. 5. Vytvořené SubVI se dá použít v jiném VI, kde budeme potřebovat pro další výpočty mocninu, odmocninu a negaci nějaké kladné hodnoty např. u geometrických výpočtů apod. V další části si ukážeme využití dříve vytvořeného VI po menším úsilí s úpravou úpra ikony a připojovacího konektoru jako SubVI. 101
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
5.3.Vytvoření SubVI Jedním ze způsob vytvoření SubVI je vytvoření VI, se kterým již dopředu počítáme, že bude v dalším VI použito jako SubVI. Tvorba takového VI je identická s tvorbou VI, které jsme si zde ukázali v předchozím příkladu. Často se až později rozhodneme, že již vytvořené VI použijeme v jiném VI jako SubVI. 5.3.1. Vytvoření SubVI z VI Pro příklad vytvoření SubVI použije v kapitole 3.6.1 vytvořené VI Prevod_C_na_F.vi. 1. Zvolené VI otevřeme jeho vybráním v pravém okně úvodní obrazovky nebo kliknutím na Open Existing, Existing, čímž se otevře okno Selekt a File to Open – klasický Bowser pro hledání souborů v adresářích PC. 2. Zůstaneme na čelním panelu a kliknutím kliknutím na pravé tlačítko myši v místě ikony VI se objeví pop-up up menu, z něhož po volbě Edit icon… přejdeme do okna pro editaci ikony (Icon Icon Editor) Editor – viz obr. 5.1. V tomto okně začneme vytvářet vlastní ikonu VI (SubVI) s využitím záložky Icon Text, záložkyy Glyphs a barevných ploch v pravé části okna Editoru je možno ikonu vytvořit velmi rychle. Na obr. 5.5 je výsledná Ikona VI Prevod_C_na_F.vi. Vytvořenou ikonu potvrdíme tlačítkem OK.
Obr. 5.55 Výsledná Ikona VI Prevod_C_na_F.vi 3. Nyní kliknutím na konektor zobrazíme pop-up pop up menu a vybereme položku Patterns.. VI má jeden vstup a jeden výstup, proto vybereme odpovídající tvar konektoru (viz obr. 5.2). Ovládací prvek (vstupní hodnotu SubVI) připojíme na levý terminál konektoru kliknutím pravého tlačítka myši na levé políčko (terminál) konektoru, následně klikneme na ovládací prvek (vstup) – teploměr s názvem Teplota [st. C] a výběr potvrdíme kliknutím levého tlačítka myši do plochy čelního panelu. Obdobným způsobem připojíme i zobrazovač (výstupní hodnotu SubVI) s názvem Teplota [st. F]. Výstupní hodnota má na rozdíl od vstupní hodnoty silně orámované políčko konektoru. Čelní panel s upravenou ikonou a připojeným konektorem je na obr. 5.6. 5 102
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 5.6 Čelní panel VI s upravenou ikonou a konektorem 4. Právě upravený ený VI můžeme nyní vyzkoušet stiskem tlačítka Run Continuously. Continuously Za běhu programu nyní můžeme posouváním kurzoru ve tvaru ručky při současně stisknutém levém tlačítku myši měnit výšku sloupce ovladače stupně C a současně pozorovat, jak se mění výška sloupce „teploměru“ stupně stupn F. Číselné hodnoty můžeme u obou teplot sledovat i v číselné podobě na displejích příslušejících jednotlivým teploměrům. Výsledné VI nyní yní stačí jen znovu uložit postupem Save nebo můžeme původní původní program zachovat a upravené VI uložit pod jiným názvem volbou Save as – např. pod jménem C_to_F.vi F.vi 5.3.2. Vytvoření SubVI výběrem části jiného VI Nyní popíšeme druhou metodu vytvoření SubVI výběrem části jiného VI. Tato metoda je zajímavá v případě, že bude výhodné použít určitou část blokového diagramu již vytvořeného VI jako SubVI v jiném VI. Nejlépe bude si tuto metodu ukázat na příkladu. Představme si, že máme za úkol vypočítávat určitou funkci, např. plochu kruhu A ze zadaného poloměru kružnice r podle podle vztahu A = πr2. Pokud si vzpomeneme, že v našich „zásobách“ máme již dříve vytvořený VI, který požadovanou funkci obsahuje nebo chceme použít část blokového diagramu vzorového programu otevřeného např. z nabídky Help»Find Find Example (viz kapitola 3.1.3). V našem případě pro ukázku tvorby SubVI z již vytvořeného programu použijeme program Nadrz.vi, Nadrz.vi který jsme si vytvořili v kapitole 4.2 pro zobrazování napouštění nádrže. Zvolené VI obsahuje výpočet objemu válcové nádrže při zadané výšce a poloměru nádrže. Protože výpočet objemu nádrže obsahuje výpočet obsahu kruhu, můžeme tuto část využít jako SubVI v novém VI.
103
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
1. Otevřeme nový VI již známým postupem Blank VI v úvodní obrazovce, obrazovce resp. stiskem Ctrl+N.. Přepneme na zobrazení blokového diagramu (např. stiskem Ctrl+E). 2. Nyní otevřeme VI, z něhož chceme použít část jako SubVI, v našem případě Nadrz.vi,, postupem File»Open a vyhledáním v příslušném (známém) adresáři nebo s pomocí pravé části úvodní obrazovky. Po jeho otevření přepneme rovněž na zobrazení blokového diagramu (stiskem Ctrl+E). Ctrl+E
Obr. 5.7 Označení Ozna části VI pro tvorbu SubVI tvaru kříže (při nastavené automatické 3. V blokovém diagramu kurzorem ve tvaru volbě nástrojů v paletě Tools)) označíme při stisknutém levém tlačítku myši vybranou část otevřeného VI (v našem případě se bude jednat o část, v níž se vypočítává druhá mocnina čísla a ta se následně násobí konstantou π). Pustíme-lili tlačítko myši, označená část se zvýrazní. Popsaný postup je znázorněn v blokovém diagramu na obr. 5.7. 4. Nyní převedeme označenou část VI na SubVI volbou Create SubVI ze základního menu Edit – obr. 5.8 a). Původně označená část blokového diagramu se zkonvertuje do ikony VI (obr, 5.8 b), s níž můžeme dále pracovat ve shodě s postupem popsaným v kapitole 5.1.1. Tato ikona označuje v současné chvíli určitou „podmnožinu“ celého VI, jedná se o SubVI. 5. Chceme-lili nyní použít vytvořený SubVI v jiném VI (v tuto chvíli již v otevřeném pod jménem Untitled 1.vi v kroku 1), klikneme na ikonu levým tlačítkem, ta se zvýrazní (jak je vidět na obr. 5.8 b) a postupem Edit»Copy, Edit»Copy resp. stiskem Ctrl+C ji zkopírujeme do schránky. 6. Přejdeme do obrazovky blokového diagramu otevřeného Untitled 1.vi (např. výběrem z nabídky po stisku Window ze základního menu) a na plochu vložíme dříve označený a nyní ve schránce uložený SubVI buď postupem Edit»Paste,, resp. stiskem Ctrl+V.. Na obr. 5.8 b) je označené vytvořené SubVI a na obr. 5.9 .9 je vložené SubVI v novém VI. Jak je vidět na obr. 5.9, výstupní pin (terminál terminál)) je označen Numeric. To je proto, že automatický režim tvorby SubVI neumí určit název políčka konektoru a použije pro označení datový typ. Obdobně jako je možné změnit Ikonu SubVI SubVI je možno také přejmenovat objekty na čelním panelu SubVI a program znovu uložit.
104
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
a)
b) Obr. 5.8 Tvorba SubVI
Obr. 5.9 Vložené SubVI v jiném VI se zvýrazněným ným výstupem 7. Při uložení vytvořeného programu s vloženým SubVI se nejprve uloží SubVI a teprve pak vytvořené VI.
105
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
5.4.Okno hierarchie VI (VI Hierarchy) Při vytváření aplikace obvykle začínáme vrcholovou úrovní a definujeme vstupy a výstupy aplikace. Při vytváření SubVI je třeba dbát na správné řešení datového toku procházejícího ejícího blokovým diagramem. Důležité je rovněž dodržení přehlednosti pro snazší ladění. Na obr. 5.10 je zobrazeno okno VI Hierarchy pro program Nadrz.vi doplněný o SubVI.
Obr. 5.10 Okno VI Hierarchy pro VI Nadrz Grafickou interpretaci hierarchického uspořádání struktury VI lze zobrazit vyvoláním okna VI Hierarchy. Toto okno lze vyvolat několika způsoby: • • •
volbou View»VI Hierarchy z aktivního okna, přičemž ikona aktivního VI se zobrazí ohraničená, kliknutím pravým tlačítkem lačítkem na SubVI a následně z pop-up pop up menu volbou Show VI Hierarchy (ikona SubVI, ze kterého je okno vyvoláno, se zobrazí opět ohraničená), pokud je okno VI Hierarchy již otevřené, pak volbou ze seznamu otevřených oken po volbě Windows.
5.5.Nastavení některých některých vlastností SubVI (priorita, reentrantnost) Vytvořené SubVI je určeno o (podobně jako podprogram) jako stavební kámen pro další využití v jiném VI. K tomuto účelu je třeba mít možnost nastavit vlastnosti SubVI pro různé způsoby jeho aplikace. Obvykle se blok blok SubVI vložený do vytvářeného VI spustí tzv. simultánně s dalšími programovými bloky a funkcemi. Procesor počítače (resp. jedno jádro vícejádrového procesoru) však může v daném okamžiku provádět kód pouze jednoho bloku. V tomto smyslu simultánně znamená 106
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
provádění malého úseku kódu různých bloků střídavě přidělováním výkonu procesoru procesor formou tzv. multitaskingu (řízení procesu vykonávání programu pracující na nejvyšší úrovni oprávnění). LabVIEW je vybaven systémem víceúlohového víceúlohového běhu, který řídí vykonávání kódu du funkčního bloku, který má k dispozici všechna svá vstupní data a přepíná na vykonávání kódu dalšího bloku, který má rovněž k dispozici všechna vstupní data. Řadič priority přiděluje kódu daného bloku kapacitu procesoru na dobu, která odpovídá jeho prioritě, prioritě, potom přeřadí tento blok na konec fronty, kterou obhospodařuje. Z této fronty je blok po dokončení činnosti vyřazen. Asynchronně (bez ohledu na časovou posloupnost) se provádějí bloky odpovídající strukturám, funkcím vstupů a výstupů, časovacím funkcím funkcím a uživatelem definovaným SubVI. Synchronně (s danou časovou posloupností) jsou naopak prováděny všechny výpočetní funkce. Uživatel se tak ve většině případů nemusí starat o to, zda jsou bloky prováděny synchronně nebo asynchronně, a může brát jejich provádění pro jako paralelní podle principu datového toku. Pro některé aplikace je vhodné nastavit vlastnosti SubVI v menu VI Properties..., Properties... které vyvoláme kliknutím pravého tlačítka na ikonu VI a výběrem položky VI Properties z pop-up up menu (viz např. obr. 3.14 v kapitole 3.4.3). Menu VI Properties lze vyvolat rovněž ze základního menu postupem File»VI Properties, resp. stiskem Ctrl+I. Ctrl+I V menu VI Properties roperties vybereme v řádku Category položku Execution. Tím se nám zobrazí obrazovka pro nastavení vlastností VI pro provádění (viz obr. 5.11).
Obr. 5.11 11 Nastavení vlastností VI pro provádění
107
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
V menu lze také nastavit prioritu provádění VI (VI s vyšší prioritou je proveden před VI s nižší prioritou) – viz obr. 5.12. Tak lze nastavit pořadí provádění vádění bloků diagramu. Do fronty řadiče priority se tak dostanou bloky s vyšší prioritou, které se dělí o výkon procesoru, a teprve po jejich dokončení se začnou provádět provádět bloky s nižší prioritou. Nejvyšší prioritou je priorita subroutine, která má určité výsadní postavení. Běží-li Běží některé VI s touto prioritou, žádné jiné VI nebude spuštěno, dokud se toto VI nedokončí. Provádění těchto bloků je tedy sekvenční. VI s touto touto prioritou může volat VI se stejnou prioritou, ale nikoliv s nižší. Při provádění VI s touto prioritou není dokonce obsluhován ani jeho čelní panel. Za normálních okolností nemůže LabVIEW provádět střídavé vícenásobné volání téhož bloku. Normální SubVI je použitelné pouze sériově. To je důležité například komunikuje-li komunikuje li SubVI s nějakým zařízením.
Obr. 5.12 5 Nastavení priority VI resp. SubVI Významnou vlastností VI je možnost nastavení vlastnosti pro reentrantnost, tedy pro reentrantní (tedy znovuspuštěné) znovuspuš ) provádění, což znamená, že VI lze jako SubVI použít v jiném VI vícenásobně. V takovém případě jde tedy o paralelní provádění jednoho SubVI. Každé volání takového SubVI pak vytváří novou kopii dat. Reentrantní provádění VI je možné ve dvou variantách. Při zaškrtnutí volby Shared clone reentrant execution se kopie kódu použije pro všechna volání (tím se šetří velikost paměti). Volbou Preallocated clone reentrant execution se pro každé volání alokuje paměť pro novou kopii kódu – viz levá část na obr. 4.9. 4 Při nastavení reentrantního provádění (znovuspuštění) se mnoho jiných položek stává zakázanými, protože systém se musí starat o přepínání mezi rozdílnými kopiemi jednoho VI v paměti a o různý stupeň rozpracovanosti dat, s nimiž tyto kopie pracují. Protože že používání nastavení priorit je využíváno většinou až u složitějších programových struktur, budeme se mu více věnovat až v druhém díle – Programování v LabVIEW v příkladech II – externí zařízení.
108
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
6. Řetězce, pole a klastry Tato kapitola se věnuje datovým typům používaným v datových strukturách: strukturách řetězec, pole a klastr. Řetězec (String String) je posloupnost textových znaků (Char) nebo řídicích znaků textů, pole (Array)) je množina prvků stejného typu a klastr (Cluster) je množina prvků různého typu. K interpretaci rpretaci znaků se používá nejčastěji tabulka znaků ASCII3.
6.1.Řetězec (String) Řetězec (String)) je posloupnost znaků, které jsou buď zobrazovatelné (textové znaky - char) nebo nezobrazovatelné (řídicí znaky taktů). ). K interpretaci znaků se používá nejčastěji tabulka znaků ASCII. Většina z nabízených aplikací používajících řetězce obsahuje: • vytváření textových zpráv, • komunikace s uživatelem pomocí textového dialogu. • posílání dat v podobě řetězce znaků do přístroje přístroje a příjem přijatého řetězce např. sériová linka, • ukládání číselných dat do souboru (před ukládáním souboru se nejprve musí převést čísla na řetězec znaků ASCII), Na čelním panelu se pro práci s textovým řetězcem používá String Control pro vkládání a String Indikátor pro zobrazení textového řetězce, které ré najdeme např. v paletě Controls»Modern»String »Modern»String&Path. V paletě Controls»Express »Express) se funkce pro práci s textovými řetězci nazývají Text Control, resp. Text Indicator. Indicator Řetězce také používáme v tabulkách (Table) ( např. je najdeme v paletě Controls»Modern»List&Table &Table a rovněž jako popisky jednotlivých prvků (Label). ( Po vložení prvku na čelní panel lze definovat jeho popisek (Label) a vložit nebo editovat znakový řetězec. Kliknutím pravého tlačítka myši lze vyvolat pop-up pop menu (např. obr. 3.21 na straně 42) 42 a zvolit další vlastnosti prvku. Některé typy objektů umožňují i při nedostatku místa na čelním panelu použít nástroj pro rolování textu – vertikální nebo horizontální scrollbar (Vertical ( Scrollbal nebo Horizontal Scrollbar) v pop-up up menu prvku volbou Visible Items. e volit i typ zobrazování znaků, případně si vybrat z nabídky typ U řetězců můžeme zobrazování znaků: • Normal Display - klasické zobrazení znaků, • ’\‘ Codes Display - zobrazení všech znaků (včetně tzv. nezobrazitelných znaků) v tzv. kódech obráceného eného lomítka „\“ „ („\ kódy“ jsou uvedeny v tab. 6.1), • Password Display - zobrazení ve skrytém formátu s hvězdičkami místo textu, • Hex Display - zobrazení v hexadecimálním kódu. Zobrazení řetězce různými typy zobrazování jsou na obr. 6.1. 3
Standard ASCII (American Standard Code for Information Interchange) definuje znaky s kódem 0 - 127, reprezentace kódů 128 - 255 závisí na platformě (viz http://www. asciitable.com).
109
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Tab. 5.1 Seznam kódů dů obráceného lomítka „\“ „ (Backslash Codes)) Kód G interpretace (ASCII znaky) \00 až \FF hexadecimální hodnota znaku \b BS – backspace (= \08) - „krok zpět“ \f FF – form feed (= \0C) - „nová stránka“ \n LF – line feed (= \0A) - „nový řádek“ \r CR – carriage return (= \0D) - „návrat vozíku“ \t HT (TAB) – horizontal tab (= \09) - „tabelátor“ \s Space (= \20) - „mezerník“ \\ Backslash (= \5C) - „obrácené lomítko“
Obr. 6.1 6. Různí typy zobrazení řetězce
Obr. 6.2 Volba palety String v blokovém diagramu 110
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
V blokovém diagramu se pro práci s řetězci používají funkce, které najdeme v paletě Functions»Programming»String (obr. 6.2). ). Uveďme si několik nejpoužívanějších: • String Length se používá po pro zjištění délky řetězce (vrací číslo), • Concatenate String použijeme pro spojení více řetězců do jednoho (vrací řetězec), • String Subset slouží k výběru podmnožiny řetězce (podřetězce). Další funkce slouží k vyhledání nebo nahrazení znaků nebo podřetězců v řetězci, spojování a rozdělovaní vaní řetězců, rotaci prvků řetězce a mnoho dalších. 6.1.1. Příklady práce s řetězci Nyní si ukážeme několik jednoduchých příkladů pro práci s řetězci. Příklad: Zadáme dva řetězce, zjistíme délku prvního řetězce, zadané řetězce spojíme a ze spojeného řetězce tězce vybereme podřetězec délky 6 znaků ů od 8. znaku. • Vytvoříme si nové VI a na čelním panelu si vytvoříme dva vstupní znakové řetězce, které označíme Prvni a Druhy, a indikátor typu Strings názvem Treti pro zobrazení vybraného podřetězce. podřetězce Ještě si musíme vytvořit ytvořit numerický indikátor s názvem Delka prvni – obr. 6.3 a). • Přepneme do blokového diagramu diagram (Ctrl+E), ), uspořádáme terminály, v paletě Functions»Programming»String vybereme funkce String Length, Length Concatenate String a String Subset,, které vytvoříme dva vstupy vstu v podobě konstant a nadefinujeme je podle zadání. Terminály a funkce propojíme podle programu na obr. 6.3 b). b) • Nejprve vyplníme prvky První a Druhy znakovými řetězci a následně spustíme vytvořené VI. Změněný čelní panel po provedení programu je zobrazen na obr. 6.3 c).
a) čelní panel při ři zadání
b) blokový diagram
c) čelní panel po provedení VI
111
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 6.3 6. Práce s řetězci – příklad 1 Pokud chceme, aby výstupní řetězec, který skládáme z několika jiných vstupních řetězců, měl určitou strukturu, vkládáme mezi jednotlivé řetězce při vkládání pomocí funkce Concatenate String jako konstanty formátovací znaku (spodní spodní řádek na obr. 6.1). Na obr. 6.4 je jeden takový příklad, kde kde jsou data oddělena tabulátorem, které se často používá pro vytváření sloupců ve formátu .txt a jako poslední znak je odřádkování.
Obr. 6.4 6. Oddělení řetězců tabulátorem 6.1.2. Příklady převodu řetězce na jiný datový typ a naopak Při tvorbě VI je často potřeba řešit převod datového typu String (znakového řetězce) na datový typ Numeric (číslo) nebo naopak, podle toho, jaký typ je v dané aplikaci používán. K tomu slouží sub paleta Number/String Corversion v paletě String (obr. 6.1). Obsah sub palety ty je na obr. 6.5.
Obr. 6.5 6. Sub paleta Munber/String Conversion Při výběru funkce pro převod čísla na řetězec volíme funkci podle typu výstupního řetězce. Na vstupu je nastaven číselný typ I32. Pokud je číslo desetinné, převede se na I64 a zaokrouhlí se – obr 6.6.
Obr. 6.6 Převod čísla na řetězec 112
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Při výběru funkce pro převod řetězce na číslo musíme znát typ řetězce, který budeme převádět. Použijeme reciproční příklad, kde řetězec sejmutý z nějakého přístroje ve formě decimálního řetězce chceme převést na číslo. Jak je na příkladu vidět, výstupem je celé číslo, proto desetinná čárka převod ukončí. Desetinná místa se tedy „odříznou“ a jejich hodnota nemá na velikost čísla vliv – obr. 6.7.
Obr. 6.7 Převod řetězce na číslo Obdobně budeme postupovat i u dalších typů řetězců. Funkce Fract/Exp String to Number umí v řetězci identifikovat a převést také matematické znaky jako je desetinná tečka, exponent a mínus. Na výstupu této funkce pak je desetinné é číslo.
6.2.Pole (Array) Jak jsme si již definovali, pole p (Array)) je množina prvků stejného datového typu (např. Numeric, Boolean, String apod.) v uspořádání, které určuje rozměr (dimenzi) pole. V jednom rozměru se pole může skládat nejméně z jednoho prvku. prvku Pozici prvku v poli je určuje v každém rozměru jeho indexem, index , což je celé číslo v rozsahu 0 do n-1, n kde n je počet prvků v daném rozměru pole. Na obr. 6.8 je zobrazeno 1D pole, které se skládá z 6 číselných prvků, které jsme vytvořili pomocí smyčky For. Na obrázku je vidět, že sedmý prvek pole není definován (je šedý). Vytvořené 1D pole se zobrazuje jako sloupec.
Obr. 6.8 1D D pole a jeho grafická interpretace na čelním elním panelu
113
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
6.2.1. Vložení pole do VI Vytvoření pole na čelním panelu je trochu složitější a vyžaduje několik postupných kroků. 1. Nejprve vložíme pole z palety Controls»Modern»Array, »Modern»Array, Matrix&Cluster. Matrix Vytvoření pole nemá ještě definovaný typ proměnné, které bude v budoucnu obsahovat – obr. 6.9 a). 2. Nyní vybereme vstupní prvek datového typu, který chceme chceme pro pole použít např. typ Numeric, umeric, vytvoříme ho na čelním panelu mimo pole – obr. 6.9 b). 3. V dalším kroku tento prvek vložíme do tmavě šedé plochy vytvořeného pole. Tím jsme nadefinovali typ pole a terminál pole v blokovém diagramu přijme barvu tohoto datového typu – obr. 6.9 c).
a) krok 1
b) krok 2
c) krok 3
Obr. 6.9 6. Postup tvorby pole na čelním panelu Mnohem jednodušší je vytvářet pole z blokového diagramu, pokud je to možné pomocí pop-up up menu terminálu, funkce nebo uzlu, volíme raději postup Create»Control nebo Create»Indikator. Create . Výhodou tohoto postupu je, že pole má již definovaný typ. 6.2.2. Vícerozměrná pole Nejčastěji používanými vícerozměrnými poli jsou 2D a 3D pole, kde číslo před D určuje rozměr pole (počet dimenzí) 1 2D pole se používá nejčastěji pro závislosti dvou proměnných, jde o plošné funkce. Každý prvek pole je popsán dvojicí indexů (souřadnicemi umístění v poli). První je index řádku a druhý je index inde sloupce – pro grafy s osami x a y jde o ekvivalenci pro zápis prvku (x,y). POZOR: Pokud 2D pole vytváříme ze dvou 1D polí pomocí funkce Build Array (viz níže),, kde 1D pole tvoří sloupce, dochází v LabVIEW k transformaci dat na 2D pole, která má dva řádky. řádky To vychází z definice popisu prvků 2D pole (x,y) – viz obr. 6.10. 2 3D pole se používá u prostorových údajů, kde přibývá ještě třetí index (z matematiky známá osa z). 3 multidimenzionální pole je obecně n-rozměrné n rozměrné pole, kde každý prvek je určen n indexy. Pak mluvíme o n-dimenzionálním n poli.
114
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 6.10 6. Tvorba 2D pole ze dvou 1D polí 6.2.3. Funkce pro práce s polem Pro práci s polem lze použít řadu funkcí, většinu z nich najdeme v paletě Functions»Programming»Array (obr. 6.11).
Obr. 6.11 Sub paleta Array s funkcemi pro práci s polem m Některé z nich si nyní popíšeme:
115
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
• • • • •
Array Size – vrací velikost pole tj. počet prvků pole přivedeného na vstup. Pokud je na vstupu funkce n-dimenzionální pole, bude výstupem funkce 1D pole s n prvky, kde každý určuje velikost pole v příslušném rozměru. Initialize Array – umožňuje vytvořit n-dimenzionální dimenzionální pole naplněné prvky specifikovanou hodnotou. Index Array – vrací zvolený prvek nebo část pole. Build Array – umožňuje spojit pole nebo nebo přidat prvky do jednoho pole, pole případně 2D pole, pokud na vstup přivedeme 1D pole a bereme je jako celek (hodnotu). Array Subset – umí vydělit část pole od hodnoty se zadaným indexem, zobrazené pole bude mít určenou délku (počet prvků)
POZOR: U použití některých funkcí nesmíme zapomínat, zapomínat, že LabVIEW indexuje od 0.
6.3.Klastr (Cluster) Klastr (cluster) je datová struktura, která obsahuje několik různých datových typů. Použitím klastru je možné například eliminovat nesourodý „nepořádek" na čelním panelu a výrazně tak zredukovat počet jednotlivých datových spojů v blokovém diagramu. Seskupením logicky příslušných prvků vytvoříme klastr a ten potom spojíme jediným datovým spojem. Identicky jako u pole je klastr buď vstupní (obsahuje např. ovladač) nebo výstupní (obsahuje např. indikátor). To znamená, že klastr nemůže obsahovat obsa současně ovladač i zobrazovač. Klastr se automaticky přizpůsobí prvnímu vloženému typu proměnné (Control nebo Indicator) a další vložené prvky automaticky změní na stejný typ (Control nebo Indicator). 6.3.1. Příklady klastrů Tvorba klastru na čelním panelu je obdobná jako tvorba pole. Nejprve vložíme kostru klastru, do které následně vkládáme postupně prvky jednotlivých tlivých typy proměnných.
Obr. 6.1 .13 Tvorba klastru složeného ze 4 prvků Často se klastry používají jako vstupní a výstupní terminály pro adresaci zařízení, což zajišťuje sekvenční způsob zpracování komunikace a přesun dat mezi zařízením a počítačem (programem VI). Dalším příkladem jsou chybová hlášení této komunikace. 116
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
6.3.2. Funkce pro práce s klastrem V blokovém diagramu můžeme pro práci s klastry použít funkce z palety Functions»Programming»Cluster, amming»Cluster, Class, & Variant.. Nabídka funkcí této palety je na obr. 6.12. Funkce umožňují mimo jiné spojovat (sbalovat) různé datové typy do klastru (Bundle),, což je obdoba výše uvedeného postupu na čelním panelu, panelu případně datové typy rozpojovat (rozbalovat) (rozb z klastru (Unbundle Unbundle). Rozbalení klastru nám umožní změnit hodnotu nebo jiný parametr klastru nebo hodnotu některého prvku klastru použít dále v programu, aniž by bylo nutné používat další prvky klastru. Typickým případem využití klastru je zobrazení zobraze dat v grafickém zobrazovači XY Graph, což bude ukázáno v kapitole 8.
Obr. 6.12 Sub paleta Cluster, Class &Variant s funkcemi pro práci s těmito ěmito datovými typy
117
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
7. Práce se soubory vstupu/výstupu (File I/O) Pro práci v LabVIEW používáme také funkce pro práci se soubory, jejichž většinu najdeme v blokovém diagramu v paletě Functions»Programming»File I/O (obr. 6.1).
Obr. 7.1 Paleta File I/O
7.1.Funkce pro práci se souborem Paleta na obr. 7.1 obsahuje následující funkce: • Opet/Create/Replace File – otevření, vytvoření a obnovení datových souboru, • Close File – zavření souboru, • Write Spreadsheet File – zápis do souboru s tabulkou, • Read Spreadsheet File – čtení ze souboru s tabulkou, Další funkce umožňují přesouvat a přejmenovávat soubory a adresáře, měnit charakteristiky souborů. Mimo základních funkcí obsahuje i dvě expresní funkce: • Write To Measurement File – zápis do souboru • Read From Measurement easurement File – načtení dat ze souboru 118
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Nejjednodušší způsob zápisu su dat je použití expresní funkce,, která se dá použít ve většině případů ukládání a čtení dat.
7.2.Příklad říklad zápisu dat do souboru Volba expresní funkce Write To Measurement File otevře komunikační okno, které je na obr. 7.2. Zde se nastaví parametry pro ukládání ukládá dat – jako jsou: j adresář souboru, zda se má funkce ptát na adresář a jméno souboru při každém použití, co má funkce dělat při volbě stejného ste jména soubor,, zvolí se formát souboru (typ přípony) a další parametry odpovídající zvolenému typu souboru. Novinkou pro LabVIEW 2012 je přímé ukládání dat do tabulky Microsoft Excel.
Obr. 7.2 Konfigurační ční okno s parametry expresní funkce pro zápis dat do souboru Po nastavení parametrů stačí připojit k vstupu Signals data a po spuštění VI se přivedená data uloží do zvoleného typu souboru. Pokud zaškrtneme Ask user to choose file je při vstupu dat do expresní funkce otevře komunikační okno Microsoft Windows pro určení jména cesty ukládaného souboru.
119
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Příklad: V kapitole 6.2.2 na straně 115 jsme si vytvořili 2D pole, které si nyní uložíme do souboru ve formátu .xlsx. .xls 1 Vložíme do blokového diagramu expresní funkci Write To Measurement File a konfiguraci nastavíme následovně: • zaškrtneme čtvercové okno okno u Ask user to choose file a ponecháme volbu Ask only once. • Formát mát souboru zvolíme Microsof Excel (.xlsx). Tím některé volby nejde dále použít. • Zbývá nastavit X Value (Time) Culomns na Empty time column. • Nastavení potvrdíme stiskem OK v dolní části konfigurace. 2 Nyní připojíme 2D pole k vstupu Signals a implicitně se objeví bjeví převod pole na datový typ Dynamic Data Type (DDT) – obr. 7.3.
Obr. 7.3 Zápis dat do souboru 3 Na obr. 7.4 je zobrazen otevřený uložený soubor.
Obr. 7.4 Uložený soubor Obdobně bychom vytvořili další typy souborů jinou konfigurací expresní funkce. 120
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
7.3.Příklad čtení dat ze souboru Obdobným způsoben se při použití expresní funkce pro čtení dat Read From Measurement File dají načíst data ze souboru. Na rozdíl od zápisu, tato funkce nemá implementování čtení ze souborů formátu .xlsx.
Obr. 7. Konfigurační ční okno s parametry expresní funkce pro čtení dat ze souboru Nejprve je nutno nastavit formát souboru, který budeme načítat. Dále nastavíme předpokládanou cestu a zvolíme jeden soubor daného typu. Opět můžeme zvolit, zda se expresní funkce bude uživatele už ptát na jméno a cestu k otevíranému souboru. Pro některé typy soubor nastavujeme oddělovat dat. Další volbou je možno vynechat část souboru (řádků), kde jsou data jiného typu – např. popisy dat. Stiskem tlačítka Read File Now zobrazí v poli soubor podle nastavené konfigurace, což slouží pro kontrolu správnosti nastavení. Výstupem načtených dat je datový typ Dynamic Data Type (DDT), ), který je nejprve nutno zpět přetransformovat nejčastěji na datový typ pole (1D nebo 2D). K tomu slouží další expresní funkce, které najdeme v paletě Expres»Signal Signal Manipulation. Manipulation Při jejich vložení se opět otevře konfigurační okno, kde je pro výstupní pole pol možno nastavit, zda jsou data v řádcích nebo sloupcích. S daty načtenými ze souboru ve formě pole můžeme následně pracovat pomocí funkcí pro pole, jak bylo ukázáno v kapitole 6 a následně data opět uložit do souboru. 121
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
8. Grafické zobrazovače Grafické zobrazovače jsou určeny pro zobrazení dat v grafické podobě. V LabVIEW rozlišujeme dva základní typy grafických zobrazovačů podle způsobu zobrazování dat: •
•
Chart – registrační, resp. průběžný „zapisovač“, vstupní data mu jsou předávána bod po bodu, popř. jako jako bloky dat představující úseky zobrazovaného průběhu. Zobrazovač Chart postupně doplňuje průběh tak, jak mu jsou vstupní data dodávána. Vykresluje tedy data okamžitě (v reálném čase). Toto zobrazení je známé z osciloskopů. Graph – statický grafický zobrazovač, zobrazovač, pro zobrazení jednoho či více průběhů je nutné předem připravit data popisující celý průběh, popř. průběhy a předat je objektu Graph jako celek. Pokud programátor použije pro zobrazování Graph, obvykle shromažďuje data do pole a pak toto pole naráz vykreslí.
Výhodou pro uživatele je, že již ve výchozím stavu jsou všechny grafické zobrazovače nastaveny pro okamžité použití a mají zvoleno automatické nastavení měřítek na obou osách.
8.1.Základní typy grafických zobrazovačů Grafické zobrazovače se vkládají vklád nejčastěji přes čelní panel. Z blokového diagramu lze grafické zobrazovače vložit jen v případě, pokud existuje tato nabídka v menu funkce. Nejčastěji takovou možnost m najdeme u expresních funkcí. Pro čtení nebo zpracování signálu. Kompletní nabídku grafických grafických zobrazovačů najdeme v paletě Controls»Modern»Graph Modern»Graph (obr. 8.1).
Obr. 8.1 Grafické zobrazovače
122
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
8.1.1. Zobrazovač Waveform Chart Tento grafický zobrazovač pracuje jako průběžný zapisovač pro zobrazování jednotlivě zadávaných hodnot dat v ose y v konstantních intervalech na časové ose (osa x). Kliknutím pravého tlačítka na zobrazovač lze v pop-up pop up menu postupem Advanced»Update Mode zvolit jednu j ze tří jeho variant (obr. 8.2): • • •
Strip Chart (průběžný zapisovač) – je výchozím chozím režimem, zobrazuje data tak, jak přišla, zleva doprava, je-li je li graf naplněn, posunuje postupně vykreslovanou část doleva (jako klasický registrační zapisovač). Scope Chart (zapisovač obdobný osciloskopu) – zobrazuje jen část dat jako osciloskop, je-lii dosaženo pravého okraje, nové vykreslování začíná opět zleva. Sweep Chart (s možností nastavení svislé značky počátku obnovy dat), obdoba předchozí varianty, stará data zobrazuje vlevo a nová vpravo od svislé značky, nedochází k vymazání předešlého průběhu.
Obr. 8.2 Volba varianty zobrazovače zobrazova e Waveform Chart Na obr. 8.3 jsou u uvedeny dva příklady využití grafického zobrazovače Waveform Chart.. První příklad znázorňuje aplikaci pro zobrazení jednoho průběhu měnící se veličiny (tou je hodnota z generátoru náhodných čísel vynásobená hodnotou indexu smyčky). V druhém případě je znázorněno znázorněno využití po zobrazení průběhů více veličin do jednoho grafu. Pro sbalení veličin do výstupního datového typu (do klastru) je použita funkce Bundle (z palety Functions»Programming»Cluster, Class, & Variant). 123
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 8.33 Příklady využití grafů Waveform Chart
8.1.2. Zobrazovač Waveform Graph Tento typ grafického zobrazovače je určen pro zobrazování obsahu jednoho nebo více datových polí v ose y v konstantních konstan ích intervalech na časové ose (osa x), toho lze využít např. při mnohakanálovém vzorkování z DAQ zařízení. Každý blok dat představuje 2D pole (řádek a sloupek). Na obr. 8.4 .4 je zobrazen příklad aplikace. Kliknutím pravého tlačítka a volbou Properties v pop-up up menu vyvoláme záložku Appearance,, na níž můžeme zaškrtnutím políček rozšířit zobrazení grafu např. o legendu měřítek obou os (Scale ( Legend), o paletu grafu (Graph Graph Pallette), Pallette či o Scroll bar na ose x, který umožní posouvat zobrazovanou část pole. pole Nyní uvedeme příklad aplikace grafického zobrazovače Waveform Graph pro zobrazení více křivek. Musíme pamatovat na to, že osa x je všem křivkám společná, Příklad: Zobrazení více křivek v jednom zobrazovači. • Otevřeme si nové VI a nejprve si v blokovém diagramu vytvoříme dvě 1D pole – v našem případě použijeme funkce sin (2πf) a cos (2πf). • Přepneme se do čelního panelu (Ctrl+E) ( ) a vytvoříme si na něm Waveform Graf, zvolíme si jeho vhodný rozměr. • Přepneme zpět do blokového diagramu (Ctrl+E) ( ) a obě 1D pole spojíme za pomoci funkce Build Array do 2D pole (pozor na načtení pole jako 1 hodnoty, nesmíte zvolit načítání po prvcích – Concatenate Input) a přivedeme na vstup zobrazovače – obr. 8.5.
Poznámka 1: Pokud by bylo třeba v 2D poli zaměnit sloupce za řádky, v pop-up pop menu zobrazovače na čelním panelu zvolíme položku Transpose Array.
124
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 8.44 Nabídka Apperance pro Waveform Graf
Obr. 8.5 Použití Build Buil Array k zobrazení více grafů
8.1.3. Zobrazovač XY Graph Grafické zobrazovače,, které jsme si doposud popsali, byly vhodné pro zobrazení pravidelné nasnímaných průběhů veličin. Pokud jsou ale naše hodnoty dat přístupné v nepravidelných intervalech nebo pokud chceme zobrazovat dvě veličiny ve 125
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
vzájemné závislosti (např. y = f(x), y je funkcí x, kdy každý bod grafu je definován souřadnicemi (x, y) v tzv. kartézské souřadné soustavě), je výhodné použít grafický zobrazovač XY Graph (resp. Express XY Graph s předřazeným blokem pro automatickou konfiguraci vstupů X Input a Y Input). ). Jde o podobnou volbu jako je volba XY grafu v programu mu Excel (s tím je jistě seznámen každý uživatel). Příklad: Aplikaci zobrazovače si ukážeme na jednoduchém příkladu simulace XY grafu osciloskopu, kde na vstup X budeme posílat sin (2πf) a na osu Y cos (2πf), • Otevřeme řeme si nové VI a nejprve si v blokovém diagramu vytvoříme dvě 1D pole – v našem případě použijeme funkce sin (2πf) a cos (2πf), který jsme vytvořili již v předchozím příkladě. • Přepneme se do čelního panelu (Ctrl+E) ( ) a vytvoříme si na něm XY Graf, zvolíme sii jeho vhodný rozměr. • Přepneme zpět do blokového diagramu (Ctrl+E) ( ) a obě 1D pole spojíme za pomoci funkce Bundle do klastru a přivedeme na vstup zobrazovače – obr. 8.6.
Obr. 8.6 8 Použití Bundle k zobrazení XY grafu
Poznámka: Pokud bychom na ose Y chtěli zobrazit více křivek, musíme dát na vstup Y 2D pole vytvořené identicky jako v příkladu u Waveform Graf.
8.2.Volba parametrů grafických zobrazovačů Předchozím popisu jsme naznačili, že výchozí nastavení parametrů grafických zobrazovačů je zvoleno tak, aby bylo vhodné pro velkou část aplikací. Přesto je občas potřeba změnit či upravit nastavení některých parametrů pro konkrétní vytvořenou aplikaci. Volbu parametrů můžeme provádět stejně jako u dalších prvků čelního panelu pomocí pop-up up menu prvku. Nejčastěji Nejčastěji měněné parametry jsou přímo v popup menu nebo v podmenu položky Visible Items. Konkrétní menu se pro zobrazovače Waveform Chart, Waveform Graph a XY Graph mírně liší, ale většina vlastností se nastavuje stejně a má i stejnou funkci. Na obr. 8.7 je znázorněno menu zobrazovače XY Graph (menu Waveform form Graph je podobné).
126
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Zde můžeme volit parametry: • • • • • • •
Plot Legend – nastavování nastav barvy, stylu,, interpolace křivky průběhu; roztažením legendy se násobí vstupy grafu, Scale Legend – možnost konfigurace jednotlivých jednot os, Graph Palette – nástroje nástroj pro práci v grafu, např. lupa, uchopení křivky, posun apod., X Scale a Y Scale – další menu pro formátování jednotlivých os, Digital Display (jen u Chart) - umožňuje zobrazení razení dodatečného číselného zobrazovače, Cursor Legend (jen u Graph) - nástroje pro nastavení kurzoru dané křivky, X Scrollbar – posuvník pro zobrazení dat, která se nevykreslí na zobrazovači (výchozí hodnota Chart History Length je 1024 bodů).
Obr. 8.7 Pop-up Pop menu zobrazovače Waveform Chart Po volbě bě X Scale nebo Y Scale lze z dalšího menu provádět formátování os pomocí položek: • •
Formatting… – nastavení formátu a přesnosti os, Style – volba způsobu popisu os a typu značek na osách, popis os můžeme vypnout, • Mapping – volba typu stupnice osy: lineární nebo logaritmická, • Autoscale – zapnutí/vypnutí režimu automatického nastavování rozsahu osy, osy • Loose Fit – zapíná/vypíná režim „zarovnání" popisu os vzhledem k nastavenému kroku dat. 127
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Poznámka: U zobrazovače Waveform Graph lze zvolit položku Smooth Updates v pop-up menu Advanced,, kterou minimalizujeme blikání při vykreslování dat.
8.3.Export obrázků z grafických zobrazovačů Uživateli je často požadováno, aby se průběhy zobrazovaných veličin z grafických zobrazovačů daly exportovat jako obrázek do jiného programu programu (např. vložit do textového souboru, uložit samostatně do souboru apod.). V prostředí Microsoft Windows jsou nejčastěji používanými formáty souborů formáty: formáty: .emf, .bmp, resp. .eps. U všech typů grafických zobrazovačů se export provede vyvoláním pop-up pop menu zobrazovače a volnou položky export v dolní části pop-up up menu. Otevře se submenu volby exportu – obr. 8.8.
Obr. 8.8 Menu exportu dat Volbou položky Export Simplified Image se zobrazí okno stejnojmenného menu (na obr. 8.9). Zde si můžeme zvolit požadovaný formát budoucího obrázku grafu a typ exportu. Export xport obrázku se provede stisknutím tlačítka Export na spodním řádku menu. Při volbě Save to file je dobré nejprve vložit cestu a název obrázku.
Obr. 8.9 Menu Export Simplified Image pro export obrázku 8.6. Výsledný obrázek (v našem případě Na ukázku si provedeme export grafu z obr. 8.6. vybraným ze schránky) je znázorněn na obr. 8.10. 8.10 128
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 8.10 Vyexportovaný obrázek grafu XY ve formátu .bmp
129
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
9. Některé další funkce LabVIEW Programovací prostředí LabVIEW nabízí velké množství různých funkcí a nástrojů pro práci. Posláním této publikace není popsat všechny možnosti a funkce, nýbrž začínajícímu uživateli tyto možnosti a funkce naznačit. Pro některé aplikace je potřebné získat k dalšímu zpracování informace o prvku čelního panelu a s nimi potom dále pracovat v programu nebo tyto vlastnosti nastavovat v programu. K tomu slouží funkce Property Node a Invoke Node. Pro vytváření VI je často třeba použít pro styk uživatele se zařízením různé nástroje zvukového nebo vizuálního sdělování. sdělování. Tyto funkce nalezneme např. v paletě Functions»Programming»Graphics Functions»Programming»Graphics&Sound. Této oblasti se budeme nyní krátce věnovat.
9.1.Funkce pro zvuk Pro sdělení některých informací ve zvukové podobě je vhodné použít některou z funkcí pro práci se zvukem a se soubory zvukového formátu .wav z palety Functions»Programming»Graphics&Sound. Tyto funkce umožňují: Functions»Programming»Graphics&Sound. • • •
vytvořit VI pro přehrání zvukového souboru, jako např. varovného hlášení při vykonání určitého úkonu nebo pro vyžádání obsluhy, konfigurovat zařízení pro nahrávání zvuku, konfigurovat zařízení pro přehrávání zvuku.
Nejjednodušším způsobem je vygenerování krátkého zvukového signálu (pípnutí, resp. spíše píše cinknutí), které poskytuje funkce Beep.vi.. Příklad využití této funkce je uveden v příkladu 2 v kapitole 4.4 na straně 85. Tuto funkci stačí jen vložit v do VI do místa, kde chceme nechat zvukové znamení zaznít. Další příklad je uveden na obr. 9.1, kde je ve výřezu z blokového diagramu a z čelního panelu naznačena část VI využívajícího funkci Play Sound File.vi pro přehrání souboru ve zvukovém formátu .wav.
130
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 9.1 Příklad Př využití funkce Play Sound File.vi Funkci (resp. VI) Play Sound File.vi vlož vložíme z palety Functions»Programming»Graphics Functions»Programming»Graphics&Sound. Na vstup timeout je potřeba vložit konstantu, která nám určuje určuj maximální dobu přehrávání zvukového souboru v sekundách. Na vstup path připojíme vstupní ovladač (postupem Create»Control), Create který nám na uživatelské rozhraní vloží dialogové okno pro zadání adresy (cesty) zvukového souboru. Po spuštění VI se program zastaví a požaduje formou dialogu (běžného v systému Windows) zadání cesty ke zvukovému souboru, který chceme přehrávat (na příkladu z obr. 9.1 jde o soubor ZvukoveHlaseni.wav nacházející se v kořenovém adresáři na disku C:). Pokud bychom chtěli mít zvuk definovaný předem, místo postupu Create»Control Create zvolíme Create»Constant »Constant a cestu vložíme na straně blokového diagramu. Při přenosu programu na jiný jiný počítač je pak nutno zajistit, aby cesta k souboru byla platná.
9.2.Funkce kce pro zobrazování a grafiku V kapitole 8 jsme se zabývali využitím dvou základních typů grafických zobrazovačů Chart, resp. Graph určených pro nejčastěji používané grafické é zobrazování zobrazov údajů. V této části si popíšeme některé další grafické zobrazovače,, které lze nalézt např. v paletě Controls»Modern»Graph »Modern»Graph a s jejichž pomocí můžeme zobrazovat různé obrazce, křivky, obrázky apod. Velké množství příkladů najdete v nápovědě Help»Find examples… a po zadání vhodného hesla (např. plot). Indikátor (zobrazovač) 2D Picture slouží k vykreslování čar, kružnic, textu a jiných typů grafického formátu. Jednotlivé objekty se skládají z jednotlivých bodů (pixelů) o zadaných souřadnicích (x, y). Zobrazovač má definovaný počátek vykreslování v bodě (0, 0), což je pixel v levém horním rohu plochy zobrazovače. Vodorovná osa x narůstá směrem doprava a svislá osa y roste směrem dolů. Plochu zobrazovače můžeme obvyklým postupem (pomocí šipek) nastavit nastavit do požadované velikosti nebo použít volbu Properties v pop-up up menu prvku. Pokud chceme velikost měnit programově, využijeme uzel Property Node - Draw Area Size. Pro zobrazování objektů (bodů bodů a křivek) křivek na ploše zobrazovače Picture a jejich další zpracování vání slouží funkce (často i subVI) nacházející se v sub paletě Picture functions kterou najdeme v paletě Functions»Programming» »Programming» Graphics& Sound. Nyní si ukážeme příklad pro kreslení čar. čar
131
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
a) blokový diagram
b) uživatelské rozhraní Obr. 9.2 Příklad říklad využití zobrazovače Picture a funkce Draw Line.vi Příklad 1: Pro modelový příklad jsme si vybrali vytvoření interaktivního interaktivní zobrazovače inspirovaného starší dětskou hračkou „magická tabulka“. Hračku tvořila obrazovka se zapisovačem (hrotem pera), který kte kreslil čáru podle otáčení dvou ou knoflíků. Jeden knoflík posouval zobrazovačem ve směru osy X (vodorovný směr) a druhý ve směru osy Y (svislý směr). Pro knoflíky použijeme např. otočné ovladače Knob a obrazovku bude tvořit plocha s názvem Magic Picture. • Nejprve jprve na plochu čelního panelu vložíme dva otočné ovladače Knob (z palety Constrols»Express»Numeric »Express»Numeric Controls), Controls), jejichž popisky přejmenujeme na X, resp. Y, a zobrazovač 2DPicture z palety Controls»Graph»Controls »Graph»Controls, která přejmenujeme na Magic Picture. • Přepneme me na zobrazení blokového diagramu, z hodnoty X a Y pomocí funkce Bundle (z palety Functions»Programming»Cluster, Functions»Programming»Cluster, Class&Variants) Class vytvoříme klastr, který vložíme jako vstup do bloku Draw Line.vi. Line.vi • Aby se nám čára zobrazovala, musíme použít zpětnovazební uzel (Feedback Node), ), který najdeme v paletě Functions»Programming»Structures »Programming»Structures a teprve výstup z něj vložit do indikátoru Magic Picture. Vstupní pin zpětnovazebního uzlu je připojen na pin New Picture bloku Draw Line.vi. • Program nesmíme zapomenout vložit do do smyčky While a cyklus musíme zpomalit vložením časového zpoždění Wait a vložením konstanty udávající zpoždění v milisekundách – v našem případě 50 ms. • Výsledný program v blokovém diagramu vidíme na obr. 9.2 a), uživatelské rozhraní vidíme s několika nakreslenými nakr čarami na obr. 9.2 b). b)
132
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Poznámka: Pokud spojíme výstupní terminál funkce Draw Line.vi označený new picture (přivedený na vstup zobrazovače Picture)) se vstupním terminálem picture. Program nám vloží zpětnovazební zpětnova uzel (Feedback Node) automaticky. automaticky Některé funkce ze sub palety Picture Functions mají vstup označený color k nastavení barvy vykreslovaného objektu (základní hodnotou je barva černá). V nejjednodušším případě na tento vstup připojíme konstantu s číslem požadované barvy, komfortnější přístup potom umožňuje vložení ovladače (Create (Create»Control) a nastavením barvy z čelního panelu kliknutím levým tlačítkem na vložený barevný čtverec a volbou požadované barvy z vyvolané palety barev. Budeme-li pracovat s různými grafickými formáty obrázků (.bmp (.bmp, .jpg, .png), můžeme pro čtení nebo zápis použít funkce z palety Functions»Programming» »Programming» Graphics&Sound»Graphics Graphics Formats na obr. 9.3. Pro všechny výše uvedené formáty obrázků zde najdeme funkce na čtení (Read) i zápis (Write).
Obr. 9.3 Sub menu Graphic Formats Příklad 2: Ukážeme si velmi jednoduchý příklad zobrazení obrázku ze souboru formátu .jpg na uživatelském rozhraní, které je zobrazeno jako bitmapa. • Otevřeme řeme si nové VI a na uživatelském rozhraní si vytvoříme jako indikátor z palety Controls»Graph»Controls »Graph»Controls prvek 2D Picture,, který si můžeme přejmenovat např. na Obrazek a upravíme jeho velikost. • Přepneme se do blokového diagramu a z palety Functions»Programming» »Programming» Graphics&Sound»Graphics Formats vybereme blok (subVI) Read JPEG File.vi. • Načtený obrázek převedeme pomocí dalšího bloku Draw Flattened Pixmap.vi z palety Functions»Programming»Graphics&Sound» »Programming»Graphics&Sound»Picture Picture Functions a jeho výstup propojíme s indikátorem Picture – obr. 9.4. • Po spuštění programu se otevře komunikační okno Windows, kde si můžeme vybrat soubor obrázku. ázku.
133
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Obr. 9.4 Příklad použití funkce Read JPEG File.vi
Poznámka 1:: Pokud chceme zobrazit nějaký konkrétní obrázek bez zásahu uživatele, na vstup bloku Read JPEG File.vi přivedeme do pinu Path to JPEF File cestu k obrázku jako konstantu. Poznámka 2: V příkladu není řešen rozměr obrázku, obrázku rozměr zobrazovacího pole se nepřizpůsobí rozměrům vybraného obrázku. K tomu by bylo možno využít Property Node.
134
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
10.
Pořizování ní dat (Data Acquision – DAQ)
LabVIEW není jen programem pro zpracovávání dat z tabulek nebo zobrazování výsledků postprocesingu (následného zpracování dat) a jejich porovnávání se simulací, jak jsme si ukazovali doposud. LabVIEW slouží i k pořizování z externích karet a zařízení připojených jených k počítači. Práce s daty získanými při měření a generování fyzikálních signálů se nazývá pořizování dat – Data AcQuisition (zkráceně též DAQ) a patří mezi velmi silné nástroje prostředí LabVIEW (označuje se též NI-DAQ). NI DAQ). Každý signál z měření lze zpracovávat racovávat a vyhodnocovat z hlediska několika informací: • stavu (např. analogový signál, číslicový signál), • rychlosti (např. vzestupná hrana, sestupná hrana), • úrovně (např. hodnota v určitém místě průběhu), t • varu (např. průběh hrany) a • frekvenčního obsahu (např. frekvenční analýza). Systémy určené pro získávání dat (tzv. DAQ systémy, které tvoří počítač a zásuvné karty) umožnily výrazné zvýšení rychlosti měření a zpracování dat. Konstrukční řešení DAQ systémů umožnilo také postupné nahrazení analogového způsobu způsob zpracování signálů počítačovými systémy za pomoci vhodného programového vybavení (DSP – Digital Signal Processing). Processing Tímto způsobem vzniká tzv. virtuální přístrojová technika. Její hlavní vlastností je kombinace technického (hardwarového) a programového vybavení se standardizovanými průmyslovými počítačovými technologiemi, které nám umožňují vytvářet uživatelsky definovaná definovan řešení na míru (podle přání a potřeb zákazníka). zákazníka) Mnoho firem se dnes zaměřuje na vývoj technických řešení pro modulární a zásuvné (tzv. plug-in) in) systémy včetně programových ovladačů pro DAQ systémy na bázi sběrnic a rozhraní ISA (dnes již na ústupu), PCI, GPIB (IEEE 488), PC-Card, PC PCMCIA, USB, IEEE 1394, PXI/CompactPCI, Ethernet, sériových, paralelních a dalších průmyslových prů rozhraní. Programový ovladač (D Driver) je programové rozhraní k danému technickému zařízení s přihlédnutím ke specifickým vlastnostem konkrétní platformy počítače. Moderní zařízení DAQ jsou většinou v provedení zásuvných karet (např. měřicí karty) pro vložení ložení do systémového konektoru počítače nebo v provedení externího zařízení vybaveného rozhraním pro komunikaci s počítačem, v současné době jde zejména o rozhraní USB, IEEE 1394 (FireWire), Ethernet apod. Většina tšina výrobců měřicí techniky a dalších zařízení, zařízení, které umožňují sběr dat, dat mají nějakým způsobem realizovánu komunikaci s počítačem. Nejčastěji pomocí sériové linky, USB nebo Ethernetu. Většina velkých výrobců (např. Agilent) má Drivery pro LabVIEW pro svá zařízení (multimetry, generátory, osciloskopy) volně ke stažení. Pokud takový programový prostředek prostř (Driver) k svému zařízení firma nedodává, je většinou k dispozici alespoň DLL knihovna s příkazy nebo popis funkcí základní komunikace po sběrnici, kterou zařízení komunikuje s nadřazeným systémem (nejčastěji počítačem). Často je komunikace řešena jen prostým posíláním aktuálních dat na vyžádání.
135
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Prostředí LabVIEW tímto způsobem umožňuje sofistikovaně analyzovat, zpracovávat a zobrazovat signál a získaná data. Příklady konkrétních úloh a aplikací s využitím nejen výše uvedených postupů programování a zobrazování generovaných signálů, ale především využité zásuvných karet, externích xterních karet a dalších zařízení různých výrobců budou uvedeny v pokračování těchto skript – Programování v LabVIEW v příkladech II – externí zařízení.
136
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Závěr Hlavním smyslem této publikace je seznámit čtenáře se základními funkcemi poměrně rozsáhlého vývojového programového prostředí LabVIEW zejména na příkladech a vysvětlených postupech. Autoři věří, že pokud čtenář došel v svém pozorném čtení až do těchto míst, zcela určitě se jeho do paměti vryla stopa a nové poznatky, které mu pomohou prostředí využívat a postupně je začít užívat mnohem efektivněji.
137
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Příloha A – Přehled některých klávesových zkratek Objekty a pohyb ________________________________________________ Shift+klik volba objektů, přidání objekt do aktuální volby šipky pohyb zvoleného objektu o jedno políčko (pixel) Shift+šipka pohyb zvoleného objektu o několik políček (pixelů) Shift+klik (táhnutí) pohyb zvoleného objektu v jedné ose Ctrl+klik (táhnutí) kopírování zvleného objektu Ctrl+Shift-klik (táhnutí) kopírování zvoleného objektu a posunutí v jedné ose Shift+změna velikosti změna velikosti se zachováním poměru stran Ctrl+změna velikosti změna velikosti se zachováním středu Ctrl+táhnutí obdélníku vložení místa Ctrl+A volba všech položek na ploše dvojklik na volné ploše vložení popisku Ctrl+kolečko myši volba rámců struktur Case, Event nebo Stacked Sequence Navigace předního ředního panelu a blokového diagramu ______________________ Ctrl+E zobrazení blokového diagramu nebo čelního panelu Ctrl+# povolení nebo zakázání zarovnání na mřížku Ctrl+/ zobrazení na celou obrazovku nebo zmenšení Ctrl+T „vydláždění“ okny čelního panelu a blokového diagramu na celou plochu obrazovky (Tile = dlaždice) Ctrl+F hledání objektu nebo textu (Find – hledání) Ctrl+Shift+F zobrazení okna výsledků hledání Ctrl+Tab procházení oken Ctrl+Shift+Tab procházení oken v opačném pořadí Ctrl+Shift+N zobrazení navigačního okna Ctrl+I zobrazení okna VI properties (vlastnosti VI) Ctrl+L zobrazení okna Error List (seznam chyb) Ctrl+Y zobrazení okna History (historie) Ctrl+Shift+W zobrazení okna All Windows (všechna kna) Navigace okna VI Hierarchy ________________________________________ Ctrl+D nové načtení okna VI Hierarchy Ctrl+A zobrazí všechny VI v okně VI Hierarchy Ctrl+klik VI zobrazí subVI a uzly připojené k VI v okně VI Hierarchy Enter nalezne následující připojený uzel v okně VI Hierarchy Shift+Enter nalezne předchozí připojený uzel v okně VI Hierarchy
Odlaďování____________________ _________________________________________________ ______________________________ Ctrl+šipka dolů Ctrl+šipka vpravo Ctrl+šipka nahoru
krok Step into (vykonání jednoho uzlu) krok Step over (vykonání celého uzlu v hlavní funkci) krok Step out (vykonání uzlu z volajícího VI)
Operace se soubory _______________________________________________ Ctrl+N vytvoření nového VI Ctrl+O otevření existujícího VI Ctrl+W uzavření VI Ctrl+S uložení VI Ctrl+Shift+S uložení všech otevřených otev souborů Ctrl+P tisk okna Ctrl+Q opuštění LabVIEW Editace _________________________________________________________ Ctrl+Z zrušení poslední akce Ctrl+Shift+Z obnovení poslední akce
138
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Ctrl+X Ctrl+C Ctrl+V
smazání objektu kopírování objektu vložení objektu
Help __________________________________________________________ Ctrl+H zobrazení nebo uzavření okna kontextové nápovědy Ctrl+Shift+L zablokování okna kontextové nápovědy Ctrl+? nebo zobrazení nápovědy LabVIEW Help Nástroje a palety ________________________________________________ Ctrl volba nejbližšího použitelný nástroj Shift volba nástroje umisťování (šipka) Ctrl+Shift na volné ploše volba nástroje posouvání (ručka) mezerník přepínání mezi dvěma nejpoužívanějšími nástroji Shift+Tab povolení automatické volby nástrojů Tab přepínání mezi čtyřmi nejpoužívanějšími nástroji šipky výběr v položkách palet Enter směřování do palety Esc směřování z palety Shift+pravý klik zobrazení palety nástrojů SubVIs ________________________________________________________ ________________________________________________________ dvojklik zobrazení čelní panel subVI Ctrl+dvojklik zobrazení blokového diagramu a čelního panelu subVI Ctrl+pravý klik otevření čelního panelu Spouštění a vykonání _____________________________________________ Ctrl+R spuštění VI Ctrl+. zastavení VI Ctrl+M volba mezi módem spuštění a editování Ctrl+tlačítko Run rekompilace VI Ctrl+Shift+tlačítko Run rekompilace všech VI v paměti Ctrl+šipka dolů přesunutí ukazatele do pole nebo klastru Ctrl+šipka nahoru přesunutí ukazatele na vnější obrys pole nebo klastru Tab přepínání mezi ovladači a zobrazovači postupně podle pořadí jejich vložení (tzv. tabbing order) Shift+Tab přepínání mezi ovladači a zobrazovači v pořadí opačném Propojování _____________________________________________________ Ctrl+B odstranění všech přerušených spojů Esc, pravý klik nebo klik na připojovacím bodě zrušení započatého spoje klik na spoj volba jednoho segmentu dvojklik na spoj volba celého spoje i se zlomy trojklik na spoj volba všech navázaných spojů A při spojování spojování dočasně ukončí automatické spojování dvojklik (při spojování) „přišpendlí“ nedokončený spoj mezerník přepínání automatického propojování při posouvání objektu Shift+klik zrušení poslední provedené části spoje Ctrl+klik na vstup volba spoje na jeden ze vstupů mezerník volba směru spoje (vodorovně/svisle) Text ___________________________________________________________ dvojklik volba celého slova v řetězci trojklik volba celého řetězce Ctrl+šipka vpravo posunutí v řetězci o jedno slovo vpřed Ctrl+šipka vlevo posunutí v řetězci o jedno slovo zpět
139
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Home End Ctrl+Home Ctrl+End Shift+Enter Esc Ctrl+Enter Ctrl+= Ctrl+Ctrl+0
nastavení na začátek řádku v řetězci nastavení na konec řádku v řetězci nastavení na začátek řetězce nastavení na konec řetězce vložení další (následující) položky při zadávání zadávání hodnot zrušení editace v řetězci ukončení zadávání textu zvětšení velikosti písma změnšení veikosti písma zobrazení dialogu pro volbu typu písma (Selection Font)
140
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Literatura Použitá nebo doporučená literatura (publikace): [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]
-: USB-6008/6009, 6008/6009, Uživatelská příručka, publikace NI Czech, Praha 2006; -: Začínáme s LabVIEW, publikace NI Czech, Praha 2006; Bishop, R. H.: LabVIEW 8 Student Edition, Pearson Prentice Hall 2007; 2007 Čermák, M.: Moderní měřicí systémy, diplomová práce, MU Brno 2003; 2003 Gašparík, P.: Vizualizace technologického procesu kontrolovaného řídicím systémem, bakalářská práce, TU Liberec 2007; 2007 kolektiv: Využití ICT a měřicího systému LabVIEW na střední střední technické tec škole, SPŠ Trutnov 2005 ; Kučera, J.: Řízení robota LEGO MINDSTORMS NXT v prostředí prost LabVIEW, bakalářská práce, TU Liberec 2008; 2008 Pechoušek, J.: Základy programování v prostředí LabVIEW, Vydavatelství UP Olomouc 2004; Polehla, M.: Charakteristika programu Labview a jeho použití v lineární regulaci, bakalářská práce, ČZU Praha 2007; 2007 Srsen, L..: Návrh vizualizačního vizualiza ního systému technologického procesu v prostředí prost LabVIEW, bakalářská práce, TU Liberec 2008; 2008 Vlach, J.: Obvody řídicích řídicích systémů, Gethon audio and computer Sokolov 1996; 1996 Vlach, J.: Počítačová rozhraní – přenos dat a řídicí systémy, 2. rozšířené vydání, BEN Praha 2000; 2000 Vlach, J.: Řízení a vizualizace technologických procesů, BEN Praha 1999; 1999 Votrubec, R.: LabVIEW abVIEW for Windows, TU Liberec 2000; 2000 Žídek, J.:: Grafické programování ve vývojovém prostředí LabVIEW, výuková skripta, VŠB-TU TU Ostrava 2006 (starší verze z roku 2002.
Články v časopisech: [M1] Anderson, S. C.: NI LabVIEW – programování není povinné, In: Automatizace, 50, 6/2007, s. 402; [M2] Kmit, P.: PAC – další generace řídicích automatů, In: Automatizace, 48, 3/2005, s. 188; [M3] Kmit, P.: PAC – nástup generace řídicích automatů, In: Automa, 3/2005; [M4] Kmit, P.: Měření prostřednictvím sběrnice USB, In: Automatizace, 10/2005; [M5] Štefan, R.: Nové trendy v navrhovánía řízení strojů, In: Automatizace, 48, 7 8/2005, s. 442 - 443; [M6] Štefan, R.: Řízení pohybu softwarem, In: Automatizace, 48, 1/2005, s. 18 19; [M7] Vlach, J.: Začínáme s LabVIEW,, In: Sdělovací technika, 4/2008, s. 20 - 21; [M8] Vlach, J.: Experimentální deska USB K8055 a LabVIEW, In: Praktická elektronika, 5/2008, s. 29 – 30, 6/2008, s. 22 - 23; Internetové odkazy: [W1] www.ni.com/czech 141
Programování v LabVIEW v příkladech Modernizace didaktických metod a inovace výuky technických přednmětů
Název
Programování v LabVIEW v příkladech
Autor:
Ing. Lenka Kretschmerová, Ph.D.; Ing. Jaroslav Vlach, Ph.D.
Určeno pro studenty FMIMS, FS, FT a UZS Technické univerzity v Liberci Vydavatel
Technická univerzita v Liberci
Schváleno
Rektorátem TU v Liberci dne 15.12.2014,, čj. RE 138/13
Vyšlo
v prosinci 2014
Počet stran
141
Vydání
1.
Tiskárna
Vysokoškolský podnik Liberec, spol. s r.o., r.o. Studentská 1402/2, Liberec
Číslo publikace
55-138--13
Tato publikace neprošla redakční ani jazykovou úpravou.
ISBN 978-80-7372 7372-167-2
142