Summer of LabVIEW The Sunny Side of System Design 30th June - 18th July
Vámos Dániel Programtervező Informatikus MSc.
1
Előadás célja I.
Bemutatkozás
II.
Keretrendszerről általánosan
III.
Mi az Actor Szemlélet? (Actor Model)
IV.
Az Actor Framework és eszközei I.
V.
Hívási fa / Üzenetküldés nyelvtana
Ismétlődő üzenetek problémája I.
Lehetséges megoldási mód
Vámos Dániel Programtervező Informatikus MSc.
2
Bemutatkozás
Cavity Eye minőségfelügyeleti rendszer vázlata
Vámos Dániel Programtervező Informatikus MSc.
3
Bemutatkozás •
Nyomásmérő Szenzorok •
Átmérő (Csapos / Csap nélküli) • 15 mm, 26 mm
•
Mérési Tartomány: • 1 kN, 3 kN, 5 kN, 20 kN standard • 0,001 N maximális felbontás
•
Kalibráció: • Zero - Offset Kompenzálás • Lineáris karakterisztika • Alacsony és Magas hőmérsékleten végzett kalibráció (90ºC, 250ºC)
Vámos Dániel Programtervező Informatikus MSc.
4
Bemutatkozás •
Mérőrendszerek •
Basic Box (mérőrendszer)
•
Advanced Box (mérés & vezérlés)
•
Mobile Stand
•
Vezérlő jelek: • Átkapcsolási Pont vezérlés • Robot / válogató vezérlés • Fúvóka nyitása és zárása
Vámos Dániel Programtervező Informatikus MSc.
5
Bemutatkozás •
NI Hardware & Software Tartalom NI DAQmx
NI 9237 •24-bit resolution •4 simultaneously sampled AI 50kS/s •Programmable half- and full-bridge completion •Smart –sensor (TEDS) compatible
LabVIEW 2012/13 •DAQmx •LVOOP •Design Patterns …
NI USB 6210/6211 •16 analog input (16-bit, 250 kS/s) •4 digital inputs, •4 digital outputs •M Series •Voltage Measurement •Bus-Powered Vámos Dániel Programtervező Informatikus MSc.
6
Bemutatkozás
Vámos Dániel Programtervező Informatikus MSc.
7
Actor Framework Starter Kit 2015 LabVIEW fejlesztői nap
Vámos Dániel Programtervező Informatikus MSc.
8
Actor Framework Starter Kit •
Motiváció: •
• •
•
Napjaink meghatározó keretrendszerévé vált (LabVIEW) Kezdő fejlesztő számára nehezen elsajátítható Relatíve komplex példaprogramok
Keretrendszer: Általános vázat képez az alkalmazás-fejlesztéshez, ami tovább pontosítható feladat specifikus eljárások hozzáadásával. • Tetszőlegesen bővíthető • Előre definiált programozási eszközöket tartalmaz (eszközkészlet)
Vámos Dániel Programtervező Informatikus MSc.
9
Modell és keretrendszer kapcsolata
Modell
Keretrendszer
Actor
Framework
Személetmód implementálása
-
- Modell implementációja - Bővíthetőség / Skálázás - Eszközkészlet
- Szemléletmód
Vámos Dániel Programtervező Informatikus MSc.
10
Modell: Multi – Process Synchronization
Producer Consumer Design Pattern
Vámos Dániel Programtervező Informatikus MSc.
11
Keretrendszer: QMH / Bővíthetőség
Producer
Bővíthetőség Consumer
Vámos Dániel Programtervező Informatikus MSc.
12
Keretrendszer : QMH / Eszközkészlet
Eszközkészlet Bővíthetőség
Vámos Dániel Programtervező Informatikus MSc.
13
Actor Model – Actor Theory Szemlélet a modell mögött
ni.com
Actor Model: Actor Theory I. Mit nevezünk Actor-nek? •
Modell szemlélet a számítás tudományban, ahol az ‘Actor’ az azonos időben végzett számítások alapeleme
•
Magában foglalja: • Feldolgozás: - Valamilyen feladatot el kell végezni • Tárhely: - Képes tárolni adatokat, emlékezni • Kommunikáció: - Egymás közötti kapcsolat
•
Actor Framework és Producer-Consumer – mi a hasonlóság?
Vámos Dániel Programtervező Informatikus MSc.
15
Actor Framework – QMH, mint Actor
Actor I.
Actor II.
Address(Actor I, Actor II)
Vámos Dániel Programtervező Informatikus MSc.
16
Actor Framework – QMH, mint Actor
Message
Vámos Dániel Programtervező Informatikus MSc.
17
Actor Model: Actor Theory II. •
Egy Actor nem Actor. (Actor System)
•
Az Actor-ök képesek egymással üzenetekkel kommunikálni,amennyiben ismerik egymás címét (Rekurzió) (nincs hierarchia köztük, alá-, fölérendeltség)
•
Egyszerre csak egy üzenetet dolgoz fel. (Modell szerint)
•
Actor (a)
Az Actor képes: o o o
Actor (b)
Actor (c)
Létrehoz további Actor-öket Üzenetek küldésére / Üzenet vagy Parancs? Képes meghatározni, hogy mit fog tenni a beérkező üzenettel (állapota van)
Vámos Dániel Programtervező Informatikus MSc.
18
Actor Model: Actor Theory III. •
I. Az Actor bármilyen időben, bárhonnan kaphat üzenetet •
Actor nem rendelkezik arról, hogy kik küldhetnek neki üzenetet: Actor I. Actor II.
•
Actor III.
Minden Actor a saját ütemezésének megfelelően küld üzenetet: Start msg. Go msg.
Actor
Stop msg. Vámos Dániel Programtervező Informatikus MSc.
19
Actor Framework - Keretrendszer Eszközkészlet és Bővíthetőség
ni.com
Actor Framework: Bővíthetőség és Eszközkészlet Bővíthetőség
Eszközkészlet Actor: • Adatmodellt • Metódusok, függvények • Szálakat (Threads) tartalmaz.
Actor (b)
Message: Actor (a)
• Actor – Actor közötti kommunikáció alapeleme
Actor (c)
Address: • Az üzenet irányát határozza meg.
Vámos Dániel Programtervező Informatikus MSc.
21
Actor Framework: Kommunikáció topológiája • •
•
Minden Actor rendelkezik saját címmel Actor – Actor közötti üzenetküldés Üzenetet küldeni, csak ismert címre lehet o
(Gyerekek címe ismert a Modell szerint) Gráf Topológia
Fa Topológia A2
A1 A2
A1
A3
A3
A4 A4
A5
Vámos Dániel Programtervező Informatikus MSc.
22
A5
Actor Framework: Kommunikáció topológiája • • •
Minden Actor rendelkezik saját címmel Actor – Actor közötti üzenetküldés Üzenetet küldeni, csak ismert címre lehet o
(Gyerekek címe ismert a Modell szerint) Gráf Topológia
Fa Topológia A2
A1 A2
A1
A3
A3
A4 A4
A5 Hívási Fa
Javaslat, nem megszorítás Vámos Dániel Programtervező Informatikus MSc.
23
A5
Actor Framework: Kommunikáció nyelvtana Minden Actor ismeri: •
•
•
szülőjének a címét (születéskor) összes gyerekének a címét (létrehozáskor) saját címét
Hívási fa
A2
Üzenet küldési irányelvek: • • •
közvetlen szülőnek közvetlen gyereknek önmagának
A3
A4
Vámos Dániel Programtervező Informatikus MSc.
A1
24
A5
Actor Framework – Project Template
ni.com
Actor Framework: Hívási Fa - Példa •
LabVIEW → Create Project → Templates → Actor Framework AF Project
AF Project Launcher
Alpha Actor
Beta Actor
Vámos Dániel Programtervező Informatikus MSc.
26
Actor Framework: Osztályok és viszonyok Actor.lvclass és Message.lvclass az ősosztályok
AF Project
AF Project Launcher
Alpha Actor
Beta Actor
Vámos Dániel Programtervező Informatikus MSc.
27
Actor Framework: Kommunikáció nyelvtana Üzenetküldés menete és feltételei: A2 •
Üzenet tárgya:
Message_Name_Msg.lvclass
•
A1
Üzenet tartalma:
A2.Message_Name.vi ~ Handler •
Üzenet feladása: Message_Name.lvclass.Send_Message_Name.vi
Vámos Dániel Programtervező Informatikus MSc.
28
Actor Framework Ismétlődő üzenetek problémája és kezelése
Vámos Dániel Programtervező Informatikus MSc.
29
Actor Framework: Ismétlődő üzenetek problémája Üzenet iránya: Alpha → Gamma Üzenet neve: HandleAlphaTask AF Project Launcher
AF Project
Alpha Actor
Beta Actor
Javaslat, nem megszorítás Vámos Dániel Programtervező Informatikus MSc.
30
Gamma Actor
Actor Framework: Ismétlődő üzenetek problémája Üzenet iránya: Alpha → Gamma Üzenet neve: HandleAlphaTask AF Project Launcher
AF Project
Alpha Actor
Beta Actor
Három további üzenetet kell létrehozni.
Gamma Actor
Kódismétlés Vámos Dániel Programtervező Informatikus MSc.
31
Actor Framework: Ismétlődő üzenetek problémája Actor Származási Fa ~ Inheritance Tree
HandleAlphaTask Msg.lvclass.Do.vi
Vámos Dániel Programtervező Informatikus MSc.
32
Actor Framework: Ismétlődő üzenetek problémája HandleAlphaTask Msg.lvclass – Do.vi
Üzenetosztály.Do.vi felépítése: Ebben a metódusban dől el, hogy a címzett képes-e fogadni az érkező üzenetet vagy sem. Öröklődés szerint: α ≠ AF ≠ β ≠ γ → Typecast Error Ezért kell, minden Actor-nek új Üzenetet létrehozni! Vámos Dániel Programtervező Informatikus MSc.
33
Actor_xy
Gamma Actor
Actor Framework: Ismétlődő üzenetek problémája I.
Alpha Actor
Cél: Újrafelhasználható Üzenet létrehozása
AF Project
Egy Message osztályt implementálva, több Actor is képes legyen értelmezni azt. Beta Actor
Gamma Actor
Vámos Dániel Programtervező Informatikus MSc.
Invalid Cast Exception 34
Actor Framework: Ismétlődő üzenetek problémája AF Project Alpha Actor
Cél: Újrafelhasználható Üzenet létrehozása
II.
Egy Message osztályt implementálva, több Actor is képes legyen értelmezni azt. Beta Actor
Gamma Actor
Vámos Dániel Programtervező Informatikus MSc.
Invalid Cast Exception 35
Actor Framework: Ismétlődő üzenetek problémája Cél: Újrafelhasználható Üzenet létrehozása
AF Project Alpha Actor
Egy Message osztályt implementálva, több Actor is képes legyen értelmezni azt. Beta Actor
III.
Gamma Actor
Vámos Dániel Programtervező Informatikus MSc.
Valid TypeCast 36
Actor Framework: Ismétlődő üzenetek problémája
• Hogyan
szüntethetőek meg, az ismétlődő üzenetek, a köztes Actor-öknél? • Hogyan
lehet egy üzenetet újrafelhasználhatóvá tenni?
Vámos Dániel Programtervező Informatikus MSc.
37
Actor Framework: Osztályok és viszonyok
Abstract Method for Override: Abstact Actor.lvclass-HandleAlphaTask.vi
„Absztrakt” osztály létrehozása, ami biztosítja az üzenet fogadását a nem Cél Actor-ök esetében. A gyermek osztályok a Hívási Fában és az Üzenet Irányának megfelelően implementálják az absztrakt metódust Vámos Dániel Programtervező Informatikus MSc.
38
Actor Framework: Ismétlődő üzenetek problémája I.
Alpha Actor
Abstract Method for Override: AF.lvclass – HandleAlphaTask.vi
AF Project Beta Actor
Gamma Actor
Vámos Dániel Programtervező Informatikus MSc.
Valid TypeCast 39
Actor Framework: Ismétlődő üzenetek problémája AF Project Alpha Actor
Abstract Method for Override: BetaActor.lvclass – HandleAlphaTask.vi
II.
Beta Actor
Gamma Actor
Vámos Dániel Programtervező Informatikus MSc.
Valid TypeCast 40
Actor Framework: Ismétlődő üzenetek problémája Abstract Method for Override: GammaActor.lvclass – HandleAlphaTask.vi
AF Project Alpha Actor
Beta Actor
III.
Gamma Actor
Vámos Dániel Programtervező Informatikus MSc.
Valid TypeCast 41
Actor Framework: Ismétlődő üzenetek problémája
Vámos Dániel Programtervező Informatikus MSc.
42
Köszönöm a figyelmet! Kérdések?
Vámos Dániel Programtervező Informatikus MSc.
43