Mérés és adatgyűjtés laboratóriumi gyakorlat A LabVIEW alapjai Makan Gergely, Mellár János, Mingesz Róbert
Bevezetés a LabVIEW környezetbe 2
Példa GUI 3
Példa kód 4
Miért pont a LabVIEW? Könnyű megtanulni és használni Bárki megtanulhatja, nem szükség programozónak lenni Tudósokra és mérnökökre optimalizálva Vizuális dizájn, egyszerű vizualizáció Gyors fejlesztés Produktivitás növelése Költségek csökkentése Rapid development 5
Miért pont a LabVIEW? Teljes funkcionalitás Beépített analízis funkciók Jelanalízis és matematika Számos beépített kommunikációs protokoll Többszálú végrehajtás, eseményvezérlés, objektumok,... Számos platform programozható egy nyelven keresztül (PC, beágyazott rendszerek, valós idejű rendszerek, FPGA, mikrovezérlők) 6
Miért pont a LabVIEW? Ipari szabvány Rengeteg kompatibilis hardver Tipikus felhasználások Mérés, adatgyűjtés, adatok elemzése Ipari vezérlés Egyedi rendszerek, prototípusok fejlesztése Komplex tudományos mérőrendszerek vezérlése (Big Physics) Oktatás 7
Hátrányok Nem nyílt szabvány Magas ár Futtatókörnyezet szükséges a LabVIEW programok végrehajtásához Bonyolultabb kódok esetén: oda kell figyelni a karbantarthatóság érdekében 8
Spagetti VI 9
Lehetőségek LabVIEW tanulására 10
A LabVIEW környezet Fejlesztő: National Instruments Oktatóanyagok
NI tanfolyamok Core 1, 2 & 3 Object-Oriented Design and Programming Advanced Architectures in LabVIEW LabVIEW Real-Time 1 & 2 LabVIEW FPGA Test Development Multisim & Utilboard Basics 12
Tanfolyamok típusa NI Self placed online training Érvényes SSP esetén ingyenes Oktató által vezetett online tanfolyam Regionális tanfolyamok Kért helyen végzett tanfolyamok 13
Hivatalos NI képesítések CLAD (Certified LabVIEW Associate Developer) NI Days esetén ingyen le lehet rakni CLD (Certified LabVIEW Developer) CLA (Certified LabVIEW Architect) A képesítéseket rendszeresen meg kell újítani (2-4 év) 14
A LabVIEW fejlesztőkörnyezet bemutatása 15
Induló képernyő 16
Virtual Instrument - VI 17
Projektek 18
Eszköztárak 19
Controls paletta Előlapi elemek Numerikus bemenetek, kimenetek Nyomógombok, LED-ek Szöveges be és kimenetek Grafikus megjelenítés … 20
Functions paletta Blokk diagram elemei Programozási struktúrák Tömbműveletek Numerikus műveletek Boolean műveletek String műveletek Összehasonlítás 21
Context help Rövid leírása a kurzor alatti elemnek Aktiválás: CTRL+H 22
Tool paletta Alapbeállítás: automatic tool selection (ajánlott) Legtöbbször használt: Operate Value Position/Size/Select Edit text Connect wire 23
Adattípusok Numeric Integer, Float, Complex Boolean String (path) Reference Object Array Cluster 24
Adattípusok 25
Numerikus adattípusok 26
Reprezentáció megváltoztatása 27
Numerikus paletta 28
További funkciók: mathematics 29
While Loop int i = 0; int stop = 0; do { // Some code i++; } while (!stop); 30
For Loop int i; int N = count; for (i = 0; i < N; i++) { // Some Code } 31
For Loop + conditional terminal int i; int N = count; int stop = 0; for (i = 0 ; i < N; i++) { //Some code if (stop) { break; } 32
Korábbi iteráció eredménye: Feedback node int i; int N = count; int x = 0; for (ind i = 0; i < N; i++) { x = x + i; } 33
Hasonló opció: Shift register int i; int N = count; int x = 0; for (ind i = 0; i < N; i++) { x = x + i; } 34
Automatikus indexelés Vezeték átmenet a ciklus határán: Tunel Alapbeállítás For Loop esetén: automatic indexing Átkonfigurálás: helyi menü 35
Case struktúra 36
Adatvezérelt programozás Párhuzamos végrehajtás Egy csomópont akkor hajtódik végre, ha megérkezet az összes bemenő adat Egy csomópont akkor adja vissza a végeredményeket, ha a végrehajtást teljesen befejezte. A végrehajtás sorrendjét a vezetékeken folyó adatok határozzák meg 37
Végrehajtási sorrend biztosítása: hibavezeték 38
Végrehajtási sorrend biztosítása: szekvencia 39
Lokális változók Előlapi elemek elérése bárhol (akár több helyen is) Mind a bemenetek mind a kimenetek írhatók és olvashatók is 40
Egyszerű programok megvalósítása 41
1. Két komplex szám összege 42
2. Másodfokú egyenlet megoldása 43 Megjegyzés: a VI-ra később szükség lesz, Mentsétek el!
3. feladat: N! 5!=1*2*3*4*5 C példa: x = 1; for (int i = 1; i <= 5; i++) { x =x*i; } 44
LabVIEW megoldás 45
4. Brown mozgás 46 while(!stop) { xi = xi+2*random()-1; waitms(50); }
4. Brown mozgás 47
5. Jelzőlámpa 48
Következő óra Jegyzet anyaga 5 – 26 oldal Lesz házi feladat