LabVIEW tutorial Méréstechnika és Információs Rendszerek Tanszék Budapest Méréstechnika és Információs Rendszerek Tanszék VIMIA312 1. oldal
1. Bevezetés Általános műszermodell Az egységek bonyolultsága a műszer fajtájától és technológiától függően nagyon eltérő lehet, de a feldolgozó és megjelenítő egység hasonló műszermag A műszermag univerzálissá tételével csökkennek a fejlesztési költségek mikroprocesszoros rendszerek megjelenése tette lehetővé Méréstechnika és Információs Rendszerek Tanszék VIMIA312 2. oldal
Beágyazott rendszerek - beágyazott rendszereknek nevezzük azokat a processzor alapú eszközöket, illetve az ezekből alkotott rendszereket, amelyek képesek a befogadó (fizikai/kémiai/biológiai) környezetüket érzékelők segítségével autonóm módon megfigyelni és (amennyiben szükséges) beavatkozók segítségével befolyásolni mikroprocesszorok/mikrovezérlők fejlődése komplex funkciók elérhető áron moduláris HW felépítés - testreszabás SW-ben gyors egyedi műszerfejlesztés SW is moduláris felépítésű gyors SW fejlesztés PC tulajdonképpen univerzális műszermag Készülékfejlesztés = alkalmazói SW elkészítése Méréstechnika és Információs Rendszerek Tanszék VIMIA312 3. oldal
1.2. Virtuális műszerek PC alapú műszerfejlesztés 2 irányvonala Hagyományos irányvonal (ipari PC alaplap és perifériák műszerdobozban) Asztali PC kiegészítve I/O perifériákkal és alkalmas SW-el Az alkalmazói SW cseréjével sokféle műszer implementálható A műszer funkcionálisan megegyezik a célműszerrel, de virtuális abban az értelemben, hogy fizikai megjelenése eltér azokétól National Instruments cég élenjáró a virtuális műszer koncepcióban A moduláris és univerzális hardverelemekhez szintén moduláris és univerzális programozási nyelvre és környezetre van szükség LabVIEW Méréstechnika és Információs Rendszerek Tanszék VIMIA312 4. oldal
1.3. Magasszintű programozás Procedurális nyelvek (Pascal, C) Objektum-orientált programozás (C++, Java) Grafikus programozás - LabVIEW ilyen, a szöveges programozási nyelvektől eltérő gondolkodásmódot kíván meg Adatfolyam programozás - LabVIEW-ra jellemző Műszerekre jellemző adatbeolvasás - feldolgozás - kijelzés tipikus feladatsor A nyelv szerkezetét és elemeit ennek az adatfolyamnak a minél egyszerűbb leírhatósága határozta meg A hagyományos procedurális, ill. OO programozási elvek és konstrukciók nem, vagy csak áttételesen, alkalmazhatók Méréstechnika és Információs Rendszerek Tanszék VIMIA312 5. oldal
1.4. Magas vagy alacsony szintű programozás? Triviális válasz: ki melyiken tud jobban programozni Bizonyos esetek alapvetően meghatározzák melyik célravezetőbb (pl. mikrokontroller szűkös erőforrásai, melyik kódrészlet fut leggyakrabban, stb.) Tendenciájában a magas szintű programozás felé mozdult el a szakma Okai: jobb tesztelhetőség bizonyítottan nagyobb biztonság minél magasabb szintű egy nyelv, egy utasítása annál komplexebb funkciót tud ellátni (kérdés: mindig jó-e ez nekünk) valamivel gyorsabb fejlesztés Méréstechnika és Információs Rendszerek Tanszék VIMIA312 6. oldal
2. LabVIEW elindítása A labview-ban a programokat virtuális műszernek, ( virtual instrument ) VI-nak nevezik Elindítva a programot a következő ablak jelenik meg: Ügyeljünk arra, hogy az Execution Target mezőben a LabVIEW for Windows legyen. Itt lehet beálĺıtani mire szeretnénk implementálni a műszert (beágyazott rendszerre LabVIEW for Embedded) Méréstechnika és Információs Rendszerek Tanszék VIMIA312 7. oldal
2.1. A LabVIEW felépítése Új VI létrehozása a New... megnyomásával lehet, de előbb vizsgáljuk meg egy egyszerű VI felépítését Az Open...-re kattintva megnyílik a Choose the VI to open ablak: Ebben az ablakban választhatjuk ki a már elkészített VI-rogramot legyen ez egy hőmérséklet konnvertáló C F Méréstechnika és Információs Rendszerek Tanszék VIMIA312 8. oldal
Megjelenik az előlap (Front Panel) és még néhány egyéb ablak Ctrl+E megnyomásával előugrik a blokkdiagram (Block Diagram) ablak is Az előlapon a virtuális műszer bemenet=controll, kimenet=indicator Bemenet és kimenet összehuzalozva adatfolyam útja=program Méréstechnika és Információs Rendszerek Tanszék VIMIA312 9. oldal
2.2.1. Adatfolyam programozás Minden egyes vezérlőtől (a bemenetektől) a huzalok vagy vonalak mentén egy-egy adatút alakul ki a megjelenítőkig (kimenetekig) A blokkdiagram (program) végrehajtását az adatfolyam határozza meg Általában balról jobbra haladva szokták felrajzolni az adatfolyamokat (bal oldalra a bemeneti, jobb oldalra a kimeneti blokkokat), de fontos tudni, hogy a végrehajtást nem a felrajzolás iránya szabja meg Egy csomópont (node) akkor hajtódik végre, ha az összes bemenetén rendelkezésre állnak az adatok A csomópont a végrehajtás után az összes kimenetére kiadja a megfelelő adatot Méréstechnika és Információs Rendszerek Tanszék VIMIA312 10. oldal
2.3. Futtatás Az eszközsorban a jobbra mutató vastag, üres nyílra kattintva indíthatjuk el a VI-t. A nyíl ikonja ekkor átalakul feketével kitöltött szaggatott nyíllá. Ha a blokkdiagramon az izzólámpa ikon ki van választva, az adatok áramlását mozgó korongocskák mutatják, és az értékek megjelennek a huzalokon A működés megértéséhez és hibakereséshez ez a funkció nagyon hasznos. Méréstechnika és Információs Rendszerek Tanszék VIMIA312 11. oldal
3. Paletták A VI-k írásához, futtatásához, hibakereséséhez, javításához szükséges eszközöket ún. palettákba szervezik Az előlap panelhez: A blokkdiagram eszközei: Méréstechnika és Információs Rendszerek Tanszék VIMIA312 12. oldal
4. VI készítés (programírás) C F példa után nézzük meg a F C konvertálót, amit elkészítünk A program elindítása után válasszuk a New... menüpontot (Blank VI defaultként jó lesz OK) Üres előlap és üres blokkdiagram (Ctrl+E ha nem) megjelenik Az előlap (Front Panel) Window menüjéből válasszuk ki a Show Controls Palette, majd a Show Tools Palette pontokat A blokkdiagram panelen (Block Diagram) a Window / Show Function Palette kiválasztásával jelenítsük meg a Function palettát is Ellenőrizzük, hogy a Controls (vagy a Functions) palettánál az Advanced készlet van-e kiválasztva (emĺıtett panelek Search melletti gombja) Méréstechnika és Információs Rendszerek Tanszék VIMIA312 13. oldal
Méréstechnika és Információs Rendszerek Tanszék VIMIA312 14. oldal
4.1. Előlap Létre kell hozni a virtuális műszer előlapját van egy vezérlőnk (bemenet: Fahrenheit fok) van egy megjelenítőnk (kimenet: Celsius fok) Változófogalom: hagyományos értelemben két változónk van, egyik a Fahrenheit értéket, míg másik a Celsius értéket tartalmazza. A LabVIEW-ban nem változókkal, hanem adatforrással, megjelenítővel és adatfolyammal dolgozunk. Változókkal akkor kell foglalkozni, ha az adatfolyam koncepcióval nem feloldható a probléma. A bemenet létrehozása: A Control palettán click a Numeric alpalettára Click Numeric control ikon Click a VI előlapjára (megjelenik az ikon az előlapon, és jobb egérrel a tulajdonságok beálĺıtására nyílik lehetőség) A blokkkdiagramon is megjelenik a megfelelő szimbólum Méréstechnika és Információs Rendszerek Tanszék VIMIA312 15. oldal
Méréstechnika és Információs Rendszerek Tanszék VIMIA312 16. oldal
A Control (bemenet) mintájára az Indicator (kimenet) is létrehozható A Control palettán click a Numeric alpalettára Click Numeric indicator ikon Click a VI előlapjára A semmitmondó feliratokat azokra rákattintva könnyedén átnevezhetjük Az előlap és blokkdiagram a következőképpen néz ki: Méréstechnika és Információs Rendszerek Tanszék VIMIA312 17. oldal
Az átalakításhoz ismerni kell az algoritmust ami: C=(F-32)/1.8 Szükség van egy kivonás műveletre, egy osztás műveletre, és két konstansra. Functions paletta Numeric alpalettája Az elemket a blokkdiagram ablakba kell lehelyezni Méréstechnika és Információs Rendszerek Tanszék VIMIA312 18. oldal
Következő lépés a blokkdiagram elemeinek összehuzalozása A blokkdiagram ablak bal oldalán látható törött nyíl jelzi, hogy szintaktikai hiba van (nincs huzalozás). Rákattintással javaslatot tesz a hibák kezelésére. A Tools palettáról a cérna ikonnal jelzett Connect Wire huzalozót kiválasztva összeköthetjük az egyes blokkokat Ha megvagyunk futtathatjuk a programot (bal felső sarokban a nyíl megnyomásával) Az előlapon tetszőleges Fahrenheit értéket beírva futtatás után megjelenik a Celsius megfelelő Ne feledjük a mentést! Méréstechnika és Információs Rendszerek Tanszék VIMIA312 19. oldal
Méréstechnika és Információs Rendszerek Tanszék VIMIA312 20. oldal
5. Vezérlési szerkezetek A blokkdiagram panel Structures alpalettájában található: for ciklus ciklusszámláló i és ciklusok száma N while ciklus ciklusszámláló i és ciklusfeltétel A ciklusba kívánkozó programrészletet (blokkot) körbe kell venni a ciklussal Méréstechnika és Információs Rendszerek Tanszék VIMIA312 21. oldal
5.1. For ciklus Van ciklusszámlálója (i, Iteration Terminal) A ciklusok számát az N bemeneti változó (Count Terminal) értéke határozza meg A ciklus 0-tól N 1-ig fut A piros nyíllal jelölt kék négyzetnek az a feladata, hogy kivezesse az i ciklusváltozó végértéket a ciklusból Méréstechnika és Információs Rendszerek Tanszék VIMIA312 22. oldal
5.2. While ciklus Van ciklusszámlálója (i, Iteration Terminal) Legalább egyszer lefut Működésére feltétel adható meg itt addig fut, amíg a STOP gombot meg nem nyomjuk Méréstechnika és Információs Rendszerek Tanszék VIMIA312 23. oldal
5.3. Case struktúra Stack-szerű megjelenítés A keretek egymás mögé illeszkednek, akár a kártyalapok Helye: Functions / Structures / Case Structure Egyszerre csak egy lap látszik A keretre történő jobbkattintással előjön a struktúrához tartozó legördülő menü Méréstechnika és Információs Rendszerek Tanszék VIMIA312 24. oldal
5.4. Sorrendi (Flat Sequence) struktúrák Click a Flat Sequenc... ikonra, majd vegyük körül a blokkdiagramon a szekvenciálisan végrehajtandó programrészt A blokkokat szekvenciálisan hajtja végre Új filmkocka hozzáadása: jobbkattintás a keretre és Add Frame After vagy... Before. Méréstechnika és Információs Rendszerek Tanszék VIMIA312 25. oldal
6. Egyéb funkciók Sub VI létrehozása: minden VI-ből készíthetünk egy olyan egységet, amelyet egy másik VI-be szubrutinszerűen, egyetlen blokk-ként beilleszthetünk Express VI: általában bonyolultabb feladatokat lát el, és dialógusablak segítségével interaktívan konfigurálható Az eltérő adattípusokat eltérő szín jelöli a konverzió típuskonverziós blokkokkal tehető meg (ez is a Function palettán belül található meg) jobbegérrel előhívhatjuk pl. egy bemenet (pl. Numeric Control) tulajdonságait ott megváltoztathatjuk a típust (sok más mellett) Méréstechnika és Információs Rendszerek Tanszék VIMIA312 26. oldal
7. Műszerkezelés A LabVIEW-val bármely olyan programozható műszer vezérelhető, amelyhez rendelkezésre állnak a driverek A legtöbb esetben már a programhoz előre megírt drivereket használhatjuk, melyek egy alkönyvtárban hozzáférhetőek (hasonlóan mint pl. egy for ciklus ) A drivereket is egy-egy ikon jelöli Amennyiben nem állnak rendelkezésre előre elkészített driverek, azokat magunk is elkészíthetjük C-ben és felhasználhatjuk a programban Méréstechnika és Információs Rendszerek Tanszék VIMIA312 27. oldal
7.1. HP4263B driverei Méréstechnika és Információs Rendszerek Tanszék VIMIA312 28. oldal