LabVIEW Core 2 Feladatok
Mi nta
TM
A tanfolyam szoftveranyagának verziószáma 2010 2010. augusztus kiadás Termékkód: 325293B-0131 LabVIEW Core 2 Feladatok
Szerzői jog © 1993–2010 National Instruments Corporation. Minden jog fenntartva. A szerzői jogi jogszabályok szerint ez a kiadvány a National Instruments Corporation előzetes írásos beleegyezése nélkül semmilyen (elektronikus vagy mechanikus) formában, sem részleteiben sem egészében nem többszörözhető vagy terjeszthető, ideértve a fénymásolat készítést, rögzítést, információs rendszerben való tárolást, illetve fordítást is.
A National Instruments tiszteletben tartja mások szellemi tulajdonát, és ugyenerre kéri a felhasználóit is. Az NI szoftvertermékek a szerzői jogi, illetve a szellemi tulajdon védelméről szóló más jogszabályok védelme alatt állnak. Amennyiben a National Instruments szoftverek felhasználásával más tulajdonában álló szoftverek vagy más szellemi termékek többszörözésére kerül sor, az NI szofver kizárólag olyan szellemi termékek többszörözésére használható, amelyeknek ilyen felhasználása az alkalmazandó licencek, illetve az egyéb jogi rendelkezések alapján megengedett.
For components used in USI (Xerces C++, ICU, HDF5, b64, Stingray, and STLport), the following copyright stipulations apply. For a listing of the conditions and disclaimers, refer to either the USICopyrights.chm or the Copyrights topic in your software. Xerces C++. This product includes software that was developed by the Apache Software Foundation (http://www.apache.org/). Copyright 1999 The Apache Software Foundation. All rights reserved. ICU. Copyright 1995–2009 International Business Machines Corporation and others. All rights reserved.
HDF5. NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities Copyright 1998, 1999, 2000, 2001, 2003 by the Board of Trustees of the University of Illinois. All rights reserved. b64. Copyright © 2004–2006, Matthew Wilson and Synesis Software. All Rights Reserved.
Stingray. This software includes Stingray software developed by the Rogue Wave Software division of Quovadx, Inc. Copyright 1995–2006, Quovadx, Inc. All Rights Reserved. STLport. Copyright 1999–2003 Boris Fomitchev
Védjegyek A “LabVIEW”, “National Instruments”, “NI”, és “ni.com” kifejezések, valamint a National Instruments logó és a “sas-logó” a National Instruments Corporation védjegyei. A National Instruments védjegyeivel kapcsolatban további részletek az ni.com/trademarks oldalon a Trademark Information alatt találhatók.
Minden egyéb itt említett termék- illetve cégnév az azokat tulajdonló megfelelő vállalatoknak a védjegyei. A National Instruments Alliance Partner Program tagjai a National Istrumentstől független üzleti szereplők, köztük és a National Instruments között megbízási, partnerségi vagy közös vállalkozási kapcsolat nem áll fenn. Szabadalmak A National Instruments termékeit és technológiai fejlesztéseit érintő szabadalmakról bővebb felvilágosítást találhat a National Instruments szoftverekben, a Help»Patents menüpont alatt, a szoftver könyvtárában lévő patents.txt fájlban, vagy az ni.com/patents oldalon, a National Instruments Patent Notice pont alatt.
Mi nta Támogatás
Globális műszaki támogatás és termékinformáció ni.com
A National Instruments központja 11500 North Mopac Expressway Austin, Texas 78759-3504 USA Tel: 512 683 0100
Irodáink a világban Ausztrália 1800 300 800, Ausztria 43 662 457990-0, Belgium 32 (0) 2 757 0020, Brazília 55 11 3262 3599, Cseh Köztársaság 420 224 235 774, Dánia 45 45 76 26 00, Dél-afrikai Köztársaság 27 0 11 805 8197, Egyesült Királyság 44 (0) 1635 523545, Finnország 358 (0) 9 725 72511, Franciaország 01 57 66 24 24, Fülöp-szigetek (63) 2 659 1722, Hollandia 31 (0) 348 433 466, India 91 80 41190000, Izrael 972 3 6393737, Japán 0120-527196, Kanada 800 433 3488, Kína 86 21 5050 9800, Korea 82 02 3451 3400, Lengyelország 48 22 328 90 10, Libanon 961 (0) 1 33 28 28, Malajzia 1800 887710, Mexikó 01 800 010 0793, Németország 49 89 7413130, Norvégia 47 (0) 66 90 76 60, Olaszország 39 02 41309277, Oroszország 7 495 783 6851, Portugália 351 210 311 210, Spanyolország 34 91 640 0085, Svájc 41 56 2005151, Svédország 46 (0) 8 587 895 00, Szingapúr 1800 226 5886, Szlovénia 386 3 425 42 00, Tajvan 886 02 2377 2222, Thaiföld 662 278 6777, Törökország 90 212 279 3031, Új-Zéland 0800 553 322 További segítséget a Kiegészítő információk és hasznos segédeszközök mellékletben találhat. A National Instruments dokumentációkkal kapcsolatos észrevételeit a National Instruments honlapján, azon belül is az ni.com/info oldalon oszthatja meg velünk, a feedback gyorskód megadásával.
Tartalomjegyzék Útmutató A. B. C. D. E. F.
NI Tanúsítvány ...................................................................................................v A tanfolyam leírása ............................................................................................vi Amire szükségünk lesz tanulmányaink során ....................................................vii A tanfolyami szoftver telepítése .........................................................................vii A tanfolyam célkitűzései.....................................................................................viii A tananyagban használt jelölések......................................................................ix
Mi nta
2. lecke Szinkronizálási technikák 2-1. feladat
Alapismeretek: Sorok kontra lokális változók .................................2-1
3. lecke Eseményvezérelt programozás 3-1. feladat 3-2. feladat
Alapismeretek: Ismerkedés az Event szerkezettel.........................3-1 Készítsünk egy nyomtatási sort kezelő konzolprogramot ..............3-4
4. lecke Hibakezelés
4-1. feladat
A Print Console program bővítése hibakezeléssel.........................4-1
5. lecke Dinamikusan változó felhasználói felületek 5-1. feladat 5-2. feladat 5-3. feladat
A hőmérséklet pillanatnyi és határértékének kijelzése...................5-1 A VI ablakának testre szabása.......................................................5-5 Set Plot Names VI..........................................................................5-10
6. lecke Fájl írás/olvasási technikák 6-1. feladat 6-2. feladat
Bitmap File Writer VI ......................................................................6-1 TDMS fájlok olvasása ....................................................................6-8
7. lecke VI-ok optimalizálása 7-1. feladat
Alapismeretek: A VI működésének hatékonyabbá tétele...............7-1
8. lecke Alkalmazások fejlesztése és terjesztése 8-1. feladat 8-2. feladat
Fájlok előkészítése terjesztésre .....................................................8-1 Önállóan futtatható alkalmazások készítése..................................8-7
© National Instruments Corporation
iii
LabVIEW Core 2 Feladatok
Tartalomjegyzék
A függelék A hardvereszközök előkészítése
Mi nta
B függelék Kiegészítő információk és hasznos segédeszközök
LabVIEW Core 2 Feladatok
iv
ni.com
5
Dinamikusan változó felhasználói felületek A hőmérséklet pillanatnyi és határértékének kijelzése
Mi nta
5-1. feladat Cél
Property Node-ok segítségével a program futása közben változtassuk meg a front panel elemeinek egyes jellemzőit.
Feladat
Egészítsünk ki egy már létező VI-t úgy, hogy a mért hőmérsékletértékeket megjelenítse egy grafikonon. A VI futása közben a következő feladatok kerülnek végrehajtásra: •
A grafikon Δx paramétere a felhasználó által megadott értéket veszi fel.
•
Induláskor a grafikon ablakának letörlése, vagyis egy adatot se tartalmazzon.
•
A görbe színének megváltoztatása, ha a mért érték átlép egy megadott határt.
•
A határérték átlépésére egy villogó lámpa is figyelmeztessen.
Tervezés
Helyezzük el a következő Property Node-okat a már létező VI blokkdiagramján:
Kontroll/Indikátor
Név
Paraméter
Waveform Chart
Temperature
XScale.Multiplier (dX)
Waveform Chart
Temperature
History (a grafikon aktuális tartalma)
Waveform Chart
Temperature
Active Plot 0»Plot.Color (aktív görbe kiválasztása, a görbe színe)
Boolean Indicator (LED)
Over Limit
Blinking (villogás)
© National Instruments Corporation
5-1
LabVIEW Core 2 Feladatok
5. lecke
Dinamikusan változó felhasználói felületek
Megvalósítás
Mi nta
1. Nyissuk meg az <Exercises>\LabVIEW Core 2\Temperature Limit könyvtárban található Temperature Limit.vi-t. A front panelt már előre kialakították számunkra.
5-1. ábra A Temperature Limit VI front panelje
2. Nyissuk meg a VI blokkdiagramját. A blokkdiagram egy részét már szintén előkészítették nekünk. Az 5-2. ábrán a blokkdiagram végleges állapota látható.
5-2. ábra A Temperature Limit VI blokkdiagramja
3. Módosítsuk úgy a VI-t, hogy a grafikon Δx paraméterét a delta t (ms) kontrollban megadott értékre állítsa be.
❑ A Temperature indikátor Property Node-jának létrehozásához
kattintsunk jobb gombbal az indikátorra, és válasszuk ki a Create» Property Node»X Scale»Offset and Multiplier»Multiplier menüpontot.
LabVIEW Core 2 Feladatok
5-2
ni.com
5. lecke
Dinamikusan változó felhasználói felületek
❑ Helyezzük át az újonnan létrejött Property Node-ot a While ciklus bal oldalára.
❑ Kattintsunk jobb gombbal a Property Node-ra, és válasszuk ki a Change All To Write menüpontot.
❑ Az XScale.Multiplier értékének meghatározásához a delta t (ms) kontroll értékét osszuk el 1000-rel, a 5-2. ábrán látható módon.
4. Módosítsuk a VI-t, hogy induláskor törölje a grafikonról a korábbi értékeket.
Mi nta
Javaslat A waveform chart indikátor tartalmának törléséhez huzalozzunk be a blokkdiagramon egy üres tömb konstanst a History Data paraméterbe.
❑ Méretezzük át a Property Node-ot két elem számára.
❑ A második mezőben válasszuk ki a History Data paramétert. ❑ Győződjünk meg arról, hogy a paraméter terminálja írásra van állítva.
❑ Jobb gombbal kattintsunk a History Data paraméterre, és válasszuk ki a Create»Constant menüpontot.
❑ Kössük be a Property Node vezetékeit az 5-2. ábrának megfelelően.
5. Módosítsuk úgy a VI-t, hogy ha a hőmérséklet egy megadott határértéket átlép, a Data görbe színe váltson pirosra, az Over Limit LED pedig kezdjen el villogni.
❑ Egy újabb Property Node létrehozásához kattintsunk jobb gombbal a Temperature indikátorra, és válasszuk ki a Create»Property Node»Active Plot menüpontot.
❑ Helyezzük az új Property Node-ot a Case szerkezet igaz ágába. ❑ Méretezzük át a property node-ot két elem számára.
❑ A második elemnek állítsuk be a Plot»Plot Color paramétert. ❑ Kattintsunk jobb gombbal a Property Node-ra, és válasszuk ki a Change All To Write menüpontot.
❑ A grafikon első görbéjének kiválasztásához, kössünk be egy 0
értékű szám konstanst a Property Node Active Plot paraméterébe.
❑ A görbe színének megváltoztatásához kössünk be a Property Node Plot Color paraméterébe egy piros színdoboz konstanst.
© National Instruments Corporation
5-3
LabVIEW Core 2 Feladatok
5. lecke
Dinamikusan változó felhasználói felületek
❑ A Property Node másolásához, a
billentyű nyomva tartása mellett, ragadjuk meg azt, és a másolatot helyezzük az eredeti mellé.
Javaslat Ne használjuk a vágólapot (az Edit»Copy menüpontot vagy a -t) a másoláshoz. Ilyen módon egy más típusú Prpoerty Node jönne létre, melyről a Control References (Kontrol hivatkozások) fejezetben fogunk tanulni az 5. Controlling the User Interface (Dinamikusan változó felhasználói felületek) leckében a LabVIEW Core 2 Course Manual tankönyvben.
❑ Helyezzük a másolatot a Case szerkezet hamis ágába,
Mi nta
az 5-3. ábrán látható módon.
❑ A grafikon első görbéjének kiválasztásához, kössünk be egy 0
értékű szám konstanst a Property Node Active Plot paraméterébe.
❑ A görbe színének megváltoztatásához kössünk be a Property Node Plot Color paraméterébe egy zöld színdoboz konstanst.
5-3. ábra A Temperature Limit VI hamis ága
6. Módosítsuk a VI-t oly módon, hogy a hőmérsékleti határ átlépésekor az Over Limit LED villogni kezdjen.
❑ Jobb gombbal kattintsunk az Over Limit indikátorra, és válasszuk ki a Create»Property Node»Blinking menüpontot.
❑ Az új Property Node-ot helyezzük a While ciklus belsejébe.
❑ Kattintsunk jobb gombbal a Property Node-ra, és válasszuk ki a Change All To Write menüpontot.
❑ Kössük be a Property Node vezetékeit az 5-2. ábrának megfelelően.
7. Mentsük el a VI-t.
Tesztelés
1. Futtassuk a VI-t, és ellenőrizzük, hogy megfelelően működik.
2. Zárjuk be a VI-t.
5-1. feladat vége
LabVIEW Core 2 Feladatok
5-4
ni.com
5. lecke
5-2. feladat
Dinamikusan változó felhasználói felületek
A VI ablakának testre szabása
Cél Property Node-ok és Invoke Node-ok segítségével változtassuk meg a VI-unk jellemzőit.
Feladat
Mi nta
A VI külsejét meghatározó paramétereket beállíthatjuk statikusan a VI properties ablakban, ugyanakkor a komolyabb felhasználói felületek kialakítása megköveteli, hogy a front panel egyes paraméterei a program futása közben is változhassanak. Egy olyan VI-t kell készítenünk, mely a program futása közben képes az alábbi műveleteket végrehajtani: •
Elrejteni vagy megjeleníteni a saját ablakának fejlécét.
•
Elrejteni vagy megjeleníteni a felső menüsorát.
•
Áttetszővé válni, hogy a mögötte lévő objektumok láthatóvá váljanak.
•
Áthelyezni magát a képernyő közepére.
Tervezés
Bemenetek és kimenetek Kontroll/Indikátor
Név
Alapértelmezett érték
Push Button
Show Menu Bar?
True
Push Button
Show Title Bar?
True
Push Button
Make VI Transparent?
True
OK Button
Center
False
Stop gomb
Stop
False
Azért használjuk a Push Button kontrollt, mert az alapértelmezett mechanical action (mechanikai működés) paramétere switch when pressed (kattintásra vált). Az OK gomb mechanikai kialakítása ellenben latch when released, azaz felengedés után visszatér alaphelyzetébe. Javaslat
© National Instruments Corporation
5-5
LabVIEW Core 2 Feladatok
5. lecke
Dinamikusan változó felhasználói felületek
Tulajdonságok A VI osztály alábbi paramétereit és metódusait fogjuk felhasználni: ShowMenuBar - A paraméter igaz értéke esetén látszik a VI felső menüsora.
5-4. ábra A VI felső menüsora
Mi nta
TitleBarVisible - A paraméter igaz értéke esetén látható a VI ablakának fejléce.
5-5. ábra A VI fejléce
RunVITransparently - A paraméter igaz értéke mellett engedélyezett a front panel átlátszóságának állítása. A paraméter alapértelmezett értéke hamis, ezért mielőtt változtatni szeretnénk az ablak átlátszóságát, a paraméter értékét igazra kell állítanunk.
Transparency - A front panel ablak áttetszőségét meghatározó paraméter. A paraméter értéke 0 és 100 között változhat, 0 érték esetén az ablak tömör, átlátszatlan (normál megjelenés), 100 esetén teljesen átlátszó (láthatatlan). Esetünkben a Make VI Transparent? gomb megnyomására állítsuk a paraméter értékét 50-re.
Metódusok
A paraméterekkel ellentétben a metódusok csak akkor fejtik ki hatásukat, mikor meghívják őket. Ezért metódusokat csak akkor hívunk meg, amikor egy konkrét esetben kell valamilyen műveletet végrehajtanunk. Ha például az Fp.Center metódust egy cikluson belül használjuk, akkor az ablak folyton a képernyő közepére fog ugrani, lehetetlenné téve, hogy a felhasználó áthelyezhesse azt máshová. Case szerkezetbe foglalva a metódust, szabályozhatjuk, hogy mikor hajtódjon végre. A következő VI osztálybeli metódusokat fogjuk használni: Center - A metódus minden egyes meghívásakor a front panel ablaka a képernyő közepére kerül.
Javaslat A Context Help ablakban további részleteket tudhatunk meg valamennyi paraméterről és metódusról.
A VI működése
A VI másodpercenként hússzor beolvassa a front panel kontrollok értékeit, és beállítja a hozzájuk rendelt funkcióknak megfelelő paramétereket. A Center metódus hívását Case szerkezettel irányítjuk.
LabVIEW Core 2 Feladatok
5-6
ni.com
5. lecke
Dinamikusan változó felhasználói felületek
Megvalósítás
Mi nta
1. Nyissuk meg az <Exercises>\LabVIEW Core 2\Customize VI Window könyvtárban található Customize VI Window VI-t. A VI front panelje a 5-6. ábrán látható.
5-6. ábra A Customize VI Window VI front panelje
A következő lépések végrehajtásával hozzuk létre a VI a blokkdiagramját. Egy példát a blokkdiagram kialakítására az 5-7. ábrán láthatunk.
5-7. ábra A Customize VI Window VI blokkdiagramja
5-8. ábra A Center metódust hívó Case szerkezet hamis ága
2. A blokkdiagramon lévő terminálokat helyezzük egy While ciklusba. 3. Hozzunk létre egy, a VI-ra mutató hivatkozást.
❑ Helyezzünk el egy VI Server Reference terminált a blokkdiagramon a While ciklustól balra.
© National Instruments Corporation
5-7
LabVIEW Core 2 Feladatok
5. lecke
Dinamikusan változó felhasználói felületek
❑ Ha alapból nem lenne az, állítsuk a VI Server Reference tárgyát This VI-ra.
Megjegyzés A This VI hivatkozás használatával a VI-hoz tartozó valamennyi paramétert és metódust elérhetjük anélkül, hogy ehhez formálisan meg kéne nyitni, majd le kéne zárni egy hivatkozást.
4. Hozzunk létre egy Property Node-ot RunTransparently paramétermezővel.
❑ Jobb gombbal kattintsunk a This VI hivatkozásra, és válasszuk ki a
Mi nta
Create»Property for VI Class»Front Panel Window»Run VI Transparently paramétert.
❑ Helyezzük el az így létrejött Property Node-ot a This VI hivatkozástól jobbra, de még a While cikluson kívül.
❑ Kattintsunk jobb gombbal a Property Node-ra, és válasszuk ki a Change All To Write menüpontot.
❑ Jobb gombbal kattintsunk az FP:RunTransparently paraméterre, és válasszuk ki a Create»Constant menüpontot.
❑ A létrejött logikai konstans értékét állítsuk át igazra.
5. Hozzunk létre Porperty Node-ot ShowMenuBar, TitleBarVis és Transparency paramétermezőkkel.
❑ Egy újabb Property Node létrehozásához kattintsunk jobb gombbal a This VI hivatkozásra, és válasszuk ki a Create»Property for VI Class»Front Panel Window»Show Menu Bar paramétert.
❑ Növeljük meg a Property Node méretét, hogy három terminálja legyen.
❑ Kattintsunk a második terminálra, és válasszuk ki a Front Panel Window»Title Bar Visible paramétert.
❑ Kattintsunk a harmadik terminálra, és válasszuk ki a Front Panel Window»Transparency paramétert.
❑ Kattintsunk jobb gombbal a Property Node-ra, és válasszuk ki a Change All To Write menüpontot.
❑ Helyezzük a Property Node-ot a While ciklus belsejébe.
❑ Helyezzünk el egy Select műveletet a While ciklus belsejében. ❑ Helyezzünk el egy 0 és egy 50-es értékű szám konstanst a Select művelet bal oldalán.
❑ A nulla értékű konstanst kössük be a Select művelet f bemenetére.
LabVIEW Core 2 Feladatok
5-8
ni.com
5. lecke
Dinamikusan változó felhasználói felületek
❑ Az 50-es értékű konstanst kössük be a Select művelet t bemenetére.
❑ Kössük be a kapcsoló kontrollokat a megfelelő paraméterek termináljaiba az 5-7. ábrának megfelelően.
6. Hozzunk létre egy, a Center metódust meghívó Invoke Node-ot.
❑ Jobb gombbal kattintsunk a This VI hivatkozásra, és válasszuk ki a Create»Method for VI Class»Front Panel»Center paramétert.
7. Helyezzünk egy Case szerkezetet az FP.Center Invoke Node köré.
Mi nta
8. Helyezzünk el egy 50ms-os várakozás műveletet a cikluson belül.
❑ Helyezzünk el egy Wait (ms) műveletet a While ciklus belsejében. ❑ Jobb egérgombbal kattintsunk a művelet milliseconds to wait bementére, és válasszuk ki a Create»Constant menüpontot.
❑ A létrejött szám konstans értékének írjunk be 50-et.
9. A ciklus álljon le, ha a felhasználó a megnyomja a Stop gombot, vagy menet közben valamilyen hiba történik.
❑ Helyezzünk el egy Unbundle By Name művelet a While ciklusban. ❑ Helyezzünk el egy Or (VAGY) műveletet a While cikluson belül.
10. Kössük be a hiányzó vezetékeket az 5-7. és az 5-8. ábráknak megfelelően. Ne felejtsük el lecserélni a hiba cluster alagútját shift regiszterre.
11. Jelezzük ki a felhasználónak, ha futás közben hiba történt.
❑ Helyezzük el a Simple Error Handler VI-t a While ciklusoktól jobbra. ❑ Kössük be a hiba cluster shift regiszter kimeneti terminálját a Simple Error Handler VI hiba bemenetére.
12. Mentsük el a VI-t.
Tesztelés
1. Váltsunk át a VI front paneljére. 2. Futtassuk a VI-t.
3. Próbáljuk ki az összes kapcsolót és nyomógombot, és figyeljük meg a front panelen történő változásokat.
5-2. feladat vége
© National Instruments Corporation
5-9
LabVIEW Core 2 Feladatok
5. lecke
Dinamikusan változó felhasználói felületek
5-3. feladat
Set Plot Names VI
Cél Kontroll-hivatkozások felhasználásával hozzunk létre olyan szub VI-t, mely módosítja a hívó VI front paneljén található grafikon tulajdonságait.
Feladat
Mi nta
Hozzunk létre egy szub VI-t, mely egy görbék neveiből álló listát rendel hozzá egy grafikonhoz. A szub VI szükség esetén átméretezi a plot legend (görbe tulajdonságok) panelt, hogy az összes görbe látszódjon rajta.
Tervezés
Bemenetek és kimenetek Kontroll/Indikátor
Név
Alapértelmezett érték
Control Reference (grafikon objektumra mutató kontroll-hivatkozás)
Graph Reference
—
Szöveges kontrollokból álló 1D tömb
Plot Names
Üres tömb
Hiba cluster kontroll
Error In
No Error
Hiba cluster indikátor
Error Out
No Error
Kontroll-hivatkozások
A Waveform Chart és a Waveform Graph indikátorok a GraphChart osztály alá tartozó objektumok. Olyan szub VI készítéséhez, mely chart és graph hivatkozások fogadására egyaránt alkalmas, eggyel magasabb (GraphChart) osztályba tartozó kontroll-hivatkozást kell alkalmaznunk. Azonban ebbe az osztályba egyéb típusú objektumok is beletartoznak, például az XY Graph indikátor is. A szub VI-unk küldjön hibaüzenetet, ha a bemenetére nem Waveform Chart vagy Waveform Graph indikátor hivatkozását kötötték be. A Property Node ClassName paraméterét és egy Case szerkezetet felhasználva meghatározhatjuk, hogy a felhasználó milyen típusú kontroll-hivatkozást kötött a szub VI bemenetére. Ha a hivatkozás helyes, használjuk a To More Specific Class műveletet az indikátornak megfelelő osztály hivatkozásának eléréséhez. Miután birtokunkban van a WaveformChart indikátorra vagy a WaveformGraph indikátorra mutató hivatkozás, már egyszerűen beállíthatjuk a grafikonhoz tartozó görbék neveit.
LabVIEW Core 2 Feladatok
5-10
ni.com
5. lecke
Dinamikusan változó felhasználói felületek
Tulajdonságok A grafikon objektumok nem rendelkeznek olyan paraméterrel, mellyel egyszerre beállítható valamennyi görbe neve. Ehelyett paraméterek kombinációját alkalmazva egyesével állítjuk be az egyes görbékhez tartozó neveket. A feladat megoldásához az alábbi paramétereket fogjuk használni: ClassName - A paraméter a hozzá tartozó objektum osztályának nevét adja vissza szöveges formában. Minden kontroll/indikátor objektum rendelkezik ezzel a paraméterrel.
Mi nta
LegAutosize - Engedélyezi vagy tiltja, hogy a Plot Legend panel automatikusan hozzáigazodjon a görbék neveinek hosszához. Mielőtt módosítanánk a görbék neveit, érdemes a paraméter értékét hamisra (tilt) állítani, egyébként előfordulhat, hogy a panel mérete oly módon változik, hogy túlságosan eltávolodik a grafikontól, vagy éppen ellenkezőleg, elfedi annak egy részét. LegNumRows - A Plot Legend panel egyszerre látható sorainak számát meghatározó paraméter. A plot legend paneljét úgy helyezzük el a grafikon mellett, hogy legyen elég hely további sorok megjelenítésére. Újabb sorok megjelenítésekor a plot legend panel a képernyő alja felé terjeszkedik.
ActPlot - Egyszerre egy görbének tulajdonságai állíthatók be a görbét leíró paraméterek segítségével. Az ActPlot paraméter az aktív görbét jelöli ki. A görbék tulajdonságait leíró paraméterekhez kapcsolódó műveletek mindig az aktív görbére vonatkoznak. A görbék számozása nullától indulva a létrehozásuk sorrendjében történik. Plot.Name - Az aktív görbe nevét tartalmazó paraméter.
Megvalósítás
1. Nyissunk meg egy üres VI-t.
2. Mentsük el a VI-t Set Plot Names.vi néven az <Exercises>\ LabVIEW Core 2\Set Plot Names könyvtárba.
3. Építsük meg a front panelt.
❑ Tegyünk le egy control refnum (kontroll-hivatkozás) elemet a front panelre.
❑ A hivatkozás nevét írjuk át Graph Reference-re.
❑ Jobb gombbal kattintsunk a Graph Reference hivatkozásra,
és válasszuk ki a Select VI Server Class»Generic»GObject» Control»GraphChart»GraphChart menüpontot.
❑ Helyezzünk el egy üres tömböt a front panelen. ❑ A tömb neve legyen Plot Names.
© National Instruments Corporation
5-11
LabVIEW Core 2 Feladatok
5. lecke
Dinamikusan változó felhasználói felületek
❑ Helyezzünk egy szöveg kontrollt az üres Plot Names tömbbe. ❑ Tegyünk le egy error in hibaclustert. ❑ Tegyünk le mellé egy error out hibaclustert is. ❑ Rendezzük el az elemeket a front panelen az 5-9. ábrának
Mi nta
megfelelően.
5-9. ábra A Set Plot Names VI front panelje
Javaslat Mivel a szub VI front panelje működés közben nem fog megjelenni a képernyőn, nem kell törekednünk az esztétikus megjelenésre. Arra kell mindössze ügyelnünk, hogy mindig logikus és könnyen áttekinthető legyen a front paneljeink felépítése. Ugyanakkor túl sok időt se töltsünk olyan panelek csinosítgatásával, amit a felhasználó úgysem fog látni.
4. Váltsunk át a blokkdiagramra.
5. Azonosítsuk a hivatkozás osztályát, és küldjünk hibaüzenetet, ha nem megfelelő osztályba tartozik.
❑ A Class Browser segítségével keressük meg és helyezzük el a blokkdiagramon a ClassName Property Node-ot.
LabVIEW Core 2 Feladatok
–
A View»Class Browser menüpont kiválasztásával nyissuk meg a Class Browser párbeszédablakot.
–
Válasszuk ki a VI Server objektum könyvtárat (Object Library).
–
Azon belül válasszuk ki a Generic»Generic osztályt.
–
A Search gombra kattintva nyissuk meg a Class Browser Search párbeszédablakot.
5-12
ni.com
Dinamikusan változó felhasználói felületek
Mi nta
5. lecke
5-10. ábra A Class Browser Search párbeszédablak
© National Instruments Corporation
–
A keresőmezőbe írjuk be: Class Name. A találatok listában a Class Name-nek kell lennie az egyedüli elemnek.
–
A Search Scope szekcióban válasszuk ki a Generic class osztályt.
–
Az OK gombra kattintva visszatérünk a Class Browser párbeszédablakba. Láthatjuk, hogy a Properties and Methods fastruktúrában a Class Name elem neve ki van emelve.
5-13
LabVIEW Core 2 Feladatok
Dinamikusan változó felhasználói felületek
Mi nta
5. lecke
5-11. ábra A Class Browser párbeszédablak
–
LabVIEW Core 2 Feladatok
Kattintsunk a Create gombra, majd vigyük az egérmutatót a blokkdiagram egy üres területe fölé. A ClassName Property Node lehelyezéséhez kattintsunk a blokkdiagramon.
5-14
ni.com
5. lecke
Dinamikusan változó felhasználói felületek
❑ Kössük be a Graph Reference terminálját a Property Node
Mi nta
reference bemenetére.
5-12. ábra Az alapértelmezett ág
❑ Helyezzünk el egy Case szerkezetet a blokkdiagramon az 5-12. ábrán látható módon.
❑ Kössük be a Property Node ClassName kimenetét a Case szerkezet választó termináljába (kérdőjel).
❑ Váltsunk át a Case szerkezet hamis ágára.
❑ Töröljük ki a False kifejezést az ágnév mezőből, miáltal az ág nevének az 5-12. ábra szerint kell kinéznie.
A Case szerkezet Default (alapértelmezett) ága akkor kerül végrehajtásra, ha kontroll-hivatkozás osztálya nem egyezik meg a többi ágban megadott osztályok egyikével sem. Ez azt jelenti, hogy az indikátor, melyre a szub VI-ba bekötött hivatkozás mutat, nem WaveformGraph, és nem is WaveformChart. Ne felejtsük el, hogy Case szerkezetek választócímkéje megkülönbözteti a kis- és nagybetűket.
❑ Helyezzünk el egy Error Cluster From Error Code VI-t a Case szerkezet belsejében.
❑ Jobb gombbal kattintsunk az Error Cluster From Error Code VI error code bemenetére, és válasszuk ki a Create»Constant menüpontot.
❑ A létrejött szám konstans értékének írjunk be 1057-et.
Az 1057-es hibakód az Object cannot be typecasted to the specified type (Az objektum típusa nem alakítható át a megadott típusra.) hibaüzenetnek felel meg. Ez a megfelelő hibaüzenet abban az esetben, ha a szub VI felé nem megfelelő osztályba tartozó hivatkozást továbbítanak.
❑ Kössük be a hiányzó vezetékeket a 5-12. ábrának megfelelően. © National Instruments Corporation
5-15
LabVIEW Core 2 Feladatok
5. lecke
Dinamikusan változó felhasználói felületek
Mi nta
6. Készítsük el a WaveformGraph típusú hivatkozás ágát
5-13. ábra WaveformGraph ág
❑ Váltsunk át a Case szerkezet igaz ágára.
❑ Az ágnév mezőben írjuk át a True kifejezést WaveformGraph-ra, hogy az ág neve a 5-13. ábra szerint nézzen ki.
A Case szerkezet ágnevének tökéletesen meg kell egyeznie a választó terminálba továbbított szöveggel, beleértve a szóközök és a kis- és nagybetűk egyezését is. Ebben az esetben pontosan azt írjuk be, hogy WaveformGraph.
Figyelem!
❑ Helyezzünk el egy To More Specific Class műveletet a Case szerkezetben.
❑ Jobb gombbal kattintsunk a To More Specific Class művelet target class bemenetére, és válasszuk ki a Create»Constant menüpontot.
❑ Kattintsunk az így létrejött konstansra, és válasszuk ki a Generic» GObject»Control»GraphChart»WaveformGraph» WaveformGraph osztályt.
❑ A Class Browser ablak segítségével keressük meg és helyezzük el a Case struktúrában a Legend: Autosize Property Node-ot.
LabVIEW Core 2 Feladatok
–
Object library: VI Server
–
Class: Generic»Generic
–
A Search Scope szekcióban válasszuk ki az All classes in the VI Server library opciót.
–
Keresett kifejezés: Legend: Autosize.
–
Válasszuk ki a WaveformGraph osztályba tartozó Legend: Autosize paramétert.
5-16
ni.com
5. lecke
Dinamikusan változó felhasználói felületek
❑ Kössük össze a To More Specific Class művelet specific class reference kimenetét a Property Node reference bemenetével.
❑ Növeljük meg a Property Node méretét, hogy két eleme legyen látható.
❑ Kattintsunk a második terminálra, és válasszuk ki a Legend» Number of Rows paramétert.
❑ Kattintsunk jobb gombbal a Property Node-ra, és válasszuk ki a Change All To Write menüpontot.
❑ Jobb gombbal kattintsunk a LegAutosize paraméterre, és
Mi nta
válasszuk ki a Create»Constant menüpontot. Győződjünk meg arról, hogy a létrejött logikai konstans értéke hamis.
❑ Helyezzünk el egy Array Size műveletet a Case szerkezetbe. ❑ Helyezzünk el egy For ciklust a Case szerkezeten belül.
7. Helyezzünk el egy Property Node-ot a For cikluson belül.
❑ A Class Browser ablak segítségével keressük meg és helyezzük el a For cikluson belül az Active Plot Property Node-ot. –
Object library: VI Server
–
Class: Generic»Generic
–
A Search Scope szekcióban válasszuk ki az All classes in the VI Server library opciót.
–
Keresett kifejezés: Active Plot.
–
Válasszuk ki a WaveformGraph osztályba tartozó Active Plot paramétert.
❑ A For ciklus keretén átvezetve kössük össze a második Property Node reference out kimenetét a harmadik Property Node reference bemenetével.
❑ Növeljük meg a harmadik Property Node méretét, hogy két eleme legyen látható.
❑ Kattintsunk a Property Node második termináljára, és válasszuk ki a Plot»Plot Name paramétert.
❑ Kattintsunk jobb gombbal a harmadik Property Node-ra, és válasszuk ki a Change All To Write menüpontot.
❑ Kössük be a hiányzó vezetékeket a 5-13. ábrának megfelelően.
A For cikluson keresztül shift regiszterekkel vezessük a hiba clustereket. Ellenőrizzük, hogy a For ciklus keretén lévő Plot Names alagút auto indexelése be legyen kapcsolva.
© National Instruments Corporation
5-17
LabVIEW Core 2 Feladatok
5. lecke
Dinamikusan változó felhasználói felületek
Mi nta
8. Készítsük el a WaveformChart típusú hivatkozás ágát.
5-14. ábra WaveformChart ág
❑ Kattintsunk jobb gombbal a Case szerkezet keretére, és válasszuk ki a Duplicate Case menüpontot.
❑ Az ágnév mezőbe írjuk be: WaveformChart.
A Case szerkezet ágnevének tökéletesen meg kell egyeznie a választó terminálba továbbított szöveggel, beleértve a szóközök és a kis- és nagybetűk egyezését is. Ebben az esetben pontosan azt írjuk be, hogy WaveformChart.
Figyelem!
❑ Kattintsunk a WaveformGraph hivatkozás konstansra, és válasszuk ki a Generic»GObject»Control»GraphChart»WaveformChart osztályt.
Amint megváltoztattuk a kontroll-hivatkozás osztályát, az összes Property Node és Invoke Node, mely a hivatkozást használta, érvénytelenné válik. Ennek az az oka, hogy Property Node paraméterei nem olyan osztályhoz tartoznak, mint amire a hivatkozás mutat. Figyeljük meg, hogy valamennyi paraméternév színe feketére változott, amint megváltoztattuk a hivatkozás osztályát, és a Run gomb ikonján látható nyíl is törötté vált. Ne töröljük le a törött vezetékeket, miután újra kiválasztottuk a paramétereket, ismét helyreáll a rend.
Megjegyzés
❑ Sorban kattintsunk a négy paraméterre, és mindnél válasszuk ki
újra a helyes paraméternevet. A paraméterek a következők: Legend»Autosize, Legend»Number of Rows, Active Plot és végül Plot»Plot Name. Az így létrejött blokkdiagram az 5-14. ábrán látható.
LabVIEW Core 2 Feladatok
5-18
ni.com
5. lecke
Dinamikusan változó felhasználói felületek
9. Készítsük el a VI ikon és konnektor paneljét. Az 5-15. ábrán egy általunk is megrajzolható ikon, és egy lehetséges konnektor-elrendezés látható.
Terminál-bekötések
Konnektor panel
Mi nta
5-15. ábra Egy lehetséges terminál-bekötés a Set Plot Names VI-hez
❑ Váltsunk át a VI front paneljére.
❑ Kattintsunk jobb gombbal a VI ikonjára, és válasszuk ki a Show Connector menüpontot.
❑ Jobb gombbal kattintsunk a konnektor panelre, válasszuk ki a Patterns menüpontot, majd azon belül egy megfelelő konnektor-elrendezést.
❑ Rendeljük össze a konnektor panel termináljait a front panel objektumaival.
❑ Kattintsunk jobb gombbal a konnektor panelre, és válasszuk ki a Show Icon menüpontot.
❑ Kattintsunk jobb egérgombbal az ikonra, és válasszuk ki az Edit Icon menüpontot.
❑ A szerkesztőben található eszközökkel rajzoljuk meg az új ikont. ❑ Ha készen vagyunk, zárjuk be az ikon-szerkesztőt.
10. Mentsük el a VI-t.
© National Instruments Corporation
5-19
LabVIEW Core 2 Feladatok
5. lecke
Dinamikusan változó felhasználói felületek
Tesztelés
Mi nta
1. Ellenőrizzük a szub VI működését egy Waveform Graph indikátor segítségével.
5-16. ábra A Set Plot Names VI tesztje
❑ Nyissunk meg egy üres VI-t.
❑ Helyezzünk el egy Waveform Graph indikátort a front panelen. ❑ Nyissuk meg a blokkdiagramot.
❑ Kattintsunk jobb egérgombbal a Waveform Graph indikátor
termináljára, és válasszuk ki a Create»Reference menüpontot.
❑ Helyezzük el a Set Plot Names VI-t a blokkdiagramon.
Javaslat Amennyiben a Set Plot Names VI front panelje nyitva van, egyszerűen ragadjuk meg az egérrel a jobb fölső sarkában lévő ikont, és húzzuk át az új VI blokkdiagramjára.
❑ Kössük be a WaveformGraph hivatkozást a Set Plot Names VI Graph Reference bemenetére.
❑ Jobb egérgombbal kattintsunk a Set Plot Names VI Plot Names
bemenetre, és válasszuk ki a Create»Control menüpontot. Ezek után a blokkdiagramunknak az 5-16. ábrához hasonló módon kell kinéznie.
❑ Váltsunk át az új VI front paneljére.
❑ A Plot Names tömb első elemébe írjuk be a One, a másodikba pedig a Two kifejezést.
❑ Helyezzük át a Plot Legend panelját a grafikon jobb oldalára, így szabadon változhat a mérete.
❑ Futtassuk a VI-t. Láthatjuk, hogy a plot legend panelján egymás alatt megjelenik a One és a Two felirat.
LabVIEW Core 2 Feladatok
5-20
ni.com
5. lecke
Dinamikusan változó felhasználói felületek
2. Teszteljük a szub VI működését egy Waveform Chart indikátor segítségével is.
❑ Kattintsunk jobb egérgombbal a waveform graph indikátorra,
és válasszuk ki a Replace»Graph»Waveform Chart menüpontot.
❑ Adjunk egy újabb elemet, Three szöveggel, a Plot Names tömbhöz.
❑ Futtassuk a VI-t. Ennek hatására a Three felirat is megjelenik a plot legend panelján.
Mi nta
3. Teszteljük a VI-t egy XY Graph indikátorral.
❑ Kattintsunk jobb egérgombbal a waveform chart indikátorra, és válasszuk ki a Replace»Graph»XY Graph menüpontot.
❑ Adjunk ismét egy újabb elemet a Plot Names tömbhöz, benne a Four szöveggel.
❑ Futtassuk a VI-t. Ekkor egy típus-átalakítási hibát jelző üzenetet kapunk.
Megjegyzés A hiba oka, hogy az XY Graph típusú kontroll hivatkozását nem kezeljük le a szub VI-ban.
4. Zárjuk be a VI-t. A szub VI kipróbálásához létrehozott VI-t nem szükséges elmentenünk.
5-3. feladat vége
© National Instruments Corporation
5-21
LabVIEW Core 2 Feladatok
5. lecke
Dinamikusan változó felhasználói felületek
Mi nta
Feljegyzések
LabVIEW Core 2 Feladatok
5-22
ni.com